Você está na página 1de 39

Introduccin al 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

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

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

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

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)

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

Vulnerabilidades de seguridad en
aplicaciones web

Estadsticas vul. WASC 2008. Whitebox & Blackbox.


Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta

Vulnerabilidades de seguridad en
aplicaciones web

WASC % de probabilidad de deteccin blackbox/whitebox

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

Vulnerabilidades de seguridad en
aplicaciones web
1

SQL Injection
7%

Logic Flaws
7%

Authorization bypass
5%

XSS
26%

Authentication bypass
8%

Vulnerable third party software


3%

Session Handling
13%

CSRF
11%

Information leakage
13%

10

Source code disclosure

7%

Ranking de vulnerabilidades detectadas 2010


(TRUSTWARE SPIDER LABS)
Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta

Vulnerabilidades de seguridad en
aplicaciones web

Vulnerabilidades detectadas INFORME 3 VERACODE


Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta

10

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

11

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

12

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

13

Herramientas para el anlisis de


vulnerabilidades

Modelo SLDC adaptado


Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta

14

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

15

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

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

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

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

Una vez se tienen los resultados, anlisis de falsos positivos


Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta

18

Herramientas DAST

Esquema de funcionamiento de un
scanner de vulnerabilidades

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

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

- Pueden incidir en el rendimiento de la aplicacin


Anlisis automtico de la seguridad de aplicaciones web
Gabriel Daz Orueta

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

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

21

Herramientas Hbridas

SAST-RAST [Artho et Bi. 2005]

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

22

Cul es la mejor herramienta?

Veracode SAST
vs. DASD.

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

23

Cul es la mejor herramienta?


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

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

24

Metodologa y benchmarks
SAMATE

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

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

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

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

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

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

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

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

- 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

31

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

32

Resultados

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

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.

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

38

Alguna
pregunta?

Gabriel Daz Orueta,


Dpto. Ingeniera Elctrica Electrnica y de Control
http://www.ieec.uned.es

Anlisis automtico de la seguridad de aplicaciones web


Gabriel Daz Orueta

39

Você também pode gostar