Nessus es un escáner de seguridad que se usa para detectar vulnerabilidades de seguridad en hardware y software.
En este documento, se presentan los pasos para realizar las siguientes acciones:
Cómo instalar Nessus
Realizar análisis de Nessus
exportar los resultados del 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 comenzar
Estación de trabajo
- Se requiere el bootstrapper (te-bf) o una estación de trabajo equivalente a la que pueda acceder el operador para alojar Nessus.
Se requiere acceso
Sigue IAM-R0005:
- Obtén un rol de administrador del clúster para cada clúster de destino.
Sigue IAM-R0004:
- Genera el archivo KUBECONFIG para cada clúster de destino.
Herramientas necesarias
- kubectl
- ssh-keygen
Software
- Se requiere 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 requiere un solo 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, comunícate con el punto de contacto de tu equipo para la facturación de software o licencias de terceros.
3. Instala 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, omite esta sección.
Si Nessus ya no está disponible (por ejemplo, se instaló en una máquina que ya no existe), se debe restablecer la licencia que se usó para activar la instancia anterior de Nessus antes de continuar.
Exporta la ruta de acceso 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
Obtén el código de desafío para registrar Nessus sin conexión:
/opt/nessus/sbin/nessuscli fetch --challenge
En una máquina conectada a Internet, visita 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 presiona "Submit".
La página de activación sin conexión de Nessus ahora debería mostrar una URL del complemento de Nessus y una licencia del producto. Ambos valores son necesarios para los próximos pasos.
Guarda la URL del complemento de Nessus en una ubicación segura para consultarla en el futuro, ya que la necesitarás más adelante 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, por lo que debes guardarlas en un lugar seguro./opt/nessus/sbin/nessuscli adduser
Mientras se ejecuta Nessus, se puede acceder a su interfaz de usuario en el puerto 8834. Con el navegador que prefieras, ve a
https://<nessus-workstation-ip>:8834
y accede como usuarioadmin
.
4. Actualiza los complementos de Nessus
Los complementos de Nessus más recientes se deben descargar y aplicar a Nessus antes de ejecutar los análisis para garantizar que los resultados sean pertinentes y estén actualizados. Los complementos de Nessus se deben obtener directamente de Tenable a través de 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 del complemento.
Opción 1: Navega a la URL del complemento de Nessus con el navegador que prefieras y el paquete se descargará automáticamente.
Opción 2: Descarga el paquete con wget
wget "${PLUGIN_URL:?}" -O plugin-updates.tar.gz
Transfiere el paquete de complementos a la estación de trabajo de Nessus y exporta la ubicación del archivo:
NESSUS_PLUGIN_BUNDLE=
Aplica las actualizaciones del complemento a Nessus:
/opt/nessus/sbin/nessuscli update ${NESSUS_PLUGIN_BUNDLE:?}
Las actualizaciones de complementos tardan alrededor de 30 minutos en compilarse. Puedes seguir los próximos pasos para crear análisis mientras esto sucede, pero no ejecutes los análisis hasta que los complementos terminen de compilarse.
5. Configura 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 IU de Nessus.
Antes de continuar, confirma el acceso a la IU de Nessus en https://<nessus-workstation-ip>:8834
y accede como el usuario admin
.
5.1. Recopila CIDR de red
Se crean análisis de Nessus para analizar los CIDR de red internos y externos del entorno.
Recopila los CIDR de red externos e internos para la red del dispositivo de destino (lo ideal es que esta red no se superponga con otro entorno vecino).
Es probable que los rangos de IP incluyan la IP del programa de arranque o cualquier otra IP que no se deba analizar. Ingresa los siguientes comandos para cada IP que no se deba analizar (p. ej., la IP del programa de inicio):
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. Análisis de descubrimiento de hosts
Los análisis de detección de redes no se autentican y están diseñados para rastrear una red en busca de objetivos y exposiciones inseguras de la red.
Este análisis se configurará para analizar los CIDR de red externos e internos identificados en la sección anterior.
En la IU de Nessus, haz lo siguiente:
- Crea un análisis de descubrimiento de host llamado
host-discovery
- Especifica hosts: CIDRs internos y externos
- Guardar y ejecutar
5.3. Análisis del 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.
Trabaja en esta sección para el clúster de infraestructura de la organización:
Exporta el kubeconfig del clúster:
KUBECONFIG=
Enumera todos los nodos del clúster:
kubectl --kubeconfig=${KUBECONFIG:?} get nodes -o wide
Ten en cuenta la columna que muestra la IP de datos de cada nodo. Antes de continuar, verifica que se pueda acceder a la IP de datos desde la estación de trabajo de Nessus con ping.
ping <node_data_ip>
En la IU de Nessus, comienza a crear un "Análisis avanzado" con el nombre
nodeos-compliance-<cluster_name>
.En el análisis avanzado, completa el campo de hosts con una lista separada por comas de todas las IPs de datos de nodos del paso 1.
Sigue las instrucciones del Apéndice: Agrega credenciales SSH del nodo del clúster para agregar credenciales de análisis.
Navega a la pestaña de cumplimiento y elige la revisión disponible más reciente de "DISA STIG Ubuntu 20.04 v1". Guarda la configuración de cumplimiento tal como está, sin realizar ningún cambio en los valores predeterminados.
Guarda la configuración del análisis y ejecútalo.
5.4. Tomar un descanso
Los análisis deberían tardar más de 30 minutos en finalizar. Este es un buen momento para tomar un descanso o hacer otra cosa hasta que se completen.
6. Cómo exportar los resultados del análisis
En esta sección, se explica el proceso para exportar los resultados del análisis.
Para cada análisis completado, descarga los resultados:
Selecciona el análisis completado para revisar sus resultados.
Haz clic en el botón “Denunciar” en la esquina superior derecha.
Elige el formato del informe CSV y selecciona todas las columnas.
Haz clic en "Generar informe". Después de una breve demora, se debería descargar el informe.
(Opcional) Si también se requiere un informe en HTML, elige Formato del informe HTML y la plantilla de informe que te parezca adecuada. La plantilla de informe recomendada es "Detailed Vulnerabilities By Plugin with Compliance/Remediation".
7. Próximos pasos
Los informes en formato CSV o HTML resultantes deben procesarse de acuerdo con los procesos de seguridad de tu entorno. En caso de duda, comunícate con un POC de SecOps o Cumplimiento para obtener más instrucciones.
8. Apéndice
8.1. Agrega credenciales de SSH del nodo del 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 kubeconfig del clúster:
KUBECONFIG=
Enumera las claves SSH del clúster
kubectl --kubeconfig=${KUBECONFIG} get -A secret | grep ssh-key
Identifica el espacio de nombres del secreto "ssh-key" correspondiente al clúster de destino y exporta 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
Corrige 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
Un resultado correcto debería ser 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 IU de Nessus.En la IU de Nessus, ve a la pestaña Credenciales de la configuración del análisis.
Crea una nueva credencial SSH y elige "certificado" como método de autenticación.
Proporciona los siguientes parámetros de configuración para el método de autenticación por SSH con certificado:
Nombre de usuario: "root"
Certificado del usuario: Agregar archivo
nessus-<cluster>-id_rsa-cert.pub
Clave privada: Agregar archivo
nessus-<cluster>-id_rsa
Guarda la configuración de SSH.
Regresa al lugar donde se hizo referencia a esta sección.