サーバの脆弱性自動診断ツール「Vuls」で運用管理が楽になる

vuls

今日もインドカレーを食べるインフラ担当の「やっさん」です。

 

やっさん人物紹介:やっさん(加藤)
オンラインゲーム会社や通信キャリアに常駐後、現在はサーバ構築・運用とセキュリティ担当。
得意技:Webサーバ/Webアプリケーションサーバの構築・運用
必殺技:スパイスから本格インドカレーを作る
Qiita:curryperformer-kato

 

みなさまの企業では、Linuxサーバにインストールしたミドルウェアの構成管理をどのように行われていますでしょうか。 昨年世間を騒がせたBIND 9の脆弱性をはじめ、ミドルウェアの脆弱性が発表されるたびに、サーバの運用担当者は対応に追われていることと思います。

 

また、脆弱性が深刻度や緊急性の高いものであるほど、上司からは「うちのサーバは大丈夫なのか?」「どんな影響があるんだ?」「既に対応は行っているのか?」などと矢継ぎ早に質問され、早急な報告求められていると思います。

 

さて、その際に運用担当者が真っ先に行うべきは「脆弱性があるミドルウェアが、自社のサーバにインストールされているのかの確認」であると思います。

 

日ごろから、各サーバのミドルウェアの構成管理が正しくおこなえていれば、確認はすぐに終わるでしょうが、大抵の企業ではそのような構成管理は行わず、ミドルウェアの脆弱性が発表されるたびに、各サーバのミドルウェアを都度確認しているのではないでしょうか。

 

脆弱性情報が発表されるたびに、それを繰り返すのは、非常に面倒くさいですよね。

 

常に最新の脆弱性情報をウォッチし続けることも、サーバ運用管理者にとって面倒くさいことだと思います。

 

そんな悩みを解決するのが、Go言語で開発された「Vuls」です。

 

どのサーバにどのような脆弱性があるのか、自動で検知してくれるエージェントレスの脆弱性診断ツールなのです。

 

vulsは日本語ドキュメントが充実している初心者向けツール

Vulsはバルスと読みますが、滅びの言葉ではありません。2chのサーバも落ちません。

 

開発者は、フューチャーアーキテクト株式会社の神戸 康多氏です。

 

Think ITに、Vulsの開発秘話について、神戸氏のインタビュー記事が掲載されています。

 

日本語ドキュメントがGithubに公開されており、ここに記載された手順に沿うだけで導入できる初心者向けツールです。
https://github.com/future-architect/vuls/blob/master/README.ja.md

 

Vulsによる脆弱性診断が行える対象は、Linux(Ubuntu, Debian, CentOS, Amazon Linux, RHELなど)のサーバです。

 

エージェントレスのため、脆弱性を診断したいサーバにSSH用の公開鍵を設置するだけで、脆弱性診断が行えるようになります。

 

Vulsをインストールするサーバの構築手順

この記事では、CentOS 6.5で構築します(固定IPアドレス設定、iptables停止、SELinux無効化済み)。

 

IPアドレスは192.168.10.70で設定しています。

 

Vuls用の特権ユーザー(vuls)を作成し、そのユーザーで構築します。

 

あらかじめopenssh-serverとopenssh-clientsをインストールし、sshdを起動しておきましょう。

 

SSH setting

 

Install requirements

 

Deploy go-cve-dictionary

 

バイナリは、$GOPATH/bin以下に生成される。

 

NVDから脆弱性データベースを取得する。

 

環境によって異なるが、私の環境(VMware ESXi)では20分程度かかった。

 

 

Deploy Vuls

 

Config

 

Setting up target servers for Vuls

 

Start Scanning

 

Reporting

 

TUI

Vulsにはスキャン結果の詳細を参照できるTUI(Terminal-Based User Interface)が付属している。

 

vuls3

 

[Tab]キーを押すとカーソルが移動できる。CVEの各項目は[↑][↓]でスクロールできる。[Ctrl]+[C]で終了できる。

 

Web UI

VulsRepoはVulsが吐き出すJSON情報を可視化する分析用Web UIツールである。

 

構築手順の詳細は以下のドキュメントに記載されている。

https://github.com/usiusi360/vulsrepo

 

 

http://192.168.10.70/vulsrepo/ にアクセスする。ドキュメントに掲載されている画面が表示されると成功。

 

表示されない場合は、VulsRepoにアクセスしたWebブラウザ上で[F12]を押すとデバッグ画面が立ち上がるので、そちらでエラー原因が確認できます。

 

脆弱性診断対象のサーバ構築手順

この記事では、CentOS 6.5で構築します(固定IPアドレス設定、iptables停止、SE Linux無効化済み)

 

IPアドレスは192.168.10.80で設定しています。

 

こちらのサーバで行うのは、公開鍵の配置のみです。

 

Vulsをインストールするサーバからの公開鍵転送前に行う

 

Vulsをインストールするサーバからの公開鍵転送後に行う

これだけで、診断対象のサーバに対して、Vulsをインストールしたサーバから脆弱性診断を行うことができます。

 

質問や不明点はVulsのSlackチームで解決できる

VulsのSlackチームがあり、質問や不明点はここでフォローしていただけるようです。

構築していてエラーになるときなどは、Slackチームに参加してみると解決するかもしれません。

やっさん(加藤)

この記事を書いた人:やっさん(加藤)

オンラインゲーム会社や通信キャリアに常駐後、現在はサーバ構築・運用とセキュリティ担当。
得意技:Webサーバ/Webアプリケーションサーバの構築・運用
必殺技:スパイスから本格インドカレーを作る

この記事に関してのお問い合わせ
御連絡・ご返信は原則2営業日以内を予定しております。
お急ぎの場合は、お手数ですが下記電話でもご対応をしております。

システムガーディアン株式会社
受付時間:平日9:00~18:00
受付担当:坪郷(つぼごう)・加藤
電話:03-6758-9166