Escolar Documentos
Profissional Documentos
Cultura Documentos
automtico de la seguridad
de aplicaciones web
22 de octubre de 2012
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta
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
Vulnerabilidades de seguridad en
aplicaciones web
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
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)
Vulnerabilidades de seguridad en
aplicaciones web
Vulnerabilidades de seguridad en
aplicaciones web
Vulnerabilidades de seguridad en
aplicaciones web
1
SQL Injection
7%
Logic Flaws
7%
Authorization bypass
5%
XSS
26%
Authentication bypass
8%
Session Handling
13%
CSRF
11%
Information leakage
13%
10
7%
Vulnerabilidades de seguridad en
aplicaciones web
10
Vulnerabilidades de seguridad en
aplicaciones web
11
Vulnerabilidades de seguridad en
aplicaciones web
Coste de la correccin de vulnerabilidades
12
Conclusiones
1- Las aplicaciones web contienen muchas
vulnerabilidades de seguridad
13
14
15
16
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
17
Herramientas SAST
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.
Comprueban todo el cdigo a fondo y coherentemente
18
Herramientas DAST
Esquema de funcionamiento de un
scanner de vulnerabilidades
19
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
20
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
21
Herramientas Hbridas
22
Veracode SAST
vs. DASD.
23
24
Metodologa y benchmarks
SAMATE
25
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
26
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
27
SAMATE
Conjunto de vulnerabilidades
28
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
29
Seleccin de herramientas
30
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
31
32
Resultados
33
Resultados
34
Resultados
35
Resultados
36
Resultados
37
Conclusiones
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.
38
Alguna
pregunta?
39