- 2015年11月3日
- 事故レポ
事故レポファイル第五回 ツール診断ではわからないこともあるよ。ううぇいいいいいい!
へいへいへ~い。モリイさんですよー。今回は事故じゃないけど、事故の話をします。
な… 何を言っているのか わからねーと思うが
おれも 何を言ったのか わからなかった…頭がどうにかなりそうだった…
とりあえず鶴のポーズしておきます!!
事故(?)の概要
あるメディア運営会社がありました。その会社はECキューブ(CMSの一種)でサイトを構築していました。当然その会社はセキュリティを気にしていたので、製作会社にセキュリティ診断の依頼をしました。
その製作会社はその願いを聞き入れ、「セキュリティ診断ツール」を作り、メディア運営会社に提供したのです。
プログラムのアップデートなどのたびに、彼らはもらったツールで、セキュリティ診断をし、安心材料としていました。
ところがある時、プログラムの改修を行った際に、試しにセキュリティ診断をかけてみたところ、いくつかおかしなことが有りました。
・明らかにおかしいのに、何も検出されない。
・脆弱性が出るだろうな−と思っていても出ない。
・SQLインジェクションを誤検知する
担当者は「怪しい、そもそも本当に診断されているのか、わからない。」と疑い、セキュリティ会社に「なんか、サイトが重いし、いい機会なのでツールではなく、手動でセキュリティ診断をする」ように依頼をしました。
初動対応
手動診断の結果、喜ばしいことに攻撃ではなかったことがわかりました。
が、ツールでは見逃していた。脆弱性がワンサカ発見されました。
・SQLインジェクションになりうる、シンタックスエラー
・XSS(クロスサイトスクリプティング)の脆弱性
・登録されているアドレスが分かってしまう不備。
・各種ヘッダーの不備
・Xflameオプションズの設定不備
原因と予防策
結論として、ここからの教訓は、ツールは、あくまでパターンマッチングのみ、パターンを外れたり、複雑な手順を介するものは検知できないということです。
また、ツールにおいて脆弱性有り、という診断がついていても、実際はもっと複雑であり、例えばXSSだけでも3種類ある事がわかっていますが、どの項目にどのようなコードを投げているのか、ブラックボックスにされているので、ログを見ても何を根拠に「脆弱性」と言っているのかわからないことも数多く有ります。
ツールに対する過度な信頼は危険です。ツールを使う理由は、本質的に 網羅的に診断するための当たりをつける、という程度のことです。
もちろん手順の簡略化のために使ったりすることもありますし、やらないよりはましです。ツールで脆弱性が出てしまうということは、Botによる攻撃の対象となりますから、「手間をかけないで手っ取り早く攻撃する」攻撃のターゲットにはなりにくくなります。
代表的な診断ツール
・フリーのツールで OWASP ZAPという、webアプリケーション診断用の脆弱性スキャナがあります。日本語化されていて使いやすいですが、クローラをそのまま使ってやると、診断に膨大な時間をかかるので、サイトを重くしてしまいます。
プロキシを立ち上げて、必要なところだけ診断させることを推奨。
・nessus 16IP FWQNまで無償。性能良いので、これも推奨
実際には上のふたつを掛けあわせて、診断してみたら良いです。ただし、前述したように上のふたつが検知せず、手動で検知するものは数多く有ります。
例えば、以下のものです。
・セッションの有効長が長すぎる
・ソースコードのコメント不備
・クリックジャッキング
・アカウントロック昨日の不備
・追加認証の有無。
前述したメディア会社は結局、手動診断のレポートを見て、リクエスト長を一定の長さを超えたら403に流す、などの対策を行いました。
モリイコウジから一言
11月に入りまして、皆様お風邪などめされてはいないでしょうか。私は1カ月、風邪のオンパレードで
大変苦しい一ヶ月でした。
ところで新しいガンダムがはじまったので、これを生きがいにしています。日曜日17時が楽しみです!!
すでに第三話目まで見ましたが、この時点ですでにガンダムだけになかなか熱い。いや、まだ第3話です。時期尚早であり、内容についてはまだ語るまい…
なんてな。
ヲタ~