「vuls」の版間の差分

提供: セキュリティ
移動: 案内検索
 
行44: 行44:
 
vuls/go-cve-dictionary server --bind=0.0.0.0
 
vuls/go-cve-dictionary server --bind=0.0.0.0
 
</syntaxhighlight>
 
</syntaxhighlight>
== 使い方 ==
+
== スキャンの実行まで ==
 
スキャン用のユーザのセットアップをします。
 
スキャン用のユーザのセットアップをします。
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
行52: 行52:
 
$ cd ~vuls/.ssh
 
$ cd ~vuls/.ssh
 
$ cat *.pub > auhotirzed_keys
 
$ cat *.pub > auhotirzed_keys
 +
</syntaxhighlight>
 +
 +
これは、[[Ubuntu]] の設定の例ですが、対象ホストの [[sudoers]] に apt-get の設定を追加します。
 +
<syntaxhighlight lang="bash">
 +
vuls ALL=(ALL) NOPASSWD: /usr/bin/apt-get update
 
</syntaxhighlight>
 
</syntaxhighlight>
  
行69: 行74:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
scan.sh
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
docker run --rm -it \
 
docker run --rm -it \
行76: 行82:
 
-v /etc/localtime:/etc/localtime:ro \
 
-v /etc/localtime:/etc/localtime:ro \
 
vuls/vuls scan \
 
vuls/vuls scan \
 +
-config=./config.toml
 +
</syntaxhighlight>
 +
 +
 +
スキャンを実行してみましょう。それなりに時間がかかります。
 +
<syntaxhighlight lang="bash">
 +
$ 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
 +
================
 +
localhost ubuntu16.10 178 CVEs 230 updatable packages
 +
 +
 +
 +
 +
To view the detail, vuls tui is useful.
 +
To send a report, run vuls report -h.
 +
</syntaxhighlight>
 +
== レポート ==
 +
レポートは、さまざまな形式で出力できます。 -h でヘルプを表示できます。
 +
<syntaxhighlight lang="bash">
 +
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
 
-config=./config.toml
 
</syntaxhighlight>
 
</syntaxhighlight>

2017年4月22日 (土) 12:10時点における最新版

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
======UNIQ43b46a28a191e796-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

関連項目