Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

String Obfuscation

hacking

Définition

L'obfuscation de chaînes (String Obfuscation) est une technique d'évasion qui encode, chiffre, ou transforme les chaînes de caractères sensibles dans un binaire malveillant pour éviter leur détection par les analyses statiques des antivirus et des outils de reverse engineering. Les chaînes révélatrices comme les URLs C2, les noms de fonctions API Windows, les messages d'erreur, et les paths de fichiers sont les principales cibles. Les techniques de base incluent : le XOR encoding (XOR chaque caractère avec une clé fixe ou dérivée de la position), le ROT13 et ses variantes (décalage de l'alphabet), la concaténation (construire la chaîne par assemblage de parties à l'exécution), le Base64 avec décodage runtime, et le chiffrement AES/RC4 avec une clé hardcodée ou dérivée. Ces techniques empêchent les analyseurs de trouver les IOC (URLs de C2, noms de mutex) directement dans le binaire. Des approches plus sophistiquées incluent : le stack-based string construction (construire la chaîne caractère par caractère sur la pile plutôt que de la stocker dans la section .data), l'utilisation de constantes numériques assemblées à l'exécution, le hashing des noms de fonctions API (calculer le hash CRC32/djb2 du nom de la fonction et le comparer aux exports de ntdll au lieu d'importer la fonction par nom), et l'obfuscation du code d'obfuscation lui-même (plusieurs couches de transformation). Des outils comme ConfuserEx (pour .NET), obfuscator-llvm (pour le code C/C++ compilé), et des scripts Python custom automatisent l'obfuscation de chaînes dans les projets de développement de malwares ou de payloads offensifs. Des plugins IDA Pro et Ghidra permettent l'analyse et le déobfuscation des chaînes obfusquées lors du reverse engineering.

Fonctionnement

XOR obfuscation simple en C : char enc_url[] = {0x43^0xAA, 0x32^0xAA, ...}; // URL chiffrée char key = 0xAA; for(int i=0; i. Hash-based API resolution : calculer djb2 hash de chaque nom de fonction dans l'export table de ntdll, comparer au hash hardcodé → GetProcAddress sans importer les noms de fonction. Les analyseurs statiques ne voient pas 'VirtualAlloc' comme import, seulement des constantes numériques.

Exploitation offensive

L'obfuscation de chaînes est une couche de base dans tout payload offensif : les URLs C2, les mutex names, et les chemins de fichiers obfusqués ne déclenchent pas les signatures d'AV basées sur ces IOC. Combinée avec le hash-based API resolution, un payload peut n'avoir aucun import visible dans sa table d'imports et aucune chaîne reconnaissable dans sa section de données.

Détection et mitigation

Les analyses dynamiques (sandbox, émulation) exécutent le code et observent les chaînes déchiffrées en mémoire lors de l'exécution, contournant l'obfuscation statique. Les EDR avec ETW et Memory scanning peuvent identifier les chaînes déobfusquées en mémoire lors de l'exécution réelle. AMSI inspecte les scripts et assemblies au moment de leur exécution, capturant les contenus après déobfuscation.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis