Ricerca nel sito web

Come utilizzare Vuls come scanner di vulnerabilità su Ubuntu 22.04


L'autore ha selezionato il programma Write for DOnations.

introduzione

Database nazionale delle vulnerabilità (NVD). A corto di risorse, Vuls può scansionare più sistemi contemporaneamente e inviare report via e-mail o Slack. Ha tre modalità di scansione (veloce, radice veloce e profonda), che puoi selezionare in base alla situazione.

Vuls non è un ampio scanner di sicurezza IT; ad esempio, non monitora il traffico di rete né protegge dagli attacchi di accesso di forza bruta. Tuttavia, Vuls fornisce un modo per automatizzare la segnalazione delle vulnerabilità per i pacchetti Linux. Quando i database utilizzati da Vuls vengono informati di una correzione a determinate vulnerabilità, Vuls inserirà anche queste informazioni di correzione nei suoi report. Durante la generazione dei report, Vuls assegna la priorità alle vulnerabilità più urgenti utilizzando il sistema di classificazione stabilito dal database.

In questo tutorial, distribuirai Vul su un server Ubuntu 22.04. Questo processo include la creazione di Vul e delle sue dipendenze dal codice sorgente, la configurazione della scansione e del reporting a Slack e, facoltativamente, la connessione ai computer di destinazione per abilitare la scansione remota. Alla fine, avrai un sistema automatizzato di segnalazione delle vulnerabilità che ti avvisa delle vulnerabilità ed elimina la necessità di controlli manuali.

Prerequisiti

Per completare questo tutorial, avrai bisogno di:

  • Un server con almeno 2 GB di RAM che esegue Ubuntu 22.04 con accesso root e un account secondario non root. È possibile configurarlo seguendo questa guida all'installazione iniziale del server. Per questo tutorial, l'utente non root è sammy.
  • Uno spazio di lavoro Slack di cui fai parte. Per sapere come creare uno spazio di lavoro, visita i documenti ufficiali.
  • (Facoltativo) Più server che eseguono (preferibilmente) Ubuntu 22.04 con accesso root e un account secondario non root, se si desidera configurare Vuls per scansionarli da remoto. In questo tutorial, l'account secondario è sammy-shark. L'account secondario deve avere una chiave SSH configurata per l'autenticazione, cosa che puoi fare seguendo la documentazione del prodotto Vuls.< /li>

Passaggio 1: installazione delle dipendenze

In questa sezione, creerai una cartella per archiviare i dati Vuls, installerai l'ultima versione del linguaggio di programmazione Go e installerai altri pacchetti richiesti da Vuls e dalle sue dipendenze.

Per questo tutorial, archivierai tutti i dati relativi a Vuls nella directory /usr/share/vuls-data. Crealo eseguendo il seguente comando:

  1. sudo mkdir /usr/share/vuls-data

Per renderlo accessibile a sammy, esegui il seguente comando:

  1. sudo chown -R sammy /usr/share/vuls-data

Ora hai creato la cartella vuls-data, che sarà il tuo spazio di lavoro. Prima di continuare a installare i pacchetti richiesti, aggiorna prima la cache del gestore pacchetti:

  1. sudo apt update

Per scaricare e compilare le dipendenze, installerai git, gcc, make, sqlite, debian-goodies e wget. sqlite è un sistema di database, che utilizzerai qui per archiviare le informazioni sulla vulnerabilità. debian-goodies contiene l'utilità checkrestart, che fornisce informazioni su quali pacchetti possono e devono essere riavviati in un dato momento.

Puoi installarli tutti in un comando:

  1. sudo apt install sqlite git debian-goodies gcc make wget -y

Ora hai installato i pacchetti richiesti e puoi procedere con l'installazione di Go e dei relativi programmi che Vuls utilizzerà.

Installazione di Go

Installa Go utilizzando il gestore di pacchetti snap eseguendo il seguente comando:

  1. sudo snap install go --classic

Usa snap per installare Go poiché installa l'ultima versione della lingua, a differenza di apt che potrebbe installare una versione precedente. L'utilizzo di una versione precedente non è consigliato e potrebbe impedire il completamento di questo tutorial.

Per funzionare, Go richiede alcune variabili di ambiente che imposterai: GOPATH e PATH. GOPATH specifica la directory di lavoro per Go. PATH, che contiene le directory in cui sono posizionati i programmi, deve essere esteso per indicare al sistema dove trovare Go stesso.

