En esta ocasión, vamos a aprender acerca del famoso TOP 10 de OWASP (Open Web Application Security Project), que nos va a servir como referente para auditorias Web y Pruebas de Intrusión Externas.
Primero unas definiciones:
- OWASP (Open Web Application Security Project), es una comunidad abierta que se dedica a facultar a las organizaciones a desarrollar, adquirir y mantener aplicaciones que pueden ser consideradas como confiables. OWASP cuenta con varios proyectos, pero uno de los más populares es su famoso TOP 10.
- TOP 10.- Es el proyecto de OWASP que busca crear conciencia acerca de la seguridad en aplicaciones mediante la identificación de algunos de los riesgos más críticos que enfrentan las organizaciones. Este proyecto es referencia de múltiples estándares, libros, herramientas, y organizaciones, incluyendo MITRE, PCI DSS, DISA, FCT, entre otras.
El TOP 10 de OWASP tiene ya una versión reciente, la 2017, que reemplaza a la versión del 2013
En la imagen anterior se observan las diferencias entre la versión del 2013 y la del 2017.
En lo personal considero que el TOP 10 del 2017 fue hecho a la medida de los fabricantes de soluciones de seguridad, y para muestra está el punto A10:2017-Insufficient Logging&Monitoring. Pero vamos a ver con más detalle cada punto (es importante mencionar que están en orden del más al menos común, o bien, del más el menos importante):
- A1:2017- Injection.- Una inyección (de código) ocurre cuando una aplicación envía información a un intérprete. El atacante envía simples cadenas de texto modificadas para que se ejecute alguna acción "maliciosa", explotando la sintaxis del intérprete. Se pueden realizar ataques de inyección SQL (Structured Query Language), de código, de comandos, de LDAP (Lightweight Directory Access Protocol), de XML (eXtensible Markup Language), SSI (Server-Side Includes), entre otros.
- A2:2017- Broken Authentication.- Este punto habla sobre los ataques que se producen por una mala gestión de la autenticación o de la gestión de las sesiones. Desde sesiones que no caducan, hasta una mal comprobación de la autenticación de la sesión. Ataques conocidos en este punto son, por ejemplo, Session Fixation, Pass-the-hash, Session Hijacking, etcétera.
- A3:2017- Sensitive Data Exposure.- Datos o información sensible expuesta, aplicable para aplicaciones y entornos en donde existen datos personales, datos médicos, etcétera, que no están correctamente protegidos, ya sea por medio del manejo de sesiones, roles y perfiles, cifrados de mayor complejidad, múltiples factores de autenticación, etc.
- A4:2017- XML External Entities (XXE).- Se refiere a un ataque de falsificación de solicitud de servidor (SSRF), mediante el cual un atacante es capaz de causar DDoS (denegación de servicio) o bien, un acceso no autorizado a archivos y servicios. Desde mi punto de vista, esto finalmente debería de formar parte de "Injection".
- A5:2017- Broken Access Control.- Se refiere a las zonas de las aplicaciones que no están correctamente protegidas, lo que provoca que usuarios no autenticados obtengan acceso a ellas o ejecuten acciones que no deberían.
- A6:2017- Security Misconfiguration.- Desde errores en los mensajes de error, hasta fallos en la configuración del servidor web. Ejemplos de estos hay muchos, desde el Multiple Choices de Apache, hasta el IIS Shortname de Microsoft, pasando por los errores no controlados de los frameworks o las configuraciones inseguras de paneles de administración.
- A7:2017- Cross-Site Scripting (XSS).- Los ataques XSS, descubiertos a finales de los 90's y que aún siguen apareciendo constantemente. Lo preocupante es que pasan los años y esta vulnerabilidad sigue presente, a pesar de que hay tanta documentación para mitigarla... Simplemente se le agradece a los programadores y administradores por sus malas prácticas.
- A8:2017- Insecure Deserialization.- La complicada... La serialización implica convertir datos de un formato a otro (por ejemplo de un formato admitido por la aplicación a formato XML) que permita su transmisión o guardado. Esta vulnerabilidad podría permitir la ejecución remota de esos códigos serializados.
- A9:2017- Using Components with Known Vulnerabilities.- Utilizar componentes, aplicaciones, librerías, etc... con vulnerabilidades conocidas... En otras palabras, la falta de actualizaciones.
- A10:2017- Insufficient Logging & Monitoring.- Y finalmente, la gran decepción... La falta de logs y monitoreo de los mismos, que se traduce como una ausencia de respuesta a incidentes.
Les dejo el link por si quieren descargar o ver todo el documento del OWASP TOP 10 2017.
Estén pendientes porque en futuros posts vamos a ver cómo explotar las vulnerabilidades contempladas en el TOP 10 de OWASP.
Comentarios
Publicar un comentario