2005年11月04日 - マルウェア・ウイルスの感染実験

マルウェアの挙動を観察する


 スパイウェアなどに感染した場合、アンチウイルスソフトやスパイウェア対策ソフトには十分に期待できない場合がある。
 これは対策ソフトウェアのシグネチャファイル(定義ファイル)がリリースされるまでのタイムラグの問題のみではなく。作成されたマルウェア関連ファイルをメーカーに検体として提出しようにもどれが本体・ドロッパー・ダウンローダーなのかわからず。またブラウザハイジャッカー経由で複数のマルウェアをインストールされた場合はどうしたらばいいものなんですかね。
 恐らく最も簡単で確実なのは「何かに感染する悪質サイトのURI」を、メーカーにフィードバックする方法のように思われるんですが。これらは数日で消失する場合も多いものです。

 またよくどこかの掲示板などで話題になる話の一つとして、「あるソフトウェアをインストールしたらおかしくなった」、「あるURIを開いたらば何かをインストールされ」などの質問なり体験談なんですが。
 何らかの目的でこのような不具合例を実際に明らかにしようと試みるのは、大変困難なもので。メチャクチャ凄いプログラマーの方が解析するならともかく、自分はそのような経験は無いし。
 ですのでまぁ、とりあえず実際にウイルスなりスパイウェアなりに感染させてみて、その挙動を観察したりはしてみてはいるものの。やってみるとこれが中々難しく、泥沼。
 マルウェアがどのような挙動を示すのか、レジストリの改変やファイルの作成、また個人情報をいずこかに送信するのか。これらを実際に検証するとしたらば、極めて煩雑な準備が必要となります。

パケットモニタを導入し、ネットワークを監視する


 こちらの自宅はADSLで、ADSLモデムにルーターを接続し、NATを利用していますが。まずは自分がどうやっているのかを説明します。
 うちのルーターのLAN側セグメントへは複数のEthernetアダプタの差込口がありますが。このうちの1つのみを利用し、それをリピーターハブへ接続。それぞれのパソコンは、リピーターハブよりEthernetケーブルにて接続しております。

 感染実験を行う実験機とは別に、ネットワークを監視する目的のパソコンを設置しまして。この監視用パソコンにパケットモニタソフト、一例としてVIGIL(札幌ソフト開発工場)をインストールし稼動しておいて、と。

 大体こんな感じのトポロジー図(と言うほど偉そうなものではなく)

 このようなSnifferを設置しておくのは、以下のような効果を期待するからなんですが。

  • 感染したパソコンがどのような通信を外部と行うのかを監視する
  • 感染中のパソコンにては、その通信は隠蔽されている可能性もあり信頼できない
  • 感染実験機にて再起動なりシャットダウンを頻繁に繰り返すため、時系列的にまとめて別のパソコンにて観測する必要がある

リピーターハブを使っている理由


 何故にスイッチングハブではなくリピーターハブを用いるのかと言えばですね。snifferにてネットワークを監視する際には、Ethernet上(つまりLAN上)の全てのやりとりを拾う必要があるんですが。スイッチングハブでは宛先以外のパソコンにはフレーム(LAN上で送受信される情報の単位)を送信しないんですね。スイッチングハブでもミラーポートなる全てのフレームが届くポートがある製品もあるんですが。うちの自宅には、ミラーポートが実装されているスイッチングハブがありません(笑。またミラーポートは通信量が凄まじくなれば、稀に取りこぼしが生じるようで(高額なスイッチングハブならばそうでもないんですかね、その辺の知識がやや欠如してるんですが)。それに貧乏だし。
 そこでこのリピーターハブを利用してるんですが、売れ残りで価格は千円ちょいだった記憶です。リピーターハブは、目的以外のパソコンにまで全てのフレームを送信するハブで。5年ほど前は家電量販店で販売されているハブはほぼ全てこのリピーターハブだったものの、時代の流れか消えつつあります。
 (Gigabit Ethernet向けリピーターハブも世の中にはあるんですが、7万円程度で手が届かず)

感染実験機をどう準備するか


 まず悩むのが、どのようなパソコンを人柱なり感染実験機にするのかとの点なんですが。
 幾人かは、実機にてテストしているようで。
 例えばCドライブに普通にOSをインストールし、それをNorton Ghost(Symantec)などでバックアップしておき、一通りテストが済んだらば元に戻すとか。もしくは感染中の状態に戻すため、イメージを元に復旧したりとか。
 Norton GoBack(Symantec)、これはSymantecが買収する前のものを以前はよく利用したんですが。頻繁にハードディスクへの書き込みが発生し、動作が遅くなるし、使い勝手はあまり良くはなかったと記憶しております。
 多少複雑な例として、Cドライブに管理用のOS、Dドライブにデュアルブートで他のOSをインストールし。DドライブのOSより感染実験を行っていた方が居ましたが。この場合はCドライブにてNTFSのアクセス権を設定しておかなければ、Dドライブに感染したウイルスによりCドライブの中のファイルを破壊される危険性があります。

 実機ではなく、エミュレーターを利用しテストしている方も居るようで。
 自分はMicrosoft Virtual PC 2004(Microsoft)(以下、VPC)を利用しておりますが。企業では動作テストのためにVMwareを利用する方が多いようです。
 このようなエミュレーターと実機との違いは、中々難しいんですが。ざっと説明するとしたらば。

  • 実機の方が、エミュレーターよりも動作が快適
  • 復旧・もしくは感染時の状態を再テストするには、エミュレーターの方が簡単
  • エミュレーター上のゲストOSにウイルスが感染しても、エミュレーターをインストールしているゲストOS(実機)には感染しない

    • 以前、ゲストOSより利用したフロッピーディスクが破損してしまった事故はありましたが

  • エミュレーターでは、複数のディスクイメージファイルを容易に比較でき、ハードディスクを物理的に外したりする必要は無い
  • エミュレーターでは、OSのライセンスの問題が生じる可能性があるため注意が必要(ライセンス購入しておけば宜しい)


 なおこの感染テストにおいては、どのOSを利用するのかの判別が難しく。Windows2000のSP未適用機、WindowsXPのSP未適用機、WindowsXP SP2の最新の状態など、それぞれを準備する必要が生じる場合もあるだろう。
 それらは必要に応じ判断してもらいたい。

VPCのゲストOSとしてXP HomeEditionをインストールする



 EドライブにVirtual PC関連ファイルをまとめて管理しているので、その辺は読みかえてもらいたく。

 ファイル→バーチャルディスクウィーザードを起動。
 「新しいバーチャルディスクの作成」→バーチャルハードディスク→F:\ドライブを選択し、バーチャルハードディスク(vhdファイル)を保存。
 「バーチャルハードディスクのオプションの選択」から、「容量固定」を選択、「バーチャルハードディスクのサイズ」で任意のサイズを選択。
 (容量可変の拡張バーチャル ハード ディスクでも構わないんだが)

 ファイル→「新しいバーチャルマシンウィーザード」起動
 「既定の設定を使用してバーチャルマシンを作成する」でなく、「バーチャルマシンの作成」を選択
 「バーチャルマシンの名前と場所」にてそのまま「New Virtual Machine」でなくF:\ドライブにバーチャルマシン構成(vmc)を保存→次へ
 「オペレーティングシステム」にて「その他」→RAMの調整より512B
 「バーチャルハードディスクオプション」より「既存のバーチャルハードディスク」を選択し、「バーチャルハードディスク.vhd」
 「復元ディスクを有効にする」のボックスにチェックを入れる

 WindowsXP Home Edition SP2 CD-ROMにてセットアップ
 (もちろん、目的なり必要に応じSP未適用のXPでもいいし。またWindows2000でも構わない)
 インストール時にCDよりパーティションを作成、「NTFSファイルシステムを使用してパーティションをフォーマット」を選択。
 「バーチャルマシン追加機能は、このバーチャルマシンにインストールされていないようです」のダイアログが出るが無視。
 その後は定法に従いOSをインストール。

 OSが起動し、デスクトップが表示される。
 「バーチャルマシンの追加機能」をインストール。


テスト機向けに、環境を整える


 自分としてはWindows2000 likeな環境の方が使いやすいのだ。そのためチョコチョコと変更する。なおスクリーンセーバーやモニタの電源の設定を操作する理由は、テスト時にこれらが稼動すると面倒との理由だけであり、それほどの意味は無い。まぁアンチウイルスソフトなどの長時間の稼動中にいきなりスタンバイ状態になったりするのは、いい気分ではないし。いずれも無効化しておく。

表示の変更



 画面のプロパティ→デスクトップ→背景→「草原」から「なし」に変更
 画面のプロパティ→スクリーンセーバー→スクリーンセーバー:Windows XP/待ち時間:10分→スクリーンセーバー:無し
  電源設定タブ→モニタの電源を切る→「20分後」から「なし」に変更
 画面のプロパティ→スクリーンセーバー→→モニタ電源→電源→[自宅または会社のデスク]の電源設定→(モニタの電源を切る:20分、(「ハードディスクの電源を切る」は表示されていない)→「なし」に、詳細設定→オプション→「アイコンをタスクバーに常に表示する」にチェックを入れないままにしておく
 画面右下のアイコンより、ライセンス認証→「はい、今すぐインターネット経由でライセンス認証の手続きを行います」を選択
  「Windowsのライセンス認証の手続き中にユーザー登録も行いますか?」にて「いいえ、Windowsのライセンス認証の手続きを行い、ユーザー登録は今行いません」を選択
 コントロールパネル→自動更新より、「自動(推奨)」を「自動更新を無効にする」に変更。
 (自動更新機能については、XPのバージョン次第ではOSインストール時に設定できる)
 光学ドライブのドライブレターがDになっていたので、管理ツール→ディスクの管理から、Qに変更

 Cドライブを開き「表示」→「ツールバー」→「アドレスバー」
 「表示」→「ツールバー」→「ツールバーを固定する」のチェックを外し、右側に押しやられているアドレスバーを動かし表示させた。

 タスクバーの上でマウスを右クリック→プロパティ→「スタートメニュー」タブ→「クラシック[スタート]メニュー」に変更、カスタマイズ→「頻繁に利用するメニューを優先的に表示する」のチェックを外す
 (これによりデスクトップ上に、マイドキュメント、マイコンピュータ、マイネットワーク、Internet Explorerが表示された。)

 シャットダウン、「バーチャルハードディスクへの変更を適用する」



ネットワークとInternet Explorerの設定



 インターネットのプロパティ→接続→セットアップ→新しい接続ウィーザード→次へ
 「ホームネットワークや小規模オフィスのネットワークをセットアップする」→次へ→完了した。
 「ネットワークセットアップウィーザード」が開始される。→キャンセル
 IE起動。「プライバシー」なるダイアログでクッキーの警告が出るが、「このメッセージを今後表示しない」にする。
 IEのプロパティから、Cookie、一時ファイルをクリア、履歴クリア、
 オートコンプリートの設定で、「Webアドレス」「フォームのユーザー名およびパスワード」「パスワードを保存する確認をする」の3つにチェックが入っていたが、[オートコンプリートの使用目的]の4つの項目のチェックを全て外れた状態にした。
 クッキーを「中」より「すべてのCookieをブロック」に変更

 IPアドレスを今後運用するプライベートIP addressに変更
 (ゲストごとに個別のスタティックなIP addressを利用するため)


検索画面をWindows2000と同様にする


 これは個人の好みの問題ではない。XPでの検索は犬が出てうっとおしいし、そして何故かデフォルトのままでは検索に時間がかかるようになるのだ。そこでWindows2000と同じような検索画面に変更する。

 regeditより「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
\Explorer\CabinetState」を開く。
 新規より名前が「Use Search Asst」の文字列値を作成し、値のデータは「no」とする。


隠しファイルなどを調べやすいよう、フォルダオプションの設定を変更


コントロールパネルを開き、フォルダオプションから表示を選択。

 「システムフォルダの内容を表示する」にチェックを入れる
 「ファイルとフォルダの表示」にて「隠しファイルおよび隠しフォルダを表示しない」から「すべてのファイルとフォルダを表示する」に変更
 「登録されている拡張子は表示しない」のチェックを外す
 「保護されたオペレーティングシステムファイルを表示しない(推奨)」のチェックを外す
 「タイトルバーにファイルのパス名を表示する」にチェックを入れる


レジストリエディタの状態の復元を無効とする


 何度もレジストリエディタを開いて操作する際に感じるんだが、前回開いたキーがそのまま開かれた状態になっているのは大変不便で。
 元ネタはWindows Start 2002年8月号の22pですが、どうも環境により個別に必要とされる操作は異なるようで。その辺は自分で考えてもらいたく。
 (XP HpmeEdition Goldをインストールした際のメモでは、(2)→(5)→(6)→(7)→(8)の手順で設定。)

 Windows XPの初期状態では、レジストリエディタの起動時に前回レジストリエディタを終了した時点で開かれていたキーが開かれる。
 1)HKEY_CURRENT_USER→Software→Microsoft→Windows→CurrentVersion→Applets→Regedit→Favoritesというサブキーが無ければ(2)、あれば(3)
 2)「regedit」キーを選択した状態で(無いのでRegeditの名称で作成した)、<お気に入り>メニュー→<お気に入りに追加>を選択→「お気に入りの名前」欄に半角で「regedit(Regeditの名称でやった)」と入力された状態のままOKボタンを押す。
 3)「Favorites」キーを右クリック→アクセス許可→詳細設定→「Favoritesのセキュリティの詳細設定」→アクセス許可タブ→「子オブジェクトに適用するアクセス許可エントリを〜」のチェックを外し、表示されたメッセージダイアログのコピーボタンをクリック。さらにOK→OK
 4)左ウィンドウでステップ1の「Regedit」キーを選択した状態で、右ウィンドウの「LastKey」アイコンをダブルクリック。値のデータ欄に入力されている文字欄を全て選択して、右クリック→削除を選択。「値のデータ」欄がクリックされたら、OK
  (LastKeyが無い場合はスキップするが、ある場合は実行)
 5)レジストリエディタの左ウィンドウで「Regedit」キーを右クリック→アクセス許可を選択→「Regeditのアクセス許可」ダイアログが表示されるので、「詳細設定」ボタンをクリック
 6)「Regeditのセキュリティの詳細設定」ダイアログが表示されたら、<アクセス許可>タブで「子オブジェクトに適用するアクセス許可エントリを〜」のチェックを外し、表示されたメッセージダイアログの<コピー>ボタンをクリック。さらに<OK>ボタンをクリックして、「Regeditのセキュリティの詳細設定」ダイアログを閉じる。
 7)「Regeditのアクセス許可」ダイアログに戻ったら、画面の上半分の「グループ名またはユーザー名」の一覧で、「System」という項目以外の「フルコントロール」「許可」のチェックを外す
 8)レジストリエディタを終了


