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ユーザの作成

---

ユーザ作成

```bash
useradd vuls
```

パスワード設定

```bash
passwd vuls
```

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

```bash
visudo
```

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

---

vulsユーザにスイッチ

```bash
su - vuls
```

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

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

【補足】

```text
[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の取得

```bash
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の環境変数設定

```bash
sudo vi /etc/profile.d/goenv.sh

# 記載内容
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
```

環境変数の読み込み

```bash
source /etc/profile.d/goenv.sh
```

### go-cve-dictionarynの作成

---

ディレクトリ作成/配置

```bash
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から脆弱性データベース取得

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

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

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

### goval-dictionaryの作成

---

ディレクトリ作成/配置

```bash
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情報の取込

```bash
goval-dictionary fetch-redhat 6
```

### vulsの配置

---

```bash
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
```

### 設定ファイルの作成

---

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

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

### コンフィグチェック

---

```bash
vuls configtest
```

### スキャン

---

```bash
vuls scan
```

### レポート

---

オリジナル

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

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

```bash
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>

### インストール

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

### vulsrepo-serverの設定変更

```bash
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の起動

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

### アクセス

```text
http://<server-address>:5111
```