Desarrollo Seguro usando OWASP



Documentos relacionados
Desarrollo Seguro usando OWASP

Seguridad en el desarrollo

Iniciativas Existentes El modelo SAMM Aplicación de SAMM Niveles y Actividades SAMM SAMM en el mundo real Proyecto OpenSAMM AppSec Latam 2011

Agenda. Seguridad en el desarrollo Mateo Martínez, CISSP

Herramientas de OWASP para Tes3ng de Seguridad. Mateo Mar8nez Voluntario Capítulo OWASP Uruguay h"ps://

OWASP Top Los diez riesgos más importantes en aplicaciones web. The OWASP Foundation. Felipe Zipitría

Armas del CISO Actual. OWASP Venezuela OWASP Uruguay

Introducción a OWASP OWASP. The OWASP Foundation

Programación de código seguro

La necesidad de construir software seguro

Hacking Ético Web. I Jornadas Tecnológicas CEEPS Carlos García García i52gagac@uco.es

INTRODUCCIÓN A LA SEGURIDAD EN SISTEMAS Y WEBS

Pruebas de Seguridad en aplicaciones web segun OWASP Donde estamos... Hacia donde vamos?

Ataques XSS en Aplicaciones Web

La OWASP Foundation y los objetivos del capítulo español OWASP 16/6/2006. The OWASP Foundation

Algunas estadísticas Problemática actual Gestionando la Inseguridad en las aplicaciones Conclusiones Información adicional Preguntas

Métricas para la Seguridad de las Aplicaciones. MAI. Andrés Casas CISSP - CISA - CISM - CRISC - ITIL - COBIT Deloitte & Touche, S.A.

AUDITORÍAS TÉCNICAS PARA LA CERTIFICACIÓN DE LOS SISTEMAS DE RECOGIDA DE INICIATIVAS CIUDADANAS EUROPEAS

Basado en la ISO 27001:2013. Seguridad de la Información

Usando OWASP para cumplir PCI-DSS

OWASP y el cumplimiento normativo: PCI-DSS y PA-DSS OWASP. The OWASP Foundation

CURSO TALLER. Implementador Norma ISO sobre Gestión de Seguridad de la Información

Ingeniero Técnico en Informática - UCA Máster en Ingeniería del Software - US Máster en Seguridad de las TIC - US

Proceso: AI2 Adquirir y mantener software aplicativo

Día 23, Hacking ético: Auditoria web y perspectiva desde la Administración Publica

Implementación de Soluciones CRM

Servicios de Seguridad de la Información

Seguridad en Home Banking. Tendencias de la Tecnología en Seguridad Informática Argentina 2010

Offensive State Auditoría de Aplicaciones Web

ITIL FOUNDATION V3 2011

IRONWALL Grupo MNEMO. Fernando García Vicent Director General. Zona para Logotipo organización (es)

Deloitte Training. Riesgos de tecnología de información implicaciones y retos para la auditoria

Gestión de Seguridad en canales electrónicos. Ing. Jorge O Higgins, CISSP

Instituto Nacional de Tecnología Industrial TESTING DE SOFTWARE

OWASP Testing Guide. John Vargas Open-Sec Senior Security Consultant OWASP Perú Chapter

Reducción de riesgos. Reducción de costos. Mejor desempeño.

OWASP: Un punto de vista. aplicaciones web seguras

Optimización de Inyecciones SQL

Seguridad en Aplicaciones Web

Información de Producto:

Midiendo la efectividad de su programa de seguridad de información. Iván Campos 28 de Mayo de 2014

Guía de doble autenticación

Cómo Asegurar la Calidad de Servicios de TI?

Seguridad en Sitios Web de Alto Tráfico. Ing. Enrique Hurtarte Juárez

Capítulo IV SEGURIDAD DE LA INFORMACIÓN ROLES Y ESTRUCTURA ORGANIZACIONAL

80% of Cyber Crimes Are Preventable

Sección 7 Servicios Requeridos del Proveedor

Lo valoras, Optimiti Network lo protege. Seguridad a otro nivel { DISPONIBILIDAD } { CONFIDENCIALIDAD } { INTEGRIDAD } Credenciales 2015

Gestión de Seguridad Informática

CURSO DE GESTIÓN DE PROYECTOS PMI ORIENTADO A OBTENER LA CERTIFICACIÓN PMP

CURSO DE GESTIÓN DE PROYECTOS PMI ORIENTADO A OBTENER LA CERTIFICACIÓN PMP

MÁSTER UNIVERSITARIO EN INGENIERÍA WEB. Guía de Aprendizaje Información al estudiante

Política de Gestión de Incidentes de Seguridad de la Información

Desarrollo Seguro: Principios y Buenas Prácticas. Por Cesar R. Cuenca

Norma NTC-ISO/IEC Sistema de Gestión de Seguridad de Información


Segurinfo NOA Seguridad en el desarrollo de aplicaciones Web

POLITICA DE SISTEMA DE CONTROL INTERNO

RUP: Disciplina de Manejo de Cambios y Configuraciones

DOCS. Pautas básicas para el DESARROLLO DE PLUGINS

Curso Online. Desarrollo Seguro en Java

Requisitos de control de proveedores externos

Guía para el servicio de actualización o instalación versión 4.6 de contafiscal

INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE MICROSOFT PROJECT SERVER

SECURITY DAY PERU. Ataques a las Aplicaciones Web. Explotación de Aplicaciones Web. Technologies SOLUTIONS FOR KEEPING YOUR BUSINESS UP

IT Project Portfolio Management y su vinculación con la Estrategia Corporativa

Haga clic para modificar el estilo de título del patrón Haga clic para modificar el estilo de texto del patrón

TECNOLOGICO DE ESTUDIOS SUPERIORES DE ECATEPEC CALIDAD DE SOFTWARE Guía para Examen Segundo Parcial Grupo 6501

INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE SOFTWARE MICROSOFT VISUAL STUDIO PREMIUM

Cumpliendo con las Reglas

Módulo Nº 7. Aspectos de Seguridad en Redes de Área Extendida

Verificación y Validación de Software

Cómo trabaja el Atacante? El atacante trabaja en 5 pasos, los cuales son: Ethical-Hacker.net. Reconocimiento. Borrado de Huellas.

Guía Rápida AlertBoot Disk Encryption

Guía de procesos en gestión de incidentes

Tecnología de la Información. Administración de Recursos Informáticos

Capítulo VII PLAN DE IMPLEMENTACIÓN DE ALTO NIVEL

Sesión 13. Seguridad en la web. Luisa Fernanda Rincón Pérez

Calidad y Seguridad en la programación de aplicaciones

Autorización de compras

MANUAL DE CALIDAD ISO 9001:2008

Capítulo 2.- Vulnerabilidades en aplicaciones web.

PROCESO: GESTION INFORMÁTICA PROCEDIMIENTO: GESTION DE CONFIGURACIONES

GUIAS PARA EL MANUAL DE ASEGURAMIENTO DE LA CALIDAD MANUAL DE ASEGURAMIENTO DE CALIDAD

Calidad de Software - CMM

Modelado de Amenazas Una Introducción

Respuestas a consultas

Alcance y descripción del servicio MARKETING IPLAN

Técnicas de Link Building (SEO Off Page) y medición de resultados para mejorar la popularidad Web

Calidad de Servicios de. Juan Manuel Fernández Peña 2011

Datos Personales en el Ciclo de Vida de Desarrollo Seguro

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

XV Conferencia Colombiana de Usuarios Esri Bogotá, Agosto de 2013

Nuevo Estándar en Sistemas de Gestión de Seguridad de la Información ISO/IEC 27001:2013

POLÍTICA DE SEGURIDAD DE LA INFORMACIÓN PARA LOS ORGANISMOS DE LA ADMINISTRACIÓN PÚBLICA PROVINCIAL

INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE MICROSOFT OFFICE Cargos : Gerente de Sistemas (e) Analista de Sistemas Gestor de Proyectos

ITIL V3 Foundations. Objetivos del Curso

COMPILACION BIBLIOGRAFICA PMBOK, OPM3 JHON FREDY GIRALDO. Docente: Carlos Hernán Gomez Asignatura: Auditoria de Sistemas

Resumen General del Manual de Organización y Funciones

PARTICIPACIÓN DE LOS PADRES/TUTORES 91300

Transcripción:

Desarrollo Seguro usando Fabio Cerullo Comité Global de Educación Copyright The Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the License. The Foundation http://www.owasp.org

Quien soy? - CEO & Fundador de Cycubix Limited - 10+ años de experiencia en seguridad informática trabajando en sectores de Tecnología, Manufactura, Banca y Gobierno. - Ingeniero en Informática. - CISSP y CSSLP de ISC2 - Comité Global de Educación - Líder del capitulo Irlanda

Agenda - Introducción a Seguridad de Aplicaciones - Construyendo software seguro - Un enfoque por fases - Conclusiones - Q & A

Introducción a Seguridad de Aplicaciones Que es la INSeguridad de Aplicaciones?

Seguridad de Aplicaciones: Definición Un enfoque basado en principios involucra: - Conocer las amenazas (Gente) - Incorporar Seguridad en el SDLC (Procesos) - Asegurar la red, host y APLICACION (Tecnología)

Introducción a Seguridad de Aplicaciones Teoría de Riesgo

Introducción a Seguridad de Aplicaciones Cada vulnerabilidad se origina por: Control Faltante Teoría de Vulnerabilidad Falta de validacion de entradas Control de Acceso inexistente ESAPI PUEDE AYUDAR AQUI Control Roto Gestión de Sesiones Inapropiada Falla Abierta Control Ignorado NADIE TE PUEDE AYUDAR AQUI Encripcion Inexistente Desconocimiento de codificación de salidas

Introducción a Seguridad de Aplicaciones TOP 10 RIESGOS DE SEGURIDAD EN APLICACIONES WEB http://www.owasp.org/index.php/top_10

Riesgos en Seguridad de Aplicaciones A1. Inyección DEFINICION Las fallas de inyección ocurren cuando una aplicación envía 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 automáticamente una aplicación vulnerable a SQL http://www.sonymusic.co.jp/bv/cro-magnons/track.php?item=7419 union all select 1,concat(user,0 3a,pass,0 3a,email) from users // what we get here is user:pass:email from table users. (0 3a is hex value for colon) IMPACTO: SONY PICTURES (JUNIO 2011) Mas de 1,000,000 contraseñas de usuarios, direcciones de correo electrónico, domicilios, fechas de nacimiento, además de las credenciales de administradores fueron comprometidas. COMO PREVENIRLO? Evitar el uso del interprete utilizando procedimientos almacenados o consultas parametrizadas. Escapar caracteres especiales utilizando API s como ESAPI. Realizar validación positiva o whitelisting con adecuada canonicalizacion.

Riesgos en Seguridad de Aplicaciones A2. Secuencia de Comandos en Sitios Cruzados (XSS) DEFINICION Las fallas XSS ocurren cuando una aplicación incluye datos suministrados por el usuario en una pagina enviada a la aplicación sin validar adecuadamente el contenido. Existen tres tipos de fallas XSS: 1) Almacenado, 2) Reflejado, 3) XSS basado en DOM EJEMPLO - Google XSS en spreadsheets.google.com permite secuestro de sesión en todos los dominios. COMO PREVENIRLO? - Escapar caracteres especiales utilizando API s como ESAPI. - Realizar validacion positiva utilizando API s como ESAPI. - HTTPOnly Cookie Flag

Riesgos en Seguridad de Aplicaciones A3. Perdida de Autenticación y Gestión de Sesiones DEFINICION Perdidas o fallas en las funciones de autenticación o gestión de sesiones (ej., cuentas expuestas, contraseñas, ID de sesión) debido a funciones customizadas. EJEMPLO Fijación de Sesión encontrado en el banco Mandiri (Mayor banco de Indonesia) 1) El atacante envía un mail con el siguiente enlace: https://ib.bankmandiri.co.id/retail/login.do?action=form&jsessionid=jhab6q 3Q1BGE5uCwNMfTDU1yxfxV9vhMODrP0krLdbem8FvqPA7l!56845468 - dominio correcto - URL valida - Utilizando https 2) Victima hace clic en el link validando el SESSIONID 3) Atacante tiene acceso al Online Banking de la victima. COMO PREVENIRLO? - Cumplir con todos los requisitos del ASVS relacionados a Autenticación y Gestión de Sesiones. - Brindar una interfase simple para los desarrolladores tal como ESAPI

Seguridad en el SDLC Code Crawler ZAP ESAPI Webscarab SAMM Code review Testing Guide Guide ESAPI WAF Controls architectual risk analysis Security code review security testing WAF/XML firewalls SDLC Plan & Design Build Test Implement Controls policy awareness training ASVS T10 WebGoat Swingset

Diseño Seguro Estándares de desarrollo ASVS puede ser utilizado para establecer un nivel de confianza en la seguridad de aplicaciones Web. Autenticación Gestión de Sesiones Control de Acceso Validación de Entradas Codificación de Salidas Criptografía Manejo de Errores Protección de Datos ASVS Seguridad HTTP

Diseño Seguro Estándares de desarrollo Estándares basados en ASVS Security Architecture Documentation Authentication Session Management Access Control ASVS Input/Output validation Cryptography Error Handling & Logging Data Protection HTTP Security Security Configuration

Diseño Seguro Estándares de desarrollo Los requerimientos de ASVS fueron desarrollados con los siguientes objetivos en mente: Utilizar como una métrica Provee a los desarrolladores y gerentes de aplicaciones con una métrica para determinar el nivel de confianza de las mismas. Utilizar como una guía 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.

Codificación Segura El problema Cual es el principal problema con la mayor parte de los frameworks/controles de seguridad?

Codificación Segura El problema Jasypt Java Pattern Commons Validator Cryptix Struts xml-dsig JCE Reform Spring xml-enc HDIV ACEGI Write Custom Code Java URL Encoder Log4j JAAS BouncyCastle Anti-XSS Java Logging Stinger Many More Standard Control NO Intuitivo, Integrado o Amigable (para el desarrollador).

Codificación Segura ESAPI ESAPI (Enterprise Security API) apunta a proveer a los desarrolladores con todos los controles de seguridad necesarios: Estandarizados Centralizados Organizados Integrados Intuitivos Testeados

Codificación Segura ESAPI Los Toolkits de Enterprise Security API ayudan a los desarrolladores de software a protegerse de problemas de seguridad relacionados con el diseño o implementación de una aplicación. Colección de clases que encapsulan los controles de seguridad mas importantes para una aplicación. 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.

Codificación Segura Áreas cubiertas por ESAPI Existen mas de 120 métodos disponibles

Como integrar ASVS y ESAPI en el SDLC Define your own application risk levels mapped to ASVS for security requirements definition Here is where you plan how you are going to meet all your selected ASVS security requirements. Build your ESAPI by extending ESAPI controls, integrating your standard controls, and implementing needed custom controls. Use it to protect your app. Here is where you find out if your application has vulnerabilities such as Cross-Site Scripting (XSS), SQL injection, CSRF, etc. Fix vulnerabilities Requirements Definition by Risk Level App A: Design for a Particular Risk Level Implementation Perform Initial Verification Remediate and Reverify Use ESAPI as part of your Design to meet the ASVS req ts Verify against your selected ASVS level Iterate App Enhancements 21

