Cybsec Tendencias2007 Seguridad SDLC
Cybsec Tendencias2007 Seguridad SDLC
Cybsec Tendencias2007 Seguridad SDLC
desarrollo de software
Lic. Pablo Milano
<pmilano@cybsec.com>
12 de Septiembre de 2007
Buenos Aires - Argentina
Introduccin
2007
Tiempo
Deployment
Testing
Codificacin
Diseo
Analisis
Costo
Introduccin
2007
Introduccin
2007
Tendencia actual
Anlisis
Diseo
Codificacin
Testing
Deployment
2007
2007
Modos de autenticacin
Passwords, Tokens, Biomtricos
1 factor, 2 factores, etc
6
Seguridad en el diseo
2007
Seguridad en el diseo
Muchas de las vulnerabilidades encontradas en aplicaciones tuvieron
su causa en errores de diseo. Ej:
Aplicacin Home banking (WEB)
Inclua el nmero de cuenta en el request de transferencias
No validaba que la cuenta origen perteneciera al usuario logueado
Vulnerabilidad: Transferencias desde cuentas ajenas
Aplicacin de Adm y Finanzas (Consola Unix)
Tomaba el usuario de una variable de entorno
Permita que el usuario escapara a un shell
Vulnerabilidad: Se puede establecer un usuario arbitrario
7
Seguridad en el diseo
2007
Separacin de privilegios
Anlisis de riesgo
8
Seguridad en el diseo
2007
Seguridad en el diseo
2007
Mtodo STRIDE
Ayuda a identificar amenazas en los componentes de un sistema
Su nombre es un acrnimo de:
Spoofing Identity: Suplantar la identidad de otro usuario o servicio.
Tampering with Data: Modificar maliciosamente datos almacenados.
Repudiation: Imposibilidad de identificar el autor de una accin.
Information Disclosure: Divulgar informacin a usuarios no autorizados.
Denial of Service: Provocar que un servicio deje de funcionar.
Elevation of privilege: Conseguir privilegios mayores a los asignados
10
Seguridad en el diseo
2007
rboles de ataque
Amenaza #1
Un usuario accede en
nombre de otro
1.1
El usuario tena una
contrasea dbil
1.2
El atacante captur
datos de autenticacin
de la red
1.2.1
La comunicacin no
estaba encriptada
1.3
El sistema permiti un
ataque de diccionario /
fuerza bruta
1.2.2
El mecanismo de
autenticacin es
vulnerable a replay
de paquetes
1.4
El sistema de
validacin /
autenticacin es
defectuoso
1.4.1
El sistema de
validacin no falla de
manera segura
1.5
El sistema permite
armar peticiones con
IDs de otros usuarios
1.4.2
El sistema de
validacin es
vulnerable a ataques
de SQL Injection
11
Seguridad en el diseo
2007
Mtodo DREAD
12
Seguridad en la codificacin
2007
Seguridad en la codificacin
La falta de controles adecuados en la codificacin, muchas veces
deriva en vulnerabilidades que pueden comprometer a la aplicacin o
a los datos de la misma
SQL Injections
Directory Traversal
Authentication Bypass
Information Disclosure
Escalamiento de privilegios
Manejo inseguro de sesiones
Denegacin de servicio
13
Seguridad en la codificacin
2007
Testing de seguridad
2007
Bugs que se
encuentran mediante
Testing de seguridad
Funcionalidad diseada
Funcionalidad real
Bugs que se
encuentran mediante
Testing funcional
15
Testing de seguridad
2007
Funcional
(clsico)
aplicado
las
funcionalidades
de
Funcionalidad de captchas
Testing de seguridad
2007
Test de stress
Consiste en llevar la carga o funcionalidad de la aplicacin al lmite
Generar una carga alta de peticiones/transacciones a la aplicacin.
Mantener esta carga durante tiempos prolongados.
Simular trfico en rfagas.
17
Testing de seguridad
2007
Caracteres especiales
Diferente tipo
Diferente longitud
Valores nulos
Fuera de rango
Valores aleatorios
Revisin de cdigo
Permite encontrar vulnerabilidades que son muy difciles de detectar
con otros mtodos de testing de seguridad (ej: BackDoors)
Seguridad en la Implementacin
2007
Servicios innecesarios
Usuarios y contraseas default
Configuracin de intrpretes
Proceso de implementacin
Separacin de ambientes
Releases y Patches
Firma de cdigo
19
Conclusiones
Integrando seguridad a lo largo de todas las etapas del SLDC se
ahorra tiempo y dinero.
La tendencia actual es que SI participe desde el principio de los
proyectos de desarrollo.
La mayora de las vulnerabilidades no se deben a errores de
codificacin, sino a defectos de diseo.
Existen buenas prcticas y tcnicas especficas para insertar
seguridad en cada etapa del SDLC.
20
Preguntas?
21