Verwendung von Vuls als Vulnerability Scanner unter Ubuntu 18.04

Der Autor hat den Free and Open Source Fund ausgewählt, um eine Spende als Teil des Write for DOnations zu erhalten. Programm.

Einführung

Vuls ist ein Open-Source-Sicherheitslückenscanner ohne Agenten, der in Go geschrieben wurde. Es automatisiert die Analyse von Sicherheitslücken der auf einem System installierten Software, was für Systemadministratoren eine mühsame Aufgabe sein kann, die sie in einer Produktionsumgebung manuell ausführen müssen. Vuls verwendet mehrere bekannte Sicherheitsdatenbanken, wie die National Vulnerability Database (NVD). Vuls ist ressourcenschonend und kann mehrere Systeme gleichzeitig scannen und Berichte per E-Mail oder Slack senden. Es gibt drei Scan-Modi (fast, fast root und deep), die Sie je nach Situation auswählen können.

Vuls ist kein umfassender IT-Sicherheitsscanner. Es überwacht beispielsweise nicht den Netzwerkverkehr und schützt nicht vor Brute-Force-Anmeldeangriffen. Vuls bietet jedoch eine Möglichkeit, das Melden von Sicherheitslücken für Linux-Pakete zu automatisieren. Wenn die von Vuls verwendeten Datenbanken über eine Behebung bestimmter Schwachstellen informiert werden, bezieht Vuls diese Korrekturinformationen auch in seine Berichte ein. Bei der Erstellung von Berichten priorisiert Vuls die dringendsten Sicherheitslücken mithilfe des etablierten Ranking-Systems aus der Datenbank.

In diesem Tutorial stellen Sie Vuls auf einem Ubuntu 18.04-Server bereit. Dies beinhaltet das Erstellen von Vuls und seiner Abhängigkeiten vom Quellcode, das Konfigurieren des Scannens und Berichterstellens an Slack und optional das Verbinden mit Zielcomputern, um das Remote-Scannen zu ermöglichen. Am Ende steht ein automatisiertes System zur Meldung von Sicherheitslücken zur Verfügung, das Sie auf Sicherheitslücken hinweist, sodass keine manuellen Überprüfungen erforderlich sind.

Voraussetzungen

Bevor Sie mit diesem Lernprogramm beginnen, benötigen Sie Folgendes:

  • Ein Server mit mindestens 2 GB RAM, auf dem Ubuntu 18.04 mit Root-Zugriff ausgeführt wird, und einem sekundären Nicht-Root-Konto. Sie können dies einrichten, indem Sie der https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04 [Anleitung zur Ersteinrichtung des Servers] folgen. In diesem Tutorial ist der Nicht-Root-Benutzer "++".

  • (Optional) Auf mehreren Servern wird (vorzugsweise) Ubuntu 18.04 mit Root-Zugriff und einem sekundären Nicht-Root-Konto ausgeführt, wenn Sie Vuls so einrichten möchten, dass sie remote gescannt werden. In diesem Tutorial lautet das sekundäre Konto "++".

Schritt 1 - Abhängigkeiten installieren

In diesem Abschnitt erstellen Sie einen Ordner zum Speichern von Vuls-Daten, installieren die neueste Version der Go-Programmiersprache und installieren andere Pakete, die Vuls und seine Abhängigkeiten benötigen.

Beginnen Sie mit der Anmeldung als "++":

ssh @

In diesem Lernprogramm speichern Sie alle Vuls-bezogenen Daten im Verzeichnis "+ / usr / share / +". Erstellen Sie es, indem Sie den folgenden Befehl ausführen:

sudo mkdir /usr/share/

Führen Sie den folgenden Befehl aus, um den Zugriff auf "++" zu ermöglichen:

sudo chown -R  /usr/share/

Sie haben jetzt den Ordner "++" erstellt, der Ihr Arbeitsbereich sein wird. Bevor Sie mit der Installation der erforderlichen Pakete fortfahren, aktualisieren Sie zunächst den Paketmanager-Cache:

