Post on 30-Apr-2015
description
Desarrollo de Aplicaciones Seguras
Roger Carhuatoctorcarhuatocto {at} intix.info
05.JULIO.2006
Roger Carhuatocto :: DevSecureApp
Index
Presentación Objetivos y Alcance del curso Estado Actual Nuevos enfoques Revisado el SDLC Fases en el SDL: Gestión de Requerimientos Fases en el SDL: Análisis, Diseño y Construcción Fases en el SDL: Despliegue Técnicas de Hacking y amenazas de seguridad en
Aplicaciones Web Taller “Aseguramiento de una Aplicación Web J2EE”
Roger Carhuatocto :: DevSecureApp
Objetivos/Alcance
Introducción◦ Reflexión sobre problema de la Calidad y Seguridad en
el Software y cómo se están resolviendo. ◦ Dónde orientamos nuestros esfuerzos◦ Definición de estrategia
Énfasis en el Proceso de Desarrollo de Sofware (Preventivo)◦ Enfoque holístico◦ Calidad y/o Seguridad
Revisión de Metodologías de aseguramiento de la calidad y seguridad en procesos de desarrollo de software como actividad preventiva.◦ De propósito general◦ De propósito específico
Revisión de herramientas de soporte a la Calidad y Seguridad
Roger Carhuatocto :: DevSecureApp
Estado actual
Inseguridad Seguridad reactiva: Antivirus, IDS, Firewall, Honeypots, etc.. Calidad, Certificación, Marketing? El Testing de Seguridad es usado para identificar
vulnerabilidades sobre Producto Final. Se soluciona los “bugs”, no el origen de ellos. ¿Estoy dedicando mis esfuerzos a solucionar directamente
el problema? ¿Dónde está el origen del problema?
Roger Carhuatocto :: DevSecureApp
Coste
Punto de equilibrio
Nivel de Seguridad
Riesgos SeguridadAño 2000, Egghead.com – robo de 1millón de números de tarjetas de créditoCD Universe sufrió el robo de números de tarjetas de créditos, él perdió sus clientes y se fueron a Amazon.com y CDNowOctubre 2000, Microsoft gasta más dinero y esfuerzo manteniendo a relaciones públicas que solucionando problemas de seguridad. La percepción pública es que el código fuente no fue contaminado fue más importante que los efectos del actual ataque.
Seguridad-Calidad vs. Coste
◦ Costs Versus Benefits in Securing Your Applicationshttp://www.scmagazine.com/scmagazine/sc-online/2002/article/50/article.html
◦ Se busca controlar el riesgo y minimizarlohttp://www.infosecnews.com/opinion/2002/09/11_03.htm
◦ La seguridad al 100% es utópica◦ Es también importante el riego indirecto: pérdida de clientes, daño a
marca, pérdida de la confianza
Roger Carhuatocto :: DevSecureApp
Definimos la Problemática
El Sistema de Gestión de Calidad/Seguridad◦ Personas◦ Software, Hardware y otro tipo de infraestructura◦ Procesos de Negocio◦ Información
¿Cuál es el elemento más débil? ¿A dónde se enfocan las actuales soluciones? Cómo identificamos el origen de los problemas?
◦ Aplicar “Pareto”: 80%-20% ¿Hay elementos que no se están considerando en el
sistema?: ◦ Enfoque Holístico
Roger Carhuatocto :: DevSecureApp
El principio de “Pareto”
Italia (1848-1923), Vilfredo Pareto. A través del diagrama de Pareto se pueden detectar los problemas que tienen mayor relevancia
Principio: “Pocos vitales, muchos triviales”◦ Hay muchos problemas sin importancia frente a unos pocos graves y
por lo general el 80% de los resultados se originan en el 20% de los elementos.
Algunos ejemplos de tales minorías vitales serían:◦ La minoría de clientes que representen la mayoría de las ventas.◦ La minoría de productos, procesos, o características de la calidad
causantes del grueso de desperdicio o de los costos de reelaboración.◦ La minoría de rechazos que representa la mayoría de quejas de la
clientela.◦ La minoría de problemas causantes del grueso del retraso de un
proceso.◦ La minoría de productos que representan la mayoría de las ganancias
obtenidas.◦ La minoría de elementos que representan al grueso del costo de un
inventariosY la informática/Software,
dónde aplicarlo?
Roger Carhuatocto :: DevSecureApp
Enfoque Sistémico al Problema de Calidad/Seguridad
Sólo estamos tomando acciones preventivas sobre el producto final (testing de seguridad)
Estamos descuidando la seguridad en otras etapas del Desarrollo de SW Existen elementos externos al proceso de Desarrollo de SW que se deben
considerar, ellos proporcionan ayuda en la prevención:◦ Sistemas de Gestión de la Calidad◦ Otros procesos de negocio (no de Desarrollo de SW) como Atención al
Cliente, Facturación, Contabilidad, etc.◦ Recomendaciones y Metodologías◦ Herramientas y Técnicas de soporte a la QA/Sec de producto y soporte Bugtracking CVS Wiki Nmap, Nessus, etc…. Testing tools, etc…
Roger Carhuatocto :: DevSecureApp
Vectores o dominios de la Seguridad
SeguridadPreventiva
Seguridad Reactiva
Seguridad Lógica
Desarrollo de Software y Aplicaciones
Networking, Sistemas e
Infraestructura
Sistemas de GestiónProcesos Negocio
Roger Carhuatocto :: DevSecureApp
Proceso de Desarrollo de SoftwareProductoSoftware
Sistema de Gestión de la Calidad y Seguridad
MetodologíasÁgiles
Estándares e ISOs
Herramientas de Soporte a QA
Herramientas para Auditorias
1. Calidad y Seguridad en el proceso de Desarrollo 2. Calidad y Testing de Software 3. Seguridad en el Software
• Extremme Programming• V-Model• Programming based in Aspects• Programming Object Oriented• Etc…
• CMM• ISO 9001:2000• ISO/IEC 14598-1• ISO 17799• ISO/IEC 12207• ISO/IEC 15271• Common Criteria ISO 15408• Etc ..
• CVS• Maven• Test Management System• Bugtracker• Testing Tools: Stress, Unit, …• Eclipse, Java/C#, Mono, J2EE• Etc…
• Sniffer, TCPDump• Nessus, Análisis de Vulnerabilidades• SQL Injection• Reverse Proxy• Buffer Overflow Tools• Etc …
Proceso de Testing
Calidad y Seguridad en el Proceso de Desarrollo
Soporte en ISO9001, CMMI, Metodologías Ágiles Soporte de Técnicas y Buenas Prácticas para Auditar y evaluar la Calidad y
Seguridad en el Producto Enfoque de Calidad-Seguridad Holísitica y Calidad-Seguridad Proactiva
Roger Carhuatocto :: DevSecureApp
Análisis Diseño TransiciónConstrucción
•Se define el “Cómo?”•Objetivos:
•Prototipeo•Diseño de Sistema•Diseño de Objetos•Diseño de Componentes
•Herramientas: •CRC Cards:
•Class, Responsibility, Collaboration•Diagrama de Secuencias y Clases•Definición Servicios Comunes:
•Logging, Security, Exception, Etc.•Modelamiento de Amenazas por Casos de Uso•Patrones de Diseño Funcional•Patrones de Diseño de Seguridad (por Amenazas)
•Input Validator Pattern•Aspect Oriented Programming•Exception Manager Pattern•Secure Logger Pattern
•Construcción, integración y testing•Interactivo
•A producción•La seguridad aparece•Plan Operativo•Monitorización•Respuesta a incidentes
•Se define el “Qué?”•Qué aporta Seg. a Negocio?
•Herramientas: •Requerimientos•Analisis Func y No-Func.•Casos de Uso
MÉTODOS, HERRAMIENTAS Y TÉCNICAS: QA & SECURITY
Revisión del Ciclo de vida del Software: Usar el criterio
Roger Carhuatocto :: DevSecureApp
PentestVulnerability detection
Exploit Attack pattern
Attack pattern
Integrate in IDS
Integrate in IDS
The learning process = Four days (aprox.)
Se preventivo, no reactivo en el “Ciclo de vida del Desarrollo de SW”
Por ejemplo:◦ Ciclo de Vida de un Bug◦ Ciclo de Vida de un IDS (Intrusion Detection System)◦ Ciclo de Vida de un Virus/Antivirus
Roger Carhuatocto :: DevSecureApp
Enfoque Sistémico
Enfoque Sistémico del Problema de la Calidad-Seguridad en el Desarrollo de SW (Enfoque Holístico)
◦ Considerar todos los elementos: Personas, SW, HW, Información, Red, etc.
◦ Nos centramos en el elemento que nos interesa (Diagrama deParetto). Es Software el elemento más débil?
◦ Análisis del Proceso de Desarrollo SW en lugar del Producto resultante, extendible a otros elementos externos del proceso
◦ El objetivo: definir acciones (seguridad preventiva) en cada etapa del Proceso de Desarrollo de SW
◦ La Seguridad es un tipo de Calidad Herramientas:
◦ Sistemas de Gestión de la Calidad◦ Otros procesos de negocio (no de
Desarrollo de SW) como Atención al Cliente, Facturación, Contabilidad, etc.
◦ Recomendaciones y Metodologías◦ Herramientas y Técnicas
Bugtracking CVS, Wiki Nmap, Nessus, etc…. Testing tools, etc…
Producto
Ext
Proceso
Ext
ClienteProveedor
Calidad TotalForma de gestión de una organización centrada en la calidad basada en la participación de todos sus miembros y que apunta al éxito a largo plazo por medio de la satisfacción del cliente y a proporcionar beneficios para todos los miembros de la organización y para la sociedad.
Roger Carhuatocto :: DevSecureApp
Técnicas más usadas para explotar vulnerabilidades
Roger Carhuatocto :: DevSecureApp
Origen de las Vulnerabilidades por Aplicación
Roger Carhuatocto :: DevSecureApp
Predicciones en Software Security
Roger Carhuatocto :: DevSecureApp
Origen de Defectos en SW – No es código!!
Roger Carhuatocto :: DevSecureApp
ROI en Quality/Security Software
Roger Carhuatocto :: DevSecureApp
Metodologías, buenas prácticas en Seguridad
◦ ISO 17799 based on BS 7799 of the British Standards Institute.◦ ISO/IEC TR 13335-4 by ISO/IEC Joint Technical Committee 1.◦ RFC2196 by Internet Engineering Task Force.◦ Cobit by ISACA.◦ GAO/AIMD-12.19.6 by Federal Information Systems Audit Manual.◦ GAASP by International Information Security Foundation.◦ 800-14 by National Institute of Standards and Technology.◦ ISO15408 - Common Criteria from National Institute of Standards and
Technology.◦ Standard of Good Practice for Information Security from ISF.◦ SysTrust by AICPA.◦ IT Baseline Protection Manual from BSI◦ OCTAVE by Software Engineering Institute.◦ [...]
http://www.fistconference.org/data/presentaciones/estandaresymetodologiasdeseguridad.pdf
Conferencias FIST, Nov. 2003 – Vicente Aceituno
Roger Carhuatocto :: DevSecureApp
Metodología de Calidad en Software y Proceso
◦ Generales, de Testing, de Calida en SW◦ De mejora en el proceso◦ De Testing ...◦ [...] http://www.12207.com
Roger Carhuatocto :: DevSecureApp
Conclusiones Finales
• Enfoque Sistémico (Holístico)• Aplicable a todo el proceso de desarrollo de SW,
incluye a la etapa de toma de requerimientos• Usar Metodologías y Estándares de propósito
general y de seguridad
Roger Carhuatocto :: DevSecureApp
Referencias
Alan Cox on writing better software ◦ By Basheera Khan - Thursday, 07 October 2004◦ http://www.pingwales.co.uk/software/cox-on-better-software.html
Dire Straits◦ The evolution of software opens new vistas for business... and the
bad guys.◦ April 2004, By GARY MCGRAW & GREG HOGLUND◦ http://infosecuritymag.techtarget.com/ss/0,295796,sid6_iss366_art6
84,00.html Introduction to Software Security
◦ Date: Nov 2, 2001 By Gary McGraw, John Viega.◦ http://www.awprofessional.com/articles/printerfriendly.asp?p=23950
Centro de Desarrollo Microsoft Seguridad◦ http://www.microsoft.com/spanish/msdn/centro_recursos/security/de
fault.asp
Roger Carhuatocto :: DevSecureApp
1
Requerimientos y casos de uso
Diseño Plan de Pruebas
Implementación y codificación
Resultado de Pruebas
Retroalimentación y feedback
2 3 4 5 6
Casos de abuso
Análisis de Riesgo
Pruebas de Seguridadbasadas en el Riesgo
Monitorizacióny Seguimiento
Requerimientos de Seguridad y Calidad
Revisión Externa
Análisis Estático (Herramientas)
Análisis de Riesgo
Pruebas dePenetración
Selección de Herramientas de Pruebas
Pruebas de Carga
Nuevo SDLC con Calidad y Seguridad
Roger Carhuatocto :: DevSecureApp
Nuevo SDLC con Calidad y Seguridad
Usuario Final
Empresa Contratante
Software Factory
1 2 3 4 5 6
Requerimientos y casos de uso
Diseño Plan de Pruebas
Implementación y codificación
Resultado de Pruebas
Retroalimentación y feedback
Roger Carhuatocto :: DevSecureApp
Nuevo SDLC con Calidad y Seguridad - enfoque
Proceso clásico siguien pautas generales:◦ ISO9001:2000, CMM, Metodologías Ágiles, ....
Objetivo:◦ Detectar con antelación el error, en la etapa de diseño y no en
producción◦ Ahorro del 60% de costes en actividades de Solución de un error cuando
se detecta en la fase de Diseño. Alcance:
◦ Uso de metodologías clásicas de desarrollo pero con una adición de técnicas de testing y de aseguramiento de la calidad
◦ El aseguramiento se extiendo a los largo del proceso◦ Soporte con herramientas al proceso de aseguramientos:
Gestión de Incidentes y/o Bugtracker Herramientas automatizadas para identificar vulnerabilidades en
código fuente, en funcionalidades Herramientas para ejecutar pruebas de carga, etc. Herramientas para probar la Seguridad Sistema de Gestión de Pruebas
Roger Carhuatocto :: DevSecureApp
Gestión de Requerimientos y Análisis:Misuse-Abuse Case y Security Use Case (1/2)
Roger Carhuatocto :: DevSecureApp
Gestión de Requerimientos y Análisis:Misuse-Abuse Case y Security Use Case (1/2)
Casos de Uso◦ Requerimiento funcional de usuario◦ Comportamiento normal de lo que será la
aplicación Misuse-Abuse Case
◦ No son requerimientos ◦ No es el comportamiento normal◦ Comportamient olvidado:
Comportamiento anormal Comportamiento de seguridad Etc...
Es importante hacer un análisis de amenazas!
Roger Carhuatocto :: DevSecureApp
Diseño y Construcción:Análisis Estático de Código
Método para el análisis del código fuente o código objeto Sirve para ganar conocimiento de lo que la Aplicación hará
en producción. además sirve para establecer algún criterio de corrección en el código.
Técnicas◦ Black Box Testing◦ White Box Testing
Code Coverage◦ Profiling
De performance De flujo De memoria Etc...
Métricas de Software
Roger Carhuatocto :: DevSecureApp
Diseño y Construcción:Herramientas Code Coverage/Profiling para JAVA y Free, Open Source
Jrat: Performance Profiling , http://jrat.sourceforge.net/
Roger Carhuatocto :: DevSecureApp
Diseño y Construcción: Herramientas Code Coverage/Profiling para JAVA y Free, Open Source Extensible Java Profiler
◦ http://ejp.sourceforge.net Basado JVM Profiler Interface (JVMPI) http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi
Roger Carhuatocto :: DevSecureApp
Diseño y Construcción:Herramientas Code Coverage/Profiling para JAVA y Free, Open Source
Cougaar Memory Profiler◦ http://profiler.cougaar.org
Jcoverage◦ Trabaja hasta nivel de byte-code◦ http://jcoverage.com
Cobertura◦ % de accesos a código desde los Test◦ Qué parte del código ha sido probado pocas veces
Roger Carhuatocto :: DevSecureApp
Otras herramientas de testing (1/2)
http://java-source.net/open-source/testing-tools
Roger Carhuatocto :: DevSecureApp
Otras herramientas de testing (2/2)
› http://opensourcetesting.org
Roger Carhuatocto :: DevSecureApp
Diseño y Construcción:Conocimiento-Patrones comunes de Errores en el Código de App
(Kingdoms) Fortify Taxonomy of Software Security Errors: http://vulncat.fortifysoftware.com/ 19 Deadly Sins of Sw Security: http://www.amazon.com/gp/product/0072260858/104-4300195-
4358349 OWASP Top Ten Most Critical Web Application Security Vuln:
http://www.owasp.org/documentation/topten.html
Roger Carhuatocto :: DevSecureApp
Referencias - testing
www.stickyminds.com/ – Sobre testing www.webpagesthatsuck.com – Lo que dice www.csst-technologies.com – Server testing refences www.w3c.org – Testing, security con mucha informacion http://www.testingfaqs.org/ - Testers reunidos www.softpanorama.org/SE/testing.shtml - Testing Site links www.teamshare.com – Defectos www.pb-sys.com/ - Download buggit http://www.testingfaqs.org/t-track.htm - Lista con herramientas Para defectos
The Real World of Software Testing - http://srkprasad.blogspot.com W Edwards Deming - http://www.dti.gov.uk/mbp/bpgt/m9ja00001/m9ja000016.html Predicting the Future of Testing
http://www.stickyminds.com/pop_print.asp?ObjectId=6887&ObjectType=COL
Roger Carhuatocto :: DevSecureApp
Muchas Gracias