ABOUT
脆弱性スキャンを実行したらそのレポートからリスクを正確に分析しましょう。
DETAIL
脆弱性スコアだけで結果をフィルターしないこと。
脆弱性スキャンのレポートには、数百以上の脆弱性が報告されると思います。
つい、CVSSが低いものや、リスクがLow/Informationと判定されているものは見ないで放置してしまっていると思います。
Low/Informationは、サービス検知の項目があり、telnet/ftpなどのログインバナーがどのようなものだったか報告されているものがあります。
この結果を見ていると、ユーザ認証無しでログインできているものが出ています。私が脆弱性スキャンを行うたびに数件検知しています。(ユーザ認証無しでログインできてしまうのでハイリスクです。)
検査すべきサービスは、
telnet
ssh
ftp
tftp
デフォルトパスワードを使っているユーザの有無をまず確認すること
こちらも、ユーザ認証無しでログインできるものと同様にハイリスクです。こちらも、毎回数件検知します。
レポートの中からdefault passwordをチェックしましょう。
リモート攻撃が可能な脆弱性を優先的に確認すること
shellshock(CVE-2014-6271)に関係する脆弱性は実際にexploitできてしまいます。
この脆弱性が検知された場合は、ペネトレーションテストの一環としてサーバ管理者の同意を得たうえで、metasploitなどを使ってテストしています。結構な割合でexploitが可能です。
(metasploitのデモをサーバ管理者向けに行うとパッチの必要性を理解されます。)
Alienvaultの脆弱性スキャン結果のまとめ方
Alienvaultの脆弱性スキャンを実行すると、その結果はAlienvaultのAssetとSIEMイベントが自動的に関連付けられます。
1点残念なのは、脆弱性スキャンの結果をまとめて一つのExcelに抽出することができない点です。
Alienvaultでは脆弱性スキャンを実行するときに対象のIPアドレスが多いと、自動的にスキャンジョブが複数に分割されます。
脆弱性スキャンの結果をExcelに落としてサーバ管理者に渡すような場合、スキャンジョブ毎にExcelに落とす必要があります。複数のExcelを一つのシートにまとめるマクロを用意しました。
-
Excelファイルを一つのフォルダに保存します。
-
以下のマクロを実行します。
一つのフォルダのファイルをすべて読み込んで、一つのシートに集約します。
Alienvaultは脆弱性スキャンジョブを分割するので、一つのレポートが10,000行を超えることはないと思いますが、もし超える場合はM10000の値を増やす必要があります。 -
マクロの内容
Sheet1のA1にレポートExcelファイルを保存しているフォルダのパスを書く。
Sheet2で開発 --> マクロを開く。
Sub consolidation()
Dim buf As String, i As Long
Dim j
buf = Dir(Sheets("Sheet1").Range("A1").Value & "\*.xlsx")
Do While buf <> ""
Workbooks.Open Worksheets("Sheet1").Range("A1").Value & "\" & buf
Sheets("Vulnerability Report").Range("A7:M10000").Copy
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Workbooks(buf).Activate
Application.CutCopyMode = False
Workbooks(buf).Close SaveChanges:=False
buf = Dir()
Loop
End Sub