平原伸昭/トレンドマイクロ スレットモニタリングセンター

 この特集では,筆者が法人顧客のサポート・エンジニアとして経験した数多くの実例の中から,企業ネットワークで実際に発生したある事例について,時系列に従い,その時々でシステム管理者とセキュリティ・ベンダーのサポート・チームが試行錯誤で行った現場の対処を紹介する。

 第3回は,2日目の検体採取後から復旧作業をつづる。それに伴い,採取した検体の解析と解析結果を踏まえたうえで,修復対象端末の優先度付けや修復・OS再インストールなどの対処を区分する「トリアージ」という考え方を紹介しよう。また,この事例で感染源となった不正プログラムの活動の詳細と,一般的なファイル感染型の不正プログラムの区分についても解説する。



 午前1時。複数の端末での調査により,11種類の疑わしいファイルとこれらのファイルがアクセスする2つのURLが判明した。

 「まずは,このファイルを解析にまわします」

 私は該当ファイルをトレンドマイクロ社内で待機している解析エンジニアに送信した。

 「次に,不正なWebサイトへのアクセスを止めましょう」

 今しがた到着したA社のWeb関連チームに,2つのURLにアクセスしたコンピュータの割り出しを依頼した。対象URLのブロックと感染コンピュータを割り出すためだ。

 「この処理によって,新たな不正プログラムのダウンロードを防ぐことができます。また,復旧作業前までに感染コンピュータを割り出すことが必要です」

 Web関連チームに作業を依頼した後,私はすぐにシステム担当者のM氏の方を向いてこう告げた。

 「解析結果が出るまでには少し時間がかかります。その前に,大事なことを説明しておきたいのですが……」

 新たな不正プログラムのダウンロードを防ぎ,トレンドマイクロからパターンファイルが届けば,今度は本格的な修復作業が始まる。その前に,M氏にあることを理解しておいてほしかったのだ。それは,作業中,バックアップからファイルを復旧する必要が生じる可能性があることである。

 「今回収集した不正プログラムの中に,ファイル感染型が含まれている恐れがあります。ファイル感染型とは,Windowsの実行可能形式のファイルに感染するタイプの不正プログラムの総称です」

 「なるほど。しかし,なぜファイル感染型だとバックアップからファイルを復旧する必要があるのですか」

 私は,ファイル感染型の恐ろしさを説明し始めた。

上書き感染型にかかったマシンはトリアージで“ブラック・タグ”を

 「トリアージ(Triage)」という用語をご存知だろうか。トリアージとは,災害医療などにおいて,負傷者を重症度,緊急度などによって分類する方法である。これにより,大事故や大規模災害など多数の傷病者が発生した際に,救命の順序を決め,効率的な処置を施すことができる。

 日本では,消防庁によって書式が規格されており,カテゴリー0(ゼロ)からカテゴリーIII(スリー)に分類されている。カテゴリー0は別名ブラック・タグと呼ばれ,体幹や頭部に重大な損傷があり,既に生命反応がなくなりかかっている人,または既に死亡している人に付けられるタグである。救命不可能なため,優先度は最も低い。

 不正プログラムのインシデント・オペレーションの復旧作業フェーズにおいても,このトリアージの考え方がしっくりくる(表1)。とりわけファイル感染型の被害に遭遇した場合には,この考え方を基にして復旧作業を行う方が賢明である。

 ファイル感染型の感染ルーチンは,主に6つに区分できるが,その中で「上書き感染(Overwrite)型」と呼ばれるものがある。これは,元のプログラムのコードの一部またはすべてを上書きし,元のプログラムを破壊して感染を行うものである。元のファイル情報がなくなってしまうため,ウイルス対策製品で検出できても駆除することはできない。このような感染ルーチンを含む不正プログラム被害に遭った場合には,カテゴリー0と判断し,バックアップから復旧することをすぐに決定すべきである。

