Évolution du PixyNetLoader d’APT28 de 2024 à 2026
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Le rapport examine comment APT28 a fait évoluer sa famille de malwares PixyNetLoader entre 2024 et 2026. Le chargeur est distribué via des documents Office malveillants exploitant CVE-2026-21509 et installe une DLL enregistrée COM qui extrait une charge utile cachée dans des fichiers PNG en utilisant la stéganographie LSB. Cette charge utile est un implant Covenant Grunt qui communique via le service cloud FILEN. Les chercheurs ont identifié quatre sous-familles distinctes de PixyNetLoader et ont créé une règle YARA unifiée pour soutenir la détection à travers les variantes.
Enquête
Les analystes ont examiné environ 90 échantillons de malwares et les ont regroupés en quatre sous-familles basées sur des fonctions partagées et des modèles de hachage des en-têtes Rich. Ils ont découvert que les variantes les plus récentes, introduites en mars 2026, ont ajouté de nouvelles méthodes de stéganographie, y compris des en-têtes chiffrés AES et une dérivation de clé basée sur PBKDF2. L’enquête a également documenté les chemins de fichiers pertinents, les clés de registre et les noms d’exportation de DLL utilisés par le malware, et a produit des signatures YARA pour des fonctionnalités communes dans toute la famille.
Atténuation
Les défenseurs devraient surveiller les enregistrements COM suspects de DLL inconnues, les clés de registre spécifiques liées au CLSID associées au malware, et le déploiement de fichiers PNG dans des emplacements de staging connus. Les défenses réseau devraient également inspecter le trafic vers le service FILEN et les caractéristiques de la charge utile qui correspondent aux motifs de stéganographie LSB décrits dans les règles YARA. Les organisations devraient appliquer le correctif pour CVE-2026-21509 et limiter ou désactiver l’exécution risquée de macros Office pour réduire l’exposition.
Réponse
Si une activité PixyNetLoader est détectée, isolez l’endpoint impacté, supprimez la DLL malveillante et le fichier PNG associé, et réinitialisez toutes les inscriptions COM compromises. Les enquêteurs devraient recueillir la charge utile Covenant Grunt extraite et les journaux réseau pertinents, puis rechercher des outils APT28 connexes tels que SlimAgent ou Graphite. Le contenu de détection devrait également être mis à jour et les restrictions macro appliquées de manière cohérente dans tout l’environnement.
Flux d’attaque
Nous mettons encore à jour cette partie. Inscrivez-vous pour être informé
Prévenez-moiDétections
Possibilité de détournement COM Explorer (via registry_event)
Voir
Possibilité de persistance basée sur Outlook (via registry_event)
Voir
Comportement potentiellement suspect de création, exécution, suppression de tâche planifiée (via process_creation)
Voir
Exécution suspecte de Taskkill (via cmdline)
Voir
Possibilité d’abus du gestionnaire de protocole URI Search/Search-MS (via cmdline)
Voir
Schtasks pointe vers un répertoire/script/binaire suspect (via cmdline)
Voir
LOLBAS Regsvr32 (via cmdline)
Voir
Possibilité d’infiltration/exfiltration de données/C2 via des services/outils tiers (via cmdline)
Voir
Possibilité de détournement COM Explorer (via file_event)
Voir
Possibilité de persistance basée sur Outlook (via file_event)
Voir
Utilisation probable d’outils de piratage Windows [Part1] (via file_event)
Voir
Possibilité d’infiltration/exfiltration de données/C2 via des services/outils tiers (via dns_query)
Voir
Tâche planifiée suspecte (via audit)
Voir
Possibilité d’infiltration/exfiltration de données/C2 via des services/outils tiers (via proxy)
Voir
Possibilité d’infiltration/exfiltration de données/C2 via des services/outils tiers (via dns)
Voir
IOC (HashSha256) à détecter : Suivi de APT28 PixyNetLoader : Évolutions de 2024 à 2026 Partie 5
Voir
IOC (HashSha256) à détecter : Suivi de APT28 PixyNetLoader : Évolutions de 2024 à 2026 Partie 4
Voir
IOC (HashSha256) à détecter : Suivi de APT28 PixyNetLoader : Évolutions de 2024 à 2026 Partie 3
Voir
IOC (HashSha256) à détecter : Suivi de APT28 PixyNetLoader : Évolutions de 2024 à 2026 Partie 2
Voir
IOC (HashSha256) à détecter : Suivi de APT28 PixyNetLoader : Évolutions de 2024 à 2026 Partie 1
Voir
IOC (HashMd5) à détecter : Suivi de APT28 PixyNetLoader : Évolutions de 2024 à 2026
Voir
Détecter les fichiers PNG de stéganographie PixyNetLoader [Événement de fichier Windows]
Voir
Exécution de simulation
Condition préalable : Le contrôle préalable de télémétrie et de base de référence doit avoir été réussi.
Raisonnement : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.
-
Narratif de l’attaque & Commandes :
Un opérateur APT28 obtient une charge utile malveillante (par exemple, une porte dérobée PowerShell) et l’intègre dans un PNG à l’aide d’un outil de stéganographie personnalisé. L’opérateur copie ensuite le PNG fabriqué dans l’un des emplacements de dépôt connus de PixyNetLoader (SplashScreen.png). L’écriture du fichier génère un événement d’audit de sécurité Windows (4663) qui correspond à la règle Sigma, provoquant une alerte. L’attaquant s’appuie sur un type de fichier vivant-de-la-terre (PNG) pour se fondre dans les données utilisateur normales et éviter les signatures AV des endpoints. -
Script de régression de test :
# -------------------------------------------------------------- # Simulation de steganographie PNG PixyNetLoader – déclenche la détection # -------------------------------------------------------------- # 1. Définir le chemin cible (choisir l'un des trois emplacements surveillés) $targetPath = "$env:USERPROFILEMicrosoft OneDrivesetupCacheSplashScreen.png" # 2. Construire un en-tête PNG minimal (8 octets) – dans une attaque réelle, cela inclurait # la charge utile cachée par la stéganographie. $pngHeader = [byte[]] (0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A) # 3. Ajouter une charge utile factice (par exemple, un script PowerShell encodé en base64) $payload = [Text.Encoding]::ASCII.GetBytes( "UE9TVCAiZXhlYyAiY2F0IC5leHQiIiA+ICJQYXlsb2FkIg==" ) # Base64 de : POST "exec "cat .ext"" > "Payload" $fileBytes = $pngHeader + $payload # 4. Écrire le PNG fabriqué à l'emplacement cible [IO.File]::WriteAllBytes($targetPath, $fileBytes) Write-Host "PNG malveillant déployé sur $targetPath" -
Commandes de nettoyage :
# Supprimer le PNG malveillant pour restaurer l'hôte $targetPath = "$env:USERPROFILEMicrosoft OneDrivesetupCacheSplashScreen.png" if (Test-Path $targetPath) { Remove-Item -Path $targetPath -Force Write-Host "Supprimé $targetPath" } else { Write-Host "Fichier non trouvé – rien à nettoyer."