Queste variabili di ambiente devono essere impostate ogni volta che l'utente accede. Per automatizzare ciò, creerai un nuovo file eseguibile chiamato go-env.sh in /etc/profile.d. Ciò comporterà l'esecuzione della directory ogni volta che un utente accede.

Crea go-env.sh utilizzando il tuo editor di testo:

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

Aggiungere i seguenti comandi al file:

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

Il comando export imposta la variabile d'ambiente data sul valore desiderato. Qui lo usi per popolare GOPATH e PATH con i valori appropriati.

Salva e chiudi il file.

Attualmente, go-env.sh non è eseguibile. Per risolvere questo problema, contrassegnalo come eseguibile eseguendo il seguente comando:

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

Per evitare di dover effettuare nuovamente l'accesso, puoi ricaricare go-env.sh eseguendo:

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

Il comando source ricarica il file specificato nella shell corrente preservandone lo stato.

Ora hai installato la lingua Go, impostato le sue variabili di ambiente e installato i pacchetti che ti serviranno in seguito. Successivamente, scaricherai e compilerai i programmi Go richiesti da Vuls. Questi programmi sono go-cve-dictionary e goval-dictionary, che Vuls utilizza per interrogare i database delle vulnerabilità.

Installazione ed esecuzione del dizionario go-cve

In questa sezione, scaricherai e compilerai go-cve-dictionary, un pacchetto Go che fornisce l'accesso al National Vulnerability Database. Quindi, lo eseguirai per recuperare i dati sulla vulnerabilità che Vuls può utilizzare. L'NVD è l'archivio del governo degli Stati Uniti delle vulnerabilità della sicurezza informatica segnalate pubblicamente, contenente ID di vulnerabilità (CVE - Vulnerabilità ed esposizioni comuni), riepiloghi e analisi dell'impatto ed è disponibile in un formato leggibile dalla macchina.

Go memorizza i pacchetti sotto $GOPATH/src/. Puoi estenderlo ulteriormente con l'uso di sottodirectory per annotare l'origine. Ad esempio, i pacchetti da GitHub creati dall'utente example-user verrebbero archiviati in $GOPATH/src/github.com/example-user .

Per prima cosa installerai go-cve-dictionary clonando il pacchetto Go da GitHub e compilandolo successivamente.

Inizia creando una directory per memorizzarlo, secondo il percorso di esempio:

  1. mkdir -p $GOPATH/src/github.com/vulsio

Passare ad esso eseguendo:

  1. cd $GOPATH/src/github.com/vulsio

Ora clonerai go-cve-dictionary da GitHub al tuo server eseguendo:

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

Quindi, vai alla radice del pacchetto:

  1. cd go-cve-dictionary

Infine, compilalo e installalo eseguendo il seguente comando:

  1. make install

Tieni presente che il completamento di questo comando potrebbe richiedere del tempo.

Per renderlo disponibile a livello di sistema, copialo in /usr/local/bin:

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

go-cve-dictionary richiede l'accesso a una directory di output del log; per impostazione predefinita, è /var/log/vuls. Crealo eseguendo:

  1. sudo mkdir /var/log/vuls

Al momento, la directory dei log è leggibile da tutti. Limita l'accesso all'utente corrente con il seguente comando:

  1. sudo chmod 700 /var/log/vuls

L'impostazione dei flag di autorizzazione su 700 limita l'accesso solo al proprietario.

Per renderlo accessibile a sammy o a un altro utente, eseguire il seguente comando:

  1. sudo chown -R sammy /var/log/vuls

Successivamente, recupererai i dati sulla vulnerabilità dall'NVD e li memorizzerai nel tuo spazio di lavoro Vuls (/usr/share/vuls-data):

  1. go-cve-dictionary fetch nvd --dbpath /usr/share/vuls-data/cve.sqlite3

Questo comando recupererà i dati sulla vulnerabilità NVD dall'anno 2002 all'anno corrente e li memorizzerà in un database in /usr/share/vuls-data.

Nota: questo comando richiederà molto tempo per terminare e potrebbe non riuscire se il tuo server ha meno di 2 GB di RAM.

In questa sezione, hai scaricato e installato go-cve-dictionary e poi recuperato i dati NVD per Vuls da utilizzare. Ora scaricherai e installerai goval-dictionary e recupererai i dati OVAL per Ubuntu.

Installazione ed esecuzione del dizionario goval