sudo apt update

Um die Abhängigkeiten herunterzuladen und zu kompilieren, installieren Sie "+ git ", " gcc ", " make", "+ sqlite", "+ debian-goodies", "+ golang-go " und " wget" .

+ sqlite + ist ein Datenbanksystem, das Sie hier zum Speichern von Schwachstelleninformationen verwenden. https://packages.debian.org/stretch/debian-goodies [+ debian-goodies +] enthält das Hilfsprogramm + checkrestart +, das angibt, welche Pakete zu einem bestimmten Zeitpunkt neu gestartet werden können und sollten. + golang-go + ist die Programmiersprache von Go.

Sie können sie alle in einem Befehl installieren:

sudo apt install sqlite git debian-goodies gcc make wget golang-go -y

Sie haben jetzt die erforderlichen Pakete installiert, einschließlich Go.

Für die Arbeit mit Go sind einige Umgebungsvariablen erforderlich, die Sie einrichten: "+ GOPATH " und " PATH ". ` GOPATH ` gibt das Arbeitsverzeichnis für Go und ` PATH +` (das Verzeichnisse enthält, in denen sich Programme befinden) an, die erweitert werden müssen, um dem System mitzuteilen, wo Go selbst zu finden ist.

Diese Umgebungsvariablen müssen jedes Mal festgelegt werden, wenn sich der Benutzer anmeldet. Um dies zu automatisieren, erstellen Sie eine neue ausführbare Datei mit dem Namen "+ go-env.sh " unter " / etc / profile.d +". Dies führt dazu, dass das Verzeichnis jedes Mal ausgeführt wird, wenn sich ein Benutzer anmeldet.

Erstellen Sie + go-env.sh + mit Ihrem Texteditor:

sudo nano /etc/profile.d/go-env.sh

Fügen Sie der Datei die folgenden Befehle hinzu:

/etc/profile.d/go-env.sh

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Der Befehl "+ export" setzt die angegebene Umgebungsvariable auf den gewünschten Wert. hier verwenden Sie es, um "+ GOPATH" und "+ PATH" mit entsprechenden Werten zu füllen.

Speichern und schließen Sie die Datei.

Derzeit ist + go-env.sh + nicht ausführbar. Um dies zu beheben, markieren Sie es als ausführbar, indem Sie den folgenden Befehl ausführen:

sudo chmod +x /etc/profile.d/go-env.sh

Um zu vermeiden, dass Sie sich erneut anmelden müssen, können Sie + go-env.sh + neu laden, indem Sie Folgendes ausführen:

source /etc/profile.d/go-env.sh

Der Befehl + source lädt die angegebene Datei erneut in die aktuelle Shell und behält dabei ihren Status bei.

In diesem Abschnitt haben Sie die Sprache Go installiert, die Umgebungsvariablen eingerichtet und Pakete installiert, die Sie später benötigen. In den nächsten Schritten laden Sie die von Vuls benötigten Go-Programme herunter und kompilieren sie. Diese Programme sind + go-cve-dictionary + und + goval-dictionary +, mit denen Vuls Schwachstellendatenbanken abfragt.

Schritt 2 - go-cve-dictionary installieren und ausführen

In diesem Abschnitt werden Sie ein Go-Paket herunterladen und kompilieren, das den Zugriff auf die NVD (National Vulnerability Database) ermöglicht. Anschließend werden Sie es ausführen und Schwachstellendaten abrufen, die Vuls verwenden soll. Die NVD ist das Repository der US-Regierung für öffentlich gemeldete Sicherheitslücken im Bereich Cybersicherheit, das Sicherheitslücken-IDs (CVE - Common Vulnerabilities and Exposures), Zusammenfassungen und Auswirkungsanalysen enthält und in einem maschinenlesbaren Format verfügbar ist.

Go speichert Pakete unter + $ GOPATH / src / +. Sie können dies weiter ausbauen, indem Sie Unterverzeichnisse verwenden, um den Ursprung zu vermerken. Beispielsweise würden Pakete von GitHub, die vom Benutzer erstellt wurden, unter "+" unter " $ GOPATH / src / github.com / +" gespeichert.

