James Thew - Fotolia
Cinco pasos para sus pruebas de seguridad de aplicaciones web
Este enfoque de cinco pasos para las pruebas de seguridad de aplicaciones web con resultados documentados ayudará a mantener las aplicaciones de su organización libres de fallas.
Las pruebas de seguridad de aplicaciones web tienen muchas partes móviles, pero, incluso con sus complejidades, no tiene que ser tan difícil. El truco es saber lo que quiere, lo que necesita y luego adoptar un enfoque medido para enfocar sus esfuerzos en las aplicaciones más importantes.
Entonces, ¿cómo hace para examinar completamente el entorno de su aplicación para asegurarse de que no tiene grandes fallas de seguridad en sus aplicaciones críticas? Es factible incluso para los entornos más complejos.
La siguiente información establece qué, cuándo, por qué y cómo de la mayoría de los escenarios de prueba de seguridad de aplicaciones web, incluida la determinación de qué sistemas necesita probar, qué herramientas son las más adecuadas para la tarea, el uso de escáneres de vulnerabilidad y la validación de escáner, y revisiones manuales adicionales.
1. ¿Qué necesita ser probado?
El alcance de su evaluación de seguridad es extremadamente importante. Es posible que tenga sus propios requisitos internos o que tenga que seguir los requisitos de un socio comercial o cliente. Y necesita tener a todas las personas adecuadas a bordo.
Debe quedar claro qué aplicaciones, sistemas de red y código necesita probar; cómo los probará; y cuáles son sus expectativas específicas para los entregables. Esto incluye requisitos para probar cualquier rol de usuario específico. Siempre recomiendo probar como un usuario típico, como un extraño no confiable y como un usuario con todos los privilegios posibles dentro de la aplicación.
2. ¿Qué herramientas son las más adecuadas para la tarea?
Como mínimo, las pruebas de seguridad de aplicaciones web requieren el uso de un escáner de vulnerabilidades web, como Netsparker o Acunetix Web Vulnerability Scanner. Para las pruebas autenticadas, querrá usar un proxy HTTP como Burp Suite, que le permite intentar manipular los inicios de sesión de los usuarios, la administración de sesiones, los flujos de trabajo de las aplicaciones, etc.
Hay otras herramientas disponibles si el análisis del código fuente es un requisito, pero tenga cuidado; obtiene lo que paga con las herramientas de análisis de código fuente y, desafortunadamente, la mayoría son caras. No estoy convencido de que el valor del análisis del código fuente valga el dinero y el esfuerzo involucrado. No obstante, podría ser un requisito, por lo que quizás deba hacerse.
3. Escaneo de vulnerabilidades
En lugar de intentar crear una lista de verificación de cada prueba que necesita ejecutar para cada vulnerabilidad para las pruebas de seguridad de aplicaciones web, es más fácil dividirla en las categorías importantes. Cuando ejecute escaneos de vulnerabilidades, asegúrese de que sus escáneres estén probando las cosas importantes, como la inyección SQL, las secuencias de comandos entre sitios y la inclusión de archivos. Ejecutar el escáner con un OWASP Top 10 o una política similar suele ser un gran comienzo. Es posible que necesite crear una política personalizada basada en su plataforma de aplicación y requisitos específicos.
El enfoque del escaneo de vulnerabilidades está principalmente en la Capa 7, pero es posible que sea necesario abordar el código fuente, las configuraciones de la nube y los hosts de red. Como mínimo, sus pruebas automatizadas deben buscar configuraciones incorrectas con SSL/TLS, así como vulnerabilidades a nivel de servidor web y de aplicaciones.
Los escáneres de vulnerabilidad web dedicados deberían encontrar la mayoría de las fallas, pero he descubierto que a menudo necesita escáneres de vulnerabilidad de red tradicionales como Nessus o Qualys para descubrir todo a este nivel. Se pueden descubrir configuraciones erróneas adicionales de seguridad en la nube en entornos de AWS, por ejemplo, mediante el uso de una herramienta como Nessus o una herramienta dedicada como Cloud Conformity.
4. Validación de escáner y verificaciones manuales adicionales
Al igual que con los escáneres de vulnerabilidad, no puedo enumerar todas las comprobaciones que debe realizar porque hay muchas áreas potenciales para la explotación. Lo primero que debe hacer es validar todos los hallazgos de su escáner de vulnerabilidad web para ver qué es explotable y qué importa en el contexto de su aplicación y su negocio.
Más allá de lo que pueden hacer los escáneres de vulnerabilidad web, las áreas adicionales a considerar incluyen:
- El mecanismo de inicio de sesión y las manipulaciones de sesión con contraseñas, cookies y tokens;
- Funcionalidad y fallas que son específicas del usuario o del navegador web;
- Debilidades de la lógica de la aplicación que permiten la manipulación manual del flujo de trabajo empresarial y los campos de entrada específicos; y
- Explotación de la política de contraseñas, incluida la aplicación de la complejidad y las capacidades de bloqueo de intrusos.
Este es posiblemente el aspecto más difícil y lento de las pruebas de seguridad de aplicaciones. El objetivo principal debe ser mirar su aplicación con una mentalidad maliciosa y ver qué puede hacer un atacante a la aplicación utilizando un buen navegador web antiguo y, como mencioné anteriormente, un proxy HTTP.
5. Documente sus hallazgos y difúndalos a las personas adecuadas
Desafortunadamente, muchas pruebas de seguridad de aplicaciones se detienen con el paso cuatro. Uno de los aspectos más infravalorados de un programa formal de prueba de aplicaciones es codificar sus hallazgos en un informe formal de evaluación de seguridad.
Esto no solo crea un rastro en papel y demuestra el debido cuidado, sino que también es útil para que otros interesados, como los equipos de desarrollo, el personal de DevSecOps y la gerencia ejecutiva, hagan referencia. Una de las formas más rápidas de perder el apoyo a las iniciativas de seguridad de las aplicaciones, y de tener brechas, es guardar todo para usted y mantener a los demás en la oscuridad.
Cada entorno es diferente y cada empresa tiene sus propias necesidades únicas. Dicho esto, un enfoque razonable para las pruebas de seguridad de aplicaciones web probablemente involucrará algunos, si no todos, los elementos anteriores. Veo muchas percepciones erróneas de evaluación de seguridad, suposiciones y descuidos en mi trabajo como consultor de seguridad, y gran parte de eso involucra entornos de aplicaciones.
Hay demasiado en juego y demasiado que los atacantes pueden explotar para ejecutar simplemente análisis básicos sin una evaluación formal de riesgos o informes. Es igualmente malo descartar la seguridad de la aplicación como el problema de otra persona. Ya sea que esté desarrollando, alojando y manteniendo su software internamente o a través de terceros, los riesgos de la aplicación y las vulnerabilidades específicas regresarán y aterrizarán en su regazo como algo que debería haber estado haciendo todo el tiempo. Asegúrese de ser inteligente con su enfoque.