狠狠撸

狠狠撸Share a Scribd company logo
Vuls
ローカルスキャンモードの
活用方法
2017/03/24 Vuls祭り#2 INOUE Kei
1
本日のサマリ
? ローカルスキャンモードとは
? リモートスキャンとの違い
? ローカルスキャンのメリット/デメリット
? 構成デザインパターン
? 全体の構成
? どのように通知するか
? どのようにVulsRepoと連携するか
? 監視ツールとの連携
? ログ監視として、差分の通知を行う
2
免責事項
? 本資料について、あくまで個人の見解であり、
所属会社とは関係がありません。
? コミュニティ内での発言についても、あくま
で個人の見解であり、所属会社とは関係があ
りません。
? 本資料は、本日2017/03/23時点のものであり、
今後予告なく変更される場合があります。お前誰よ?
- 株式会社アールワークスの井上
- Facebook 脆弱性診断研究会、DoorKeeper「脆弱性ええんやで(^^)」、Vuls
Slack
40歳以上で無名でダメなエンジニア(元エンジニア)が勉強会で登壇する
ときの注意:http://blogs.itmedia.co.jp/fukuyuki/2017/03/40.html
- 最初の自己紹介30秒以下にしろよ:
3
Q:Vulsのスキャン、どうやっています
か?
? Vulsサーバから、SSHで対象サーバに接続
? SSHの鍵、パスフレーズ抜き?
? 対象サーバで、sudoersの設定が必要
? 既存監視システムと連携させる際に、監視対象
側にログが出てくれるとやりやすい?
? Etc…
スキャン対象への変更が必要であり、セキュリティ
要件的に厳しい場合があります。
そんな時は…
4
そんな時は、ローカルスキャンを利用しま
しょう。
? SSHを利用しません。
? SSH拒否のユーザで利用できます。Vuls専用ユーザ不要。
? rootのcronで実行可能です。
? SSHの”PermitRootLogin NO”により、Vuls実行ユーザの
アカウント攻撃を防げます。
? ローカルにデータが出力されます。
? 監視Agentをインストールした環境であれば、既存のロ
グ監視などの仕組みで監視可能。
Vulsローカルスキャン5
ローカルスキャンモードとは
? 対象サーバ自身で、スキャン/レポートを行う
モードです。
? 対象にVulsバイナリを配置する
? 権限のあるアカウントで、スキャンを実施する
? 権限自体は、リモートスキャン(SSHでのスキャン)と同等のものが必
要になります。
? レポートも、スキャン対象サーバで生成される
外部からスキャンされるのではなく、自分で自
分自身をスキャンするモードとなります。
6
スキャン対象へのInbound通信が不要にな
る!
ローカルスキャンの概要
7
リモートスキャンとの違い
? 欠点
? リモートスキャンより、展開に手間が掛かります
? バイナリを配置、定期実行用のcronを設定
? CVEDBの配置を考える必要があります
? 複数サーバの全体像を把握するには、ひと手間必要となります
? 利点
? SSHを利用しません
? 権限のコントロールしやすいです
? Rootで実行しても比較的安全、
スキャン専用アカウントが不要
? スキャン対象に、レポートが残ります
8
ローカルスキャン用の設定
? 以下の設定をconfig.tomlに入れることでロー
カルスキャンモードになります。
? host項目を、[localhost]もしくは[127.0.0.1]に設定する
? port項目を、[local]にする
? リモートスキャンとローカルスキャンの混在
は可能です。
? Vulsサーバ自身のスキャンをローカルスキャン、その他のサーバをリ
モートスキャンとすることが可能です。
9
ローカルスキャンモードとは
まとめると、以下の要件となります。
? 要件によって使い分けるのがよいと思います。
? リモートスキャン時は、安全のためVuls専用のユーザでスキャンするの
がよく、そのユーザにsudo権限の付与が必要。
? 注意深く設定をしないと、Vulsユーザアカウントへの攻撃等の弱点を
作ってしまう可能性があるので、ローカルスキャンはこれを軽減可能。
? 対象へのInbound通信をしたくない場合は、ローカルスキャンを選択。
スキャン方
式
トリガー CVEDB 用途
リモート 外部実行
(SSHアクセス)
Vulsサーバ上で
処理
SSH可能、sudo設定可能
ローカル 内部実行
(cron等での実行)
スキャン対象へ
- httpでの配信
- DBの配信
外部からSSHさせない
ローカルのトリガで実行
10
ローカルスキャンの構成を検討します。
構成デザインパターン11
検討すべき内容
? 以下の点の検討が必要となります
? CVEDBを、どのように取得するか
? go-cve-dictionaryのhttpサーバモードでの配信
? 更新したcve.sqlite3の複製
? どのように、定期的に実行するか
? cron
? その他ツール(連携するスクリプト、監視用Agentなど)
? スキャン結果を、どのように収集するか
? 個々のスキャン結果をまとめて表示するVulsRepoサーバへ、scpする
? 個々のサーバで、mail等を通じて結果を回収する
? Vulsバイナリはどこで作るか
? VulsRepoサーバを作るのであれば、そこで作る
12
全体構成概要
13
Go-cve-dictionary Server mode.
http://HOST:1323/cves/CVE-2014-0160 な
ど
一般的に利用できる構成
? VulsRepoサーバを
起点とし、リモート
スキャンとローカル
スキャンを共存させ
ます。
? 少なくとも
VulsRepoサーバ自
体は既存のままでも
ローカルスキャン可
能です。
14
VulsのREADME.mdも、そのように更新され
ました。
監視との連携
? ローカルに検査結果が出るので、既存の
エージェント型監視ツールでの監視が可能で
す。
? vuls scanを、監視エージェントトリガで実行可能
? vuls reportを、スクリプトを利用して受け取りやすい形で、通知
? やっぱり、自作スクリプトが必要です
? どのように差分通知したいのか、が利用者により異なる為に、Vuls側で
の実装は難しい気がします。
? 残存CVE数の増減?CVSS BaseScoreが特定値以上のものの増減?
? (弊社ではPandoraFMSを利用して監視の仕組みを作りました)
? 差分通知、Vuls祭り直前で実装されました!
15
まとめ
? Vulsを使う際に、セキュリティ要件が問題に
なる場合は、ローカルスキャンを検討してみ
てください。
? 今後、IDCFクラウドさんのTechブログで、
ローカルスキャン等の記事を載せていただく
予定なので、そちらをご覧ください。
? https://blog.idcf.jp/
16

More Related Content

Vuls ローカルスキャンモードの活用方法