Charla 2
-
Upload
byron-delgado -
Category
Documents
-
view
220 -
download
2
description
Transcript of Charla 2
-
1
Gabriel Daz Orueta
Introduccin al anlisis
automtico de la seguridad
de aplicaciones web
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta
22 de octubre de 2012
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 2
Contenidos
Vulnerabilidades de seguridad en aplicaciones web
Herramientas para el anlisis de vulnerabilidades
Cul es la mejor?
Basado en el TFM de don Juan Ramn Bermejo Higuera,
en Octubre de 2011
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 3
In computer security, a vulnerability is a
weakness which allows an attacker to
reduce a system's information
assurance.
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 4
Vulnerabilidades de seguridad en
aplicaciones web
OWASP (Open Web Application Security Proyect) Top Ten
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 5
Vulnerabilidades de seguridad en
aplicaciones web
http://www.owasp.org/index.php/Top_10
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 6
Vulnerabilidades de seguridad en
aplicaciones web Mtricas ms comunes
Porcentaje de cada tipo de vulnerabilidad encontrada con todos los tipos de anlisis utilizados.
Porcentaje de cada tipo de vulnerabilidad encontrada con cada tipo de anlisis utilizado.
Porcentaje de vulnerabilidades por grados de criticidad globales y por cada tipo de anlisis.
Porcentaje de cada tipo de vulnerabilidad por cada tipo de lenguaje de programacin en cada tipo
de anlisis utilizado y de forma global.
Porcentaje de sitios web donde se ha encontrado una determinada vulnerabilidad.
Porcentaje de vulnerabilidades por tipo procedencia del software (internamente desarrollado,
open source, externo) globales y por cada tipo de anlisis.
Densidades de defectos por vulnerabilidades y tipos de lenguajes.
Porcentaje de vulnerabilidades por tipo de industria (financiera, defensa)
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 7
Vulnerabilidades de seguridad en
aplicaciones web
Estadsticas vul. WASC 2008. Whitebox & Blackbox.
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 8
WASC % de probabilidad de deteccin blackbox/whitebox
Vulnerabilidades de seguridad en
aplicaciones web
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 9
1 SQL Injection 7%
2 Logic Flaws 7%
3 Authorization bypass 5%
4 XSS 26%
5 Authentication bypass 8%
6 Vulnerable third party software 3%
7 Session Handling 13%
8 CSRF 11%
9 Information leakage 13%
10 Source code disclosure 7%
Ranking de vulnerabilidades detectadas 2010
(TRUSTWARE SPIDER LABS)
Vulnerabilidades de seguridad en
aplicaciones web
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 10
Vulnerabilidades de seguridad en
aplicaciones web
Vulnerabilidades detectadas INFORME 3 VERACODE
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 11
Vulnerabilidades de seguridad en
aplicaciones web
Vulnerabilidades detectadas por tipo de lenguaje. INFORME 3 VERACODE
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 12
Vulnerabilidades de seguridad en
aplicaciones web
Coste de la correccin de vulnerabilidades
Secure Coding. The State of the Practice. Authors Mark G. Graff, Kenneth R. van Wyk.
O`Reilly , June 2003, ISBN: 0-596-00242-4
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 13
Conclusiones
1- Las aplicaciones web contienen muchas
vulnerabilidades de seguridad
2- Vale la pena intentar detectarlas antes de poner
la aplicacin en operacin
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 14
Herramientas para el anlisis de
vulnerabilidades
Modelo SLDC adaptado
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 15
Herramientas para el anlisis de
vulnerabilidades
Definiciones
Verdadero positivo: vulnerabilidad detectada que existe realmente
Falso positivo: vulnerabilidad detectada que no existe realmente
Verdadero negativo: vulnerabilidad no detectada que realmente no existe
Falso negativo: vulnerabilidad no detectada que realmente existe
Qu es ms relevante: falso positivo o falso negativo?
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 16
Herramientas para el anlisis de
vulnerabilidades
- HERRAMIENTAS DE ANLISIS ESTTICO (SAST)
Herramientas de anlisis de cdigo fuente
Herramientas de anlisis de cdigo ejecutable
- HERRAMIENTAS DE ANLISIS DINMICO (DAST y RAST)
Scanners automticos de vulnerabilidades de aplicaciones web
- HERRAMIENTAS DE ANLISIS HIBRIDO
Combinar anlisis SAST y DAST.
Combinar anlisis SAST y RAST.
Combinar anlisis SAST, DAST y RAST.
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 17
Herramientas SAST
de cdigo fuente
- Toman como entrada el cdigo fuente y lo trasforman, generando
representaciones intermedias o modelos del cdigo fuente, segn el
caso y a continuacin lo analizan contra una serie de reglas definidas
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 18
Pueden realizar algunos o todos estos anlisis:
- Anlisis lxico, sintctico y semntico como cualquier compilador.
- Anlisis intraprocedural o local (dentro de cada funcin) del flujo
de control y de los datos.
- Anlisis global o interprocedural de llamadas entre funciones y
flujo de los datos.
Herramientas SAST
Comprueban todo el cdigo a fondo y coherentemente
Una vez se tienen los resultados, anlisis de falsos positivos
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 19
Esquema de funcionamiento de un
scanner de vulnerabilidades
Herramientas DAST
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 20
Herramientas RAST
- Actan directamente sobre el cdigo ejecutable y el
entorno de ejecucin de los procesos, observando
incluso sus variables en memoria y su estado, y
tambin las peticiones que se hacen a la aplicacin
web y las respuestas que se reciben.
- Esto permite detectar vulnerabilidades en los
campos de entrada a la aplicacin de forma
concreta se sigue el funcionamiento de la aplicacin
porque en tiempo real
- Pueden incidir en el rendimiento de la aplicacin
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 21
Herramientas RAST
- Una vez detectada la vulnerabilidad hay herramientas
que pueden
tomar una de las tres acciones siguientes:
- Generar un informe, despus de la deteccin sin
ms
- Bloquear el intento de ataque
- Sanear la peticin maligna a la aplicacin web,
corrigiendo los valores de entrada a la aplicacin
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 22
SAST-RAST [Artho et Bi. 2005]
Herramientas Hbridas
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 23
Cul es la mejor herramienta?
Veracode SAST
vs. DASD.
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 24
Muchas comparaciones! Pero pocas completas y seguras
1- Seleccionar una determinada metodologa
2- Seleccionar benchmarks, casos de test especficos, contra los que
se ejecutan las herramientas
3- Seleccionar las herramientas objeto de la evaluacin
4- Ejecutar las herramientas contra los benchmarks seleccionados
5- Seleccionar las mtricas a emplear en la medicin de resultados
6- Medir los resultados
7- Analizar y comparar los resultados
Cul es la mejor herramienta?
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 25
SAMATE
Metodologa y benchmarks
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 26
SAMATE
Define:
- Los requerimientos funcionales que debe reunir
toda herramienta de anlisis de cdigo
- Conjuntos de vulnerabilidades. En este caso se
adaptan a las categoras de vulnerabilidades de
aplicaciones web ms importantes
- Variaciones de la complejidad del cdigo
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 27
SAMATE Requerimientos funcionales
Identificar un conjunto seleccionado de vulnerabilidades de software en cdigo fuente.
Informar sobre cada vulnerabilidad encontrada, de que tipo es y donde est localizada.
No tener demasiados falsos positivos. Producir un informe compatible con el de otras
herramientas.
Permitir que las vulnerabilidades puedan ser suprimidas por el usuario.
Usar nombres estndar para las clases de vulnerabilidades.
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 28
SAMATE Conjunto de vulnerabilidades
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 29
SAMATE Benchmarks elegidos: SAMATE juliet 2010
Test Suite que contiene 13782 casos de test, que cubren un amplio abanico de vulnerabilidades de seguridad
Con cada caso de test viene una funcin con una vulnerabilidad concreta y una (1), tres (3) 5 (cinco) versiones de la funcin, dependiendo del caso
con distintas formas de correccin de la vulnerabilidad validando
directamente en la fuente de entrada a la aplicacin (source) donde
especficamente se produce la vulnerabilidad (sink)
Para cada vulnerabilidad se proporcionan versiones de casos de test para distintas complejidades de cdigo
Para cada tipo de complejidad de cdigo existen diferentes versiones de casos de test con diferentes tipos de fuente de entrada como por ejemplo
conexiones tcpip, entrada por consola, base de datos, fichero, cookies,
parmetros de entrada de peticiones, etc.
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 30
Seleccin de herramientas
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 31
Seleccin de herramientas - Se seleccionan 4 herramientas comerciales (una de ellas de
anlisis de cdigo ejecutable, veracode SaaS) y 2 de open source
(una de ellas de anlisis de cdigo ejecutable, findbugs).
- HP FORTIFY 360 v. 3.0.0.0102 SCA. v. 5.10.0.0102
- CHECKMARX CxEnterprise v. 5.5.0
- KLOCWORK INSIGHT (SOLO JAVA v. 8.1.2v011)
- VERACODE saas
- LAPSE+ (open source)
- FINDBUGS v. 1.3.9 (open source)
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 32
Mtricas que se aplican
- Nmero y porcentaje de verdaderos positivos TP (detecciones correctas).
- Nmero y porcentaje de falsos positivos FP (deteccin sin error).
- Nmero de vulnerabilidades para las que la herramienta no est
diseada.
- Precisin. Proporcin de TP respecto al total de detecciones: TP / TP + FP.
- Recall. Proporcin de TP respecto al total de vulnerabilidades que existen en
el cdigo. TP / Total de Vulnerabilidades.
- F-measure. Normalizacin de Precisin y recall.
2 x precisin x recall / precisin + recall
- Correlaciones de resultados entre herramientas, para ver resultados
combinados.
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 33
Resultados
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 34
Resultados
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 35
Resultados
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 36
Resultados
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 37
Resultados
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 38
La principal conclusin es que el uso de las herramientas estticas de cdigo fuente y ejecutable es muy importante dentro del nuevo esquema
de SDLC propuesto. Se logran porcentajes muy altos de deteccin de
vulnerabilidades llegando en algn caso a superar el 80% de forma
aislada
El nmero de falsos positivos, alto en general, en cuatro casos ms del 50%, hay que reducirlo realizando auditora posterior de los resultados o
comprobando su veracidad con otras herramientas de las vistas.
La auditora posterior es generalmente bien tenida en cuenta, con facilidades de trace del error, por todas las herramientas excepto por
FINDBUGS. Este hecho implica la realizacin de una auditora posterior
para erradicarlos o utilizar otras herramientas combinndolas.
Conclusiones
-
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta 39
Alguna
pregunta?
Gabriel Daz Orueta,
Dpto. Ingeniera Elctrica Electrnica y de Control
http://www.ieec.uned.es