técnicas de evaluación de seguridad en el softwarevicenteaguileradiaz.com/pdf/gigatic17 -...
TRANSCRIPT
![Page 1: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/1.jpg)
Sesión S01
Técnicas de Evaluación de
Seguridad en el SoftwareVicente Aguilera Díaz
#gigaTIC17
![Page 2: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/2.jpg)
Agenda
1. Complejidad del software
2. Crear software seguro
3. Técnicas clásicas de evaluación
4. Machine Learning aplicado al testing
5. Conclusiones
2
Técnicas de Evaluación de Seguridad en el Software
![Page 3: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/3.jpg)
1. Complejidad del software
3
Técnicas de Evaluación de Seguridad en el Software
![Page 4: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/4.jpg)
4
Técnicas de Evaluación de Seguridad en el Software
![Page 5: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/5.jpg)
5
Técnicas de Evaluación de Seguridad en el Software
![Page 6: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/6.jpg)
2. Crear software seguro
6
Técnicas de Evaluación de Seguridad en el Software
![Page 7: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/7.jpg)
Software seguro
Diseñar, construir y probar el software para la
seguridad
Continúa ejecutándose correctamente bajo un
ataque malicioso
Diseñado con el fallo en mente
7
Técnicas de Evaluación de Seguridad en el Software
![Page 8: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/8.jpg)
Buenas prácticas
OWASP SAMM
OWASP CLASP
Microsoft SDL
SSE CMM
Cigital Touchpoints
BSIMM
8
Técnicas de Evaluación de Seguridad en el Software
![Page 9: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/9.jpg)
3. Técnicas clásicas de evaluación
9
Técnicas de Evaluación de Seguridad en el Software
![Page 10: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/10.jpg)
10
Técnicas de Evaluación de Seguridad en el Software
![Page 11: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/11.jpg)
¿Qué es la evaluación?
Comparación del estado de algo con un
conjunto de criterios
11
Técnicas de Evaluación de Seguridad en el Software
![Page 12: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/12.jpg)
¿Porqué hacer la evaluación?
Identificar gap entre las prácticas de la
organización y las mejores prácticas de la
industria
12
Técnicas de Evaluación de Seguridad en el Software
![Page 13: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/13.jpg)
¿Cuándo hacer la evaluación?
A través del SDLC
13
Técnicas de Evaluación de Seguridad en el Software
![Page 14: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/14.jpg)
¿Qué incluir en la evaluación?
Pesonas, procesos y tecnología
14
Técnicas de Evaluación de Seguridad en el Software
![Page 15: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/15.jpg)
Técnicas clásicas
Revisiones e inspecciones manuales
Modelado de amenazas
Revisiones de código
Pruebas de intrusión
15
Técnicas de Evaluación de Seguridad en el Software
![Page 16: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/16.jpg)
Revisiones e inspecciones manuales
Entrevistas
Análisis de documentación
Evalúa el SDLC
16
Técnicas de Evaluación de Seguridad en el Software
![Page 17: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/17.jpg)
Ventajas
No requiere soporte de tecnología
Flexible
Promueve el trabajo en equipo
Temprano en el SDLC
17
Técnicas de Evaluación de Seguridad en el Software
![Page 18: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/18.jpg)
Inconvenientes
Puede consumir mucho tiempo
El material no siempre está disponible
Require habilidades específicas para ser
efectivo
18
Técnicas de Evaluación de Seguridad en el Software
![Page 19: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/19.jpg)
Modelado de amenazas
Descomponer la aplicación
Definir y clasificar los activos
Identificar vulnerabilidades potenciales
Identificar amenazas potenciales
Crear estrategias de mitigación
19
Técnicas de Evaluación de Seguridad en el Software
![Page 20: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/20.jpg)
Ventajas
Punto de vista práctico del atacante
Permite tomar decisiones informadas sobre los
riesgos de seguridad
Flexible
Temprano en el SDLC
20
Técnicas de Evaluación de Seguridad en el Software
![Page 21: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/21.jpg)
Inconvenientes
Require conocimiento profundo del software
Es un proceso continuo y requiere actualización
21
Técnicas de Evaluación de Seguridad en el Software
![Page 22: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/22.jpg)
Revisiones de código
Búsqueda de vulnerabilidades en el código
fuente de la aplicación
Conocimiento real de lo que hace la aplicación
22
Técnicas de Evaluación de Seguridad en el Software
![Page 23: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/23.jpg)
Ventajas
Completo y efectivo
Preciso
23
Técnicas de Evaluación de Seguridad en el Software
![Page 24: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/24.jpg)
Inconvenientes
Requiere altos conocimientos de desarrollo y
seguridad
No puede detectar errores en tiempo de
ejecución
El código fuente desplegado puede ser distinto
del código analizado
24
Técnicas de Evaluación de Seguridad en el Software
![Page 25: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/25.jpg)
Pruebas de intrusión
Búsqueda de vulnerabilidades en tiempo de
ejecución
Simula el escenario de un atacante
Explotación de las vulnerabilidades
“If you fail a penetration test you know you have a very bad
problem indeed. If you pass a penetration test you do not
know that you don’t have a very bad problem”
25
Técnicas de Evaluación de Seguridad en el Software
![Page 26: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/26.jpg)
Ventajas
Puede ser rápido/económico
Requiere “menos” habilidades que la revision
de código
Evalúa el código que está expuesto
26
Técnicas de Evaluación de Seguridad en el Software
![Page 27: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/27.jpg)
Inconvenientes
Demasiado tarde en el SDLC
Sólo evalúa la funcionalidad accesible
27
Técnicas de Evaluación de Seguridad en el Software
![Page 28: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/28.jpg)
4. Machine Learning aplicado al testing
28
Técnicas de Evaluación de Seguridad en el Software
![Page 29: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/29.jpg)
Machine Learning
Machine learning is an application of artificial
intelligence (AI) that provides systems the
ability to automatically learn and improve from
experience without being explicitly
programmed.
29
Técnicas de Evaluación de Seguridad en el Software
![Page 30: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/30.jpg)
Aplicado a la evaluación del software
30
Técnicas de Evaluación de Seguridad en el Software
![Page 31: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/31.jpg)
Aplicado a la evaluación del software
DeepCode
Creado por DARPA
Analiza código fuente y binario
Identifica la forma del código vulnerable
“Ultimately, the goal of DeepCode is to find all instances of
all known software bugs”
31
Técnicas de Evaluación de Seguridad en el Software
![Page 32: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/32.jpg)
Aplicado a la evaluación del software
Code Phage
Creado por MIT
Identifica vulnerabilidades
Es capaz de auto parchear el código
Entre 2-10 minutos
32
Técnicas de Evaluación de Seguridad en el Software
![Page 33: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/33.jpg)
Aplicado a la evaluación del software
Infer
Análisis estático
Open-source
33
Técnicas de Evaluación de Seguridad en el Software
![Page 34: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/34.jpg)
Aplicado a la evaluación del software
Diferencia con escáneres automáticos
Escáneres automáticos
Identifican sólo vulnerabilidades conocidas
Elevada tasa de falsos positivos
Recomendaciones generales
34
Técnicas de Evaluación de Seguridad en el Software
![Page 35: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/35.jpg)
Aplicado a la evaluación del software
Detección de vulnerabilidades
A tiempo real
Optimización de las pruebas de seguridad
Prevención de nuevos vectores de ataque
Recomendaciones y aplicación de soluciones
Elaboración de informes de evaluación
Aportará reducción de costes
Incrementará la calidad del análisis
35
Técnicas de Evaluación de Seguridad en el Software
![Page 36: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/36.jpg)
5. Conclusiones
36
Técnicas de Evaluación de Seguridad en el Software
![Page 37: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/37.jpg)
Conclusiones
Construir software seguro implica adoptar un
modelo de madurez
Las pruebas deben servir para verificar y no
para conocer el nivel de seguridad
Aunque el uso de herramientas es necesario,
siempre se requiere una revisión humana
Es necesario entender el contexto del análisis y
ser imaginativo en las pruebas
37
Técnicas de Evaluación de Seguridad en el Software
![Page 38: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/38.jpg)
Conclusiones
Las técnicas de evaluación clásicas siguen
siendo válidas y necesarias
Machine learning no será un sustituto, será un
proceso complementario
Análisis estático inteligente
Automatización de pruebas de seguridad
El mercado demanda conocimientos en
inteligencia artificial y técnicas de machine
learning
38
Técnicas de Evaluación de Seguridad en el Software
![Page 39: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/39.jpg)
Referencias
39
Técnicas de Evaluación de Seguridad en el Software
![Page 40: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/40.jpg)
Referencias
Facebook AI tool squashing bugs is now open
https://www.wired.com/2015/06/facebooks-ai-
tool-squashing-bugs-now-open/
Infer
http://fbinfer.com
DeepCode
http://www.deepcode.ai
40
Técnicas de Evaluación de Seguridad en el Software
![Page 41: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/41.jpg)
Referencias
Code Phage - Automatic Error Elimination
https://people.csail.mit.edu/stelios/papers/codep
hage_pldi15.pdf
OWASP
https://www.owasp.org
OWASP SAMM
https://www.owasp.org/index.php/OWASP_SAM
M_Project
41
Técnicas de Evaluación de Seguridad en el Software
![Page 42: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12](https://reader031.vdocumento.com/reader031/viewer/2022022617/5ba4ef7d09d3f247428bd01e/html5/thumbnails/42.jpg)
Moltes gràcies !
Técnicas de Evaluación de Seguridad en el Software
Sesión S01
Vicente Aguilera Díaz
+34 93 305 13 18
@VAguileraDiaz
42