Un grand merci à Luke pour m'avoir indiqué dans la bonne direction. Procmon est un outil fantastique. Littéralement, un nouveau monde à l'intérieur du système s'est ouvert pour moi. Et le coupable a été rapidement trouvé en définissant un filtre pour inclure parent process ID = WINPID of a Cygwin bash.exe
puis en surveillant simplement une seule commande ls
. Il s'agissait d'un logiciel malveillant connecté à une clé de registre nommée AppCertDlls
, dont je n'étais bien sûr pas au courant auparavant.
Une fois que j'ai déplacé le malware clipmote.dll
sur system32
, la vitesse de création de processus était immédiatement revenue à la normale. Je suppose que j'ai contracté ce virus en installant un freeware empoisonné. J'ai passé du temps à enquêter sur ce problème et je l'ai trouvé à la fois effrayant et intéressant, alors voici ce que j'ai trouvé, et bien sûr je serai reconnaissant pour toutes les informations supplémentaires ou des commentaires que vous pourriez avoir. La DLL de malware a été chargée dans chaque processus utilisateur, même Explorer, taskmgr et procmon elle-même. Seuls les processus sous SYSTEM
(énumérés au paragraphe procexp.exe
) semblent ne pas avoir été infectés. Le problème ici est que HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCertDlls
est vérifiée (au moins sur mon système, mais peut-être sur de nombreux systèmes, et probablement même par défaut) pour charger les DLL qui peuvent avoir un mot à dire si un binaire est autorisé à fonctionner ou pas en retournant une valeur d'une fonction appelée sur les:
NTSTATUS STDCALL CreateProcessNotify (LPCWSTR lpApplicationName, ULONG Reason);
en fait, j'avais une entrée sous cette clé appelée sethdown
, mais le nom pourrait être quelque chose.
RegEnumValue HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCertDlls
Index: 0
Name: sethdown
Type: REG_SZ
Length: 66
Data: C:\WINDOWS\system32\clipmote.dll
D'après les rapports trouvent sur le net, je conclus que le crochet AppCertDlls
est une partie régulière du système d'exploitation Windows, et non une extension voyous.Si tel est le cas, il s'agit d'un point d'entrée de virus, car il permet de configurer de manière dynamique des logiciels malveillants dans un processus.
On dirait que c'est en fait - et ironiquement - censé être une fonctionnalité de sécurité, qui n'est pas sans rappeler le gestionnaire de sécurité de la JVM (voir ma question initiale). Un utilitaire Microsoft appelé appsec.exe
utilise cette clé. La fonction qui est ensuite appelée sur la DLL de "sécurité" chargée est CreateProcessNotify
, comme cité ci-dessus. D'après ce que j'ai compris, il est supposé dire oui ou non - mais il peut faire ce qu'il veut.
Dans mon cas et l'instance unique d'exécution ls.exe
que j'ai analysé, il a créé cinq threads. Ils chargent ou essaient de charger d'autres DLL et d'interagir avec le registre. Et qui sait quoi d'autre.
Si quelqu'un en sait plus sur ce mécanisme dangereux, je suis tout ouïe.
Voici ce que j'ai trouvé sur AppCertDlls
:
early mention in 01/2007 (Re5: Блокировка запуска приложений)
AppCertDlls reported on Sysinternals forum (Autoruns), 10/2007
About AppCertDlls - virus mentioned 01/2008
Mais Microsoft lui-même utiliser largement cette fonctionnalité , exactement, il était en fait conçu comme la chose "unique". utiliser uniquement comme - moyen de limiter les applications qui peuvent être exécutées sous le serveur terminal 2000. - Andrew Worobow
more details on the AppCertDlls key and CreateProcessNotify, 01/2008
06/2010 infection report providing some details
Le logiciel malveillant a essayé de voler la banque informations sur le compte (et l'argent, évidemment), mais il pourrait éventuellement être configuré pour faire d'autres choses, aussi. Il y avait des entrées de registre supplémentaires sous HKEY_CURRENT_USER\Software\AppDataLow\{some GUID here}
. Il a dû faire un peu de grattage d'écran pendant que je faisais des opérations bancaires en ligne; il connaissait les TAN utilisés. Je me souviens d'une fois où j'ai eu l'impression que ma banque avait été piratée peu de temps auparavant ou (probablement) après la connexion, j'ai vu un écran demandant une vingtaine de TAN à la fois. WTF, j'ai pensé, le navigateur a eu la mauvaise URL, et j'ai fermé la fenêtre. J'aurais dû être plus concerné. Je n'aurais pas pensé que toute la question soit aussi dangereuse. Heureusement, pas de dégâts. Juste chanceux, je suppose.
Voici une liste des chaînes importantes prospectifs que je trouve à l'intérieur du virus:
client.dll
EAPSFILT.dll
KERNEL32.dll
Je pense que les deux premiers peut-être d'autres bibliothèques de virus il essaie de charger.
_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
La fonction Cicero
avait l'air coquin pour moi, mais il fait partie de C:\WINDOWS\system32\imm32.dll
, la "API Windows IMM32 Client Library" - quel qu'il soit.
J'ai exécuté sfc.exe
, "Vérificateur de fichiers système" de Microsoft. Fera plus de vérification sur mes fichiers de programme. Et obtenez un scanner de virus. Recommandations bienvenues.
Vous pouvez utiliser Process Monitor (http://technet.microsoft.com/en-us/sysinternals/bb896645).aspx) pour voir où le retard se produit. – Luke
Vous pouvez vérifier les fichiers suspects ici: http://www.virustotal.com/ – ruslik
Merci, ruslik. Voici un lien vers l'analyse de VirusTotal.com: http://www.virustotal.com/file-scan/report.html?id=67a6c870fc0428f36ebefc423dfbba1643f002b296d92cbad8ec9ac6027b9452-1292351382 – Lumi