Las aplicaciones son hoy en día uno de los activos principales de cualquier empresa. Tanto si dan servicio a usuarios finales (por ejemplo aplicaciones de ebanking o ecommerce) como si se trata de aplicaciones corporativas (una intranet), las aplicaciones manejan información cuya confidencialidad, disponibilidad e integridad es fundamental para las empresas.
Las Auditorías de Seguridad sobre Aplicaciones se han vuelto imprescindibles para evaluar la seguridad de los desarrollos (propios o realizados por terceros). Estas auditorías o evaluaciones deben realizarse periódicamente y tendiendo en cuenta tanto la parte interna (accesos desde la red corporativa) como la parte externa (accesos con origen Internet) de los aplicativos.
Uno de las metodologías con más reconocimiento internacional a la hora de realizar auditorías de seguridad sobre aplicaciones es la OWASP Testing Guide que alcanza ya su tercera versión. La OWASP (Open Web Application Security Project) lanzó este proyecto con el objetivo de crear un marco que incluyera las mejores prácticas en el desarrollo de tests de intrusión en aplicaciones. La ultima versión (v3) de la Testing Guide fue publicada en Diciembre de 2008 y esta previsto que se la v4 de la guía se publicada en Enero de 2011.
A lo largo de más de 300 páginas, la OWASP Testing Guide hace un repaso de las principales técnicas de auditoría de seguridad en aplicaciones relacionando estas técnicas con las amenazas que sufren hoy en día de aplicativos. A grandes rasgos las pruebas de intrusión sobre aplicaciones desarrolladas en la OWASP Testing Guide son las siguientes:
1.- Recopilación de información
. Esta primera fase de la Auditoria de Seguridad consiste en recopilar toda la información que se pueda sobre la aplicación cuya seguridad está siendo auditada.
. Los tipos de análisis a realizar en este punto son los siguientes:
– Spiders, robots y crawlers:
– Reconocimiento mediante motores de búsqueda.
– Identificación de puntos de entrada de la aplicación.
– Pruebas de firmas de aplicaciones Web.
– Descubrimiento de aplicaciones.
– Análisis de código de error.
2.- Pruebas de gestión de configuración de la infraestructura
. En esta etapa se realiza un análisis de la infraestructura tecnológica sobre la que se encuentra desplegada la Aplicación que se desea auditar.
. Las pruebas a realizar en esta segunda etapa son las siguientes:
– Pruebas de SSL/TLS.
– Pruebas del receptor de escucha de la Base de Datos.
– Pruebas de gestión de configuración de la infraestructura.
– Pruebas de gestión de configuración de la aplicación.
– Gestión de extensiones de archivos.
– Archivos antiguos, copias de seguridad y sin referencias.
– Interfaces de administración de la infraestructura y de la aplicación.
– Métodos HTTP y XST.
3.- Comprobación del sistema de Autenticación
. Comprobar el sistema de autenticación significa comprender como funciona el proceso de autenticación y usar esa información para eludir el mecanismo de autenticación.
. Las pruebas que se realizan para evaluar el sistema de Autenticación son las siguientes:
– Transmisión de credenciales a través de un canal cifrado.
– Enumeración de usuarios.
– Pruebas de fuerza bruta.
– Saltarse el sistema de Autenticación.
– Comprobar Sistemas de recordatorio/restauración de contraseñas vulnerables.
– Pruebas de gestión del Caché de Navegación y de salida de sesión.
– Pruebas de CAPTCHA.
– Múltiples factores de autenticación.
– Análisis de condiciones de carrera.
4.- Pruebas de gestión de sesión
. Ataques a la gestión de sesiones de una aplicación pueden ser utilizados para obtener acceso a cuentas de usuario sin necesidad de proporcionar credenciales correctos.
. Para validar una correcta gestión de sesiones, la OWASP Testing Guide propone las siguientes verificaciones:
– Pruebas para el esquema de gestión de sesiones.
– Pruebas para atributos de cookies.
– Pruebas para fijación de sesión.
– Pruebas para variables de sesión expuestas.
– Pruebas para CSRF.
5.- Pruebas de Autorización
. La Autorización es un proceso posterior a la Autenticación por lo tanto el auditor necesitará de credenciales para realizar las pruebas correspondientes a este módulo.
. Se comprobará si es posible evadir la autorización de la aplicación, si existe una vulnerabilidad en el traspaso de rutas o si es posible realizar un escalado de privilegios.
. Las pruebas a realizar para evaluar la seguridad del sistema de Autorización son las siguientes:
– Pruebas de path transversal.
– Pruebas para saltarse el esquema de autenticación.
– Pruebas de escalado de privilegios.
6.- Comprobación de la lógica del negocio
. La principal técnica para detectar errores en la lógica de la aplicación es «pensar de forma no convencional»; por ejemplo, intentar saltarse uno de los 3 pasos del proceso de registro de una aplicación.
. Las vulnerabilidades de este tipo pueden ser de las más graves de la aplicación y encontrarlas se basa únicamente en la habilidad y creatividad del auditor.
7.- Pruebas de validación de datos
. La vulnerabilidad más común en las aplicaciones es la falta de validación de los parámetros introducidos por los usuarios. Esta vulnerabilidad provoca que usuarios malintencionados inyectan comandos o sentencias en vez de simples datos, con el peligro que esto conlleva para la normal ejecución de la aplicación.
. Las pruebas de evaluación a realizar durante la comprobación de validación de datos en la aplicación auditada son las siguientes:
– Pruebas de cross site scripting.
– Inyección SQL.
– Inyección LDAP.
– Inyección ORM.
– Inyección XML.
– Inyección SSI.
– Inyección XPATH.
– Inyección IMAP/SMTP.
– Inyección de código.
– Inyección de comandos de sistema operativo.
– Pruebas de desbordamiento de buffer.
– Pruebas de vulnerabilidad incubada.
Pruebas de HTTP Splitting/Smuggling.
8.- Pruebas de denegación de servicio
. El objetivo fundamental de un ataque de denegación de servicio es lograr que la aplicación objeto del ataque se vea desbordada (ya sean sus funciones de red, su memoria, su espacio de disco, etc.) hasta conseguir que deje de funcionar adecuadamente.
. Las pruebas de DoS que se tratan en la OWASP Testing Guide son las siguientes:
– Denegación de servicio mediante ataques SQL Wildcard.
– Bloqueando cuentas de usuarios.
– Desbordamiento de búfer.
– Reserva de Objetos Especificada por Usuarios.
– Pruebas de Escritura de Entradas Suministradas por Usuario a Disco.
– Fallar en la liberación de recursos.
– Pruebas de Almacenamiento Excesivo en la Sesión.
9.- Comprobación de servicios Web
. Los servicios web suelen utilizar el protocolo HTTP junto con tecnologías como XLM, SOAP, WSDL y UDDI; por lo que las pruebas de seguridad sobre servicios web deben centrarse en las búsqueda e identificación de las vulnerabilidades en dichas tecnologías.
. Las pruebas a realizar en esta fase de la auditoría son las siguientes:
– Obtención de información en Servicios Web.
– Pruebas de WSDL.
– Pruebas estructurales de XML.
– Comprobación de XML a nivel de contenido.
– Comprobación de parámetros HTTP GET/REST.
– Adjuntos SOAP maliciosos.
– Pruebas de repetición.
10.- Pruebas de AJAX
. Las aplicaciones basadas en tecnologías AJAX han tenido una rápida expansión debido a la gran interactividad y facilidad de uso que proporcionan. Sin embargo, al aumentar la superficie de ataque y al procesar instrucciones tanto en el lado cliente como en el lado servidor, las vulnerabilidades de seguridad de las aplicaciones AJAX son tantas o incluso más que las de las aplicaciones desarrollados con otras tecnologías.
Fuente: Internet Security Auditors