Este documento presenta el proyecto OWASP (Open Web Application Security Project). OWASP es una organización independiente dedicada a mejorar la seguridad de software mediante la publicación de guías, herramientas y estándares de código abierto. El documento describe varios proyectos de OWASP como guías, aplicaciones como WebGoat y WebScarab, y la lista de las 10 vulnerabilidades web más comunes (OWASP Top 10). También explica cómo contribuir al proyecto y menciona otros proyectos relacionados.
2. El conferenciante
Javier Fernández-Sanguino <jfernandez@germinus.com>
Consultor y jefe de proyecto en la división de seguridad IT de
Germinus XXI, S.A.
Ingeniero de Telecomunicación por la ETSIT-UPM,
Miembro de diversos grupos de desarrollo de software libre
dentro del proyecto Debian, y de los de diversas herramientas
de seguridad, entre otras: Tiger, Nessus, y Bastille.
Miembro fundador del grupo español de la Honeynet Alliance
Miembro del grupo OWASP Testing
Página 1
3. El proyecto OWASP
Presentación del Proyecto OWASP
-Introducción
-Historia
-Proyectos OWASP
- Orientación y enfoque
- Guías y metodologías: OWASP Top 10, OWASP Guide y OWASP Testing
Guide
- Aplicaciones: WebScarab y Webgoat
[DEMO]
-Cómo contribuir al proyecto
-Otros proyectos relacionados
-Referencias útiles
Página 2
4. El proyecto OWASP - Introducción
¿Qué es el proyecto OWASP?
Una organización independiente dedicada a encontrar y luchar contra las causas del
software inseguro. Organizado en proyectos y capítulos locales repartidos por todo
el mundo que desarrollan documentación, herramientas y estándares de fuentes
abiertas (GPL, GFDL, LGPL). Está abierta a la participación de cualquier persona y
patrocinador.
Sponsors:
Orientación del proyecto
Intentar que el mundo produzca mejores programas. Mediante:
-El desarrollo de herramientas útiles para identificar los fallos y
corregirlos.
-La educación de los grupos involucrados, para evitar que se
produzcan fallos.
-La definición de estándares.
-El fomento de la discusión de problemas a través de una comunidad
abierta.
Página 3
5. Orientación OWASP - Ciclo de desarrollo seguro
Diseñar Construir Desplegar Operar Descartar
Pruebas de Análisis estático Pruebas de
seguridad (herramientas) intrusión
Casos de abuso Análisis de Revisión en base al Problemas
Requisitos de riesgos externa riesgo Análisis de
riesgos de
seguridad seguridad
Requisitos y Diseño Código Resultados
Planes de Análisis de
casos de uso de las
prueba despliegue
pruebas
Página 4
6. Orientación OWASP - ¿Por qué?
¿Cuándo arreglar vulnerabilidades?
• Es mejor identificar, buscar y arreglar los problemas de seguridad lo antes posible.
• Cuanto más tarde se arregle un problema el coste será mayor.
• Si se arreglan pronto se evitan también los costes de mantenimiento (parches)
Retorno de inversión en el arreglo de
vulnerabilidades web
25
21
20
15
15 12
10
5
0
Diseño Implementación Pruebas
Fuente: “Tangible ROI through software engineering” SBQ, vol 1, nº 2
Página 5
7. El proyecto OWASP - Historia
Septiembre 2001: Arranca el proyecto Abril 2005: Conferencia OWASP Appsec,
OWASP Londres
Junio 2002: OWASP Guide to Building Secure Julio 2005: OWASP Guide 2.0 (Black Hat)
Web Applications (~90 pgs) (~300 pgs)
Octubre 2002: VulnXML, WebScarab Octubre 2005: Conferencia OWASP Appsec,
Washington DC
Enero 2003: OWASP Top Ten, primera
versión Estado actual
Abril 2003: Codeseeker Nuevos proyectos para el 2005: OWASP
Standard, OWASP Legal (contratación,
Enero 2004: OWASP Top Ten, Proyectos
regulación, RFPs), J2EE y Web Services
beta: OWASP Labs
(guías, metodologías y herramientas)
Junio 2004: Conferencia OWASP Appsec, NY
Abril 2004: OWASP PenTest checklist
Diciembre 2004: OWASP Testing Guide
Febrero 2005: OWASP Top Ten introducido
en "Payment Card Industry Data Security
Standard“ de VISA
Página 6
8. El proyecto OWASP - Proyectos en la actualidad
Desarrollo: Documentos y Guías:
WebGoat Activo Legal Activo
WebScarab Activo Guide Activo
DotNet Activo Publicaciones Activo
Validation Parado Testing Dudoso
oLabs Parado Métricas Parado
Miscelánea: AppSec FAQ Parado
Capítulos Locales Muy activos Top Ten Parado
Internacional Activo ISO17799 Parado
Conferencias Activo
Página 7
9. OWASP “Top Ten”
Vulnerabilidades más frecuentes según OWASP
Esta es la lista de problemas que dan lugar a vulnerabilidades de seguridad en el desarrollo web más
frecuentes según el proyecto OWASP:
• A1 Validación incorrecta de parámetros de entrada.
• A2 Errores en el control de acceso.
• A3 Errores en la autenticación y gestión de sesiones.
• A4 Guiones a través del servidor (XSS).
• A5 Sobrecarga de búfer.
• A6 Inyección de código.
• A7 Gestión inapropiada de los errores.
• A8 Almacenamiento no seguro.
• A9 Denegación de servicio.
• A10 Gestión incorrecta de configuración (de servidores de web y de aplicaciones)
Traducido a cinco idiomas.
http://www.owasp.org/documentation/topten.html
Página 8
10. OWASP Guide
OWASP Guide
Manual para diseñar, desarrollar y desplegar aplicaciones web, y dirigada a arquitectos de sistemas,
programadores, consultores y auditores. Actualmente llega casi a las 300 páginas.Desde el 2002 se
han descargado más de dos millones de copias y está ampliamente referenciada en estándares
gubernamentales, financieros y corporativos.
Trata: Formas canónicas y tratamiento de codificaciones
Unicode
Arquitecturas web
Despliegue y configuración
Mecanismos de autenticación
Mecanismos de control de acceso
Mecanismos de gestión de sesiones
Mecanismos de registro y auditoría
Validación de datos
Problemas de inyección (código, XSS, SQL,
XML, LDAP...)
Privacidad
Criptografía
http://www.owasp.org/documentation/guide.html
Página 9
11. OWASP Testing Guide
OWASP Testing Guide
Guía para definir una metodología de pruebas de seguridad en aplicaciones web pero no enfocada a
las pruebas de intrusión sino al ámbito del ciclo de vida de desarrollo de software e introduciendo
actividades de pruebas como la definición de modelos de riesgo, la revisión de código fuente y las
pruebas de intrusión.
Documentos producidos hasta la fecha:
•OWASP Testing Guide (phase 1) – introducción a la metodología
•OWASP Web Application Penetration Checklist – pruebas de intrusión y metodología
Information Gathering
- Harvest Information on the infrastructure and web
environment
En desarrollo: segunda fase de la guía de
- Harvest Information of the interactive applications and
dynamic content generation used
Tester - Produce results for start of test
pruebas: No
Have
No
Go through each phase to test
for individual weaknesses:
- Input Validation
- Session Manipulation
- Logon Process, etc.
Have Yes all attack methods
all possible tests been exhausted and
been executed? investigated?
•descripción detallada de vulnerabilidades No
Has a
No possible
vulnerability been detected?
(Programming error, configuration
• riesgos asociados
error or system
Did the vulnerability)
attack succeed?
Yes
Yes No
Attack target
•pruebas y mecanismos para detectarlas
directed to
exploit
Make a risk assessment vulnerability
of the vulnerability
Yes
Yes
•caja blanca Can the
vulnerability
compromise
the service?
No
Is internal
information leaked? (Source
code fragments implementation
information, etc.)
Yes
•caja negra.
Yes
Results:
- Tested and succeeded vulnerabilities
- Detailed impact and consequences Generate an
Yes Is the
of vulnerabilities in web service alert and
information business
contact the
critical?
Organization
No
http://www.owasp.org/documentation/testing.html
Página 10
12. OWASP - WebGoat y WebScarab
OWASP WebGoat
Aplicación J2EE basada en Tomcat desarrollada para enseñar los problemas de aplicaciones web a
través de lecciones en las que se simulan vulnerabilidades en un servidor:
-Pruebas de inyección SQL, XSS
-Manipulación de campos ocultos
-Identificadores de sesión débiles
-....
http://www.owasp.org/software/webgoat.html
OWASP Webscarab
Herramienta multiplataforma (Java) para realizar pruebas de aplicaciones
web funcionando como proxy interceptor:
-Registra todos los accesos (documentación)
-Modificación arbitraria de peticiones y respuestas
-Extensible a través de complementos: análisis de identificadores de sesión,
pruebas automáticas de parámetros (fuzzer), consultas SOAP
http://www.owasp.org/software/webscarab.html
Aunque no es la única herramienta de estas características (httpush, paros,
spikeproxy...)
Página 11
14. Cómo contribuir / Trabajos futuros
Contribuir con el proyecto OWASP:
El proyecto no sólo está abierto a contribuciones sino que las necesita.
Contribuir es sencillo, se puede hacer:
-Enviando comentarios sobre las guías y documentación disponibles
-Probando las aplicaciones, reportando erratas y extendiéndolas
-Patrocinando un proyecto (€€€)
Trabajos futuros
Los trabajos que quieren desarrollarse a lo largo del próximo año:
-Versión 2.1 de OWASP Guide en desarrollo (publicada en papel)
-Fase 2 de la OWASP Testing Guide
-OWASP Legal – definir la contratación, regulación, y RFPs
-Nuevas guías, metodologías y herramientas enfocadas a J2EE y Web
Services (.NET está ya cubierto)
Y el desarrollo de la fundación OWASP, con el objetivo de dar sostenibilidad al
proyecto.
Página 13
15. Otros proyectos
Otros proyectos relacionados
Existen otros proyectos e iniciativas con cierto solape que merece la pena mencionar:
-OASIS Web Application Security (WAS) project, http://www.oasis-
open.org/committees/tc_home.php?wg_abbrev=was
-OASIS Application Vulnerability Description Language (AVDL), http://www.oasis-
open.org/committees/tc_home.php?wg_abbrev=avdl
-Web Application Security Consortium (WASC), http://www.webappsec.org/
-Algunos manuales genéricos de pruebas de intrusión, como el Open Source Security Testing
Methodology Manual (OSSTMM de ISECOM, http://www.isecom.org/osstmm/) o el,
Information Systems Security Assessment Framework (ISSAF de OSSIG,
http://www.oissg.org/ ), cuentan con una sección dedicada a las pruebas sobre aplicaciones
web
No son necesariamente competencia y en algunos casos son complementarios con los
trabajos desarrollados dentro de OWASP.
Página 14
16. Referencias de utilidad
Algunas referencias ya comentadas:
Proyecto OWASP
http://www.owasp.org/
Proyecto OWASP en Sourceforge
http://sourceforge.net/projects/owasp
Y algunas nuevas: Listas de correo:
Build Security In Portal owasp-guide@sourceforge
https://buildsecurityin.us-cert.gov/portal/ owasp-testing@sourceforge
Secure Coding: Principles and Practices owasp-topten@sourceforge
http://www.securecoding.org/ owasp-dotnet@sourceforge
CGI Security webappsec@securityfocus.com
http://www.cgisecurity.net/ pen-test@securityfocus.com
WWW Security FAQ
http://www.w3.org/Security/Faq/
Secure Programming for UNIX and Linux HOWTO
http://www.dwheeler.com/secure-programs/
Página 15
17. Libros recomendados
Libros recomendados:
Apache Security, Ivan Ristic, ISBN-0596007248
Core Security Patterns : Best Practices and Strategies for
J2EE(TM), Web Services, and Identity Management (Core) ,
Christopher Steel, Ramesh Nagappan, Ray Lai, ISBN-
0131463071
J2EE Security for Servlets EJBS and Web Services , Pankaj
Kumar, ISBN-0131402641
Essential PHP Security, Chris Shiflett, ISBN-059600656X
Building Secure Software: How to Avoid Security Problems the
Right Way, John Viega, Gary McGraw, 020172152X
Secure Coding, Principles and Practices, Mark G. Graff, Kenneth
R.Van Wyk, ISBN-0596002424
Exploiting Software, Greg Hoglund, Gary McGraw, ISBN-
0201786958
Security Engineering: A Guide to Building Dependable Distributed
Systems, Ross J. Anderson, ISBN-0471389226
Página 16