Takmer raketový štart v obľúbenosti mal projekt Vuls, čo je skratka VULnerability Scanner na GitHub-e. Ten by mal podať pomocnú ruku systémovým administrátorom, ktorí spravujú linuxové distribúcie čo sa týka bezpečnosti a potencionálnej zraniteľnosti takýchto systémov.

Vuls je napísaný v Go a skladá sa z dvoch častí – serverovej, ktorá obsahuje databázu CVE (Common Vulnerabilities and Exposures
) a z klientskej, ktorá sa pripája na vzdialené servre. Pre prístup sa používa SSH, čiže sa to dá považovať agentless riešenie. Keďže ide o skenovanie „z vnútra“ tak odpadá aj možnosť zneužitia.

Inštalácia je pomerne jednoduchá, podporované sú posledné verzie obľúbených distribúcii ako Debian, Ubuntu, CentOS a pod. Ja som Vuls testoval s Ubuntu 14.04.

V prvom rade mať treba nainštalované Go

# wget https://storage.googleapis.com/golang/go1.6.linux-amd64.tar.gz
# sudo tar -C /usr/local -xzf go1.6.linux-amd64.tar.gz
# mkdir $HOME/go

dať vedieť, kde je Go

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

doinštalovať potrebné binárky

# sudo apt-get install sqlite git gcc

vygenerovať SSH kľúč s ktorým sa budete prihlasovať na skenované servre

# ssh-keygen -t rsa
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# chmod 600 ~/.ssh/authorized_keys

Následne je nutné nainštalovať serverovú časť a stiahnuť CVE. Mne to trvalo niečo cez hodinu, ale je to reálne aj za 10 minút

# sudo mkdir /var/log/vuls
# sudo chown alian /var/log/vuls
# sudo chmod 700 /var/log/vuls
# go get github.com/kotakanbe/go-cve-dictionary
# go-cve-dictionary server

po uložení do databázy je nutné ešte raz spustiť server, ktorý začne počúvať na porte 1323

# go-cve-dictionary server

Server je ready, teraz treba nakonfigurovať skenované systémy. Ako príklad môže byž použitý localhost. Vuls číta konfiguráciu hostov zo súbora ~/config.toml (TOML format) a v mojom prípade vyzerá nejako takto

[servers]

[servers.localhost]
host         = "127.0.0.1"
port        = "22"
user        = "alian"
keyPath     = "/home/alian/.ssh/id_rsa"

teraz treba dať o konfigu vedieť

# vuls prepare

a je možné spustiť samotné skenovanie, ktoré je pomerne rýchle

# vuls scan

okrem štandardného výstupu na konzole je možné si pozrie výsledky cez terminálové rozhranie

# vuls tui

Ešte by som doplnil, že používateľ ktorý sa prihlasuje cez SSH potrebuje na vzdialenom serveri plný prístup. Toto je z môjho pohľadu pri takomto novom, aj keď otvorenom projekte celkom riskantné a na produkčné servre by som to nedával. Skôr ako zaujímavý projekt do budúcna, ktorý sa oplatí sledovať.

No a keďže ide o nástroj pre moderného admina, tak Vuls vie okrem notifikačných mailov posielať aj správičky na Slack. Na záver by som len uviedol, že Vuls zraniteľnosť len testuje ale nefixuje. To je stále na vás.