A la hora de montar un proveedor de servicios de Internet, es muy importante considerar las robustez, solidez e invulnerabilidad del sistema. Existen muchas y muy variadas formas de diagnosticar estos aspectos, en este artículo veremos una de esas formas, que es el uso de software de diagnostico, el concepto con el que trabaja este tipo de software consiste en el escaneo remoto de vulnerabilidades, basándose para ello en una base de datos conteniendo todos los ataques conocidos hasta el momento de la última actualización del soft en cuestión.

Si bien este tipo de previsión no basta por si sola, es un buen comienzo para hacer de nuestro sitio un lugar seguro, hay que destacar que para la correcta implementación de una politica de seguridad este método debe ser complementado con una estrategia que contenga también el uso de IDS, o sistemas de detección de intrusiones, el uso de wrapers para los servicios de internet y adecuadas herramientas de logueo de eventos

Nessus

Vamos a usar, para nuestro cometido un software de excelente calidad que se acoge la los términos de la licencia GNU, el programa se llama NESSUS y es un proyecto de Renaud Deraison iniciado en abril de 1998, sus características principales son:

Libre: según el autor con la intención de que universidades, colegios, etc, puedan acceder a este tipo de software para protegerse de crackers o hackers tentados por el lado oscuro de la fuerza.

Código abierto: por dos principales razones, una para que el código del mismo pueda se analizado por cualquiera y de esta manera eliminar cualquier sospecha de que contenga troyanos y la otra para promover la colaboración y participación de programadores independientes.

Facilidad de uso: La seguridad no es una cosa sencilla de resolver en un sistema, de manera que Nessus pretende proveer un interfaz sencillo, cómodo, fácil de entender y eficaz para que se encuentre al alcance de cualquier administrador.

Nessus es un programa que audita remotamente nuestra red para detectar debilidades en nuestro sistema, su arquitectura consiste en un servidor y un cliente.

Nessusd es el servidor, esta parte del programa provee de los ataques en sí, mientras que el cliente Nessus es la interface con el usuario. Los ataques provistos por el servidor son con implementación de plug-ins o sea módulos externos de código los cuales pueden estar escritos en los más variados lenguajes, muchos de estos plug-ins son aportes de terceros.

Dónde obtener Nessus

El sitio oficial del proyecto Nessus es www.nessus.org, de alli debemos bajarnos los paquetes necesarios, ellos son:

nessus-core-0.98.1.tar.gz nessus-libraries-0.98.1.tar.gz nessus-plugins-0.98.1.tar.gz libnasl-0.98.1.tar.gz

Descompresion y compilación

Una vez que los hemos bajado debemos compilarlos, una recomendación importante es no bajar este tipo de software de sitios no oficiales, y nunca, insisto nunca bajar el código precompilado, puesto que no sabemos si el programa fue modificado incorporando características no deseadas como backdoors o troyanos. Vamos a la compilación, como es costumbre usaremos es directorio donde normalmente descomprimimos para compilar, para la descompresión usaremos el comando tar como se detalla abajo:

tar xvfz

Esto para cada uno de los archivos que bajamos de Internet. Con esto obtenemos los siguientes directorios:

drwxr-xr-x 6 root root 1024 sep 5 03:11 libnasl drwxr-xr-x 8 root root 1024 sep 5 18:50 nessus-core drwxr-xr-x 8 root root 1024 sep 5 18:42 nessus-libraries drwxr-xr-x 7 root root 1024 sep 5 18:58 nessus-plugins

El orden de compilación es importante, de manera que enumero a continuacion el mismo:

1.libnasl 2.nessus-libraries 3.nessus-core 4.nessus-plugins

Para la compilación propiamente dicha detallo a continuación los comandos apropiados.

Compilación de libnasl

Esta es una librería necesaria para el uso, creacion y debug de plug-ins.

cd /dirdecompilaciones/libnasl ./configure make make install ldconfig

Compilación de nessus-libraries

Aquí es importante destacar el parámetro --enable-cipher=40 que le pasamos al script configure, con él habilitamos el cifrado o encriptación de la comunicación y las claves entre el cliente y el servidor.

cd /dirdecompilaciones/nessus-libraries ./configure --enable-cipher=40 make make install ldconfig

Compilación de nessus-core

Con la compilación de este paquete obtenermo la parte central del software, es decir el servidor y el cliente. Aca tambien tenemos que pasarle el parametro --enable-cipher para el proposito descripto anteriormente.

cd /dirdecompilaciones/nessus-core ./configure --enable-cipher make make install

Compilación de nessus-plugins

Finalmente tenemos que compilar los plugins que consisten en los ataques en si.

cd /dirdecompilaciones/nessus-plugins ./configure make make install

Bien, en este punto ya tenemos todos los binarios listos y donde deben estar, esto es:

librerías en /usr/local/lib ejecutables en /usr/local/bin/ y /usr/local/sbin plug-ins en /usr/local/lib/nessus/plugins configuración en /usr/local/etc y en /usr/local/share/nessus

Inicialización

Lo primero que debemos hacer es generar nuestras llaves, para poder iniciar el servidor por primera vez antes debemos hacerlo con el parámetro -P seguido de el nombre de usuario y clave separado por una , (coma), luego arrancamos el demonio con el parámetro -D, lo que indica precisamente que se ejecute como demonio, veremos un mensaje que nos advierte que se ha creado una nueva base de datos de usuarios de nessus en /usr/local/share/nessus/nessusd.users y que debemos editarla para luego reiniciar el demonio, editemos pues el archivo en cuestión en el podemos agregar usuarios por un método distinto al descripto al inicio de este párrafo, el archivo esta comentado y contiene ejemplo por lo que no debe significar ningún problema modificarlo, basta decir que los usuarios se deben agregar de la forma usuario:clave:reglas;.