In questa sezione, scaricherai e compilerai goval-dictionary, un pacchetto Go che fornisce l'accesso al database OVAL per Ubuntu. Lo eseguirai quindi e recupererai i dati sulla vulnerabilità per Vuls da utilizzare. OVAL sta per Open Vulnerability and Assessment Language, che è un linguaggio aperto utilizzato per esprimere controlli per determinare se esistono vulnerabilità software su un determinato sistema.

Passare alla cartella $GOPATH/src/github.com/vulsio:

  1. cd $GOPATH/src/github.com/vulsio

Clona il pacchetto da GitHub eseguendo il seguente comando:

  1. git clone https://github.com/vulsio/goval-dictionary.git

Entra nella cartella del pacchetto:

  1. cd goval-dictionary

Compilalo e installalo con make:

  1. make install

Copialo in /usr/local/bin per renderlo accessibile a livello globale:

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

Quindi, recupera i dati OVAL per Ubuntu 22 eseguendo il seguente comando:

  1. sudo goval-dictionary fetch ubuntu --dbpath=/usr/share/vuls-data/oval.sqlite3 22

Qui, hai scaricato e installato goval-dictionary e poi hai recuperato i dati OVAL per Ubuntu. Successivamente, scaricherai e installerai gost e recupererai i dati del tracker di sicurezza Debian.

Installazione ed esecuzione di gost

In questa sezione, scaricherai e compilerai gost, un pacchetto Go che fornisce l'accesso al Debian security bug tracker. Lo eseguirai quindi e recupererai i dati sulla vulnerabilità per Vuls da utilizzare. Il tracker di sicurezza di Ubuntu raccoglie tutte le informazioni sullo stato di vulnerabilità dei pacchetti distribuiti con Ubuntu.

Archivierai questo pacchetto nella stessa directory di prima. Passare ad esso eseguendo il seguente comando:

  1. cd $GOPATH/src/github.com/vulsio

Clonare il pacchetto da GitHub eseguendo:

  1. git clone https://github.com/vulsio/gost.git

Al termine, accedi alla cartella del pacchetto:

  1. cd gost

Compilalo e installalo con make:

  1. make install

Copialo in /usr/local/bin per renderlo accessibile a livello globale:

  1. sudo cp $GOPATH/bin/gost /usr/local/bin

Quindi, crea una directory del file di log per gost:

  1. sudo mkdir /var/log/gost

Limita l'accesso all'utente corrente con il seguente comando:

  1. sudo chmod 700 /var/log/gost

L'impostazione dei flag di autorizzazione su 700 limita l'accesso solo al proprietario. Per renderlo accessibile a sammy o a un altro utente, eseguire il seguente comando:

  1. sudo chown -R sammy /var/log/gost

Quindi, recupera i dati del tracker di sicurezza di Ubuntu eseguendo:

  1. gost fetch ubuntu --dbpath=/usr/share/vuls-data/gost.sqlite3

L'output potrebbe essere lungo. È possibile che non venga cancellato nel terminale, nel qual caso puoi eseguire il comando clear.

Hai appena scaricato e installato gost, quindi recuperato i dati per Debian. Nel passaggio successivo, scaricherai e installerai Vuls.

Passaggio 2: download e configurazione di Vuls

Con tutte le dipendenze installate, ora scaricherai e compilerai Vuls dal codice sorgente. Lo configurerai anche per scansionare il computer locale.

Crea una nuova directory che contenga il percorso del repository Vuls con questo comando:

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

Naviga verso di esso:

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

Clonare Vuls da GitHub eseguendo il seguente comando:

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

Entra nella cartella del pacchetto:

  1. cd vuls

Compilalo e installalo contemporaneamente eseguendo:

  1. make install

Ricorda che il completamento di questo comando potrebbe richiedere del tempo.

Copialo in /usr/local/bin per renderlo accessibile a livello globale:

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

Ora creerai un file di configurazione per Vuls. Torna a /usr/share/vuls-data:

  1. cd /usr/share/vuls-data

Vuls memorizza la sua configurazione in un file TOML, che chiamerai config.toml. Crealo usando il tuo editor di testo:

  1. sudo nano config.toml

Inserisci la seguente configurazione:

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

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

[gost]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/gost.sqlite3"

[servers]

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

Le prime due sezioni di questa configurazione (cveDict, ovalDict e gost) indirizzano Vuls ai database delle vulnerabilità che hai appena aggiunto. La sezione servers segna l'inizio delle informazioni relative al server. Sezioni separate raggrupperanno le informazioni su ciascun server. L'unico server che Vuls eseguirà la scansione con questa configurazione delineata è il server locale: localhost.

