2007年 マイクロソフト セキュリティ更新プログラムの振り返り(後編)

 前編では、ウイルス被害件数とマイクロソフト セキュリティ更新プログラム(以下 修正プログラム)のリリース件数から相関関係について分析を行いました。
 修正プログラムのリリース件数は必ずしもウイルス被害件数に影響を及ぼしていないとの結論を報告いたしました。

 前編の投稿を読まれた方の中には、被害件数との相関関係が弱まっているという分析結果をみても、WEBメディアなどの報道では、たびたび脆弱性を悪用したウイルスの流通が確認されているように感じる方も多いと思います。

 後編では本年度TrendLabsが実施した注意喚起情報を元に、どのような傾向を持つ脆弱性がウイルスによって悪用されているのか分析を行っていきたいと思います。

脆弱性ライフサイクルモデル

 実例を分析する前に、モデルからウイルスと脆弱性の関係を表します。

 「ウイルス感染被害レポート – 2007年度(速報)」にもあるとおり、未修正の脆弱性を標的にした「ゼロデイ攻撃」が2007年も数多く確認されました。
 そこで、IEEE ジャーナル Computerに投稿された論文(* 注釈1)にて述べられている「脆弱性ライフサイクルモデル:Vulnerability Life-Cycle Model」を使用し、ゼロデイ攻撃
をモデルで表現してみたいと思います。
 このモデルでは、脆弱性は7つの状態を取りうると提案しています。


図1 ゼロデイ攻撃における脆弱性ライフサイクルモデル
図1 ゼロデイ攻撃における脆弱性ライフサイクルモデル

 ゼロデイ攻撃において、[発見]された脆弱性は製造元へ報告されることなく、世に[スクリプティング]として放たれ、それによって[発覚]しています。
 攻撃が[発覚]するも、製造元は[修正]に対する準備期間が与えられません。このため、[周知]までに時間を要し、対処療法が公開された後に正式な[修正]が行われ、[消滅]へ向かって収束していきます。

ゼロデイ攻撃の実例

 モデルによるゼロデイ攻撃の概要に続いて、2007年度(12月20日現在)のゼロデイ攻撃実例について、以下に紹介させていただきます。

パターンファイル対応日

修正プログラムリリース日

ウイルス名

攻撃種別

修正プログラム名

2007-12-14

2007-12-14

TROJ_TARODROP.AB

受動

ジャストシステム製品の脆弱性を悪用した不正なプログラムの実行危険性について

2007-12-05

2007-12-14

受動

QuickTime 7.3.1 のセキュリティコンテンツについて

2007-10-19

2007-10-25

TROJ_REALPALL.A

受動

RealNetworks, Inc. セキュリティ脆弱性に対応するアップデートをリリース

2007-08-20

2007-08-21

TROJ_LZDROPPER.A

受動

Lhazの脆弱性

2007-08-03

2007-08-09

TROJ_TARODROP.Q

受動

一太郎の脆弱性を悪用した不正なプログラムの実行危険性について

2007-06-27

2007-06-27

TROJ_LHDROPPER.A

受動

「+Lhaca」バッファーオーバーフロー問題

2007-04-16

2007-05-09

WORM_VANBOT.GC

能動

Windows DNS の RPC インターフェイスの脆弱性により、リモートでコードが実行される (935966) (MS07-029)

2007-04-08

2007-04-09

TROJ_TARODROP.K

受動

一太郎の脆弱性を悪用した不正なプログラムの実行危険性について

2007-03-28

2007-04-04

TROJ_ANICMOO.AX

受動

GDI の脆弱性により、リモートでコードが実行される (925902) (MS07-017)

2007-02-04

2007-02-14

TROJ_MDROPPER.FC

受動

Microsoft Office の脆弱性により、リモートでコードが実行される (932554) (MS07-015)

2007-01-26

2007-02-14

TROJ_MDROPPER.EQ

受動

Microsoft Word の脆弱性により、リモートでコードが実行される (929434) (MS07-014)

 2006年度にも7件のゼロデイ攻撃が確認されています。
 このため、ゼロデイ攻撃の増加が2007年の傾向であるとはいえません。

 しかし、2006年度の比較において、2007年度のゼロデイ攻撃には3つの特徴が挙げられます。

  • 受動攻撃を成立させる脆弱性が好んで悪用されている
  • マイクロソフト社のみならず、日本製ソフトウェアの脆弱性も悪用されている
  • [修正]から[消滅](* 注釈2)に至る期間が短期間である

 なぜ、このような傾向に変化していったのでしょうか。

