Vulsインストール
Vagrant上のCentOS6にインストールを行ったメモ
公式のインストール方法:Vuls: VULnerability Scanner
SSHの設定をする
ローカルホストにSSH接続できるようにする。
SSHキーペアを作成し、公開鍵をauthorized_keysに追加する。
$ ssh-keygen -t rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys
Vulsに必要な以下のソフトウェアをインストールする。
– SQLite3
– git v2
– gcc
– go v1.7.1 or later
※gitはCentOS6のデフォルトだと1.7とかなので、そのまま入れてはいけない
How to Install Git 2.8.1 on CentOS/RHEL 7/6/5 & Fedora 23/22
$ sudo yum -y install sqlite git gcc $ wget https://storage.googleapis.com/golang/go1.7.1.linux-amd64.tar.gz <-時間がかかる $ sudo tar -C /usr/local -xzf go1.7.1.linux-amd64.tar.gz $ mkdir $HOME/go
/etc/profile.d/goenv.sh を作成し、下記を追加する。
$ sudo vi /etc/profile.d/goenv.sh $ cat /etc/profile.d/goenv.sh export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
カレントシェルに上記環境変数をセットする。
$ source /etc/profile.d/goenv.sh
go-cve-dictionaryのインストール
$ sudo mkdir /var/log/vuls $ sudo chown mogu /var/log/vuls $ sudo chmod 700 /var/log/vuls $ mkdir -p $GOPATH/src/github.com/kotakanbe $ cd $GOPATH/src/github.com/kotakanbe $ git clone https://github.com/kotakanbe/go-cve-dictionary.git $ cd go-cve-dictionary $ make install
バイナリは、`$GOPATH/bin`いかに生成される
NVDから脆弱性データベースを取得する。
これは実行ユーザのホームディレクトリに「vuls」というディレクトリを掘ってその中に取得する方がやりやすい。
$ pwd /home/mogu $ mkdir vuls $ cd vuls $ for i in {2002..2016}; do go-cve-dictionary fetchnvd -years $i; done $ pwd /home/mogu/vuls $ ll total 680368 -rw-r--r-- 1 mogu mogu 592179200 Oct 21 10:11 cve.sqlite3 -rw-r--r-- 1 mogu mogu 32768 Oct 21 10:11 cve.sqlite3-shm -rw-r--r-- 1 mogu mogu 22845432 Oct 21 10:11 cve.sqlite3-wal
vulsインストール
$ mkdir -p $GOPATH/src/github.com/future-architect $ cd $GOPATH/src/github.com/future-architect $ git clone https://github.com/future-architect/vuls.git $ cd vuls $ make install
Config
先ほど作った実行ユーザの「vuls」内に設定ファイルを記載する
$ pwd /home/mogu/vuls $ vim config.toml $ cat config.toml [servers] [servers.127-0-0-1] host = "127.0.0.1" port = "22" user = "mogu" keyPath = "/home/mogu/.ssh/id_rsa" $ vuls configtest [Oct 21 10:24:09] INFO [localhost] Validating Config... [Oct 21 10:24:09] INFO [localhost] Detecting Server/Contianer OS... [Oct 21 10:24:09] INFO [localhost] Detecting OS of servers... [Oct 21 10:24:10] INFO [localhost] (1/1) Detected: 127-0-0-1: centos 6.7 [Oct 21 10:24:10] INFO [localhost] Detecting OS of containers... [Oct 21 10:24:10] INFO [localhost] Checking sudo configuration... [Oct 21 10:24:10] INFO [127-0-0-1] sudo ... OK [Oct 21 10:24:10] INFO [localhost] SSH-able servers are below... 127-0-0-1
セットアップ
$ vuls prepare INFO[0000] Start Preparing (config: /home/mogu/vuls/config.toml) [Oct 21 10:24:46] INFO [localhost] Detecting OS... [Oct 21 10:24:46] INFO [localhost] Detecting OS of servers... [Oct 21 10:24:46] INFO [localhost] (1/1) Detected: 127-0-0-1: centos 6.7 [Oct 21 10:24:46] INFO [localhost] Detecting OS of containers... [Oct 21 10:24:46] INFO [localhost] Checking sudo configuration... [Oct 21 10:24:47] INFO [127-0-0-1] sudo ... OK [Oct 21 10:24:47] INFO [localhost] No need to install dependencies
検査開始
$ vuls scan -cve-dictionary-dbpath=$PWD/cve.sqlite3 -report-json
TUIで結果確認
$ vuls tui
Ctrl + cで閉じる
脆弱性があったのにtuiでは空で表示された場合はconfig.tomlと同じディレクトリに脆弱性データベースを落としていたか再度確認する。