[最近使ったファイル] に履歴が残らないようにする



 [スタート] − [ファイル名を指定して実行] − [regedit] と入力する。
 レジストリエディタが起動したら、 [HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer] を開く。
 右ウィンドウの何もないところで [右クリック] − [新規] − [DWORD値] を選択して、名前を [NoRecentDocsHistory] にする。
 [NoRecentDocsHistory] をダブルクリックして、 [値のデータ] を [1] にする。 ちなみに16進。
 タスクバーの上でマウスを右クリック→プロパティ→[スタート]メニュー→クラシックスタートメニュー→カスタマイズから、最近使ったファイルをクリア
 (即座には反映されないが、OSを再起動してみると反映される)


その他細々と



 タスクトレイよりWindows Messenger起動。
 [ツール] - [オプション] - [設定]タブ - [全般]より「Widnowsの起動時にこのプログラムを実行する」と「常にこのプログラムをバックグラウンドで実行する」のチェックを外す。

 「画面のプロパティ」→「デスクトップ」タブ→「デスクトップのカスタマイズ」→「全般」タブ→「デスクトップのクリーンアップ」→「60日ごとにデスクトップクリーンアップウィーザードを実行する」のチェックを外す
 (この設定をやっておかないと、いずれ起動時に頻繁に出てうっとおしいのだ)

 C:\Windows\Prefetchフォルダの中身を通常モードで削除。
 (一旦この操作をしないと、次の操作にて失敗するファイルが生じるから。)
 マイコンピューターからハードディスクのプロパティを開き、「このディスクにインデックスを付け、ファイル検索を速くする」のチェックを外す → 「C:\、およびサブフォルダとファイルに変更を適用する」のまま、OK
 (万が一失敗した場合、インデックスをまた付けてから、セーフモードでOSを起動してPrefefetchフォルダの中身を削除し、インデックスを外す)