Vuls offre quattro modalità di scansione:

  • Modalità veloce (impostazione predefinita) esegue la scansione senza privilegi di root, non ha dipendenze ed è molto leggera sul server di destinazione.
  • La
  • modalità root veloce esegue la scansione con i privilegi di root e può rilevare i processi aggiornati ma non ancora riavviati.
  • La
  • modalità di scansione profonda è uguale alla modalità di root veloce, ma controlla i log delle modifiche, il che può portare a un carico elevato sul server di destinazione.
  • La
  • modalità offline esegue la scansione della macchina senza accesso a Internet e può essere utilizzata insieme ad altre modalità.

Salva e chiudi il file.

Per verificare la validità del file di configurazione, eseguire il seguente comando:

  1. vuls configtest

Riceverai un output simile a questo:

Output
[Jan 5 20:24:29] INFO [localhost] vuls-v0.22.0-build-20230105_201926_554ecc4 [Jan 5 20:24:29] INFO [localhost] Validating config... [Jan 5 20:24:29] INFO [localhost] Detecting Server/Container OS... [Jan 5 20:24:29] INFO [localhost] Detecting OS of servers... [Jan 5 20:24:29] INFO [localhost] (1/1) Detected: localhost: ubuntu 22.10 [Jan 5 20:24:29] INFO [localhost] Detecting OS of containers... [Jan 5 20:24:29] INFO [localhost] Checking Scan Modes... [Jan 5 20:24:29] INFO [localhost] Checking dependencies... [Jan 5 20:24:29] INFO [localhost] Dependencies... Pass [Jan 5 20:24:29] INFO [localhost] Checking sudo settings... [Jan 5 20:24:29] INFO [localhost] sudo ... No need [Jan 5 20:24:29] 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 [Jan 5 20:24:29] INFO [localhost] Scannable servers are below... localhost

Hai inserito correttamente la configurazione e Vuls ha rilevato che può eseguire la scansione del server locale.

Hai installato e configurato Vuls per scansionare il server locale. Nel passaggio successivo, eseguirai una scansione locale e visualizzerai il report generato.

Passaggio 3: eseguire una scansione locale

In questo passaggio, eseguirai una scansione locale e quindi visualizzerai il rapporto di vulnerabilità generato. A questo punto, hai configurato solo il server locale, che Vuls ha rilevato correttamente nell'ultimo passaggio. La modalità di scansione predefinita, se non specificata esplicitamente, è fast.

Per eseguire una scansione, esegui il seguente comando:

  1. vuls scan

L'output sarà simile a questo:

[Jan  5 20:26:14]  INFO [localhost] vuls-v0.22.0-build-20230105_201926_554ecc4
[Jan  5 20:26:14]  INFO [localhost] Start scanning
[Jan  5 20:26:14]  INFO [localhost] config: /usr/share/vuls-data/config.toml
[Jan  5 20:26:14]  INFO [localhost] Validating config...
[Jan  5 20:26:14]  INFO [localhost] Detecting Server/Container OS...
[Jan  5 20:26:14]  INFO [localhost] Detecting OS of servers...
[Jan  5 20:26:14]  INFO [localhost] (1/1) Detected: localhost: ubuntu 22.10
[Jan  5 20:26:14]  INFO [localhost] Detecting OS of containers...
[Jan  5 20:26:14]  INFO [localhost] Checking Scan Modes...
[Jan  5 20:26:14]  INFO [localhost] Detecting Platforms...
[Jan  5 20:26:14]  INFO [localhost] (1/1) localhost is running on other
[Jan  5 20:26:14]  INFO [localhost] Scanning OS pkg in fast mode
[Jan  5 20:26:14]  INFO [localhost] Scanning listen port...
[Jan  5 20:26:14]  INFO [localhost] Using Port Scanner: Vuls built-in Scanner


Scan Summary
================
localhost       ubuntu22.10     695 installed





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

Vuls ha registrato ciò che ha fatto durante il processo. Per visualizzare un rapporto sulle vulnerabilità identificate, eseguire:

  1. vuls tui

Vuls divide la visualizzazione del rapporto in quattro pannelli:

  • Le macchine scansionate, in alto a sinistra, elencano le macchine scansionate da Vuls.
  • Vulnerabilità rilevate, situato a destra dell'elenco delle macchine, mostra le vulnerabilità Vul trovate nei pacchetti installati.
  • Informazioni dettagliate, che occupano la parte sinistra dello schermo, mostrano informazioni dettagliate sulla vulnerabilità, estratte dai database.
  • I pacchetti interessati, posizionati a destra delle informazioni dettagliate, mostrano quali sono le versioni dei pacchetti interessati e se esiste una versione corretta.

