Directrices

Desconfiguración de la seguridad

La desconfiguración de la seguridad es una especie de término general que abarca vulnerabilidades comunes que entran en juego debido a los ajustes de configuración de una aplicación, más que a un código defectuoso. Es un tema muy amplio y depende en gran medida de factores como la pila tecnológica. 

A menudo, solucionar 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. 

Veamos a continuación algunas de las categorías.

Categorías

Servidor web

Un error de configuración clásico en los servidores web es la activación de la Lista de directorios. 

Aunque a menudo hay poco o ningún impacto directo de tener habilitado el Listado de Directorios, facilita a un atacante descubrir otros errores que también podrían existir. Estos podrían ser cosas como páginas que fueron ocultadas intencionalmente, archivos de respaldo y otros elementos similares. 

Vale la pena señalar que todas esas cosas en sí mismas son inherentemente malas prácticas, también, y cuentan como seguridad por oscuridad. 

El listado de directorios es trivial de deshabilitar y añade defensa en profundidad al hacer más costoso para un atacante enumerar el host para encontrar potenciales vectores de ataque contra él.

Marcos

Modo depuración

La mayoría de los frameworks ofrecen un modo de "depuración" para los desarrolladores. Este modo, entre otras cosas, suele mostrar detalles del stacktrace cuando se produce una excepción no controlada. Algunos frameworks incluso muestran fragmentos de código junto con el stacktrace. Esto puede ser inmensamente útil durante el desarrollo, pero también puede proporcionar a los atacantes mucha información a la que realmente no deberían tener acceso. 

Puntos finales de control

Muchos marcos también tienen un conjunto de puntos finales que se pueden activar y que permiten supervisar la aplicación, ya sea en un entorno de producción o de prueba/desarrollo. 

Estos pueden incluir:

  • Métricas (Prometheus)
  • Registros
  • Información medioambiental
  • Asignación de rutas y URL

Aunque esta información no suele ser sensible, puede proporcionar detalles que ayuden a los posibles atacantes a comprender mejor su aplicación. Por supuesto , su entorno o registros pueden contener información sensible, por lo que es importante ser consciente de lo que podría ser visible y utilizado si miradas indiscretas se toparan con él. 

Distinción entre entornos de producción y de no producción

A menudo se comete el error de no seguir las directrices, como desactivar el listado de directorios, el modo de depuración y los puntos finales de depuración en entornos de desarrollo/prueba, y hacerlo sólo en entornos de producción. El motivo es que estos sistemas que no son de producción están pensados para realizar pruebas y obtener la información que proporcionan estas funciones es importante.

Sin embargo, esta mentalidad es errónea. Los atacantes todavía son capaces de sondear y revelar información de sistemas que no son de producción, y luego utilizar la información obtenida del 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 sistemas de prueba, lo que aumenta aún más el riesgo. 

XXE

Un tipo de error de configuración de seguridad muy grave son las entidades externas XML (XXE). 

Esto ocurre cuando se parsea desde fuentes no confiables con la resolución de entidades habilitada, lo que históricamente ha sido el caso. XXE puede conducir a la lectura arbitraria de archivos, y la falsificación de peticiones del lado del servidor, entre otras cosas.

Consulte el ejemplo siguiente para obtener más detalles y un ejemplo sencillo de éste en particular. 

XXE EJEMPLO