Professional Documents
Culture Documents
3 Conclusiones
4 Referencias
Vulnerabilidad
Un error en un sistema que permite violar la polı́tica de seguridad
definida.
Ataque
(o exploit) el aprovechamiento de una vulnerabilidad para violar una
polı́tica de seguridad (en inglés puede referirse al hecho o a la
herramienta)
Confidencialidad
Integridad
Disponibilidad
Vulnerabilidades
Existen distintos tipos y con distintos niveles de riesgo (CVVS):
Aprovechamiento: remoto vs. local
Consecuencias: Denegación de servicio vs. ejecución de código
Otros eventos
Alguien desarrolla un ataque
Se publica un ataque
Se desarrollan herramientas automatizadas que utilizan el ataque
Los sistemas que utilizan ese programa quedan comprometidos
Consecuencias de un aprovechamiento
Errores
Fijada de antemano el tamaño máximo de entrada: sobrecarga
Falta de validación de entrada: inyección de código
Consecuencias
Ejecución de código en el sistema operativo
Si fuera un demonio o servicio, con los priviliegios del usuario que
lo ejecuta
Consecuencias
Obtención de información sensible
Malversación del acceso a la aplicación
Ejecución de código en la BBDD con los priviliegios de la
aplicación
Libros
Practical Unix Security: Simon Garfinkel and Gene Spafford. ISBN
0-596-00323-4
Secure Coding, Principles and Practices: Mark Graff and Kenneth
R.van Wyk. ISBN: 0-596-00242-4
Secure Programming for Linux and Unix HOWTO: David Wheeler,
http://www.dwheeler.com/secure-programs/
A Guide to Building Secure Web Application and Web Services,
proyecto OWASP,
http://www.owasp.org/documentation/guide.html
Cursos
Dan Bernstein’s UNIX Security Holes Course, Dan Bernstein:
http://cr.yp.to/2004-494.html
Secure Programming Educational Material, Universidad de
Purdue: http://projects.cerias.purdue.edu/secprog/
Programming Secure Applications for Unix-like systems, David A.
Wheeler: http:/www.dwheeler.com/secure-programs
Portales de referencia
Build Security In, http://buildsecurityin.us-cert.gov/
Taxonomoy of Coding Errors, Fortify:
http://vulncat.fortifysoftware.com/
OWASP, http://www.owasp.org/
Información de vulnerabilidades
CVE, http://cve.mitre.org/
Bugtraq,
http://www.securityfocus.com/vulnerabilities
NVD (antiguo ICAT), http://nvd.nist.gov/
Hello-insecure
Demonio que responde a conexiones al puerto 1025
Con errores de seguridad introducidos a propósito
multiple-bugs.c
Aplicación que busca una orden el sistema
Múltiples errores de seguridad introducidos a propósito
Errores de implementación:
Sobrecarga de búfer: getenv() con sprintf()
Error de diseño: ficheros de registro en /tmp
Condiciones de carrera: uso de fopen()
Sobrecarga de stack: gets()
Sobrecarga de búfer por utilización de búfer estático: sprintf()
Sobrecarga de cadena de formato: syslog()
Inyección de código: system()