Nessus è uno scanner di sicurezza utilizzato per rilevare le vulnerabilità di sicurezza in hardware e software.
Questo documento presenta i passaggi per:
installa Nessus
eseguire scansioni Nessus
esportare i risultati della scansione Nessus
1. Sfondo
Tenable Nessus è uno strumento di terze parti con licenza. Per saperne di più su Nessus, consulta le seguenti risorse:
2. Prima di iniziare
Workstation
- Per ospitare Nessus è necessario il bootstrapper (te-bf) o una workstation operatore equivalente accessibile.
Accesso richiesto
Segui IAM-R0005:
- Ottieni un ruolo di amministratore del cluster per ogni cluster di destinazione.
Segui IAM-R0004:
- Genera il file KUBECONFIG per ogni cluster di destinazione.
Strumenti necessari
- kubectl
- ssh-keygen
Software
- È necessario un programma di installazione di Nessus compatibile con il sistema operativo della tua workstation. Ottieni il programma di installazione da https://www.tenable.com/downloads/nessus e trasferiscilo alla workstation Nessus prima di continuare.
Licenze
- È richiesto un singolo codice di attivazione della licenza Tenable Nessus (Pro, Export o Manager). Se non hai un codice di attivazione della licenza, contatta il punto di contatto del tuo team per la fattura dei materiali di licenza / software di terze parti.
3. Installa Nessus
Questa sezione descrive i passaggi per installare Nessus sulla workstation Nessus.
Se Nessus è già installato e attivato, questa sezione deve essere saltata.
Se Nessus non è più disponibile (ad esempio è stato installato su un computer non più esistente), la licenza utilizzata per attivare l'istanza precedente di Nessus deve essere reimpostata prima di continuare.
Esporta il percorso del programma di installazione di Nessus:
NESSUS_INSTALLER=
Installa Nessus con dpkg:
dpkg -i ${NESSUS_INSTALLER:?}
Riavvia Nessus e verifica che sia in esecuzione:
sudo systemctl restart nessusd sudo systemctl status nessusd
Ottieni il codice di verifica per registrare Nessus offline:
/opt/nessus/sbin/nessuscli fetch --challenge
Su una macchina connessa a internet, visita la pagina di attivazione offline di Nessus https://plugins.nessus.org/v2/offline.php.
Copia il codice di attivazione offline di Nessus e il codice di attivazione della licenza di Nessus nella pagina di attivazione offline di Nessus e premi "Invia".
La pagina di attivazione offline di Nessus ora dovrebbe mostrare un URL del plug-in Nessus e la licenza del prodotto. Entrambi questi valori sono necessari per i passaggi successivi.
Salva l'URL del plug-in Nessus in una posizione sicura per riferimento futuro, poiché ti servirà più avanti in questa guida.
Salva la licenza dalla pagina di attivazione offline di Nessus nella workstation Nessus in un file denominato
/opt/nessus/etc/nessus/nessus.license
.Applica la licenza a Nessus:
/opt/nessus/sbin/nessuscli fetch --register-offline /opt/nessus/etc/nessus/nessus.license
Crea un utente amministratore:
Segui le istruzioni di
nessuscli adduser
per creare un utenteadmin
. Queste credenziali verranno utilizzate in un secondo momento per eseguire scansioni e scaricare i risultati, quindi salvale in un luogo sicuro./opt/nessus/sbin/nessuscli adduser
Mentre Nessus è in esecuzione, la sua interfaccia utente è accessibile sulla porta 8834. Utilizzando il browser che preferisci, vai su
https://<nessus-workstation-ip>:8834
e accedi come utenteadmin
.
4. Aggiornare i plug-in Nessus
I plug-in Nessus più recenti devono essere scaricati e applicati a Nessus prima di eseguire le scansioni per garantire che i risultati siano pertinenti e aggiornati. I plug-in Nessus devono essere ottenuti direttamente da Tenable utilizzando l'URL del plug-in Nessus ottenuto dalla pagina di attivazione offline di Nessus.
Ottieni il bundle di plug-in.
Opzione 1: vai all'URL del plug-in Nessus utilizzando il browser che preferisci e il bundle verrà scaricato automaticamente.
Opzione 2: scarica il bundle utilizzando wget
wget "${PLUGIN_URL:?}" -O plugin-updates.tar.gz
Trasferisci il bundle di plug-in alla workstation Nessus ed esporta la posizione del file:
NESSUS_PLUGIN_BUNDLE=
Applica gli aggiornamenti dei plug-in a Nessus:
/opt/nessus/sbin/nessuscli update ${NESSUS_PLUGIN_BUNDLE:?}
Il completamento della compilazione degli aggiornamenti dei plug-in richiede circa 30 minuti. I passaggi successivi per creare le scansioni possono essere seguiti durante questa operazione, ma rimanda l'esecuzione delle scansioni fino al termine della compilazione dei plug-in.
5. Configurare le scansioni Nessus
È necessario creare scansioni per ogni combinazione unica di classe di destinazione e credenziali. Questa sezione spiega come creare la scansione necessaria tramite l'interfaccia utente di Nessus.
Prima di continuare, conferma l'accesso alla UI di Nessus all'indirizzo https://<nessus-workstation-ip>:8834
e accedi come utente admin
.
5.1. Raccogliere i CIDR di rete
Vengono create scansioni Nessus per analizzare i CIDR di rete esterni e interni per l'ambiente.
Raccogli i CIDR di rete esterni e interni per la rete dell'appliance di destinazione (idealmente questa rete non si sovrappone a un altro ambiente adiacente).
Gli intervalli IP includeranno probabilmente l'IP del bootstrapper o altri IP che non devono essere scansionati. Inserisci i seguenti comandi per ogni IP che non deve essere analizzato (ad es. IP bootstrapper):
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. Scansioni di rilevamento host
Le scansioni di rilevamento della rete non sono autenticate e hanno lo scopo di analizzare una rete alla ricerca di target ed esposizioni di rete non sicure.
Questa scansione verrà configurata per analizzare i CIDR di rete esterni e interni identificati nella sezione precedente.
Nell'interfaccia utente di Nessus:
- Crea una scansione di rilevamento host denominata
host-discovery
- Specifica gli host: CIDR sia esterni che interni
- Salva e avvia
5.3. Scansioni del sistema operativo del nodo
Le scansioni dei nodi sono autenticate e hanno lo scopo di ispezionare i sistemi operativi critici per individuare vulnerabilità note, configurazioni non sicure e conformità.
Completa questa sezione per il cluster dell'infrastruttura dell'organizzazione:
Esporta il file kubeconfig del cluster:
KUBECONFIG=
Elenca tutti i nodi del cluster:
kubectl --kubeconfig=${KUBECONFIG:?} get nodes -o wide
Prendi nota della colonna che mostra l'IP dei dati per ogni nodo. Prima di continuare, verifica che l'IP dei dati sia accessibile dalla workstation Nessus con ping.
ping <node_data_ip>
Nell'interfaccia utente di Nessus, inizia a creare una "scansione avanzata" con il nome
nodeos-compliance-<cluster_name>
Nella scansione avanzata, compila il campo degli host con un elenco separato da virgole di tutti gli IP dei dati dei nodi del passaggio 1.
Segui le istruzioni riportate in Appendice: aggiungi le credenziali SSH del nodo del cluster per aggiungere le credenziali di scansione.
Vai alla scheda Conformità e scegli l'ultima revisione disponibile di "DISA STIG Ubuntu 20.04 v1". Salva la configurazione di conformità così com'è senza apportare modifiche ai valori predefiniti.
Salva la configurazione della scansione e avviala.
5.4. Fai una pausa
Il completamento delle scansioni dovrebbe richiedere più di 30 minuti. Ora è un buon momento per fare una pausa o fare altro finché non vengono completati.
6. Esportare i risultati dell'analisi
Questa sezione descrive la procedura per esportare i risultati della scansione.
Per ogni scansione completata, scarica i risultati:
Seleziona la scansione completata per esaminarne i risultati.
Fai clic sul pulsante "Report" in alto a destra.
Scegli il formato report CSV e seleziona tutte le colonne.
Fai clic su "Genera report". Dopo un breve ritardo, il report dovrebbe essere scaricato.
(Facoltativo) Se è necessario anche un report HTML, scegli invece Formato report HTML e il Modello di report che ti sembra più ragionevole. Il modello di report consigliato è "Vulnerabilità dettagliate per plug-in con conformità/correzione".
7. Passaggi successivi
I report CSV / HTML risultanti devono essere elaborati in base alle procedure di sicurezza del tuo ambiente. In caso di dubbi, contatta un punto di contatto SecOps o Compliance per ulteriori istruzioni.
8. Appendice
8.1. Aggiungi le credenziali SSH del nodo del cluster
Questa sezione descrive la procedura per ottenere un insieme di credenziali SSH per Nessus per analizzare i nodi di un cluster di destinazione.
Esporta il file kubeconfig del cluster:
KUBECONFIG=
Elenca le chiavi SSH del cluster
kubectl --kubeconfig=${KUBECONFIG} get -A secret | grep ssh-key
Identifica lo spazio dei nomi del secret "ssh-key" corrispondente al cluster di destinazione ed esportalo:
CLUSTER_NS=
Crea una directory ssh di Nessus:
NESSUS_FOLDER=nessus mkdir -p ${NESSUS_FOLDER}/.ssh
Esporta la coppia di chiavi SSH nella directory SSH di 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
Correggi le autorizzazioni della coppia di chiavi:
# fix permissions chmod 600 ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa chmod 600 ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa-cert.pub
Converti la chiave privata in formato PEM con una passphrase vuota:
ssh-keygen -p -m PEM -f ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa
L'output riuscito dovrebbe essere simile al seguente:
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.
Trasferisci
nessus-<cluster>-id_rsa
enessus-<cluster>-id_rsa-cert.pub
alla workstation utilizzata per accedere alla UI di Nessus.Nell'interfaccia utente di Nessus, vai alla scheda Credenziali delle impostazioni di scansione.
Crea una nuova credenziale SSH e scegli "certificato" come metodo di autenticazione.
Fornisci le seguenti impostazioni per il metodo di autenticazione SSH del certificato:
Nome utente: "root"
Certificato utente: aggiungi file
nessus-<cluster>-id_rsa-cert.pub
Chiave privata: aggiungi file
nessus-<cluster>-id_rsa
Salva le impostazioni SSH.
Torna al punto in cui è stato fatto riferimento a questa sezione.