charla 2

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: byron-delgado

Post on 12-Sep-2015

216 views

Category:

Documents


2 download

DESCRIPTION

fdfdfd

TRANSCRIPT

  • 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