Desarrollo Seguro Usando OWASP

download Desarrollo Seguro Usando OWASP

of 36

description

Application security is an essential component of any successful project. This includes web applications, open source PHP applications, web services and proprietary business web sites. Web application security education and awareness is needed throughout the entire development and deployment organization. This course covers what developers should know on web application security

Transcript of Desarrollo Seguro Usando OWASP

Implementing an Application Security Program

Desarrollo Seguro usando OWASPFabio CerulloComit Global de EducacinCopyright The OWASP FoundationPermission is granted to copy, distribute and/or modify this document under the terms of the OWASP License.The OWASP FoundationOWASPhttp://www.owasp.org Quien soy? CEO & Fundador de Cycubix Limited 10+ aos de experiencia en seguridad informtica trabajando en sectores de Tecnologa, Manufactura, Banca y Gobierno. Ingeniero en Informtica. CISSP y CSSLP de ISC2 Comit Global de Educacin OWASP Lder del capitulo OWASP Irlanda

OWASPAgenda Introduccin a Seguridad de Aplicaciones Construyendo software seguro Un enfoque por fases Conclusiones Q & AOWASP

Introduccin a Seguridad de AplicacionesQue es la INSeguridad de Aplicaciones?OWASPApplication security is an essential component of any successful project. This includes web applications, open source PHP applications, web services and proprietary business web sites.

Web application security education and awareness is needed throughout the entire development and deployment organization. This course covers what developers should know on web application security.Seguridad de Aplicaciones: DefinicinUn enfoque basado en principios involucra:Conocer las amenazas (Gente)Incorporar Seguridad en el SDLC (Procesos)Asegurar la red, host y APLICACION (Tecnologa)

OWASPNote that this approach is technology / platform independent. It is focused on principles, patterns, and practices.

Introduccin a Seguridad de AplicacionesOWASPCada vulnerabilidad se origina por:Teora de VulnerabilidadESAPI PUEDE AYUDAR AQUINADIE TE PUEDE AYUDAR AQUIIntroduccin a Seguridad de AplicacionesOWASPhttp://www.owasp.org/index.php/Top_10TOP 10 RIESGOS DE SEGURIDAD EN APLICACIONES WEBIntroduccin a Seguridad de AplicacionesOWASPA1. InyeccinDEFINICIONLas fallas de inyeccin ocurren cuando una aplicacin enva datos no confiables a un interprete.

EJEMPLO: SONY MUSIC JAPAN (MAYO 2011)SQLi #1: http://www.sonymusic.co.jp/bv/cro-magnons/track.php?item=7419 Un error SQL implica automticamente una aplicacin vulnerable a SQL

http://www.sonymusic.co.jp/bv/cro-magnons/track.php?item=7419 union all select 1,concat(user,03a,pass,03a,email) from users // what we get here is user:pass:email from table users. (03a is hex value for colon) IMPACTO: SONY PICTURES (JUNIO 2011)Mas de 1,000,000 contraseas de usuarios, direcciones de correo electrnico, domicilios, fechas de nacimiento, adems de las credenciales de administradores fueron comprometidas.

COMO PREVENIRLO?Evitar el uso del interprete utilizando procedimientos almacenados o consultas parametrizadas.Escapar caracteres especiales utilizando APIs como OWASP ESAPI.Realizar validacin positiva o whitelisting con adecuada canonicalizacion.Riesgos en Seguridad de AplicacionesOWASPA2. Secuencia de Comandos en Sitios Cruzados (XSS)DEFINICIONLas fallas XSS ocurren cuando una aplicacin incluye datos suministrados por el usuario en una pagina enviada a la aplicacin sin validar adecuadamente el contenido. Existen tres tipos de fallas XSS: 1) Almacenado, 2) Reflejado, 3) XSS basado en DOM

EJEMPLOGoogle XSS en spreadsheets.google.com permite secuestro de sesin en todos los dominios.

COMO PREVENIRLO?- Escapar caracteres especiales utilizando APIs como OWASP ESAPI. - Realizar validacion positiva utilizando APIs como OWASP ESAPI. - HTTPOnly Cookie Flag