tmp、tempなどの一次ファイルを処分しておく



 以下のフォルダのdesktop.iniとindex.datを除く全てのものを削除。
 これらのフォルダは通常はフォルダオプションより設定したとしても表示されないので、スタートメニューからの「temp」検索結果またはディレクトリをファイル名を指定して実行に入力し開き処理する。
 C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files\Content.IE5
 C:\Documents and Settings\Default User\Local Settings\Temporary Internet Files\Content.IE5
 C:\Documents and Settings\LocalService\Local Settings\Temporary Internet Files\Content.IE5
 C:\Documents and Settings\NetworkService\Local Settings\Temporary Internet Files\Content.IE5
 C:\WINDOWS\system32\config\systemprofile\Local Settings\Temporary Internet Files\Content.IE5

 また全てのtmpファイルを削除する。


感染テストのために、ソフトをインストールしておく


 以下の項目でインストールしておくソフトウェアは感染実験機のみではなく、場合によってはそのハードディスクを引っこ抜いて接続し調査したり、またVPCであれば感染したディスクイメージをDドライブとして設定・起動し調査するための他のゲストOSにも導入しておくのが望ましい。

アンチウイルスソフトの準備


 まずは常駐監視機能が備わっているアンチウイルスソフトが必要だ。個人的に推奨するのは、McAFEE製品である。これはMcAFEE製品はWindows・Internet Explorerの脆弱性に、Microsoft以上に早く対応している、ような気がするからだ。
 これは好みにより、Nortonでもウイルスバスターでも好きなものを用いても良いし。必要に応じてそれぞれ複数の製品をインストールした個別のディスクイメージを作成し、それぞれの製品により検出できるか否かを検証しても良いだろう。
 注意すべきは、これらの製品のアップデートを行い不具合が生じるのか否かを確認しなければならない点である。万が一の事態を避けるならば、発売された直後の新バージョンよりもむしろ、一つ前の旧製品の方が望ましい場合もあるだろう。
 実際にテストする際には、常駐監視機能を無効化したり、また起動時スキャンを無効にする場合もあるだろう。それらは目的に応じ設定してもらいたい。

 なお実際にテストを行う前には、インストールするアンチウイルスソフトとは別に、最新のANTIDOTE for PC AntiVirus SuperLite - 簡易版ウイルス検索ユーティリティを準備するよう推奨する。


