jueves, 22 de enero de 2015

Nikto: alternativa Open Source para auditar nuestras aplicaciones web

Nikto es una herramienta Open Source escrita en Perl, cuyo objetivo es auditar la seguridad de servidores web buscando problemas y alertas relacionadas con errores de configuración, software desactualizado, configuraciones por defecto, programas y archivos inseguros, y demás posibles vectores de ataque.

Funciona bajo Linux, Windows, MAC OSX y múltiples otras variantes de UNIX. Es una herramienta diseñada para la evaluación de sistemas, por lo cual su funcionamiento no pasa desapercibido ante herramientas de defensa como los IDS por ejemplo. Al ser una herramienta de diagnóstico es importante saber que sólo nos arroja información y no provee ningún mecanismo de ataque.

Para su instalación sólo basta con cumplir ciertos requerimientos, descargarlo e instalarlo; de hecho en muchas distribuciones viene incluido en los repositorios por lo que solo basta instalarlo desde la línea de comandos usando el gestor de paquetes de nuestra distribución Linux. Para mi caso que uso Elementary (también funciona en Debian, Ubuntu y similares) sólo basta con teclear en la consola:

sudo apt-get install nikto

Una vez instalado, para auditar un servidor solo basta con ejecutar el programa con los siguientes parámetros:

nikto -host [direccion o hostname del servidor]

Por ejemplo:

nikto -host 192.168.0.1

Con esto el programa comenzará a auditar el servidor, proceso que dura varios minutos, y comenzará a arrojar información relacionada con el software que tiene instalado, servicios que presta, CGIs, módulos habilitados, aplicaciones instaladas, archivos, directorios, vulnerabilidades encontradas con su respectivo identificador y toda posible información.

Auditando la seguridad de un servidor con Nikto
Auditando la seguridad de un servidor con Nikto
Nikto ofrece diferentes opciones para parametrizar la auditoria, como por ejemplo especficar por cuales puertos se deben hacer las peticiones, si se debe usar un proxy, se se debe usar SSL a la fuerza, si se deben usar algunos de sus plugins, entre otras; esta es la lista de opciones se encuentra disponible ejecutando nikto -h.

Es importante resaltar que toda la información que muestra el programa no necesariamente representa una amenaza de seguridad, sin embargo nos permite tener una completa visión de como un posible atacante ve nuestro sistema. Un escenario que no respresenta un riesgo es que por ejemplo nos puede mostrar que en el servidor hay instaladas aplicaciones conocidas como wordpress, phpmyadmin, entre otras; las cuales en si no representan algún riesgo (si están bien configuradas claro está).

Todo esfuerzo para proteger la información e infraestructura que soporta nuestros sistemas de información no sobra, y más aún cuando estamos hablando de entornos productivos. Si bien en el mercado existen múltiples herramientas para probar y explotar la inseguridad de un servidor y/o aplicación, nikto hace muy bien su trabajo y de una forma simple.

Como desarrolladores no está demás que en los procesos de desarrollo incluyamos actividades enfocadas a la seguridad informática y a la seguridad de la información, para que desde su concepción la calidad de nuestros productos sea la mejor posible.

Para más información de la herramienta y su funcionamiento podemos consultar su documentación oficial que están en inglés.