ツール診断ではわからないこともあるよ。ツール診断ではわからないこともあるよ。ツール診断ではわからないこともあるよ。ツール診断ではわからないこともあるよ。ううぇいいいいいい!へいへいへ~い。今回は事故じゃないけど、事故の話をします。わからなかった...頭がどうにかなりそうだった...とりあえず鶴のポーズしておきます!!事故(?)の概要あるメディア運営会社がありました。その会社はECキューブ(CMSの一種)でサイトを構築していました。その会社はセキュリティを気にしていたので、製作会社にセキュリティ診断の依頼をしました。その製作会社はその願いを聞き入れ、「セキュリティ診断ツール」を作り、メディア運営会社に提供したのです。プログラムのアップデートなどのたびに、彼らはもらったツールで、セキュリティ診断をし、安心材料としていました。ところがある時、プログラムの改修を行った際に、試しにセキュリティ診断をかけてみたところ、いくつかおかしなことが有りました。・明らかにおかしいのに、何も検出されない。・脆弱性が出るだろうな−と思っていても出ない。・SQLインジェクションを誤検知する担当者は「怪しい、そもそも本当に診断されているのか、わからない。結果、喜ばしいことに攻撃ではなかったことがわかりました。ツールでは見逃していた。脆弱性がワンサカ発見されました。・登録されているアドレスが分かってしまう不備。結論として、ここからの教訓は、ツールは、あくまでパターンマッチングのみ、パターンを外れたり、複雑な手順を介するものは検知できないということです。ツールにおいて脆弱性有り、という診断がついていても、実際はもっと複雑であり、例えばXSSだけでも3種類ある事がわかっていますが、どの項目にどのようなコードを投げているのか、ブラックボックスにされているので、ログを見ても何を根拠に「脆弱性」と言っているのかわからないことも数多く有ります。ツールに対する過度な信頼は危険です。網羅的に診断するための当たりをつける、という程度のことです。手順の簡略化のために使ったりすることもありますし、やらないよりはましです。ツールで脆弱性が出てしまうということは、Botによる攻撃の対象となりますから、「手間をかけないで手っ取り早く攻撃する」攻撃のターゲットにはなりにくくなります。ZAPという、webアプリケーション診断用の脆弱性スキャナがあります。日本語化されていて使いやすいですが、クローラをそのまま使ってやると、診断に膨大な時間をかかるので、サイトを重くしてしまいます。プロキシを立ち上げて、必要なところだけ診断させることを推奨。実際には上のふたつを掛けあわせて、診断してみたら良いです。前述したように上のふたつが検知せず、手動で検知するものは数多く有ります。