7月6日、中国人留学生(27歳)が不正アクセス禁止法違反で逮捕された。「カカクコム」を含む14社のWebサイトから、52万件にのぼる個人情報を盗んだと見られている。その際に用いたのは「SQLインジェクション」と呼ぶ手口。この手口による被害は、企業Webサイトで急増している。その現状をラックの三輪信雄社長に聞いた。

 SQLインジェクションによる攻撃が増えているのはなぜか。

 SQLインジェクションという手法自体は以前から知られているが、攻撃件数は2004年秋ごろから急増した。これは2004年10月ごろに、中国でSQLインジェクションを用いた攻撃用ツールが出回ったためだ。SQLインジェクション攻撃が可能な、脆弱性を抱えたサイトを調べるツールや、そういったサイトを簡単に攻撃できるツールなどが公開されたのだ。ツールの使い方さえ分かれば、Webサーバーの背後で動いているデータベースに不正なデータを挿入したり、そのサーバーのディレクトリ構造が丸裸にできる。こうした自動化ツールの出現により、攻撃の敷居が一気に下がった。

 攻撃を仕掛けている犯人像は。

 大きく2種類に分けられる。一つは単なる愉快犯。「スクリプトキディ」と呼ばれ、不正侵入のスリルを楽しんだり、ツールのデキを試す手合いだ。これは低年齢層にまで広がっている。

 もう一つは、金銭目当てのタイプだ。データベース内にあるメールアドレスなどの個人情報を盗む輩と、サイトへ何らかの悪意のプログラムを仕掛け、アクセスしてきたユーザーから情報を盗む輩のニつに分けることができる。前者は個人情報を業者へ転売して換金し、後者は入手したIDやパスワードで他人になりすまし、例えばオンラインゲームのRMT(リアル・マネー・トレード)などで現金を手にする。

 カカクコムの不正アクセス事件では、メールアドレスと、オンラインゲーム「リネージュ2」のID/パスワードが盗まれたが、まさに金銭目当ての攻撃だ。

 SQLインジェクションで、どこまでの不正行為が可能なのか。

 極論すれば、「何でもできる」のが現状だ。Webサーバー側の構成によるが、Webページの改ざんからプログラムの書き換えまで何でもできると考えてよい。OSやWebサーバーソフトがセキュリティホールを抱えているかどうかは関係ない。

 ただ、愉快犯の場合はWebサイト運営者に気づかれるような行動に出ないことが多い。彼らからすると、最新の攻撃ツールを試す“遊び場”は確保しておきたい。サイト運営者に気づかれることなく、ただ遊んで去っていく。実際、データベース内のデータを一通り巡回するだけで、何もしないで去っていくケースは多々ある。

 金銭目当ての場合も、気づかれないケースがある。ウイルスを仕込むなど、ユーザーに被害が及ぶ場合は発見できるが、データベース内のデータをこっそり盗んだだけなら、そうはいかない。SQLインジェクション攻撃を受けているのに、全く気づいていないケース(Webサイト)は非常にたくさんあるのではないだろうか。

 SQLインジェクションを防ぐにはどうすればいいのか。

 基本は、ユーザーが入力した値を適切に変換処理することだ。しかし、完全に防衛する手段は残念ながらない。「”(ダブルクォーテーション)」などの特殊文字を適切に処理しているから大丈夫だとは限らない。新たな攻撃手口は次々と生み出されている。最新の動向をウォッチし、それに合わせて対策を打たなくてはならない。

 不正侵入検知ツール(IDS)で検出しようとしても、現在のところIDSではWebアプリケーションに対する攻撃をなかなか検出できない。当社でも、SQLインジェクション対策として独自のシグネチャーをIDSにどんどん追加している。それでも、その裏を突くようなコードでの攻撃が後を絶たない。

 当社が監査した中だけでも、SQLインジェクションの脆弱性を抱えたサイトはいくつもあった。たくさんのサイトが同様の危険を抱えたまま運用されているのは確実だ。

 では、Webサイト運営者はどうすればよいのか。

 Webサーバーのアクセスログをこまめにチェックしていれば、SQLインジェクション攻撃の兆候はつかめるはずだ。この攻撃を受けると、SQL関連のアクセス量が一気に跳ね上がる。データベース名やテーブル名を直接指定したアクセスも急増しているはずだ。Webサイト運営者は、昨年秋以降のアクセスログをもう一度検査してほしい。攻撃を受けている兆候がつかめれば対策はとれる。攻撃を自動化するツールが公開された場合、一般に愉快犯→情報盗難の順で被害が広がる。愉快犯が横行している段階で兆候を把握し、専門業者に監査や監視を依頼すべきだろう。その段階で、Webアプリケーションが抱えている脆弱性をブロックできれば被害の拡大を防げる。

 また、最近ではWebアプリケーションを防御するのに特化したファイアウオール的な製品が発売されている。このような製品を使うことで、SQLインジェクションの攻撃を防ぐこともできる。ただ、これはWebアプリケーション専用なので、一般的なファイアウオールやIDS、監視サービスなどを併用する必要がある。

 私が事務局長を務めるデータベースセキュリティコンソーシアムでは、7月25日にSQLインジェクション対策も含むデータベースセキュリティについてセミナーを開催する。必要な対策や最新技術動向について講演するので、企業サイト運営者はぜひ足を運んでいただきたい。

(安藤 智彦=日経パソコン)