Sie installieren zunächst "+ go-cve-dictionary ", das von " kotakanbe +" erstellt wurde, indem Sie das Go-Paket von GitHub klonen und anschließend kompilieren.

Beginnen Sie mit der Erstellung eines Verzeichnisses, in dem es gespeichert wird, entsprechend dem Beispielpfad:

mkdir -p $GOPATH/src/github.com/kotakanbe

Navigieren Sie dorthin, indem Sie Folgendes ausführen:

cd $GOPATH/src/github.com/kotakanbe

Jetzt klonen Sie + go-cve-dictionary + von GitHub auf Ihren Server, indem Sie Folgendes ausführen:

git clone https://github.com/kotakanbe/go-cve-dictionary.git

Navigieren Sie dann zum Paketstamm:

cd go-cve-dictionary

Kompilieren und installieren Sie es abschließend, indem Sie den folgenden Befehl ausführen:

make install

Beachten Sie, dass dieser Befehl einige Zeit in Anspruch nehmen kann. Um es systemweit verfügbar zu machen, kopieren Sie es nach + / usr / local / bin:

sudo cp $GOPATH/bin/go-cve-dictionary /usr/local/bin

+ go-cve-dictionary + erfordert Zugriff auf ein Protokollausgabeverzeichnis und standardmäßig ist dies + / var / log / vuls +. Erstellen Sie es, indem Sie Folgendes ausführen:

sudo mkdir /var/log/vuls

Derzeit ist das Protokollverzeichnis für alle lesbar. Beschränken Sie den Zugriff auf den aktuellen Benutzer mit dem folgenden Befehl:

sudo chmod 700 /var/log/vuls

Durch Setzen der Berechtigungsflags auf "+ 700 +" wird der Zugriff nur auf den Eigentümer beschränkt.

Führen Sie den folgenden Befehl aus, um es für ++ oder einen anderen Benutzer zugänglich zu machen:

sudo chown -R  /var/log/vuls

Jetzt rufen Sie Schwachstellendaten vom NVD ab und speichern sie in Ihrem Vuls-Arbeitsbereich (+ / usr / share / +):

for i in `seq 2002 $(date +"%Y")`; do sudo go-cve-dictionary fetchnvd -dbpath /usr/share//cve.sqlite3 -years $i; done

Dieser Befehl durchläuft eine Schleife vom Jahr 2002 bis zum aktuellen Jahr (+ seq 2002 $ (Datum +"% Y ") +) und ruft + go-cve-dictionary fetchnvd + auf, um die NVD-Daten für die aktuelle (Schleife) abzurufen. Jahr vorbei an + -years $ i +. Diese Informationen werden dann in einer Datenbank unter "+ / usr / share / +" gespeichert.

In diesem Schritt haben Sie "+ go-cve-dictionary " heruntergeladen und installiert und NVD-Daten für die spätere Verwendung durch Vuls abgerufen. Im nächsten Abschnitt werden Sie " goval-dictionary +" herunterladen und installieren und OVAL-Daten für Ubuntu abrufen.

Schritt 3 - Installieren und Ausführen von goval-dictionary

In diesem Abschnitt werden Sie + goval-dictionary + herunterladen und kompilieren, ein Go-Paket, das Ubuntu den Zugriff auf die OVAL-Datenbank ermöglicht. Anschließend führen Sie es aus und rufen Schwachstellendaten ab, die Vuls verwenden soll. OVAL steht für Open Vulnerability and Assessment Language. Hierbei handelt es sich um eine offene Sprache, mit der überprüft wird, ob auf einem bestimmten System Softwareschwachstellen vorhanden sind.

Derselbe Autor, "+ kotakanbe ", schreibt das " goval-dictionary +" und Sie speichern es neben dem vorherigen Paket.

Navigieren Sie zum Ordner "+ $ GOPATH / src / github.com / kotakanbe +":