Riesgos en Seguridad de AplicacionesOWASPA3. Perdida de Autenticacin y Gestin de SesionesDEFINICIONPerdidas o fallas en las funciones de autenticacin o gestin de sesiones (ej., cuentas expuestas, contraseas, ID de sesin) debido a funciones customizadas.

EJEMPLOFijacin de Sesin encontrado en el banco Mandiri (Mayor banco de Indonesia)1) El atacante enva un mail con el siguiente enlace: https://ib.bankmandiri.co.id/retail/Login.do?action=form&JSESSIONID=JHAb6Q3Q1BGE5uCwNMfTDU1yxfxV9vhMODrP0krLdbem8FvqPA7l!56845468- dominio correcto- URL valida- Utilizando https 2) Victima hace clic en el link validando el SESSIONID3) Atacante tiene acceso al Online Banking de la victima.

COMO PREVENIRLO?Cumplir con todos los requisitos del OWASP ASVS relacionados a Autenticacin y Gestin de Sesiones.Brindar una interfase simple para los desarrolladores tal como ESAPIRiesgos en Seguridad de AplicacionesOWASPSeguridad en el SDLCPlan &DesignBuildTestImplementsecuritytestingWAF/XMLfirewallsarchitectualrisk analysisSecuritycode reviewpolicy awareness trainingControlsControlsASVST10WebGoatOWASPSwingsetTesting GuideCode reviewGuideWebscarabOWASPESAPIESAPIWAFZAPCode CrawlerSDLCSAMM

OWASPDiseo Seguro Estndares de desarrolloASVS

ASVS puede ser utilizado para establecer un nivel de confianza en la seguridad de aplicaciones Web.AutenticacinGestin de SesionesControl de AccesoValidacin de EntradasCodificacin de SalidasCriptografaManejo de ErroresProteccin de DatosSeguridad HTTPOWASPEstndares basados en ASVSASVS

Diseo Seguro Estndares de desarrolloOWASPDiseo Seguro Estndares de desarrolloLos requerimientos de ASVS fueron desarrollados con los siguientes objetivos en mente: Utilizar como una mtrica Provee a los desarrolladores y gerentes de aplicaciones con una mtrica para determinar el nivel de confianza de las mismas. Utilizar como una gua Provee a los desarrolladores de controles de seguridad con indicaciones en que funcionalidades incluir para cumplimentar con los requerimientos de seguridad. Utilizar durante adquisiciones Provee una base para especificar los requerimientos de seguridad en aplicaciones adquiridas a terceros.OWASPCodificacin Segura El problemaCual es el principal problema con la mayor parte de los frameworks/controles de seguridad?OWASPJava LoggingBouncyCastleSpringLog4jJasyptJCEJAASCryptixHDIVxml-dsigxml-encMany MoreACEGICommonsValidatorStrutsReformAnti-XSSStingerStandard ControlJava PatternJava URLEncoderWrite Custom CodeNO Intuitivo, Integrado o Amigable (para el desarrollador).Codificacin Segura El problemaOWASPOWASP ESAPI (Enterprise Security API) apunta a proveer a los desarrolladores con todos los controles de seguridad necesarios:EstandarizadosCentralizadosOrganizadosIntegradosIntuitivosTesteadosCodificacin Segura ESAPIOWASPLos Toolkits de OWASP Enterprise Security API ayudan a los desarrolladores de software a protegerse de problemas de seguridad relacionados con el diseo o implementacin de una aplicacin.Coleccin de clases que encapsulan los controles de seguridad mas importantes para una aplicacin.Existen versiones de Java EE, .Net, Javascript, Classic ASP ColdFusion/CFML, PHP y Python.La version de ESAPI para JAVA EE incluye un Web Application Firewall (WAF) que puede ser utilizado mientras los equipos de desarrollo se focalizan en remediar los problemas.Todas las versiones de ESAPI se encuentran bajo una licencia BSD de software libre.Usted puede modificar o utilizar ESAPI como le parezca. Incluso puede incluirlo en productos comerciales de manera totalmente gratuita.Codificacin Segura ESAPIOWASP

