トップ回答者
プロセスの監視

質問
-
すこし本件から外れますが、状況を説明させていただきます。
一応、小さな会社でPC関係の管理者をさせてもらっています。
全然ド素人です。前任者が、会社側ともめて辞める際にウィルスを仕込んでいったようです。
それは、挙動から推測するに【PC起動からランダム時間後に再起動】する
アプリケーションをレジストリから起動しているようです。
ただ、レジストリには多数の実行パスが登録されており、どれがどれなのか
解りません。そのような状況で、アプリケーションがどのような動作をしているか
ReBootを掛けているのはどれなのかを解析する方法はありますでしょうか?どうぞ、よろしくお願い致します。
2013年5月14日 5:32
回答
-
ご希望に沿うかはわかりませんが、Windows Sysinternalsの1モジュールである「Process Monitor」(無償)などを使用してみてはいかがでしょうか?
以下ダウンロードサイトより抜粋) Process Monitor はプロセスが行った処理 (ファイル システム、レジストリ、プロセスおよびスレッドの活動) をリアルタイムで表示するツールです。 そのため、 Process Monitor はシステムのトラブルシューティングやマルウェア検出などに役立てることができます。
http://technet.microsoft.com/ja-jp/sysinternals/bb896645.aspx
なお、レジストリを変更するという作業は、初心者の方には敷居が高いと思います。操作を誤ると、Windowsが正常に動作しなくなる可能性もありますので・・・
それと、法律には全く詳しくありませんが、前任者の方が行った行為は「威力業務妨害」にあたるのでは?早急な修復も必要でしょうが、 警察などに相談するなら証拠として該当のPCが必要になるのではないでしょうか(余計なお世話かもしれませんが・・・)。
2013年5月14日 6:37 -
そういえば、イベント ログなどは確認されているのでしょうか。
コントロールパネルから、「システムとセキュリティ」→「アクション センター→コンピュータの状態を確認して問題を解決」で、「メンテナンス」カテゴリに、「報告していない問題の解決策を確認」が表示されていないでしょうか。表示されているなら、ボックスの右下にある「報告する問題を表示する」をクリックします。「日付」をクリックして日時が新しい順に並べ、その日時が再起動した日時と同じか、調べます。同じであれば、「概要」の内容を調べます。
あるいは、コントロールパネルから、「システムとセキュリティ」→「管理ツール→イベント ログの表示」を選択します。イベント ビューアーが起動します。左のペインから、「Windows ログ」内の「アプリケーション」および「システム」を調べます。「日付と時刻」が再起動した直前に、「レベル」が「エラー」のものがないか、確認します。
あとは、WindowsUpdate ですかね。何かの更新プログラムがきちんとあたらず、バックグラウンドで適用/再起動を行っているかもしれません。これは、イベント ビューアーで「アプリケーションとサービス」→「Microsoft」→「Windows」→「WindowsUpdateClient」→「Operational」のログを調べます。「ハードウェア イベント」も見ておく方が良いかもしれません。
もしウィルスに感染した場合にどのようなアクションを起こすのでしょうか?
経緯は、こういう事ですよね?
- 現象:PC の電源 ON の後、不定な時間経過後、再起動してしまう。
- 当該 PC は私、および前任者しかログインできない。前任者退職以降、私しか操作していない。
- 前任者が、会社ともめて退職した。
- ハードウェアは、購入してから1年未満なので、経年劣化とは考えにくい。
- ソフトウェアも、レジストリや DLL の追加作業はしていない。
- 引き継ぎ作業中、そのような現象は起こっていなかった。
- 退職をトリガに、現象が発生した。
- Visual Studio の履歴の中に不明な名称のプロジェクトがあるが、本体は削除済みである。
- 以上のことから、ウィルス(ブラック ジョーク プログラム)を仕込んでいったと想定している。
まずは、「感染している」事を確認しなければなりません。今の状態では、何らかの不具合による再起動なのか、ウィルスによるものなのか、判断できません。ウィルス対策ソフトはインストールされていないのでしょうか。もちろん、お疑いのように前任者が作成していったものであれば、対策ソフトは検出できない可能性が大きいですが。
Visual Studio のプロジェクト履歴がまだ残っていて、プロジェクト名を確認できるなら、プロジェクト名に等しいファイルを、全ドライブを対象に検索してみてはいかがでしょうか。Windows Explorer を開いて、「コンピューター」またはドライブを表示し、右上の虫眼鏡があるボックスにプロジェクト名を入力します。
なお、提示されていた方法で逆コンパイルできるのは C# または VB で作られている場合です。C++ で作られていた場合は、逆コンパイルできません。
あるいは、必要なファイルのバックアップをとって、OS を再インストールするとか。
あれ?Windows 7 ですよね?現象が発生しだしたのって、先月だったりします?そうだとすると、コントロールパネルから「プログラム→プログラムのアンインストール」を選択して、左にある「インストールされた更新プログラムを表示」を選択してください。リストに「Microsoft Windows(KB9999999)のセキュリティ更新プログラム」と表示されるので、この中に「KB2823324」がないか、確認してください。あるなら、それが原因の可能性があります。アンインストールして、WindowsUpdate をかけ直してください。ってか、昨日あたりに直ってるかな?
Jitta@わんくま同盟
- 回答としてマーク コーベル 2013年5月19日 0:21
2013年5月16日 12:58
すべての返信
-
ご希望に沿うかはわかりませんが、Windows Sysinternalsの1モジュールである「Process Monitor」(無償)などを使用してみてはいかがでしょうか?
以下ダウンロードサイトより抜粋) Process Monitor はプロセスが行った処理 (ファイル システム、レジストリ、プロセスおよびスレッドの活動) をリアルタイムで表示するツールです。 そのため、 Process Monitor はシステムのトラブルシューティングやマルウェア検出などに役立てることができます。
http://technet.microsoft.com/ja-jp/sysinternals/bb896645.aspx
なお、レジストリを変更するという作業は、初心者の方には敷居が高いと思います。操作を誤ると、Windowsが正常に動作しなくなる可能性もありますので・・・
それと、法律には全く詳しくありませんが、前任者の方が行った行為は「威力業務妨害」にあたるのでは?早急な修復も必要でしょうが、 警察などに相談するなら証拠として該当のPCが必要になるのではないでしょうか(余計なお世話かもしれませんが・・・)。
2013年5月14日 6:37 -
「レジストリから」というのは、どの様にして確定したのでしょうか。とりあえず、次のような所を調べます。
- [Win]+[R]で「msconfig」を実行。「スタートアップ」タブにあるコマンドを調べる。
- スタート メニューから「すべてのプログラム→スタートアップ」にあるコマンドを調べる。
- レジストリ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run の内容を調べる。
- コントロール パネルから、「システムとセキュリティ」→「管理ツール」→「タスク スケジューラ」を起動する。「タスクス ケジューラ ライブラリ」内で、「状態」が「準備完了」のものの「トリガー」を調べる。
- コントロール パネルから、「システムとセキュリティ」→「管理ツール」→「サービス」を起動する。「スタートアップの種類」が「自動」のものを調べる。
Windows 7 で(Visual Studio のフォーラムの方で、「アプリケーションが動作している環境(OS)のフォーラムに」といわれていますが、Windows 7 で間違いないですね?ちなみに、「これこれのフォーラムに移動してください」とお願いすれば、移動してくれますよ)シャットダウンを行おうとすると、管理者権限が要ったと思います。管理者権限を付けて起動するとなると、「タスク スケジューラ」と「サービス」くらいになると思います。
ただ、Visual Studio フォーラムの方で Azuleanさんが返答されていますが、本当に前任者が仕掛けていったのですか?
Jitta@わんくま同盟
2013年5月14日 14:25 -
ご回答、ありがとうございます。
また、マルチポストに対し指摘頂きありがとうございました。
あちらの管理者様へ最適な対応をお願いしてまいりました。>なぜレジストリなのか
ほとんどのウィルスはレジストリから起動されているため当たりを付けた、
またサービスプログラムに関してはすでに確認済みで、初期段階から登録されている
プログラム以外を全て停止しても再起動がかかった。
スタートアップは、確認されているプログラムだった。上記の理由からレジストリが怪しいと踏んでいます。
レジストリは、
HKEY_LOCAL_MACHINE と HKEY_CURRENT_USER のRun,Onceと該当する
箇所を調べています。ですので、ほぼレジストリからだと思われます。
>シャットダウンを行おうとすると、管理者権限が要ったと思います。
当該PCは、私しか操作せず、管理者権限でログインしています。
スペック:
OS:Windows7 Home
CPU:i7
メモリ:8GB確認したい要項:
どのプロセスが再起動を掛けているのか、起動されているプロセスが多すぎて
全部の確認は大変であるため、まずターゲットを絞りたいです。
また、プロセスを隠蔽している可能性もあるようで、タスクマネージャーだけでは
不安です。本当にややこしい話で申し訳ありませんが、ご教示頂けると助かります。
- 編集済み コーベル 2013年5月15日 0:56
2013年5月15日 0:55 -
アカウントに管理者権限があることと、そのアカウントで起動するプロセスに管理権限があることは違います。レジストリ エディターを起動するとき、ユーザー アカウント制御ダイアログが表示されませんでしたか?表示されるなら、プロセスには管理権限がありません。表示されないなら、UAC のレベルを変更するだけで防げるかもしれません。
レジストリ エディターの起動で UAC ダイアログが表示されるなら、レジストリからは管理権限が必要なプロセスを起動することはできないので、スケジューラーを見てください。
でも、Process Monitor が何十個も起動するというところから、懸念されているようなこととは違う問題があるように思います。
Jitta@わんくま同盟
2013年5月15日 14:33 -
Jittaさん
ご回答ありがとうございます。
UACはもともと切っています。
そのPCでは、社内DBを構築しているだけで、外部との接続はほぼ行わない為
またアプリケーションのインストールも、他PCでテスト(といっても浅いですが)
してからなので、UACは作業負担と感じ機能させていません。UACを設定し、作業してみましたが、やはり再起動がかかってしまいました。。
>でも、Process Monitor が何十個も起動するというところから、懸念されているようなこととは違う問題があるように思います。
なるほど、そちらの方も要因として調査したほうがいいかもしれませんね、
ありがとうございます、確認してみます。2013年5月16日 0:42 -
yottun8さん
ご回答ありがとうございます。
確認しました、なるほどこれは便利なツールですね!!
ただ、本件、どのように解決すればよいのか解らず
例えば有識者の皆様の場合、もしウィルスに感染した場合にどのようなアクションを
起こすのでしょうか?登録されているプログラムは幾つもあるわけで、要はそれぞれがどのような動作を
しているのかを解析しなければならないのかなと思いますが、それはいわゆる
逆アセンブラという方法なのでしょうか?
というか、そもそもその再起動なり、ディスクサイズを圧迫させるなり、様々な悪意ある
行動をとるのですが、それを実行しているプロセスを探す基本的な方法をご教示頂けると
大変たすかります。それさえ、解れば削除するなりできるのですが。。
- 編集済み コーベル 2013年5月16日 0:54
2013年5月16日 0:53 -
そういえば、イベント ログなどは確認されているのでしょうか。
コントロールパネルから、「システムとセキュリティ」→「アクション センター→コンピュータの状態を確認して問題を解決」で、「メンテナンス」カテゴリに、「報告していない問題の解決策を確認」が表示されていないでしょうか。表示されているなら、ボックスの右下にある「報告する問題を表示する」をクリックします。「日付」をクリックして日時が新しい順に並べ、その日時が再起動した日時と同じか、調べます。同じであれば、「概要」の内容を調べます。
あるいは、コントロールパネルから、「システムとセキュリティ」→「管理ツール→イベント ログの表示」を選択します。イベント ビューアーが起動します。左のペインから、「Windows ログ」内の「アプリケーション」および「システム」を調べます。「日付と時刻」が再起動した直前に、「レベル」が「エラー」のものがないか、確認します。
あとは、WindowsUpdate ですかね。何かの更新プログラムがきちんとあたらず、バックグラウンドで適用/再起動を行っているかもしれません。これは、イベント ビューアーで「アプリケーションとサービス」→「Microsoft」→「Windows」→「WindowsUpdateClient」→「Operational」のログを調べます。「ハードウェア イベント」も見ておく方が良いかもしれません。
もしウィルスに感染した場合にどのようなアクションを起こすのでしょうか?
経緯は、こういう事ですよね?
- 現象:PC の電源 ON の後、不定な時間経過後、再起動してしまう。
- 当該 PC は私、および前任者しかログインできない。前任者退職以降、私しか操作していない。
- 前任者が、会社ともめて退職した。
- ハードウェアは、購入してから1年未満なので、経年劣化とは考えにくい。
- ソフトウェアも、レジストリや DLL の追加作業はしていない。
- 引き継ぎ作業中、そのような現象は起こっていなかった。
- 退職をトリガに、現象が発生した。
- Visual Studio の履歴の中に不明な名称のプロジェクトがあるが、本体は削除済みである。
- 以上のことから、ウィルス(ブラック ジョーク プログラム)を仕込んでいったと想定している。
まずは、「感染している」事を確認しなければなりません。今の状態では、何らかの不具合による再起動なのか、ウィルスによるものなのか、判断できません。ウィルス対策ソフトはインストールされていないのでしょうか。もちろん、お疑いのように前任者が作成していったものであれば、対策ソフトは検出できない可能性が大きいですが。
Visual Studio のプロジェクト履歴がまだ残っていて、プロジェクト名を確認できるなら、プロジェクト名に等しいファイルを、全ドライブを対象に検索してみてはいかがでしょうか。Windows Explorer を開いて、「コンピューター」またはドライブを表示し、右上の虫眼鏡があるボックスにプロジェクト名を入力します。
なお、提示されていた方法で逆コンパイルできるのは C# または VB で作られている場合です。C++ で作られていた場合は、逆コンパイルできません。
あるいは、必要なファイルのバックアップをとって、OS を再インストールするとか。
あれ?Windows 7 ですよね?現象が発生しだしたのって、先月だったりします?そうだとすると、コントロールパネルから「プログラム→プログラムのアンインストール」を選択して、左にある「インストールされた更新プログラムを表示」を選択してください。リストに「Microsoft Windows(KB9999999)のセキュリティ更新プログラム」と表示されるので、この中に「KB2823324」がないか、確認してください。あるなら、それが原因の可能性があります。アンインストールして、WindowsUpdate をかけ直してください。ってか、昨日あたりに直ってるかな?
Jitta@わんくま同盟
- 回答としてマーク コーベル 2013年5月19日 0:21
2013年5月16日 12:58 -
例えば有識者の皆様の場合、もしウィルスに感染した場合にどのようなアクションを
起こすのでしょうか?
もし、悪意のあるプログラムに汚染された場合、何らかのソフトウェアで駆除できたとしても、完全に信任できる状態ではありません。
これは検知できない悪意のあるプログラムが残存しているリスク、OS を構成するファイルが破損していて安定的な稼働を妨げるリスクなどが考えられるためです。どこまでリスクを見るかですが、調査コストや残存していた場合の二次被害のリスクを考慮すると、マシンの再インストールが一番手っ取り早いと考えます。
実際、現象が発生してフォーラムにポストした日から、今日までの日数があれば復旧できたはずですので、スピードを重視するのであれば、クリーンインストールが一番速いでしょう。
コストをかけられるなら、予備マシンを常にストックしておき、トラブル発生、即入れ換え、ダウン時間を短く稼働を続けられるということも考えられます。
※この投稿は、質問者の方の環境の汚染については肯定も否定もしていません。確認不足だとみているためです。- 編集済み AzuleanMVP 2013年5月16日 14:38
2013年5月16日 14:36 -
Jittaさん
ご回答ありがとうございます。わんくま同盟の方々にはいつもお世話になっております。
Jittaさんの知識量は半端ないですね。。また、経緯のまとめありがとうございます!
まずは結論から申し上げますと、ウィルス本体が見つかりました。
本体は、windowsフォルダに【svchost.exe】があり、こいつが再起動を掛けていました。
本体を移動させ、解析をしていたのですが、また再起動が掛かりました。。
そのファイルの存在をチェックし、無ければ再作成する別のプログラムも動作していました。。結局、CurrentVersion\runにあるプログラムを全部調査していった訳ですが。
ここからは、勉強の為に質問させていただきたいのですが
教えて頂いたイベントログですが、何らかの異常がないとロギングされないものなのでしょうか?
つまり、悪意ある行動(再起動や、感染行為、ファイル作成)を、どのプロセスが実行しているか
を特定する方法は無いのでしょうか?
2013年5月17日 0:59 -
svchost.exe が Windows フォルダーにあったのであれば、黒っぽいですね。(注記:svchost.exe は本来 System32 フォルダーに配置されています。従って、その一つ上のフォルダーには存在しないはずの exe であることから、怪しいと書いています)
どのプロセスがファイルに対して Read / Write したかは Process Monitor を使えばある程度は見えるとは思います。
しかし、そうやって一つずつ取り除いていって、一旦落ち着いたとして、時間差で発動する罠がないか?という意味では正直未知数です。
(OS の深い層に埋め込まれていれば、手出しする手段はないので。古い記事ですが、こういった警鐘を鳴らしている話も出たぐらいです。)
組織運営上の大事なサーバーが入っているのなら、なおさら、今の環境を捨てる判断をすべき事態ではないでしょうか?一般に広まっている悪意あるプログラムなら駆除ソフトなどでうまくいくかもしれませんが、ごく少数、あるいはユニークなものに関しては一般論が通じないので、どこまでやれば OK なんてわかりません。
このため、先にも書きましたが、悪意ある行為によって汚染されている可能性が高くなった以上、別マシンの構築を進め、データの抽出・移行などを考えた方がよいかと思います。- 編集済み AzuleanMVP 2013年5月18日 13:16 このスレッドを見るほかの方に向けて注記。
2013年5月17日 1:20 -
Azuleanさん
ご回答ありがとうございます!
やはりProcessMonitorというのは、すごいツールなのですね、勉強させてもらいます。
参考記事、ありがとうございます。
rootkitsに関しては興味ありましたが、なかなか面白い記事でした。
確かに仰るとおり、依然PCは危険な状態にあるのかもしれません。
再起動プロセスを監視するプロセスがいたくらいですから別のも走ってるかもですね。。再構築が面倒と言ってる場合では無いかもしれませんね。客先情報も入っているので
データのみを取り出し、環境の再構築を行う方向で対処していきたいと思います。ありがとうございました!
2013年5月17日 2:23 -
黒いような、勘違いのような。。。
svchost.exe が、2つあるということですか? Process Exporler で見るとわかりますが、いろんなプロセスが %SystemRoot%\System32\svchost.exe から起動しています。よって、ここからリブトーすることもあり得ます。できれば、その svchost.exe と、それを再作成するものとを、シマンテックやトレンドマイクロなどに検体として提出していただきたいですね。本当に前任者が作ったものならまだ良いのですが、それを他のところに置いていくかもしれないし。
イベントログは、アプリケーション作者が「ロギングしておきたい」と思ったものを記録しています。ここで「アプリケーション作者」とはマイクロソフトのみを指しません。よって、アプリケーションがログを取ろうとしていなければ、記録されません。
「悪意ある行動」を、どのように規定しますか?たとえば、Winny。警察は著作権法違反幇助の容疑で作者を逮捕しましたが、作者はp2pの研究が目的だったと主張し、その主張が受け入れられています。これは、本当に悪意はなかったのでしょうか。
ソフトウェアそのものは、善でも悪でもありません。それをどのような目的で、どのようなことを言って実行させるか、というところで変わってきます。よって、あなたが上げられている行為は「悪意ある行動」ではありません。
もっとも、UAC は、悪意を持って作成されたソフトウェアの実行をある程度防ぐことを目的としています。普段は OFF にされているということですが、パスワードの規則や UAC の ON/OFF など、一度見直される方が良いのではないでしょうか。Jitta@わんくま同盟
2013年5月18日 15:15 -
Jittaさん
ご回答、ありがとうございます。
>本当に前任者が作ったものか
詳細をお伝えしていませんでしたが、解析した結果というかMSILに変換
できたのでC#で作成されているようでした。
もし仮にターゲットをWindowsPCユーザ全体にしたのであれば、Cで作成するのでは
と思います、いまだにWindowsXPを使用している大企業は多く.NET Framework
がないと動作しないものは作成しないのでは。そういった点からおそらく前任者
だと思っています。>イベントログは、アプリケーション作者が「ロギングしておきたい」と思ったものを記録しています。
ありがとうございます、勉強になりました。
>あなたが上げられている行為は「悪意ある行動」ではありません。
なるほど、確かに理屈ではそうなるのかもしれません。
今回は自社にとって不利益な行動だったのでそのように呼んでいました。>パスワードの規則や UAC の ON/OFF など、一度見直される方が良いのではないでしょうか。
おっしゃる通りですね、PCの再構築も含めそのあたりの検証を再度行いたいと思います。
とりあえず、本件は、ここで閉めたいと思います。
皆様、本当にありがとうございました!
2013年5月19日 0:21