PR
京セラコミュニケーションシステム株式会社
プロダクトサービス事業本部 技術顧問
徳丸 浩

 Webサイトの改ざんが問題になっている。今年に入ってから,中国からのSQLインジェクション攻撃が話題になっているが,Web改ざんは最近始まったものではなく,以前から継続して起こっている問題だ。

 振り返ってみると,2000年初頭に通産省(当時)を皮切りに中央省庁のWebページが次々に改ざんされる事件があった。当時のマスコミには,「××省のWebページにはファイアウォールが導入されていなかった」という論調の記事が多く,一連の改ざん事件がきっかけとなり企業や官庁などへのファイアウォールの導入が進む結果となった。

 現在はどうか。ファイアウォールの導入は非常に進んだが,現在でもWebサイトの改ざん事件は起こり続けている。すなわち,改ざんする側の技術が進み,ファイアウォールだけでは防御できなくなってきているのだ。

 本連載では,Webサイトの改ざんに対する代表的な手口を紹介した上で,その対策を中心に紹介する。まずは,最近のトピックの紹介からはじめよう。

●最近のトピック(1)MPack
 2007年6月28日に,JPCERT/CCから「複数のぜい弱性を使用する攻撃ツール『MPack』に関する注意喚起」というアナウンスが公開された。MPackは商用のクラッキング・ツールであり,正規のWebサイトを改ざんしてiframeを埋め込み,そこからクライアント・アプリケーションのぜい弱性を悪用してユーザーのクライアントPCにマルウエア(不正プログラム)を導入するというものである。図1にJPCERT/CCが発表していたMPackの攻撃手順を引用する。

図1●MPackの攻撃手順( JPCERT/CCが発表したもの)
図1●MPackの攻撃手順( JPCERT/CCが発表したもの)

 この手順からMPackの特徴を整理すると,以下のようになる。

  • 商用のクラッキング・ツールである
  • 能動的攻撃と受動的攻撃を組み合わせて使用している
  • 改ざんは最終目的ではなく,ユーザーにマルウエアを埋め込むための手段である

 ステップ1の「何らかの手段でWebサーバーに侵入する」手段については複数の説がある。具体的には,正規サーバーのFTPのパスワードが流通しており,これを悪用したという説,PHPなどの既知のぜい弱性を利用しているという説が公表されている。

●能動的攻撃と受動的型攻撃
 ここで能動的攻撃と受動的攻撃という言葉が出てきた。これらの意味を説明しよう。

 能動的攻撃とは,クラッカ(攻撃者)が攻撃対象に直接アクセスして攻撃する方法をいう。MPackの場合で言えば,図1のステップ1とステップ2が能動的攻撃である可能性が高い 。

 これに対して受動的攻撃は,攻撃者がワナを仕掛けて一般ユーザーをワナに誘導し,そのワナをユーザーが閲覧することを起点とする攻撃をいう。MPackの場合で言えばステップ5が受動的攻撃ということになる。

●最近のトピック(2)SQLインジェクションによる改ざん
 前にも述べたように,2008年3月以降,SQLインジェクションを利用した改ざん事件が多発している。3月11日には,トレンドマイクロのウイルス情報ページが改ざんされ,当該ページを閉鎖した。トレンドマイクロだけではなく,多くのサイトの多くのページが改ざんの被害を受けている 。

 報道されている情報などから,現在の問題となっている攻撃は,以下のような手順による(図2)。

図2●SQLインジェクションを使ったWeb改ざん攻撃の手順
図2●SQLインジェクションを使ったWeb改ざん攻撃の手順

 先に紹介したMPackと上記手順を比べてみると,改ざんの手法が異なることと,Webサイトに埋め込む内容(iframeかJavaScript)が異なるという違いはあるが,手口の大まかな流れや,最終的な成果(ユーザーのクライアントPCにマルウエアを埋め込む)は非常に良く似ている。上記ステップ2が能動的攻撃,ステップ3およびステップ4が受動的攻撃である。

●改ざんによる影響
 冒頭に紹介したように,Webサイト改ざん事件は,2000年初頭から広く認知されているが,当時の改ざん事件はサイトを改ざんすること自体が最終的な成果であった。改ざん後の画面は政治的なプロパガンダであったり,特定国家の国旗,おどろおどろしい画像や,改ざんを実行したグループの署名などであった。すなわち,改ざんを行うことのできる高度な技量を誇ったり,改ざんを実行した個人やグループの主張を訴えることが目的であったと考えられる。

 これに対して,MPackやSQLインジェクションによる最近の改ざん事件は,Webサイトの改ざんそのものは最終的な目的ではない。これまで説明してきたように,iframeやJavaScriptと,クライアント・パソコンのぜい弱性を利用してマルウエアを導入させることが目的である。従来のように改ざん結果を目立つように示すことはなく,むしろ見えないところで,マルウエアを導入する。このため,従来よりも対処が難しくなっている。

 このような複雑な手順でマルウエアを導入させる動機としては,大規模なボット・ネットの構築が考えられる。ここで,ボットの定義をIPAの資料から引用して説明しよう。

ボットの定義
ボットとは,コンピュータ・ウイルスの一種で,コンピュータに感染し,そのコンピュータを,ネットワーク (インターネット)を通じて外部から操ることを目的として作成されたプログラムです。感染すると,外部からの指示を待ち,与えられた指示に従って内蔵された処理 (後述)を実行します。この動作が,ロボットに似ているところから,ボットと呼ばれています。

 そして,ボット・ネットは以下のような動作を行う。

  1. スパム・メールの送信
  2. DDoS攻撃(分散型サービス妨害攻撃)
  3. PC内の重要情報の送信

1.および2.は,ユーザーのPCが他者への攻撃や迷惑行為に参加させられてしまうことになる。また,3.は重要情報の漏洩により,ユーザーの直接的な被害をもたらす。

●攻撃ルートとその対策概要
 Webサイトの攻撃手口は,大きく分けると3種類の方法がある。

  • FTPやTelnet,SSHなどのパスワードの入手
  • プラットフォームの既知のぜい弱性を悪用
  • Webアプリケーションのぜい弱性(SQLインジェクションなど)を悪用

 MPackがサーバーを攻撃するもう一つの手口が,FTPなどのパスワードを利用する方法だ。なんらかの手法でFTPなどのパスワードを割り出すか入手して,そのパスワードにより不正なページをアップロードする。対策としては,第三者に見破られない強固なパスワードを利用することや,パスワードを知っている人の異動や退職などのタイミングでパスワードを変更するなどのパスワード管理が基本となる。

 また,「最近のトピック(1)」で説明したPHPの既知のぜい弱性は,プラットフォームのぜい弱性に分類される。Webサイトを構築するためのOSやミドルウエアにぜい弱性があり,それを悪用された場合である。この対策は,ミドルウエア類の開発元から提供されるセキュリティ・パッチの適用やバージョンアップである。

 今年3月以降問題となっているSQLインジェクションによる改ざんは,「Webアプリケーションのぜい弱性」の典型例である。Webサイトのさまざまなサービスや機能を提供するアプリケーションにぜい弱性があり,それを悪用されるケースである。対策としては,アプリケーションを改修して,ぜい弱性を解消することが基本となる。

 これらの具体的な方法については,次回以降に詳しく説明することにしよう。