cd $GOPATH/src/github.com/kotakanbe

Klonen Sie das Paket von GitHub, indem Sie den folgenden Befehl ausführen:

git clone https://github.com/kotakanbe/goval-dictionary.git

Geben Sie den Paketordner ein:

cd goval-dictionary

Kompiliere und installiere es mit + make +:

make install

Kopieren Sie es nach + / usr / local / bin +, um es global zugänglich zu machen:

sudo cp $GOPATH/bin/goval-dictionary /usr/local/bin

Rufen Sie dann die OVAL-Daten für Ubuntu 18.x ab, indem Sie den folgenden Befehl ausführen:

sudo goval-dictionary fetch-ubuntu -dbpath=/usr/share//oval.sqlite3 18

In diesem Schritt haben Sie "+ goval-dictionary +" heruntergeladen und installiert und die OVAL-Daten für Ubuntu 18.x abgerufen. Im nächsten Schritt werden Sie Vuls herunterladen und installieren.

Schritt 4 - Herunterladen und Konfigurieren von Vuls

Nachdem Sie alle Abhängigkeiten installiert haben, können Sie Vuls jetzt aus dem Quellcode herunterladen und kompilieren. Anschließend konfigurieren Sie es, um den lokalen Computer zu scannen.

Erstellen Sie mit dem folgenden Befehl ein neues Verzeichnis, das den Pfad zum Vuls-Repository enthält:

mkdir -p $GOPATH/src/github.com/future-architect

Navigiere dorthin:

cd $GOPATH/src/github.com/future-architect

Klonen Sie Vuls von GitHub, indem Sie den folgenden Befehl ausführen:

git clone https://github.com/future-architect/vuls.git

Geben Sie den Paketordner ein:

cd vuls

Kompilieren und installieren Sie es gleichzeitig, indem Sie Folgendes ausführen:

make install

Denken Sie daran, dass es einige Zeit dauern kann, bis dieser Befehl ausgeführt wird.

Kopieren Sie es nach "+ / usr / local / bin", um es global zugänglich zu machen:

sudo cp $GOPATH/bin/vuls /usr/local/bin

Jetzt erstellen Sie eine Konfigurationsdatei für Vuls. Navigieren Sie zurück zu "+ / usr / share / +":

cd /usr/share/

Vuls speichert seine Konfiguration in einer TOML-Datei, die Sie mit "+ config.toml +" aufrufen. Erstellen Sie es mit Ihrem Texteditor:

sudo nano config.toml

Geben Sie die folgende Konfiguration ein:

/usr/share/vuls-data/config.toml

[cveDict]
type = "sqlite3"
SQLite3Path = "/usr/share//cve.sqlite3"

[ovalDict]
type = "sqlite3"
SQLite3Path = "/usr/share//oval.sqlite3"

[servers]

[servers.localhost]
host = "localhost"
port = "local"
scanMode = [ "fast" ]
#scanMode = ["fast", "fast-root", "deep", "offline"]

Die ersten beiden Abschnitte dieser Konfiguration ("+ cveDict " und " ovalDict ") verweisen Vuls auf die Schwachstellendatenbanken, die Sie in den letzten beiden Schritten erstellt haben. Der nächste Abschnitt (` Server `) markiert den Beginn der serverbezogenen Informationen. In separaten Abschnitten werden Informationen zu jedem Server zusammengefasst. Der einzige Server, den Vuls mit dieser beschriebenen Konfiguration scannt, ist der lokale Server (` localhost +`).

Vuls bietet vier Scanmodi:

  • Schneller Modus (Standard): Scannt ohne Root-Rechte, hat keine Abhängigkeiten und ist auf dem Zielserver sehr leicht.

  • Schneller Root-Modus: Scannt mit Root-Rechten und kann aktualisierte, aber noch nicht neu gestartete Prozesse erkennen.

  • Deep-Scan-Modus: Entspricht dem Fast-Root-Modus, prüft jedoch Änderungsprotokolle, was zu einer hohen Belastung des Zielservers führen kann.

  • Offline mode: Scannt das Gerät ohne Internetzugang und kann in Verbindung mit anderen Modi verwendet werden.