セキュリティ対策製品の準備


 このブログを読む方はそれぞれ含蓄があるだろうし、それについてはサラっと。
 パーソナルファイアーウォールソフトを導入しておけば、意図しない通信を監視できるだろう。しかしマルウェアの感染によりこのようなソフトが機能しなくなる場合もあると留意してもらいたい。

 Ad-aware、SpyBotなど、スパイウェア対策ソフトも必要となるだろう。

NTFSのADS(代替データストリーム)


 まず目にする機会は無いものの、一応念のためNTFS代替データストリームを利用するマルウェア検出の準備をしておく。
 断っておくが、このADSを利用しているファイル・フォルダが検出されたとしても、それが即怪しいものとは限らない点には注意してもらいたい。
 このNTFS代替データストリームを含むファイルはAd-awareSEにて検出されるのだが、他にも有用なソフトウェアは複数あり、またどのようなものなのかを判別するために、NTFS 代替データストリームに関するメモ(B-) の独り言)などを参考としてもらいたい。

 これを利用するマルウェアとしてはW2K.Stream(Symantec)(Symantecでの発見日は2000年9月5日)が最も最初のものであり、その後はそれほど多くは無いが誕生しているようだ。

 まずはADSを含むファイルが検出されるか否かをテストする目的で、予め以下の手順に従いテストファイルを作成し実験してもらいたい。
 テスト用ファイルの作成方法は、NTFS 代替データストリームに関するメモ(B-) の独り言)にて紹介されていた方法を少し改変した。

