質問

私は約 2 か月間、Windows XP Home SP3 でプロセス作成に大きなペナルティを感じてきました。この問題は、シェル スクリプト (Cygwin 上の bash スクリプト)、Makefile、または SpringSource Tool Suite インストーラー (多数の個別のインストーラーなど) などの IzPack パッケージの解凍など、多くのプロセスを作成するタスクで最も顕著で迷惑です。 unpack200.exe JAR エクストラクタ プロセス)。bash スクリプトの診断出力を観察するか、タスク マネージャーに表示されるプロセスを観察することで、プロセスが作成されていると確信しています。プロセスが起動して実行されると、目立った遅延はありません。

私は当初、Cygwin のみが影響を受けると誤って考え、Cygwin DLL などのバグを疑い、その問題を Cygwin メーリング リストに報告しました。

Win32 (XP Home) でのアップデート後の速度低下 - (Cygwin リストへの私の投稿へのリンク)

Windows 上に存在すると思われるプロセス作成フックに何かがくだらないものをインストールしたのではないかと疑問に思っています。(と同様に、 Javaのセキュリティマネージャー.) ウイルス、またはセキュリティ ソフトウェア?私も意識してインストールしたことはありません。Microsoft のアップデートの不具合も疑っていましたが、もう修正されていると思います。

私の知る限り、Win32 上のプロセスは次のように作成されます。 CreateProcess.

プロセスの作成にこれほど時間がかかる理由と、ここで正確に何が起こっているのかを確認するにはどうすればよいですか?のようなものはありますか strace Linux 用、あるいはそれよりも優れたものがあるでしょうか?

役に立ちましたか?

解決

私を正しい方向に導いてくれたルークに感謝します。Procmon は素晴らしいツールです。文字通り、システム内の新しい世界が私に開かれました。そして、フィルタを設定して犯人をすぐに発見しました。 parent process ID = WINPID of a Cygwin bash.exe そして、単一のものを監視するだけです ls 指示。それは、という名前のレジストリ キーにフックされたマルウェアでした。 AppCertDlls, 、もちろん以前はまったく知りませんでした。

マルウェアを移動したら clipmote.dll のうち system32, 、プロセスの作成速度はすぐに通常に戻りました。

有害なフリーウェアをインストールしたことでこのウイルスに感染したのだと思います。

私はこの問題を調査するのに少し時間を費やしましたが、恐ろしくも興味深いものであることがわかりました。そこで私が見つけたものを以下に示します。もちろん、追加情報やコメントをいただければ幸いです。

マルウェア DLL は、Explorer、tascmgr、procmon 自体を含め、すべてのユーザー プロセスにロードされました。以下のプロセスのみ SYSTEM (にリストされているように) procexp.exe)は感染していないように見えます。

ここでの問題は、 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCertDlls は、関数から値を返すことによって、バイナリの実行を許可するかどうかを決定する DLL をロードするために (少なくとも私のシステムでは、しかしおそらく多くのシステムで、そしておそらくデフォルトでも) チェックされています。彼らにこう呼びかけた。

NTSTATUS STDCALL CreateProcessNotify (LPCWSTR lpApplicationName, ULONG Reason); 

実際、そのキーの下に次のようなエントリがありました sethdown, 、ただし名前は何でも構いません。

RegEnumValue HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCertDlls

Index:  0
Name:   sethdown
Type:   REG_SZ
Length: 66
Data:   C:\WINDOWS\system32\clipmote.dll

ネット上で見つかったレポートから、私は次のように結論付けます。 AppCertDlls フックは Windows オペレーティング システムの通常の部分であり、不正な拡張機能ではありません。もしそうであれば、マルウェアをプロセスに動的に構成できるため、それはウイルスのエントリ ポイントです。

これは実際には - そして皮肉にも - セキュリティ機能であることを目的としており、JVM のセキュリティ マネージャーと似ているようです (私の元の質問を参照)。と呼ばれる Microsoft ユーティリティ appsec.exe このキーを使用すると報告されています。ロードされた「セキュリティ」DLL で呼び出される関数は次のとおりです。 CreateProcessNotify, 、上で引用したように。私が理解したところによると、それは単に「はい」か「いいえ」を言うだけであると想定されていますが、望むことは何でもできます。

私の場合、実行中の単一インスタンスでは ls.exe 分析したところ、5 つのスレッドが作成されました。これらは、他の DLL をロードするかロードしようとして、レジストリと対話します。他に何があるかは誰にも分かりません。

この危険なメカニズムについて詳しく知っている人がいれば、私は耳を傾けます。

これが私が見つけたものです AppCertDlls:

2007 年 1 月の初期の言及 (Re5:Блокировка запуска приложений)

AppCertDlls が Sysinternals フォーラム (Autoruns) で報告されました (2007 年 10 月)

AppCertDlls について - 2008 年 1 月に記載されたウイルス

しかし、Microsoft自体はこの機能を広く使用していますが、実際には「1回限りの」ものとして考えられていました。ターミナルサーバー2000で実行できるアプリケーションを制限する方法としてのみ使用します。-- アンドリュー・ウォロボウ

AppCertDlls キーと CreateProcessNotify の詳細 (2008 年 1 月)

2010 年 6 月の感染報告書には詳細が記載されています

このマルウェアは銀行口座情報 (もちろんお金も) を盗もうとしましたが、他のことも行うように構成されている可能性があります。以下に追加のレジストリ エントリがありました HKEY_CURRENT_USER\Software\AppDataLow\{some GUID here}. 。私がオンラインバンキングを行っている間に、何らかの画面スクレイピングが行われたに違いありません。中古のTANを知っていました。かつて、ログインの直前か (おそらく) ログイン直後に、一度に 20 ほどの TAN を要求する画面を見たときに、銀行がハッキングされたような印象を受けたことを覚えています。なんと、ブラウザが間違った URL を取得したのではないかと思い、ウィンドウを閉じました。もっと心配すべきだった。この問題全体がこれほど危険なものだとは思いませんでした。幸いなことに被害はありませんでした。ただ幸運だったと思います。

以下は、ウイルス内で見つかった重要と思われる文字列のリストです。

  • client.dll
  • EAPSFILT.dll
  • KERNEL32.dll

最初の 2 つは、ロードしようとしている他のウイルス ライブラリである可能性があります。

  • _aullshr
  • CompareStringA
  • CreateEventA
  • CreateFileA
  • CreateFileMappingA
  • CreateProcessNotify
  • CtfImmIsCiceroStartedInThread
  • CtfImmTIMActivate
  • DllCleanupServer
  • DllStartupServer
  • ExitProcess
  • GetThreadContext
  • ImmDisableIme
  • ImmDisableIME
  • ImmGetConversionListA
  • ImmGetVirtualKey
  • ImmRegisterWordA
  • ImmSetCandidateWindow
  • InterlockedExchangeAdd
  • iswlower
  • lstrcmpA
  • MapViewOfFile
  • memset
  • OpenThread
  • ReadFile
  • RealDriveType
  • RegenerateUserEnvironment
  • RestartDialog
  • SetFilePointer
  • Sleep
  • strchr
  • TerminateThread
  • UnmapViewOfFile
  • vDbgPrintExWithPrefix
  • VirtualQueryEx
  • WaitForMultipleObjects

Cicero この関数は私には不正に見えましたが、それはの一部です C:\WINDOWS\system32\imm32.dll, 、「Windows IMM32 API クライアント ライブラリ」 - それが何であれ。

走った sfc.exe, Microsoftの「システムファイルチェッカー」。プログラムファイルをさらにチェックしてみます。そしてウイルススキャナーを入手してください。推薦は歓迎します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top