Speichern und schließen Sie die Datei.

Führen Sie den folgenden Befehl aus, um die Gültigkeit der Konfigurationsdatei zu testen:

vuls configtest

Sie sehen die folgende Ausgabe:

[Feb 27 19:36:42]  INFO [localhost] Validating config...
[Feb 27 19:36:42]  INFO [localhost] Detecting Server/Container OS...
[Feb 27 19:36:42]  INFO [localhost] Detecting OS of servers...
[Feb 27 19:36:42]  INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04
[Feb 27 19:36:42]  INFO [localhost] Detecting OS of containers...
[Feb 27 19:36:42]  INFO [localhost] Checking Scan Modes...
[Feb 27 19:36:42]  INFO [localhost] Checking dependencies...
[Feb 27 19:36:42]  INFO [localhost] Dependencies... Pass
[Feb 27 19:36:42]  INFO [localhost] Checking sudo settings...
[Feb 27 19:36:42]  INFO [localhost] sudo ... No need
[Feb 27 19:36:42]  INFO [localhost] It can be scanned with fast scan mode even if warn or err messages are displayed due to lack of dependent packages or sudo settings in fast-root or deep scan mode
[Feb 27 19:36:42]  INFO [localhost] Scannable servers are below...
localhost

Sie haben die Konfiguration korrekt eingegeben und Vuls hat festgestellt, dass der lokale Server gescannt werden kann.

Sie haben Vuls installiert und konfiguriert, um den lokalen Server zu scannen. Im nächsten Schritt führen Sie einen lokalen Scan durch und zeigen den generierten Bericht an.

Schritt 5 - Ausführen eines lokalen Scans

In diesem Abschnitt führen Sie einen lokalen Scan durch und zeigen dann den generierten Schwachstellenbericht an. Inzwischen haben Sie nur den lokalen Server konfiguriert, den Vuls im letzten Schritt korrekt erkannt hat. Der Standard-Scan-Modus ist, falls nicht explizit angegeben, schnell.

Führen Sie den folgenden Befehl aus, um einen Scan auszuführen:

vuls scan

Es wird eine Ausgabe ähnlich der folgenden angezeigt:

[Feb 27 19:44:12]  INFO [localhost] Start scanning
[Feb 27 19:44:12]  INFO [localhost] config: /usr/share//config.toml
[Feb 27 19:44:12]  INFO [localhost] Validating config...
[Feb 27 19:44:12]  INFO [localhost] Detecting Server/Container OS...
[Feb 27 19:44:12]  INFO [localhost] Detecting OS of servers...
[Feb 27 19:44:12]  INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04
[Feb 27 19:44:12]  INFO [localhost] Detecting OS of containers...
[Feb 27 19:44:12]  INFO [localhost] Checking Scan Modes...
[Feb 27 19:44:12]  INFO [localhost] Detecting Platforms...
[Feb 27 19:44:12]  INFO [localhost] (1/1) localhost is running on other
[Feb 27 19:44:12]  INFO [localhost] Scanning vulnerabilities...
[Feb 27 19:44:12]  INFO [localhost] Scanning vulnerable OS packages...
[Feb 27 19:44:12]  INFO [localhost] Scanning in fast mode


One Line Summary
================
localhost       ubuntu18.04     539 installed


To view the detail, vuls tui is useful.
To send a report, run vuls report -h.

Vuls hat protokolliert, was es dabei getan hat. Führen Sie Folgendes aus, um einen Bericht über die erkannten Schwachstellen anzuzeigen:

vuls tui

