1

私は約2か月間、Windows XPHomeSP3で多額のプロセス作成ペナルティを享受してきました。問題は、シェルスクリプト(ちなみに、Cygwin上のbashスクリプト)、Makefile、SpringSource Tool SuiteインストーラーなどのIzPackパッケージの解凍(多数の個別のunpack200.exeJAR抽出プロセス)など、多くのプロセスを作成するタスクで最も明白で厄介です。 )。bashスクリプトの診断出力を監視するか、タスクマネージャーにプロセスが表示されるのを監視することで、プロセスが作成されると確信しています。プロセスが稼働すると、目立った遅延はありません。

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

Win32(XPホーム)での更新後の速度低下- (Cygwinリストへの私の投稿へのリンク)

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

私の知る限り、Win32のプロセスはによって作成されCreateProcessます。

プロセスの作成に時間がかかる理由と、ここで何が起こっているのかをどのように知ることができますか?Linuxのようなものstrace、あるいはもっと良いものはありますか?

4

1 に答える 1

4

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

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

毒入りのフリーウェアをインストールしてこのウイルスに感染したと思います。

私はこの問題を調査するのに時間を費やしましたが、それは恐ろしくて興味深いものでした。そこで私が見つけたものは次のとおりです。もちろん、すべての追加情報やコメントに感謝します。

マルウェアDLLは、Explorer、taskmgr、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がこのキーを使用すると報告されています。CreateProcessNotify上で引用したように、ロードされる「セキュリティ」DLLで呼び出される関数はです。私が理解したことから、それはただ「はい」または「いいえ」と言うと想定されていますが、それはそれが望むことは何でもすることができます。

私の場合、および分析した単一の実行インスタンスではls.exe、5つのスレッドが作成されました。他のDLLをロードまたはロードしようとし、レジストリと対話します。そして、誰が他に何を知っていますか。

誰かがこの危険なメカニズムについてもっと知っているなら、私はすべての耳です。

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

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

AppCertDllsがSysinternalsフォーラム(Autoruns)で報告、2007年10月

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

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

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

いくつかの詳細を提供する2010年6月の感染レポート

マルウェアは銀行口座情報(そして明らかにお金)を盗もうとしましたが、他のこともできるように構成されている可能性があります。の下に追加のレジストリエントリがありましたHKEY_CURRENT_USER\Software\AppDataLow\{some GUID here}。私がオンラインバンキングをしている間、それはスクリーンスクレイピングを行ったに違いありません。使用済みのTANを知っていました。ログインの直前または(おそらく)ログインの直後に銀行がハッキングされたという印象を受けたとき、一度に約20のTANを要求する画面が表示されたことを覚えています。WTFは、ブラウザが間違った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「WindowsIMM32APIクライアントライブラリ」の一部です。

sfc.exeマイクロソフトの「システムファイルチェッカー」を実行しました。私のプログラムファイルをさらにチェックします。そして、ウイルススキャナーを入手してください。推奨事項を歓迎します。

于 2010-12-12T22:00:01.310 に答える