Nessus es un escáner de seguridad que se usa para detectar vulnerabilidades de seguridad en hardware y software.
En este documento se describen los pasos para:
instalar Nessus
Realizar análisis de Nessus
Exportar resultados de análisis de Nessus
1. Fondo
Tenable Nessus es una herramienta de terceros con licencia. Consulta los siguientes recursos para obtener más información sobre Nessus:
2. Antes de empezar
Estación de trabajo
- Se necesita el programa de arranque (te-bf) o una estación de trabajo equivalente accesible para el operador para alojar Nessus.
Se requiere acceso
Sigue las instrucciones de IAM-R0005:
- Obtener el rol de administrador de clúster para cada clúster de destino.
Sigue las instrucciones de IAM-R0004:
- Genera el archivo KUBECONFIG de cada clúster de destino.
Herramientas necesarias
- kubectl
- ssh-keygen
Software
- Se necesita un instalador de Nessus compatible con el SO de tu estación de trabajo. Obtén el instalador de https://www.tenable.com/downloads/nessus y transfiérelo a la estación de trabajo de Nessus antes de continuar.
Licencias
- Se necesita un único código de activación de licencia de Tenable Nessus (Pro, Export o Manager). Si no tienes un código de activación de licencia, ponte en contacto con el punto de contacto de tu equipo para obtener licencias de terceros o la lista de materiales de software.
3. Instalar Nessus
En esta sección se describen los pasos para instalar Nessus en la estación de trabajo de Nessus.
Si Nessus ya está instalado y activado, puedes saltarte esta sección.
Si Nessus ya no está disponible (por ejemplo, si se instaló en un ordenador que ya no existe), la licencia utilizada para activar la instancia anterior de Nessus debe restablecerse antes de continuar.
Exporta la ruta al instalador de Nessus:
NESSUS_INSTALLER=
Instala Nessus con dpkg:
dpkg -i ${NESSUS_INSTALLER:?}
Reinicia Nessus y confirma que se está ejecutando:
sudo systemctl restart nessusd sudo systemctl status nessusd
Obtener el código de desafío para registrar Nessus sin conexión:
/opt/nessus/sbin/nessuscli fetch --challenge
En un ordenador conectado a Internet, vaya a la página de activación sin conexión de Nessus https://plugins.nessus.org/v2/offline.php.
Copia el código de activación sin conexión de Nessus y el código de activación de la licencia de Nessus en la página de activación sin conexión de Nessus y pulsa "Enviar".
En la página de activación sin conexión de Nessus ahora deberían aparecer la URL del complemento de Nessus y la licencia del producto. Necesitarás ambos valores para los pasos siguientes.
Guarda la URL del complemento de Nessus en una ubicación segura para consultarla más adelante, ya que la necesitarás en esta guía.
Guarda la licencia de la página de activación sin conexión de Nessus en la estación de trabajo de Nessus en un archivo llamado
/opt/nessus/etc/nessus/nessus.license
.Aplica la licencia a Nessus:
/opt/nessus/sbin/nessuscli fetch --register-offline /opt/nessus/etc/nessus/nessus.license
Crea un usuario administrador:
Sigue las indicaciones de
nessuscli adduser
para crear un usuario deadmin
. Estas credenciales se usarán más adelante para realizar análisis y descargar resultados, así que guárdalas en un lugar seguro./opt/nessus/sbin/nessuscli adduser
Mientras Nessus está en ejecución, se puede acceder a su interfaz de usuario a través del puerto 8834. En el navegador que elijas, ve a
https://<nessus-workstation-ip>:8834
e inicia sesión como usuarioadmin
.
4. Actualizar los complementos de Nessus
Los complementos de Nessus más recientes deben descargarse y aplicarse a Nessus antes de ejecutar análisis para asegurarse de que los resultados sean relevantes y estén actualizados. Los complementos de Nessus deben obtenerse directamente de Tenable mediante la URL del complemento de Nessus que se obtiene en la página de activación sin conexión de Nessus.
Obtén el paquete de complementos.
Opción 1: Ve a la URL del complemento de Nessus con el navegador que prefieras y el paquete se descargará automáticamente.
Opción 2: Descargar el paquete con wget
wget "${PLUGIN_URL:?}" -O plugin-updates.tar.gz
Transfiere el paquete del complemento a la estación de trabajo de Nessus y exporta la ubicación del archivo:
NESSUS_PLUGIN_BUNDLE=
Aplica las actualizaciones de complementos a Nessus:
/opt/nessus/sbin/nessuscli update ${NESSUS_PLUGIN_BUNDLE:?}
Las actualizaciones de los complementos tardan unos 30 minutos en compilarse. Puedes seguir los pasos para crear análisis mientras esto ocurre, pero no ejecutes los análisis hasta que los complementos hayan terminado de compilarse.
5. Configurar análisis de Nessus
Se deben crear análisis para cada combinación única de clase de destino y credencial. En esta sección se explica cómo crear el análisis necesario a través de la interfaz de usuario de Nessus.
Antes de continuar, confirma el acceso a la interfaz de usuario de Nessus en https://<nessus-workstation-ip>:8834
e inicia sesión como usuario admin
.
5.1. Recoger CIDRs de red
Los análisis de Nessus se crean para analizar los CIDR de la red externa e interna del entorno.
Recoge los CIDRs de red externos e internos de la red del dispositivo de destino (lo ideal es que esta red no se solape con otro entorno vecino).
del clúster de infraestructura de la organización.Es probable que los intervalos de IP incluyan la IP del bootstrapper u otras IPs que no se deban analizar. Introduce los siguientes comandos para cada IP que no se deba analizar (por ejemplo, la IP de arranque):
IGNORE_IP= IGNORE_IP_REASON= echo "# ${IGNORE_IP_REASON:?}" >> /opt/nessus/etc/nessus/nessusd.rules echo "reject ${IGNORE_IP:?}" >> /opt/nessus/etc/nessus/nessusd.rules
5.2. Escaneos de descubrimiento de hosts
Los análisis de descubrimiento de redes no están autenticados y se utilizan para rastrear una red en busca de objetivos y exposiciones de redes no seguras.
Esta exploración se configurará para analizar los CIDRs de la red externa e interna identificados en la sección anterior.
En la interfaz de usuario de Nessus:
- Crea un análisis de descubrimiento de hosts llamado
host-discovery
. - Especifica los hosts: CIDRs externos e internos.
- Guardar y lanzar
5.3. Análisis de SO de nodos
Los análisis de nodos se autentican y están diseñados para inspeccionar sistemas operativos críticos en busca de vulnerabilidades conocidas, configuraciones no seguras y cumplimiento.
Sigue los pasos de esta sección para el clúster de infraestructura de la organización:
Exporta el archivo kubeconfig del clúster:
KUBECONFIG=
Lista todos los nodos del clúster:
kubectl --kubeconfig=${KUBECONFIG:?} get nodes -o wide
Fíjate en la columna que muestra la IP de datos de cada nodo. Antes de continuar, comprueba que se puede acceder a la IP de los datos desde la estación de trabajo de Nessus con ping.
ping <node_data_ip>
En la interfaz de usuario de Nessus, empieza a crear un análisis avanzado con el nombre
nodeos-compliance-<cluster_name>
En el análisis avanzado, rellena el campo de hosts con una lista separada por comas de todas las IPs de datos de nodos del paso 1.
Sigue los pasos que se indican en el Apéndice: Añadir credenciales SSH de nodos de clúster para añadir credenciales de análisis.
Ve a la pestaña Cumplimiento y elige la última revisión disponible de "DISA STIG Ubuntu 20.04 v1". Guarda la configuración de cumplimiento tal cual, sin modificar los valores predeterminados.
Guarda la configuración del análisis e inicia el análisis.
5.4. Tomarse un descanso
Los análisis deberían tardar más de 30 minutos en completarse. Ahora es un buen momento para descansar o hacer otra cosa hasta que se completen.
6. Exportar resultados de análisis
En esta sección se explica el proceso para exportar los resultados de un análisis.
Descarga los resultados de cada análisis completado:
Selecciona el análisis completado para revisar los resultados.
En la parte superior derecha, haz clic en el botón "Denunciar".
Elige el formato de informe CSV y selecciona todas las columnas.
Haz clic en "Generar informe". Después de un breve retraso, el informe debería descargarse.
Si también necesitas un informe HTML, elige Formato de informe HTML y la plantilla de informe que te parezca adecuada. La plantilla de informe recomendada es "Vulnerabilidades detalladas por complemento con cumplimiento/corrección".
7. Pasos siguientes
Los informes CSV o HTML resultantes deben procesarse de acuerdo con los procesos de seguridad de tu entorno. En caso de duda, ponte en contacto con un punto de contacto de SecOps o Cumplimiento para obtener más instrucciones.
8. Apéndice
8.1. Añadir credenciales SSH de nodos de clúster
En esta sección se explica el proceso para obtener un conjunto de credenciales de SSH para que Nessus analice los nodos de un clúster de destino.
Exporta el archivo kubeconfig del clúster:
KUBECONFIG=
Listar las claves SSH del clúster
kubectl --kubeconfig=${KUBECONFIG} get -A secret | grep ssh-key
Identifique el espacio de nombres del secreto "ssh-key" correspondiente al clúster de destino y exporte el espacio de nombres:
CLUSTER_NS=
Crea un directorio ssh de Nessus:
NESSUS_FOLDER=nessus mkdir -p ${NESSUS_FOLDER}/.ssh
Exporta el par de claves SSH al directorio SSH de Nessus:
kubectl --kubeconfig=${KUBECONFIG:?} get -n ${CLUSTER_NS:?} secret/ssh-key -o jsonpath='{ .data.id_rsa }' | base64 -d > ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa kubectl --kubeconfig=${KUBECONFIG:?} get -n ${CLUSTER_NS:?} secret/ssh-key -o jsonpath='{ .data.id_rsa-cert\.pub }' | base64 -d > ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa-cert.pub
Corrija los permisos del par de claves:
# fix permissions chmod 600 ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa chmod 600 ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa-cert.pub
Convierte la clave privada al formato PEM con una frase de contraseña vacía:
ssh-keygen -p -m PEM -f ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa
La salida correcta debería tener un aspecto similar al siguiente:
Key has comment 'root@te-bd-bootstrapper' Enter new passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved with the new passphrase.
Transfiere
nessus-<cluster>-id_rsa
ynessus-<cluster>-id_rsa-cert.pub
a la estación de trabajo que se usa para acceder a la interfaz de usuario de Nessus.En la interfaz de usuario de Nessus, ve a la pestaña Credenciales de la configuración del análisis.
Crea una credencial SSH y elige "certificado" como método de autenticación.
Proporciona los siguientes ajustes para el método de autenticación SSH con certificado:
Nombre de usuario: "root"
Certificado de usuario: Añadir archivo
nessus-<cluster>-id_rsa-cert.pub
Clave privada: Añadir archivo
nessus-<cluster>-id_rsa
Guarda la configuración de SSH.
Vuelve al lugar donde se hacía referencia a esta sección.