Mapea de ASVS a ESAPI Un ejemplo ASVS Gestión de Sesiones Implementación ESAPI: ESAPI.httpUtilities().changeSessionIdentifier() changes the session id in the login process Además previene fijación de sesión.

Codificación Segura ESAPI Swingset Interactive - Aplicacion web que demuestra las ventajas de las librerias ESAPI. - Alineada con ASVS. - Apunta a entrenar desarrolladores en ESAPI Cada lab presenta una vulnerabilidad Desarrollador necesita remediarla utilizando ESAPI

El Modelo SAMM Metodología que sirve para evaluar las practicas actuales de desarrollo seguro en una organización. 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 organización.

Funciones de Negocio SAMM Se comienza con el núcleo de actividades presentes en cualquier organización que realiza desarrollo de software El nombre asignado es genérico, pero deberían ser identificables por cualquier desarrollador o gestor

Prácticas de Seguridad SAMM Por cada una de las Funciones de Negocio se definen 3 Prácticas de Seguridad. Dichas prácticas cubren las áreas relevantes al aseguramiento de calidad en el software. Cada una de ellas en un nicho de mejora.

El Modelo SAMM

Prácticas de Seguridad SAMM Cada Práctica tiene objetivos específicos que definen cómo ir mejorando a lo largo del tiempo. Esto establece el concepto de Nivel en el que una organización se encuentra al cumplir una determinada Práctica. Los distintos niveles son: (0: Punto de partida implícito cuando la Práctica es incumplida) 1: Comprensión inicial y disposición específica para adoptar la Practica 2: Incrementar la eficacia y/o eficiencia de la Práctica 3: Dominio completo de la Práctica

Prácticas de Seguridad SAMM EJEMPLO

Un enfoque por fases Fase 1 Generar concientización sobre seguridad de aplicaciones Fase 2 Mejorar la seguridad de aplicaciones Fase 3 Implementar metricas para la seguridad de aplicaciones

Un enfoque por fases Fase 1 Generar concientización sobre seguridad de aplicaciones Entrenamiento sobre Seguridad de Aplicaciones. Desarrollo de una wiki/foro de discusión interno sobre esta temática.

Authenticator Un enfoque por fases Fase 2 User AccessController AccessReferenceMap Validator Encoder HTTPUtilities Encryptor EncryptedProperties Randomizer Exception Handling Logger IntrusionDetector SecurityConfiguration Mejorar la seguridad de aplicaciones Entrenamiento para desarrolladores sobre ESAPI & Swingset Promover el testeo cruzado de seguridad de aplicaciones. Implementar un proceso de revision de codigo. Desarrollar Estandares de Desarrollo (ASVS) Custom Enterprise Web Application Enterprise Security API Existing Enterprise Security Services/Libraries

Un enfoque por fases Fase 3 Implementar métricas sobre seguridad de aplicaciones Promover Metodologías de Desarrollo Seguro (OpenSAMM) Realizar auditorias de aplicaciones criticas (ASVS) Security Architecture Documentation Authentication Session Management Access Control Input/Output validation Cryptography Error Handling & Logging Data Protection HTTP Security Security Configuration

Recomendaciones 1. Definir alcance (comenzar con proyecto pequeño) 2. Obtener apoyo de Gerencia. 3. Acercarse a un equipo de desarrollo especifico. 4. Entrenarlos sobre Seguridad de Aplicaciones. 5. Realizar una revisión de Seguridad de dicho proyecto. 6. Medir y documentar los resultados. 7. Comenzar nuevamente (extender el alcance)

Conclusiones Por que implementar seguridad de aplicaciones? - Reduce costos de desarrollo, recuperacion ante incidentes y parches. - Reduce costo de testeo de seguridad por terceros. - provee recursos y herramientas gratuitas. - Costos de implementacion son minimos. - El enfoque por fases resulta positivo.

Preguntas y Respuestas Muchas gracias! FCERULLO@.ORG