変遷してきた攻撃手法:能動攻撃から受動攻撃へ

 ゼロデイ攻撃のみならず、既知の脆弱性の悪用状況を見ても同様の傾向が読み取れます。

 今回、TrendLabsが2007年度に注意喚起を実施した244件(11月30日時点)のウイルスを調査対象としました。

 その結果、全体の約11%が既知の脆弱性を悪用しています。それらのうち、82%は受動攻撃を成立させる脆弱性を悪用しています。
 2007年度の脆弱性悪用の変遷を表すうえで、「受動攻撃」というキーワードは外すことができないようです。

 脆弱性は大きく分けると2分することができます。先ほどからたびたび登場している「受動攻撃」とそれに対する「能動攻撃」です。

  • 能動攻撃:攻撃者側が起点となり、被害者がアクションをとらずとも攻撃者のアクション(攻撃データ受信)だけで成立する攻撃。(例:MS03-026)
  • 受動攻撃:被害者側が起点となり、被害者が何らかのアクション(要求)を実施した結果、攻撃データを受け取り成立する攻撃。(例:MS07-014; MS07-015; MS07-017; MS07-029)

 先の説明にもあるとおり、能動攻撃は、被害者のアクションを必要としないため非常に脅威です。
 WORM_MSBLAST.A(MS03-026)をはじめとするネットワークウイルスや2007年にもWORM_VANBOT.GCによる能動攻撃が確認されています。

 しかし、これら能動攻撃はテクノロジの進化により、耐性が強化されています。

 能動攻撃は攻撃者からの攻撃データを受信しなければ成立しません。このため、インターネットと内部ネットワークの間に配置されたファイアウォールによって強固に守ることができます。
 WORM_MSBLAST.A が流行した2003年当時は、ウイルス感染した持ち込みPCによる内部間での攻撃データ受信が心配されていましたが、2007年はパーソナルファイアウォールの普及により、その懸念も低下しています。

なぜ狙われる日本製ソフトウェア

 こうして攻撃者は能動攻撃による攻撃をあきらめ、受動攻撃へと移行していきます。

 受動攻撃は一手間かかりますが、テクノロジの手薄な箇所をねらい打ちすれば攻撃の成立は容易です。ターゲット攻撃時代においては自動更新機能により強固になってきたマイクロソフト社のソフトウェアを狙う必要は無くなりました。

 極端な例を挙げれば、たとえ、世界で100人しか使用していないソフトウェアであっても、その100人が標的とする組織に集中していて、脆弱なソフトウェアであれば、そのソフトウェアを狙うことが悪意あるユーザにとって効率的です。

 日本製のソフトウェアが狙われるようになったのには、日本を標的とする攻撃者が増え、より効率的な攻撃を行うために検索されたソフトウェアが日本製であったと考えられます。

[修正]から[消滅]までの短縮化

 しかし、100人しか使用していないソフトウェアから、未知なる脆弱性を発見することは容易なのでしょうか。
 この点もテクノロジの進化が解決しています。

 2007年「Fuzzing:ファジング」と呼ばれる脆弱性発見のテスト手法に大きな注目が集まりました。

 ファジングとは、ソフトウェアが入力待ちしているところにランダムな不正データ(fuzz)を与えることによって、任意のコードの実行を許すようなバッファオーバーフローやフォーマットストリングのエラーを「総当たり:ブルートフォース的」に発見する手法です。

 総当たり的な作業は繰り返し作業を得意とするコンピュータでは、簡単なプログラムにより自動化することが可能です。
 こうして、悪意あるユーザは手持ちのカード(未知なる脆弱性)を急激に増やしていったものと推測されます。

 また、手持ちのカードが増えたことで、[修正]が行われると直ちに新しいカードで[スクリプティング]を行い、再び世に放つようになったとも推測されます。

受動攻撃も[修正]より前に[消滅]へ

 能動攻撃はファイアウォールというテクノロジによって、[修正]より前に[消滅]させたことによって、その効力が衰えていきました。
 受動攻撃も同様の対策をとることができれば、現状を打開できると推測できます。

 Windows XP Service Pack 2やWindows Vistaには、この解となる機能が既に実装されています。
 「データ実行防止(Data Execution Prevention:DEP)」(* 注釈3)です。

 リリース当初、より効果的なDEP利用にはハードウエアの対応が必要であったり、その機能の複雑さ故に検証が進んでいないとの声を聞きます。
 このため、有効性を理解していても、現時点で機能利用に至っていないケースも多いかと思われます。
 しかし、Fuzzingにより見つけられるような脆弱性において、ハードウェアDEPは高い耐性が期待できます。

 2008年度は、受動攻撃に注目すると共に、ハードウェアDEPの導入に向けて検証計画を検討してみてはいかがでしょうか。

 

* 注釈1 William A. Arbaugh、William L. Fithen、および John McHugh、「Windows of vulnerability: a case study analysis : 脆弱性の Windows : ケース スタディ分析」、IEEE Computer、2000 年 12 月

* 注釈2 脆弱性ライフサイクルモデルにおける[消滅]の本来の意味は、脆弱性を悪用した侵入がほとんどのソフトウェアで不可能となることです。上記分析では、特定の脆弱性を繰り返し悪用したウイルスが見られなくなっている結果を[消滅]と見なして説明しています。

* 注釈3 Microsoft サポート技術情報 文書番号:884515「Windows XP SP2 のデータ実行防止機能について

 
【訂正と追記】

2007/12/22 02:08 Quick Timeの脆弱性(CVE-2007-6166)を悪用するウイルスとして掲載していた「TROJ_DLOADER.QQI」は、不正なReal Time Streaming Protocolパケットを受信した結果、リダイレクトされダウンロードされるウイルスです。
「TROJ_DLOADER.QQI」にCVE-2007-6166を悪用するコードは含まれていないため、ウイルス名を削除しました。
本攻撃の詳細については下記の記事をご参照ください。
TrendLabs Malware Blog : 「QuickTime Player Gets Exploited via RTSP
2007/12/22 02:12 RealPlayerの脆弱性を悪用するゼロデイ攻撃ウイルス「TROJ_REALPALL.A」の情報を追記しました。
2007/12/23 01:49 Quick Timeの脆弱性(CVE-2007-6166)について修正プログラムのリリース日に記載の誤りがありました。