introducción al análisis automático de la seguridad de … · 2015-12-09 · scanners...

39
1 Gabriel Díaz Orueta Introducción al análisis automático de la seguridad de aplicaciones web Análisis automático de la seguridad de aplicaciones web Gabriel Díaz Orueta 22 de octubre de 2012

Upload: others

Post on 09-Jul-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

1

Gabriel Díaz Orueta

Introducción al análisis

automático de la seguridad

de aplicaciones web

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta

22 de octubre de 2012

Page 2: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 2

Contenidos

• Vulnerabilidades de seguridad en aplicaciones

web

• Herramientas para el análisis de

vulnerabilidades

• ¿Cuál es la mejor?

Basado en el TFM de don Juan Ramón Bermejo Higuera,

en Octubre de 2011

Page 3: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 3

In computer security, a vulnerability is a

weakness which allows an attacker to

reduce a system's information

assurance.

Page 4: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 4

Vulnerabilidades de seguridad en

aplicaciones web

OWASP (Open Web Application Security Proyect) Top Ten

Page 5: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 5

Vulnerabilidades de seguridad en

aplicaciones web

http://www.owasp.org/index.php/Top_10

Page 6: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 6

Vulnerabilidades de seguridad en

aplicaciones web Métricas más comunes

Porcentaje de cada tipo de vulnerabilidad encontrada con todos los tipos de análisis utilizados.

Porcentaje de cada tipo de vulnerabilidad encontrada con cada tipo de análisis utilizado.

Porcentaje de vulnerabilidades por grados de criticidad globales y por cada tipo de análisis.

Porcentaje de cada tipo de vulnerabilidad por cada tipo de lenguaje de programación en cada tipo

de análisis 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 análisis.

Densidades de defectos por vulnerabilidades y tipos de lenguajes.

Porcentaje de vulnerabilidades por tipo de industria (financiera, defensa…)

Page 7: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 7

Vulnerabilidades de seguridad en

aplicaciones web

Estadísticas vul. WASC 2008. Whitebox & Blackbox.

Page 8: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 8

WASC % de probabilidad de detección blackbox/whitebox

Vulnerabilidades de seguridad en

aplicaciones web

Page 9: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz 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

Page 10: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 10

Vulnerabilidades de seguridad en

aplicaciones web

Vulnerabilidades detectadas INFORME 3 VERACODE

Page 11: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 11

Vulnerabilidades de seguridad en

aplicaciones web

Vulnerabilidades detectadas por tipo de lenguaje. INFORME 3 VERACODE

Page 12: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 12

Vulnerabilidades de seguridad en

aplicaciones web

Coste de la corrección 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

Page 13: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 13

Conclusiones

1- Las aplicaciones web contienen muchas

vulnerabilidades de seguridad

2- Vale la pena intentar detectarlas antes de poner

la aplicación en operación

Page 14: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 14

Herramientas para el análisis de

vulnerabilidades

Modelo SLDC adaptado

Page 15: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 15

Herramientas para el análisis 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 más relevante: falso positivo o falso negativo?

Page 16: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 16

Herramientas para el análisis de

vulnerabilidades

- HERRAMIENTAS DE ANÁLISIS ESTÁTICO (SAST)

Herramientas de análisis de código fuente

Herramientas de análisis de código ejecutable

- HERRAMIENTAS DE ANÁLISIS DINÁMICO (DAST y RAST)

Scanners automáticos de vulnerabilidades de aplicaciones web

- HERRAMIENTAS DE ANÁLISIS HIBRIDO

Combinar análisis SAST y DAST.

Combinar análisis SAST y RAST.

Combinar análisis SAST, DAST y RAST.

Page 17: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 17

Herramientas SAST

de código fuente

- Toman como entrada el código fuente y lo trasforman, generando

representaciones intermedias o modelos del código fuente, según el

caso y a continuación lo analizan contra una serie de reglas definidas

Page 18: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 18

Pueden realizar algunos o todos estos análisis:

- Análisis léxico, sintáctico y semántico como cualquier compilador.

- Análisis intraprocedural o local (dentro de cada función) del flujo

de control y de los datos.

- Análisis global o interprocedural de llamadas entre funciones y

flujo de los datos.

Herramientas SAST

Comprueban todo el código a fondo y coherentemente

Una vez se tienen los resultados, análisis de falsos positivos

Page 19: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 19

Esquema de funcionamiento de un

scanner de vulnerabilidades

Herramientas DAST

Page 20: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 20

Herramientas RAST

- Actúan directamente sobre el código ejecutable y el

entorno de ejecución de los procesos, observando

incluso sus variables en memoria y su estado, y

también las peticiones que se hacen a la aplicación

web y las respuestas que se reciben.

