Eseguire scansioni Nessus

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.

  1. Esporta il percorso del programma di installazione di Nessus:

    NESSUS_INSTALLER=
    
  2. Installa Nessus con dpkg:

    dpkg -i ${NESSUS_INSTALLER:?}
    
  3. Riavvia Nessus e verifica che sia in esecuzione:

    sudo systemctl restart nessusd
    sudo systemctl status nessusd
    
  4. Ottieni il codice di verifica per registrare Nessus offline:

    /opt/nessus/sbin/nessuscli fetch --challenge
    
  5. Su una macchina connessa a internet, visita la pagina di attivazione offline di Nessus https://plugins.nessus.org/v2/offline.php.

  6. 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".

  7. 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.

  8. Salva l'URL del plug-in Nessus in una posizione sicura per riferimento futuro, poiché ti servirà più avanti in questa guida.

  9. Salva la licenza dalla pagina di attivazione offline di Nessus nella workstation Nessus in un file denominato /opt/nessus/etc/nessus/nessus.license.

  10. Applica la licenza a Nessus:

    /opt/nessus/sbin/nessuscli fetch --register-offline /opt/nessus/etc/nessus/nessus.license
    
  11. Crea un utente amministratore:

    Segui le istruzioni di nessuscli adduser per creare un utente admin. 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
    
  12. 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 utente admin.

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.

  1. 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

  2. Trasferisci il bundle di plug-in alla workstation Nessus ed esporta la posizione del file:

    NESSUS_PLUGIN_BUNDLE=
    
  3. Applica gli aggiornamenti dei plug-in a Nessus:

    /opt/nessus/sbin/nessuscli update ${NESSUS_PLUGIN_BUNDLE:?}
    
  4. 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.

  1. 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).

  2. 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:

  1. Crea una scansione di rilevamento host denominata host-discovery
  2. Specifica gli host: CIDR sia esterni che interni
  3. 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:

  1. Esporta il file kubeconfig del cluster:

    KUBECONFIG=
    
  2. Elenca tutti i nodi del cluster:

    kubectl --kubeconfig=${KUBECONFIG:?} get nodes -o wide
    
  3. 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>
    
  4. Nell'interfaccia utente di Nessus, inizia a creare una "scansione avanzata" con il nome nodeos-compliance-<cluster_name>

  5. 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.

  6. Segui le istruzioni riportate in Appendice: aggiungi le credenziali SSH del nodo del cluster per aggiungere le credenziali di scansione.

  7. 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.

  8. 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:

  1. Seleziona la scansione completata per esaminarne i risultati.

  2. Fai clic sul pulsante "Report" in alto a destra.

  3. Scegli il formato report CSV e seleziona tutte le colonne.

  4. Fai clic su "Genera report". Dopo un breve ritardo, il report dovrebbe essere scaricato.

  5. (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.

  1. Esporta il file kubeconfig del cluster:

    KUBECONFIG=
    
  2. Elenca le chiavi SSH del cluster

    kubectl --kubeconfig=${KUBECONFIG} get -A secret | grep ssh-key
    
  3. Identifica lo spazio dei nomi del secret "ssh-key" corrispondente al cluster di destinazione ed esportalo:

    CLUSTER_NS=
    
  4. Crea una directory ssh di Nessus:

    NESSUS_FOLDER=nessus
    mkdir -p ${NESSUS_FOLDER}/.ssh
    
  5. 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
    
  6. 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
    
  7. 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.
    
  8. Trasferisci nessus-<cluster>-id_rsa e nessus-<cluster>-id_rsa-cert.pub alla workstation utilizzata per accedere alla UI di Nessus.

  9. Nell'interfaccia utente di Nessus, vai alla scheda Credenziali delle impostazioni di scansione.

  10. Crea una nuova credenziale SSH e scegli "certificato" come metodo di autenticazione.

  11. 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

  12. Salva le impostazioni SSH.

  13. Torna al punto in cui è stato fatto riferimento a questa sezione.