Puoi scorrere il cursore attraverso ciascuno dei pannelli premendo INVIO. Puoi navigare all'interno di ciascun pannello utilizzando le frecce della tastiera. Quando hai finito, premi CTRL+C per uscire.

In questo passaggio, hai eseguito una scansione locale e ispezionato i risultati. Nella sezione successiva (facoltativa), configurerai Vul per scansionare più macchine target.

Passaggio 4 — (Facoltativo) Configurazione di più computer di destinazione

In questa sezione, configurerai Vul per scansionare più macchine target. Questo processo comporta la configurazione di /etc/sudoers sui computer di destinazione e la configurazione di Vul per eseguire la scansione di tale destinazione.

Puoi aggiungere tutti i server che desideri, a condizione che tu abbia l'indirizzo IP del server di destinazione, l'accesso root al server di destinazione e un account disponibile sul server di destinazione (sammy-shark in questo tutorial).

È possibile utilizzare solo un account utente non root sul server di destinazione per la scansione in modalità rapida. Per abilitare la scansione in modalità root veloce e profonda, dovrai modificare il file /etc/sudoers sui computer di destinazione. Il file sudoers controlla quali utenti possono eseguire quali comandi e se è necessaria una password per i comandi specificati.

visudo è l'utilità per definire le regole per l'accesso e l'accesso privilegiato, e puoi eseguirla solo come root. A causa dell'importanza di sudoers, il file darà un avviso se tenti di uscire con errori.

Sul server di destinazione, accedi come root e apri sudoers per la modifica eseguendo visudo:

  1. visudo

Aggiungi questa riga alla fine del file:

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

Questa riga indica a sudo di consentire all'utente sammy-shark di eseguire apt-get update, checkrestart e ogni comando disponibile da stat, senza fornire una password.

Salva e chiudi il file. Se hai commesso un errore di sintassi durante il processo, visudo ti informerà e ti offrirà di modificarlo di nuovo o uscire.

Nota: aggiungendo l'utente sammy-shark in sudoers, consenti a Vuls di eseguire la scansione utilizzando le modalità root veloce e profonda. Se vuoi consentire queste modalità anche per la macchina locale (localhost), puoi modificare sudoers su localhost. Per ulteriori informazioni su sudoers, puoi rivedere il nostro tutorial su Come modificare i file Sudoers.

Vuls utilizza l'utility checkrestart per verificare la presenza di pacchetti aggiornati ma che richiedono il riavvio. Per assicurarti che il server di destinazione lo abbia, installalo sui tuoi server secondari eseguendo il seguente comando:

  1. apt install debian-goodies -y

Questo è tutto ciò che devi fare sul server di destinazione. Ora puoi disconnetterti dalla destinazione e tornare al tuo server iniziale.

Per aggiungere un nuovo server per la scansione, apri config.toml e aggiungi le seguenti righe sotto il segno [servers]:

[servers.target_name]
host = "target_ip"
port = "22"
user = "account_username"
keyPath = "/home/sammy/.ssh/id_rsa"
scanMode = [ "deep" ] # "fast", "fast-root" or "deep"

Le righe sopra sono un modello per l'aggiunta di nuovi server. Ricorda di sostituire target_name con il nome desiderato, target_ip con l'IP del server di destinazione, < mark>account_username con il nome utente (questo tutorial utilizza sammy-shark) e fornisci il percorso della tua chiave RSA privata per l'utente sammy. Vuls non supporta l'autenticazione con password SSH, quindi è necessario specificare un keyPath.

Salva e chiudi il file.

Successivamente, per ogni server di destinazione che hai aggiunto, confermerai le chiavi RSA sulla macchina locale. Per raggiungere questo obiettivo, accederai al server di destinazione dal tuo primo server con la chiave appropriata, in questo modo:

  1. ssh sammy-shark@target_ip -i /home/sammy/.ssh/id_rsa

Ricordati di inserire il percorso della tua chiave RSA privata. Quando ti viene chiesto se desideri continuare a connetterti, inserisci yes, quindi disconnettiti premendo CTRL + D.

Nota: se ricevi un errore relativo ai permessi dei file chiave troppo aperti, impostali su 600 eseguendo il seguente comando:

  1. chmod 600 account_rsa_key

L'impostazione dei permessi su 600 garantisce che solo il proprietario possa leggere e scrivere il file chiave.

