2006年03月05日 - ウイルス・スパイウェア感染とWindowsのレジストリ(Registry)
感染後に行われるレジストリ(Registry)改変
スタートアップエントリ(Startup entry)への登録
ウイルスやスパイウェアなどのマルウェアに感染した際にほぼ確実に観察される挙動は、レジストリの操作である。稀にはレジストリの改変を行わないものも存在するが、その比率はそれほど高くはない。
感染時に最も起こりうるのは、そのマルウェアがOS起動時・ログイン時に起動されるようレジストリを修正する場合だ。このような項目はStartup entry(スタートアップエントリ)と呼ばれるが、時には別の名称で扱われる(スタートアップ項目の呼称が多いようだ)。ネット上で相談を受け付けているサイトにてHijackThis(Merigin.org)やSilent Runner(SilentRunner.org)などを利用し、スパイウェアなどからの修復をアドバイスするサイトを目にした経験はあるだろう。
これらを語りだせばあまりにも長くなるので、この場ではとりあえず保留し次の機会とする。
意外な症状が、実はマルウェア感染によるもの
マルウェア全般に感染した場合に起こる症状と言えば、何を思いつくのだろう。中には「えぇ?そんなものまで?」と驚かれるようなものもある。
凄まじい改変を行うウイルスとしてVBS/Qoma@MM(McAFEE)などはもうリカバリーしたらばと薦めたくなるような破壊活動を行う。W32.Swen.A@mm(Symantec)はレジストリエディタの起動を妨害し、更にはexeやbatなどの形式のファイルを開く際に自動実行させる。
またマルウェアに感染した後にデスクトップの表示や壁紙が変更され、それを修復できないように設定される例も多く見受けられる。
何かに感染させられる怪しいサイトを、信頼済みサイトゾーンに登録される例もあるだろう(Internet Explorerの信頼済みサイトと制限付きサイト設定についてはIE-SPYADと制限付きサイト(Semplice)を読んでもらいたい)。
レジストリエディタよりの制限と解除
ここではMicrosoftによる以下の解説を中心とし、最近よく目にするものを幾つか紹介する。
Windows XP における [スタート] メニューのポリシー設定(Microsoft)
ポリシー レジストリ エントリ (デフォルト ユーザー)(Microsoft)
管理者権限があるユーザーアカウントを利用しているホームユーザーのパソコンを対象とし、WindowsXPにウイルスやスパイウェア、ブラウザハイジャッカーなどが改変するレジストリの設定を幾つか紹介する。
紹介したものと全く同じ表示が出たとしても、それは何かに感染しているからとは限らない。職場のシステム管理者が、利用者によるイタズラを防ぐ目的で行っている可能性もある。
特に断りが無ければ、紹介する名称のDWORD値を作成し、値を10進法で「1」にすれば各種機能が制限される。
制限を解除するためには、DWORD値をダブルクリック・またはマウスを右クリックし「修正(M)」*を選択し、値を10進法で「0」に設定すればよい。いきなりDWORD値を丸ごと削除する必要は無い。
(*「バイナリデータの修正(B)」ではない)
またレジストリエントリを修正した後にOSを再起動しなければ、反映されない場合もある。
ウイルスなどによる改変を修復するならば、アンチウイルスソフトメーカーなどの指示に従い作業していただきたい。また判断がつかないならばメーカーのサポートに電話やメールにて質問し、慎重に作業してもらいたい。
システム関連機能を制限
「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System」では、レジストリエディタの利用を妨げる設定など、やや深刻な被害を与えるものが多い。
今回はレジストリエディタより手動で設定し、HKCUでは設定が反映されたのだが、HKEY_LOCAL_MACHINE(HKLM)では設定は反映されなかった。ネット上にはHKLMでの設定を紹介している事例が幾つか散見されるのだが、どうも判然としない。
"DisableRegistryTools"
ウイルスやスパイウェアに感染した後に、レジストリを修復するよう試みるに当って、レジストリエディタ(regedit.exe)が利用できなければ、十分な修復は行えない場合も多いだろう。
「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System」サブキーにDWord値「DisableRegistryTools」を作成し、値(Values)を1(:00000001)に設定すると、レジストリエディタが利用できなくなる。
(16進法の0と10進法の0また1と1は、レジストリエディタより入力してしまえば同じ効果となるのだが、混乱を避ける目的で10進法として以後の解説にて扱う)
マルウェアがこのような改変を行ったならば、復旧は困難だ。
それでは試しにやってみよう、だがまかり間違っても絶対に真似しないでもらいたい。
SystemサブキーとDWORD値は存在しなかったので、それぞれ新たに作成。

作成したDWORD値「DisableRegistryTools」 をダブルクリックし、値に10進法での「1」を設定。

