Comments
Description
Transcript
マリシャスコードが Windows Vista に与える影響
SY M A N T EC A DVAN C E D T H R E AT R E S E A R C H 130 マリシャスコードが Windows Vista に与える影響 Orlando Padilla Symantec Advanced Threat Research Symantec Advanced Threat Research マリシャスコードが Windows Vista に与える影響 目次 概要 .................................................................................................................................................. 3 はじめに............................................................................................................................................ 3 フレームワーク.................................................................................................................................. 4 MonServ ................................................................................................................................... 5 Sovmain.................................................................................................................................... 5 Sovexamine .............................................................................................................................. 6 実行後の分析................................................................................................................................... 7 マリシャスコードの実行が正常に開始されるか? ..................................................................... 7 マリシャスコードはシステムの再起動後も残留するか?........................................................... 7 マリシャスコードが失敗する原因は? ....................................................................................... 8 結果の解説 ............................................................................................................................... 8 今後予想されるマリシャスコードについて....................................................................................... 10 データの整合性の喪失 ........................................................................................................... 11 ボットネット機能....................................................................................................................... 12 傍受 ........................................................................................................................................ 12 今後の取り組み .............................................................................................................................. 12 まとめ.............................................................................................................................................. 13 リファレンス..................................................................................................................................... 13 付録: Windows Vista に含まれない Windows XP バイナリ........................................................ 14 マリシャスコードが Windows Vista に与える影響 概要 本書では、従来の Windows システム向けに作成されたものをはじめ、現在発生している脅 威や今後発生する可能性のある脅威に対する Windows Vista の堅牢性について、専用に開 発されたフレームワークを用いた実験の結果を基に説明します。さらに、このフレームワークに よって示された評価基準、Windows Vista に適用できるセキュリティの留意事項、今後のマリ シャスコードに関する展望などについても解説します。 はじめに マイクロソフト社より新しくリリースされたオペレーティングシステム Windows Vista におけるセ キュリティ面での強化が、今日はびこる脅威にどのような影響を与えるかを見極めることは、とても 重要です。Vista で採用された多数のセキュリティ強化 [1] は、現在、ユーザーが頻繁に直面して いる脅威の被害を減らすために開発されたものです。本書で説明するフレームワークは、これらの 強化機能の効果を確認し、さまざまな種類の脅威に対する Windows Vista の反応についての評 価基準を策定する目的で考案されたものです。このフレームワークを用いて行われた Windows Vista の脅威に対する堅牢性の評価は、マリシャスコード実行の成功率、システム再起動後の脅 威の残留率、およびマリシャスコード実行の失敗条件を明らかにすることに重点が置かれました。 調査結果の分析により、Windows Vista でのセキュリティ強化に採用されたテクノロジーのなかで、 結果に直接的な影響を与えたのは、特に以下のものであることがわかりました。 y ユーザーアカウント制御(UAC)[2] - 以前は「制限付きユーザーアカウント(LUA)と呼ばれて いた機能です。管理者権限のアカウントを持つユーザーを、強制的に一般ユーザーとして実行 させることで、マリシャスコードの影響範囲を制限します。この機能により、一般ユーザーは通 常の操作はできますが、システムとってクリティカルなコンポーネントを透過的に変更することに 対しては制限がもうけられます。 y 仮想化環境 - ファイルおよびレジストリのリダイレクトを意味します。Windows Vista の仮想 化機能の主な目的は、Windows Vista の新機能である整合性レベル制限を認識しないレガ シーアプリケーションとの互換性を確保することです。非互換のアプリケーションを正しく実行す るためには、管理者トークンが必要となる場合があります。そのため、Windows Vista では、制 限された書き込みをユーザー環境内の仮想ディレクトリにリダイレクトすることによって、これら のレガシーアプリケーションを動作させます。 y 新しいファイアウォールポリシー - 双方向のフィルタリングがサポートされるようになったほ か、デフォルトでアプリケーション別にファイアウォールポリシーを設定できるようになりました。 管理者は、アプリケーションからのローカルネットワークリソースへのアクセスをブロックする際 に、そのアプリケーションを削除したり、実行を停止したりする必要がありません。 y Windows® Defender - マイクロソフト社がアドウェアやスパイウェアの脅威からユーザーを 守るために採用したアンチスパイウェアテクノロジーで、Internet Explorer 7.0 と連携して動作 します。これにより、Internet Explorer では、ダウンロードする前のファイルのスキャン、フィッ シングの特定、マリシャスコードのインストールを防ぐためのシステム全体のエントリポイント保 3 マリシャスコードが Windows Vista に与える影響 護などが行われるようになりました。 シマンテックは、これらの新しいテクノロジーの有効性をテストするため、現在蔓延しているマリシャ スコードのサブセットを Windows Vista 上で実行しました。テストされたマリシャスコードの種類は、 バックドア、キーロガー、大量メール送信ワーム、ルートキット、スパイウェア、アドウェア、トロイの 木馬などです。本書では、これらの脅威が Windows Vista に対しても有効であるかを分析した結 果を解説します。マリシャスコードの影響度がどの程度あるのかを調査するために、実行成功率、 システム再起動後の残留率、失敗率を明らかにしています。 本書は 2 部構成になっています。前半は、フレームワークの開発意図と実装方法ついて詳細に 説明します。後半では、このフレームワークを用いて行ったテストの結果について考察します。本書 では、Windows Vista のデフォルト環境の実装が持つ弱点を明らかにするとともに、新しく強化さ れたセキュリティ機能のうち、特に効果的であると思われるものを紹介していきます。最後に、結果 の分析と、今後、Windows のセキュリティ環境の変化に対して攻撃者がどのような反応をするか を予測します。 フレームワーク このセクションでは、この調査プロジェクトのためにシマンテックが開発したフレームワークについて 説明します。このフレームワークの目的は、マリシャスコードを Windows Vista 上で自動的に実行 し、その挙動を監視することです。このフレームワークには、基本となる 3 つのコンポーネントがあ ります。各コンポーネントは高い独立性と移植性をもっています。フレームワークの開発にあたりシ マンテックが定めた 3 つの要件は、次のとおりです。 y Windows Vista がデフォルト設定でインストールされていること y すべての脅威が制限ユーザー環境(一般ユーザー権限)で実行されること y すべてのテストは再現可能であること UAC とは、ユーザーを一般ユーザー(権限を制限されたユーザー)として強制的に動作させること で、攻撃対象となるオペレーティングシステムの領域を最小限に狭める機能です。管理者はデフォ ルトで一般ユーザー環境にログオンします。そして、特定のタスクを実行するのに権限が必要な場 合は、拒否されるか認証を要求されます。拒否されると、そのタスクは実行されません。認証では、 上位権限を適用するために管理者パスワードを入力する必要があります。このように権限を分ける ことにより、マリシャスコードがシステムに与えうる被害を効果的に低減することができます。また、 ユーザーに最小限の権限しか与えない、この Windows Vista の新しいコンセプトに対応していない アプリケーションを処理するために、マイクロソフト社は、ディレクトリおよびレジストリ I/O 要求を特 別なフォルダとレジストリハイヴへリダイレクトし、ユーザー環境の外に仮想化する方法をとっていま す。 このフレームワークの開発に際して、通常のユーザーはデフォルトで有効になっている UAC ポリ シーを変更しないであろうと想定しました。したがって、攻撃者も、脅威を進化させてこの新たな制 限された環境に対応するか、それとも、意図したタスクを実行させるために、上位権限を奪取する 方法を見つけるかのどちらかであると推測しました。このため、すべてのテストを UAC が有効な環 4 マリシャスコードが Windows Vista に与える影響 境で実施しました。 テスト環境についてもう一つ重要な点は、すべてのテストが VMware 仮想マシン上で実施された ことです。一部のマリシャスコードは仮想環境では実行されないように作成されています。そのため、 いくつかの種類のコードはテスト前の時点で失敗することが予想されていましたが、完全を期すた めそれらも対象に含めました。また、特にルートキット、バックドア、およびトロイの木馬は、ドライバ をロードしたり、システム全体の設定を書き替えるように作成されているため、UAC 機能により必 然的に失敗することになります。これらの脅威が実行されるのは、上位の完全な管理者権限を奪 取できた場合のみです。本書で取り上げていない別の調査の結果によると、UAC をバイパスし、必 要な権限レベルを取得することは可能であり、かつ当初予想されていたほど難しくないことがわ かっています。 MonServ MonServ は、このフレームワーク内で、監視プラグインのインスタンスを処理する機能です(図 1 左上のコマンドシェルを参照)。この監視プラグインは、マリシャスコードが実行された場合に、その 実行期間中にシステムがどのように振舞ったかを記録します。主に、マリシャスコードによって影響 を受けかねないシステムアクティビティが記録されます。これらには、システム設定やレジストリ キーの変更、ファイルの新規作成、仮想コール、ネットワークアクティビティなどがあります。 MonServ は、ネットワーク上で待機する簡易サーバーです。以下の 3 つのテキストベースのコマ ンド形式をとります。 y Start <プラグイン名> y Stop <プラグイン名> y Quit Start と Stop は、システムの現在の状態を情報収集する監視プラグインのインスタンスの起動ま たは停止を、プラグイン単位でサーバーに指示します。Quit は、サーバーにすべてのプラグインの 停止を指示します。 これらのコマンドを正しく機能させるには、実環境の管理者用シェルの下で MonServ を起動する 必要があります。これにより、MonServ でランタイムにドライバをロード/アンロードすることができ ます。これは、OS 上でカーネルモードからの I/O を正しく監視するために必要な条件です。このフ レームワークに使用されるプラグインは、Process Monitor [3] と、ネットワークおよびファイルシス テムの I/O を監視する、Observe と呼ばれるシマンテックの内部ツールです。構成されたすべて の監視ツールのインスタンスは、個別のログファイルを保存するために、実行されたマリシャスコー ドごとにロードされます。 Sovmain Sovmain コンポーネント(図 1 右上のコマンドシェルを参照)は、このフレームワークのコアコン ポーネントです。Sovmain は、ローカルディレクトリからターゲットとなる複数の悪質なバイナリコー ドを順番にロードし、その実行を繰り返します。まず、Sovmain は、マリシャスコードの実行の度に、 MonServ に監視プラグインのインスタンス起動を指示します。次に、Sovmain はマリシャスコード 5 マリシャスコードが Windows Vista に与える影響 の実行から 15 秒後に、プロセスの強制終了を試みます。そして、このプロセス(図 1 の右下に 描かれる部分)を繰り返します。マリシャスコードをキル(強制終了)すると、クラッシュしたり、別の プロセスが起動したり、別のファイルに感染して終了するなど、予期しない動作が起こります。この 時点で、Sovmain は MonServ に、監視の停止を指示して、ログファイルを入れ替えます。 UAC シェル (SovMain) 実環境の管理者 シェル (MonServ) メッセージ メッセージ 実行バイナリを 含むディレクトリ タイプ 停止 監視 プラグイン ネットワーク ソケット 開始 キル アーカイブ 15 秒 間隔 図 1. プログラムフロー Sovexamine このフレームワークの最後のツールが Sovexamine です。このツールは、実行のたびに記録され る大量のデータを正規化するために使用します。特定のバイナリのテスト結果を評価するためにこ のツールを使用した出力例を示します。 "11:39:55.874 AM","svchost.exe","852","FASTIO_RELEASE_FOR_CC_FLUSH","C:¥$Recycle.Bin¥ S-1-5-21-194839850-3226631451-796003310-1000¥$I5LDJ2G.fs_dump","SUCCESS","" "11:39:55.874 AM","svchost.exe","852","FASTIO_ACQUIRE_FOR_CC_FLUSH","C:¥$Recycle.Bin¥ S-1-5-21-194839850-3226631451-796003310-1000¥$IY5HUHQ.hashes_dump","SUCCESS","" ... "11:39:26.093 AM","WerFault.exe","2480","CloseFile", "C:¥Users¥user¥snakes on vista¥malware¥1da2_15b.ex__8376.exe","SUCCESS","" "11:39:26.093 AM","WerFault.exe","2480","IRP_MJ_CLOSE", "C:¥Users¥user¥snakes on vista¥malware¥1da2_15b.ex__8376.exe","SUCCESS","" ... "06/11/16 - 16:21:9", 2972, "¥Device¥HarddiskVolume1¥Users¥user¥AppData¥Local¥Temp¥", "WERF1D8.tmp.appcompat.txt", "C:¥Windows¥system32¥", "WerFault.exe", "06/11/16 - 16:21:24", 988, "¥Device¥HarddiskVolume1¥Windows¥System32¥winevt¥Logs¥", "Microsoft-Windows-UAC-FileVirtualization%4Operational.evtx", "<NO NAME>", "<NO NAME>", ... 6 マリシャスコードが Windows Vista に与える影響 CSV 形式のログは、ファイルサイズが大きくなると、非常に読みにくくなります。そのため、 Sovexamine を使用し、このデータの中から分析に無関係の情報を省き、必要なものだけを取り出 すことができます。なお、前述したものを含めたこれらの監視ツールでは、最初から記録データを省 略するようには設計されていません。情報を除外することが、悪意のあるソフトウェアがもたらす重 要な特性を見逃すことにつながるからです。ただし、テスト実行後の不要データの特定は、ほとん どの場合とても簡単です。フィルタリング後の情報には、フレームワークツールのアクティビティや Windows Vista のデフォルトのサービス(SearchIndexer、Lsass、Windows Defender など)が含 まれます。この除外プロセスが終わると、データは HTML テーブルに変換されます。特定の基準 は注目しやすいようにハイライトされ、結果を素早く分析できます。ここで使用される基準には、さま ざまなものが考えられますが、たとえば、システムコールの戻り値、プロセス名、仮想コール、 Werfault.exe によって捕捉されたシステム処理例外(存在する場合)などがあります。 実行後の分析 このセクションでは、フレームワークを用いたテストの実行結果を分析する方法を説明します。結果 の分析に際して持つべき視点は、次の 3 つに分類できます。それぞれについて説明します。 マリシャスコードの実行が正常に開始されるか? マリシャスコードが正しく実行されたかどうかを確定する際、注意すべき点がいくつかあります。よく ある例として、キーロガーには実行時に設定が必要なことが多いということがあげられます。キーロ ガーは、多くの場合、初回実行時に特定のプロパティ(ログファイルのパス、パスワードなど)の入 力をユーザーに要求します。通常、設定ウィンドウが表示され、初回実行の際はテスト上問題あり ません。しかし、2 回目以降、これらの設定ウィンドウが表示されたままの状態だと、キーロガーは 設定ウィンドウが開いたままハングしたり、設定オプションの検出に失敗して終了してしまいます。2 つめの例は、実行を、別に生成したプロセスに直ちに転送して、自らは終了するタイプのマリシャス コードです。したがって、本書のコンテキストで使用される「実行の成功」とは、Windows ローダー によって対象の悪質バイナリがメモリにマップされ、派生したエントリポイントで実行が開始されたこ とを意味します。ただし、それだけでは、必ずしもマリシャスコードがシステムに被害を与えることに 成功したという意味にはなりません。 マリシャスコードはシステムの再起動後も残留するか? システムの再起動後にバイナリが存続するかを調べます。システム起動時に実行可能プログラム をロードするために使用される一般的な手法を事前に準備し、それぞれの手法ごとに、残留した実 行可能プログラムの総数を調べました。ただし、この手法のリストは、マリシャスコードが、システム のブート時に起動されるように設定されている適正なバイナリに付着するタイプのものである場合 には、定義がやや曖昧になります。幸い、このフレームワーク自体がファイルシステムとレジストリ への書き込みを監視するように作成されているため、既存のバイナリへの書き込みが成功した ケースはすべて網羅されます。ただし、Microsoft® Filter Manager [4] をバイパスする未知の手法 が使用された場合には、マリシャスコードはこのフレームワーク全体を回避できます。 7 マリシャスコードが Windows Vista に与える影響 マリシャスコードが失敗する原因は? このカテゴリーでは、今回のプロジェクトの実施期間中に収集されたデータを分析します。表 1 の 左から 4 列めの見出しにある「失敗」とは、ランタイムにクラッシュした実行可能プログラムの数を 意味します。ロード中に失敗した場合や、インストールパッケージがサポートされていなかった場合 は含まれません。 厳 密 に は 、 バ イ ナ リ 実 行 の 失 敗 は 、 実 行 時 に Windows Vista の エ ラ ー レ ポ ー ト プ ロ セ ス (WerFault.exe)が稼働していたかどうかで決定されます。WerFault.exe とは、未処理の例外が起 こったアプリケーションについて情報を収集するプログラムです。このプロセスの実行時に、フォー ルトイメージがロードされ、監視ツールによってイベントがログされます。しかし、現在、考慮されて いない要素が 1 つあります。それは、プロセスが独自の例外ハンドラを持っているか、例外発生 からのリカバリ処理においてダイアログボックスが生成される場合、WerFault.exe プロセスが起動 されないことです。 一部のバイナリは、環境内の条件が満たされていないために、コードに従って負の値で終了しまし た。その結果、各サンプルの終了ステータスを監視しても、成功や失敗を判断する適切な指標が得 られませんでした。バイナリが任意の値で終了するのを避けられないことから、この手法では偽陽 性が発生しやすくなります。 表 1. 結果の統計 種類 試行数 成功 失敗 再起動後の残留 バックドア 197 143 (72%) 24 (12%) 6 (3%) キーロガー 118 60 (51%) 11 (9%) 5 (4%) ルートキット 17 3 (17%) 7 (41%) 0 (0%) 大量メール送信ワーム 113 81 (71%) 7 (6%) 4 (4%) トロイの木馬 210 145 (69%) 24 (11%) 4 (2%) スパイウェア 260 150 (58%) 24 (9%) 4 (2%) アドウェア 118 74 (62%) 9 (8%) 2 (2%) 未分類 728 439 (60%) 103 (14%) 34 (5%) 結果の解説 このフレームワークにおいて、分類および未分類のものを含む、約 2,000 のマリシャスコードのイ ンスタンスを実行しました。悪質バイナリは、シマンテックのウイルスリポジトリにあったものと、顧客 からの報告またはアンチウイルスベンダー他社とのパートナーシッププログラムを通じて発見され たものを使用しました。様々な種類のマリシャスコードを多数用いることで、ユーザーが日常的に直 面している脅威を、かなり現実に近い形で再現できました。 表 1 は、このフレームワークによって行われたテストの結果とその後の分析をまとめたものです。 8 マリシャスコードが Windows Vista に与える影響 このセクションの後半では、これらの数値が示す意味について詳しく説明します。表は、5 つの列 で構成されています。列 1 は脅威のクラス、列 2 はテストに用いたクラス別の派生バイナリの総 数を示します。列 3 は、正常に実行されたバイナリの数で、列 4 は、実行が完全に失敗したバイ ナリの数です。列 5 は、実行試行総数のうち、再起動後に残留に成功したバイナリ数を示してい ます。 バックドア このプロジェクトでは、合計 197 のバックドア型バイナリがテストされました。そのうち 143 種が このフレームワーク下で実行に成功しています。実行に成功したバイナリの中で、システム起動時 に実行されるようにレジストリキーやスタートアップディレクトリの書き替えに成功したのは 6 種だ けでした。多くのバックドア型は、リモートホストとの通信やサービスのポートバインドに依存します。 しかし、このフレームワーク下で実行されたバイナリの中には Windows Vista ファイアウォールの デフォルト設定では、ターゲットのホストのセキュリティを完全に破ったものは、1 つもありませんで した。このデフォルトのポリシーをバイパスする攻撃については、「今後の取り組み」セクションで説 明します。 キーロガー 197 のキーロガーバイナリのうち、60 種が実行に成功しましたが、再起動後に残留したものはわ ずか 5 種でした。ほとんどの場合、キーロガーはデフォルトの場所にログが記録されるように設定 されています。その場所は、通常、対話操作中のユーザーのディレクトリ以外のディレクトリに設定 されています。これがキーロガーの多くにとって壁となります。書き込み許可がないキーロガーは、 実行時に失敗します。しかし、攻撃者が非常に巧みで、書き込み可能なディレクトリにログできるよ うにユーザーモードのキーロガーの設定を変更できれば、その成功率はかなり高まります。この表 の成功数は、キーロガーの実行時にクラッシュしなかった数を示しています。ただし、ターゲットと なったホストに被害を与えることが可能なキーロガーの数をそのまま意味するものではありません。 それでも、実際に Windows Vista の制限された環境上でも実行に成功するキーロガーは存在し ます。本書の「今後の取り組み」のセクションでは、攻撃者が制限されたユーザー環境にフック機能 をロードさせ、キーストロークのロギングを可能にする方法について説明しています。 ルートキット 表 1 に示したように、テストしたルートキット 17 種のうち、再起動後に残留に成功したものは 1 つもなく、実行に成功したルートキットもわずか 3 種でした。ユーザーモードのルートキットの多く は、ローカルフッキング手法を使用して対話操作中のユーザーを監視できる可能性があります(前 述)。しかし、Windows Vista では UAC 制限のおかげで、これに成功したルートキットは 1 つも ありませんでした。カーネルモードのルートキットは、カーネル感染のために、ドライバのインストー ルや、それに代わる Direct Kernel Object Manipulation(DKOM)[5] を使用できないため、即座に 失敗しています。 大量メール送信ワーム 113 種の大量メール送信ワームのうち、実行に成功したのは 81 種で、システム再起動後に残留 したものは 4 種だけでした。 このタイプには、一般ユーザーがシステムを利用できないようにする Rontokbro.B [6] などのいく つかのウイルスとその亜種が含まれます。Rontokbro.B は、非常に攻撃的なウイルスです。十数 9 マリシャスコードが Windows Vista に与える影響 個のキーストロークシーケンスのいずれかが検出されるか、ウィンドウ内で見つかった場合、この ウイルスはマシンを再起動します。 トロイの木馬 Windows Vista のデフォルトのポリシー設定は、トロイの木馬の多くがターゲットホスト上でネット ワークオペレーションを実行するのを防止する上で、重要な役割を果たすことがわかりました。210 種のバイナリのうち、計 145 種が実行に成功し、再起動後に残留したのは 4 種だけでした。 スパイウェア/アドウェア スパイウェアの 260 種中 150 種、アドウェアの 118 種中 74 種が、実行に成功しました。再 起動後に残留したのは、スパイウェアが 4 種、アドウェアが 2 種のみでした。これら 2 つのタイ プは、実行に失敗したものが他の種類に比べてかなり多くありましたが、その理由は、多くが Vista には含まれなくなった、Visual Basic のランタイムライブラリと OCX コンポーネントに関連するもの であったためです。本書の付録に、以前のバージョンの Windows に含まれ、Windows Vista の デフォルトインストールには含まれない、OCX バイナリのリストを掲載します。これ以外では、スパ イウェア/アドウェアが実行に失敗した理由の多くは、UAC のセキュリティ制限によるものでした。 未分類 未分類のバイナリは、特定のクラスに分類されていないリポジトリからランダムに選択されました。 未分類のリストは、このプロジェクトでテストするバイナリの種類と数を拡大するために使用された ものです。計 728 種のバイナリのうち、実行に成功したのは 439 種で、再起動後に残留したも のは 34 種でした。 今後予想されるマリシャスコードについて 現時点のマリシャスコードソフトウェアを分析することにより、Windows Vista のセキュリティ制限を 破るために、今後登場するであろう手法について分析します。まず、Vista で新たに導入された重 要なセキュリティ強化により、今回のフレームワークでテストされたマリシャスコードの多くは阻止さ れることがわかりました。 それらのセキュリティ強化のほとんどは UAC に関するものですが、そうでないものが 1 つありま す。それは、Windows Vista のファイアウォールで、ユーザーが [ブロック解除] ボタンをクリックし ない限り、すべてのネットワーク通信が無効になるように設定されていることです。この機能は、一 見すると些細な強化に思えますが、ホストのバックドアを探そうとするマリシャスコードを大幅に制 限することができます。また、サードパーティ製アプリケーションによるリモートホストへの接続や、リ モート接続を待ち受けるポートへのバインドも、これによりかなり阻止されます。しかし、残念ながら、 ブロック解除機能には、制限付きユーザーの権限と同じ権限セットがあればアクセスできます。こ の権限設定が脆弱点を生み、Windows Vista のファイアウォールポリシーの有効性を低下させて います。マリシャスコードは、SendMessage アプリケーションプログラミングインターフェース(API) を呼び出してファイアウォールのポップアップダイアログボックスにメッセージを送信するだけで、ブ ロック解除のプロセスを自動化できてしまいます。 UAC の制限付きユーザー環境は、フレームワークを用いて行った今回のテストで、マリシャスコー 10 マリシャスコードが Windows Vista に与える影響 ドに対する最大の防御の役割を果たしました。特定のレジストリへの操作やシステムディレクトリへ の書き込みに対する制限、および特定の操作に承認を要求する設計は、攻撃やマリシャスコード の実行の成功率を低下させるために非常に効果的な機能だと言えます。 しかし、これまで見てきたように、マリシャスコードの一部は、システム再起動後も Windows Vista コンピュータに残留することが可能です。残留は、ローカルユーザーに割り当てられた固有のレジ ストリキー使って、システム再起動時にアプリケーションを呼び出す方法で行われます。 ユーザー固有のレジストリキーは、通常、OS のブートプロセスにおいて適正なプログラムをロード 可能にするために使用されます。攻撃者は、以前の Windows のバージョンでも、同じロードポイ ントをマリシャスコードで利用していました。マイクロソフト社の Windows Defender などのアンチ スパイウェアは、通常、レジストリキーへの新たなエントリや改ざんを監視しているので、システム 初期化の際にマリシャスコードを実行しようとするには、より高度なステルス技術が必要になります。 これまで、攻撃者がレジストリキーの改ざんを隠そうとする際、OS 環境へ「融合化」する手法を主 に使用してきました。この手法は特定の状況下では依然として有効ですが、制限付きアカンウトで は %SystemRoot% への書き込みが不可能であるため、失敗する確率が高くなると考えられま す。 そこで、より侵入度が高く、効果的な攻撃手法として攻撃者が考えると想定されるのが、以下のい ずれか 1 つの条件を満たすサードパーティ製ソフトウェアをマリシャスコードに特定させることで す。 y 制限付きユーザーが書き込み可能な実行可能プログラムを含み、もともとリストされているレジ ストリキーの 1 つを使用してシステム起動時に起動する。 y 書き込み不可のレジストリキーが書き込み可能な実行可能プログラムを指定していて、システ ム起動時に起動させる。 レジストリキーが書き込み可能でバイナリが書き込み不可である場合、攻撃者は、自らが選んだ実 行可能プログラムを指定するようにレジストリキーを書き替え、オリジナルのプロセスを生成して、 マリシャスコードの本体を実行することができます。レジストリキーが書き込み不可でバイナリが書 き込み可能である場合、攻撃者は、サードパーティの実行可能プログラムを感染させることで、前 述と同様のオペレーションを実行できます。またユーザーのデフォルト環境の startup ディレクトリ も、マリシャスコードの実行を隠すために利用される可能性があります。制限付きユーザーを対象 にした攻撃は、システム全体を狙ったものではありません。それでも、かなりの被害を受ける可能 性があります。以下のセクションでは、Windows Vista における管理者権限以外を狙った攻撃の 有効性について説明します。 データの整合性の喪失 攻撃者が前のセクションで述べた手法の 1 つを使用してユーザー環境に常駐することに成功した 場合、使用中の特定のウィンドウを強制終了したり、システムを意のままにリブートしたり、機密情 報を窃盗/削除/改ざんすることなどの操作を行うことが予想されます。これらは、いずれもデー タの喪失を招きます。 11 マリシャスコードが Windows Vista に与える影響 ボットネット機能 前述の「今後予想されるマリシャスコードについて」のセクションで述べたように、攻撃者がファイア ウォールのブロック解除を実行して攻撃できるとすると、ボットに一般的に含まれる機能のほとんど が使用できることになります。ボットネットで使用される機能には、たとえば、次のようなものがあり ます。 y ボットネット不正管理者とのリモート通信 y ローカルファイルシステムのごみあさり y 分散型サービス拒否攻撃への関与 y ネットワークプロキシ y ネットワーク偵察 y Internet Explorer のポップアップ 傍受 Windows の旧バージョンで使用可能な SetWindowsHookEx [7] API コールを使用すれば、ユー ザー指定のコールをフックチェーンに挿入することにより、ランタイムにアプリケーションを他の API コールにフックできます。ただし、マリシャスコードは、自らと同じレベルの整合性で実行されるプロ セスにしか影響を与えることはできません。 マリシャスコードの作成者が注目している 2 つめの API コールが、GetAsyncKeyState [8] です。 このコールは、デスクトップ上のキーストロークやその他の対話アクティビティを監視するために、 DLL 挿入手法と一緒に使用されます。この手法にも同じ制約が当てはまります。つまり、攻撃者は、 脅威と同じレベルの整合性で実行されるアプリケーションにのみ影響を与えることができます。 今後の取り組み このフレームワークを構築するにあたっては、今後、繰り返し使用する場合に留意しなければなら ない、多数の制約が明らかにされました。第一に、現在のフレームワークでは、ユーザーモード・ フックの特定と、マリシャスコードによるコンピュータ再起動の阻止ができないということです。こう いった機能が備われば、テスト結果も改善されると思われます。もう一つ、同じく重要なことは、各 サンプルの実行時における仮想マシンのインスタンスの分離です。これは、テストに使用する、仮 想マシンのベースとなる OS のイメージがマリシャスコードによって被害を受けるのを防ぐためで す。また、これに続く重要事項は、仮想マシンの依存性をなくすことです。 Windows Vista におけるマリシャスコードの実行の成功に関する調査は、今後も継続して行います。 新たな攻撃媒体が発見され、マイクロソフト社が対応策を明らかにした後に、続けて見つかった亜 種を使って調査を行い、その結果を記録する予定です。 12 マリシャスコードが Windows Vista に与える影響 まとめ Windows Vista におけるマリシャスコードの影響を計るため、シマンテックは、多数のマリシャス コードサンプルを実行してその挙動を追跡するフレームワークを作成しました。このマリシャスコー ドの多くは、Windows XP およびそれ以前のバージョンの Microsoft Windows を標的にしたもの です。その結果、Windows Vista 上で実行した場合、これらのマリシャスコードの有効性ははるか に低いことがわかりました。しかし、Windows Vista が広く導入されるようになれば、攻撃者はその 環境に順応した新たな攻撃をしかけてくることが予想されます。また、テスト結果に示されるように、 Vista のより制限された環境の範囲内でも実行可能な脅威が、すでに現れはじめています。さらに、 本書の対象範囲外で実施された調査によると、管理者の完全な権限を奪取するテクニックを使用 する脅威も見つかっています。マイクロソフト社は最近、UAC をセキュリティ境界 [9] と呼ぶことを 先送りにしましたが、UAC は、従来にない保護層を提供することを目的として設計されています。 現在の脅威が持つ能力には、機密情報へのアクセス、ネットワーキング機能、システム再起動後 の残留などがあります。このことから、脅威は、現在の Windows Vista 環境で拡散するために必 要な機能をすでに備えていると思われます。 セキュリティ分析における最も重要な視点の 1 つは、あるテクノロジーの脅威空間について理解 することです。また、セキュリティモデルを開発する上で最大の課題は、セキュリティとユーザビリ ティの両立可能な兼ね合い条件、つまり、トレードオフを見いだすことです。OS が強固なセキュリ ティに守られ、外部から侵入できなくても、その結果、使い勝手が悪くなれば、トレードオフは失敗で す。一方で、攻撃者の目的は、システムのセキュリティを損なうことで、その他の結果はほとんど、 あるいはまったく重要ではありません。トレードオフがないという点では、攻撃者は常に優勢な立場 にいると言えるのです。 リファレンス 1. Scott Dorman 「Windows Vista: Kernel Changes - Has anybody seen Gina and what's a UAC? (Windows Vista:カーネルの変更 - GINA はどこへ消えたか、UAC とはなにか)」 http://geekswithblogs.net/sdorman/archive/2006/06/17/82204.aspx 2. Microsoft 「User Account Control Overview(ユーザーアカウントコントロールの概要)」 http://technet.microsoft.com/en-us/windowsvista/aa906021.aspx 3. Microsoft 「Process Monitor v1.01」 www.microsoft.com/technet/sysinternals/utilities/processmonitor.mspx 4. Microsoft 「File System Filter Drivers(ファイルシステムフィルタドライバ)」 www.microsoft.com/whdc/driver/filterdrv/default.mspx 5. HBGary LLC 「Direct Kernel Object Manipulation(カーネルオブジェクトの直接操作)」 www.blackhat.com/presentations/win-usa-04/bh-win-04-butler.pdf 6. Symantec Corporation 「Symantec Security Response(シマンテックセキュリティレスポンス)」 www.symantec.com/security_response/writeup.jsp?docid=2005-100313-3908-99 13 マリシャスコードが Windows Vista に与える影響 7. Microsoft MSDN ライブラリ、 http://msdn.microsoft.com/library/default.asp?url=/library/enus/ winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/setwindo wshookex.asp 8. Microsoft MSDN ライブラリ、http://msdn2.microsoft.com/en-us/library/ms646293.aspx 9. Microsoft 「Windows Vista User Account Control Internals(Windows Vista ユーザーアカウ ントコントロールの詳細)」 http://www.microsoft.com/emea/itsshowtime/sessionh.aspx?videoid=360 付録: Windows Vista に含まれない Windows XP バイナリ ダイナミックライブラリ OCX サードパーティの DLL MFC71.DLL MSCOMCTL.OCX TABCTL32.OCX MFC71u.DLL MSWINSCK.OCX MSVBVM50.DLL BASE64.DLL COMCTL32.DLL WPCAP.DLL CVWRT.DLL 14 Copyright ©2007 Symantec Corporation. All rights reserved. SymantecとSymantecロゴは、米国におけるSymantec社およびその関連会社の登録商標です。その他の会社名、製品名は各社の登録商標または商標です。 製品の仕様・価格は、都合により予告なしに変更することがあります。本カタログの記載内容は、2007年4月現在のものです。 株式会社シマンテック 〒107-0052 東京都港区赤坂1-11-44 赤坂インターシティ www.symantec.com/jp E0704WP0-IN-MCVISTA