Está comprobado que los ataques a servidores web se han incrementado a medida que ha pasado el tiempo. La seguridad de los servidores web muchas veces es tomada a la ligera y debido a esta situación algunas veces son vulnerados con distintas finalidades que comprenden desde un defacement para dañar la reputación de la organización detrás de ese sitio web o incluso para inyectar código con la finalidad de propagar malware, entre otras alternativas. Es por esto que los servidores web también deben ser auditados. Para tal finalidad existe una herramienta llamada Nikto programada en lenguaje Perl, que se distribuye bajo la licencia GPL, la cual permite realizar de forma precisa un análisis del servidor y obtener información sobre el nivel de seguridad del mismo.
Nikto es una herramienta muy utilizada que posee una gran cantidad de funcionalidades. Algunas de las más interesantes son el soporte SSL, la posibilidad de utilización de proxies para mantener el anonimato, la generación de reportes muy completos que se pueden exportar a diferentes formatos entre los que se encuentran XML, HTML, NBE y CSV, entre otras opciones. De esta forma es posible visualizar cuál es el nivel de seguridad del servidor que se está auditando. En la siguiente imagen se ven las diferentes opciones disponibles:
Nikto brinda información de gran relevancia a quien está auditando. En la siguiente imagen puede visualizarse una captura de los resultados de un análisis a un servidor web:
Tal como puede observarse, en primera instancia, Nikto brinda información sobre las características del servidor. De esta manera es posible conocer la versión del servidor y de los distintos módulos que operan sobre el mismo. Este tipo de datos debe contemplarse ya que es muy importante actualizar los módulos antiguos. Otro tipo de información interesante son los métodos HTTP que son permitidos. Es posible corregir algunas malas configuraciones, por ejemplo el desactivado del método TRACE que se utiliza para la depuración del propio protocolo HTTP. Si se deja activado este método, es posible que un atacante lo utilice con otras finalidades, por ejemplo para realizar un ataque del tipo XST (cross-site tracing)(en inglés).
A continuación, Nikto brinda una serie de posibles vulnerabilidades que pueden estar presentes en el servidor así como también información pública que quizá no fue contemplada para que se encontrara en esa situación. De esta manera quien esté auditando el servidor debe tener en consideración si esa información no puede ser utilizada para vulnerar el mismo. Muchas veces los administradores de estos servidores crean carpetas con contenido muy sensible en su interior, como pueden ser contraseñas de algún servicio a modo de recordatorio, creyendo de que esas carpetas y archivos no son visibles por cualquier visitante del sitio web. Sin embargo, esto puede no ser así. Cualquier atacante mediante algún análisis de fuerza bruta o manipulando herramientas que utilicen comparaciones de nombres comunes de carpetas contra una base de datos, puede encontrar algunas de ellas y tener acceso a esos archivos críticos. Incluso, muchas veces, estos archivos son indexados por los propios buscadores y dan lugar a que esta información sea visible por cualquier persona que realice la búsqueda adecuada. En la siguiente imagen puede visualizarse como Nikto detecta una carpeta bajo el nombre data y es señalada como un directorio que puede listarse:
Si se accede mediante el navegador se encuentra un archivo de texto:
Una vez que se accede a ese archivo, se encuentran credenciales de algún tipo de servicio. Si bien esto es una prueba de concepto, suele suceder en ámbitos reales, muchas veces por desconocimiento y por la creencia de que este archivo no puede ser visible por cualquier visitante del sitio web.
Es importante resaltar que tanto las vulnerabilidades como las malas configuraciones, o incluso los pequeños descuidos, pueden tener resultados nocivos sobre los servidores web si esta información cae en las manos de un atacante. Es por esto, que la seguridad debe ser gestionada para no estar expuestos a este tipo de ataques y en caso de sufrirlos, responder a los mismos de la mejor forma posible.
Fernando Catoira
Analista de Seguridad