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.

Strings Extraction Malware

forensics

Définition

L'extraction et l'analyse des chaînes de caractères (strings) d'un binaire malveillant est l'une des premières et des plus productives étapes de l'analyse statique. Les chaînes de caractères imprimables présentes dans un exécutable révèlent souvent des informations critiques : URLs et domaines C2, adresses IP, chemins de fichiers, messages d'erreur, clés de registre, noms de fonctions API, et parfois même des commentaires de code laissés par le développeur. L'outil 'strings' (disponible sur Linux et dans Sysinternals Suite pour Windows) extrait toutes les séquences de caractères ASCII imprimables d'une longueur minimale (par défaut 4 caractères). Sur Linux : 'strings malware.exe' ou 'strings -e l malware.exe' pour les chaînes Unicode (UTF-16LE). La commande strings -a scanne tout le fichier y compris les sections de données. Le principal défi de l'extraction de strings est l'obfuscation. Les malwares modernes obfusquent leurs chaînes de caractères sensibles en les chiffrant (XOR, RC4, AES), en les décomposant, ou en les construisant dynamiquement à l'exécution. Ces chaînes ne sont pas visibles dans une analyse statique standard. FLOSS (FireEye Labs Obfuscated String Solver, aujourd'hui partie de FLARE-VM) résout ce problème en émulant statiquement l'exécution du binaire pour découvrir les chaînes désobfusquées. FLOSS utilise l'émulation d'instructions (via Vivisect) pour identifier et exécuter les fonctions de désobfuscation courantes et extraire les chaînes en clair qu'elles produisent. Une technique avancée pour analyser les chaînes dans un contexte de malware inconnu consiste à contextualiser chaque chaîne : une URL seule ne signifie pas grand chose, mais une URL accompagnée d'une UserAgent string, d'un chemin de fichier local, et d'une clé de registre définit un profil de comportement complet. CyberChef (GCHQ) permet d'appliquer des transformations en chaîne pour décoder des strings obfusquées (base64, XOR, etc.).

Fonctionnement

strings parcourt le binaire byte par byte et extrait les séquences d'octets correspondant à des caractères imprimables ASCII (0x20-0x7E) ou Unicode d'une longueur minimale. FLOSS va plus loin en émulant le code pour trouver les strings générées dynamiquement. yarGen génère automatiquement des règles YARA à partir des strings uniques d'un malware.

Application DFIR

Workflow strings analysis : 1) strings -a malware.exe > strings.txt, 2) grep pour URLs/IPs (grep -E 'https?://|[0-9]{1,3}\.[0-9]{1,3}'), 3) grep pour chemins fichiers (grep -E 'C:\\|HKEY'), 4) FLOSS malware.exe pour strings obfusquées. Soumettre les URLs/IPs trouvées à VirusTotal, Shodan, ou URLScan.io.

Outils

strings (Linux natif, Sysinternals Windows), FLOSS (FireEye/Mandiant, désobfuscation), BinText (NM), CyberChef (décodage XOR/Base64). yarGen (génération règles YARA depuis strings), Capa (capabilities detection via strings et patterns). Automatisation : pefile Python library pour l'extraction programmatique.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis