Nessus ist ein Sicherheitsscanner, mit dem Sicherheitslücken in Hardware und Software erkannt werden.
In diesem Dokument werden die Schritte zum Ausführen der folgenden Aufgaben beschrieben:
Nessus installieren
Nessus-Scans durchführen
Nessus-Scanergebnisse exportieren
1. Hintergrund
Tenable Nessus ist ein lizenziertes Drittanbietertool. Weitere Informationen zu Nessus finden Sie in den folgenden Ressourcen:
2. Hinweise
Workstation
- Für das Hosting von Nessus ist der Bootstrapper (te-bf) oder eine gleichwertige Workstation mit Bedienerzugriff erforderlich.
Zugriff erforderlich
Folgen Sie IAM-R0005:
- Weisen Sie sich für jeden Zielcluster eine Clusteradministratorrolle zu.
Folgen Sie IAM-R0004:
- Generieren Sie die KUBECONFIG für jeden Zielcluster.
Erforderliche Tools
- kubectl
- ssh-keygen
Software
- Sie benötigen ein mit dem Betriebssystem Ihrer Workstation kompatibles Nessus-Installationsprogramm. Laden Sie das Installationsprogramm von https://www.tenable.com/downloads/nessus herunter und übertragen Sie es auf die Nessus-Workstation, bevor Sie fortfahren.
Lizenzierung
- Ein einzelner Aktivierungscode für eine Tenable Nessus-Lizenz (Pro, Export oder Manager) ist erforderlich. Wenn Sie keinen Lizenzaktivierungscode haben, wenden Sie sich an den POC Ihres Teams für Drittanbieterlizenzen / Software-Stückliste.
3. Nessus installieren
In diesem Abschnitt wird beschrieben, wie Sie Nessus auf der Nessus-Workstation installieren.
Wenn Nessus bereits installiert und aktiviert ist, kann dieser Abschnitt übersprungen werden.
Wenn Nessus nicht mehr verfügbar ist (z. B. weil es auf einem Computer installiert wurde, der nicht mehr vorhanden ist), muss die Lizenz, mit der die vorherige Instanz von Nessus aktiviert wurde, zurückgesetzt werden, bevor Sie fortfahren können.
Exportieren Sie den Pfad zum Nessus-Installationsprogramm:
NESSUS_INSTALLER=
Nessus mit dpkg installieren:
dpkg -i ${NESSUS_INSTALLER:?}
Starten Sie Nessus neu und prüfen Sie, ob es ausgeführt wird:
sudo systemctl restart nessusd sudo systemctl status nessusd
Challenge-Code zum Registrieren von Nessus offline abrufen:
/opt/nessus/sbin/nessuscli fetch --challenge
Rufen Sie auf einem mit dem Internet verbundenen Computer die Nessus-Seite zur Offline-Aktivierung https://plugins.nessus.org/v2/offline.php auf.
Kopieren Sie den Nessus-Offline-Aktivierungscode und den Nessus-Lizenzaktivierungscode auf die Nessus-Offline-Aktivierungsseite und klicken Sie auf „Senden“.
Auf der Seite für die Nessus-Offlineaktivierung sollten jetzt eine Nessus-Plug-in-URL und eine Produktlizenz angezeigt werden. Beide Werte werden für die nächsten Schritte benötigt.
Speichern Sie die Nessus-Plug-in-URL an einem sicheren Ort, da Sie sie später in dieser Anleitung benötigen.
Speichern Sie die Lizenz von der Nessus-Seite für die Offlineaktivierung auf der Nessus-Workstation in einer Datei mit dem Namen
/opt/nessus/etc/nessus/nessus.license
.Wenden Sie die Lizenz auf Nessus an:
/opt/nessus/sbin/nessuscli fetch --register-offline /opt/nessus/etc/nessus/nessus.license
Administrator erstellen:
Folgen Sie der Anleitung von
nessuscli adduser
, um einenadmin
-Nutzer zu erstellen. Diese Anmeldedaten werden später zum Ausführen von Scans und zum Herunterladen von Ergebnissen verwendet. Speichern Sie sie daher an einem sicheren Ort./opt/nessus/sbin/nessuscli adduser
Während Nessus ausgeführt wird, ist die Benutzeroberfläche über Port 8834 zugänglich. Rufen Sie in Ihrem bevorzugten Browser
https://<nessus-workstation-ip>:8834
auf und melden Sie sich alsadmin
-Nutzer an.
4. Nessus-Plug-ins aktualisieren
Die neuesten Nessus-Plug-ins müssen heruntergeladen und auf Nessus angewendet werden, bevor Scans ausgeführt werden, damit die Scanergebnisse relevant und aktuell sind. Die Nessus-Plug-ins müssen direkt von Tenable über die Nessus-Plug-in-URL bezogen werden, die Sie auf der Nessus-Seite für die Offlineaktivierung erhalten.
Plug-in-Bundle abrufen
Option 1: Rufen Sie die Nessus-Plugin-URL in Ihrem bevorzugten Browser auf. Das Bundle wird automatisch heruntergeladen.
Option 2: Bundle mit wget herunterladen
wget "${PLUGIN_URL:?}" -O plugin-updates.tar.gz
Übertragen Sie das Plug-in-Bundle auf die Nessus-Workstation und exportieren Sie den Speicherort der Datei:
NESSUS_PLUGIN_BUNDLE=
Wenden Sie die Plug-in-Updates auf Nessus an:
/opt/nessus/sbin/nessuscli update ${NESSUS_PLUGIN_BUNDLE:?}
Es dauert etwa 30 Minuten, bis die Kompilierung von Plugin-Updates abgeschlossen ist. Sie können mit den nächsten Schritten zum Erstellen von Scans fortfahren, während dies geschieht. Führen Sie die Scans jedoch erst aus, wenn die Kompilierung der Plug-ins abgeschlossen ist.
5. Nessus-Scans konfigurieren
Scans müssen für jede eindeutige Kombination aus Zielklasse und Anmeldedaten erstellt werden. In diesem Abschnitt wird beschrieben, wie Sie den erforderlichen Scan über die Nessus-Benutzeroberfläche erstellen.
Bevor Sie fortfahren, bestätigen Sie den Zugriff auf die Nessus-Benutzeroberfläche unter https://<nessus-workstation-ip>:8834
und melden Sie sich als admin
-Nutzer an.
5.1 Netzwerk-CIDRs erfassen
Nessus-Scans werden erstellt, um die externen und internen Netzwerk-CIDRs für die Umgebung zu scannen.
Erfassen Sie die externen und internen Netzwerk-CIDRs für das Ziel-Appliance-Netzwerk. Idealerweise überschneidet sich dieses Netzwerk nicht mit einer anderen benachbarten Umgebung.
Die IP-Bereiche enthalten wahrscheinlich die Bootstrapper-IP oder andere IPs, die nicht gescannt werden sollten. Geben Sie die folgenden Befehle für jede IP-Adresse ein, die nicht gescannt werden soll (z. B. die Bootstrapper-IP):
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 Host-Erkennungsscans
Netzwerkermittlungsscans sind nicht authentifiziert und sollen ein Netzwerk nach Zielen und unsicheren Netzwerkexpositionen durchsuchen.
Dieser Scan wird so konfiguriert, dass die im vorherigen Abschnitt angegebenen externen und internen Netzwerk-CIDRs gescannt werden.
In der Nessus-Benutzeroberfläche:
- Erstellen Sie einen Host-Erkennungsscan mit dem Namen
host-discovery
. - Hosts angeben: sowohl externe als auch interne CIDRs
- Speichern und starten
5.3 Betriebssystem-Scans für Knoten
Knoten-Scans werden authentifiziert und sollen kritische Betriebssysteme auf bekannte Sicherheitslücken, unsichere Konfigurationen und Compliance prüfen.
Gehen Sie diesen Abschnitt für den Infrastrukturcluster der Organisation durch:
Exportieren Sie die kubeconfig-Datei des Clusters:
KUBECONFIG=
Alle Clusterknoten auflisten:
kubectl --kubeconfig=${KUBECONFIG:?} get nodes -o wide
Sehen Sie sich die Spalte an, in der die Daten-IP für jeden Knoten angezeigt wird. Prüfen Sie noch einmal, ob die Daten-IP von der Nessus-Workstation aus mit „ping“ erreichbar ist, bevor Sie fortfahren.
ping <node_data_ip>
Erstellen Sie in der Nessus-Benutzeroberfläche einen „Advanced scan“ (Erweiterter Scan) mit dem Namen
nodeos-compliance-<cluster_name>
.Füllen Sie im erweiterten Scan das Feld „Hosts“ mit einer durch Kommas getrennten Liste aller Knoten-Daten-IPs aus Schritt 1 aus.
Folgen Sie der Anleitung unter Anhang: SSH-Anmeldedaten für Clusterknoten hinzufügen, um Scan-Anmeldedaten hinzuzufügen.
Rufen Sie den Tab „Compliance“ auf und wählen Sie die neueste verfügbare Version von „DISA STIG Ubuntu 20.04 v1“ aus. Speichern Sie die Compliance-Konfiguration unverändert, ohne die Standardwerte zu ändern.
Speichern Sie die Scankonfiguration und starten Sie den Scan.
5.4. Pause machen
Die Scans sollten mindestens 30 Minuten dauern. Jetzt ist ein guter Zeitpunkt, eine Pause einzulegen oder etwas anderes zu tun, bis die Vorgänge abgeschlossen sind.
6. Scanergebnisse exportieren
In diesem Abschnitt wird beschrieben, wie Sie Scanergebnisse exportieren.
Laden Sie für jeden abgeschlossenen Scan die Ergebnisse herunter:
Wählen Sie den abgeschlossenen Scan aus, um die Ergebnisse zu prüfen.
Klicken Sie rechts oben auf die Schaltfläche „Bericht“.
Wählen Sie das Berichtsformat „CSV“ aus und wählen Sie alle Spalten aus.
Klicken Sie auf „Bericht erstellen“. Nach kurzer Zeit sollte der Bericht heruntergeladen werden.
Optional: Wenn auch ein HTML-Bericht erforderlich ist, wählen Sie stattdessen das Berichtsformat „HTML“ und eine geeignete Berichtsvorlage aus. Die empfohlene Berichtsvorlage ist „Detailed Vulnerabilities By Plugin with Compliance/Remediation“ (Detaillierte Sicherheitslücken nach Plug-in mit Compliance/Abhilfemaßnahmen).
7. Nächste Schritte
Die resultierenden CSV-/HTML-Berichte müssen gemäß den Sicherheitsprozessen Ihrer Umgebung verarbeitet werden. Wenden Sie sich im Zweifelsfall an einen SecOps- oder Compliance-POC, um weitere Informationen zu erhalten.
8. Anhang
8.1 SSH-Anmeldedaten für Clusterknoten hinzufügen
In diesem Abschnitt wird beschrieben, wie Sie SSH-Anmeldedaten für Nessus erhalten, damit die Knoten eines Zielclusters gescannt werden können.
Exportieren Sie die kubeconfig-Datei des Clusters:
KUBECONFIG=
SSH-Schlüssel für Cluster auflisten
kubectl --kubeconfig=${KUBECONFIG} get -A secret | grep ssh-key
Ermitteln Sie den Namespace des Secrets „ssh-key“, das dem Zielcluster entspricht, und exportieren Sie den Namespace:
CLUSTER_NS=
Erstellen Sie ein Nessus-SSH-Verzeichnis:
NESSUS_FOLDER=nessus mkdir -p ${NESSUS_FOLDER}/.ssh
Exportieren Sie das SSH-Schlüsselpaar in das SSH-Verzeichnis von 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
Berechtigungen des Schlüsselpaars korrigieren:
# fix permissions chmod 600 ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa chmod 600 ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa-cert.pub
Konvertieren Sie den privaten Schlüssel mit einer leeren Passphrase in das PEM-Format:
ssh-keygen -p -m PEM -f ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa
Eine erfolgreiche Ausgabe sollte in etwa so aussehen:
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.
Übertragen Sie
nessus-<cluster>-id_rsa
undnessus-<cluster>-id_rsa-cert.pub
auf die Workstation, die für den Zugriff auf die Nessus-Benutzeroberfläche verwendet wird.Rufen Sie in der Nessus-Benutzeroberfläche den Tab „Scan Settings“ (Scaneinstellungen) auf.
Erstellen Sie neue SSH-Anmeldedaten und wählen Sie „Zertifikat“ als Authentifizierungsmethode aus.
Geben Sie die folgenden Einstellungen für die SSH-Zertifikatsauthentifizierungsmethode an:
Nutzername: „root“
Nutzerzertifikat: Datei hinzufügen
nessus-<cluster>-id_rsa-cert.pub
Privater Schlüssel: Datei
nessus-<cluster>-id_rsa
hinzufügen
Speichern Sie die SSH-Einstellungen.
Kehren Sie zu der Stelle zurück, an der auf diesen Abschnitt verwiesen wurde.