レジストリエディタを起動しようと試みても「レジストリ編集は、管理者によって使用不可にされています。」なるダイアログが出て、レジストリの編集ができない。

これを復旧させる目的で、アンチウイルスソフトメーカーでは修復用regファイルを作成し利用するよう推奨しているのだが。
今回試したWindowsXP Professional SP2、HomeEdition SP2いずれであっても、このregファイルよりレジストリを編集する際に前述の画像が出て、修復できないのだ。
Windows XPにてシステムの復元を行ったらば、レジストリエディタの編集を禁止されたユーザーアカウントにてレジストリの編集ができる元の状態に戻ったのだが。適切なシステムの復元のバックアップポイントが存在しない場合やWindows2000ではどうしたらば良いのだろうか。
ERD Commander 2005を利用し修復に成功したが、回復コンソールでは元々レジストリを操作するようなコマンドは使えないためこれによる修復は難しいだろう。
HKCUのみに設定され新規に作成されるユーザーアカウントが汚染されていないならば、他のアカウントではレジストリの編集は一応は可能な場合もある。それならば感染しレジストリを改変されたアカウントを捨て、他のアカウントにてマルウェアよりの修復作業を行えば何とかなるような気はするが、根本的な解決にはならない。
別のユーザーアカウントにてログオンしHKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Systemに同じDWORD値で「0」を設定しても、復旧しなかった。
2006年3月6日追記事項
1)HijackThisでO7のFixより、修復できた。