- Esto permite detectar vulnerabilidades en los

campos de entrada a la aplicación de forma

concreta se sigue el funcionamiento de la aplicación

porque en tiempo real

- Pueden incidir en el rendimiento de la aplicación

Page 21: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 21

Herramientas RAST

- Una vez detectada la vulnerabilidad hay herramientas

que pueden

tomar una de las tres acciones siguientes:

- Generar un informe, después de la detección sin

más

- Bloquear el intento de ataque

- Sanear la petición maligna a la aplicación web,

corrigiendo los valores de entrada a la aplicación

Page 22: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 22

SAST-RAST [Artho et Bi. 2005]

Herramientas Híbridas

Page 23: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 23

¿Cuál es la mejor herramienta?

Veracode SAST

vs. DASD.

Page 24: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 24

¡Muchas comparaciones! Pero pocas completas y seguras

1- Seleccionar una determinada metodología

2- Seleccionar benchmarks, casos de test específicos, contra los que

se ejecutan las herramientas

3- Seleccionar las herramientas objeto de la evaluación

4- Ejecutar las herramientas contra los benchmarks seleccionados

5- Seleccionar las métricas a emplear en la medición de resultados

6- Medir los resultados

7- Analizar y comparar los resultados

¿Cuál es la mejor herramienta?

Page 25: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 25

SAMATE

Metodología y benchmarks

Page 26: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 26

SAMATE

Define:

- Los requerimientos funcionales que debe reunir

toda herramienta de análisis de código

- Conjuntos de vulnerabilidades. En este caso se

adaptan a las categorías de vulnerabilidades de

aplicaciones web más importantes

- Variaciones de la complejidad del código

Page 27: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 27

SAMATE Requerimientos funcionales

• Identificar un conjunto seleccionado de

vulnerabilidades de software en código 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 estándar para las clases de

vulnerabilidades.

Page 28: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 28

SAMATE Conjunto de vulnerabilidades

Page 29: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz 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 función con una vulnerabilidad concreta y

una (1), tres (3) ó 5 (cinco) versiones de la función, dependiendo del caso

con distintas formas de corrección de la vulnerabilidad validando

directamente en la fuente de entrada a la aplicación (source) ó donde

específicamente se produce la vulnerabilidad (sink)

• Para cada vulnerabilidad se proporcionan versiones de casos de test para

distintas complejidades de código

• Para cada tipo de complejidad de código 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,

parámetros de entrada de peticiones, etc.

Page 30: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 30

Selección de herramientas

Page 31: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 31

Selección de herramientas - Se seleccionan 4 herramientas comerciales (una de ellas de

análisis de código ejecutable, veracode SaaS) y 2 de open source

(una de ellas de análisis de código 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)

Page 32: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 32

Métricas que se aplican

- Número y porcentaje de verdaderos positivos TP (detecciones correctas).

- Número y porcentaje de falsos positivos FP (detección sin error).

- Número de vulnerabilidades para las que la herramienta no está

diseñada.

- Precisión. Proporción de TP respecto al total de detecciones: TP / TP + FP.

- Recall. Proporción de TP respecto al total de vulnerabilidades que existen en

el código. TP / Total de Vulnerabilidades.

- F-measure. Normalización de Precisión y recall.

2 x precisión x recall / precisión + recall

- Correlaciones de resultados entre herramientas, para ver resultados

combinados.

Page 33: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 33

Resultados

Page 34: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 34

Resultados

Page 35: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 35

Resultados

Page 36: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 36

Resultados

Page 37: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 37

Resultados

Page 38: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 38

• La principal conclusión es que el uso de las herramientas estáticas de

código fuente y ejecutable es muy importante dentro del nuevo esquema

de SDLC propuesto. Se logran porcentajes muy altos de detección de

vulnerabilidades llegando en algún caso a superar el 80% de forma

aislada

• El número de falsos positivos, alto en general, en cuatro casos más del

50%, hay que reducirlo realizando auditoría posterior de los resultados o

comprobando su veracidad con otras herramientas de las vistas.

• La auditoría posterior es generalmente bien tenida en cuenta, con

facilidades de trace del error, por todas las herramientas excepto por

FINDBUGS. Este hecho implica la realización de una auditoría posterior

para erradicarlos o utilizar otras herramientas combinándolas.

Conclusiones

Page 39: Introducción al análisis automático de la seguridad de … · 2015-12-09 · Scanners automáticos de vulnerabilidades de aplicaciones web ... - Esto permite detectar vulnerabilidades

Análisis automático de la seguridad de aplicaciones web

Gabriel Díaz Orueta 39

¿Alguna

pregunta?

Gabriel Díaz Orueta,

Dpto. Ingeniería Eléctrica Electrónica y de Control

http://www.ieec.uned.es