家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

「脆弱性対策の効果的な進め方(ツール活用編)」の概要

IPAでは技術的な内容をまとめた「IPAテクニカルウォッチ」を公開しています。

www.ipa.go.jp

 

2019年2月に、IPAテクニカルウォッチで「脆弱性対策の効果的な進め方(ツール活用編)」が公開されました。本記事では、上記で紹介されている脆弱性検知ツール「Vuls」をUbuntuにインストールする手順を記載します。

 

脆弱性対策の効果的な進め方(ツール活用編)

発行機関:情報処理推進機構(IPA)
発行年月日:2019年2月21日

https://www.ipa.go.jp/security/technicalwatch/20190221.html

 

脆弱性への対応とVuls
脆弱性への対応方法はシステムの構成等により様々なパターンがありますが、このレポートでは、以下のフローをもとに脆弱性への対応を解説しています。

f:id:iestudy:20190711230839p:plain

脆弱性対応フロー

 

脆弱性への対応はかなりの労力がかかるため、できる範囲は自動化することが望ましいとされます。Vulsでは上記フローのうち、以下の工程を自動化します。

  • 対象ソフトウェアの把握
  • 脆弱性関連情報の収集

なお、Vulsが脆弱性を検知できる対象OSは主にLinuxとなります。

f:id:iestudy:20190711230950p:plain

Vulsの対応OS

 

Vulsのインストール

VulsをUbuntuにインストールします。対象のUbuntuは18.04になります。

 

4.4.事前準備(レポートの項目)

以下のコマンドを実施しました。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install sqlite git gcc make wget debian-goodies
wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.11.2.linux-amd64.tar.gz
mkdir $HOME/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

 

4.5.1.go-cve-dictionary をインストールする(レポートの項目)
sudo mkdir /var/log/vuls
sudo chmod 777 /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
cd $GOPATH/bin
※上記コマンドにより、$GOPATH/bin 配下に go-cve-dictinary のバイナリファイルが生成されることを確認します。

 

4.5.2.脆弱性データベースから脆弱性情報を取得する(レポートの項目)
cd $HOME
for i in `seq 1998 $(date +"%Y" )`; do go-cve-dictionary fetchjvn -years $i; done
for i in {2002..2019}; do go-cve-dictionary fetchnvd -years $i; done
ls -alh cve.sqlite3
※脆弱性情報が取得できている場合は2G程度のファイルが確認できます

 

4.5.3.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
cd $GOPATH/bin

4.5.4.Redhat から OVAL 情報を取得する
cd $HOME
$ goval-dictionary fetch-ubuntu 18

 

4.5.5.gost をインストールする
sudo mkdir /var/log/gost
sudo chmod 700 /var/log/gost
mkdir -p $GOPATH/src/github.com/knqyf263
cd $GOPATH/src/github.com/knqyf263
git clone https://github.com/knqyf263/gost.git
cd gost
make install


4.5.6.Redhat から脆弱性情報を取得する
gost fetch debian


4.5.7.go-exploitdb をインストールする
sudo mkdir /var/log/go-exploitdb
sudo chmod 700 /var/log/go-exploitdb
mkdir -p $GOPATH/src/github.com/mozqnet
cd $GOPATH/src/github.com/mozqnet
git clone https://github.com/mozqnet/go-exploitdb.git
cd go-exploitdb
make install
go-exploitdb fetch exploitdb
go-exploitdb fetch awesomepoc
go-exploitdb fetch githubrepos


4.5.8.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