表1●トリアージの例
カテゴリー 災害医療等における判定 セキュリティ・インシデントにおける判定
黒 (Black Tag)
/カテゴリー0
死亡,もしくは救命に現況以上の救命資機材・人員を必要とし,救命不可能なもの 上書き感染型に感染し,駆除作業が不可能な状態になったファイルを含むコンピュータ・システム
赤 (Red Tag)
/カテゴリーI
生命にかかわる重篤な状態で,一刻も早い処置が必要で救命の可能性があるもの 上書き感染型以外のファイル感染型に感染し,駆除作業に時間がかかる状態になったファイルを含むコンピュータ・システム
黄 (Yellow Tag)
/カテゴリーII
今すぐに生命にかかわる重篤な状態ではないが,早期に処置が必要なもの トロイの木馬,ワームなど1個の不正プログラムに感染した状態のコンピュータ・システム
緑 (Green Tag)
/カテゴリーIII
救急での搬送の必要がない軽症なもの 現時点で感染の疑いはないが,近接ネットワークに不正プログラムの感染が確認されているコンピュータ・システム

 また,上書き感染(Overwrite)型以外の感染ルーチンであっても,ファイル感染型の場合はトロイの木馬型に比べて,駆除ツールを作成するための時間がかかることも付け加えておきたい。検出だけであれば,パターンファイルを作成する時間に差はないが,駆除となるとファイル感染型への対応の方が厄介である。

 最近の攻撃者はこれに目をつけ,不正プログラム自身の隠ぺいだけでなく,発見されることを前提にファイル感染型をベースにワーム機能,バックドア機能,ダウンロード機能などを追加する例が増加している。このため,上書き以外のファイル感染型の場合には,カテゴリーIと判断し,特定の時間以内に駆除パターンファイルが提供されない場合にはバックアップからファイルを復旧することを念頭にして駆除作業の準備にとりかかりたい。

 なお,本来のトリアージにおけるカテゴリーI(レッド・タグ)は,生命にかかわる重篤な状態であり,一刻も早い処置が必要で救命の可能性があるものである。

 参考までにファイル感染型の分類を以下に記述する(図1)。

  • 上書き感染(Overwrite)型:元のプログラムのコードの一部またはすべてを上書きし,破壊して感染を行う。元のファイル情報がなくなってしまうため駆除ができない。
  • 追記感染(Append/Prepend/Cavity)型:元のプログラムを破壊しないようにウイルスが自分のコードを追加または挿入して感染を行うもの。ウイルス・コードの実行が終わった後に元のプログラムに制御を返す。
  • EPO(Entry Point Obscuring)型:エントリ・ポイントやファイル・ヘッダ情報の変更を行わずにファイル感染を行う。元のプログラムのコードの中にある呼び出しコードを自分のコードを呼び出すように書き換える。
  • 末尾追加(Append)型:元のプログラムのコードの末尾にウイルス・コードを追加し,プログラムのスタート位置を示すエントリ・ポイント(EP)を自分のコード(ウイルスのコード)のスタート位置を指すように書き換える。
  • 先頭追加(Prepend)型:元のプログラムのコードの先頭にウイルス・コードを追加する。
  • 未使用部上書き(Cavity)型:元のプラグラムのコード内の未使用部分(ヌルコード)にウイルス・コードを上書き挿入する。

  ・上書き感染(Overwrite)型   ・追記感染(Append/Prepend/Cavity)型   ・EPO(Entry Point Obscuring)型  
  ・上書き感染(Overwrite)型   ・追記感染(Append/Prepend/Cavity)型   ・EPO(Entry Point Obscuring)型  
  ・末尾追加(Append)型   ・先頭追加(Prepend)型   ・未使用部上書き(Cavity)型  
  ・末尾追加(Append)型   ・先頭追加(Prepend)型   ・未使用部上書き(Cavity)型  
図1●ファイル感染型の分類一覧
[画像のクリックで拡大表示]

 午前4時ごろ,ウイルス解析エンジニアに送っていたファイルの解析結果が返ってきた。

 「やはり,そうだったか」

 悪い予感が的中したのだ。

 「収集したファイルの中に,ファイル感染型の不正プログラムがありました」

 解析結果を聞いたM氏の顔に焦りの色が浮かぶ。

 「どのコンピュータのどのファイルをバックアップから復旧すればよいのですか」

 すでに1000台を超えるコンピュータで感染被害が報告され,工場封鎖によってビジネスに影響が出ているのだ。ここでさらに復旧作業に手間取ることは,M氏としても絶対に避けたいところだった。

 「安心してください。上書き感染型の感染ルーチンは含まれていなかったので,バックアップを使わなくても大丈夫です。1時間後に,今回の不正プログラムを検出するパターンファイルと駆除ツールを提供します。それまでに具体的な作業について作戦を練りましょう」