Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

セキュリティ診断ツールの結果をどう信じるか

  • Webアプリケーション向けセキュリティ診断ツールの一部は、トークンありの場合となしの場合でレスポンスが変わらない場合に「CSRF脆弱性あり」と判断する。ただ動作としてはキャプチャ/リプレイツールなので、場合によってはトークンありの場合でもアプリがエラーを返している場合がありうる(入力したIDが重複してエラーになった場合など)。この場合はトークンなしの場合に正しくエラーを返していても、CSRF脆弱性があると判断される。
  • Webアプリケーション向けセキュリティ診断ツールでは、Apacheがバナー情報を返すようになっていると脆弱性ありと指摘を挙げる。一方、Apacheのバナー情報をもとに古すぎるバージョンに警告を挙げるセキュリティ診断ツールもあって、この場合は脆弱性を摘出するにはバナー情報を返す必要がある。つまり、あるツールの言うことを信じて対策をすると、別のツールで検出漏れが発生することがある。
  • セキュリティ診断ツールの一部は、アプリケーションのバナー情報に含まれるバージョン番号をもとに警告を挙げる。ただRHELなどのディストリビューションでは、既知の脆弱性に対してバージョンアップでなくパッチのバックポートで対応するため、脆弱性を対策してもバージョン番号は変わらない。そのため、バージョン番号は古くても脆弱性は対処済み(つまりツール側の誤検出)という場合がある。

他の開発支援ツールでもそうですが、「めちゃくちゃ作業が早くてセキュリティに詳しい新人を連れてきた(で、システムの情報を何も伝えずにブラックボックステストをさせた)」と思って使うのが、実行結果を鵜呑みにしないためのコツですね。