国内で,一般消費者に向けたWebサイトへの改ざん攻撃が止まらない。しかも改ざんされたページには ,悪質なサイトにユーザーを誘導してウイルスを送り込む“わな”が仕掛けられる。3月10日前後から12日までの間に,一斉にWebサイトがページを改ざんされた。最たる例が,セキュリティ対策ベンダーのトレンドマイクロである。海外のWebサイトを含め,2万サイト以上が被害に遭ったという。

 この日,ラックの監視センター(JSOC:セキュリティ・オペレーション・センター)では,通常の70倍から100倍の攻撃トラフィックを確認した。その後,いったん攻撃は止まったものの,攻撃が再開され,今も続いている。3月末には,デジタル・オーディオ・プレーヤなどを開発するクリエイティブメディアがWebページを改ざんされ,一時的にWebサイトを閉鎖していたことを明らかにした。

■参考記事:トレンドマイクロのWebサイトが改ざん,ウイルスのわなを仕込まれる
■参考記事:「Webサイトへの攻撃が再開,ウイルスサイトも復活」,ラックが警告
■参考記事:「日本を狙ったWebページ改ざん継続中」,セキュリティ企業が警告
■参考記事:相次ぐWebサイトへの攻撃,改ざんされたWebページが2万件に

SQLインジェクションでiframeを埋め込み

 一連の攻撃の手口は,SQLインジェクションというWebアプリケーションのぜい弱性を突いたものだった。SQLインジェクションは,Webシステムのバックエンドにあるデータベースを不正に操作する攻撃。Webページで入力された不正なSQLコマンドをアプリケーション側で検知・排除できないために,データベースのデータを不正に参照・更新される。攻撃者はこの方法で,Webコンテンツにiframeタグを埋め込んだ。

 恐ろしいのは,埋め込まれるiframeタグに不正なJavaScriptが記述されていることだ。iframeは一つのWebページを区切って複数のコンテンツを表示させるためのHTMLタグ。ただ,このiframeは表示上はほとんど見えないように細工されている。このため,改ざんされたWebページを開くと,知らぬ間にiframeに埋め込まれた不正JavaScriptを自動実行し,悪質なサイトに誘導されたり,ブラウザやアプリケーション・ソフトのぜい弱性を突いて悪質なプログラムを勝手にダウンロードさせられたりするわけだ。

 例えばトレンドマイクロの場合は,オンライン・ゲームのアカウント情報などを盗み出すウイルスを仕込まれようとしたと見られている。もちろん,ほかの種類のウイルスを仕込まれる可能性もある。いずれにしても,攻撃者の背後には犯罪組織があり,狙っているのは最終的に金銭につながる機密情報の入手と見て間違いないだろう。

■参考記事:【続報】トレンドのサイト改ざん,手口やウイルスがほぼ明らかに
■参考記事:【セキュリティ・ホールの種類と危険性を知る Part2】SQLインジェクションの手口
■参考記事:【狙われるWebアプリケーション 第1回】はびこる「インジェクション系」のぜい弱性
■参考記事:【狙われるWebアプリケーション 最終回】インジェクション系攻撃への防御の鉄則

明確に日本のサイトを狙った標的型攻撃

 今回の一連の攻撃は,日本のサイトを狙ったものと推測されている。改ざんされたWebコンテンツには,そのサインが残されている。「fuckjp.js」「fuckjp0.js」という名前のスクリプトだ。

 実は今回の攻撃でWebページに埋め込まれたのは,悪質サイトからこれらのスクリプトを読み込むように記述されたJavaScriptだった。そして,このfuckjp.jsなどに,Webページにiframeを埋め込むコードが記述されていた。

 これらのスクリプトが置かれているのは「www.2117966.net」というサイト。このサイトのIPアドレスは中国のものである。さらに,iframe攻撃によって埋め込まれた不正プログラムが盗んだパスワードを送信する先も,中国のIPアドレスを持つサーバーだった。だからといって,一足飛びに中国人による犯行だとは言い切れないが,専門家によると,使われた攻撃ツールなどから考えて,背後には中国のサイバー犯罪組織の存在がありそうだという。

エンドユーザーの対策はJavaScriptの無効化

 Webサイトにアクセスするユーザーにとっての対策は,使っているソフトウエアのセキュリティ・パッチをきちんと適用しておくことや,ウイルス対策ソフトとそのパターン・ファイルを常に最新版に更新しておくこと。改ざんされたWebページにアクセスしても,ユーザー側に攻められるぜい弱性がなければ被害には遭わない。送り込まれてくるウイルスが既知のものなら,ウイルス対策ソフトで検出,回避できる。

 それでも,未知のぜい弱性を悪用するウイルスなど,ウイルス対策ソフトが未対応のウイルスを送り込まれる可能性は否定できない。これを防ぐために一番効果的な策は,できるだけJavaScript実行させないことだ。

 実際は,全くJavaScriptを動かさないのではなく,必要なドメインに関してだけJavaScriptを動かすといった使い方が現実的だろう。例えばFirefoxの拡張ソフトとして提供されている「NOSCRIPT」を使うと,JavaScriptを有効にするサイトと無効にするサイトを設定できる。無効にしていても,ブラウザの画面上で簡単に設定を変えられる。

 このほか,企業として対策を考えるなら,勝手なファイル・ダウンロードなどウイルスによる通信を遮断する手もある。例えばプロキシ・サーバーに認証機能を持たせる。もっと単純に,www.2117966.netなど,情報が明らかになっている不正サイトへの通信をフィルタリングしてもいいだろう。

■参考記事:改ざんWebサイト対抗にHTTPプロキシ/認証プロキシの導入を
■参考記事:NoScript●スクリプトの実行を禁止する
■参考記事:ブラウザの設定変更で身を守る

 重要なのはWebサイト側の対策である。そもそも,Webサイト側でページを改ざんされなければ,エンドユーザーがこうした被害を受けることはない。しかも,SQLインジェクションは斬新な手口というわけではなく,ブラウザからの入力データのチェックという明確な対処法がある。入力されたデータが,Webアプリケーションからデータベースに要求する処理,あるいはそのパラメータとして適切かどうかをチェックして,不正なデータなら処理を止めればよい。具体的には,入力されたパラメータの長さや構成要素をチェックする。

 既存のWebサイトの場合,稼働中のWebアプリケーションが対象になるため,必ずしも対処は容易ではない。それでも,Webアプリケーション・ファイアウォールを使うなど,できることはある。