2008年3月以降,「SQLインジェクション」という手法を使ったWebサイトの改ざんが相次いでいる。ラックのセキュリティ監視センター(JSOC)によると,ここ数カ月でSQLインジェクション攻撃の検知数が爆発的に増加し,8月には過去最高の17万件に達した。

 多くのWebサイトでは,ユーザーの入力値などに応じて動的に表示を変える。Webサーバーはユーザーから受け取った入力値を,Webアプリケーションを通じてデータベースに引き渡す。データベースは,入力値に応じて必要な処理を実行し,その結果,得られた値をWebアプリケーションに戻す。Webアプリケーションはデータベースの出した値を反映したHTMLデータを生成し,Webサーバー経由でユーザーのWebブラウザに表示させる仕組みだ。

 一連のSQLインジェクション攻撃では,攻撃者がWebサーバーへの入力値に不正なSQLを挿入することで,データベースを操作する。その結果,企業はデータベースを改ざんされたり,重要なデータを抜き取られたりといった被害を受ける。

 さらにデータベースに悪質なコードを仕込まれたのが原因で,Webサイトを閲覧したエンドユーザーがマルウエアに感染する事例も多い。つまりSQLインジェクション攻撃を受けた企業は,被害に遭うだけでなく,意図せずにマルウエア感染の加害者になってしまう危険性がある(図1)。

図1●SQLインジェクション攻撃とは何か<br>Webサイトに攻撃を仕掛け,背後にあるデータベースを不正に操作する。データベースから情報を盗むだけでなく,Webサイトに悪質なコードを埋め込んで,アクセスしてきたエンド・ユーザーをマルウエアに感染させることも多い。
図1●SQLインジェクション攻撃とは何か
Webサイトに攻撃を仕掛け,背後にあるデータベースを不正に操作する。データベースから情報を盗むだけでなく,Webサイトに悪質なコードを埋め込んで,アクセスしてきたエンドユーザーのパソコンをマルウエアに感染させることも多い。
[画像のクリックで拡大表示]

 こうした被害を起こさないために,Webサイトを運用する企業はSQLインジェクションについて理解を深める必要がある。SQLインジェクションを理解するには,攻撃の技術的な仕組みや対策だけでなく,攻撃者の狙いなどの社会的な背景を知ることも欠かせない。だが,一般にSQLインジェクションの報道では「有名Webサイトが改ざんされた」という事実はクローズアップされるものの,社会的な背景にまで踏み込んで取り上げることは少ないように思う。そこで,今回はSQLインジェクションの手口だけでなく,その背後にある攻撃者の意図をも紹介する。攻撃者の目的は,「金銭的な利益」だ。彼らはSQLインジェクション攻撃で盗み出した情報を転売したり,様々なオンライン経済市場で悪用したりして利益を上げる。特に日本で悪用事例の多いのが,オンライン・ゲームのRMT(real money trade)市場だ。この特集ではRMTを例に,SQLインジェクション攻撃で引き起こされる被害を見ていく。

 SQLインジェクション自体は2001年ころから知られており,目新しい手口ではない。それにもかかわらず,今になって攻撃件数が増えている。理由としては,まず「攻撃を自動化できるようになってきたこと」が挙げられる。

 現在では,検索エンジンや攻撃ツールを使ってSQLインジェクション攻撃を半自動的に実行できる。従来,SQLインジェクションを実行するには,ぜい弱性を持つWebサイトを探し出し,どんな攻撃が有効かを試行錯誤するといった「事前準備」が必要だった。ところが,今ではGoogleなどの検索エンジンを悪用して攻撃候補のWebサイトを見つけ,無差別に攻撃を仕掛けることができる。

 しかも,中国のWebサイトを中心に,SQLインジェクション攻撃ツールが多数公開されている(図2左)。攻撃ツールからWebサイトのURLを指定するだけで,データベースからデータを抽出したり,サーバー上で任意の操作を実行したりできる。エンドユーザーをマルウエアに感染させるために使う攻撃コード生成ツール(図2右)も登場している。

 もう一つ,SQLインジェクション攻撃がいつまでも減らない背景には「企業側の対策があまり進んでいない」という実態もあるだろう。2008年3月の大規模攻撃で,インターネット接続事業者(ISP)が提供するコンテンツ・ページやマルウエア対策ソフト・ベンダーの情報ページまでもが改ざんされたという事実が明らかになった。ネットワーク・インフラやコンピュータ・セキュリティ製品を提供する企業でさえ,自社のWebサイトのぜい弱性を見落としていたのだ。

 ぜい弱性を抱えたWebサイトは,インターネット上にまだ多数あると推測できる。そのため,SQLインジェクション攻撃が使われ続けているわけだ。

図2●ツールやマニュアルの流通で攻撃が容易に<br>左はSQLインジェクションなどの攻撃ツールやマニュアルがアップロードされる中国のWebサイト。右は2008年4月から5月にかけて多く利用されていた攻撃コード生成ツール「Vip2008」の画面。
図2●ツールやマニュアルの流通で攻撃が容易に
左はSQLインジェクションなどの攻撃ツールやマニュアルがアップロードされる中国のWebサイト。右は2008年4月から5月にかけて多く利用されていた攻撃コード生成ツール「Vip2008」の画面。
[画像のクリックで拡大表示]

 狙われるアプリケーションの種類は多様だ。従来は,マイクロソフトのActive Server Pages(ASP)と SQL Serverを組み合わせて利用するWebサイトが狙われることが多かった。しかし,現在では攻撃ツール側がさまざまなWebアプリケーション開発環境やデータベース――例えば最近のWebサイトに多いPHPとMySQLの組み合わせなど――に対応している。攻撃の実例が少ない言語やデータベースを利用しているWebサイトでも,油断は禁物だ。

 ツールの使い方を紹介し,攻撃を助長するマニュアル・サイトも多数存在する。SQLやデータベースに関する専門知識がない人でも,簡単に攻撃を仕掛けることが可能になった。例えば,Webサイト改ざんに関する報道を見て,好奇心や自己顕示欲にかられた“模倣犯”や“愉快犯”でも,短時間のうちにSQLインジェクション攻撃を実行できてしまう。

松木 隆宏(まつき・たかひろ)
ラック サイバーリスク総合研究所 先端技術開発部
セキュリティ事業を手がけるラックの研究員。ぜい弱性検査,ネットワーク・セキュリティに関するコンサルティング業務を経て,現在ではマルウエア対策に関する研究開発に従事する。ソフトウエア開発者の視点からセキュリティを考え,安全なシステム開発手法を研究している。
この記事は,『日経コミュニケーション』2008年9月15日号 pp.50-55に掲載された内容に加筆・修正したものです。