Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OWASP Spain 20080314 Herramientas de Análisis Estático de Seguridad Del Código Estado Del Arte PDF
OWASP Spain 20080314 Herramientas de Análisis Estático de Seguridad Del Código Estado Del Arte PDF
estático de seguridad:
estado del arte
Ponente:
Luis Rodríguez (lrodriguez@als-es.com)
Responsable laboratorio SW de ALS. CISSP.
Auditoría
es
(Certificación)
ad
Requisitos Revisión
id
de seguridad externa de seguridad
tiv
ac
Modelado Análisis Prueba de
Arquitectura
de amenazas estático penetración
de seguridad
Casos Pruebas de Análisis Operación
de abuso seguridad dinámico de seguridad
(*) Adaptado de Software Security: Building Security In. Gary McGraw. Addison Wesley, 2006
Research to AppSec
Secure New Education and
Research
Technologies CBT Web Based
Projects on
Securing New Learning
Technologies Environment
(Web Services and Education
& Ajax) Project
Projects
Chapters AppSec Conferences
(tools and documentation)
OWASP Foundation
(finances, legal, infrastructure, communications)
(*) Tomado de “Finding and Fighting the Causes of Insecure Applications”, Jeff Williams
III OWASP Spain Chapter Meeting 10
Herramientas para análisis
estático de seguridad:
estado del arte
Escaneo
Prueba de penetración Aplicación web desplegada.
dinámico Aplicación web desplegada. Batería predefinida de pruebas.
Conocimiento ‘nulo’ Variantes: fuzzers, scanners,
protocol proxies, etc.
N
C IÓ
U C
D
RO
Analizador P
Analizador estático
estático Cortafuegos
Cortafuegos
de
de aplicación
aplicación
IDE,
IDE,
compilador
compilador Entorno
Entorno
aplicación
aplicación
Plugins
Plugins yy
Código fuente Código objeto Código
ext.
ext. seguridad
seguridad empaquetado
Librerías
Librerías Fuzzer
Fuzzer
(validación…)
(validación…)
DESARROLLO S Escáner
Escáner de
de
BA D
E R O vulnerabilidades
vulnerabilidades
U P
PR RE- de
de aplicación
aplicación
P
Símbolos
Símbolos
Tipos
Tipos
Parser
Parser ControlFlow
ControlFlow Verificador
Verificador
DataFlow
DataFlow
Código fuente CallFlow
CallFlow Informe de
AST Punteros
Punteros modelo
(o bytecode…) defectos
Tainting
Tainting del SW
análisis semántico
y estructural
reglas de
Herramienta seguridad
• Plugin Eclipse
(Java)
• Muy básico
• Basado en
tainting
• Detecta
vulnerabilidades
de tipo inyección
código
orden
explicación
Traza (de flujo de datos)
Fuente: https://buildsecurityin.us-cert.gov/daisy/bsi/articles/best-practices/code/214.html
• Las 6 excusas
• “No creo que sea explotable: demuéstramelo…”
• “Confío en los administradores de redes / sistemas”
• “Tienes que estar autenticado para acceder a esa página”
• “A nadie se le ocurriría hacer eso”
• “Esa función nunca ha dado problemas (en los tests, nodo X…)”
• “Ese código no estaba previsto que acabase en producción; tenlo en
cuenta…”
• Los gestores deben transmitir este modo de proceder:
• Si hay un defecto de seguridad, incluso potencial, debe resolverse.
Punto.
• El equipo de revisión no tiene que demostrar nada a desarrollo. El
equipo de desarrollo, si lo desea, puede argumentar las razones por las
que creen que el código es seguro, sin usar ninguna de las “6 excusas”
arriba enumeradas.
• Siempre es mejor cubrir con código defensivo una vulnerabilidad
potencial no explotable, que dejar sin tratar una vulnerabilidad
explotable.