脆弱性スキャナ「vuls」を cron で定期的にスキャンする

バイト先で動いているサーバーが多いため脆弱性に関しては大きく問題にならないと気づかなかったりします。
そんな中で便利なツールを見つけた。

 

vuls

@kotakabe さんという日本人が作ったものなので日本語もサポートされています。
日本語の脆弱性情報をJVNから取得し、スキャンを行った結果を Slack に通知することも可能!

 

 

環境

・CentOS 7.2.1511
・go1.6.2

 

Golang のインストール

現時点(2016/05/17)での最新は 1.6.2 でした。
最新版は公式サイトで確認してください。

 

Go 用のワークスペースの作成

 

Go 実行パスの設定

/root/.bashrc に下記を追記

 

設定の反映

 

動作確認

問題なく表示できれば Golang のインストールは終了です。

 

 

go-cve-dictionary のインストール

脆弱性情報をダウンロードして、サーバーモードで起動することで
簡単に参照ができるといったもの。

 

JVNから日本語の脆弱性情報を取得

1時間以上かかります。
カレントディレクトリに cve.sqlite3 ができていることを確認。

 

サーバーモードで起動する

ここで # ls とか適当なコマンドを打てば入力待ちに戻れます。

 

 

vuls のインストール

 

設定ファイルの作成

cve.sqlite3 と同じディレクトリに作成しておきましょう。

スキャンした結果を Slack へ通知してみます。
その他詳しい通知の仕方は Github を見て下さい。

 

前準備

前もってリモート先に yum-plugin-security と yum-plugin-changelog がインストールされます。

 

実行

と実行すれば結果が表示されると思います。
その他のオプションについては # vuls scan -h で見れます。

こんなエラーが表示された場合は # go-cve-dictionary server がきちんと動いているか確認しませう。

FireShot Capture 50 - 21_servers I MediaLobby Slack - https___mel-tut.slack.com_messages_21_servers_

buri ちゃんはどっかの企業のBOT名からパクりました。
バイト先で多分活躍してるであろう buriちゃん です。

Web のように脆弱性が見つからなかった場合は上記のように。
脆弱性が見つかるとスコアが高い順に表示されます。

 

 

定期的に実行をする

本題はここからです。
もちろん cron を使用して行いますがどうも # go-cve-dictionary server のプロセスが定期的に死んでしまい、スキャン前に実行するようにしないといけません。(何か知っている人がいれば教えて下さい)

毎日午前3時に定義ファイルを取得し、午前8時55分にサーバーを起動し、午前9時にスキャンをするようにしてます。
go-cve-dictionary コマンドに関しては絶対パスで指定しないとダメでした。

また、スキャンを行う前に vuls が使えるように .bashrc を読み込んでおく必要があります。

コメントを残す

メールアドレスが公開されることはありません。