vuls

提供: セキュリティ
2017年4月22日 (土) 12:10時点におけるDaemon (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

vuls とは、脆弱性スキャナーです。 vuls という名前は、 VULnerability Scanner の大文字の部分に当たります。

読み方

vuls
ばるす

概要

vulsは、Linuxに存在する脆弱性をスキャンします。 vuls は、LinuxFreeBSDで使用できます。 エージェントレスで ssh で情報を収集します。

CVE の取得

docker コンテナを利用して、CVE を取得できます。

sudo docker pull vuls/go-cve-dictionary

2002年から今年までの CVE を取得するスクリプトです。 fetch-cve.sh

#!/bin/sh
for i in `seq 2002 $(date +"%Y")`;
do
    docker run --rm -it \
        -v $PWD:/vuls \
            -v $PWD/go-cve-dictionary-log:/var/log/vuls \
                vuls/go-cve-dictionary fetchnvd -years $i; \
done

以下のコマンドで、CVE を取得できます。ダウンロードに多少時間がかかります。

sudo sh ./fetch-cve.sh

サーバの起動

sudo docker run -dt \
	--name go-cve-dictionary \
	-v $PWD:/vuls \
	-v $PWD/go-cve-dictionary-log:/var/log/vuls \
	--expose 1323 \
	-p 1323:1323 \
	vuls/go-cve-dictionary server --bind=0.0.0.0

スキャンの実行まで

スキャン用のユーザのセットアップをします。

$ sudo useradd vuls
$ sudo su vuls
$ ssh-keygen
$ cd ~vuls/.ssh
$ cat *.pub > auhotirzed_keys

これは、Ubuntu の設定の例ですが、対象ホストの sudoers に apt-get の設定を追加します。

vuls ALL=(ALL) NOPASSWD: /usr/bin/apt-get update

設定ファイル config.toml

[servers]
 
[servers.localhost]
host	= "192.168.0.2"
user	= "vuls"
keyPass	= "/root/.ssh/id_ecdsa"

vuls の Docker コンテナのイメージをダウンロードします。

sudo docker pull vuls/vuls

scan.sh

docker run --rm -it \
	-v /home/vuls/.ssh:/root/.ssh:ro \
	-v $PWD:/vuls \
	-v $PWD/vuls-log:/var/log/vuls \
	-v /etc/localtime:/etc/localtime:ro \
	vuls/vuls scan \
	-config=./config.toml


スキャンを実行してみましょう。それなりに時間がかかります。

$ sudo sh ./scan.sh
[Apr 22 02:07:52]  INFO [localhost] Start scanning
[Apr 22 02:07:52]  INFO [localhost] config: ./config.toml
[Apr 22 02:07:52]  INFO [localhost] Validating config...
[Apr 22 02:07:52]  INFO [localhost] Detecting Server/Container OS... 
[Apr 22 02:07:52]  INFO [localhost] Detecting OS of servers... 
[Apr 22 02:07:53]  INFO [localhost] (1/1) Detected: localhost: ubuntu 16.10
[Apr 22 02:07:53]  INFO [localhost] Detecting OS of containers... 
[Apr 22 02:07:53]  INFO [localhost] Detecting Platforms... 
[Apr 22 02:08:04]  INFO [localhost] (1/1) localhost is running on other
[Apr 22 02:08:04]  INFO [localhost] Scanning vulnerabilities... 
[Apr 22 02:08:04]  INFO [localhost] Open boltDB: /vuls/cache.db
[Apr 22 02:08:04]  INFO [localhost] Scanning vulnerable OS packages...
[Apr 22 02:08:04]  INFO [localhost] apt-get update...
 
省略
 
[Apr 22 02:10:19]  INFO [localhost] (230/230) Scanned grub-pc-2.02~beta2-36ubuntu11 : []
 
 
 
One Line Summary
======UNIQ1936c19b55db53e7-h-3--QINU==========
localhost	ubuntu16.10	178 CVEs	230 updatable packages
 
 
 
 
To view the detail, vuls tui is useful.
To send a report, run vuls report -h.

レポート

レポートは、さまざまな形式で出力できます。 -h でヘルプを表示できます。

sudo docker run --rm -it \
	-v /home/vuls/.ssh:/root/.ssh:ro \
	-v $PWD:/vuls \
	-v $PWD/vuls-log:/var/log/vuls \
	-v /etc/localtime:/etc/localtime:ro \
	vuls/vuls report --lang ja \
	-config=./config.toml

関連項目




スポンサーリンク