脆弱性診断ツール

Windowsに限らず、パッチの当て忘れや設定不備などを見逃すと、それが脆弱性になってシステムが攻撃される原因になってしまいます。
そこで活躍するのが、脆弱性診断ツールです。

脆弱性診断ツールとは、読んで字のごとく、対象システムの脆弱性(弱いところ)を見つけ出すソフトウェアまたはアプライアンスです。
脆弱性ツールは、いくつかのタイプに分類できます。今回は特にプラットフォーム診断(ネットワーク診断とも)にフォーカスをあてて紹介したいと思います。
※Web診断用のツールもいくつかあるのですが、使ったことがないので説明できない...。\(^o^)/オワタ

(1)破壊型
診断対象システムに存在する可能性のある既知の脆弱性に対し、実際に攻撃を行ってシステムが停止ないしは誤動作するのを監視し、動作不良を以て脆弱性を検知する。
検知精度は高い(実際に止まったり再起動したりするから)が、対象システムが壊れることも...。
一昔前にはこのタイプしかありませんでした。

【製品の例】
Spirent社のStudioシリーズ、IBMのInternet Scanner、NexantiS社のSecurescout NX、などなど。

(2)非破壊型
診断対象システムに存在する可能性のある既知の脆弱性が存在するないしは修正パッチによる挙動を監視し、不備があるないしは修正されているかを確認して、脆弱性を検出する。
※サイドエフェクト監視とも
一時期より主流となった方式です。
性質上誤検知の可能性があるので、最終的に誤検知の可能性の高い検出結果については、診断技術者が手動で検証して精度を維持する必要があります。
個人向けに無償版の提供がなされていることも多いです。

【製品の例】
Beyond Trust社Retina(無償のcommunity版あり)、Tenable社Nessus(無償のEssential版あり)、Rapid7社nexpose(1年間無償のcommunity版あり)、OpenVAS(オープンソース。商用利用も可能)などなど。

(3)パッチ探索型(仮称:私が勝手に命名)
メーカーがリリースしているパッチリストとシステムのインストール状態を比較して、未適用パッチを脆弱性として検出する。
性質上、誤検知の可能性がほぼゼロで精度が極めて高い反面、既知ではあるがパッチが出てないゼロデイ脆弱性には対応できない。
設定不備も検出しにくく、そのためだけに通常の破壊型ないしは非破壊型の機構を別途用意するか、その診断を捨てる必要がある。

【製品の例】
kotakanbe社?vuls(オープンソース。商用利用も可能)、moppoi5168氏(日本の高校2年生!すごい!)DetExploit(オープンソース。GPLv3なので商用利用は可能)、IPA MyJVN(無償。商用利用に制限なし?)。

使ってみてよかったなーと個人的に思うのは、(2)で紹介したNessusでしょうか。Windowsだとインストールが超簡単ですし、精度もいい感じだと思います。
OpenVASはNessusからforkしたオープンソース版ですが、Linuxの場合インストールが面倒でした(Qiita見ればできるレベルではありますけど)。
Retinaは商用版はお仕事で使っていましたが、ライセンスが診断対象IPベースなのでちと高め。