「vuls」の版間の差分
提供: セキュリティ
(ページの作成:「vuls とは、脆弱性スキャナーです。 vuls という名前は、 '''VUL'''nerability '''S'''canner の大文字の部分に当たります。 '''読み方'...」) |
|||
(同じ利用者による、間の1版が非表示) | |||
行10: | 行10: | ||
エージェントレスで [[ssh]] で情報を収集します。 | エージェントレスで [[ssh]] で情報を収集します。 | ||
− | == | + | == CVE の取得 == |
+ | docker コンテナを利用して、CVE を取得できます。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo docker pull vuls/go-cve-dictionary | sudo docker pull vuls/go-cve-dictionary | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ||
+ | 2002年から今年までの CVE を取得するスクリプトです。 | ||
+ | fetch-cve.sh | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
+ | #!/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 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | 以下のコマンドで、CVE を取得できます。ダウンロードに多少時間がかかります。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | sudo sh ./fetch-cve.sh | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | サーバの起動 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | 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 | ||
+ | </syntaxhighlight> | ||
+ | == スキャンの実行まで == | ||
+ | スキャン用のユーザのセットアップをします。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ sudo useradd vuls | ||
+ | $ sudo su vuls | ||
+ | $ ssh-keygen | ||
+ | $ cd ~vuls/.ssh | ||
+ | $ cat *.pub > auhotirzed_keys | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | これは、[[Ubuntu]] の設定の例ですが、対象ホストの [[sudoers]] に apt-get の設定を追加します。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | vuls ALL=(ALL) NOPASSWD: /usr/bin/apt-get update | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | 設定ファイル config.toml | ||
+ | <syntaxhighlight lang="ini"> | ||
+ | [servers] | ||
+ | |||
+ | [servers.localhost] | ||
+ | host = "192.168.0.2" | ||
+ | user = "vuls" | ||
+ | keyPass = "/root/.ssh/id_ecdsa" | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | vuls の [[Docker]] コンテナのイメージをダウンロードします。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | sudo docker pull vuls/vuls | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | scan.sh | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | 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 | ||
+ | </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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
2017年4月22日 (土) 12:10時点における最新版
vuls とは、脆弱性スキャナーです。 vuls という名前は、 VULnerability Scanner の大文字の部分に当たります。
読み方
- vuls
- ばるす
概要
vulsは、Linuxに存在する脆弱性をスキャンします。 vuls は、LinuxやFreeBSDで使用できます。 エージェントレスで 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 ======UNIQ70dafe9fe54169dc-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