製品紹介

Vuls(VULnerability Scanner)はGo言語で作成された日本製のオープンソース脆弱性スキャンツールです。
フューチャーアーキテクト株式会社が開発し、GitHubで無償公開されており、非常に高い評価を受けているツールです。
参照:プレスリリース記事

製品の特徴は以下になります。

Linuxサーバに存在する脆弱性をスキャン
Ubuntu, Debian, CentOS, Amazon Linux, RHEL, Raspbianに対応
クラウド、オンプレミス、Docker
OSパッケージ管理対象外のミドルウェアをスキャン
プログラミング言語のライブラリやフレームワーク、ミドルウェアの脆弱性スキャン
CPEに登録されているソフトウェアが対象
エージェントレスアーキテクチャ
スキャン対象サーバにSSH接続可能なマシン1台にセットアップするだけで動作
非破壊スキャン(SSHでコマンド発行するだけ)
AWSでの脆弱性/侵入テスト事前申請は必要なし
設定ファイルのテンプレート自動生成
CIDRを指定してサーバを自動検出、設定ファイルのテンプレートを生成
EmailやSlackで通知可能(日本語でのレポートも可能)
付属するTerminal-Based User Interfaceビューアでは、Vim風キーバインドでスキャン結果を参照可能

公式ホームページ(GitHub)

https://github.com/future-architect/vuls/blob/master/README.ja.md

検証内容

Vulsのセットアップは以下の2パターンがあります。

  • Dockerコンテナ上にセットアップ
  • 手動でセットアップ

本記事fは、手動セットアップをします。
仮想マシンにVulsをセットアップしVulsサーバを構築します。
同じセグメント上にスキャン対象サーバを設置し、対象サーバに対し脆弱性スキャンを行います。
スキャン結果をメールとSlackに通知し、レポートします。

 

検証環境

構成

VMWare Workstation 12 Plyaer
仮想サーバ2台
Vulsサーバ:CentOS Linux release 7.2.1511 (Core) minimal install PKG
Hostname:vuls-srv

スキャン対象サーバ:CentOS Linux release 7.2.1511 (Core) minimal install PKG
Hostname:target-srv
ホストOSよりSSHでアクセス
CVEをダウンロードする
vuls-srv→target-srvへスキャンを実行
スキャン結果をメール、Slackで通知

 

[スキャン対象サーバ]

firewalld
chrony
yum-plugin-changelog

 


導入手順

2017/4月現在の最新バージョンはvuls v0.3.0 fecd1adです。
以下の手順を実施します。

[Vulsサーバ]
centOSを新規作成
必要なソフトウェアをインストール
go-cve-dictionaryをデプロイ
Vulsをデプロイ
設定
設定ファイルと、スキャン対象サーバの設定のチェック
test Scan
test Reporting
TUI(Terminal-Based User Interface)で結果を参照する

[対象サーバ準備]
対象サーバにvulsサーバからSSH可能にする
/etc/sudoers設定
設定変更(対象サーバ、email, slack通知)
設定ファイルと、スキャン対象サーバの設定のチェック
Scan
Reporting(通知)

[定期的に実行する作業]
cve-update
cronに登録して定期実行

注意点:

vulsは脆弱性の修正を行うソフトウェアではありませんので、検出した脆弱性は手動で対応する必要があります。今回は、検出のみを実施します。

目次

1.インストール

2.初期設定

3.テストスキャン

 

1.インストール

 

Vulsセットアップに必要な以下のソフトウェアをインストールします。

/etc/profile.d/goenv.sh を作成し、下記を追加します。

カレントシェルに上記環境変数をセットします。

go-cve-dictionaryをデプロイします。
バイナリは、$GOPATH/bin以下に生成されます。

NVDから脆弱性データベースを取得します。
cveのダウンロードは10分程度かかりました。

cve.sqlite3ができていることを確認します。

日本語化するため、JVNから脆弱性データベースを取得します。
こちらもダウンロードは10分程度かかりました。

Vulsのデプロイをします。

 

2.初期設定

Vulsの設定ファイルを作成します。

config.tomlには、下記の項目を記入します。

設定ファイルと、スキャン対象サーバの設定のチェックします。
記述などに問題があった場合、ERROR内容を確認し、対応してください。

 

3.テストスキャン

テストとして、vulsサーバ自身にScan実行します。

下記はログの抜粋です。

169個の脆弱性が検出されました。対応する気力が奪われます。。。

レポートを出力します。
※ –lang=jaで日本語で表示

Terminal-Based User Interfaceの表示
※日本語表示は非対応です。

ログ出力先は以下になります。
/var/log/vuls/

Vuls検証ページへ