echo "Stream test" > c:\a.txt:stream1.txt

 これでCドライブにa.txtの名称のファイルが作成される。

 今気付いたんだが)この原稿を書くに当ってAd-awareSEにてスキャンしたところ、保存していた怪しいファイル中にこのADSのデータストリームを含むものを発見した。何と言ったらばいいんだろうか・・・・・・・・・・・・

各種ユーティリティソフトの準備


 案外忘れがちなのが、感染中に表示されるダイアログなどをキャプチャするソフトウェア。このようなソフトにより作成される画像はメモにも役立つし、またテスト結果を公表する場合にも必須となります。
 Printscreenキーを利用してそれを貼り付けるのも、まぁ、いいんですが。
 マルウェアに感染中のマシンでは大変パフォーマンスが落ちており、中々これが難しい。
 自分はWinShotを推奨。これはショートカットキーによりキャプチャ画像が作成でき、そしてアクティブウィンドウのみ、また指定した範囲のみをキャプチャなど、大変便利なのでして。

 レジストリ関連としては、まずはRegDiff(清水 洋平's Valuable Softwares)。これは感染前と感染後のレジストリの改変を探す目的で利用するんですが、使い方はとりあえずRegDiffでレジストリを簡単に管理しましょう♪(Tef-room)を参考としてもらいたい。感染実験機以外のパソコンにも導入しておき、別マシンでレジストリの差分ファイルを作成し、修復用regファイルを作成する際にも役立つ。
 次に、レジストリ番犬バロンレジストリ番犬バロン(アーリバードのシェアウエアサポート)
 ここで一応断りを入れておくのだが。感染中のパソコンにてregeditを起動しても、一部の値などは隠蔽されている可能性もあるのには注意してもらいたい。

 レジストリの修正を監視するのに最も役立つツールは、Regmon(Sysinternals)である。レジストリの改変がチェックできるため、Rootkit固有のレジストリをログファイルより探したり、また修復作業がうまくいかない場合に見直す際に役立つだろう。しかしログファイルのサイズなりが膨大になるため、これをじっくりと調べるにはかなりの時間を要する可能性がある。


作成・改変されたファイルの検出


 感染時に生じるファイルの作成・改変を監視するには、Filemon(Sysinternals)が最良なのだが、これも前述のRegmonと同様、ログファイルが膨大となる。利用に当ってはある程度の時間を区切ってログのチェックを行うのがスマートである。
 TRIPWIREなどはサーバー向けだし、どうも違うような気がする。

 また感染中のOSでは、その結果がどこまで信頼できるのかが判別できない。そのため感染実験を行うマシンのハードディスクを外し、検証作業用マシンにスレーブ接続・もしくは外付けハードディスクケースを利用し、作成・削除・改変されたファイルの有無を検証する必要がある。

 CompDirなるツールもあるんだけど、これもなぁ。
 まめFile(AMA Soft)などは便利であるものの、作成・変更日時が誤魔化されている場合にはどうも。

 感染前・感染後のVPCのゲストOS用ディスクイメージファイルを他のゲストOSより参照して比較し調査したいのだが。
 ドライブ単位で丸ごと比較し扱え。ファイル・フォルダの作成・変更日時、またファイルサイズに変更点が無かった場合でもMD5シグネチャなどを利用し改変の有無を調査できるソフトがあれば大変ありがたいと考えていたらば、md5deepなるソフトを紹介していただいた。
 「md5ハッシュ値と、改竄・改変ファイルの検出(Semplice)」に使い方をまとめたので、参照していただきたい。

起動エントリを調査するソフトの準備


 予め断っておくんですが。レジストリのRun設定なりスタートアップフォルダを利用し、特定のソフトを起動するよう設定するとして。それらの設定、つまりHijackThisのログに表示されるようなものをこの場では「起動エントリー」と呼称しときます。
 そしてこれらのソフトウェアは、感染実験機のみにインストールしときます。

 まずはHijackThis。基本でしょうこれは。
 ただどうも違和感を感じている話なんですが。このHijackThisにしても他のユーティリティソフトにしても、起動エントリーをチェックしそのログを作成したとしても、「それが本当に正しいのか」は判別できない場合がある。
 この手のユーティリティソフトによっては、既存のファイルの改変・置換はわからない場合もあるし。また安全であると一般に考えられるようなファイルの名称と同じ名称の危険なファイルがあった場合、それを安全なものと勘違いしログより見逃す可能性があるだろう(擬態・偽装するマルウェア - ファイル名・エントリ名とHijackThisによる修復の難(Semplice))。
 また一般にRootkitと呼ばれるようなタイプのマルウェアが存在する場合、HijackThisでは検出できない起動エントリが存在する可能性もある点には、注意を払わなければならない。

 またサービス管理のため、SDELIST(有限会社 軟式)

Rootkit対策


 Rootkitに感染した場合、感染中のパソコンよりは関連ファイル及びレジストリを確認できなくなる可能性がある。これらRootkitの対策として、以下のツールを利用できるようにしておく。
 RootkitRevealer(Sysinternals)を準備しておこう。
 BlackLightはF-Secure社のRootkit対策ツールである。2006年1月には配布が終了する可能性があるが、どうなるんですかね。詳しい情報はPCに潜むRootkitを検出する新技術「F-Secureブラックライト」(ITmedia)を。
 このBlackLightは最近では、Sonyのコピー防止機能にRootkitが用いられていた件にて話題となっている(The "Sony rootkit" case)。


トラップ用メールアドレスの準備


 テスト前にOutlook Explessを起動し、example@example.comなどのメアドを登録し、Vigilのパケットキャプチャのログにて個人情報の漏洩の有無を確認する目的で走査していたのだが。
 マルウェアごとに捨てアドを作成し、そこにテスト後に何らかのメールが届くか否かを確認する手法を採る事にする。この場合のメールアカウントはmzcizaeaなど全く無意味で冗長なアカウント名とし、「偶然の一致」を避けるようにする。
 これはスパムや何らかの罠メールが、ユーザーのパソコンより抜かれたメールアカウント宛に届くのか否かを確認する目的である。

 イカさんの投稿を見て思いついたのだが。
 Regmonにて得たログをチェックする際に、デフォのメールアカウント及び送信者名を検索するのも一手だろう。

ブータブルCDの準備


 感染中のシステムよりは確認できないファイル・レジストリ・サービスなどが存在する可能性を考慮し、CDより起動し感染中のシステムのハードディスクを調査する方法がある。
 この方法では、Rootkitに感染しているシステムであっても、その隠蔽行為を回避できるだろう。

 サービスでは、Windows OSのCD-ROMより回復コンソールを起動し、LISTSVCコマンドより不審なサービスが無いか確認する方法が挙げられる。感染中のシステムでは見つからなかったサービスがこれにより発見できた場合、「disable サービス名」によりそのサービスが起動しないように処置できる。

 PE Builderなるツールを用いて、WindowsXPのブータブルCD-Rを作成する方法も考えられる。しかしWindowsOSのライセンスはどうなるのかな。実際にろくに試していないため、ここでは参考となるサイトを紹介するに留める。
 PE BuilderでWindowsXPブータブルCDROM(BartPE)を作ろう(NN SPACE)
 自分好みの緊急用ブートCDをつくろう! 〜Bart's PE Builder〜(MYCOM PC WEB)

 その他、Linspire(旧称:Lindows)のブータブルCDなど。これは削除できないファイルを処理したり、またWindows上から確認できないファイルを探し削除するには役立つ。
 またERD Commander 2005などの有料のユーティリティツールもあるのだが。その辺は自分で試行錯誤してもらいたい。

作業の前に


 まずは感染実験前に、tmpファイル・フォルダ、またIE関連ファイルなりの削除を確実に行わなければならない。更にはスタートメニューのプロパティより、最近使ったドキュメント、プログラム、Webサイトの記録を削除。
 またアプリケーションのインストールや更新は、テストを行う前日までに済ますのがベター。これは日付を元にファイルを検索する場合の利便性のためである。

 WindowsXPであるならば、最終的なセットアップが完了した時点で、システムの復元のバックアップポイントを作成しておく。
 これはシステムの復元機能により修復が可能なのか否かを判別するにも役立つ。

 何を目的とするのかにより、インストールし準備するソフトウェアなり、また設定は異なると思われるんだけど。
 一例としてWindowsのあるパッチを導入しなければどうなるのかを検証するならば、それを除きセットアップし。最新の状態でテストしたいならば、Service Packを導入後にWindows Updateを行うなど。
 基本的な作業の手順としてまず考えるべきは、「感染中のパソコンにて操作するソフトウェア」、または「感染中のハードディスクイメージファイルを他ゲストOSにて利用」もしくは「感染中のハードディスクを引っこ抜いてスレーブ接続・外付け接続」した場合に、どのようなソフトウェアを利用するのかの判断で。
 まずは感染中のシステムにより得られる情報は、必ずしも正しいものではないとの前提にて、「感染中のパソコンにて実行すべき操作・またはソフトウェア」と、それを外から眺め検証する環境より利用する操作、これを切り分け判別しなければならない。


課題


 マルウェア感染中のパソコンは、世の中の他のパソコンに対して感染活動を行う可能性がある。マスメーリングな(大量のメールを送信)などはルーターのポートフィルタリングにより予防できるのだが。その他の手段により他所を攻撃するような場合は、これを防止しなければ第三者に迷惑をかける可能性がある。
 ルーターとWANとの接続を切断してテストを行うと、マルウェアのアップデートもしくはその他のマルウェアの「呼び込み」を阻止してしまう可能性がある。
 マルウェアの中には、実機でテストした場合にはともかく、エミュレーター上でのテスト時には正常に動作しない(?)ものもあるようだ。
 Virtual PCでは、個別・もしくはひとまとめにて数ギガ単位のファイルを共有フォルダにて利用する場合、ファイルが破損したりゲストOSが固まる例がある。

関連記事


 隠蔽されているマルウェア・ウイルス・スパイウェアを発見する


この記事へのコメント
vhd,vmcファイルの保存先はE:\ではないはずです・・・
プロセス監視の内容,不十分です
Posted by Sakai at 2005年11月06日 00:15
>vhd,vmcファイルの保存先はE:\ではないはずです
自分的な利便性のためであり、それ以上の理由は無いんですね。

>プロセス監視の内容,不十分です
あ・・・・・・・・・・忘れてた。
後ほど追記します。
Posted by Luca at 2005年11月06日 09:17