systemadmin.es > Seguridad > OpenVAS en CentOS 5.5 (Escaner de vulnerabilidades)

OpenVAS en CentOS 5.5 (Escaner de vulnerabilidades)

Anteriormente vimos como instalar Nessus, hoy vamos a ver como instalar su fork de la versión anterior, OpenVAS, en una CentOS 5.5

Para realizar la instalación desde paquete podemos utilizar el script que nos ofrecen directamente con wget. No es lo más recomendable, pero si tampoco tenemos intención de revisar el script resulta indiferente:

# wget -q -O - http://www.atomicorp.com/installers/atomic | sh

Atomic Archive installer, version 1.4

BY INSTALLING THIS SOFTWARE AND BY USING ANY AND ALL SOFTWARE
PROVIDED BY ATOMICORP LIMITED YOU ACKNOWLEDGE AND AGREE:

THIS SOFTWARE AND ALL SOFTWARE PROVIDED IN THIS REPOSITORY IS 
PROVIDED BY ATOMICORP LIMITED AS IS, IS UNSUPPORTED AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ATOMICORP LIMITED, THE
COPYRIGHT OWNER OR ANY CONTRIBUTOR TO ANY AND ALL SOFTWARE PROVIDED
BY OR PUBLISHED IN THIS REPOSITORY BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.

Do you agree to these terms (yes/no): yes

Configuring the [atomic] yum archive for this system 

Installing the Atomic GPG key: OK
Downloading atomic-release-1.0-13.el5.art.noarch.rpm: OK



The Atomic Rocket Turtle archive has now been installed and configured for your system
The following channels are available:
  atomic          - [ACTIVATED] - contains the stable tree of ART packages
  atomic-testing  - [DISABLED]  - contains the testing tree of ART packages
  atomic-bleeding - [DISABLED]  - contains the development tree of ART packages

A continuación ya podremos instalar OpenVAS mediante yum:

# yum install openvas

A continuación deberemos actualizar (o instalar en el caso que no lo tengamos) sqlite y sqlite-devel:

yum update sqlite sqlite-devel -y

En el caso que no actualizemos el sqlite más adelante nos encontraremos que no podemos arrancar el openvas-manager con el siguiente mensaje de error (/var/log/openvas/openvasmd.log):

md   main:WARNING:2011-03-25 16h06.43 utc :17119: sql: sqlite3_step failed: database table is locked

md   main:CRITICAL:2011-03-25 16h06.43 utc :17119: handle_sigabrt: abort

md   main:CRITICAL:2011-03-25 16h06.55 utc :17130: main: database must be initialised (with --update or --rebuild)

A continuación bajaremos los plugins de OpenVAS con openvas-nvt-sync:

# openvas-nvt-sync

A continuación deberemos arrancar el openvassd:

/etc/init.d/openvas-scanner start

Y a continuación reconstruir la base de datos de plugins con openvasmd:

openvasmd --rebuild

A continuación levantamos el openvas-manager:

/etc/init.d/openvas-manager start

Y finalmente el openvas-administrator:

/etc/init.d/openvas-administrator start

A continuación debemos crear un usuario con el que acceder al OpenVAS mediante openvas-adduser:

# openvas-adduser 
Using /var/tmp as a temporary file holder.

Add a new openvassd user
---------------------------------


Login : jprats
Authentication (pass/cert) [pass] : pass
Login password : 
Login password (again) : 

User rules
---------------
openvassd has a rules system which allows you to restrict the hosts that jprats has the right to test.
For instance, you may want him to be able to scan his own host only.

Please see the openvas-adduser(8) man page for the rules syntax.

Enter the rules for this user, and hit ctrl-D once you are done:
(the user can have an empty rules set)


Login             : jprats
Password          : ***********

Rules             : 


Is that ok? (y/n) [y] y
user added.

A continuación instalaremos la interfaz web de OpenVAS, llamada greenbone-security-assistant:

yum install greenbone-security-assistant -y

Si la intentamos levantar con /etc/init.d/gsad veremos que no arranca porque no esta compilado con soporte SSL:

# /etc/init.d/gsad start
Starting greenbone-security-assistant: MHD HTTPS option 8 passed to MHD compiled without HTTPS support
                                                           [  OK  ]9392

Por lo que deberemos arrancarlo con la opción –http-only:

gsad --http-only

Mediante netstat podemos comprobar que todos los daemons esten correctamente levantados y escuchando al puerto:

# netstat -tpln | grep 93
tcp        0      0 0.0.0.0:9390                0.0.0.0:*                   LISTEN      17504/openvasmd     
tcp        0      0 0.0.0.0:9391                0.0.0.0:*                   LISTEN      11853/openvassd: wa 
tcp        0      0 0.0.0.0:9392                0.0.0.0:*                   LISTEN      17609/gsad          

Finalmente ya solo nos quedará conectarnos a la interfaz web en el puerto 9392 del equipo:

Login interfaz web OpenVAS

Login interfaz web OpenVAS

La interfaz es algo más compleja que la del Nessus:

Interfaz de Greenbone Security Assistant

Interfaz de Greenbone Security Assistant

Una de las características que no tiene Nessus es el escalado de eventos:

Opciones de escalado con GSA

Opciones de escalado con GSA

Podemos indicar que se mande un evento en función de varias opciones:

  • Cuando cambia el estado de una tarea
  • Según el nivel de alerta:
    • Siempre
    • Si se incremente
    • Si llega a un umbral

A parte de indicar el método con el que se envía el evento:

  • Mediante email
  • Evento a syslog
  • Trap SNMP
  • GET HTTP a una cierta URL

Además podemos también añadir reglas para ignorar ciertos falsos positivos. Por ejemplo, si pasamos el escaner a una CentOS nos va a salir la siguiente alarma:

OpenSSH X Connections Session Hijacking Vulnerability

OpenSSH X Connections Session Hijacking Vulnerability

Vemos que indica que “This issue affects OpenSSH 4.3p2“, y si comprobamos en el servidor veremos que efectivamente tenemos instalada dicha versión:

# rpm -qi openssh-server
Name        : openssh-server               Relocations: (not relocatable)
Version     : 4.3p2                             Vendor: CentOS
Release     : 41.el5_5.1                    Build Date: Sun 12 Sep 2010 06:00:45 PM CEST
Install Date: Sun 16 Jan 2011 07:03:07 PM CET      Build Host: builder17.centos.org
Group       : System Environment/Daemons    Source RPM: openssh-4.3p2-41.el5_5.1.src.rpm
Size        : 487219                           License: BSD
Signature   : DSA/SHA1, Sun 12 Sep 2010 06:30:28 PM CEST, Key ID a8a447dce8562897
URL         : http://www.openssh.com/portable.html
Summary     : The OpenSSH server daemon
Description :
OpenSSH is a free version of SSH (Secure SHell), a program for logging
into and executing commands on a remote machine. This package contains
the secure shell daemon (sshd). The sshd daemon allows SSH clients to
securely connect to your SSH server. You also need to have the openssh
package installed.

Pero evidentemente, si consultamos la base de datos seguidad de RedHat para el CVE-2008-1483 veremos que nos indica que dicha versión ya esta parcheada por lo que nos nos afecta. Una vez revisada la falsa alarma podemos añadir un override para evitar que nos vuelva a saltar:

Override bajo unas ciertas condiciones las falas alarmas

Override bajo unas ciertas condiciones las falas alarmas

Lo mismo nos pasará con muchas otras aplicaciones, por ejemplo con samba que nos indicará:

CVE-2010-2063: High (CVSS: 7.5) - NVT: Samba 'SMB1 Packet Chaining' Unspecified Remote Memory Corruption Vulnerability (OID: 1.3.6.1.4.1.25623.1.0.100680) 

Pero en el mismo changelog del paquete podremos comprobar que ya esta solucionado el problema de seguridad:

# rpm -q --changelog samba | grep CVE-2010-2063
- Security Release, fixes CVE-2010-2063

Creo que esto es una opción muy buena, ya que entre muchos falsos positivos se nos puede colar alguna vulnerabilidad que deberíamos tratar.

Otros artículos sobre encaners de vulnerabilidades:

2 comments to “OpenVAS en CentOS 5.5 (Escaner de vulnerabilidades)”

  1. Y ¿por defecto permite separar cliente y servidor sin tocar nada en la configuración? Me extrañaría mucho que tuvieran políticas diferentes de configuración por defecto según la distribución ¿no? Lo único que veo que puede dar una explicación es que tu usas los repositorios de atomic y yo he usado los de opensuse y tal vez ellos han hecho algún cambio. Además, a mi la conexión al gsa con https me funcionó sin ninguna tarea adicional, así que por ahí esto también tiene base…

  2. Seguramente sea esto, la verdad es que me ha parecido es repositorio bastante marrano. Tengo empezada la compilación a mano, para cuando tenga un rato: En esta instalación no le he definido ningún cron para actualizar los plugins o ni siquiera con daemontools (o upstart)

    A ver si hago una comparación más a fondo de Nessus vs OpenVAS pero de momento OpenVAS me convence más.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>