Winapi AppCertDlls:病毒导致Win32上的进程创建速度减慢

Winapi AppCertDlls:病毒导致Win32上的进程创建速度减慢,winapi,registry,virus,createprocess,malware,Winapi,Registry,Virus,Createprocess,Malware,近两个月来,我一直在享受Windows XP Home SP3上的沉重进程创建惩罚。问题在创建大量进程的任务中最明显、最烦人,比如shell脚本(顺便说一下,Cygwin上的bash脚本)、Makefiles,或者解包IzPack包,比如SpringSource工具套件安装程序(许多单独的unpack200.exeJAR提取器进程)。我确信这是通过观察bash脚本诊断输出或观察任务管理器中出现的进程创建的。一旦进程启动并运行,就不会有明显的延迟 我已经在Cygwin邮件列表中报告了这个问题,因为

近两个月来,我一直在享受Windows XP Home SP3上的沉重进程创建惩罚。问题在创建大量进程的任务中最明显、最烦人,比如shell脚本(顺便说一下,Cygwin上的bash脚本)、Makefiles,或者解包IzPack包,比如SpringSource工具套件安装程序(许多单独的
unpack200.exe
JAR提取器进程)。我确信这是通过观察bash脚本诊断输出或观察任务管理器中出现的进程创建的。一旦进程启动并运行,就不会有明显的延迟

我已经在Cygwin邮件列表中报告了这个问题,因为我最初错误地认为只有Cygwin受到了影响,怀疑Cygwin DLL中有bug,或者诸如此类的东西

我想知道是否有什么东西在进程创建钩子中安装了一些垃圾,我认为它可能存在于Windows上。病毒,还是安全软件?我也没有意识地安装。我还怀疑微软的更新有问题,但我想他们现在已经解决了

据我所知,Win32上的进程是由
CreateProcess
创建的


我怎样才能知道为什么创建流程需要这么长时间,以及这里到底发生了什么?是否有类似于Linux的
strace
,或者更好的东西?

非常感谢Luke为我指明了正确的方向。Procmon是一个很棒的工具。从字面上说,系统内部为我打开了一个新世界。通过将过滤器设置为包含Cygwin bash.exe的父进程ID=WINPID,然后只监视单个
ls
命令,很快就找到了罪魁祸首。它是一个恶意软件,挂在一个名为AppCertDlls的注册表项上,我以前当然完全不知道

一旦我将恶意软件
clipmote.dll
移出
system32
,进程创建速度立即恢复正常

我想我是通过安装有毒的免费软件感染了这种病毒

我花了一些时间调查这个问题,发现它既可怕又有趣,所以这里是我的发现,当然,我会感谢您提供的所有其他信息或任何评论

恶意软件DLL加载到每个用户进程中,甚至包括Explorer、taskmgr和procmon本身。只有
系统
(如
procep.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
从网上的报告中,我得出结论,AppCertDLS钩子是Windows操作系统的常规部分,而不是一些恶意的扩展。如果是这样,它就是一个病毒入口点,因为它允许在进程中动态配置恶意软件

看起来它实际上是一个安全特性,与JVM中的安全管理器没有什么不同(请参见我最初的问题)。据报告称,名为
appsec.exe
的Microsoft实用程序使用此密钥。然后在加载的“安全”DLL上调用的函数是
CreateProcessNotify
,如上所述。据我所知,它被认为只是说是或不是-但它可以做任何它想做的

在我的例子和我分析的运行
ls.exe
的单个实例中,它创建了五个线程。它们加载或尝试加载其他DLL并与注册表交互。谁知道还有什么

如果有人知道更多关于这个危险的机制,我洗耳恭听

以下是我在AppCertDLS上找到的内容:

:Бззззззззззззззазз107

但微软本身也广泛使用这一技术 功能,确切地说,它是事实 被认为是“一次性”的东西。 仅用于作为限制 可以在下运行的应用程序 终端服务器2000。-安德鲁·沃罗布

该恶意软件试图窃取银行账户信息(显然还有金钱),但也可能配置为执行其他操作。在
HKEY\u CURRENT\u USER\Software\AppDataLow\{some GUID here}
下有其他注册表项。它一定是在我做网上银行的时候做了一些屏幕清理;它知道我们用过晒黑。我记得有一次我有一个印象,我的银行在登录前不久或(可能)登录后不久,我看到一个屏幕,要求一次大约20次晒黑。WTF,我想,浏览器得到了错误的URL,我关闭了窗口。我应该更关心。我不会想到整个问题会如此危险。幸运的是,没有损坏。我想这只是幸运

以下是我在病毒中发现的重要字符串列表:

  • client.dll
  • EAPSFILT.dll
  • KERNEL32.dll
我认为前两个可能是它试图加载的其他病毒库