CentOS
vuls

VirtualBox(CentOS6)上にVULS & VULS REPO インストール

vulsのインストール

参考資料

https://sys-guard.com/post-12495/

https://github.com/future-architect/vuls

参考資料の内容を基本的に踏襲していますが、うまく行かなかった部分を補足しています。

環境

Virtualbox 5.1.28

GesutOS:CentOS release 6.9 (Final)

vulsユーザの作成


ユーザ作成

useradd vuls

パスワード設定

passwd vuls

sudo実行権限追加(vuls ALL=(root) NOPASSWD: ALLを追記)

visudo

必要パッケージのインストール


vulsユーザにスイッチ

su - vuls

パッケージのインストール(yum-utilsを追加している)

sudo yum -y install sqlite git gcc make wget yum-utils

【補足】

[vuls@node1 ~]$ vuls configtest
[Oct 20 11:11:01]  INFO [localhost] Validating config...
[Oct 20 11:11:01]  INFO [localhost] Detecting Server/Container OS... 
[Oct 20 11:11:01]  INFO [localhost] Detecting OS of servers... 
[Oct 20 11:11:01]  INFO [localhost] (1/1) Detected: localhost: centos 6.9
[Oct 20 11:11:01]  INFO [localhost] Detecting OS of containers... 
[Oct 20 11:11:01]  INFO [localhost] Checking dependencies...
[Oct 20 11:11:02] ERROR [localhost] yum-utils is not installed
[Oct 20 11:11:02] ERROR [localhost] Error: localhost, err: [yum-utils is not installed]
[Oct 20 11:11:02]  INFO [localhost] Checking sudo settings...
[Oct 20 11:11:02]  INFO [localhost] Scannable servers are below...

goの取得

wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz
mkdir $HOME/go

goの環境変数設定

sudo vi /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-dictionarynの作成


ディレクトリ作成/配置

sudo mkdir /var/log/vuls
sudo chown vuls /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

脆弱性情報の取得(NVD)


NVDから脆弱性データベース取得

cd $HOME
# 以下のコマンド実行後、10~20分待つ
for i in `seq 2002 $(date +"%Y")`; do go-cve-dictionary fetchnvd -years $i; done

JVNから脆弱正データベース取得(日本語化した脆弱性情報)

cd $HOME
$ for i in `seq 1998 $(date +"%Y")`; do go-cve-dictionary fetchjvn -years $i; done

goval-dictionaryの作成


ディレクトリ作成/配置

mkdir -p $GOPATH/src/github.com/kotakanbe
cd $GOPATH/src/github.com/kotakanbe
git clone https://github.com/kotakanbe/goval-dictionary.git
cd goval-dictionary
make install

OVAL情報の取込

goval-dictionary fetch-redhat 6

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

設定ファイルの作成


cd $HOME
vi config.toml
# 記載内容
[servers]

[servers.localhost]
host = "localhost"
port = "local"

コンフィグチェック


vuls configtest

スキャン


vuls scan

レポート


オリジナル

vuls report -lang=ja -format-one-line-text -cvedb-path=$PWD/cve.sqlite3 -ovaldb-path=$PWD/oval.sqlite3

修正版(なんかovaldbの場所が違ってみたいのなので)

vuls report -lang=ja -format-one-line-text -cvedb-path=$PWD/cve.sqlite3 -ovaldb-path=$GOPATH/src/github.com/kotakanbe/goval-dictionary/oval.sqlite3

VULS REPOのインストール

参照
https://github.com/usiusi360/vulsrepo

インストール

cd $HOME
git clone https://github.com/usiusi360/vulsrepo.git

vulsrepo-serverの設定変更

cd $HOME/vulsrepo/server

cp vulsrepo-config.toml.sample vulsrepo-config.toml

vi vulsrepo-config.toml
# 記載内容
[Server]
rootPath = "/home/vuls/vulsrepo"
resultsPath  = "/home/vuls/results"
serverPort  = "5111"

vulsrepo-serverの起動

cd $HOME/vulsrepo/server
./vulsrepo-server 

アクセス

http://<server-address>:5111