Vuls unterteilt die Berichtsansicht in vier Bereiche:

  • Gescannte Maschinen: Oben links finden Sie eine Liste der von Vuls gescannten Maschinen.

  • Gefundene Schwachstellen: Rechts neben der Computerliste werden die Schwachstellen angezeigt, die in installierten Paketen gefunden wurden.

  • Detaillierte Informationen: Nimmt den linken Teil des Bildschirms ein und zeigt detaillierte Informationen zu der Sicherheitsanfälligkeit an, die aus den Datenbanken abgerufen wurden.

  • Betroffene Pakete: Auf der rechten Seite der Detailinformationen wird angezeigt, welche Paketversionen betroffen sind und ob es eine feste Version gibt.

Sie können den Cursor durch Drücken von "+ ENTER" durch die Felder bewegen und mit den Tastaturpfeilen navigieren.

In diesem Schritt haben Sie einen lokalen Scan ausgeführt und die Ergebnisse überprüft. Im nächsten optionalen Abschnitt konfigurieren Sie Vuls zum Scannen mehrerer Zielcomputer.

Schritt 6 - (Optional) Konfigurieren mehrerer Zielmaschinen

In diesem Abschnitt konfigurieren Sie Vuls zum Scannen mehrerer Zielcomputer. Dies beinhaltet die Konfiguration von "+ / etc / sudoers +" auf dem Ziel und die Konfiguration von Vuls zum Scannen des Ziels.

Im vorherigen Schritt haben Sie Vuls so konfiguriert, dass der lokale Computer gescannt wird (+ localhost +). Sie können beliebig viele Server hinzufügen, vorausgesetzt, Sie verfügen über Folgendes:

  • die IP des Zielservers

  • Root-Zugriff auf den Zielserver

  • ein verfügbares Konto auf dem Zielserver (++ in diesem Tutorial)

Sie können nur ein Nicht-Root-Benutzerkonto auf dem Zielserver zum Scannen im Schnellmodus verwenden. Um das Scannen in den Modi "Fast Root" und "Deep" zu aktivieren, müssen Sie die Datei "+ / etc / sudoers " auf den Zielcomputern bearbeiten. Die Datei ` sudoers +` steuert, welche Benutzer welche Befehle ausführen können und ob Sie für bestimmte Befehle ein Kennwort benötigen.

Da "+ visudo " das Dienstprogramm zum Definieren von Regeln für den Zugriff und den privilegierten Zugriff ist, können Sie es nur als " root " ausführen. Aufgrund der Bedeutung von " sudoers +" wird die Datei nicht ohne Warnung mit Fehlern beendet.

Melden Sie sich auf dem Zielserver als "+ root" an und öffnen Sie "+ sudoers" zum Bearbeiten, indem Sie "+ visudo" ausführen:

visudo

Fügen Sie diese Zeile am Ende der Datei hinzu:

/ etc / sudoers

ALL=(ALL) NOPASSWD: /usr/bin/apt-get update, /usr/bin/stat *, /usr/sbin/checkrestart

Diese Zeile weist "+ sudo" an, dem Benutzer "+" zu erlauben, " apt-get update", "+ checkrestart" und jeden von "+ stat +" verfügbaren Befehl auszuführen, ohne ein Kennwort anzugeben.

Speichern und schließen Sie die Datei. Wenn Sie dabei einen Syntaxfehler gemacht haben, informiert Sie + visudo + und bietet an, ihn erneut zu bearbeiten oder zu beenden.

Vuls verwendet das Hilfsprogramm + checkrestart +, um nach Paketen zu suchen, die aktualisiert wurden, aber einen Neustart erfordern. Um sicherzustellen, dass der Zielserver über ihn verfügt, melden Sie sich als Benutzer ohne Rootberechtigung an und installieren Sie ihn, indem Sie den folgenden Befehl ausführen:

sudo apt install debian-goodies -y

Das ist alles, was Sie auf dem Zielserver tun müssen. Sie können sich jetzt vom Ziel abmelden und sich wieder bei Ihrem ersten Server anmelden.

Um einen neuen Server zum Scannen hinzuzufügen, öffnen Sie + config.toml + und fügen Sie die folgenden Zeilen unter der Markierung + [servers] + hinzu:

/usr/share/vuls-data/config.toml