(*クリックで拡大。なお画像は見易さのため編集済み)
2)Regファイルでは修復できなかった。
例)Spyware.HackerWacker(Symantec)(
3)VBSファイルで修復できた
例)WORM_KELVIR.CZ(TrendMicro)の方法
4)infファイルより修復できた
例)shell\open\command レジストリキーのリセットツール(Symantec)の方法
5)Windows XPのグループポリシーより修復できた
Windows XP Professionalではファイル名を指定して実行より「gpedit.msc」からグループポリシーを起動。
「ユーザーの構成」 - 「管理用テンプレート」 - 「システム」より「レジストリ編集ツールへアクセスできないようにする」を開き。「無効((D)」に設定したらば、アクセスの制限を解除できた。
英語版では「Group Policy」を開き。 「User Configuration」 - 「Administrative Templates」 - 「System」 - 「Prevent access to registry editing tools」より「Disabled」を選択すると解除できる。
これはmashさんより紹介された「グループ・ポリシー・エディタの使用法(@IT)よりグループポリシーのスナップインを追加して、それより作業しても回復できた。
しかしWindows XP HomeEditionではこのような機能は利用できないようだ。
"DisableTaskMgr"
値が1だと「Ctrl + Alt + Del」よりタスクマネージャを起動しようにも、「タスクマネージャは管理者によって使用不可にされています。」とのポップアップ表示が出るだけだ。
感染中のシステムにて、怪しいプロセスの存在をタスクマネージャより確認できなくなるだろう。

"NoDiskCpl"
値が1だと「画面のプロパティ」を起動させようにも、「システム管理者により、コントロールパネルの[画面]は仕様不可にされています。」とのポップアップ表示が出る。
画面の設定を変更された際に、修復が難しくなるだろう。

(*クリックで拡大)
Explorerとシェル関連レジストリ
「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer」へDWORD値を作成し、値に「1」を設定すれば、何かが消え表示されなくなるだろう。
なおこれらの設定は、HKEY_CURRENT_USERだけではなく、HKEY_LOCAL_MACHINE(HKLM)であっても反映された。
"NoDesktop"
DWORD値「NoDesktop」を作成し値を「1」に設定し再起動すると、デスクトップ上の全てのアイコンが非表示となり、結構本気で焦る。
今回試したらば理由は不明だが、DWORD値「NoDesktop」を削除した後にDWORD値を再度作成できなくなり、アイコンが非表示のままとなった事故がおきたが、再現できていない。
"NoFind"
DWORD値「NoFind」を作成し値を「1」に設定し再起動すると、スタートメニューから「検索」が消える。
感染時に作成・改変されたファイルを検索されるのを防ぐ目的で、この設定を行うマルウェアも存在する。
"NoRun"
DWORD値「NoRun」を作成し値を「1」に設定し再起動すると、スタートメニューから「ファイル名を指定して実行」が消えた。
感染した相談者に、スタートメニューの「ファイル名を指定して実行」より「regedit」や「msconfig」を行うようアドバイスする機会も多いものだ。この設定はこのような修復作業を困難にさせるだろう。
"NoControlPanel"
DWORD値「NoRun」を作成し値を「1」に設定し再起動すると、コントロールパネルが非表示となる。
これをやられると、あらゆる修復操作が困難となる。
"NoDrives"
DWORD値「NoDrives」を作成し値を設定し再起動すると、マイコンピュータを開いたらば表示されるはずの任意のドライブが非表示になる。
このDWORD値は、0と1だけではなく複数の値の設定が可能。一例として設定した値が4ならば、Cドライブが非表示。
Appendix
某著名フォーラムにて、気になった出来事。
質問者が「回答通りの操作がうまく行かない」との趣旨の返信をしたのだな、また表示関連での不具合を報告。恐らくは今回紹介したようなレジストリの改変を受けていたと考えられる症例にて。
するとそのフォーラムの代表的回答者が、「質問者が指示に従わない」「場違いな質問をついでに持ち込むな」と腹を立て、裏で凄まじい罵詈雑言を浴びせていたのだよ。
(その回答者は、マルウェアによるレジストリ改変の結果だったとは、最後まで気付かなかったようだ)
何だかなぁ、みたいな。最近はそんなのばっかり。
Acknowledge
レジストリエディタ(レジストリ編集ツール)のアクセス制限解除にて、yassyさんとmashさんには多大なヒントをいただき、十分な内容とする事ができました。
関連記事
Windowsのレジストリ(Registry)におけるハイブ構造とSID
この記事へのコメント
yassyです。
レジストリエディタの件
・HijackThis 使えるなら「O7」fixで
・vbsファイル使う
・シマンテックのinfファイル使う(XPでは使えないのかな?)
どれかでいいと思うんですけど。なんか勘違いしてますか>私。というか使えない場合もあるのかも。
確かに、ウイルス情報ページでregファイル使えとか書いてあったりしますねぇ。使えないのになんだかなぁですねぇ。
レジストリエディタの件
・HijackThis 使えるなら「O7」fixで
・vbsファイル使う
・シマンテックのinfファイル使う(XPでは使えないのかな?)
どれかでいいと思うんですけど。なんか勘違いしてますか>私。というか使えない場合もあるのかも。
確かに、ウイルス情報ページでregファイル使えとか書いてあったりしますねぇ。使えないのになんだかなぁですねぇ。
Posted by yassy
at 2006年03月05日 18:53
それではシステム ポリシー エディタに1票。
#さいはての場所よりの書き込みです。
#さいはての場所よりの書き込みです。
Posted by mash
at 2006年03月06日 14:26
HijackThisのO7のFix、vbs、infは有効でした。
regは再度試したものの、ダメ。
またシステムポリシーエディタはXPには無いような(ありましたっけ?)
XPではmmc.exeよりスナップインを追加でしょうか、これはHome Editionでは無理なような。
regは再度試したものの、ダメ。
またシステムポリシーエディタはXPには無いような(ありましたっけ?)
XPではmmc.exeよりスナップインを追加でしょうか、これはHome Editionでは無理なような。
Posted by Luca
at 2006年03月06日 23:11
XPproにはあるようですが、Homeにはないというページが大半を占めています。
ただ、以下のリンクではHomeでもgpedit.mscで探せば見つかるということが書いてあります。
http://www.geocities.jp/osaru3220/diary050518.htm
@ITのグループポリシーエディタ解説記事の対象OSにもHomeが入っておりますが、真偽は不明です。
http://www.atmarkit.co.jp/fwin2k/win2ktips/233usepoledit/usepoledit.html
環境が2Kなものですから、なんとも。。。
ただ、以下のリンクではHomeでもgpedit.mscで探せば見つかるということが書いてあります。
http://www.geocities.jp/osaru3220/diary050518.htm
@ITのグループポリシーエディタ解説記事の対象OSにもHomeが入っておりますが、真偽は不明です。
http://www.atmarkit.co.jp/fwin2k/win2ktips/233usepoledit/usepoledit.html
環境が2Kなものですから、なんとも。。。
Posted by mash
at 2006年03月07日 14:01
わかりづらい書き様ですいません。
システムポリシーエディタはXPでは無くなっていて、グループポリシーエディタになっているとの意味でした。
http://www.microsoft.com/japan/technet/security/prodtech/windowsxp/adprtect.mspx
XP Proでは追加したグループポリシーのスナップイン、またgpedit.mscよりグループポリシーエディタより回復できました。
mmc.exeはXP HomeEditionでもありましたが、追加できるスタンドアロンスナップインにはグループポリシーが無く、このような方法での復旧はできないようです。
システムポリシーエディタはXPでは無くなっていて、グループポリシーエディタになっているとの意味でした。
http://www.microsoft.com/japan/technet/security/prodtech/windowsxp/adprtect.mspx
XP Proでは追加したグループポリシーのスナップイン、またgpedit.mscよりグループポリシーエディタより回復できました。
mmc.exeはXP HomeEditionでもありましたが、追加できるスタンドアロンスナップインにはグループポリシーが無く、このような方法での復旧はできないようです。
Posted by Luca
at 2006年03月07日 20:09