OWASP

19
Madrid, diciembre 2005 OWASP – presentación del proyecto

description

 

Transcript of OWASP

Page 1: OWASP

Madrid, diciembre 2005OWASP – presentación del proyecto

Page 2: OWASP

Página 1

Javier Fernández-Sanguino <[email protected]>

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

Page 3: OWASP

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

Page 4: OWASP

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:

Page 5: OWASP

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

Page 6: OWASP

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

Page 7: OWASP

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)

Page 8: OWASP

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

Page 9: OWASP

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”

Page 10: OWASP

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

Page 11: OWASP

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.

Page 12: OWASP

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

Page 13: OWASP

Página 12

Demo¿saldrá todo bien?

Demo

Page 14: OWASP

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.

Page 15: OWASP

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.

Page 16: 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

[email protected]

[email protected]

Page 17: OWASP

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

Page 18: OWASP

Página 17

Fin

Gracias por vuestra atención

Page 19: OWASP

Página 18

¿?

¿Preguntas?