Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Implementación de ModSecurity
Firewall de Aplicación Web
L.I. Dante Odín Ramírez López
Subdirección de Seguridad de la Información UNAM-CERT
¿Por qué las aplicaciones web son inseguras?
• Su desarrollo es apresurado
• Desconocimiento de practicas de seguridad en el desarrollo
• Dificultad y tiempo extra requerido
• Costo
• La seguridad no es la prioridad en el desarrollo
¿Por qué las aplicaciones web son inseguras?
• Tiempos destinados a reparación de vulnerabilidades
extensos
• El protocolo HTTP no fue diseñado pensando en seguridad
• Ha mejorado pero no es suficiente para el nivel de seguridad
requerido en la actualidad
• Errores de programación (BUGS)
Panorama Actual
Web Application Security Statistics 2008 - WASC
• En 12,186 aplicaciones web - 97,554 vulnerabilidades.
• 49% de las aplicaciones tienen vulnerabilidades de alto
riesgo.
• Vulnerabilidades de alto riesgo – 80% a 96% (Al revisar
código fuente).
WhiteHat WebSite Security Statistics Report 2011
• Se analizaron 3000 aplicaciones web (2010).
• 71% orientadas a la educación expuestas a vulnerabilidades
graves.
• 64% vulnerables a Cross-Site Scripting.
• 14% presentan vulnerabilidad a SQLInjection.
• 50% de las organizaciones tardaron 116 días en remediar
vulnerabilidades graves.
Tiempos de respuesta aproximados
(En días)
106
93
62
57
87
78
67 Cross-Site Scripting
Fuga de Información
Falsificación de Contenido
Problemas de Privilegios
SQL Injection
Cross-Site Request Forgery
Secuestro de Sesión
Referencia: 2011: Web Application Security Metrics Landscape – Arian Evans / WhiteHat Security
¿Cómo mejorar?
• Reducir riesgos entendiendo las amenazas.
• Asegurar desde el inicio del Ciclo de Vida de Desarrollo de
Software (SDLC).
• Implementar estrategias de seguridad más allá del
código de las aplicaciones web.
Firewall de Aplicación Web
• Tipo de firewall que aplica un conjunto de reglas y políticas al
tráfico HTTP.
• Detecta y bloquea ataques dirigidos a las aplicaciones web.
• Protege contra ataques como Cross-Site Scripting (XSS),
SQL Injection y otros listados en el Top 10 de OWASP.
Beneficios de un WAF
• Brinda protección desde su implementación*.
• Contiene ataques mientras se solucionan vulnerabilidades.
• No se requiere la modificación del código de las aplicaciones
web.
Ventajas de su implementación
• Detecta y bloquea ataques antes de que alcancen a las
aplicaciones web.
• No importa el lenguaje y plataforma de desarrollo de la
aplicación web.
• Protege cualquier servidor web.
Ventajas de su implementación
• Genera bitácoras detalladas de las transacciones HTTP.
• Monitoreo de tráfico HTTP.
• Variedad de soluciones WAF open source y de paga.
Desventajas de su implementación
• Sufren de falsos positivos y falsos negativos.
• Requiere de un periodo de pruebas y adecuación.
• Requiere cambiar la configuración de cifrado SSL, tanto en el
WAF como en los servidores web.
Desventajas de su implementación
• Consume más recursos (Procesador, RAM, espacio en DD).
• Puede provocar problemas de cuello de botella.
• Si las aplicaciones web cambian puede que se requiera
adecuar el WAF a los cambios.
¿Firewall?¿Firewall de Aplicación?
• Trabajan en diferentes niveles del modelo OSI.
• El firewall de red bloquea conexiones filtrando puertos y
direcciones IP.
• El WAF bloquea transacciones HTTP filtrándolas por su
contenido.
Firewall y Firewall de Aplicación
7 • Capa de Aplicación
6 • Capa de Presentación
5 • Capa de Sesión
4 • Capa de Transporte
3 • Capa de Red
2 • Capa de Enlace de Datos
1 • Capa Física
Firewall de
Aplicación
Firewall de
Red
¿Cómo funciona
un Firewall de Aplicación?
• Monitorea el tráfico HTTP.
• Lo analiza aplicando un conjunto de reglas predefinidas
(Basadas en expresiones regulares).
• Bloquea o permite la petición HTTP.
• Registra en bitácoras.
¿Cómo funciona?
• ¿Dónde implemento el WAF?
• ¿Qué sucede cuando el WAF detecta una anomalía o
ataque?
• ¿Cómo quiero que se lleve a cabo la detección de anomalías
y ataques?
¿Cómo funciona?
Modo de implementación
Dispositivo a Nivel de Red
Modo de implementación
Dispositivo a Nivel de Red
Modo de implementación
Embebido
Modo de implementación
Proxy Inverso
Modos de funcionamiento
Modo Pasivo
• El WAF se limita al monitoreo de las transacciones HTTP y al
registro en bitácoras de anomalías o ataques detectados.
• No ejecuta acciones defensivas.
• Útil durante fase de adecuación y pruebas, ayuda a
disminuir los casos de falsos positivos y negativos.
Modos de funcionamiento
Modo Activo
• El WAF ejecuta las acciones defensivas especificadas en el conjunto de reglas al detectar un ataque o anomalía.
• Registrar en bitácora anomalías o ataques detectados.
• No se recomienda su uso sin antes pasar por un periodo de pruebas en modo pasivo.
Modelos de seguridad
Positivo / Lista Blanca
• Se define en el WAF todo lo que está permitido.
• Lo que no esté definido será rechazado.
• Es difícil de mantener en entornos que cambian
frecuentemente.
• Se requiere amplio conocimiento de la aplicación.
Modelos de seguridad
Negativo / Lista Negra
• Se define en el WAF todo lo que está prohibido
(Patrones de ataques web).
• Permite todo lo que no está definido en la lista negra.
• Si la aplicación web cambia, no precisa de muchos
ajustes.
• Más fáciles de configurar y administrar.
• Metodología que sirve como punto de referencia para evaluar
WAFs.
• Criterios de evaluación para determinar la calidad y
funcionalidad de una solución WAF.
• Creada por la WASC para ayudar a los especialistas en
seguridad a tomar una decisión.
WAFEC
Web Application Firewall Evaluation Criteria
¿Qué le debo exigir a un WAF?
• Soporte completo para HTTP y HTTPS (SSL/TLS).
• Conjunto de reglas actualizables.
• Mecanismos anti-evasión o de normalización.
• Alta disponibilidad y rendimiento.
• Registros en bitácoras.
Top 10 OpenSource WAFs
Referencia:http://www.fromdev.com/2011/07/opensource-web-application-firewall-waf.html
Smoothwall
Profense
IronBee
OpenWAF
Guardian @JUMPERZ.NET
Binarysec
WebCastellum
ESAPI WAF
AQTronix WebKnight
ModSecurity
ModSecurity
• Módulo open source de Apache HTTPD.
• Agrega funcionalidad de Firewall de Aplicación.
• Desarrollado y mantenido por la compañía Trustwave
SpiderLabs.
• Disponible bajo la licencia GNU General Public License.
Características
• Modo embebido o proxy inverso.
• Modelos de seguridad activo y pasivo.
• Portabilidad: GNU/Linux, Windows, UNIX, MacOS.
• Conjunto de reglas básicas y especializadas.
• Mecanismos anti-evasión.
• Correlación de eventos de seguridad.
• Consola de monitoreo gráfico.
• Registro en bitácoras.
Conclusión
• La seguridad en aplicaciones web es acerca de entender las
amenazas. “Entre más sepamos más nos podemos preparar”.
• Un sistema es tan fuerte como lo sea su eslabón más débil.
• No se puede eliminar el riesgo, solo se puede reducir.
• Hacer uso de todas las herramientas de seguridad a nuestra
disposición.
Referencias de Seguridad
• WASC:
– http://www.webappsec.org
• OWASP:
– https://www.owasp.org
• WhiteHat Security:
– https://www.whitehatsec.com