Existen mas de 120 mtodos disponiblesCodificacin Segura reas cubiertas por ESAPIOWASP21Como integrar ASVS y ESAPI en el SDLC

OWASPMapea de ASVS a ESAPI Un ejemploASVS Gestin de Sesiones

Implementacin ESAPI:ESAPI.httpUtilities().changeSessionIdentifier() changes the session id in the login processAdems previene fijacin de sesin.

OWASPAplicacion web que demuestra las ventajas de las librerias ESAPI.Alineada con ASVS.Apunta a entrenar desarrolladores en ESAPICada lab presenta una vulnerabilidadDesarrollador necesita remediarla utilizando ESAPI

Codificacin Segura ESAPI Swingset InteractiveOWASPEl Modelo SAMM Metodologa que sirve para evaluar las practicas actuales de desarrollo seguro en una organizacin.

Puede ser utilizado para implementar un programa de seguridad de aplicaciones en forma iterativa.

Demuestra mejoras concretas en un programa de aseguramiento de seguridad de aplicaciones.

Define y mide actividades relacionadas a la seguridad en su organizacin.

OWASPFunciones de Negocio SAMM Se comienza con el ncleo de actividades presentes en cualquier organizacin que realiza desarrollo de software El nombre asignado es genrico, pero deberan ser identificables por cualquier desarrollador o gestor

OWASPPrcticas de Seguridad SAMMPor cada una de las Funciones de Negocio se definen 3 Prcticas de Seguridad.Dichas prcticas cubren las reas relevantes al aseguramiento de calidad en el software.Cada una de ellas en un nicho de mejora.

OWASP

El Modelo SAMMOWASPPrcticas de Seguridad SAMMCada Prctica tiene objetivos especficos que definen cmo ir mejorando a lo largo del tiempo.Esto establece el concepto de Nivel en el que una organizacin se encuentra al cumplir una determinada Prctica.Los distintos niveles son:(0: Punto de partida implcito cuando la Prctica es incumplida)1: Comprensin inicial y disposicin especfica para adoptar la Practica 2: Incrementar la eficacia y/o eficiencia de la Prctica3: Dominio completo de la PrcticaOWASPEJEMPLOPrcticas de Seguridad SAMM

OWASPUn enfoque por fasesOWASPGenerar concientizacin sobre seguridad de aplicaciones

Entrenamiento sobre Seguridad de Aplicaciones.Desarrollo de una wiki/foro de discusin interno sobre esta temtica.

Un enfoque por fases Fase 1OWASPMejorar la seguridad de aplicaciones

Entrenamiento para desarrolladores sobre OWASP ESAPI & SwingsetPromover el testeo cruzado de seguridad de aplicaciones.Implementar un proceso de revision de codigo.Desarrollar Estandares de Desarrollo (ASVS)Existing Enterprise Security Services/Libraries

Un enfoque por fases Fase 2OWASPImplementar mtricas sobre seguridad de aplicacionesPromover Metodologas de Desarrollo Seguro (OpenSAMM)Realizar auditorias de aplicaciones criticas (ASVS)

Un enfoque por fases Fase 3OWASP

RecomendacionesDefinir alcance (comenzar con proyecto pequeo)Obtener apoyo de Gerencia.Acercarse a un equipo de desarrollo especifico.Entrenarlos sobre Seguridad de Aplicaciones.Realizar una revisin de Seguridad de dicho proyecto.Medir y documentar los resultados.Comenzar nuevamente (extender el alcance)

OWASPConclusionesPor que implementar seguridad de aplicaciones?

Reduce costos de desarrollo, recuperacion ante incidentes y parches.Reduce costo de testeo de seguridad por terceros.OWASP provee recursos y herramientas gratuitas.Costos de implementacion son minimos.El enfoque por fases resulta positivo.

OWASPPreguntas y Respuestas

Muchas [email protected]

OWASP