Plateforme d'analyse de malwares multi-format combinant un sandbox Windows furtif Ring-3, des analyseurs statiques PE/PDF, la récupération de clés de rançongiciels et un ensemble d'IA pour une détection résistante aux faux positifs.
Version du système : V1.6 Enterprise Edition (Mise à jour complète des fonctionnalités du système)
Auteur : Rin449 Langages & Technologies clés : C++17 (MinGW-w64 / MSYS2), Python 3.9+, PyQt6, MinHook, Capstone Engine, Intel PT (Processor Trace), PyTorch, LightGBM, OpenSSL 3.x, zlib, Argon2id, Cryptography, Ed25519
Document de référence Master : Détails de l'architecture multi-format (Multi-Format), algorithmes d'analyse récursive, analyse statique PE & PDF, surveillance dynamique Sandbox Stealth Ring-3, extraction de structures de clés Ransomware, modèle IA résistant aux faux positifs (False Positive Resistant), système de secours hors ligne WinRE et sécurité des données Zero-Knowledge.
Language / Ngôn ngữ: 🇻🇳 Tiếng Việt | 🇬🇧 English
Analyzers/PDF/)AnalysisNode)dataset/pdf/)StratifiedGroupKFoldCalibratedClassifierCV)pagefile.sysBehaviorGraph) & State Machine de Chaîne d'Attaquebhpai_rescue.exebhpai_rescue.exeÀ l'ère actuelle de la cybersécurité, les attaques ciblées (APT), les logiciels espions et les rançongiciels (Ransomware) ont dépassé le cadre des fichiers exécutables traditionnels (.exe, .dll) :
/Launch exécutant des commandes dissimulées) ou en encapsulant des fichiers exécutables PE intégrés dans des PDF de type Dropper.BHPAI version V1.6 Enterprise est un système de cybersécurité multicouche, offrant une solution de protection complète pour la chaîne d'attaque grâce à l'architecture Multi-Format Hybrid Engine : routage automatique multi-format (PE, PDF, Office, Script), analyse récursive des payloads imbriqués, isolation Sandbox Ring-3 stealth, surveillance matérielle Intel PT, et modèle IA calibré résistant aux faux positifs.
BHPAI V1.6 est conçu sur la base du modèle Routage - Analyse Récursive - Corrélation Comportementale - Récupération Hors Ligne :``` ┌───────────────────────────────────────────────┐ │ INPUT FILE STREAM │ └───────────────────────┬───────────────────────┘ │ ┌───────────▼───────────┐ │ 3-STAGE FILE ROUTER │ │ (Magic/ZIP/Script) │ └───────────┬───────────┘ │ ┌──────────────────────────────┼──────────────────────────────┐ │ │ │ [FileFormat::PE] [FileFormat::PDF] [FileFormat::Office] │ │ │ ┌────────────▼────────────┐ ┌────────────▼────────────┐ ┌────────────▼────────────┐ │ STATIC PE ANALYZER │ │ PDF ANALYZER V2.0 │ │ OOXML / OLE ANALYZER │ │ - Capstone Disassembler│ │ - Binary Stream Parser │ │ - Macro VBA Extractor │ │ - Opcode TF-IDF & CFG │ │ - Action/JS Deobfuscate│ │ - External DDE Links │ │ - YaraGen & Fuzzy Hash │ │ - 57 Features + Level 2│ │ - Embedded OLE Objects │ └────────────┬────────────┘ │ Structural Fingerprnt│ └────────────┬────────────┘ │ └────────────┬────────────┘ │ │ │ │ │ (Trích xuất Embedded PE) │ │ │ │ │ ┌────────────▼────────────┐ │ └────────────────►│ RECURSIVE ANALYSIS TREE │◄────────────────┘ │ (AnalysisNode Tree) │ └────────────┬────────────┘ │ ┌────────────▼────────────┐ │ DYNAMIC SECURE SANDBOX │ │ - Job Object & Token │ │ - COW Overlay FS/Reg │ │ - Stealth PEB Unlink │ │ - Intel PT Hardware Trc│ └────────────┬────────────┘ │ ┌──────────────────────────────┴──────────────────────────────┐ │ │ ┌────────────▼────────────┐ ┌────────────▼────────────┐ │ BHR RANSOMWARE ENGINE │ │ AI & BEHAVIORGRAPH V1.6 │ │ - High-Entropy Detector │ │ - Multi-Format Ensemble │ │ - RAM & Pagefile Keys │ │ - Cross-Process Machine │ │ - Instant COW Rollback │ │ - MITRE ATT&CK Mapping │ └─────────────────────────┘ └─────────────────────────┘
1. **Safety First & Anti-Bomb (Sécurité avant tout et anti-bombe)**: Isolation du processus en sandbox via un Bureau virtuel dédié (`BHPAISandboxDesktop`), limitation par Job Object (RAM 512MB, CPU, Breakaway interdit) et réduction des privilèges avec un Restricted Token. Le décompresseur de flux PDF est protégé par `AnalysisBudget` et `ParserLimits` contre les Decompression Bombs (taux de compression maximal 100:1, limites de taille et de profondeur d'imbrication).
2. **Stealth Anti-Evasion (Réduction de l'empreinte en mode utilisateur)**: La DLL de surveillance Ring-3 minimise activement les traces face aux techniques anti-analyse courantes en se retirant des 3 listes de liens doubles du PEB Module (`InLoadOrder`, `InMemoryOrder`, `InInitializationOrder`), en effaçant le PE Header et le Debug PDB en RAM, et en configurant une DACL protégeant le Launcher contre les commandes basiques `OpenProcess(PROCESS_TERMINATE)`.
3. **Recursive Analysis Tree & Child Dominance (Analyse récursive et dominance des enfants)**: L'architecture en arbre `AnalysisNode` vérifie récursivement chaque fichier intégré dans le document. Lorsqu'un exécutable enfant (Child PE) est détecté comme malveillant, le système déclenche la **Child Dominance Rule**, élevant automatiquement la conclusion du document parent à **MALICIOUS** avec un score de risque minimal de 85/100.
4. **False-Positive Resistance AI (Résistance aux faux positifs)**: Élimination des raccourcis de raisonnement erronés grâce à l'organisation d'un jeu de données à 3 niveaux (`suspicious_benign`), à la déduplication multi-niveaux (Exact Hash + Structural Fingerprint) et à la stratification par groupes `StratifiedGroupKFold`.
5. **Data Protection & Key Recovery (Détection et assistance à l'extraction de clés candidates)**: Le BHR Engine détecte les comportements de chiffrement à entropie soudaine dans le périmètre Win32/NT I/O, recherche les structures de clés candidates (AES-GCM GHASH $H$, état ChaCha20, RSA DER, X25519) en RAM et dans `pagefile.sys` avant que le processus ne libère la mémoire, et prend en charge le rollback des fichiers écrits dans la zone tampon COW Overlay pour les opérations d'I/O standard.
---
### 1.3 Tableau des spécifications techniques clés V1.6 (Technical Highlights)
| Sous-système & Critère | Spécifications Techniques & Technologies déployées V1.6 |
| :--- | :--- |
| **Routage de fichiers (File Router)** | 3-Stage: Magic Bytes (PE, PDF, PK, OLE2, Shebang) + Container Inspection (In-memory ZIP for DOCX/XLSX/PPTX) + Script Classifier (PS1, VBS, JS, BAT, HTA) |
| **Analyse PDF Native V2.0** | C++17 Binary-Safe Parser, FlateDecode/ASCIIHex Inflate, Recursive Embedded Payloads (`MZ`), Javascript Obfuscation & Acrobat API Analyzer, 57 Vector Features |
| **Défense Anti-Bomb / DoS** | `ParserLimits`: Max Input 500MB, Max Extracted 250MB, Max Ratio 100.0, Max Objects 100K, Max Filter Depth 6, Timeout 30 secondes |
| **Environnement Sandbox** | Windows Job Object (RAM 512MB, CPU Affinity, No Breakaway, UILIMITs) + Restricted Token (Drop Dangerous Privileges) + Virtual Desktop |
| **Virtualisation Filesystem/Registry** | Copy-On-Write (COW) Virtual Overlay 2 couches prenant en charge les Alternate Data Streams (ADS), les Reparse Points, et la Merged Virtual Registry View |
| **Techniques Stealth Monitor** | Unlink PEB (`InLoadOrder`, `InMemoryOrder`, `InInitializationOrder`) + In-Memory PE Header Scrubber + PDB Wiping + Launcher DACL Guard |
| **Hooking & Graphe Comportemental** | MinHook Engine + RAII `HookGuard` + `BehaviorGraph` inter-processus (Remote Thread, Process Hollowing, APC Queue Injection) |
| **Surveillance Matérielle Intel PT** | Hardware-Assisted Tracing via CPUID leaf 0x14, `ProcessIntelProcessorTrace` Class 47, TNT/TIP/FUP Packet Decoder |
| **Analyse Statique PE (Static)** | Capstone Disassembler (x86/x64) + Opcode TF-IDF + API N-Grams + CFG Cyclomatic Complexity + YaraGen (Rust Blacklist) + SSDEEP/TLSH |
| **Modèles AI / Machine Learning** | PyTorch Sequence Embedder + GNN sur CFG + LightGBM Ensemble (Adam, Eve, Marcus) + SHAP Feature Pruning + PDF Calibrated LGBM |
| **Entraînement Anti-Faux Positifs** | Dataset 3 niveaux (`malware`, `benign`, `suspicious_benign`), Dedup niveau 1 (SHA256) & niveau 2 (Structural Fingerprint), `StratifiedGroupKFold` |
| **Détection de Ransomware** | Real-time Shannon Entropy Calculation ($\ge 7.5$) + Burst Modification Rate ($>20$ files/s) + Shadow Copy Wiping Detector |
| **Extraction de Clés & Récupération** | RAM & `pagefile.sys` Extractor pour 20+ algorithmes (AES-GCM GHASH $H$, ChaCha20, RSA DER, X25519 Clamping) + Automated COW Rollback |
| **Sauvegarde Chiffrée Indépendante (Vault)** | Client-Side Zero-Knowledge E2EE (AES-256-GCM) + SRP-6a PAKE (RFC 5054) + Instant Re-Keying ($K_{\text{vault}}$) + Canonical AAD |
| **Sauvetage Hors-ligne WinRE** | `bhpai_rescue.exe` C++17 standalone, 7 sous-systèmes, transaction ACID en 5 phases, Crash state recovery, montage automatique du registre hors-ligne |
| **Interface Desktop & Licence** | PyQt6 Dark Glassmorphism GUI (QThread workers) + Ed25519 HWID Hardware-Locked Licensing engine |
---
## 2. SCHÉMA D'ARCHITECTURE & FLUX GLOBAL DE TRAITEMENT DES DONNÉES
Le diagramme de séquence illustre le flux de traitement depuis la réception du fichier d'entrée jusqu'à l'extraction du payload, l'analyse statique/dynamique, la classification par IA et la récupération des données :```mermaid
sequenceDiagram
autonumber
actor Analyst as Chuyên viên / Người dùng
participant GUI as Desktop GUI / CLI Runner
participant Router as 3-Stage FileRouter
participant Static as Static Engine (PE/PDF/Office)
participant RecTree as Recursive Analysis Tree
participant Sandbox as Ring-3 Stealth Sandbox
participant BHR as BHR Ransomware Engine
participant AI as AI Ensemble & BehaviorGraph
participant WinRE as BHPAI Rescue Suite (WinRE)
Analyst->>GUI: Tải tệp lên (PE, PDF, Doc, Script)
GUI->>Router: Định tuyến định dạng tệp (Magic Bytes/Container)
alt Định dạng PDF
Router->>Static: Phân tích C++ PDF Parser V2.0
Static->>RecTree: Bóc tách JavaScript & Streams nhúng
opt Có tệp PE / Shellcode nhúng bên trong
RecTree->>Static: Phân tích PE con (Child PE Static Scan)
Static-->>RecTree: Phát hiện PE độc hại (Child Dominance Rule)
end
else Định dạng PE
Router->>Static: Phân tích Capstone, Opcode TF-IDF, CFG, YaraGen
end
Static->>AI: Vector hóa đặc trưng tĩnh & Dự đoán mô hình AI
opt Yêu cầu phân tích động chuyên sâu
GUI->>Sandbox: Khởi chạy mẫu trong Virtual Desktop & Job Object
Note over Sandbox: Kích hoạt PEB Unlink, COW FS/Reg, MinHook, Intel PT
Sandbox->>BHR: Giám sát Entropy & Tốc độ ghi tập tin thời gian thực
opt Phát hiện hành vi Ransomware (Entropy >= 7.5, Burst I/O)
BHR->>BHR: Kích hoạt RAM & Pagefile Candidate Key Extractor
BHR->>Sandbox: Ghi nhận Crypto Timeline & Bản đồ biến đổi
end
Sandbox->>AI: Chuyển dữ liệu sự kiện Hook/ETW vào BehaviorGraph
AI->>AI: Khớp mẫu chuỗi tấn công & MITRE ATT&CK Mapping
end
AI-->>GUI: Xuất báo cáo tổng hợp Universal Schema 2.0 (Threat Score, IOCs)
opt Hệ thống bị tê liệt hoặc dính Ransomware diện rộng
Analyst->>WinRE: Khởi động vào môi trường cứu hộ WinRE
WinRE->>WinRE: Giao dịch 5 giai đoạn: Quét offline -> Sao lưu -> Unbrick Registry -> Rollback
WinRE-->>Analyst: Hệ thống được phục hồi nguyên trạng
end
Le code source principal se trouve dans : BHPAISandbox.cpp, BHPAIMonitor.cpp, SafeVirtualDesktop.cpp, SafeJobObject.cpp, IntelPTMonitor.cpp, FakeNetEngine.cpp.
BHPAISandboxDesktop) : Initialisé via CreateDesktopW avec les indicateurs DESKTOP_CREATEWINDOW | DESKTOP_WRITEOBJECTS. Toutes les fenêtres graphiques, les messages Windows (WM_DROPFILES, WM_COPYDATA, Redirection UI) du code malveillant sont entièrement confinés dans le bureau virtuel, isolés de l'écran de l'utilisateur (bureau Default).SafeJobObject) :
JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE : Lorsque le processus Launcher se termine, toute l'arborescence des processus enfants du code malveillant est automatiquement détruite.JOB_OBJECT_LIMIT_PROCESS_MEMORY : Limite la RAM maximale à 512 Mo/processus pour éviter l'épuisement des ressources système.JOB_OBJECT_LIMIT_ACTIVE_PROCESS : Limite à un maximum de 32 processus simultanés pour contrer les attaques Fork-Bomb.JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION : Bloque la fenêtre de dialogue de crash Windows Error Reporting.JOB_OBJECT_UILIMIT_HANDLES | JOB_OBJECT_UILIMIT_GLOBALATOMS : Empêche l'interférence avec les Handle et les Atoms globaux.Le Launcher crée un Token restreint via CreateRestrictedToken avant d'appeler CreateProcessAsUserW :
WinBuiltinAdministratorsSid, WinLocalSystemSid, WinLocalAdminSid.SeDebugPrivilege, SeTcbPrivilege, SeTakeOwnershipPrivilege, SeLoadDriverPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeShutdownPrivilege, SeImpersonatePrivilege.SECURITY_MANDATORY_LOW_RID ou SECURITY_MANDATORY_MEDIUM_RID.Afin de minimiser la capacité du code malveillant à détecter la DLL de surveillance dans l'espace mémoire Ring-3 :
BHPAIMonitor.dll retire automatiquement sa propre LDR_DATA_TABLE_ENTRY des 3 listes doublement chaînées dans le Process Environment Block (PEB) :
InLoadOrderModuleListInMemoryOrderModuleListInInitializationOrderModuleList
Lorsque le code malveillant parcourt PEB->Ldr ou appelle EnumProcessModules, le module de surveillance n'apparaît pas dans la liste.PAGE_READWRITE et remplissage à zéro (Zero-fill) des zones IMAGE_DOS_HEADER, IMAGE_NT_HEADERS, IMAGE_SECTION_HEADER et de la chaîne Debug Directory PDB Path de la DLL en mémoire RAM, empêchant les techniques de scan de signatures mémoire.SetKernelObjectSecurity avec une liste de contrôle d'accès discrétionnaire (DACL) vide, refusant les droits PROCESS_TERMINATE, PROCESS_VM_WRITE, et PROCESS_SUSPEND_RESUME aux processus de niveau d'intégrité inférieur.Le système utilise le MinHook Engine pour intercepter directement les fonctions Native NT API de bas niveau dans ntdll.dll et kernelbase.dll :
| Groupe d'API | Fonction Native Hookée | Objectif de Surveillance & Redirection |
|---|---|---|
| Process / Thread | NtCreateProcessEx, NtCreateUserProcess, NtCreateThreadEx, NtQueueApcThread | Détection de création de processus enfant, Process Injection, APC Injection. |
| Virtual Memory | NtAllocateVirtualMemory, NtProtectVirtualMemory, NtWriteVirtualMemory | Identification d'allocation PAGE_EXECUTE_READWRITE, Process Hollowing, Shellcode Injection. |
| Filesystem I/O | NtCreateFile, NtOpenFile, NtWriteFile, NtSetInformationFile, NtDeleteFile | Enregistrement des I/O, redirection COW Overlay, mesure de l'Entropie de Shannon. |
| Registry | NtCreateKey, NtOpenKey, NtSetValueKey, NtDeleteValueKey | Surveillance des points d'ancrage d'auto-démarrage (Persistence) et redirection COW. |
| Anti-Analysis | NtQueryInformationProcess, NtSetInformationThread, NtDelayExecution | Blocage de la détection ProcessDebugPort, ThreadHideFromDebugger, accélération du Sleep Evasion. |
Toutes les fonctions hookées sont protégées par la couche RAII HookGuard (thread_local bool in_hook), garantissant la protection contre le phénomène de boucle infinie (Recursive Hook Loop Deadlock).
Afin de protéger le système réel tout en permettant au code malveillant d'interagir normalement :
GENERIC_READ, le système autorise la lecture depuis le fichier original.GENERIC_WRITE ou de suppression FILE_DELETE_ON_CLOSE : Le fichier original est immédiatement copié vers le répertoire temporaire virtualisé BHPAI_Sandbox_Overlay\Files\. Toutes les opérations de modification de données s'exécutent sur cette copie.file.txt:zone.identifier), Reparse Points et Symbolic Links.HKLM\Software\Microsoft\Windows\CurrentVersion\Run) sont mappées vers la branche temporaire HKCU\Software\BHPAI_Virtual_Registry\.Utilisation du sous-système Microsoft Event Tracing for Windows (ETW) pour capturer les événements du Kernel :
Microsoft-Windows-Kernel-Process : Capture les événements de création de processus même si le code malveillant utilise des Direct Syscalls pour contourner les Userland Hooks.Microsoft-Windows-Kernel-Network : Enregistre les connexions TCP/UDP de bas niveau.Microsoft-Windows-Kernel-Memory : Surveille les opérations de mappage mémoire croisé (Cross-Process Memory Mapping).Intégration d'un moteur de simulation réseau indépendant (FakeNetEngine.cpp) :
127.0.0.1).Le sous-système IntelPTMonitor.cpp exploite la fonctionnalité de traçage matériel des CPU Intel :
__cpuidex(0x14, 0).ProcessIntelProcessorTrace).TNT (Taken/Not-Taken Branch), TIP (Target IP) et FUP (Function Pointer), permettant la détection des chaînes ROP (Return-Oriented Programming) et le décodage du flux d'exécution sans dépendance logicielle.Bien que conçu avec de multiples couches de protection, l'environnement d'analyse dynamique Ring-3 présente des frontières techniques naturelles qui doivent être clairement comprises en situation opérationnelle :
ntdll.dll sur disque et exécute l'instruction binaire syscall / sysenter directement depuis sa propre mémoire, le flux d'exécution saute directement dans le Kernel sans passer par les fonctions installées par MinHook dans ntdll.dll.Le code source principal se trouve dans : Core/analyzer/, Analyzers/PE/, pe_analyzer.exe.
IMAGE_DOS_HEADER, IMAGE_NT_HEADERS (32-bit & 64-bit).OptionalHeader.AddressOfEntryPoint, ImageBase, Subsystem, DllCharacteristics (ASLR, DEP, CFG, High Entropy VA).SizeOfRawData présentant un écart important par rapport à VirtualSize.IMAGE_SCN_MEM_WRITE | IMAGE_SCN_MEM_EXECUTE (Violation W^X).cs_open(CS_ARCH_X86, CS_MODE_32 / CS_MODE_64) avec la configuration détaillée CS_OPT_DETAIL..text, .code).mov -> push -> call -> test -> jz).IMAGE_IMPORT_DESCRIPTOR (IAT) et analyse des paires d'API hautement suspectes :
VirtualAlloc $\rightarrow$ WriteProcessMemory $\rightarrow$ CreateRemoteThread.FindResource $\rightarrow$ LoadResource $\rightarrow$ LockResource $\rightarrow$ SizeofResource.CryptAcquireContext $\rightarrow$ CryptGenKey $\rightarrow$ CryptEncrypt.jmp, call, ret, je, jne).UPX0, UPX1, UPX2, ASPack, PECompact, Themida, VMProtect, .mpress.library\core\src\..., panicked at, alloc::raw_vec).Le code source principal se trouve dans : Analyzers/PDF/, FileRouter.hpp, UniversalDefanger.hpp, UniversalReportSchema.hpp, pdf_analyzer.exe.
Le système ne se base pas sur l'extension du fichier (.exe, .pdf) mais utilise une architecture de routage 3-Stage FileRouter :
4D 5A (MZ) $\rightarrow$ FileFormat::PE25 50 44 46 (%PDF) $\rightarrow$ FileFormat::PDF50 4B 03 04 (PK..) $\rightarrow$ Container InspectionD0 CF 11 E0 (OLE2 Compound Document) $\rightarrow$ FileFormat::Office7F 45 4C 46 (.ELF) $\rightarrow$ FileFormat::ELF#! (Shebang) / MZ / <html> $\rightarrow$ Branche correspondante[Content_Types].xml & word/ $\rightarrow$ FileFormat::Office (Word DOCX)xl/ $\rightarrow$ FileFormat::Office (Excel XLSX)ppt/ $\rightarrow$ FileFormat::Office (PowerPoint PPTX)classes.dex / AndroidManifest.xml $\rightarrow$ FileFormat::APKMETA-INF/MANIFEST.MF $\rightarrow$ FileFormat::JAR.ps1), VBScript (.vbs), JavaScript (.js), Batch (.bat), HTML Application (.hta).Analyzers/PDF/)L'analyseur PDF est entièrement écrit en C++17 pur, sûr au niveau binaire et sans dépendance à des bibliothèques externes volumineuses :
/FlateDecode (zlib inflate), /ASCIIHexDecode, /ASCII85Decode, /LZWDecode, /RunLengthDecode./OpenAction, /AA, /Names, /JavaScript, /JS, /Launch, /EmbeddedFiles, /RichMedia, /XFA.unescape(), String.fromCharCode(), eval(), Heap Spraying NOP Sled (%u9090%u9090), et exploitation des APIs Adobe Reader (util.printf, collab.getIcon, spell.customDictionaryOpen).AnalysisNode)Structure d'arbre récursive hiérarchique gérant l'ensemble des payloads intégrés :``` [AnalysisNode: Root PDF (Document.pdf)] │ ├── [AnalysisNode: Object 14 - JavaScript Stream] │ └── Trích xuất: eval(unescape(...)) -> Shellcode Buffer │ └── [AnalysisNode: Object 22 - Embedded Payload (/EmbeddedFile)] ├── Định tuyến qua 3-Stage FileRouter -> Nhận diện: FileFormat::PE └── [AnalysisNode: Child PE (Dropper.exe)] ├── Phân tích tĩnh Capstone Disassembler ├── Trích xuất Section Entropy, Opcode TF-IDF, IAT └── Kết luận phân tích: MALICIOUS (Risk: 98/100)
---
### 5.4 Moteur de Notation du Risque Contextuel & Règle de Dominance Enfant (Child Dominance Rule)
1. **Contextual Risk Scoring Engine** : Notation basée sur des poids contextuels combinés (Action Trigger $\times$ JavaScript Risk $\times$ Exploit Indicators).
2. **Child Dominance Rule (Règle de Dominance Enfant)** :
- Si un nœud enfant quelconque dans l'arbre récursif (`Child Node`) a une conclusion **`MALICIOUS`** (par exemple : un fichier PE joint est un ransomware ou un trojan) :
- Le nœud racine parent (Parent Document) **est automatiquement élevé à la conclusion `MALICIOUS`**.
- Le score de risque du nœud parent est automatiquement défini :
$$\text{Score}_{\text{parent}} = \max(\text{Score}_{\text{parent}}, 85, \text{Score}_{\text{child}})$$
---
### 5.5 Défense Anti-DoS & Protection Contre les Bombes de Décompression (Decompression Bomb Protection)
Pour garantir que le système ne soit pas attaqué par épuisement de ressources (Denial-of-Service) :
- **Configuration `ParserLimits`** :
- Taille maximale du fichier d'entrée : **500 MB**.
- Taille totale maximale de la chaîne de décompression : **250 MB**.
- Taux de compression maximal (Max Compression Ratio) : **100.0:1** (au-delà de ce seuil, la décompression s'arrête immédiatement et `DecompressionBombDetected` est marqué).
- Nombre maximal d'objets : **100 000 Objects**.
- Profondeur maximale d'imbrication des filtres de décompression : **Maximum 6 niveaux**.
- **Mécanisme `AnalysisBudget`** :
- Mise en place d'un compte à rebours avec un timeout maximal : **30 secondes/fichier**.
- Annulation automatique de l'analyse récursive si le budget temps est dépassé, sans faire planter l'application.
---
### 5.6 Mappage MITRE ATT&CK Basé sur les Preuves & Universal IOC Defanger
1. **Evidence-Based MITRE ATT&CK Mapping** :
Chaque technique MITRE ATT&CK est assignée avec des preuves spécifiques (Evidence String, Object ID, Byte Offset) :
- `T1204.002` (Malicious File) : `/OpenAction` trouvé pointant vers l'Object 8.
- `T1059.007` (JavaScript) : Chaîne d'exploitation mémoire trouvée dans l'Object 14.
- `T1027.009` (Embedded Payloads) : Binaire PE exécutable trouvé dans `/EmbeddedFiles`.
2. **Universal IOC Defanger (`UniversalDefanger.hpp`)** :
Neutralisation automatique des indicateurs de compromission avant affichage ou export du rapport :
- URL : `http://malicious.com/c2` $\rightarrow$ `hxxp://malicious[.]com/c2`
- IPv4 / IPv6 : `192.168.1.100` $\rightarrow$ `192.168.1[.]100`
- Domain : `evil-trojan.top` $\rightarrow$ `evil-trojan[.]top`
---
### 5.7 Normalisation du Rapport de Sortie Universal Schema 2.0
Chaque sous-système d'analyse (PE, PDF, Dynamic Sandbox, WinRE) renvoie des données uniformes selon le standard **Universal JSON Schema 2.0** :
- `metadata` : `sha256`, `md5`, `file_size`, `format`, `timestamp`.
- `threat_summary` : `score` (0-100), `verdict` (`CLEAN`, `SUSPICIOUS`, `MALICIOUS`), `confidence`.
- `analysis_tree` : Structure arborescente récursive hiérarchique de toutes les payloads.
- `mitre_matrix` : Liste des tactiques et techniques ATT&CK avec preuves.
- `extracted_iocs` : Liste des IP, URL, Domain, Hash déjà defanged.
---
## 6. DÉTAILS DU SOUS-SYSTÈME 4 : DATASET 3 COUCHES & PIPELINE IA PDF ANTI-FAUX POSITIFS
Le code source principal se trouve dans : [`dataset/pdf/`](file:///c:/Users/Kryo/Documents/BHPAI/dataset/pdf), [`model/pdf_features.py`](file:///c:/Users/Kryo/Documents/BHPAI/model/pdf_features.py), [`model/train_pdf.py`](file:///c:/Users/Kryo/Documents/BHPAI/model/train_pdf.py).
### 6.1 Structure de la Hiérarchisation du Dataset 3 Couches (`dataset/pdf/`)
Afin de résoudre radicalement le problème des fausses alertes (False Positive) fréquemment rencontrées dans les modèles d'IA en cybersécurité :
1. **`malware/`** : Échantillons de malwares réels collectés dans des environnements d'attaque réels (PDF contenant des CVE Exploits, Droppers, Phishing Forms, Obfuscated JS).
2. **`benign/`** : Documents PDF bureautiques standards (livres, factures financières, documents académiques, pièces administratives).
3. **`suspicious_benign/` (Hard Negatives - Ensemble de neutralisation des fausses alertes)** :
- Documents PDF totalement propres mais présentant des caractéristiques techniques complexes : factures électroniques avec signature numérique X.509 PKCS#7 (`/Sig`, `/ByteRange`), formulaires AcroForm contenant du JavaScript de calcul valide, documents avec pièces jointes de fichiers texte valides (`/EmbeddedFiles`), documents techniques contenant des extraits de code source et des chaînes obfusquées.
---
### 6.2 Élimination du Raccourci de Raisonnement "False Positive Machine" via les Hard Negatives
- Les modèles d'IA classiques, en voyant les mots-clés `/JavaScript` ou `/EmbeddedFiles`, ont tendance à étiqueter immédiatement comme malware (Heuristic Shortcut).
- L'introduction du groupe `suspicious_benign` dans l'ensemble d'entraînement force le modèle LightGBM à apprendre des corrélations plus profondes (combinaison entre entropie des chaînes d'instructions, noms d'API malveillantes, profondeur de décompression) plutôt que de déclencher une erreur simple basée sur la présence d'un mot-clé.
---
### 6.3 Déduplication Multi-Niveaux Avant Séparation (Multi-Level Deduplication)
Pour éliminer le phénomène de fuite de données (Data Leakage) entre les ensembles Train et Test :
1. **Deduplication Niveau 1 (Exact Hash)** : Élimination des fichiers ayant des hachages SHA-256 / MD5 identiques.
2. **Deduplication Niveau 2 (Structural Fingerprinting)** :
- Calcul du vecteur de hachage structurel de l'arbre d'objets PDF et du contenu sémantique.
- Élimination des variantes dérivées (variantes renommées, métadonnées modifiées mais avec une structure d'arbre byte-stream identique).
---
### 6.4 Séparation d'Ensembles Indépendants Anti-Fuite de Données `StratifiedGroupKFold`
- Utilisation de l'algorithme `StratifiedGroupKFold` (avec `n_splits=5`).
- Regroupement par identifiant de famille de documents (`Family Group ID`), garantissant que tous les fichiers partageant une même origine structurelle restent entièrement dans un seul ensemble (soit Train, soit Test), prévenant le phénomène d'apprentissage par cœur et de gonflement artificiel de la précision.
---
### 6.5 Vecteur de 57 Caractéristiques & Calibration de Probabilité (`CalibratedClassifierCV`)
1. **Espace de 57 Caractéristiques Globales** :
- Groupe Structure Header & Trailer (12 caractéristiques) : `count_obj`, `count_stream`, `count_xref`, `count_trailer`, `has_eof`, `version_number`...
- Groupe Déclencheurs Comportementaux (15 caractéristiques) : `count_js`, `count_javascript`, `count_openaction`, `count_launch`, `count_embeddedfiles`, `count_richmedia`...
- Groupe Entropie & Filtres de Flux (18 caractéristiques) : `stream_entropy_mean`, `stream_entropy_max`, `flatedecode_depth`, `ratio_uncompressed`...
- Groupe Exploitation de Code & Signatures Numériques (12 caractéristiques) : `heap_spray_pattern_count`, `eval_count`, `has_signature`, `invalid_xref_count`...
2. **Calibration de Probabilité (`CalibratedClassifierCV`)** :
- Utilisation de la calibration Isotonic Regression et Platt Sigmoid Scaling sur un ensemble de validation indépendant, ramenant la sortie de l'arbre de décision LightGBM à une probabilité statistique réelle $P(\text{Malicious} \mid X) \in [0.0, 1.0]$.
---
### 6.6 Résultats du Benchmark de Vérification & Capacité de Résistance aux Fausses Alertes (Audit Report)
Évaluation expérimentale sur un ensemble de test indépendant (Test Set) :
| Indicateur d'Évaluation | Valeur Atteinte V1.6 | Évaluation Technique |
| :--- | :---: | :--- |
| **Accuracy (Précision globale)** | **99.42%** | Équilibrée sur les 3 ensembles de données |
| **Malware Recall (Couverture des malwares)** | **99.15%** | Identification de la plupart des échantillons d'exploitation CVE et PDF Dropper |
| **False Positive Rate sur `benign`** | **0.00%** | Aucune fausse alerte enregistrée sur les documents bureautiques standards |
| **False Positive Rate sur `suspicious_benign`** | **0.21%** | Résistance efficace aux fausses alertes sur les factures numériques & formulaires JS complexes |
| **Inference Latency (Latence d'inférence IA)** | **1.85 ms / fichier** | Haute vitesse, prêt pour le scan en temps réel |
---
## 7. DÉTAILS DU SOUS-SYSTÈME 5 : MACHINE LEARNING & AI ENSEMBLE (PE & GNN & SHAP)
Le code source principal se trouve dans : [`AI/`](file:///c:/Users/Kryo/Documents/BHPAI/AI), [`model/`](file:///c:/Users/Kryo/Documents/BHPAI/model), [`model/evaluate_ensemble.py`](file:///c:/Users/Kryo/Documents/BHPAI/model/evaluate_ensemble.py).
### 7.1 Fusion de l'Espace de Caractéristiques Multidimensionnel (Feature Vectorization)
Le modèle fusionne l'espace de caractéristiques des fichiers exécutables (PE) :
1. **Vecteur Statique Structurel (Static Vector)** : 128 dimensions (Section Entropy, Header Anomalies, Resource Metrics, Import Table Distribution).
2. **Vecteur de Séquence d'Opcode (Disassembly TF-IDF)** : 512 dimensions extraites du Capstone Engine.
3. **Vecteur de Séquence d'Appels API (API N-Grams)** : 256 dimensions.
4. **Vecteur de Graphe de Flux de Contrôle (CFG Structural Embeddings)** : 128 dimensions.
---
### 7.2 PyTorch API Sequence Embedder & Control Flow Graph GNN
1. **PyTorch API Sequence Embedder** :
- Réseau neuronal récurrent bidirectionnel Bi-LSTM + Multi-Head Self-Attention encodant la séquence d'appels de fonctions API continue en un vecteur sémantique compact.
2. **Control Flow Graph GNN (Graph Neural Network)** :
- Utilisation du modèle **Graph Convolutional Network (GCN)** ou **Graph Attention Network (GAT)** pour le passage de messages (Message Passing) à travers les nœuds Basic Block sur le CFG, extrayant la structure de contrôle du malware indépendamment du renommage des registres (Register Renaming).
---
### 7.3 Optimisation des Caractéristiques par SHAP Feature Pruning
- Application de la théorie des jeux **SHAP (SHapley Additive exPlanations)** pour expliquer les décisions du modèle (Explainable AI - XAI).
- Évaluation de l'indice de contribution de chaque caractéristique (SHAP Value $\phi_i$). Élimination des caractéristiques ayant une valeur SHAP proche de zéro pour optimiser la vitesse de calcul et renforcer la capacité de généralisation.
---
### 7.4 Modèle de Classification LightGBM Ensemble (Adam, Eve, Marcus) & Seuil Dynamique
Architecture Ensemble combinant 3 modèles spécialisés :
1. **Model Adam (Static Specialist)** : Spécialisé dans la classification basée sur les caractéristiques structurelles PE, Opcode TF-IDF et Header Entropy.
2. **Model Eve (Dynamic & Behavior Specialist)** : Spécialisé dans la classification basée sur le graphe comportemental `BehaviorGraph`, les journaux API Hooks et Kernel ETW.
3. **Model Marcus (Graph & Sequence Embedder)** : Spécialisé dans la classification basée sur les sorties du GNN et du PyTorch API Sequence Embedder.
4. **Dynamic Thresholding Engine** :
- Calcul du score de risque intégré pondéré :
$$\text{Score}_{\text{final}} = w_1 \cdot P_{\text{Adam}} + w_2 \cdot P_{\text{Eve}} + w_3 \cdot P_{\text{Marcus}}$$
- Classification en 3 niveaux : `CLEAN` ($\text{Score} < 40$), `SUSPICIOUS` ($40 \le \text{Score} < 75$), `MALICIOUS` ($\text{Score} \ge 75$).
---
### 7.5 Résultats du Benchmark & Évaluation Expérimentale du Classificateur IA
Tests sur un ensemble de données de test indépendant comprenant 20 000 échantillons PE (10 000 Clean + 10 000 Malware des familles Ransomware, Trojan, Worm, Backdoor) :
| Critère | Adam (Static) | Eve (Dynamic) | Marcus (GNN) | Ensemble V1.6 |
| :--- | :---: | :---: | :---: | :---: |
| **Accuracy** | 97.20% | 98.10% | 96.85% | **99.35%** |
| **Precision** | 96.80% | 98.40% | 97.10% | **99.40%** |
| **Recall** | 97.60% | 97.80% | 96.60% | **99.30%** |
| **F1-Score** | 0.9720 | 0.9810 | 0.9685 | **0.9935** |
| **AUC-ROC** | 0.9912 | 0.9945 | 0.9890 | **0.9988** |
---
## 8. DÉTAILS DU SOUS-SYSTÈME 6 : BHR ENGINE (RANSOMWARE DETECTOR & KEY RECOVERY)
Le code source principal se trouve dans : [`Core/sandbox/launcher/`](file:///c:/Users/Kryo/Documents/BHPAI/Core/sandbox/launcher), [`recovery/`](file:///c:/Users/Kryo/Documents/BHPAI/recovery), [`bhr_identify.cpp`](file:///c:/Users/Kryo/Documents/BHPAI/bhr_identify.cpp).
### 8.1 Algorithme de Détection de Chiffrement à Haute Entropie (Shannon Entropy Rate)
Le BHR Engine surveille en temps réel le flux d'écriture de données des fichiers :
- Chaque fois que la fonction `NtWriteFile` est appelée avec un bloc de données $\ge 4 \text{ KB}$, le système calcule l'Entropie de Shannon du buffer.
- Si l'Entropie des données écrites dépasse le seuil **$\ge 7.5$** (caractéristique d'un bloc compressé ou d'un ciphertext chiffré), le compteur d'alerte est déclenché.
---
### 8.2 Surveillance du Burst Modification Rate & Comportement de Suppression des Shadow Copies
1. **Burst File Modification Rate** :
- Suivi de la fréquence de modification des fichiers. Si un processus effectue plus de **20 fichiers/seconde** de modifications/écrasements avec des données à haute entropie, le processus est identifié comme un comportement Ransomware explosif.
2. **Détection du Comportement de Suppression des Shadow Copies** :
- Surveillance des processus enfants initiant des commandes de destruction du système de sauvegarde :
- `vssadmin.exe delete shadows /all /quiet`
- `wmic.exe shadowcopy delete`
- `bcdedit.exe /set {default} bootstatuspolicy ignoreallfailures`
- `bcdedit.exe /set {default} recoveryenabled no`
- `wbadmin.exe delete catalog -quiet`
---
### 8.3 Extraction de la Structure des Clés de Chiffrement (20+ Standards) depuis la RAM & `pagefile.sys`
Lors de la détection d'un comportement de chiffrement, le BHR Engine effectue un snapshot de la mémoire du processus et scanne pour trouver les structures de clés de chiffrement candidates de plus de **20 standards cryptographiques modernes** :
1. **AES-128 / AES-256 Key Schedules** : Scan de la table d'expansion de clé (Expanded Key Schedule) via le calcul inverse de l'algorithme AES S-Box / Rcon.
2. **AES-GCM Authentication Subkey ($H$)** : Identification du bloc de hachage GHASH $H = E_K(0^{128})$ caractéristique dans l'espace mémoire.
3. **ChaCha20 / Salsa20 State Matrix** : Scan de la chaîne de constantes de matrice 16-byte standard : `"expand 32-byte k"` (`0x61707865`, `0x3320646e`, `0x79622d32`, `0x6b206574`) accompagnée du tableau Nonce et Block Counter.
4. **RSA Private Key ASN.1 DER Header** : Identification de la structure PKCS#1 DER (`0x30, 0x82` avec la chaîne Modulus $n$, Public Exponent $e$, Private Exponent $d$, Primes $p, q$).
5. **X25519 / Curve25519 Scalar Clamping** : Scan des chaînes 32-byte satisfaisant la condition de bit clamping (`k[0] &= 248; k[31] &= 127; k[31] |= 64;`).
---
### 8.4 Récupération de Données depuis le Buffer COW Virtual Overlay (Win32/NT Scope)
Étant donné que les opérations d'écrasement et de chiffrement du Ransomware via les API de fichiers standard sont toutes redirigées vers le buffer virtuel `Overlay\Files\`, les fichiers originaux de l'utilisateur sur le disque dur dans cette portée de routage sont préservés.
- `automated_overlay_restore.py` effectue le nettoyage des fichiers modifiés dans la zone tampon `Overlay\`, permettant le rollback des modifications virtuelles sans avoir besoin de déchiffrer le ciphertext.
---
### 8.5 Journal Crypto Timeline & Carte des Transformations de Données
`CryptoTimeline.cpp` et `crypto_tracker.py` enregistrent tous les jalons temporels de l'attaque :
- Jalon temporel du lancement du processus et moment où le premier fichier a vu son Entropie augmenter.
- Liste de la carte des transformations : `Chemin du fichier original` $\rightarrow$ `Chemin du fichier chiffré`.
- Taux de données chiffrées par jalon temporel (Cryptographic Timeline Graph).
---
### 8.6 Test Expérimental Dual-Engine Hybrid Ransomware Memory Key Extraction
Tests en environnement Lab contrôlé face à un échantillon Ransomware simulant un mécanisme de chiffrement Dual-Engine Hybrid (similaire à LockBit 3.0 / BlackCat) :
- Chiffrement symétrique : AES-256-GCM + ChaCha20.
- Échange de clés asymétrique : X25519 Ephemeral Scalar + RSA PKCS#1 DER.
- Injection de bruit Heap : 15 zones mémoire à entropie aléatoire et blocs compressés.
Résultats de l'extraction des structures de clés candidates dans le scénario d'échantillon de test (Synthetic Benchmark) :
1. **AES-256-GCM Master Key** : Correspondance GHASH $H$ Subkey, score de confiance **95.0%**.
2. **ChaCha20 State Matrix** : Identification des constantes de matrice et Nonce, score de confiance **60.25%**.
3. **X25519 Ephemeral Key** : Identification du Clamping Pattern Mask, score de confiance **57.0%**.
4. **RSA PKCS#1 DER Sequence Private Key** : Identification de la structure ASN.1 DER, score de confiance **60.75%**.
> [!WARNING]
> **Limites Techniques & Défis en Environnement Réel (Real-World Limitations)** :
> 1. **Zeroization Immédiatement Après Chiffrement** : Les souches de Ransomware réelles (comme Babuk, Conti, LockBit) appellent souvent activement `SecureZeroMemory` ou `RtlZeroMemory` pour effacer complètement le tableau de clés symétriques immédiatement après la fin de la session de chiffrement. Le processus d'extraction n'est réalisable que si le Memory Dump est effectué en temps opportun pendant que le processus chiffre ou avant que la fonction de zeroization ne soit appelée.
> 2. **Mécanisme de Clé Asymétrique C2** : La majorité des ransomwares modernes génèrent une paire de clés Session Key symétriques (AES/ChaCha20), chiffrent cette session key avec la Public Key de l'attaquant (intégrée en dur dans le malware) et n'envoient que le Ciphertext vers le C2 ou l'écrivent à la fin du fichier chiffré. La Private Key ne se trouve pas dans la RAM de la victime.
> 3. **Fragmentation dans `pagefile.sys`** : Le scan de la mémoire virtuelle sur disque nécessite que la clé n'ait pas été écrasée (paging churn) et ne soit pas fragmentée en plusieurs pages 4KB non contiguës. Par conséquent, le scan RAM/Pagefile est une solution de sauvetage pour l'investigation de preuves (Best-Effort Forensic Triage), ne remplaçant pas entièrement les solutions de sauvegarde de données indépendantes.
---
### 8.7 Architecture Recovery Engine Registry & Crypto Dataflow Tracker
- **Recovery Engine Registry** (`recovery/registry.py`) : Gestion et enregistrement dynamique des méthodes de récupération (`automated_overlay_restore.py`, `exact_lookup.py`). Fournit un mécanisme `evaluate_all(sample)` pour classer la méthode de déchiffrement optimale.
- **Crypto Dataflow Tracker** (`recovery/crypto_tracker.py`) : Relie le flux d'événements de chiffrement, les objets de clés et vérifie la validité basée sur la séquence d'événements I/O en temps réel.
---
## 9. DÉTAILS DU SOUS-SYSTÈME 7 : BEHAVIOR CORRELATOR & BEHAVIORGRAPH ENGINE V1.6
Le code source principal se trouve dans : [`BehaviorCorrelator.cpp`](file:///c:/Users/Kryo/Documents/BHPAI/BehaviorCorrelator.cpp), [`BehaviorCorrelator.hpp`](file:///c:/Users/Kryo/Documents/BHPAI/BehaviorCorrelator.hpp), [`EventNormalizer.cpp`](file:///c:/Users/Kryo/Documents/BHPAI/EventNormalizer.cpp).
### 9.1 Normalisation des Événements Multi-Sources (Userland Hooks + Kernel ETW)
`EventNormalizer.cpp` reçoit des milliers d'événements individuels provenant de MinHook Userland DLL et Kernel ETW, les normalise au format JSON Standard :```json
{
"timestamp": 1724712000,
"pid": 4812,
"process_name": "malware.exe",
"event_type": "API_CALL",
"api_name": "NtProtectVirtualMemory",
"arguments": {
"target_pid": 1044,
"new_protect": "PAGE_EXECUTE_READWRITE"
}
}
BehaviorGraph) & Machine à États de Chaîne d'AttaqueDans la version V1.6 Enterprise, le corrélateur comportemental intègre le BehaviorGraph Engine :
ProcessNode) et d'arêtes orientées (CrossProcessEdge).(Process A -> Process B) :
OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> CreateRemoteThread (T1055.002).OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> SetThreadContext (T1055.012).OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> NtQueueApcThread (T1055.004).SetFileInformationByHandle, ReplaceFileW, CreateHardLinkW, CreateSymbolicLinkW, SetFileSecurityW).\Device\HarddiskVolumeX et \??\C:\...) vers le format Win32 standard (C:\...).RegNotifyChangeKeyValue, NtNotifyChangeKey).NetworkSessionTracker) intégrant un extracteur binaire TLS ClientHello Server Name Indication (SNI) et HTTP Request Header (Method/Host/URI).provider, algorithm, mode, keysize, ivlen, inputlen, outputlen, keygen, pid) pour CNG/CryptoAPI/NCrypt/SystemFunction sans fuite de données brutes.| Tactic | Technique ID | Nom de la Technique | État de Détection |
|---|---|---|---|
| Execution | T1204.002 | Malicious File (PDF OpenAction / Launch) | 🔴 Detected |
| Execution | T1059.007 | JavaScript (PDF Heap Spray / Eval) | 🔴 Detected |
| Execution | T1059.003 | Windows Command Shell | 🔴 Detected (cmd.exe /c vssadmin...) |
| Defense Evasion | T1027 | Obfuscated Files or Information | 🔴 Detected |
| Defense Evasion | T1027.009 | Embedded Payloads (PDF Embedded PE) | 🔴 Detected |
| Defense Evasion | T1562.001 | Impair Defenses: Disable Tools | 🔴 Detected (AMSI/ETW Patching) |
| Defense Evasion | T1620 | Reflective Code Loading | 🔴 Detected (Memory Mapped DLL) |
| Credential Access | T1003.001 | LSASS Memory Dumping | 🔴 Detected (lsass.exe Read Access) |
| Privilege Escalation | T1055 | Process Injection | 🔴 Detected (Remote Thread / APC) |
| Command and Control | T1105 | Ingress Tool Transfer | 🔴 Detected |
| Impact | T1486 | Data Encrypted for Impact | 🔴 Detected (High Entropy File Write) |
| Impact | T1490 | Inhibit System Recovery |
Le système V1.6 intègre une suite de tests automatisés à 7 dimensions (tests/) :
| Test | Script de Test | État | Résultat de mesure réel |
|---|---|---|---|
| 1. Stress & Reentrancy | tests/test_sandbox_stress.py | PASSED | 0 crash / 0 deadlock sous pression de création de processus & I/O continus. |
| 2. API Coverage & Normalization | tests/test_sandbox_coverage.py | PASSED | 0 chemin non normalisé \Device\ manqué. |
| 3. False-Positive Baseline | tests/test_sandbox_false_positive.py | PASSED | Fonctionnement normal, aucun déclenchement erroné sur les outils Windows standards. |
| 4. BehaviorGraph Validation | tests/test_sandbox_behavior_graph.py | PASSED | Graphe de processus & sessions réseau TLS SNI/HTTP fonctionnent correctement. |
| 5. E2E Performance Benchmark | tests/benchmark_sandbox_e2e.py | PASSED | Peak RAM Footprint: 1.47 MB | Total Time: 3.17s. |
| 6. PDF E2E Direct Sync Router | tests/test_pdf_router_e2e.py | PASSED | Réussit l'ensemble des tests Clean, Obfuscated JS, Embedded PE. |
Le code source principal se trouve dans : Core/vault/, gui_vault.py.
Le sous-système Vault V1.6 apporte une solution de sauvegarde indépendante à haute sécurité selon le principe Zero-Knowledge (Divulgation Nulle de Connaissance) :
---
### 10.2 Protocole d'authentification à divulgation nulle de connaissance SRP-6a PAKE (RFC 5054)
Pour authentifier et déverrouiller le Vault sans exposer le mot de passe ni le Hash du mot de passe :
1. **Initialisation des informations (Registration / Setup)** : Le Client calcule $x = H(s, P)$ et le Vérificateur $v = g^x \pmod N$, ne stocke que le Salt $s$ et le Vérificateur $v$.
2. **Authentification (Authentication)** : Exécution du protocole d'échange de preuves de sécurité basé sur la valeur secrète partagée $S$ et vérification des preuves de connaissance $M_1, M_2$. Le mot de passe n'apparaît jamais sous forme brute.
---
### 10.3 Mécanisme de changement de mot de passe instantané (Instant Re-Keying Mechanism)
BHPAI résout le problème du changement de mot de passe master sans nécessiter le rechiffrement de centaines de Go de données de sauvegarde grâce à l'architecture **$K_{ ext{vault}}$ Indirection** :
- Les données de fichiers sont chiffrées avec la clé Vault master $K_{ ext{vault}}$.
- La clé $K_{ ext{vault}}$ est elle-même protégée par la clé de déverrouillage $K_{ ext{unlock}}$ (générée à partir du mot de passe).
- Lors du changement de mot de passe : Il suffit de déchiffrer $K_{ ext{vault}}$ avec l'ancien mot de passe, puis de rechiffrer uniquement le bloc $K_{ ext{vault}}$ avec le nouveau mot de passe. **L'intégralité des données de sauvegarde conserve son état ciphertext.**
---
### 10.4 Authentification AAD Canonique & Bucket Size Padding contre l'analyse de trafic
1. **Binary Length-Prefixed Canonical AAD** (`Core/vault/integrity.py`) : Ajout de données d'authentification supplémentaires (Authenticated Additional Data) sous forme canonique compatible entre C++ et Python, empêchant le comportement d'échange de ciphertext entre différents fichiers.
2. **Application-Level Bucket Size Padding** : Les fichiers sont complétés par du remplissage (Padding) vers des tailles fixes (64KB, 1MB, 10MB, 100MB) afin de minimiser la possibilité de déduire le contenu du fichier à partir de la taille du ciphertext.
---
### 10.5 Architecture de stockage par blocs locaux chiffrés (Local Encrypted Block Store)
- Gestion des données de sauvegarde sous forme de blocs binaires chiffrés locaux sécurisés.
- Prise en charge de la déduplication locale basée sur le hachage de contenu encapsulé et protégé (Encrypted Content Chunk Hash).
- Haute compatibilité avec le stockage sur disque externe, USB sécurisé ou partition de secours indépendante.
---
## 11. DÉTAIL DU SOUS-SYSTÈME 9 : INTERFACE DESKTOP PYQT6 GLASSMORPHISM, LICENCE HWID & OUTILS CLI
Le code source principal se trouve à : [`gui.py`](file:///c:/Users/Kryo/Documents/BHPAI/gui.py), [`gui_features.py`](file:///c:/Users/Kryo/Documents/BHPAI/gui_features.py), [`gui_vault.py`](file:///c:/Users/Kryo/Documents/BHPAI/gui_vault.py), [`BHPAICrypto/license.py`](file:///c:/Users/Kryo/Documents/BHPAI/BHPAICrypto/license.py).
### 11.1 Architecture de l'interface PyQt6 Desktop Glassmorphism (Multi-Threading QThread)
L'interface utilisateur Desktop dédiée au service de l'investigation sur site et de l'exploitation locale :
- **Conception fluide sans blocage de l'UI (Non-blocking GUI Responsiveness)** : L'ensemble des travaux de calcul lourds (Disassembly Capstone, Sandbox IPC, KDF Cryptography, Extraction PE/PDF) est entièrement séparé du GUI Thread et coordonné via des **`QThread` Background Workers**.
- **Style de conception Dark Glassmorphism** : Utilisation de tons sombres modernes, effets d'arrondi raffinés, panneaux de contrôle intuitifs et système de graphiques d'état en temps réel.
---
### 11.2 Onglets fonctionnels essentiels sur le Desktop GUI
1. **Multi-Format Scanner Tab** :
- Permet le glisser-déposer de n'importe quel fichier (PE, PDF, Office, Scripts).
- Affichage du score de menace (Threat Score), analyse récursive des payloads et visualisation de l'arbre `AnalysisNode`.
2. **Dynamic Sandbox Monitor Tab** :
- Suivi des logs d'événements en temps réel, des flux d'appels API NT Native, des processus enfants et des graphiques de ressources CPU/RAM/Disk IO.
3. **MITRE ATT&CK Matrix Tab** :
- Visualisation de la matrice des tactiques et techniques violées par le malware, accompagnée de preuves d'extraction directes.
4. **BHR & Recovery Center Tab** :
- Suivi de la timeline de chiffrement des données, des paramètres d'entropie en temps réel et exécution rapide de la restauration Rollback.
5. **Zero-Knowledge Encrypted Vault Tab** :
- Gestion du dépôt de sauvegarde chiffré E2EE local, verrouillage/déverrouillage du vault, sauvegarde des dossiers importants et restauration sécurisée.
---
### 11.3 Système de licence verrouillée par matériel (HWID-Locked Licensing & Ed25519)
Sous-système de gestion de licence hors ligne protégeant l'intégrité du logiciel :
- **Liaison à l'appareil (HWID Binding)** : Collecte d'informations matérielles immuables (CPU ID, BIOS UUID, Disk Serial, MAC Address) formant une chaîne HWID identifiant de manière unique chaque poste de travail.
- **Signature numérique Ed25519** : Utilisation de l'algorithme à clé publique Ed25519 pour signer numériquement le fichier de certificat hors ligne `license.dat`.
- **Application hors ligne (Offline Enforcement)** : L'ensemble des outils binaires (`BHPAISandbox.exe`, `pe_analyzer.exe`, `bhpai_rescue.exe`) charge automatiquement `license.dat`, vérifie la signature avec la Master Public Key et confronte la correspondance avec le HWID de la machine sans nécessiter de connexion réseau.
---
### 11.4 Moteur Threat Intelligence & Universal IOC Defanger indépendant
- Intègre une base de connaissances d'identification des familles de malwares courantes (LockBit, Conti, WannaCry, RedLine, Emotet, Babuk) ainsi qu'un ensemble de règles de classification comportementale.
- Extraction et defang automatiques des listes d'IOC malveillants (IP, Domain, URL, Hashes) afin de protéger l'analyste lors de l'extraction des rapports.
---
### 11.5 Système de rapports multi-formats Universal Schema 2.0 (JSON, Markdown, PDF)
- **JSON Schema 2.0** : Fournit une structure de données lisible par machine normalisée, facilement intégrable avec d'autres systèmes d'analyse.
- **Markdown Summary** : Exporte un rapport de synthèse visuel, facilitant le partage rapide entre ingénieurs en investigation numérique.
- **Rapport PDF** : Génère automatiquement un rapport professionnel accompagné de graphiques de distribution d'entropie et d'arborescence de structure de payload.
---
## 12. DÉTAIL DU SOUS-SYSTÈME 10 : BHPAI RESCUE SUITE & DÉMARRAGE DE SECOURS D'URGENCE WINRE
Le code source principal se trouve à :
- Outil de secours C++ : [`Rescue/`](file:///c:/Users/Kryo/Documents/BHPAI/Rescue), [`bhpai_rescue.exe`](file:///c:/Users/Kryo/Documents/BHPAI/bhpai_rescue.exe).
- Scripts de déploiement : [`scripts/deploy_winre.ps1`](file:///c:/Users/Kryo/Documents/BHPAI/scripts/deploy_winre.ps1), [`scripts/trigger_rescue_reboot.ps1`](file:///c:/Users/Kryo/Documents/BHPAI/scripts/trigger_rescue_reboot.ps1).
- Rapport exemple : [`BHPAI_Rescue_Summary.md`](file:///c:/Users/Kryo/Documents/BHPAI/BHPAI_Rescue_Summary.md).
---
### 12.1 Environnement de secours hors ligne Windows Recovery Environment (WinRE)
Lorsque le système d'exploitation est paralysé par une attaque Ransomware, un verrouillage d'écran (Screen Locker), la désactivation du Safe Mode ou une interférence avec les fichiers système, l'analyse directe sur le système d'exploitation en cours d'exécution présente de nombreux risques en raison de l'entrave causée par les processus malveillants ou les rootkits. **BHPAI Rescue Suite V2** résout ce problème en opérant depuis l'environnement hors ligne **Windows Recovery Environment (WinRE)** ou Windows PE :
- **Séparation de l'environnement en cours d'exécution** : Non affecté par les processus malveillants ou les hooks kernel actifs dans le Windows principal.
- **Chargement hors ligne du Registre (Offline Hive Loading)** : Montage automatique des fichiers de structure du Registre réels sur le disque dur (`SYSTEM`, `SOFTWARE`, `NTUSER.DAT`) dans une branche temporaire de WinRE pour modifier et libérer les verrous système sans nécessiter le démarrage du système d'exploitation cible.
- **Air-Gapped & Indépendant du réseau** : Exécution entièrement locale, sans nécessiter de connexion réseau, limitant le risque que le botnet C2 envoie un signal de destruction des données.
---
### 12.2 Architecture des 7 sous-systèmes essentiels de `bhpai_rescue.exe`
Le code source dans [`Rescue/`](file:///c:/Users/Kryo/Documents/BHPAI/Rescue) est construit en C++17 pur, compilé en liaison statique (static linking) avec OpenSSL et zlib :```
Rescue/
├── include/
│ ├── RescueTargetFinder.hpp # 1. Định vị & Nhận diện Phân vùng Windows Mục tiêu
│ ├── OfflineRegistryManager.hpp # 2. Quản lý Hive Registry Ngoại tuyến & Gỡ Bỏ Persistence
│ ├── OfflineMalwareScanner.hpp # 3. Động cơ Phân tích Tĩnh BHR 10-Pillar PE Scanner
│ ├── OfflineBlastRadius.hpp # 4. Đánh giá Thiệt hại Mã hóa Đa tín hiệu (Multi-Signal)
│ ├── OfflineCryptoArtifactHunter.hpp # 5. Săn lùng Khóa Mật mã trong pagefile.sys & Memory Dumps
│ ├── RescueRemediator.hpp # 6. Bộ Thực thi Khắc phục & Điều phối Giao dịch
│ └── RescueTransactionJournal.hpp # 7. Nhật ký Giao dịch ACID LIFO Rollback
└── source/
└── bhpai_rescue_main.cpp # Điểm khởi nhập (Entrypoint CLI & Menu Tương tác)
RescueTargetFinder (Localisation de la partition OS) :
FindFirstVolumeW, FindNextVolumeW).System32\ntoskrnl.exe, System32\config\SYSTEM, explorer.exe).OfflineRegistryManager (Gestion du Registre Hors Ligne) :
RegLoadKeyW pour charger les fichiers hive sous des préfixes temporaires : HKEY_LOCAL_MACHINE\BHPAI_OFFLINE_SYSTEM, BHPAI_OFFLINE_SOFTWARE, BHPAI_OFFLINE_NTUSER.Select\Current (par exemple : ControlSet001).Shell (modifiée de explorer.exe vers un fichier malveillant) et Userinit.taskmgr.exe, cmd.exe, sethc.exe.Windows\System32\Tasks.OfflineMalwareScanner (Analyse et Évaluation BHR 10-Pillar) :
AppData\Local\Temp, ProgramData, Users\Public, Windows\Temp).MALICIOUS, SUSPICIOUS, CLEAN).OfflineBlastRadius (Évaluation du Rayon de Dommages Multi-Signaux) :
Desktop, Documents, Downloads, Pictures, Videos).README.txt, DECRYPT_FILES.html, HOW_TO_RESTORE.txt).OfflineCryptoArtifactHunter (Chasse aux Clés Cryptographiques) :
pagefile.sys, swapfile.sys et des fichiers de crash dump (MEMORY.DMP).RescueRemediator (Coordination de la Remédiation) :
C:\BHPAI_Rescue_Quarantine\) avec un hachage SHA-256 d'authentification.explorer.exe, suppression des IFEO hijacks, désactivation des tâches planifiées (Scheduled Tasks) et des services malveillants.RescueTransactionJournal (Journal de Transaction ACID et Rollback LIFO) :
Afin de garantir la sécurité et de prévenir tout risque d'interruption du système d'exploitation Windows, RescueRemediator applique un processus de transaction en 5 étapes :```
[Phase 1: DETECT] ────► [Phase 2: BACKUP] ────► [Phase 3: MODIFY] ────► [Phase 4: VERIFY] ────► [Phase 5: COMMIT]
Phát hiện mã độc Sao lưu Registry Cách ly tệp mã độc Kiểm tra tính toàn Xác nhận giao dịch
& Khóa Persistence & Tệp gốc (LIFO) & Khôi phục Registry vẹn & Hash khớp hoàn tất
│
(Nếu có lỗi)
▼
[AUTOMATIC ROLLBACK]
(Hoàn tác tức thì)
1. **Phase 1 (Detect)** : Analyse complète, établissement de la liste de tous les binaires malveillants, des clés de registre de persistance et des fichiers affectés.
2. **Phase 2 (Backup)** : Création du répertoire de transaction `C:\BHPAI_Rescue_Backup\` lié au code Volume GUID et au Disk ID. Sauvegarde de l'intégralité des fichiers hive (`SYSTEM.before`, `SOFTWARE.before`, `NTUSER.DAT.before`) et archivage des métadonnées des fichiers d'origine (taille, attributs temporels, descripteur ACL).
3. **Phase 3 (Modify)** : Enregistrement de chaque action dans le journal de transaction (`transaction.json`), déplacement des fichiers malveillants vers le coffre de quarantaine et correction des valeurs de Registre malveillantes.
4. **Phase 4 (Verify)** : Vérification de chaque modification sur le disque : confirmation que le fichier malveillant n'existe plus à son emplacement d'origine, que le fichier dans le coffre de quarantaine correspond au hachage SHA-256, et que la Registry Hive pointe correctement vers les binaires standards de Windows.
5. **Phase 5 (Commit)** : Changement de l'état de la transaction de `IN_PROGRESS` à `COMMITTED`. Si une étape quelconque des Phases 3 ou 4 rencontre un incident, le système déclenche automatiquement un **LIFO Rollback**, restaure intégralement les fichiers hive et replace les fichiers du coffre de quarantaine à leur emplacement d'origine.
---
### 12.4 Mécanisme d'Auto-Récupération en Cas d'Incident (Crash State Recovery)
Si l'ordinateur subit une coupure de courant soudaine ou un arrêt involontaire pendant que `bhpai_rescue.exe` effectue des modifications :
- Lors du prochain démarrage dans WinRE, `bhpai_rescue.exe` lira automatiquement `transaction.json` et détectera l'état **CRASH STATE** (`IN_PROGRESS`).
- Le programme émet l'alerte `[CRITICAL WARNING] INCOMPLETE REMEDIATION DETECTED`.
- Il propose une option de récupération à 2 niveaux :
- **Tier 1** : Restauration inverse selon l'ordre du journal LIFO Rollback.
- **Tier 2 (Emergency Hive Restore)** : Restauration forcée de l'intégralité des fichiers hive Registry d'origine à partir de la sauvegarde `*.before`.
---
### 12.5 Scénario de Déploiement & Démarrage Automatique de WinRE
#### 1. Scénario d'intégration sécurisée [`scripts/deploy_winre.ps1`](file:///c:/Users/Kryo/Documents/BHPAI/scripts/deploy_winre.ps1) :
- **Appel Direct de DISM** : Exécution de `& dism.exe` avec transmission du flux de sortie en temps réel, limitant le risque de blocage du processus PowerShell.
- **Préservation de l'État de Configuration** : Mémorisation de l'état WinRE d'origine (`reagentc /info`). Si initialement Disabled, retour à l'état Disabled après achèvement ; si initialement Enabled, garantie que WinRE est réactivé.
- **Sauvegarde Avant Modification** : Copie automatique de `Winre.wim` en `Winre.wim.BHPAI.backup`.
- **Launcher Adaptatif** : Création du script `Windows\System32\bhpai.cmd` utilisant les variables d'environnement `%~d0` et `%SystemDrive%`, s'adaptant automatiquement à la lettre de lecteur attribuée par WinPE.
- **Mécanisme de Rollback Automatique** : Gestion des exceptions survenant pendant le montage, exécution automatique de `/Discard`, restauration du fichier WIM depuis la sauvegarde et nettoyage du répertoire temporaire.
#### 2. Scénario de démarrage de secours [`scripts/trigger_rescue_reboot.ps1`](file:///c:/Users/Kryo/Documents/BHPAI/scripts/trigger_rescue_reboot.ps1) :
- Activation de WinRE s'il est désactivé.
- Utilisation de la commande standard `reagentc /boottore` et configuration de `bcdedit /set {current} recoveryenabled yes` pour spécifier que l'ordinateur démarre dans WinRE lors du prochain redémarrage.
---
### 12.6 Guide d'Utilisation & Paramètres de Ligne de Commande de `bhpai_rescue.exe`
Après que l'ordinateur a démarré dans Windows Recovery Environment :
1. Cliquez sur : **Troubleshoot (Résolution des problèmes)** $\rightarrow$ **Advanced options (Options avancées)** $\rightarrow$ **Command Prompt (Invite de commandes)**.
2. Dans la fenêtre de ligne de commande, tapez : ```cmd
bhpai
Select Operation Mode: [1] Dry-Run Safe Triage (Phân tích & Lập báo cáo - KHÔNG sửa đổi đĩa) [2] Full Active Emergency Rescue (Giao dịch 5 giai đoạn: Quét -> Sao lưu -> Khắc phục -> Xác thực -> Commit) [3] Multi-Signal Blast Radius Assessment (Đánh giá mức độ tệp bị mã hóa & Ransom Notes) [4] Crypto Artifact Hunter (Săn tìm cấu trúc khóa mật mã trong pagefile.sys & Crash Dumps) [5] Registry Unbrick Only with Pre-Backup (Khôi phục Winlogon Shell về explorer.exe) [6] Transactional Rollback (Hoàn tác toàn bộ thay đổi từ BHPAI_Rescue_Backup) [7] Exit / Return to WinRE Prompt
#### Paramètres de Ligne de Commande Avancés (CLI Flags) :```cmd
# Chạy mô phỏng an toàn không sửa đĩa (Dry-Run):
bhpai_rescue.exe --dry-run
# Chạy khắc phục toàn diện tự động (Auto Repair):
bhpai_rescue.exe --target C: --repair --auto
# Hoàn tác phiên cứu hộ trước đó (Rollback):
bhpai_rescue.exe --target C: --rollback
# Xuất kết quả ra định dạng JSON cho chuyên gia điều tra:
bhpai_rescue.exe --dry-run --json
# Chỉ định tệp bản quyền ngoại tuyến:
bhpai_rescue.exe --license C:\license.dat --repair
Après avoir terminé chaque session de travail, le système génère 2 rapports d'investigation numérique (DFIR Reports) à la racine de la partition cible :
C:\BHPAI_Rescue_Report.json : Rapport détaillé au format JSON contenant l'intégralité des hachages SHA-256, la liste des clés, les comportements de registre et les métadonnées de transaction.C:\BHPAI_Rescue_Summary.md : Rapport de synthèse au format Markdown présentant une vue d'ensemble pour l'analyste (exemple de référence : BHPAI_Rescue_Summary.md).bhpai_sourceopen - 25%)Afin de servir la communauté de recherche en cybersécurité, les tests indépendants et la démonstration des capacités techniques, le projet BHPAI publie une édition Community Edition stockée dans le répertoire bhpai_sourceopen. Ce package est conçu selon le modèle Open-Core :
Core/scanner/ : L'intégralité du code source C++ d'analyse de la structure PE, d'extraction des caractéristiques Opcode/API N-Grams, du graphe CFG Cyclomatic Complexity, TF-IDF, de génération automatique de règles YaraGen, de traitement de chaînes optimisé AVX2 StringEx.Core/Decompile/ : Décompilateur binaire x86/x64 via Capstone Engine (Disassembler, PeParser).Core/pack/ : Ensemble de décompression in-memory UPX et WWPack.fuzzy/ : Algorithme de hachage flou binaire SSDEEP (fuzzyhash.c/.h).Analyzers/Common/ : Routage de fichiers en 3 phases FileRouter, limites ParserLimits, mappage MITRE ATT&CK MitreMapper, neutralisation IOC IOCExtractor (Defanging).Core/Train/ & model/ : Extracteur de vecteurs de caractéristiques PE (feature_extractor.py) et configuration des seuils de classification.scan.py & app_scan.py : Scanner en ligne de commande et interface Desktop dédiée au PE.[!IMPORTANT] Engagement de Licence & Indépendance :
- Exclusion à 100% du Sous-système PDF : Le sous-système PDF étant en cours de développement, l'intégralité du code source PDF est gardée confidentielle et n'est pas incluse dans cette version open source.
- Exclusion à 100% du Dataset : Le répertoire
dataset/n'est absolument pas publié (ne contient ni échantillons de code malveillant ni documents utilisateur).- Licence Indépendante : Accompagné d'un stub de licence Community (
BhpaiLicense.hpp) permettant aux utilisateurs de compiler et d'exécuter l'analyse binaire en toute liberté sans nécessiter d'activation de clé matérielle commerciale.
Le Document Technique Master du projet BHPAI V1.6 Enterprise a été rédigé et normalisé par l'équipe d'ingénierie BHPAI. Tous droits réservés.
Langue / Ngôn ngữ: 🇻🇳 Tiếng Việt | 🇬🇧 English
Version du Système : V1.6 Enterprise Edition (Full Architectural & Feature Release)
Auteurs : Rin449 Langages & Stack Technique Principaux : C++17 (MinGW-w64 / MSYS2), Python 3.9+, PyQt6, MinHook, Capstone Engine, Intel PT (Processor Trace), PyTorch, LightGBM, OpenSSL 3.x, zlib, Argon2id, Cryptography, Ed25519
Manuel de Référence Master : Couvre le routage architectural multi-format, la décomposition récursive hiérarchique des charges utiles, l'analyse statique PE & des flux PDF natifs, le sandbox dynamique furtif Ring-3, l'extraction de clés candidates de rançongiciels, les modèles IA calibrés résistants aux faux positifs, la suite de récupération transactionnelle hors ligne WinRE, et la sauvegarde de coffre chiffré à connaissance nulle.
Analyzers/PDF/)AnalysisNode)ParserLimits, AnalysisBudget)dataset/pdf/)StratifiedGroupKFoldCalibratedClassifierCV)pagefile.sys (20+ Standards Cryptographiques)BehaviorGraph) & Machine à États de Chaîne d'AttaqueCryptoOperation)bhpai_rescue.exebhpai_rescue.exeDans le paysage moderne des menaces de cybersécurité, les campagnes de Menaces Persistantes Avancées (APTs), de logiciels espions et de rançongiciels se sont largement étendues au-delà des binaires exécutables conventionnels (.exe, .dll) :
/Launch générant des commandes shell cachées) ou en intégrant des exécutables PE droppers à l'intérieur de documents.BHPAI version V1.6 Enterprise est un écosystème de cyberdéfense multi-niveaux offrant une protection de bout en bout de la chaîne d'attaque via un Moteur Hybride Multi-Format unifié : routage automatique de format en 3 étapes (PE, PDF, Office, Script), analyse récursive des charges utiles imbriquées, isolation par sandbox dynamique furtive Ring-3, surveillance Intel PT assistée par matériel, et modèles IA calibrés résistants aux faux positifs.
BHPAI V1.6 fonctionne selon le principe architectural Router - Disséquer Récursivement - Corréler les Comportements - Récupérer Hors Ligne :``` ┌───────────────────────────────────────────────┐ │ INPUT FILE STREAM │ └───────────────────────┬───────────────────────┘ │ ┌───────────▼───────────┐ │ 3-STAGE FILE ROUTER │ │ (Magic/ZIP/Script) │ └───────────┬───────────┘ │ ┌──────────────────────────────┼──────────────────────────────┐ │ │ │ [FileFormat::PE] [FileFormat::PDF] [FileFormat::Office] │ │ │ ┌────────────▼────────────┐ ┌────────────▼────────────┐ ┌────────────▼────────────┐ │ STATIC PE ANALYZER │ │ PDF ANALYZER V2.0 │ │ OOXML / OLE ANALYZER │ │ - Capstone Disassembler│ │ - Binary Stream Parser │ │ - Macro VBA Extractor │ │ - Opcode TF-IDF & CFG │ │ - Action/JS Deobfuscate│ │ - External DDE Links │ │ - YaraGen & Fuzzy Hash │ │ - 57 Features + Level 2│ │ - Embedded OLE Objects │ └────────────┬────────────┘ │ Structural Fingerprnt│ └────────────┬────────────┘ │ └────────────┬────────────┘ │ │ │ │ │ (Extract Embedded PE) │ │ │ │ │ ┌────────────▼────────────┐ │ └────────────────►│ RECURSIVE ANALYSIS TREE │◄────────────────┘ │ (AnalysisNode Tree) │ └────────────┬────────────┘ │ ┌────────────▼────────────┐ │ DYNAMIC SECURE SANDBOX │ │ - Job Object & Token │ │ - COW Overlay FS/Reg │ │ - Stealth PEB Unlink │ │ - Intel PT Hardware Trc│ └────────────┬────────────┘ │ ┌──────────────────────────────┴──────────────────────────────┐ │ │ ┌────────────▼────────────┐ ┌────────────▼────────────┐ │ BHR RANSOMWARE ENGINE │ │ AI & BEHAVIORGRAPH V1.6 │ │ - High-Entropy Detector │ │ - Multi-Format Ensemble │ │ - RAM & Pagefile Keys │ │ - Cross-Process Machine │ │ - Instant COW Rollback │ │ - MITRE ATT&CK Mapping │ └─────────────────────────┘ └─────────────────────────┘
1. **Sécurité avant tout et protection anti-bombe** : Le bac à sable confine l'exécution dans un bureau virtuel privé (`BHPAISandboxDesktop`), applique des limites strictes via Windows Job Object (plafond de 512 Mo de RAM, affinité CPU, aucune évasion de processus) et supprime les privilèges élevés via des jetons restreints. L'analyseur PDF est protégé par un `AnalysisBudget` et des `ParserLimits` stricts empêchant les bombes de décompression (ratio de compression maximal de 100:1, expansions de flux bornées et plafonds de profondeur de récursion).
2. **Anti-évasion furtive (empreinte minimale en mode utilisateur)** : La DLL de surveillance Ring-3 atténue la détection en déliant proactivement sa propre `LDR_DATA_TABLE_ENTRY` de toutes les 3 listes de modules PEB (`InLoadOrder`, `InMemoryOrder`, `InInitializationOrder`), en effaçant les en-têtes PE et les chemins de débogage PDB de la RAM, et en appliquant des protections DACL au processus Launcher.
3. **Arbre d'analyse récursive hiérarchique et dominance des enfants** : L'arbre `AnalysisNode` inspecte récursivement chaque charge utile intégrée. Si un binaire imbriqué (PE enfant) est classé comme malveillant, le système déclenche la **Règle de dominance des enfants**, élevant le verdict du document parent à **MALVEILLANT** avec un score de menace minimal de 85/100.
4. **IA résistante aux faux positifs** : Les raccourcis de caractéristiques parasites sont complètement éliminés grâce à une conception de jeu de données à 3 niveaux (`suspicious_benign`), une déduplication multi-niveaux (hachage exact + empreinte structurelle) et une validation croisée sensible aux groupes via `StratifiedGroupKFold`.
5. **Protection des données et récupération des clés candidates** : Le moteur BHR détecte les rafales de chiffrement à haute entropie à la frontière des E/S Win32/NT, extrait les structures de clés cryptographiques candidates (AES-GCM GHASH $H$, état ChaCha20, RSA DER, X25519) de la RAM du processus et de `pagefile.sys`, et restaure les fichiers modifiés depuis le tampon COW Virtual Overlay.
---
### 1.3 Points techniques clés de la V1.6 et matrice de spécifications
| Sous-système et critère | Spécifications techniques et pile d'implémentation de la V1.6 |
| :--- | :--- |
| **Moteur de routage de fichiers** | 3 étapes : Magic Bytes (PE, PDF, PK, OLE2, ELF, Shebang) + Inspection de conteneur en mémoire (ZIP OOXML pour DOCX/XLSX/PPTX) + Classificateur de scripts (PS1, VBS, JS, BAT, HTA) |
| **Analyseur PDF natif C++ V2.0** | Analyseur sûr pour binaires C++17, FlateDecode/ASCIIHex/LZW Inflate, charges utiles intégrées récursives (`MZ`), désobfuscation Javascript et analyseur d'API Acrobat, 57 caractéristiques vectorielles |
| **Défense anti-bombe / DoS** | `ParserLimits` : entrée max 500 Mo, extraction max 250 Mo, ratio max 100.0, objets max 100K, profondeur de filtre max 6, délai d'analyse 30 s |
| **Environnement de bac à sable** | Windows Job Object (RAM 512 Mo, affinité CPU, aucune évasion, UILIMITs) + jeton restreint (suppression des SID administrateur et des privilèges dangereux) + bureau virtuel dédié |
| **Virtualisation du système de fichiers / registre** | Superposition virtuelle Copy-On-Write (COW) à 2 couches prenant en charge les flux de données alternatifs (ADS), les points d'analyse et la vue de registre virtuel fusionnée |
| **Techniques de surveillance furtive** | Déliaison de module PEB à 3 voies (`InLoadOrder`, `InMemoryOrder`, `InInitializationOrder`) + nettoyeur d'en-tête PE en mémoire + effacement PDB + garde DACL du Launcher |
| **Hooking et graphe comportemental** | Moteur MinHook + `HookGuard` RAII + `BehaviorGraph` inter-processus (suivi des threads distants, du process hollowing, de l'injection de file APC) |
| **Intel PT assisté par matériel** | Traçage matériel via CPUID leaf 0x14, traçage noyau Windows classe 47 `ProcessIntelProcessorTrace`, décodage des paquets TNT/TIP/FUP |
| **Moteur de désassemblage statique PE** | Désassembleur Capstone (x86/x64) + Opcode TF-IDF + API N-Grams + complexité cyclomatique CFG + YaraGen (liste noire de bruit Rust) + SSDEEP/TLSH |
| **Ensemble d'apprentissage automatique / IA** | PyTorch Sequence Embedder + CFG GNN + ensemble LightGBM (Adam, Eve, Marcus) + élagage des caractéristiques SHAP + LGBM calibré PDF |
| **Entraînement anti-faux positifs** | Jeu de données à 3 niveaux (`malware`, `benign`, `suspicious_benign`), déduplication niveau 1 (SHA256) et niveau 2 (empreinte structurelle), `StratifiedGroupKFold` |
| **Détection de rançongiciels (BHR)** | Taux d'entropie de Shannon en temps réel ($\ge 7.5$) + taux de modification en rafale ($>20$ fichiers/s) + détecteur de commande de suppression de cliché instantané de volume |
| **Extraction et récupération de clés** | Extracteur RAM et `pagefile.sys` pour plus de 20 standards (AES-GCM GHASH $H$, ChaCha20, RSA DER, X25519 Clamping) + restauration automatisée du COW Overlay |
| **Coffre de sauvegarde à connaissance nulle** | E2EE côté client (AES-256-GCM) + SRP-6a PAKE (RFC 5054) + re-chiffrement instantané de la clé maître ($K_{\text{vault}}$) + AAD binaire canonique + remplissage de compartiment |
| **Suite de secours d'urgence WinRE** | `bhpai_rescue.exe` C++17 autonome, 7 sous-systèmes principaux, transaction ACID en 5 phases, récupération d'état après plantage, chargement automatique hors ligne de la ruche de registre |
| **Interface graphique de bureau et licence** | Interface graphique PyQt6 Dark Glassmorphism (workers QThread) + moteur de licence verrouillé au matériel par HWID Ed25519 |
---
## 2. DIAGRAMME ARCHITECTURAL GLOBAL ET PIPELINE D'EXÉCUTION
Le diagramme de séquence ci-dessous illustre le flux d'exécution de bout en bout, depuis l'ingestion du fichier brut jusqu'au triage statique/dynamique, la décomposition récursive, l'inférence IA et la récupération hors ligne après sinistre :```mermaid
sequenceDiagram
autonumber
actor Analyst as Analyst / Operator
participant GUI as Desktop GUI / CLI Runner
participant Router as 3-Stage FileRouter
participant Static as Static Engine (PE/PDF/Office)
participant RecTree as Recursive Analysis Tree
participant Sandbox as Ring-3 Stealth Sandbox
participant BHR as BHR Ransomware Engine
participant AI as AI Ensemble & BehaviorGraph
participant WinRE as BHPAI Rescue Suite (WinRE)
Analyst->>GUI: Ingest Sample (PE, PDF, Doc, Script)
GUI->>Router: Route File Format (Magic Bytes/Container)
alt PDF Format
Router->>Static: Parse via C++ PDF Parser V2.0
Static->>RecTree: Extract JavaScript & Embedded Streams
opt Contains Embedded PE / Shellcode
RecTree->>Static: Static Scan of Child PE
Static-->>RecTree: Detect Malicious Payload (Trigger Child Dominance Rule)
end
else PE Format
Router->>Static: Disassemble via Capstone, Opcode TF-IDF, CFG, YaraGen
end
Static->>AI: Vectorize Static Features & Compute Initial Inference
opt In-Depth Dynamic Analysis Requested
GUI->>Sandbox: Launch Sample in Virtual Desktop & Job Object
Note over Sandbox: Activate PEB Unlink, COW FS/Reg, MinHook, Intel PT
Sandbox->>BHR: Real-Time Stream Entropy & Write Rate Monitoring
opt Ransomware Activity Detected (Entropy >= 7.5, Burst I/O)
BHR->>BHR: Trigger RAM & Pagefile Candidate Key Extractor
BHR->>Sandbox: Record Crypto Timeline & Transformation Map
end
Sandbox->>AI: Stream Hooked & ETW Events into BehaviorGraph
AI->>AI: Match Attack Chain Patterns & Map to MITRE ATT&CK
end
AI-->>GUI: Emit Universal Schema 2.0 Report (Threat Score, IOCs)
opt System Severely Compromised / Ransomware Screen Locker Active
Analyst->>WinRE: Boot into Windows Recovery Environment
WinRE->>WinRE: 5-Phase Transaction: Scan -> Backup -> Unbrick Registry -> Rollback
WinRE-->>Analyst: Host System Restored to Clean Baseline
end
Implémentations sources principales : BHPAISandbox.cpp, BHPAIMonitor.cpp, SafeVirtualDesktop.cpp, SafeJobObject.cpp, IntelPTMonitor.cpp, FakeNetEngine.cpp.
BHPAISandboxDesktop) : Initialisé via CreateDesktopW avec les indicateurs de sécurité DESKTOP_CREATEWINDOW | DESKTOP_WRITEOBJECTS. Toutes les fenêtres graphiques, les messages Windows (WM_DROPFILES, WM_COPYDATA, les hooks UI) et les enregistreurs de frappe sont strictement isolés de la session utilisateur interactive (bureau Default).SafeJobObject) :
JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE : Garantit que la terminaison du lanceur termine instantanément et proprement toute l'arborescence des processus enfants.JOB_OBJECT_LIMIT_PROCESS_MEMORY : Limite la charge de validation maximale à 512 Mo par processus, empêchant les attaques par épuisement de mémoire.JOB_OBJECT_LIMIT_ACTIVE_PROCESS : Restreint les processus actifs à 32, contrant les tentatives de déni de service par fork-bomb.JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION : Supprime les boîtes de dialogue de plantage du rapport d'erreurs Windows.JOB_OBJECT_UILIMIT_HANDLES | JOB_OBJECT_UILIMIT_GLOBALATOMS : Empêche le partage non autorisé de handles entre processus et la pollution des atomes globaux.Le lanceur construit un jeton de sécurité restreint via CreateRestrictedToken avant d'exécuter CreateProcessAsUserW :
WinBuiltinAdministratorsSid, WinLocalSystemSid, WinLocalAdminSid.SeDebugPrivilege, SeTcbPrivilege, SeTakeOwnershipPrivilege, SeLoadDriverPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeShutdownPrivilege, SeImpersonatePrivilege.SECURITY_MANDATORY_LOW_RID ou SECURITY_MANDATORY_MEDIUM_RID.Pour minimiser l'empreinte de surveillance face aux techniques anti-analyse en mode utilisateur :
BHPAIMonitor.dll déchaîne automatiquement sa propre LDR_DATA_TABLE_ENTRY de toutes les 3 listes de modules doublement chaînées au sein du Process Environment Block (PEB) :
InLoadOrderModuleListInMemoryOrderModuleListInInitializationOrderModuleList
Les parcours de PEB->Ldr ou les appels à EnumProcessModules par un malware ne révèlent aucune trace de la DLL de surveillance.PAGE_READWRITE et met à zéro ses IMAGE_DOS_HEADER, IMAGE_NT_HEADERS, IMAGE_SECTION_HEADER, ainsi que les chaînes de chemin de fichier PDB du répertoire de débogage, déjouant les scanners de signatures en mémoire.SetKernelObjectSecurity avec une liste de contrôle d'accès discrétionnaire (DACL) vide, bloquant PROCESS_TERMINATE, PROCESS_VM_WRITE et PROCESS_SUSPEND_RESUME depuis des processus de moindre intégrité.L'agent de surveillance hooke les API NT natives de bas niveau dans ntdll.dll et kernelbase.dll à l'aide du moteur MinHook :
| Sous-système API | API NT native hookée | Objectif de surveillance et de redirection |
|---|---|---|
| Processus / Thread | NtCreateProcessEx, NtCreateUserProcess, NtCreateThreadEx, NtQueueApcThread | Détecte la création de processus enfants, l'injection de processus, l'injection APC. |
| 🔴 Detected (Shadow Copy Deletion) |