[servers.]
host = ""
port = "22"
user = ""
keyPath = ""
scanMode = [ "deep" ] # "fast", "fast-root" or "deep"

Die obigen Zeilen dienen als Vorlage zum Hinzufügen neuer Server. Denken Sie daran, "" durch den gewünschten Namen, "" durch die IP des Zielservers, "" durch den Benutzernamen und "" durch den Pfad zum RSA-Schlüssel zu ersetzen. Vuls unterstützt keine SSH-Kennwortauthentifizierung, daher ist die Angabe eines "+ keyPath +" erforderlich.

Speichern und schließen Sie die Datei.

Als Nächstes bestätigen Sie für jeden hinzugefügten Zielserver die RSA-Schlüssel auf dem lokalen Computer. Um dies zu erreichen, melden Sie sich mit dem entsprechenden Schlüssel von Ihrem ersten Server auf dem Zielserver an:

ssh @ -i

Wenn Sie gefragt werden, ob Sie die Verbindung fortsetzen möchten, geben Sie "+ yes " ein und melden Sie sich mit " CTRL + D +" ab.

Wenn Sie eine Fehlermeldung erhalten, dass die Berechtigungen für Schlüsseldateien zu offen sind, setzen Sie sie auf "+ 600 +", indem Sie den folgenden Befehl ausführen:

chmod 600

Durch Festlegen der Berechtigungen auf "+ 600 +" wird sichergestellt, dass nur der Eigentümer die Schlüsseldatei lesen und schreiben kann.

Führen Sie den folgenden Befehl aus, um die Gültigkeit der neuen Konfiguration zu überprüfen:

vuls configtest

Dieser Befehl wird nicht ausgegeben. Wenn es irgendwelche Fehler gibt, überprüfen Sie Ihre + config.toml + anhand der Konfiguration im Tutorial.

In diesem Schritt haben Sie Ihrer Vuls-Konfiguration weitere Zielserver hinzugefügt und diese zum Scannen markiert. Im nächsten Abschnitt konfigurieren Sie Vuls so, dass regelmäßig Berichte gescannt und an einen konfigurierten Slack-Arbeitsbereich gesendet werden.

Schritt 7 - Konfigurieren des periodischen Scannens und Berichterstellens für den Ruhezustand

In diesem Abschnitt konfigurieren Sie Vuls so, dass Berichte an Slack gesendet werden, und erstellen einen Cron-Job, um regelmäßig Vuls-Scans auszuführen.

Um die Slack-Integration nutzen zu können, benötigen Sie einen eingehenden Webhook für Slack in Ihrem Arbeitsbereich. Eingehende Webhooks sind eine einfache Methode für eine Anwendung, die Echtzeitinformationen für andere Anwendungen bereitstellt. In diesem Fall konfigurieren Sie den Vuls so, dass er an Ihren Slack-Kanal meldet.

Wenn Sie noch keinen Webhook erstellt haben, müssen Sie zunächst eine App für Ihren Arbeitsbereich erstellen. Melden Sie sich dazu zuerst bei Slack an und navigieren Sie zur Erstellungsseite von app. Wählen Sie einen Namen, den Sie kennen, wählen Sie den gewünschten Arbeitsbereich aus und klicken Sie auf "App erstellen".

Sie werden zur Einstellungsseite für die neue App weitergeleitet. Klicken Sie in der linken Navigationsleiste auf * Eingehende Webhooks *.

image: https: //assets.digitalocean.com/articles/vuls1804/step6a.png [Alt left nav bar "incoming webhooks"]

Aktivieren Sie Webhooks, indem Sie die Umschalttaste neben dem Titel drücken. * Aktivieren Sie eingehende Webhooks *.

image: https://assets.digitalocean.com/articles/vuls1804/step6b.png [Alt Eingehende Web-Hooks aktivieren]

Ein neuer Abschnitt weiter unten auf der Seite wird aufgedeckt. Scrollen Sie nach unten und klicken Sie auf die Schaltfläche * Neuen Webhook zum Arbeitsbereich hinzufügen *. Wählen Sie auf der nächsten Seite den Kanal aus, an den die Berichte gesendet werden sollen, und klicken Sie auf "Autorisieren".