En este punto ya estamos en condiciones de iniciar el servidor nuevamente ingresamos la linea nessusd D. Es ahora el turno de generar la frase de paso para usar el cliente, esto se hace automáticamente cuando iniciamos el cliente por primera vez invocandolo con nessus, nos solicitara primeramente que ingresemos dos veces una misma que sirve para prevenir el uso de nuestra cuenta por terceros, se ingresa dos veces la frase para verificación, luego veremos la ventana que cumple la labor de interfaz con el usuario, todo este proceso lo podemos ver en la figura 1

Logueo

Como se explico en el paso anterior el logueo al servidor se hace mediante el programa clientes nessus. En la figura 2 podemos ver el cliente esperando nuestra ordenes, comencemos por loguearnos en el servidor, pulsamos el botón Log in Now! y luego de ingresar nuestra clave ya estamos conectados al server.=, la clave se pide solo la primera vez.

Configuración y preparación

Selección del Objetivo: Para seleccionar un objetivo a auscultar pulsamos en la segunda pestaña Target selection, observe la figura 3, allí debemos especificar la IP del host a escanear. Probemos con 127.0.0.1 que es el loopback es decir que nos vamos a revisar nosotros mismos. Selección de Plug-ins:

En la tercera pestaña se encuentra la configuración de plug-ins a usar en nuestro análisis, podemos ver que esta dividida en dos partes, en la primera se encuentra las categorías, mientras que en la de abajo están especificados cada uno de los plug-ins, la selección se debe hacer concienzudamente, ya que depende del tipo de sistema que queremos probar, por ejemplo no es buena idea probar ataques específicos para Windows cuando nuestro sistema es Linux, o viceversa. Si desconoce a que sistema afecta cada ataque no se preocupe, la primera vez puede probar con todos, poco a poco ira conociendo de que se trata cada uno. Observe que a la derecha de cada ítem tenemos la posibilidad de seleccionar o no. Observe en la figura 4 el aspecto de esta pestaña.

Preferencias: Podemos en la cuarta pestaña configurar algunos parámetros como ser las cuentas a usar o la configuración de queso esta es excelente herramienta desarrollada por unos hackers españoles para detectar a partir de pequeñas diferencia en paquetes ICMP que sistema operativo usa el host objetivo, observe la figura 5. Opciones del Scaneo: Aquí podemos configurar algunas opciones complementarias com por ejemplo que archivo tratara de extraer del host, una buena idea es el archivo de claves passwd o shadow que se encuentran en el directorio /etc. Otra de las opciones es el rango de puertos a escanear, yo soy paranoico y prefiero que escanee todos, es decir desde el 1 hasta el 65535, en la figura 6 vemos las opciones contempladas en esta sección. Opciones del Usuario y Reglas: La pestaña siguiente con el titulo User no permite cambiar nuestra configuración y reglas, esta reglas especifican los permisos de escanear hosts, por ejemplo, supongamos que queremos que únicamente escanee nuestro host, para ello debemos agregar las siguientes reglas n:*; y y:midominio.com; con estas reglas de decimos que no escanee ningún host excepto midominio.com, las opciones posibles se detallan a continuación.

n: no permite el escaneeo de el host y: habilita el escaneo del host N: no permite es escaneo, tiene supremacía sobre los y

Créditos: En esta última pestaña están los nombre de las personas a quienes les debemos esta desinteresado aporte a la seguridad sus direcciones de correo electrónico y el sitio oficial del proyecto. Observe la figura 8. Escaneo: Inmediatamente aparecerá una ventana como la de la figura 9 donde veremos el progreso del análisis. Según la cantidad de ataques (plugins) que hayamos seleccionado, el tipo de coneccion con el objetivo, y la velocidad de nuestra maquina demora mas o menos tiempo, solo nos queda esperar. Reporte: Una vez finalizado es escaneo aparece la ventana de reportes, en ella podemos analizar el resultado, para poder interpretarlo debemos tener en cuenta lo siguiente, cada host auscultado esta identificado por su nombre o numero de IP, en un árbol pendiente de el se detalla cada servicio y a su vez dentro de ellos tenemos las notificaciones de cada vulnerabilidad detectada dividida en tres partes fácilmente identificables, primeramente tenemos una breve pero suficiente descripción de la notificación de seguridad, luego podemos ver la valoración que va en una escala que puede señalarnos el factor de riesgo que significa prestar atención a todos especialmente a los serious y high, también tenemos recomendaciones y la soluciona al problema. En la figura 10 tenemos el resultado de un escaneo. También se nos permite grabar el reporte, pulsando en el botón Save as... no aparece una ventana solicitandonos el nombre del archivo del reporte y su ubicaciones.

Consideraciones finales

Bien, estimados lectores, con esto creo que tenemos suficiente información para comenzar a tomarnos en serio la seguridad de nuestro servidor, solo me resta reiterarles que una buena política de seguridad contempla varios métodos de análisis, también es muy importante tomarse el trabajo de mantenerse actualizado en cuanto a los fallos de seguridad, los cuales se descubre diariamente, una buena idea para esto es suscribirse a varias listas de seguridad, a mi criterio la mejor en el viejo, conocido y querido Bugtraq, también hay que tener en cuenta los sistemas de detección de intrusos que trataremos en un próximo artículo.

Publicidad

© 2006 Planeta Linux Argentina. La fuente de recursos Linux desde 1999. Desarrollado por VivaServer.