Per verificare la validità della nuova configurazione, eseguire il seguente comando:

  1. vuls configtest

L'output riporterà in dettaglio tutto ciò che Vuls ha controllato, come dipendenze, accesso da superutente e versioni del sistema operativo. Se ci sono errori, confronta il tuo config.toml con la configurazione fornita in precedenza in questa sezione.

In questo passaggio, hai aggiunto più server alla tua configurazione Vuls, contrassegnandoli per la scansione. Nella sezione successiva, configurerai Vul per la scansione periodica e l'invio di report a un'area di lavoro Slack.

Passaggio 5: configurazione della scansione periodica e dei rapporti su Slack

Ora configurerai Vuls per inviare rapporti a Slack e imposterai un processo cron per eseguire scansioni Vuls periodicamente.

Per utilizzare l'integrazione di Slack, devi disporre di un webhook in entrata su Slack per il tuo spazio di lavoro. I webhook in entrata consentono a un'applicazione di fornire informazioni in tempo reale da altre applicazioni. In questo caso, configurerai Vuls per segnalare al tuo canale Slack.

Se non hai creato un webhook, devi prima creare un'app per il tuo spazio di lavoro. Per fare ciò, prima accedi a Slack e vai alla pagina di creazione dell'app di Slack. Seleziona un nome che riconoscerai, seleziona l'area di lavoro desiderata e premi Crea app.

Verrai reindirizzato alla pagina delle impostazioni per la nuova app. Seleziona la voce Webhook in entrata nella barra di navigazione a sinistra.

Abilita i webhook spostando il pulsante di commutazione accanto al titolo Attiva webhook in entrata su On.

Una nuova sezione verrà caricata sulla pagina una volta attivata. Scorri fino a e quindi premi il pulsante Aggiungi nuovo webhook all'area di lavoro. Si aprirà una nuova pagina per richiedere l'accesso al tuo spazio di lavoro. Selezionare il canale a cui si desidera inviare i rapporti e premere Consenti.

Verrai reindirizzato alla pagina delle impostazioni per i webhook e un nuovo webhook verrà ora elencato nella tabella sotto URL webhook. Fare clic su Copia per copiare l'URL e prenderne nota per un uso successivo.

Di nuovo nel tuo terminale per il tuo server iniziale, apri config.toml per la modifica:

  1. sudo nano config.toml

Aggiungi le seguenti righe:

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

Sostituisci your_hook_URL con l'URL del webhook annotato, your_channel_name con il nome del canale desiderato e your_username con il nome utente dell'utente Slack che ha creato il webhook. Salva e chiudi il file.

Per testare l'integrazione, puoi generare un report eseguendo vuls report:

  1. sudo vuls report -to-slack

Vuls impiegherà alcuni istanti per correre ed uscire. Se restituisce un errore, controlla ciò che hai inserito rispetto alle righe precedenti.

Controlla la tua app Slack per confermare che Vuls ha inviato correttamente il rapporto al canale indicato.

Ora che hai configurato i rapporti, puoi configurare le scansioni pianificate. cron è un job scheduler basato sul tempo che viene fornito con ogni macchina Ubuntu. È configurato tramite il file crontab, che definisce con una sintassi precisa quando deve essere eseguito un comando. Per facilitare la modifica, utilizzerai l'utility crontab, che apre il file crontab corrente in un editor.

Apri il file crontab corrente eseguendo il seguente comando:

  1. crontab -e

Quando richiesto, seleziona il tuo editor di testo preferito dall'elenco.

Aggiungi la seguente riga alla fine del file:

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

Questa riga indica a cron di eseguire vuls scan e vuls report con la configurazione data ogni giorno a mezzogiorno (indicato da 0 0 * * * nella sintassi cron).

Salva e chiudi il file.

In questo passaggio, hai connesso Vuls al tuo spazio di lavoro Slack e configurato cron per eseguire una scansione Vuls e segnalarla a Slack ogni giorno a mezzogiorno.

Conclusione

Ora hai configurato correttamente Vuls con scansione e report automatici su un server Ubuntu 22.04. Per ulteriori opzioni di segnalazione e risoluzione dei problemi, visita la documentazione di Vuls.

Con Vuls, la valutazione della vulnerabilità diventa più fluida negli ambienti di produzione. In alternativa all'impostazione di cron, è anche possibile utilizzare Vuls in un firewall con Vuls per limitare l'accesso e ridurre la necessità dell'accesso root.