El documento describe CodeSeeker, un firewall de nivel 7 de código abierto. Habla sobre sus funcionalidades actuales como filtrar tráfico sospechoso y generar alertas, y funcionalidades futuras como actuar como proxy. También describe proyectos de OWASP como WebGoat para realizar ataques de prueba controlados, y OWASP Top Ten que enumera los 10 tipos más comunes de vulnerabilidades web.
2. CodeSeeker – Un Firewall de Nivel 7 OpenSource
Índice
Conceptos de Redes
TCP/IP
Firewalls
Tipos de Firewalls
CodeSeeker
Funcionalidades actuales
Funcionalidades futuras
Arquitectura
OWASP Top Ten
OWASP
Proyectos de la OWASP:
Desarrollo
Documentación
oPortal
VulnXML
WAS-XML
WebGoat
Ataques Web con WebGoat
Ataques Web típicos
Protección con CodeSeeker
{Demostraciones
3. CodeSeeker – Un Firewall de Nivel 7 OpenSource
OWASP (Open Web Application Security Project)
• Se crea en Septiembre de 2001.
• Surge como una idea en la lista de discusión web-app-sec.
• Mark Curphey (fundador de OWASP), entre otros, planteaban la
necesidad de disponer de un manual similar al OSSTMM de Pete Herzog
(fundador de ISECOM) pero dedicado en exclusiva a aplicaciones web.
• Su objetivo es aunar esfuerzos y ser un referente OpenSource para
ingenieros de sistemas, desarrolladores, fabricantes, proveedores y
profesionales de la seguridad.
• Ayudar a construir aplicaciones y servicios web más seguros.
• Publicar guías y herramientas para el Diseño, Desarrollo, Implantación y
Testing de aplicaciones y servicios web y de la seguridad de estas.
4. CodeSeeker – Un Firewall de Nivel 7 OpenSource
Proyectos de la OWASP (I)
• Se coordinan estos tipos proyectos:
Documentación
Desarrollo
oPortal
5. CodeSeeker – Un Firewall de Nivel 7 OpenSource
Proyectos de la OWASP (II)
• Desarrollo:
WebScarab:
Es una suite de herramientas para el análisis de aplicaciones web que incluye
detectores de vulnerabilidades, proxies para análisis de datos transmitidos, etc.
CodeSeeker:
Consiste en un Firewall e IDS “similar a los comerciales” a Nivel 7 que funciona bajo
Windows, Solaris y Linux y soporta IIS, Apache e iPlanet.
WebGoat:
Es un mini-portal de entrenamiento para realizar ataques controlados a nivel de
aplicación web. Permite simular ataques habituales que se producen explotando
deficiencias de seguridad en las aplicaciones web.
OWASP Commons Library (OCL):
Pretende ser una librería rápida, de pequeño tamaño y centrada en la seguridad.
Está programada en Java para permitir la construcción de aplicaciones web
escalables y seguras corriendo sobre un motor de servlets J2EE sin apenas consumir
recursos.
6. CodeSeeker – Un Firewall de Nivel 7 OpenSource
Proyectos de la OWASP (III)
• Documentación (I):
Guía de Desarrollo Seguro de Aplicaciones Web:
Esta guía, con 2 millones de descargas (v1.0), y que en su versión 2.0 será
publicada como un manual (existe una beta en PDF) está orientada a arquitectos,
desarrolladores y auditores que quieren conocer que “buenas maneras” deben
tenerse en cuenta en el desarrollo de aplicaciones web.
Testing Framework:
Proyecto que pretende documentar estrategias y técnicas que permitan testear y
analizar aplicaciones web para la búsqueda de vulnerabilidades.
OWASP Top Ten:
Es un documento inspirado en el Top 20 de SANS. Remarca los más importantes y
frecuentes problemas de seguridad que suelen darse en las aplicaciones web hoy
en día. Coming soon – The OWASP Top Ten for Java and PHP!
7. CodeSeeker – Un Firewall de Nivel 7 OpenSource
Proyectos de la OWASP (IV)
• Documentación (II):
Política de Seguridad Web :
Pretende ser una “plantilla” para el diseño de políticas de seguridad para
aplicaciones web.
ISO-17799 & Seguridad Web :
Este proyecto quiere documentar la forma en que la ISO17799 puede o debe ser
aplicada en el proceso de diseño, desarrollo y despliegue de aplicaciones web en
producción.
8. CodeSeeker – Un Firewall de Nivel 7 OpenSource
Proyectos de la OWASP (V)
• oPortal:
Un portal basado en Java y diseñado con la seguridad como principal
aspecto.
También es OpenSource, con lo que cualquiera podrá emplear el código
para crear su propio portal.
9. CodeSeeker – Un Firewall de Nivel 7 OpenSource
VulnXML
Web Application Security Vulnerability Description Language
El objetivo principal era unificar la definición de vulnerabilidades a
nivel de aplicación web de manera que su difusión fuese rápida y
universal.
Los advisories no sirven de nada si las empresas no pueden extraer
una protección a partir de ellos de forma directa.
Si con los advisories, al igual que con los sellos “CVE Compliant” o el
estándar del EISPP se busca normalizarlos, se emitiesen en un
formato XML universal, los sistemas de protección podrían hablar un
lenguaje universal.
El proyecto se congela tras un año. Todo el trabajo producido es
traspasado este año a OASIS, un organismo de producción de
estándares. Su sucesor será el proyecto WAS-XML.
10. CodeSeeker – Un Firewall de Nivel 7 OpenSource
WAS-XML
Web Application Security XML
• En Junio de 2003 OASIS continúa el trabajo de la OWASP
con tres objetivos:
1. Un esquema de clasificación para vulnerabilidades web de
seguridad.
2. Un modelo para proveer orientación para el tratamiento inicial de
amenazas, su impacto y por ende, ratios de riesgos asociados.
3. Un esquema XML para describir las condiciones de seguridad en
web que puedan ser empleadas en herramientas de análisis y
protección de seguridad (escáneres de vulnerabilidades, firewalls de
aplicación, sistemas de detección de intrusos, etc.)
11. CodeSeeker – Un Firewall de Nivel 7 OpenSource
WebGoat (I)
• La idea básica de WebGoat es poder probar los ataques web en un
entorno quasi-real pero controlado.
• Es una aplicación web con características similares a una real.
• Permite opciones simples de análisis de cookies, código fuente, etc.
• Permite realizar ataques en forma de “caja negra”, tal y como pasa en el
mundo real.
• Con una herramienta de captura de tráfico HTTP podemos estudiar
fácilmente los ataques.
• Conociendo estos ataques podemos entender cómo y por qué son
explotados.
• Es OpenSource, podemos colaborar en su mejora y en aportar nuevas
ideas.
12. CodeSeeker – Un Firewall de Nivel 7 OpenSource
WebGoat (II)
• ¿Qué permite WebGoat?
Conocer los conceptos básicos de HTTP
Ataques de Cross Site Scripting (XSS)
Ataques en procesos de Autenticación débiles
Exploit de Campos Ocultos
Analizar HTML para obtener información
Ataques de inyección de parámetros
Ataques de SQL Injection
Explotar deficiencias de Seguridad entre Threads
Exploit de direcciones de Email
Spoofing de Cookies de Autenticación
Reto
13. CodeSeeker – Un Firewall de Nivel 7 OpenSource
Conceptos de Redes
• El Modelo OSI: 7 Capas • El Modelo TCP/IP: 4 Capas
14. CodeSeeker – Un Firewall de Nivel 7 OpenSource
TCP/IP
• Paso de Datos entre capas
15. CodeSeeker – Un Firewall de Nivel 7 OpenSource
Firewalls
• Parámetros usados para el filtrado
- Datos TCP: Flags - Datos IP: Dirección IP Origen
Dirección IP Destino
16. CodeSeeker – Un Firewall de Nivel 7 OpenSource
Screening Routers / Statefull Firewalls / Firewalls de Nivel 7
17. CodeSeeker – Un Firewall de Nivel 7 OpenSource
CodeSeeker (I)
• CodeSeeker surge como un producto de la empresa de Silicon Valley,
Butterfly Security. Que en el 2001, la empresa cierra.
• En lugar de tirar a la basura el proyecto, a finales de 2002, Gabriel
Lawrence (fundador de la empresa), decide liberar el código, darle
licencia GPL y convertirlo en un proyecto OpenSource.
• Así, a principios de 2003 está disponible la primera versión del código
fuente, en versión “pre-alpha”.
• Los objetivos del proyecto: convertirse en un Firewall de Aplicación
comparable a productos comerciales de Sanctum, Kavado y
SpyDinamics, fabricantes de soluciones de FW de Nivel 7, pero coste 0
para que todas las empresas se puedan aprovechar de esta tecnología.
• Actualmente el proyecto lleva un retraso de 6-9 meses, sobretodo debido
a la poca documentación del proyecto y a que su desarrollo sobre Linux
no es el más avanzado. Las expectativas de G.L. en el proyecto son
grandes y ya son muchas las personas que quieren colaborar en él.
18. CodeSeeker – Un Firewall de Nivel 7 OpenSource
CodeSeeker (II)
19. CodeSeeker – Un Firewall de Nivel 7 OpenSource
CodeSeeker (III)
• Las funcionalidades actuales:
1. Permite definir políticas de seguridad asociadas a cada uno de los
servidores.
2. Existen cuatro políticas genéricas de seguridad:
• Dejar pasar todo el tráfico, logeando las URL sospechosas.
• Bloquear tráfico sospechoso basado en patrones de vulnerabilidades.
• Bloquear tráfico sospechoso basado en comportamientos genéricos.
• Bloquear todo el tráfico sospechoso.
3. Para cada una de las alertas/vulnerabilidades permite definir cuatro tipos
de acciones de notificación:
• Enviar un correo electrónico.
• Generar un evento en el syslog.
• Generar un evento en el NT Event Log.
• Loggear el evento a un fichero.
20. CodeSeeker – Un Firewall de Nivel 7 OpenSource
CodeSeeker (IV)
3. También permite dos opciones en la navegación (del atacante):
• Bloquear la petición con una un error configurable.
• Redigir la petición a otra URL.
4. Podemos aplicar filtros de inclusión o exclusión en el filtrado, a archivos,
carpetas o toda la web.
5. En cuanto a las herramientas de análisis:
• Ofrencen información gráfica de los ataques más detectados.
• La URL de ataques más detectados.
• Las máquinas que más alarmas han hecho saltar.
• De cada uno de los ataques podremos saber la hora a la que se produjo,
origen, URL, servidor en el que se produjo, etc.
21. CodeSeeker – Un Firewall de Nivel 7 OpenSource
CodeSeeker (V)
• Las funcionalidades previstas a corto plazo son:
1. Transformarlo para su funcionamiento como proxy:
• Permitir que CodeSeeker funcione como un proxy, aplicando los controles de
seguridad a las peticiones HTTP que pasen por él.
• Convertir CodeSeeker en un terminador SSL o en túnel SSL entre cliente y
servidor web empleando certificados compartidos.
• Permitir que CodeSeekeer se comporte como un balanceador de carga,
permitiendo repartir las peticiones a los diferentes backends por detrás de él.
2. Integrarlo con VulnXML WAS-XML
• Conseguir que CodeSeeker lea y emplee las descripciones que establecerá
el estándar WAS-XML de OASIS para sus reglas de filtrado y detección.
• Dar a CodeSeeker la capacidad de crear reglas para la BD WAS-XML de
forma dinámica a partir de tráfico sospechoso.
22. CodeSeeker – Un Firewall de Nivel 7 OpenSource
CodeSeeker (VI)
• Las funcionalidades previstas a largo plazo son:
1.Informes más flexibles y atractivos permitiendo obtener análisis a a
partir de la actividad reportada.
2.Documentación de Instalación y Referencia. Ampliando el breve
documento de instalación y uso que existe ahora.
3.Mejoras de rendimiento generales.
23. CodeSeeker – Un Firewall de Nivel 7 OpenSource
CodeSeeker (VII)
• Su arquitectura se basa en dos componentes:
Conectores:
• Son los agentes que se instalan en los servidores web.
• Se encargan de capturar o bloquear el tráfico HTTP.
• Por su estructura y la disposición en la pila IP, pueden parsear un ancho
de banda elevado.
• Debido a que están en esa posición también, son capaces de leer el
tráfico SSL, ya que acceden a los datos HTTP después de su
desencriptado. De esta forma no requieren certificados ni ningún otro tipo
de “extra”.
• Los conectores también pueden operar en entornos de balanceadores de
carga sin la necesidad de distribuir el tráfico de ninguna forma especial.
• Actualmente existen conectores para Windows NT, Solaris y, en versión
beta, para Linux.
• Están desarrollados C y C++.
24. CodeSeeker – Un Firewall de Nivel 7 OpenSource
CodeSeeker (VII)
• Los conectores se añaden como un filtro más dentro de IIS:
25. CodeSeeker – Un Firewall de Nivel 7 OpenSource
CodeSeeker (VIII)
Consolas:
• Nos permiten definir, gestionar y parametrizar la políticas que se aplican
en cada uno de los servidores HTTP.
• Podemos monitorizar las alertas generadas, conocer qué la generó, con
que datos se generó, su origen, etc.
• Nos permite generar reports de análisis de la actividad.
• Podemos controlar tantos conectores como queramos desde una única
consola.
• Es capaz de enviar información sobre esta monitorización a otras
herramientas como HP OpenView o Tivoli a través de SNMP.
• Están programados en Java.
• Se pueden ejecutar sobre cualquier Java VM.
26. CodeSeeker – Un Firewall de Nivel 7 OpenSource
CodeSeeker (IX)
La Consola de Gestión (CMC) es el centro de definición de políticas
de seguridad, análisis de ataques, etc.:
27. CodeSeeker – Un Firewall de Nivel 7 OpenSource
OWASP Top Ten (I)
• OWASP Top Ten define los diez tipos más críticos o
comunes de vulnerabilidades en las aplicaciones web:
Parámetros no validados: La información proveniente de los
clientes web no se valida antes de ser usada por la aplicación web.
Toda la información que deba ser utilizada en el servidor debe ser
analizada previamente, preferiblemente por una capa o componente
separado pero que centralice este filtrado.
Control de acceso débil: En las aplicación existen puntos donde los
usuarios se autentican para tener acceso a estas. Tras conseguir el
acceso, se debe gestionar qué y qué no pueden hacer los usuarios.
Esta gestión debe estar planificada, centralizada y monitorizada.
Gestión de cuentas y sesiones inadecuada: Las credenciales de
acceso y los tokens de sesión no se protegen. No se presta la
atención adecuada en la gestión de las sesiones ya establecidas.
28. CodeSeeker – Un Firewall de Nivel 7 OpenSource
OWASP Top Ten (II)
Vulnerabilidades de Cross-Site Scripting (XSS): Las aplicaciones
web pueden ser una forma de ataque indirecto hacia sus usuarios. Un
ataque efectivo de XSS puede permitir robar información de la sesión,
información almacenada en el ordenador del usuario y permitir la
suplantación de este.
Buffer Overflows: En componentes (CGIs, librerías, drivers, etc.) de
aplicaciones web que están programados en lenguajes que no
validan las longitudes de los datos que manejan, se pueden dar
situaciones de error que hagan interrumpir o cambiar el flujo de
ejecución, permitiendo que código malévolo tome el control del
proceso.
Vulnerabilidades que permitan inyección de comandos: Si los
parámetros o datos no se analizan antes de ser usados, pueden
permitir la inyección de comandos SQL, SO, script (PHP, ASP, etc.)
29. CodeSeeker – Un Firewall de Nivel 7 OpenSource
OWASP Top Ten (III)
Problemas en en tratamiento de errores: Habitualmente se
producen condiciones de error, por valores incorrectos en datos de
formularios, o caracteres inválidos, etc. Debe existir una capa de
gestión de errores, que mantenga la estabilidad de la aplicación y que
impida que se revele información sobre la lógica de la aplicación en
estos errores.
Uso inapropiado de criptografía: Las aplicaciones, frecuentemente
emplean métodos débiles para proteger las credenciales o la
información. Estas funciones, muchas veces, son simples algoritmos
de codificación o de encriptación débil sin aportar protección real.
Gestión Remota vía web: Muchos administradores emplean
herramientas de gestión remota de servidores a través de
aplicaciones web, pero estas no son configuradas de forma segura,
permitiendo un acceso total a estas máquinas.
30. CodeSeeker – Un Firewall de Nivel 7 OpenSource
OWASP Top Ten (IV)
Configuración incorrecta de los servicios y aplicaciones web:
Los Sistemas Operativos al igual que los servicios que están
expuestos públicamente, tras su instalación, deben sufrir procesos de
securización y tuning. Este proceso también debe aplicarse a las
aplicaciones web que corren sobre estos servicios y se ejecutan
sobre estos SSOO. Las opciones “out of the box” prácticamente
siempre no implican seguridad.
31. CodeSeeker – Un Firewall de Nivel 7 OpenSource
Algunos de los ataques del Top Ten en WebGoat
• Unvalidated Parameters
• Broken Access Control
• Broken Account and Session Management
• Cross-Site Scripting (XSS)
• Command Injection Flaws:
Parameter Injection
SQL Injection
32. CodeSeeker – Un Firewall de Nivel 7 OpenSource
Ataques Web típicos
• Information Leaks
• Unicode Characters
• Hidden files
• /etc/* Files Detector
• cmd.exe Detector
• .....
33. CodeSeeker – Un Firewall de Nivel 7 OpenSource
Protección con CodeSeeker
• Configuración de Políticas
• Gestión de ataques
• Tratamiento de alertas
• Parametrización de los tipos de ataques.
• Reports de estado.
• etc...