De lo operativo a lo estratégico: un modelo de management de diseño
Desarrollo seguro apps
1. Ya eres parte de la evolución
Liquid Day
La importancia del desarrollo
seguro de aplicaciones
¿Por qué debo pensar como hacker?
Héctor Paredes
@heryxpc
#sgnext
2. Agenda
• Introducción
• ¿Qué es una vulnerabilidad?
• Situación actual
• Vulnerabilidades en aplicaciones
• Vulnerabilidades famosas
• Vulnerabilidades comunes
• Ejemplos
• Buenas prácticas
6. Situacion actual- ¡CRISIS!
● Las vulnerabilidades y amenazas han ido en aumento.
● Hay mayor cobertura mediatica.
− Lo que le paso a Sony, http://fortune.com/sony-hack-part-1/
− Tu contraseña de LinkedIn está en la nube,
http://motherboard.vice.com/read/another-day-another-hack-117-
million-linkedin-emails-and-password,
https://haveibeenpwned.com/
− ¿Algo más local?, ¡A hackear la democracia en LatinoAmerica!,
http://www.bloomberg.com/features/2016-como-manipular-una-
eleccion/
Fuente:CVE-Details http://www.cvedetails.com/browse-by-date.php
7. ¿Qué estamos haciendo?
El utilizar equipos especializados, herramientas, pruebas de
penetración es de gran ayuda...pero nada es infalible.
Fuente: FireEye Mandant M-Trends 2016, f, https://www2.fireeye.com/rs8/48-DID-
242/images/Mtrends2016.pdfhttps://www.fireeye.com/content/dam/fireeye-www/global/en/current-threats/pdfs/Infographic-
mtrends2016.pd
• Los ambientes sufren
cambios.
• Existe el factor humano.
• Hay muchas vertientes de
ataque.
• Confiar en la seguirad
perimetral
8. Vulnerabilidades en las aplicaciones
● Ponle un nombre Fancy!
● Hearthbleed - http://heartbleed.com/
● Error en el proceso de hearbeat para
mantener la conexión TLS viva en OpenSSL
que permitía leer secciones de memoria
donde existian nombres y llaves de acceso
de los servicios con tráfico encriptado.
● Pudo ser evitado por medio de pruebas
unitarias y análisis estático. *
* Fuentes: Goto Fail, Heartbleed, and Unit Testing Culture, Bland Mark,MartinFowler.com, 03 Junio 2014,
http://martinfowler.com/articles/testing-culture.html
The Roles of Static Analysis in Heartbleed, Saas Jeef, SANS Institute, 12 Febrero 2015 https://www.sans.org/reading-
room/whitepapers/threats/role-static-analysis-heartbleed-35752
9. Vulnerabilidades en las
aplicaciones
● Ghost - https://itservices.uchicago.edu/page/ghost-
vulnerability
● Error en una libreria de Glibc en las funciones
gethostbyname*() que, por medio de un bufferoverflow
permiten sobreescribir secciones de memoria que, a su
vez, permitian ejecutar código dentro de una aplicacion
compilada con GCC que usara glibc-2.2
11. Ejemplos
● Buffer Overflow
● Escribiendo en lugares de memoria donde no debes.
● Se da regularmente por no validar el tamaño de de la
información que se esté recibiendo en una función con
manejo de memoria. (cambiando el valor de variables,
haciendo llamadas a otras funciones, tirando un
programa o servicio = DOS)
• https://www.owasp.org/index.php/Buffer_Overflows
%08x.%08x.%08x.%08x.%08x.%
08x.%08x.%08x.%08x.%08x.%0
8x.%08x.%08x.%08x.%08x.%08
x.%08x.%08x.%08x.%08x.%08x.
%08x.%08x.%08x.%08x.
16. Prácticas
● No usar contraseñas por default en ambientes
productivos.
● El CERT - SEI (Universidad de Carnegie Mellon)
tiene una serie de estándares para el código
seguro en Java, C, C++, Perl y Android.
● https://www.securecoding.cert.org/confluence/display/java/SEI+CERT+Oracle
+Coding+Standard+for+Java
● Utilizar herramientas como Sonar o Findbug
pueden ayudar a encontrar errores simples.