Modulos de Seguridad en Servidores Web

Post on 23-Jun-2015

368 views 1 download

Transcript of Modulos de Seguridad en Servidores Web

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Módulos de seguridad en servidores web

Rafael San Miguel Carrasco

Consultor de Seguridad

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

PSM vs NSM Introducción Evaluación funcional

Ejecución remota de comandos arbitrarios Inyección de sentencias SQL Cross-site scripting Inclusión de ficheros PHP Fuga de información confidencial Manipulación de la cabecera Server

Conclusiones Referencias

Contenido de la presentación

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

PSM vs NSM

El PSM (Modelo de Seguridad Positiva) se basa en identificar los patrones de

tráfico legítimo y permitir sólo aquellas peticiones consideradas como tal

El NSM (Modelo de Seguridad Negativa) se basa en identificar patrones de

ataque y permitir todo aquello que no sea considerado un ataque

El PSM se considera más efectivo:

Es la estrategia adoptada en firewalls de red Protege de ataques conocidos y desconocidos

El NSM es más straight-forward, se basa en tecnología sencilla, y además es gratuito

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Introducción

Fácil integración en la arquitectura modular de Apache

[httpd.conf] LoadModule ...

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Introducción

Se basa en una operativa sencilla que implementa la estrategia MITM

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Introducción

A nivel funcional es un appliance virtual capaz de interceptar

y bloquear peticiones HTTP

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Introducción

Múltiples mecanismos de protección frente a intrusiones

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Introducción

La configuración se define en un fichero de texto y se compone

de directivas globales y un conjunto de reglas

Múltiples condiciones

- Acceso al script a.cgi

- Con el parámetro p

- Con el contenido “|ls”

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Ejecución remota de comandos arbitrarios

Ejemplo de explotación de una vulnerabilidad reciente en phpBB

exploit utilizado por el gusano Santy

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

ModSecurity bloquea la petición maliciosa y envía como respuesta

una página por defecto

Ejecución remota de comandos arbitrarios

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Regla que detecta el acceso al script vulnerable y uno de los

caracteres incluidos en el parámetro utilizado por el exploit

Ejecución remota de comandos arbitrarios

La acción de respuesta es un redirect a la página que informa al

usuario de la condición de error detectada

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Fragmento de código vulnerable en Geeklog

La validación del cambio

de contraseña sólo

depende de que la

sentencia SQL retorne una

fila

Inyección de sentencias SQL

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

El formulario de autenticación de la página principal nos permite

inyectar una cadena SQL al script vulnerable

Utilizaremos Paros para interceptar la petición y

hacer los cambios necesarios

Inyección de sentencias SQL

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Rellenamos el formulario con cualquier combinación de login

y password e interceptamos la petición en Paros

Inyección de sentencias SQL

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Ahora sustituimos el contenido de la petición por los valores que

nos permiten inyectar una cadena SQL arbitraria

Inyección de sentencias SQL

mode=setnewpwd&passwd=xyz&rid=3’+or+uid=‘1&

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

El ataque tiene éxito: hemos conseguido que acepte las nuevas

credenciales sin conocer la password original

Inyección de sentencias SQL

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

La consulta que se ejecuta en el back-end es la siguiente:

Inyección de sentencias SQL

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Podemos evitar esta vulnerabilidad incluyendo una regla en

el fichero de configuración de ModSecurity

Identificamos el script vulnerable y un patrón SQL en el

parámetro rid

Inyección de sentencias SQL

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

La acción de respuesta en este caso consiste en invitar al usuario

a que se registre en el website

Inyección de sentencias SQL

Es una buena forma de evidenciar las medidas de seguridad sin

revelar detalles acerca de su funcionamiento

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Cross-site scripting

Phorum es un message board con múltiples vulnerabilidades

de cross-site scripting en las versiones 3.0.x

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Ésta es una posible configuración que nos permite bloquear

cualquier ataque de cross-site scripting

Cross-site scripting

Cuidado con los falsos positivos: muchas aplicaciones incluyen

código HTML en las peticiones de forma legítima

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

La página de respuesta debe alertar al usuario del intento de

engaño: en este caso el atacante es la propia víctima

Cross-site scripting

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Inclusión de ficheros PHP

OsCommerce es vulnerable al clásico ataque de inclusión de

ficheros PHP

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Inclusión de ficheros PHP

Es posible ejecutar comandos arbitrarios a través de la shell

alojada en el servidor web del atacante

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Inclusión de ficheros PHP

La siguiente configuración detecta el acceso directo al script

vulnerable y bloquea la petición maliciosa

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Cuando repetimos el ataque, se obtiene un mensaje en el que

se informe al atacante de las medidas de seguridad de la web

Inclusión de ficheros PHP

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

La facilidad de logging registra todas las peticiones maliciosas

para facilitar el análisis de intrusiones a posteriori

Inclusión de ficheros PHP

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Fuga de información confidencial

Con la vulnerabilidad de OsCommerce es posible visualizar el

contenido de cualquier fichero del sistema

En este ejemplo vamos a acceder al fichero que almacena todas

las transacciones realizadas a través del website

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Fuga de información confidencial

Sólo tenemos que usar la shell del ejemplo anterior, cambiando

el comando dir por more

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

El resultado de repetir el ataque con el nuevo comando es el

contenido del fichero con tarjetas de crédito válidas

Fuga de información confidencial

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Para evitar este tipo de intrusiones activamos el motor de filtrado

hacia fuera (FilterScanOutput) y especificamos el formato de los

datos que deben protegerse

Fuga de información confidencial

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Cuando repetimos el ataque se obtiene el mensaje Forbidden

Fuga de información confidencial

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Manipulación de la cabecera Server

Podemos ocultar la firma de nuestro servidor web a través de la

directiva SecServerSignature

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Cuando un atacante recupera la etiqueta Server, obtiene

información falsa acerca del servidor instalado

Manipulación de la cabecera Server

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Conclusiones

ModSecurity es una herramienta potente que puede proteger Apache frente a

los ataques web más comunes No tiene un impacto apreciable en el rendimiento ¡Es gratuito! (para uso personal)

Pero:

Requiere actualización manual de las firmas Puede afectar a la disponibilidad del servicio (falsos positivos) No puede gestionarse de manera centralizada No es PSM

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Referencias

Versión reducida Red Seguridad Nº 16 Mayo 2005

Versión completa http://www.rafaelsanmiguel.com/articulos/ModSecurity.pdf

Versión traducida http://www.owasp.org/docroot/owasp/misc/ModSecurityforApache_OWASP.pdf

Página oficial de ModSecurity http://www.modsecurity.org

FIST Conference Junio 2005 @

rafael.sanmiguel@dvc.es

Attribution. You must give the original author credit.

For any reuse or distribution, you must make clear to others the license terms of this work.

Any of these conditions can be waived if you get permission from the author.

Your fair use and other rights are in no way affected by the above.

This work is licensed under the Creative Commons Attribution-NoDerivs License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nd/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Creative Commons Attribution-NoDerivs 2.0

You are free:

•to copy, distribute, display, and perform this work

•to make commercial use of this work

Under the following conditions:

No Derivative Works. You may not alter, transform, or build upon this work.