Sie werden zurück zur Einstellungsseite für Webhooks geleitet, und in der Tabelle wird ein neuer Webhook angezeigt. Klicken Sie auf * Kopieren *, um es in die Zwischenablage zu kopieren und zur späteren Verwendung zu notieren.

Dann öffnen Sie + config.toml + zum Bearbeiten:

sudo nano config.toml

Fügen Sie die folgenden Zeilen hinzu:

/usr/share/vuls-data/config.toml

[slack]
hookURL      = ""
channel      = "#"
authUser     = ""
#notifyUsers  = ["@username"]

Ersetzen Sie "" durch die zuvor notierte Webhook-URL, "" durch den Benutzernamen des Benutzers, der den Webhook erstellt hat, und "++" durch den Namen des gewünschten Kanals. Speichern und schließen Sie die Datei.

Um die Integration zu testen, können Sie einen Bericht erstellen, indem Sie "+ vuls report +" wie folgt ausführen:

sudo vuls report -to-slack

Es dauert einige Momente, bis Vuls ausgeführt und erfolgreich beendet wurde. Wenn ein Fehler angezeigt wird, überprüfen Sie, was Sie in den vorhergehenden Zeilen eingegeben haben.

Sie können die Slack-App überprüfen und bestätigen, dass Vuls den Bericht erfolgreich gesendet hat.

image: https://assets.digitalocean.com/articles/vuls1804/step6c.png [Alt-Header für Slack-Bericht]

Nachdem Sie die Berichterstellung konfiguriert haben, richten Sie geplante Scans ein. + cron + ist ein zeitbasierter Job Scheduler, der auf jedem Ubuntu-Rechner zu finden ist. Die Konfiguration erfolgt über die Datei "+ crontab ", die in präziser Syntax festlegt, wann ein Befehl ausgeführt werden soll. Um die Bearbeitung zu vereinfachen, verwenden Sie das Dienstprogramm " crontab ", mit dem die aktuelle " crontab +" - Datei in einem Editor geöffnet wird.

Öffnen Sie die aktuelle "+ crontab +" - Datei, indem Sie den folgenden Befehl ausführen:

crontab -e

Wählen Sie nach Aufforderung Ihren bevorzugten Texteditor aus der Liste aus.

Fügen Sie die folgende Zeile am Ende der Datei hinzu:

0 0 * * * vuls scan -config=/usr/share//config.toml; vuls report -config=/usr/share//config.toml > /dev/null 2>&1

Die obige Zeile weist + cron + an, jeden Tag mittags + vuls scan + und + vuls report + mit der angegebenen Konfiguration auszuführen (gekennzeichnet durch +0 0 * * * + in + cron + Syntax).

Speichern und schließen Sie die Datei.

In diesem Schritt haben Sie Vuls mit Ihrem Slack-Arbeitsbereich verbunden und "+ cron +" so konfiguriert, dass jeden Mittag ein Vuls-Scan ausgeführt und ein Bericht erstellt wird.

Fazit

Sie haben Vuls jetzt erfolgreich mit automatisiertem Scannen und Berichten auf einem Ubuntu 18.04-Server eingerichtet. Weitere Berichtsoptionen sowie Informationen zur Fehlerbehebung finden Sie in der Vuls documentation.

Mit Vuls wird die Schwachstellenbewertung für Produktionsumgebungen nahtloser. Alternativ zum Einrichten von + cron + ist es auch möglich, Vuls in einer https://www.digitalocean.com/community/tutorials/an-einführung-zu-kontinuierlicher-integration-auslieferung-und-bereitstellung zu verwenden [ Continuous Deployment] Workflow, da die Scans einfach sind und Sie sie nach Bedarf ausführen können. Sie können auch eine firewall mit Vuls implementieren, um den Zugriff einzuschränken und den Root-Zugriff zu reduzieren.