Vulsは、Goで記述された無料のオープンソースの脆弱性スキャナーです。これは、セキュリティの脆弱性分析とソフトウェアの更新を毎日実行するために使用されます。 Vulsは、アプリケーション、コンピューター、ミドルウェア、ネットワークデバイス、プログラミング言語ライブラリをスキャンして既知の脆弱性を検出するように特別に設計されています。サーバーが脆弱性の影響を受けると、Vulsから通知が送信されます。 Vulsは、Linux、FreeBSD、SUSE、Ubuntu、Debian、CentOS、OracleLinuxなどのすべての主要なオペレーティングシステムにインストールできます。 Vulsは、sshプロトコルを使用してリモートシステムをスキャンすることもできます。 Vulsは、高速、高速ルート、ディープの3つのスキャンモードを使用します。要件に応じていずれかを選択できます。
このチュートリアルでは、Ubuntu18.04サーバーにVulsVulnerabilityScannerをインストールして構成する方法について説明します。
- Ubuntu18.04を実行しているサーバー。
- rootパスワードがシステムに設定されています。
開始する前に、システムを最新バージョンに更新する必要があります。これを行うには、次のコマンドを実行します。
apt-get update -y
apt-get upgrade -y
サーバーが更新されたら、サーバーを再起動して変更を適用します。
VulsはSQLiteを使用して脆弱性情報を保存します。そのため、SQLiteやその他の必要なパッケージをシステムにインストールする必要があります。次のコマンドですべてをインストールできます:
apt-get install sqlite3 git debian-goodies gcc make wget -y
インストールしたら、最新バージョンのGoをダウンロードしてシステムにインストールする必要があります。
まず、次のコマンドを使用してGoソースをダウンロードします。
wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz
ダウンロードしたら、次のコマンドを使用して、ダウンロードしたファイルを/ usr/localディレクトリに解凍します。
tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz
次に、Go用にいくつかの環境変数を設定する必要があります。 / etc / profileファイルを編集して設定できます:
nano /etc/profile
ファイルの最後に次の行を追加します。
export GOPATH=$HOME/go export PATH=$PATH:/usr/local/go/bin
終了したら、ファイルを保存して閉じます。次に、次のコマンドを使用して環境変数をリロードします。
source /etc/profile
次に、次のコマンドを使用してGoのディレクトリ構造を作成します。
mkdir /root/go
mkdir -p $GOPATH/src/github.com/kotakanbe
完了したら、次のステップに進むことができます。
go-cve-dictionaryをインストールして構成する
go-cve-dictionaryは、NVD(National Vulnerabilities Database)のローカルコピーを作成するためのツールです。 Goパッケージを使用して、NVD(National Vulnerability Database)にアクセスできます。次に、それを実行し、Vulsが使用する脆弱性データを取得する必要があります。そのため、go-cve-dictionaryをダウンロードしてシステムにインストールする必要があります。
まず、ディレクトリを$ GOPATH / src / github.com / kotakanbeに変更し、次のコマンドを使用してGitリポジトリからgo-cve-dictionaryソースをダウンロードします。
cd $GOPATH/src/github.com/kotakanbe
git clone https://github.com/kotakanbe/go-cve-dictionary.git
ダウンロードが完了したら、次のコマンドを使用してインストールします。
cd go-cve-dictionary
make install
上記のコマンドは、完了するまでに少し時間がかかります。インストールが正常に完了したら、go-cve-dictionaryバイナリを/ usr / local/binディレクトリにコピーする必要があります。次のコマンドで実行できます:
cp $GOPATH/bin/go-cve-dictionary /usr/local/bin/
go-cve-dictionaryには、ログとデータを保存するためのログとデータディレクトリも必要でした。そのため、ログとデータのディレクトリを作成する必要があります。次のコマンドで作成できます:
mkdir /var/log/vuls
mkdir /usr/share/vuls-data
chmod 700 /var/log/vuls
次に、NVDから脆弱性データをフェッチし、次のコマンドを使用してsqlite3に挿入します。
for i in `seq 2002 $(date +"%Y")`; do go-cve-dictionary fetchnvd -dbpath /usr/share/vuls-data/cve.sqlite3 -years $i; done
上記のコマンドは、2002年から現在の年までのNVDデータをダウンロードします。
完了したら、次のステップに進むことができます。
goval-dictionaryのインストールと構成
goval-dictionaryは、OVAL(Open Vulnerability and Assessment Language)のローカルコピーを作成するためのツールです。 Goパッケージは、UbuntuのOVALデータベースへのアクセスも提供します。そのため、goval-dictionaryをダウンロードしてシステムにインストールする必要があります。
まず、次のコマンドを使用して、Gitリポジトリからgoval-dictionaryソースをダウンロードします。
cd $GOPATH/src/github.com/kotakanbe
git clone https://github.com/kotakanbe/goval-dictionary.git
次に、次のコマンドを使用してインストールします。
cd goval-dictionary
make install
次に、次のコマンドを使用して、それを/ usr / local/binディレクトリにコピーします。
cp $GOPATH/bin/goval-dictionary /usr/local/bin/
次に、次のコマンドを使用してUbuntu18.04のOVALデータをフェッチします。
goval-dictionary fetch-ubuntu -dbpath=/usr/share/vuls-data/oval.sqlite3 18
完了したら、次のステップに進むことができます。
次に、Vulsソースをダウンロードしてシステムにインストールする必要があります。次のコマンドを使用して、Gitリポジトリからダウンロードできます。
mkdir -p $GOPATH/src/github.com/future-architect
cd $GOPATH/src/github.com/future-architect
git clone https://github.com/future-architect/vuls.git
次に、ディレクトリをvulsに変更し、次のコマンドを使用してインストールします。
cd vuls
make install
インストールしたら、vulsバイナリを/ usr / local/binディレクトリにコピーする必要があります。次のコマンドで実行できます:
cp $GOPATH/bin/vuls /usr/local/bin/
次に、/ usr / share/vuls-dataディレクトリにvuls構成ファイルを作成する必要があります。
cd /usr/share/vuls-data
nano config.toml
次の行を追加します:
[cveDict] type = "sqlite3" SQLite3Path = "/usr/share/vuls-data/cve.sqlite3" [ovalDict] type = "sqlite3" SQLite3Path = "/usr/share/vuls-data/oval.sqlite3" [servers] [servers.localhost] host = "localhost" port = "local" scanMode = [ "fast" ]
終了したら、ファイルを保存して閉じます。
次に、次のコマンドを使用して構成ファイルをテストします。
vuls configtest
すべてが正常であれば、次の出力が表示されます。
[Sep 17 16:01:39] INFO [localhost] Validating config... [Sep 17 16:01:39] INFO [localhost] Detecting Server/Container OS... [Sep 17 16:01:39] INFO [localhost] Detecting OS of servers... [Sep 17 16:01:39] INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04 [Sep 17 16:01:39] INFO [localhost] Detecting OS of static containers... [Sep 17 16:01:39] INFO [localhost] Detecting OS of containers... [Sep 17 16:01:39] INFO [localhost] Checking Scan Modes... [Sep 17 16:01:39] INFO [localhost] Checking dependencies... [Sep 17 16:01:39] INFO [localhost] Dependencies... Pass [Sep 17 16:01:39] INFO [localhost] Checking sudo settings... [Sep 17 16:01:39] INFO [localhost] sudo ... No need [Sep 17 16:01:39] 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 [Sep 17 16:01:39] INFO [localhost] Scannable servers are below... localhost
完了したら、次のステップに進むことができます。
これで、Vulsがインストールされ、ローカルシステムをスキャンするように構成されました。ローカルシステムをスキャンするには、次のコマンドを実行します。
vuls scan
次の出力が表示されます。
[Sep 17 16:02:20] INFO [localhost] Start scanning [Sep 17 16:02:20] INFO [localhost] config: /usr/share/vuls-data/config.toml [Sep 17 16:02:20] INFO [localhost] Validating config... [Sep 17 16:02:20] INFO [localhost] Detecting Server/Container OS... [Sep 17 16:02:20] INFO [localhost] Detecting OS of servers... [Sep 17 16:02:20] INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04 [Sep 17 16:02:20] INFO [localhost] Detecting OS of static containers... [Sep 17 16:02:20] INFO [localhost] Detecting OS of containers... [Sep 17 16:02:20] INFO [localhost] Checking Scan Modes... [Sep 17 16:02:20] INFO [localhost] Detecting Platforms... [Sep 17 16:02:21] INFO [localhost] (1/1) localhost is running on other [Sep 17 16:02:21] INFO [localhost] Detecting IPS identifiers... [Sep 17 16:02:21] INFO [localhost] (1/1) localhost has 0 IPS integration [Sep 17 16:02:21] INFO [localhost] Scanning vulnerabilities... [Sep 17 16:02:21] INFO [localhost] Scanning vulnerable OS packages... [Sep 17 16:02:21] INFO [localhost] Scanning in fast mode One Line Summary ================ localhost ubuntu18.04 537 installed To view the detail, vuls tui is useful. To send a report, run vuls report -h.
脆弱性は、脆弱性レポートもログファイルに保存します。後で次のコマンドで表示できます:
vuls tui
次の画面が表示されます。
これで、Enterキーを押して、キーボードの矢印でナビゲートできます。
おめでとう!これで、Ubuntu18.04サーバーにVuls脆弱性スキャナーが正常にインストールおよび構成されました。ローカルシステムと複数のリモートシステムを簡単にスキャンして、それぞれの脆弱性レポートを生成できるようになりました。詳細については、VulsDocのVuls公式ドキュメントをご覧ください。ご不明な点がございましたら、お気軽にお問い合わせください。