TORIPIYO DIARY

recent events, IoT, programming, security topics

vulsをvagrantのCentOS6にインストール

こちらの記事を書くときに利用した、vulsのインストール方法を共有します。
toripiyo.hatenablog.com

基本的には、Install Manually on CentOS · Vuls に記述されている方法を踏襲しています。
vagrantのCentOS6環境にvulsをローカルインストールして、自分自身に対して脆弱性スキャンをかけます。CentOS6の場合、スキャン自体はroot権限がなくても一般ユーザで実行可能です。

以下のコマンドは、CentOS6にログインして実行しています。

# install required packages
sudo yum -y install sqlite git gcc make wget

# install go
wget https://dl.google.com/go/go1.10.1.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.10.1.linux-amd64.tar.gz
mkdir $HOME/go

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

source /etc/profile.d/goenv.sh

# deploy go-cve-dictionary
sudo mkdir /var/log/vuls
# change owner to be vagrant
sudo chown vagrant /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


# fetch NVD data
cd $HOME
for i in `seq 2002 $(date +"%Y")`; do go-cve-dictionary fetchnvd -years $i; done
ls -alh cve.sqlite3

# deploy 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

goval-dictionary fetch-redhat 6

# deploy 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

# scan myself
cat > ~/config.toml << EOF
[servers]

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

vuls configtest

vuls scan

# check report
vuls report --ovaldb-path /home/vagrant/go/src/github.com/kotakanbe/goval-dictionary/oval.sqlite3