Webセキュリティ対策 第一回 (Google Hack)
ワタナベです。
Webアプリケーションセキュリティに視点を置くと、
今のインターネットの状況は、あまりに悲惨な状態にあります。
そんな状況の打破、日頃少しでも興味のある方への入門編として、
今回からWebアプリケーションセキュリティに関する記事を連載します。
主眼として「現状」と「対策」を重点に説明していく予定です。
さて、第一回。
まずは、悲惨な状況というのがどんなものかをご紹介しましょう。
「pg_query(): Query failed: ERROR」
検索エンジンで、上記のように検索してみてください。
今日現在、Googleの検索結果では、約 333,000 件 ヒットします。
【注意!】
検索結果のリンク先はクリックしないでください。不正アクセスに該当する場合があります。
わかる人にはわかるのですが、これは、ある特定のプログラム言語で、
あるデータベースを使っている場合のエラーメッセージであり、
データベースへの問い合わせが失敗した場合に、表示されるものです。
問い合わせが失敗した原因は様々ですが、
多くはデータの受け渡しに問題があるために発生します。
この際に不正な形式でデータを送りつけると、データベースそのものを操作できるようになり、
顧客情報が引き出されたり、データベースが破壊されたりする、という問題が発生します。
これが、昨今騒がれている「SQLインジェクション」と呼ばれる脆弱性です。
このエラーメッセージは、その脆弱性の存在を探す大きな手がかりとなります。
つまり、実に30万件ものサイトのデータベースが操作されてしまう可能性が高い
ということを、検索エンジンが示しています。
このように検索エンジン(主にGoogle)を使って、
脆弱性の手がかりを探すことは「Google Hack」と呼ばれています。
最近Googleは、公に動的コンテンツのクローリングも始めましたので、
今後こういった問題が検索結果に残ってしまうということが増えてゆくものと考えられます。
データベースが操作されないように「SQLインジェクション」の脆弱性対策を正しく施すことが
重要ではありますが、まずは前述のような「エラーメッセージ」を表示させないことも重要です。
開発する側は、エラーメッセージを表示しないようにデバッグモードをオフに設定するべきで、
検収する側は、このエラーメッセージが表示されれば一発不合格を出すべきです。
あなたの管理下のWebサイトで、問題は発生していませんか?
サイト内検索で探してみると良いかもしれません。(あくまで、自分の管轄内で探してください。)
まとめ:
アプリケーションの出すエラーメッセージは危険。
デバッグモードは必ずオフに!
トラックバック
このエントリーのトラックバック:
http://news.brain-gate.net/mt-tb.cgi/108

