34
CodeSeeker – Un Firewall de Nivel 7 OpenSource

CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

Embed Size (px)

DESCRIPTION

Presentación ofrecida durante el Congreso Nacional de Seguridad "No cON Name 2003" celebrado en 2003 en Palma de Mallorca. Se presentó el proyecto de Firewall de Aplicación OpenSource, CodeSeeker, mantenido por la OWASP. Se llevaron a cabo demostraciones del funcionamiento de una versión funcional de CodeSeeker en la protección de uno o más sites webs ante ataques habituales.

Citation preview

Page 1: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource

Page 2: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource

ÍndiceConceptos de RedesTCP/IPFirewallsTipos de FirewallsCodeSeeker

Funcionalidades actualesFuncionalidades futurasArquitectura

OWASP Top Ten

OWASP

Proyectos de la OWASP:DesarrolloDocumentaciónoPortal

VulnXMLWAS-XMLWebGoat

Ataques Web con WebGoatAtaques Web típicosProtección con CodeSeeker{Demostraciones

Page 3: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.

Page 4: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource

Proyectos de la OWASP (I)• Se coordinan estos tipos proyectos:

Documentación

Desarrollo

oPortal

Page 5: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.

Page 6: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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!

Page 7: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.

Page 8: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.

Page 9: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource

VulnXMLWeb 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 yuniversal.

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 estraspasado este año a OASIS, un organismo de producción de estándares. Su sucesor será el proyecto WAS-XML.

Page 10: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource

WAS-XMLWeb 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.)

Page 11: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.

Page 12: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource

WebGoat (II)• ¿Qué permite WebGoat?

Conocer los conceptos básicos de HTTPAtaques de Cross Site Scripting (XSS)Ataques en procesos de Autenticación débilesExploit de Campos OcultosAnalizar HTML para obtener informaciónAtaques de inyección de parámetrosAtaques de SQL InjectionExplotar deficiencias de Seguridad entre ThreadsExploit de direcciones de EmailSpoofing de Cookies de Autenticación

Reto

Page 13: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource

Conceptos de Redes• El Modelo OSI: 7 Capas • El Modelo TCP/IP: 4 Capas

Page 14: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource

TCP/IP• Paso de Datos entre capas

Page 15: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource

Firewalls• Parámetros usados para el filtrado

- Datos TCP: Flags - Datos IP: Dirección IP OrigenDirección IP Destino

Page 16: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource

Screening Routers / Statefull Firewalls / Firewalls de Nivel 7

Page 17: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.

Page 18: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource

CodeSeeker (II)

Page 19: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.

Page 20: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.

Page 21: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.

Page 22: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.

Page 23: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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++.

Page 24: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource

CodeSeeker (VII)• Los conectores se añaden como un filtro más dentro de IIS:

Page 25: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.

Page 26: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.:

Page 27: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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 componenteseparado 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.

Page 28: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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 lasuplantació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 deejecució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.)

Page 29: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.

Page 30: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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.

Page 31: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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 InjectionSQL Injection

Page 32: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource

Ataques Web típicos• Information Leaks• Unicode Characters• Hidden files• /etc/* Files Detector• cmd.exe Detector• .....

Page 33: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

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...

Page 34: CodeSeeker: Un firewall de Nivel 7 OpenSource. No Con Name 2003

CodeSeeker – Un Firewall de Nivel 7 OpenSource