
Configuración incorrecta de seguridad
La configuración incorrecta de seguridad es una especie de término general que abarca las vulnerabilidades comunes que entran en juego debido a los ajustes de configuración de una aplicación, en lugar de a un código incorrecto. Se trata de un tema muy amplio y depende en gran medida de factores como la tecnología de que dispongas.
A menudo, abordar estos problemas es algo que parece sencillo, como cambiar un archivo de configuración o incluso una sola línea de código, pero el impacto y las consecuencias de estas vulnerabilidades pueden ser graves.
Echemos un vistazo a algunas de las categorías siguientes.
Categorías
Servidor web
Un error clásico de configuración en los servidores web es la activación de la lista de directorios.
Si bien la activación de la lista de directorios suele tener poco o ningún impacto directo, sí que facilita que un atacante descubra otros errores que también podrían existir. Pueden ser cosas como páginas que se ocultaron intencionadamente, archivos de respaldo y otros elementos similares.
Vale la pena señalar que todas esas cosas en sí mismas también son prácticas intrínsecamente malas y se consideran seguridad por oscuridad.
La lista de directorios es trivial de deshabilitar y añade profundidad a la defensa al hacer que a un atacante le resulte más caro enumerar el host para encontrar posibles vectores de ataque en su contra.
Marcos
Modo de depuración
La mayoría de los marcos ofrecen un modo de «depuración» para los desarrolladores. Este modo, entre otras cosas, suele mostrar los detalles de Stacktrace cuando se produce una excepción no controlada. Algunos marcos incluso muestran fragmentos de código junto con el stacktrace. Esto puede resultar de gran ayuda durante el desarrollo, pero también puede proporcionar a los atacantes mucha información a la que, en realidad, no deberían tener acceso.
Monitorización de puntos finales
Muchos marcos también tienen un conjunto de puntos finales que se pueden habilitar para monitorear la aplicación, ya sea en un entorno de producción o de prueba/desarrollo.
Estas pueden incluir:
- Métricas (Prometheus)
- Registros
- Información sobre el entorno
- Mapeos de ruta/URL
Si bien esta información no es Por lo general sensible, aún puede proporcionar detalles que ayuden a los posibles atacantes a comprender mejor su aplicación. Por supuesto, su entorno o sus registros pueden realmente contienen información confidencial, por lo que es importante tener en cuenta lo que podría verse y utilizarse si lo vieran miradas indiscretas.
La distinción entre entornos de producción y entornos de no producción
Las personas suelen cometer el error de no seguir las pautas, como deshabilitar la lista de directorios, el modo de depuración y los puntos finales de depuración en entornos de desarrollo y prueba, y lo hacen solo en entornos de producción. La razón es que estos sistemas que no son de producción están diseñados para realizar pruebas y es importante obtener la información que proporcionan estas funciones.
Sin embargo, esta mentalidad es equivocada. Los atacantes aún pueden investigar y divulgar información de sistemas que no son de producción, y luego utilizar la información recopilada en el sistema de prueba para atacar su sistema de producción. Tampoco es raro encontrar empresas que utilizan copias de su base de datos de producción en los sistemas de prueba, lo que aumenta aún más el riesgo.
XXE
Un tipo de error de configuración de seguridad que es muy grave son las entidades externas XML (XXE).
Esto ocurre cuando analizas fuentes no confiables con la resolución de entidades habilitada, como ha sido el caso históricamente. XXE puede provocar la lectura arbitraria de archivos y la falsificación de solicitudes del lado del servidor, entre otras cosas.
Consulta el siguiente ejemplo para obtener más detalles y un ejemplo sencillo de este en particular.