Post on 21-Dec-2014
description
Madrid, diciembre 2005OWASP – presentación del proyecto
Página 1
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
El conferenciante
Página 2
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 3
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.
Orientación del proyectoIntentar 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.
Sponsors:
Página 4
Orientación OWASP - Ciclo de desarrollo seguro
Diseñar Construir Desplegar Operar Descartar
DiseñoRequisitos y casos de uso
Planes de prueba
Código Resultados de las pruebas
Análisis de despliegue
Casos de abusoCasos de abusoRequisitos de Requisitos de seguridadseguridad
Análisis de Análisis de riesgosriesgos
Análisis de Análisis de riesgosriesgos
Revisión Revisión externaexterna
Pruebas de Pruebas de seguridad seguridad en base al en base al riesgoriesgo
Análisis estático Análisis estático (herramientas)(herramientas)
Pruebas de Pruebas de intrusiónintrusión
Problemas Problemas de de seguridadseguridad
Página 5
Orientación OWASP - ¿Por qué?
Retorno de inversión en el arreglo de vulnerabilidades web
21
1512
0
5
10
15
20
25
Diseño Implementación Pruebas
¿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)
Fuente: “Tangible ROI through software engineering” SBQ, vol 1, nº 2
Página 6
El proyecto OWASP - Historia
Septiembre 2001: Arranca el proyecto OWASP
Junio 2002: OWASP Guide to Building Secure Web Applications (~90 pgs)
Octubre 2002: VulnXML, WebScarab
Enero 2003: OWASP Top Ten, primera versión
Abril 2003: Codeseeker
Enero 2004: OWASP Top Ten, Proyectos beta: OWASP Labs
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 SecurityStandard“ de VISA
Abril 2005: Conferencia OWASP Appsec, Londres
Julio 2005: OWASP Guide 2.0 (Black Hat) (~300 pgs)
Octubre 2005: Conferencia OWASP Appsec, Washington DC
Estado actual
Nuevos proyectos para el 2005: OWASP Standard, OWASP Legal (contratación, regulación, RFPs), J2EE y Web Services (guías, metodologías y herramientas)
Página 7
El proyecto OWASP - Proyectos en la actualidad
Desarrollo:
WebGoat
WebScarab
DotNet
Validation
oLabs
Miscelánea:
Capítulos Locales
Internacional
Conferencias
Documentos y Guías:
Legal
Guide
Publicaciones
Testing
Métricas
AppSec FAQ
Top Ten
ISO17799
Activo
Activo
ActivoParado
Parado
Muy activosActivo
Activo
Parado
ActivoActivo
Activo
Parado
Dudoso
Parado
Parado
Página 8
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
OWASP “Top Ten”
Página 9
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.
OWASP Guide
Trata:
Arquitecturas web
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
Formas canónicas y tratamiento de codificaciones Unicode
Despliegue y configuración
http://www.owasp.org/documentation/guide.html
Página 10
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
OWASP Testing Guide
http://www.owasp.org/documentation/testing.html
Attack targetdirected to
exploitvulnerability
Information Gathering- Harvest Information on the infrastructure and web environment- Harvest Information of the interactive applications and dynamic content generation used- Produce results for start of test
Results: - Tested and succeeded vulnerabilities - Detailed impact and consequences of vulnerabilities in web service
Has apossible
vulnerability been detected?(Programming error, configuration
error or systemvulnerability)
Go through each phase to testfor individual weaknesses: - Input Validation - Session Manipulation - Logon Process, etc.
Is internalinformation leaked? (Source
code fragments implementationinformation, etc.)
Is theinformation business
critical?
Generate analert and
contact theOrganization
Can thevulnerabilitycompromisethe service?
Make a risk assessmentof the vulnerability
Did theattack succeed?
Haveall attack methods
been exhausted andinvestigated?
Haveall possible testsbeen executed?
Tester
Yes
YesYes
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No
No
No
En desarrollo: segunda fase de la guía de pruebas:
•descripción detallada de vulnerabilidades
• riesgos asociados
•pruebas y mecanismos para detectarlas
•caja blanca
•caja negra.
Página 11
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 - WebGoat y WebScarab
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 12
Demo¿saldrá todo bien?
Demo
Página 13
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 WebServices (.NET está ya cubierto)
Y el desarrollo de la fundación OWASP, con el objetivo de dar sostenibilidad al proyecto.
Página 14
Otros proyectos
Otros proyectos relacionadosExisten 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 15
Algunas referencias ya comentadas:
Proyecto OWASP
http://www.owasp.org/
Proyecto OWASP en Sourceforge
http://sourceforge.net/projects/owasp
Referencias de utilidad
Y algunas nuevas:
Build Security In Portal
https://buildsecurityin.us-cert.gov/portal/
Secure Coding: Principles and Practices
http://www.securecoding.org/
CGI Security
http://www.cgisecurity.net/
WWW Security FAQ
http://www.w3.org/Security/Faq/
Secure Programming for UNIX and Linux HOWTO
http://www.dwheeler.com/secure-programs/
Listas de correo:
owasp-guide@sourceforge
owasp-testing@sourceforge
owasp-topten@sourceforge
owasp-dotnet@sourceforge
webappsec@securityfocus.com
pen-test@securityfocus.com
Página 16
Libros recomendados:
Apache Security, Ivan Ristic, ISBN-0596007248
Core Security Patterns : Best Practices and Strategies forJ2EE(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, KennethR.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
Libros recomendados
Página 17
Fin
Gracias por vuestra atención
Página 18
¿?
¿Preguntas?