
Piattaforma di analisi malware multi-formato che combina un sandbox Windows Ring-3 stealth, analizzatori statici PE/PDF, recupero chiavi ransomware e un ensemble AI per il rilevamento resistente ai falsi positivi.
Versione del sistema: V1.6 Enterprise Edition (Aggiornamento Completo delle Funzionalità del Sistema)
Autore: Rin449 Linguaggi e Tecnologie principali: 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
Documento di riferimento Master: Dettagli dell'architettura multi-formato (Multi-Format), algoritmi di analisi ricorsiva, analisi statica PE e PDF, monitoraggio dinamico Sandbox Stealth Ring-3, estrazione della struttura delle chiavi Ransomware, modello AI resistente ai falsi positivi (False Positive Resistant), sistema di soccorso offline WinRE e sicurezza dei dati Zero-Knowledge.
Language / Ngôn ngữ: 🇻🇳 Tiếng Việt | 🇬🇧 English
Analyzers/PDF/)AnalysisNode)dataset/pdf/)StratifiedGroupKFoldCalibratedClassifierCV)pagefile.sysBehaviorGraph) & State Machine della Catena di Attaccobhpai_rescue.exebhpai_rescue.exeNell'era attuale della sicurezza informatica, gli attacchi mirati (APT), lo spyware e il ransomware hanno superato i confini dei tradizionali file eseguibili (.exe, .dll):
/Launch che esegue comandi nascosti) o pacchetti di file eseguibili PE incorporati all'interno di PDF come Dropper.BHPAI versione V1.6 Enterprise è un sistema di sicurezza informatica multi-livello, che fornisce una soluzione di protezione completa per la catena di attacco attraverso l'architettura Multi-Format Hybrid Engine: Routing automatico multi-formato (PE, PDF, Office, Script), analisi ricorsiva di payload annidati, isolamento Sandbox Ring-3 stealth, monitoraggio hardware Intel PT, e modello AI calibrato contro i falsi positivi.
BHPAI V1.6 è progettato sulla base del modello Routing - Risoluzione Ricorsiva - Correlazione Comportamentale - Ripristino Offline:``` ┌───────────────────────────────────────────────┐ │ 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 (Sicurezza e Anti-Bomb)**: Sandbox che isola il processo tramite un Desktop virtuale dedicato (`BHPAISandboxDesktop`), limita il Job Object (RAM 512MB, CPU, vieta Breakaway) e riduce i privilegi con Restricted Token. Il decompressore della pipeline PDF è protetto da `AnalysisBudget` e `ParserLimits` contro Decompression Bomb (rapporto di compressione massimo 100:1, limiti di dimensione e profondità di annidamento).
2. **Stealth Anti-Evasion (Riduzione del footprint User-mode)**: La DLL di monitoraggio Ring-3 riduce attivamente le tracce rispetto alle comuni tecniche anti-analysis tramite la rimozione dalle 3 liste di link doppio del PEB Module (`InLoadOrder`, `InMemoryOrder`, `InInitializationOrder`), la cancellazione dell'PE Header e del Debug PDB in RAM, e l'impostazione di una DACL che protegge il Launcher contro i comandi `OpenProcess(PROCESS_TERMINATE)` di base.
3. **Recursive Analysis Tree & Child Dominance (Analisi ricorsiva e Dominanza del figlio)**: L'architettura ad albero `AnalysisNode` verifica ricorsivamente ogni file incorporato all'interno del documento. Quando rileva che un file eseguibile figlio (Child PE) è dannoso, il sistema attiva la **Child Dominance Rule**, elevando automaticamente la conclusione del documento padre a **MALICIOUS** con un punteggio di rischio minimo di 85/100.
4. **False-Positive Resistance AI (Resistenza ai falsi positivi)**: Elimina le scorciatoie di inferenza errata grazie all'organizzazione del dataset su 3 livelli (`suspicious_benign`), alla deduplicazione multilivello (Exact Hash + Structural Fingerprint) e alla suddivisione del gruppo `StratifiedGroupKFold`.
5. **Data Protection & Key Recovery (Rilevamento e supporto all'estrazione di chiavi candidate)**: BHR Engine rileva comportamenti di cifratura ad alta entropia nell'ambito Win32/NT I/O, scansiona alla ricerca di strutture di chiavi candidate (AES-GCM GHASH $H$, stato ChaCha20, RSA DER, X25519) in RAM e `pagefile.sys` prima che il processo rilasci la memoria, e supporta inoltre il rollback dei file scritti nell'area buffer COW Overlay per le operazioni I/O standard.
---
### 1.3 Tabella delle specifiche tecniche principali V1.6 (Technical Highlights)
| Sottosistema e Criterio | Specifiche Tecniche e Tecnologie di implementazione V1.6 |
| :--- | :--- |
| **Instradamento file (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) |
| **Analisi PDF Native V2.0** | C++17 Binary-Safe Parser, FlateDecode/ASCIIHex Inflate, Recursive Embedded Payloads (`MZ`), Javascript Obfuscation & Acrobat API Analyzer, 57 Vector Features |
| **Difesa Anti-Bomb / DoS** | `ParserLimits`: Max Input 500MB, Max Extracted 250MB, Max Ratio 100.0, Max Objects 100K, Max Filter Depth 6, Timeout 30 secondi |
| **Ambiente Sandbox** | Windows Job Object (RAM 512MB, CPU Affinity, No Breakaway, UILIMITs) + Restricted Token (Drop Dangerous Privileges) + Virtual Desktop |
| **Virtualizzazione Filesystem/Registry** | Copy-On-Write (COW) Virtual Overlay a 2 livelli con supporto per Alternate Data Streams (ADS), Reparse Points, e Merged Virtual Registry View |
| **Tecniche Stealth Monitor** | Unlink PEB (`InLoadOrder`, `InMemoryOrder`, `InInitializationOrder`) + In-Memory PE Header Scrubber + PDB Wiping + Launcher DACL Guard |
| **Hooking e Grafo Comportamentale** | MinHook Engine + RAII `HookGuard` + `BehaviorGraph` inter-processo (Remote Thread, Process Hollowing, APC Queue Injection) |
| **Monitoraggio Hardware Intel PT** | Hardware-Assisted Tracing via CPUID leaf 0x14, `ProcessIntelProcessorTrace` Class 47, TNT/TIP/FUP Packet Decoder |
| **Analisi Statica PE (Static)** | Capstone Disassembler (x86/x64) + Opcode TF-IDF + API N-Grams + CFG Cyclomatic Complexity + YaraGen (Rust Blacklist) + SSDEEP/TLSH |
| **Modelli AI / Machine Learning** | PyTorch Sequence Embedder + GNN su CFG + LightGBM Ensemble (Adam, Eve, Marcus) + SHAP Feature Pruning + PDF Calibrated LGBM |
| **Addestramento Anti False Positive** | Dataset a 3 livelli (`malware`, `benign`, `suspicious_benign`), Dedup livello 1 (SHA256) e livello 2 (Structural Fingerprint), `StratifiedGroupKFold` |
| **Rilevamento Ransomware** | Real-time Shannon Entropy Calculation ($\ge 7.5$) + Burst Modification Rate ($>20$ files/s) + Shadow Copy Wiping Detector |
| **Estrazione Chiavi e Ripristino** | RAM & `pagefile.sys` Extractor per 20+ algoritmi (AES-GCM GHASH $H$, ChaCha20, RSA DER, X25519 Clamping) + Automated COW Rollback |
| **Backup Crittografato Indipendente (Vault)** | Client-Side Zero-Knowledge E2EE (AES-256-GCM) + SRP-6a PAKE (RFC 5054) + Instant Re-Keying ($K_{\text{vault}}$) + Canonical AAD |
| **Recupero Offline WinRE** | `bhpai_rescue.exe` C++17 standalone, 7 sottosistemi, transazione ACID a 5 fasi, Crash state recovery, mount automatico del registry offline |
| **Interfaccia Desktop e Licenza** | PyQt6 Dark Glassmorphism GUI (QThread workers) + Ed25519 HWID Hardware-Locked Licensing engine |
---
## 2. DIAGRAMMA DELL'ARCHITETTURA E FLUSSO DI ELABORAZIONE DATI COMPLESSIVO
Il diagramma di sequenza mostra il flusso di elaborazione dall'acquisizione del file di input fino all'estrazione del payload, all'analisi statica/dinamica, alla classificazione AI e al ripristino dei dati:```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
Il codice sorgente principale si trova in: BHPAISandbox.cpp, BHPAIMonitor.cpp, SafeVirtualDesktop.cpp, SafeJobObject.cpp, IntelPTMonitor.cpp, FakeNetEngine.cpp.
BHPAISandboxDesktop): Inizializzato tramite CreateDesktopW con i flag DESKTOP_CREATEWINDOW | DESKTOP_WRITEOBJECTS. Tutte le finestre grafiche, i messaggi Windows Message (WM_DROPFILES, WM_COPYDATA, UI Redirection) del malware vengono confinati completamente nel Desktop virtuale, isolati dallo schermo dell'utente (Desktop Default).SafeJobObject):
JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE: Quando il processo Launcher termina, l'intero albero dei processi figli del malware viene automaticamente distrutto.JOB_OBJECT_LIMIT_PROCESS_MEMORY: Limita la RAM massima a 512MB/processo per prevenire l'esaurimento delle risorse di sistema.JOB_OBJECT_LIMIT_ACTIVE_PROCESS: Limita a un massimo di 32 processi simultanei per prevenire attacchi Fork-Bomb.JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION: Blocca la finestra di dialogo Windows Error Reporting Crash Dialog.JOB_OBJECT_UILIMIT_HANDLES | JOB_OBJECT_UILIMIT_GLOBALATOMS: Impedisce l'interferenza con Handle e Atoms globali.Il Launcher crea un Token limitato tramite CreateRestrictedToken prima di chiamare CreateProcessAsUserW:
WinBuiltinAdministratorsSid, WinLocalSystemSid, WinLocalAdminSid.SeDebugPrivilege, SeTcbPrivilege, SeTakeOwnershipPrivilege, SeLoadDriverPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeShutdownPrivilege, SeImpersonatePrivilege.SECURITY_MANDATORY_LOW_RID o SECURITY_MANDATORY_MEDIUM_RID.Per ridurre al minimo la capacità del malware di rilevare la DLL di monitoraggio nello spazio di memoria Ring-3:
BHPAIMonitor.dll rimuove automaticamente il proprio LDR_DATA_TABLE_ENTRY dalle 3 liste doppiamente concatenate nel Process Environment Block (PEB):
InLoadOrderModuleListInMemoryOrderModuleListInInitializationOrderModuleList
Quando il malware enumera PEB->Ldr o chiama EnumProcessModules, il modulo di monitoraggio non appare nella lista.PAGE_READWRITE e azzera (Zero-fill) le aree IMAGE_DOS_HEADER, IMAGE_NT_HEADERS, IMAGE_SECTION_HEADER e la stringa Debug Directory PDB Path della DLL in memoria RAM, impedendo le tecniche di scansione delle firme in memoria.SetKernelObjectSecurity con una lista di controllo degli accessi discrezionale (DACL) vuota, negando i permessi PROCESS_TERMINATE, PROCESS_VM_WRITE, e PROCESS_SUSPEND_RESUME ai processi con livello di integrità inferiore.Il sistema utilizza MinHook Engine per intercettare direttamente le funzioni Native NT API di basso livello in ntdll.dll e kernelbase.dll:
| Gruppo API | Funzione Native Hooked | Scopo del Monitoraggio & Reindirizzamento |
|---|---|---|
| Process / Thread | NtCreateProcessEx, NtCreateUserProcess, NtCreateThreadEx, NtQueueApcThread | Rilevamento creazione processi figli, Process Injection, APC Injection. |
| Virtual Memory | NtAllocateVirtualMemory, NtProtectVirtualMemory, NtWriteVirtualMemory | Identificazione allocazione PAGE_EXECUTE_READWRITE, Process Hollowing, Shellcode Injection. |
| Filesystem I/O | NtCreateFile, NtOpenFile, NtWriteFile, NtSetInformationFile, NtDeleteFile | Registrazione I/O, reindirizzamento COW Overlay, misurazione Shannon Entropy. |
| Registry | NtCreateKey, NtOpenKey, NtSetValueKey, NtDeleteValueKey | Monitoraggio punti di ancoraggio auto-avvio (Persistence) e reindirizzamento COW. |
| Anti-Analysis | NtQueryInformationProcess, NtSetInformationThread, NtDelayExecution | Blocco rilevamento ProcessDebugPort, ThreadHideFromDebugger, accelerazione Sleep Evasion. |
Tutte le funzioni hook sono protette dalla classe RAII HookGuard (thread_local bool in_hook), garantendo la protezione contro il fenomeno del loop infinito (Recursive Hook Loop Deadlock).
Per proteggere in sicurezza il sistema reale consentendo al contempo al malware di interagire normalmente:
GENERIC_READ, il sistema consente la lettura dal file originale.GENERIC_WRITE o cancellazione FILE_DELETE_ON_CLOSE: Il file originale viene immediatamente copiato nella cartella temporanea virtualizzata BHPAI_Sandbox_Overlay\Files\. Tutte le operazioni di modifica dei dati vengono eseguite su questa copia.file.txt:zone.identifier), Reparse Points e Symbolic Links.HKLM\Software\Microsoft\Windows\CurrentVersion\Run) vengono mappate al ramo temporaneo HKCU\Software\BHPAI_Virtual_Registry\.Utilizza il sottosistema Microsoft Event Tracing for Windows (ETW) per catturare gli eventi dal Kernel:
Microsoft-Windows-Kernel-Process: Cattura gli eventi di creazione processi anche quando il malware utilizza Direct Syscalls per bypassare gli Userland Hooks.Microsoft-Windows-Kernel-Network: Registra le connessioni TCP/UDP di basso livello.Microsoft-Windows-Kernel-Memory: Monitora le operazioni di mappatura della memoria incrociata (Cross-Process Memory Mapping).Integra un motore di simulazione di rete indipendente (FakeNetEngine.cpp):
127.0.0.1).Il sottosistema IntelPTMonitor.cpp sfrutta la funzionalità di tracciamento hardware della CPU Intel:
__cpuidex(0x14, 0).ProcessIntelProcessorTrace).TNT (Taken/Not-Taken Branch), TIP (Target IP) e FUP (Function Pointer), consentendo il rilevamento di ROP (Return-Oriented Programming) Chains e la decodifica del flusso di esecuzione senza dipendere dal software.Sebbene progettato con molteplici livelli di protezione, l'ambiente di analisi dinamica Ring-3 presenta comunque confini tecnici naturali che devono essere compresi chiaramente nella realtà operativa:
ntdll.dll su disco ed esegue l'istruzione binaria syscall / sysenter direttamente dalla propria memoria, il flusso di esecuzione salta direttamente nel Kernel senza passare attraverso le funzioni installate da MinHook in ntdll.dll.Il codice sorgente principale si trova in: 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 notevolmente discrepante rispetto a VirtualSize.IMAGE_SCN_MEM_WRITE | IMAGE_SCN_MEM_EXECUTE (W^X Violation).cs_open(CS_ARCH_X86, CS_MODE_32 / CS_MODE_64) con configurazione dettagliata CS_OPT_DETAIL..text, .code).mov -> push -> call -> test -> jz).IMAGE_IMPORT_DESCRIPTOR (IAT) e analisi delle coppie di API altamente sospette:
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).Il codice sorgente principale si trova in: Analyzers/PDF/, FileRouter.hpp, UniversalDefanger.hpp, UniversalReportSchema.hpp, pdf_analyzer.exe.
Il sistema non si basa sull'estensione del file (.exe, .pdf) ma utilizza un'architettura di routing 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$ Ramo corrispondente[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'analizzatore PDF è scritto interamente in C++17 puro, binary-safe e non dipende da librerie esterne ingombranti:
/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), e sfruttamento delle API di Adobe Reader (util.printf, collab.getIcon, spell.customDictionaryOpen).AnalysisNode)Struttura ad albero ricorsiva gerarchica che gestisce tutti i payload incorporati:``` [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 Motore di Scoring del Rischio Contestuale & Regola di Dominanza del Figlio (Child Dominance Rule)
1. **Contextual Risk Scoring Engine**: Scoring basato su pesi contestuali combinati (Action Trigger $\times$ JavaScript Risk $\times$ Exploit Indicators).
2. **Child Dominance Rule (Regola di Dominanza del Figlio)**:
- Se qualsiasi nodo figlio nell'albero ricorsivo (`Child Node`) ha una conclusione **`MALICIOUS`** (ad esempio: un file PE allegato è un ransomware o un trojan):
- Il nodo radice genitore (Parent Document) **viene automaticamente promosso nella conclusione a `MALICIOUS`**.
- Il punteggio di rischio del nodo genitore viene automaticamente impostato:
$$\text{Score}_{\text{parent}} = \max(\text{Score}_{\text{parent}}, 85, \text{Score}_{\text{child}})$$
---
### 5.5 Difesa Anti-DoS & Protezione contro Bombe di Decompressione (Decompression Bomb Protection)
Per garantire che il sistema non sia soggetto ad attacchi di esaurimento delle risorse (Denial-of-Service):
- **Configurazione `ParserLimits`**:
- Dimensione massima del file di input: **500 MB**.
- Dimensione totale massima dello stream decompresso: **250 MB**.
- Rapporto di compressione massimo (Max Compression Ratio): **100.0:1** (superata questa soglia la decompressione si interrompe immediatamente e viene contrassegnato `DecompressionBombDetected`).
- Numero massimo di oggetti: **100,000 Objects**.
- Profondità massima di annidamento dei filtri di decompressione: **Massimo 6 livelli**.
- **Meccanismo `AnalysisBudget`**:
- Impostazione di un timer con timeout massimo: **30 secondi/file**.
- Annullamento automatico dell'analisi ricorsiva se il budget di tempo viene superato senza causare il crash dell'applicazione.
---
### 5.6 Mappatura MITRE ATT&CK Basata su Evidenze & Universal IOC Defanger
1. **Evidence-Based MITRE ATT&CK Mapping**:
Ogni tecnica MITRE ATT&CK viene assegnata con evidenze specifiche (Evidence String, Object ID, Byte Offset):
- `T1204.002` (Malicious File): Trovato `/OpenAction` che punta all'Object 8.
- `T1059.007` (JavaScript): Trovata stringa di exploit di memoria nell'Object 14.
- `T1027.009` (Embedded Payloads): Trovato binario PE eseguibile in `/EmbeddedFiles`.
2. **Universal IOC Defanger (`UniversalDefanger.hpp`)**:
Neutralizza automaticamente gli indicatori di compromissione prima della visualizzazione o dell'esportazione del report:
- 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 Standardizzazione del Report di Output Universal Schema 2.0
Ogni modulo di analisi (PE, PDF, Dynamic Sandbox, WinRE) restituisce dati uniformi secondo lo 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`: Struttura ad albero ricorsiva gerarchica di tutti i payload.
- `mitre_matrix`: Elenco di tattiche e tecniche ATT&CK con evidenze.
- `extracted_iocs`: Elenco di IP, URL, Domain, Hash defanged.
---
## 6. DETTAGLI SOTTOMODULO 4: DATASET A 3 LIVELLI & PIPELINE AI PDF ANTI FALSI POSITIVI
Il codice sorgente principale si trova in: [`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 Struttura di Stratificazione del Dataset a 3 Livelli (`dataset/pdf/`)
Al fine di risolvere in modo definitivo il problema dei falsi positivi (False Positive) comunemente riscontrato nei modelli AI di cybersecurity:
1. **`malware/`**: Campioni di malware reali raccolti da ambienti di attacco reali (PDF contenenti CVE Exploits, Droppers, Phishing Forms, Obfuscated JS).
2. **`benign/`**: Documenti PDF d'ufficio standard (libri, fatture finanziarie, documenti accademici, atti amministrativi).
3. **`suspicious_benign/` (Hard Negatives - Set di soppressione dei falsi positivi)**:
- Documenti PDF completamente puliti ma con caratteristiche tecniche complesse: fatture elettroniche con firma digitale X.509 PKCS#7 (`/Sig`, `/ByteRange`), moduli AcroForm contenenti JavaScript di calcolo legittimo, documenti con allegati file di testo legittimi (`/EmbeddedFiles`), documenti tecnici contenenti frammenti di codice sorgente e stringhe offuscate.
---
### 6.2 Eliminazione della Scorciatoia di Inferenza "False Positive Machine" tramite Hard Negatives
- I modelli AI tradizionali, quando rilevano la parola chiave `/JavaScript` o `/EmbeddedFiles`, tendono a etichettare immediatamente come malware (Heuristic Shortcut).
- L'inclusione del gruppo `suspicious_benign` nel set di addestramento obbliga il modello LightGBM a imparare correlazioni più profonde (la combinazione tra entropia delle istruzioni, nomi di API malevole, profondità di decompressione) invece di basarsi su un semplice rilevamento basato sulla presenza della parola chiave.
---
### 6.3 Deduplicazione Multi-Livello prima della Suddivisione (Multi-Level Deduplication)
Per eliminare il fenomeno della fuga di dati (Data Leakage) tra il set di Train e Test:
1. **Deduplicazione di Livello 1 (Exact Hash)**: Rimozione dei file con hash SHA-256 / MD5 duplicati.
2. **Deduplicazione di Livello 2 (Structural Fingerprinting)**:
- Calcolo del vettore di hash della struttura dell'albero degli oggetti PDF e del contenuto semantico.
- Rimozione delle varianti derivate (varianti con nome modificato, metadata modificati ma con struttura dell'albero byte-stream identica).
---
### 6.4 Suddivisione di Set Indipendenti Anti Data Leakage `StratifiedGroupKFold`
- Utilizzo dell'algoritmo `StratifiedGroupKFold` (con `n_splits=5`).
- Raggruppamento per identificativo di famiglia di documenti (`Family Group ID`), garantendo che tutti i file con la stessa origine strutturale rimangano interamente in un unico set (o Train, o Test), prevenendo il fenomeno dell'apprendimento mnemonico e dell'inflazione dell'accuratezza artificiale.
---
### 6.5 Vettore a 57 Feature & Calibrazione delle Probabilità (`CalibratedClassifierCV`)
1. **Spazio a 57 Feature Complete**:
- Gruppo Struttura Header & Trailer (12 feature): `count_obj`, `count_stream`, `count_xref`, `count_trailer`, `has_eof`, `version_number`...
- Gruppo Attivazione Comportamentale (15 feature): `count_js`, `count_javascript`, `count_openaction`, `count_launch`, `count_embeddedfiles`, `count_richmedia`...
- Gruppo Entropia & Filtri di Stream (18 feature): `stream_entropy_mean`, `stream_entropy_max`, `flatedecode_depth`, `ratio_uncompressed`...
- Gruppo Exploit di Codice & Firme Digitali (12 feature): `heap_spray_pattern_count`, `eval_count`, `has_signature`, `invalid_xref_count`...
2. **Calibrazione delle Probabilità (`CalibratedClassifierCV`)**:
- Utilizzo della calibrazione Isotonic Regression e Platt Sigmoid Scaling su un set di validazione indipendente, portando l'output dell'albero decisionale LightGBM a una probabilità statistica reale $P(\text{Malicious} \mid X) \in [0.0, 1.0]$.
---
### 6.6 Risultati del Benchmark di Verifica & Capacità di Resistenza ai Falsi Positivi (Audit Report)
Valutazione sperimentale su un set di test indipendente (Test Set):
| Metrica di Valutazione | Valore Ottenuto V1.6 | Valutazione Tecnica |
| :--- | :---: | :--- |
| **Accuracy (Accuratezza complessiva)** | **99.42%** | Bilanciata su tutti e 3 i set di dati |
| **Malware Recall (Copertura malware)** | **99.15%** | Rileva la maggior parte dei campioni di exploit CVE e PDF Dropper |
| **False Positive Rate su `benign`** | **0.00%** | Nessun falso positivo rilevato su documenti d'ufficio standard |
| **False Positive Rate su `suspicious_benign`** | **0.21%** | Resistenza efficace ai falsi positivi su fatture digitali e form JS complessi |
| **Inference Latency (Latenza di inferenza AI)** | **1.85 ms / file** | Alta velocità, pronta per la scansione in tempo reale |
---
## 7. DETTAGLI SOTTOMODULO 5: MACHINE LEARNING & AI ENSEMBLE (PE & GNN & SHAP)
Il codice sorgente principale si trova in: [`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 Unificazione dello Spazio delle Feature Multidimensionale (Feature Vectorization)
Il modello unifica lo spazio delle feature dei file eseguibili (PE):
1. **Vettore Statico Strutturale (Static Vector)**: 128 dimensioni (Section Entropy, Header Anomalies, Resource Metrics, Import Table Distribution).
2. **Vettore Sequenza Opcode (Disassembly TF-IDF)**: 512 dimensioni estratte dal Capstone Engine.
3. **Vettore Sequenza Chiamate API (API N-Grams)**: 256 dimensioni.
4. **Vettore Embedding Strutturale del Grafo di Flusso di Controllo (CFG Structural Embeddings)**: 128 dimensioni.
---
### 7.2 PyTorch API Sequence Embedder & Control Flow Graph GNN
1. **PyTorch API Sequence Embedder**:
- Rete neurale ricorrente bidirezionale Bi-LSTM + Multi-Head Self-Attention che codifica la sequenza di chiamate API consecutive in un vettore semantico compatto.
2. **Control Flow Graph GNN (Graph Neural Network)**:
- Utilizzo di un modello **Graph Convolutional Network (GCN)** o **Graph Attention Network (GAT)** con Message Passing attraverso i nodi Basic Block sul CFG, estraendo la struttura di controllo del malware indipendentemente dal Register Renaming.
---
### 7.3 Ottimizzazione delle Feature tramite SHAP Feature Pruning
- Applicazione della teoria dei giochi **SHAP (SHapley Additive exPlanations)** per spiegare le decisioni del modello (Explainable AI - XAI).
- Valutazione dell'indice di contributo di ciascuna feature (SHAP Value $\phi_i$). Rimozione delle feature con SHAP value prossimo a 0 per ottimizzare la velocità di calcolo e migliorare la capacità di generalizzazione.
---
### 7.4 Modello di Classificazione LightGBM Ensemble (Adam, Eve, Marcus) & Soglia Dinamica
Architettura Ensemble che combina 3 modelli specializzati:
1. **Model Adam (Static Specialist)**: Specializzato nella classificazione basata su feature strutturali PE, Opcode TF-IDF e Header Entropy.
2. **Model Eve (Dynamic & Behavior Specialist)**: Specializzato nella classificazione basata sul grafo comportamentale `BehaviorGraph`, log di API Hooks e Kernel ETW.
3. **Model Marcus (Graph & Sequence Embedder)**: Specializzato nella classificazione basata sull'output del GNN e del PyTorch API Sequence Embedder.
4. **Dynamic Thresholding Engine**:
- Calcolo del punteggio di rischio integrato ponderato:
$$\text{Score}_{\text{final}} = w_1 \cdot P_{\text{Adam}} + w_2 \cdot P_{\text{Eve}} + w_3 \cdot P_{\text{Marcus}}$$
- Classificazione a 3 livelli: `CLEAN` ($\text{Score} < 40$), `SUSPICIOUS` ($40 \le \text{Score} < 75$), `MALICIOUS` ($\text{Score} \ge 75$).
---
### 7.5 Risultati del Benchmark & Valutazione Sperimentale del Classificatore AI
Test su un set di dati di test indipendente composto da 20,000 campioni PE (10,000 Clean + 10,000 Malware delle famiglie Ransomware, Trojan, Worm, Backdoor):
| Criterio | 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. DETTAGLI SOTTOMODULO 6: BHR ENGINE (RANSOMWARE DETECTOR & KEY RECOVERY)
Il codice sorgente principale si trova in: [`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 Algoritmo di Rilevamento della Cifratura ad Alta Entropia (Shannon Entropy Rate)
BHR Engine monitora il flusso di scrittura dei dati su file in tempo reale:
- Ogni volta che la funzione `NtWriteFile` viene chiamata con un blocco di dati $\ge 4 \text{ KB}$, il sistema calcola la Shannon Entropy del buffer.
- Se l'Entropia dei dati scritti supera la soglia **$\ge 7.5$** (caratteristica di blocchi compressi o ciphertext cifrato), il contatore di allerta viene attivato.
---
### 8.2 Monitoraggio del Burst Modification Rate & Comportamento di Eliminazione Shadow Copy
1. **Burst File Modification Rate**:
- Monitoraggio della frequenza di modifica dei file. Se un processo esegue modifiche/sovrascritture di oltre **20 file/secondo** con dati ad alta entropia, il processo viene identificato come comportamento Ransomware esplosivo.
2. **Rilevamento del Comportamento di Eliminazione Shadow Copy**:
- Monitoraggio dei processi figli che avviano comandi di distruzione del sistema di backup:
- `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 Estrazione della Struttura delle Chiavi di Cifratura (20+ Standards) dalla RAM & `pagefile.sys`
Quando viene rilevato un comportamento di cifratura, BHR Engine esegue uno snapshot della memoria del processo e scansiona alla ricerca di strutture di chiavi di cifratura candidate di oltre **20 standard crittografici moderni**:
1. **AES-128 / AES-256 Key Schedules**: Scansione della tabella di espansione della chiave (Expanded Key Schedule) tramite calcolo inverso dell'algoritmo AES S-Box / Rcon.
2. **AES-GCM Authentication Subkey ($H$)**: Riconoscimento del blocco hash GHASH $H = E_K(0^{128})$ caratteristico nello spazio di memoria.
3. **ChaCha20 / Salsa20 State Matrix**: Scansione della sequenza di costanti di matrice a 16 byte standard: `"expand 32-byte k"` (`0x61707865`, `0x3320646e`, `0x79622d32`, `0x6b206574`) con array Nonce e Block Counter.
4. **RSA Private Key ASN.1 DER Header**: Riconoscimento della struttura PKCS#1 DER (`0x30, 0x82` con sequenza Modulus $n$, Public Exponent $e$, Private Exponent $d$, Primes $p, q$).
5. **X25519 / Curve25519 Scalar Clamping**: Scansione di sequenze a 32 byte che soddisfano le condizioni di bit clamping (`k[0] &= 248; k[31] &= 127; k[31] |= 64;`).
---
### 8.4 Ripristino dei Dati dal Buffer COW Virtual Overlay (Win32/NT Scope)
Poiché le operazioni di sovrascrittura e cifratura del Ransomware tramite API file standard vengono reindirizzate nel buffer virtuale `Overlay\Files\`, i file originali dell'utente sul disco rigido all'interno di questo ambito di routing vengono preservati.
- `automated_overlay_restore.py` esegue la pulizia dei file modificati nel buffer `Overlay\`, consentendo il rollback delle modifiche virtuali senza necessità di decifrare il ciphertext.
---
### 8.5 Log Crypto Timeline & Mappa delle Trasformazioni dei Dati
`CryptoTimeline.cpp` e `crypto_tracker.py` registrano tutti i momenti temporali dell'attacco:
- Timestamp di avvio del processo e momento in cui il primo file ha subito un aumento di Entropia.
- Elenco della mappa delle trasformazioni: `Percorso file originale` $\rightarrow$ `Percorso file cifrato`.
- Percentuale di dati cifrati per timestamp (Cryptographic Timeline Graph).
---
### 8.6 Test Sperimentale Dual-Engine Hybrid Ransomware Memory Key Extraction
Test in ambiente Lab controllato su un campione Ransomware che simula il meccanismo di cifratura Dual-Engine Hybrid (simile a LockBit 3.0 / BlackCat):
- Cifratura simmetrica: AES-256-GCM + ChaCha20.
- Scambio di chiavi asimmetrico: X25519 Ephemeral Scalar + RSA PKCS#1 DER.
- Iniezione di rumore Heap: 15 regioni di memoria ad entropia casuale e blocchi compressi.
Risultati dell'estrazione delle strutture di chiavi candidate nello scenario del campione di test (Synthetic Benchmark):
1. **AES-256-GCM Master Key**: Corrisponde alla GHASH $H$ Subkey, punteggio di confidenza **95.0%**.
2. **ChaCha20 State Matrix**: Riconoscimento delle costanti di matrice e Nonce, punteggio di confidenza **60.25%**.
3. **X25519 Ephemeral Key**: Riconoscimento del Clamping Pattern Mask, punteggio di confidenza **57.0%**.
4. **RSA PKCS#1 DER Sequence Private Key**: Riconoscimento della struttura ASN.1 DER, punteggio di confidenza **60.75%**.
> [!WARNING]
> **Limiti Tecnici & Sfide nell'Ambiente Reale (Real-World Limitations)**:
> 1. **Zeroization Immediatamente dopo la Cifratura**: I ceppi Ransomware reali (come Babuk, Conti, LockBit) spesso chiamano attivamente `SecureZeroMemory` o `RtlZeroMemory` per cancellare completamente l'array di chiavi simmetriche subito dopo il completamento della sessione di cifratura. Il processo di estrazione è fattibile solo se il Memory Dump viene eseguito tempestivamente durante la cifratura del processo o prima che venga chiamata la funzione di zeroization.
> 2. **Meccanismo di Chiave Asimmetrica C2**: La maggior parte dei ransomware moderni genera una coppia di chiavi Session Key simmetriche (AES/ChaCha20), cifra questa session key con la Public Key dell'attaccante (incorporata nel malware) e invia solo il Ciphertext al C2 o lo scrive alla fine del file cifrato. La Private Key non risiede nella RAM della vittima.
> 3. **Frammentazione in `pagefile.sys`**: La scansione della memoria virtuale su disco richiede che la chiave non sia stata sovrascritta (paging churn) e non sia frammentata in più pagine da 4KB non contigue. Pertanto, la scansione di RAM/Pagefile è una soluzione di recupero per il triage forense (Best-Effort Forensic Triage), che non sostituisce completamente le soluzioni di backup indipendenti dei dati.
---
### 8.7 Architettura Recovery Engine Registry & Crypto Dataflow Tracker
- **Recovery Engine Registry** (`recovery/registry.py`): Gestisce e registra dinamicamente i metodi di ripristino (`automated_overlay_restore.py`, `exact_lookup.py`). Fornisce il meccanismo `evaluate_all(sample)` per classificare il metodo di decifratura ottimale.
- **Crypto Dataflow Tracker** (`recovery/crypto_tracker.py`): Collega il flusso di eventi di cifratura, gli oggetti chiave e verifica la validità in base alla sequenza di eventi I/O in tempo reale.
---
## 9. DETTAGLI SOTTOMODULO 7: BEHAVIOR CORRELATOR & BEHAVIORGRAPH ENGINE V1.6
Il codice sorgente principale si trova in: [`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 Normalizzazione di Eventi Multi-Sorgente (Userland Hooks + Kernel ETW)
`EventNormalizer.cpp` riceve migliaia di eventi individuali da MinHook Userland DLL e Kernel ETW, normalizzandoli nel formato 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) & State Machine della Catena di AttaccoNella versione V1.6 Enterprise, il correlatore comportamentale integra il BehaviorGraph Engine:
ProcessNode) e archi orientati (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 e \??\C:\...) nel formato Win32 standard (C:\...).RegNotifyChangeKeyValue, NtNotifyChangeKey).NetworkSessionTracker) integrata con un estrattore binario di TLS ClientHello Server Name Indication (SNI) e HTTP Request Header (Method/Host/URI).provider, algorithm, mode, keysize, ivlen, inputlen, outputlen, keygen, pid) per CNG/CryptoAPI/NCrypt/SystemFunction senza divulgare dati grezzi.| Tattica | Technique ID | Nome Tecnica | Stato Rilevamento |
|---|---|---|---|
| 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 |
Il sistema V1.6 integra una suite di test automatica a 7 dimensioni (tests/):
| Test | Test Script | Stato | Risultato misurato reale |
|---|---|---|---|
| 1. Stress & Reentrancy | tests/test_sandbox_stress.py | PASSED | 0 crash / 0 deadlock sotto pressione di creazione processi & I/O continuo. |
| 2. API Coverage & Normalization | tests/test_sandbox_coverage.py | PASSED | 0 percorsi un-normalized \Device\ rimasti. |
| 3. False-Positive Baseline | tests/test_sandbox_false_positive.py | PASSED | Funzionamento normale, nessuna attivazione errata su strumenti standard Windows. |
| 4. BehaviorGraph Validation | tests/test_sandbox_behavior_graph.py | PASSED | Grafo dei processi & sessioni di rete TLS SNI/HTTP funzionanti correttamente. |
| 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 | Superati tutti i test Clean, Obfuscated JS, Embedded PE. |
Il codice sorgente principale si trova in: Core/vault/, gui_vault.py.
Il sottosistema Vault V1.6 offre una soluzione di backup indipendente con elevata sicurezza secondo il principio Zero-Knowledge (Nessuna divulgazione di conoscenza):
---
### 10.2 Protocollo di autenticazione a conoscenza zero SRP-6a PAKE (RFC 5054)
Per autenticare e sbloccare il Vault senza rivelare la password o l'Hash della password:
1. **Inizializzazione delle informazioni (Registration / Setup)**: Il Client calcola $x = H(s, P)$ e il Verifier $v = g^x \pmod N$, memorizzando solo il Salt $s$ e il Verifier $v$.
2. **Autenticazione (Authentication)**: Si esegue il protocollo di scambio di credenziali sicuro basato sul valore segreto condiviso $S$ e si verificano le prove di autenticazione $M_1, M_2$. La password non appare mai in forma grezza.
---
### 10.3 Meccanismo di Cambio Password Istantaneo (Instant Re-Keying Mechanism)
BHPAI risolve il problema del cambio della password master senza dover ri-cifrare centinaia di GB di dati di backup grazie all'architettura **$K_{ ext{vault}}$ Indirection**:
- I dati dei file vengono cifrati con la chiave Vault master $K_{ ext{vault}}$.
- La chiave $K_{ ext{vault}}$ è a sua volta protetta dalla chiave di sblocco $K_{ ext{unlock}}$ (generata dalla password).
- Al cambio password: è sufficiente decifrare $K_{ ext{vault}}$ con la vecchia password, quindi ri-cifrare unicamente il blocco $K_{ ext{vault}}$ con la nuova password. **L'intero archivio di backup rimane nello stato di ciphertext.**
---
### 10.4 Autenticazione AAD Canonicalizzata & Bucket Size Padding contro l'analisi del traffico
1. **Binary Length-Prefixed Canonical AAD** (`Core/vault/integrity.py`): Aggiunge dati di autenticazione aggiuntivi (Authenticated Additional Data) in forma canonicalizzata compatibile tra C++ e Python, impedendo lo scambio di ciphertext tra file diversi.
2. **Application-Level Bucket Size Padding**: I file vengono riempiti (Padding) a dimensioni fisse (64KB, 1MB, 10MB, 100MB) per ridurre al minimo la possibilità di dedurre il contenuto del file in base alla dimensione del ciphertext.
---
### 10.5 Architettura di Archiviazione a Blocchi Locale Cifrata (Local Encrypted Block Store)
- Gestione dei dati di backup in blocchi binari cifrati localmente in modo sicuro.
- Supporto alla deduplicazione locale basata su hash del contenuto protetto (Encrypted Content Chunk Hash).
- Elevata compatibilità con l'archiviazione su dischi esterni, USB sicure o partizioni di ripristino indipendenti.
---
## 11. DETTAGLI SOTTOSISTEMA 9: INTERFACCIA DESKTOP PYQT6 GLASSMORPHISM, LICENZA HWID & STRUMENTO CLI
Il codice sorgente principale si trova in: [`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 Architettura dell'Interfaccia PyQt6 Desktop Glassmorphism (Multi-Threading QThread)
Interfaccia utente Desktop dedicata per l'indagine sul campo e le operazioni locali:
- **Design fluido senza blocco dell'UI (Non-blocking GUI Responsiveness)**: Tutto il lavoro di calcolo pesante (Disassembly Capstone, Sandbox IPC, KDF Cryptography, Estrazione PE/PDF) è completamente separato dal GUI Thread e coordinato tramite **`QThread` Background Workers**.
- **Stile di Design Dark Glassmorphism**: Utilizza tonalità scure moderne, effetti di arrotondamento raffinati, pannelli di controllo intuitivi e un sistema di grafici di stato in tempo reale.
---
### 11.2 Le Schede Funzionali Principali sulla Desktop GUI
1. **Multi-Format Scanner Tab**:
- Consente il drag-and-drop di qualsiasi file (PE, PDF, Office, Scripts).
- Mostra il punteggio di minaccia (Threat Score), l'analisi ricorsiva del payload e la visualizzazione dell'albero `AnalysisNode`.
2. **Dynamic Sandbox Monitor Tab**:
- Monitoraggio in tempo reale dei log degli eventi, del flusso di chiamate API NT Native, dei processi figli e dei grafici delle risorse CPU/RAM/Disk IO.
3. **MITRE ATT&CK Matrix Tab**:
- Visualizzazione della matrice delle tattiche e tecniche violate dal malware, con prove estratte direttamente.
4. **BHR & Recovery Center Tab**:
- Monitoraggio della timeline di cifratura dei dati, dei parametri di entropia in tempo reale e esecuzione del ripristino Rollback rapido.
5. **Zero-Knowledge Encrypted Vault Tab**:
- Gestione dell'archivio di backup cifrato E2EE locale, blocco/sblocco del vault, backup di cartelle importanti e ripristino sicuro.
---
### 11.3 Sistema di Licenza Bloccata all'Hardware (HWID-Locked Licensing & Ed25519)
Sottosistema di gestione della licenza offline che protegge l'integrità del software:
- **Blocco del Dispositivo (HWID Binding)**: Raccoglie informazioni hardware immutabili (CPU ID, BIOS UUID, Disk Serial, MAC Address) formando una stringa HWID che identifica univocamente ogni workstation.
- **Firma Digitale Ed25519**: Utilizza l'algoritmo a chiave pubblica Ed25519 per firmare digitalmente il file di certificato offline `license.dat`.
- **Applicazione Offline (Offline Enforcement)**: Tutti gli strumenti binari (`BHPAISandbox.exe`, `pe_analyzer.exe`, `bhpai_rescue.exe`) caricano automaticamente `license.dat`, verificano la firma con la Master Public Key e confrontano la corrispondenza con l'HWID del computer senza necessità di connessione di rete.
---
### 11.4 Motore di Threat Intelligence & Universal IOC Defanger Indipendente
- Integra una base di conoscenza per il riconoscimento delle famiglie di malware più comuni (LockBit, Conti, WannaCry, RedLine, Emotet, Babuk) insieme a un insieme di regole di classificazione comportamentale.
- Estrae e defanga automaticamente gli elenchi di IOC malevoli (IP, Domain, URL, Hashes) per proteggere l'analista durante l'estrazione dei report.
---
### 11.5 Sistema di Report Multi-formato Universal Schema 2.0 (JSON, Markdown, PDF)
- **JSON Schema 2.0**: Fornisce una struttura dati leggibile dalla macchina e standardizzata, facilmente integrabile con altri sistemi di analisi.
- **Markdown Summary**: Esporta report riepilogativi intuitivi, che facilitano la condivisione rapida tra gli ingegneri di digital forensics.
- **Report PDF**: Genera automaticamente report professionali con grafici di distribuzione dell'entropia e albero della struttura del payload.
---
## 12. DETTAGLI SOTTOSISTEMA 10: BHPAI RESCUE SUITE & AVVIO DI SOCCORSO DI EMERGENZA WINRE
Il codice sorgente principale si trova in:
- Strumento di soccorso C++: [`Rescue/`](file:///c:/Users/Kryo/Documents/BHPAI/Rescue), [`bhpai_rescue.exe`](file:///c:/Users/Kryo/Documents/BHPAI/bhpai_rescue.exe).
- Script di distribuzione: [`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).
- Report di esempio: [`BHPAI_Rescue_Summary.md`](file:///c:/Users/Kryo/Documents/BHPAI/BHPAI_Rescue_Summary.md).
---
### 12.1 Ambiente di Soccorso Offline Windows Recovery Environment (WinRE)
Quando il sistema operativo viene paralizzato da un attacco Ransomware, Screen Locker, disabilitazione della Safe Mode o interferenza con i file di sistema, l'analisi diretta sul sistema operativo in esecuzione presenta molti rischi a causa dell'ostruzione da parte di processi malware o rootkit. **BHPAI Rescue Suite V2** risolve questo problema operando dall'ambiente offline **Windows Recovery Environment (WinRE)** o Windows PE:
- **Separazione dall'ambiente in esecuzione**: Non è influenzato da processi malevoli o hook del kernel attivi nel Windows principale.
- **Caricamento del Registry Offline (Offline Hive Loading)**: Monta automaticamente i file di struttura del Registry reali sul disco rigido (`SYSTEM`, `SOFTWARE`, `NTUSER.DAT`) in un ramo temporaneo di WinRE per modificare e sbloccare il sistema senza che il sistema operativo di destinazione debba avviarsi.
- **Air-Gapped & Indipendente dalla rete**: Esecuzione completamente locale, nessuna connessione di rete richiesta, riducendo il rischio che botnet C2 inviino segnali di distruzione dei dati.
---
### 12.2 Architettura dei 7 Sottosistemi Principali di `bhpai_rescue.exe`
Il codice sorgente in [`Rescue/`](file:///c:/Users/Kryo/Documents/BHPAI/Rescue) è costruito in puro C++17, con linking statico (static linking) con OpenSSL e 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 (Individuazione della Partizione OS):
FindFirstVolumeW, FindNextVolumeW).System32\ntoskrnl.exe, System32\config\SYSTEM, explorer.exe).OfflineRegistryManager (Gestione del Registro Offline):
RegLoadKeyW per caricare i file hive in un prefisso temporaneo: HKEY_LOCAL_MACHINE\BHPAI_OFFLINE_SYSTEM, BHPAI_OFFLINE_SOFTWARE, BHPAI_OFFLINE_NTUSER.Select\Current (ad esempio: ControlSet001).Shell (modificata da explorer.exe a un file malevolo) e Userinit.taskmgr.exe, cmd.exe, sethc.exe.Windows\System32\Tasks.OfflineMalwareScanner (Scansione e Valutazione BHR 10-Pillar):
AppData\Local\Temp, ProgramData, Users\Public, Windows\Temp).MALICIOUS, SUSPICIOUS, CLEAN).OfflineBlastRadius (Valutazione del Raggio di Danno Multi-Segnale):
Desktop, Documents, Downloads, Pictures, Videos).README.txt, DECRYPT_FILES.html, HOW_TO_RESTORE.txt).OfflineCryptoArtifactHunter (Caccia alle Chiavi Crittografiche):
pagefile.sys, swapfile.sys e i file di crash dump (MEMORY.DMP).RescueRemediator (Coordinamento del Risanamento):
C:\BHPAI_Rescue_Quarantine\) con hash SHA-256 di verifica.explorer.exe, rimuove gli IFEO hijacks, disabilita le attività in background (Scheduled Tasks) e i servizi malevoli.RescueTransactionJournal (Registro delle Transazioni ACID e LIFO Rollback):
Per garantire la sicurezza e prevenire il rischio di interrompere il sistema operativo Windows, RescueRemediator applica un processo di transazione in 5 passaggi:```
[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)**: Scansione completa, redazione dell'elenco di tutti i file binari dannosi, chiavi di persistenza nel registro e file compromessi.
2. **Phase 2 (Backup)**: Creazione della cartella transazionale `C:\BHPAI_Rescue_Backup\` associata al codice Volume GUID e al Disk ID. Backup completo di tutti i file hive (`SYSTEM.before`, `SOFTWARE.before`, `NTUSER.DAT.before`) e archiviazione dei metadati dei file originali (dimensione, attributi temporali, descrittore ACL).
3. **Phase 3 (Modify)**: Registrazione di ogni azione nel log transazionale (`transaction.json`), spostamento dei file malevoli nel repository di quarantena e correzione dei valori di Registry dannosi.
4. **Phase 4 (Verify)**: Verifica di ogni modifica sul disco: Conferma che il file dannoso non esista più nella posizione originale, che il file nel repository di quarantena corrisponda all'hash SHA-256, e che il Registry Hive punti correttamente ai binary standard di Windows.
5. **Phase 5 (Commit)**: Cambio di stato della transazione da `IN_PROGRESS` a `COMMITTED`. Se qualsiasi passo nelle Phase 3 o Phase 4 genera un problema, il sistema attiva automaticamente il **LIFO Rollback**, ripristinando integralmente i file hive e restituendo i file dal repository di quarantena alla posizione originale.
---
### 12.4 Meccanismo di Auto-Ripristino in Caso di Problemi (Crash State Recovery)
Se il computer subisce un'interruzione improvvisa di corrente o uno spegnimento involontario durante l'esecuzione di `bhpai_rescue.exe`:
- Al successivo avvio in WinRE, `bhpai_rescue.exe` leggerà automaticamente `transaction.json` e rileverà lo stato **CRASH STATE** (`IN_PROGRESS`).
- Il programma emette l'avviso `[CRITICAL WARNING] INCOMPLETE REMEDIATION DETECTED`.
- Fornisce un'opzione di ripristino a 2 livelli:
- **Tier 1**: Ripristino inverso secondo l'ordine del log LIFO Rollback.
- **Tier 2 (Emergency Hive Restore)**: Ripristino forzato di tutti i file hive del Registry originali dal backup `*.before`.
---
### 12.5 Scenario di Distribuzione e Avvio Automatico di WinRE
#### 1. Script di deployment sicuro [`scripts/deploy_winre.ps1`](file:///c:/Users/Kryo/Documents/BHPAI/scripts/deploy_winre.ps1):
- **Chiamata Diretta a DISM**: Esegue `& dism.exe` trasmettendo l'output in tempo reale, riducendo il rischio di blocco del processo PowerShell.
- **Conservazione dello Stato di Configurazione**: Memorizza lo stato originale di WinRE (`reagentc /info`). Se inizialmente Disabled, al termine ripristina esattamente Disabled; se inizialmente Enabled, garantisce che WinRE venga riattivato.
- **Backup Prima della Modifica**: Copia automaticamente `Winre.wim` in `Winre.wim.BHPAI.backup`.
- **Launcher Adattivo**: Crea lo script `Windows\System32\bhpai.cmd` utilizzando le variabili d'ambiente `%~d0` e `%SystemDrive%`, adattandosi automaticamente alla lettera di unità assegnata da WinPE.
- **Meccanismo di Rollback Automatico**: Gestisce le eccezioni che si verificano durante il mount, eseguendo automaticamente `/Discard`, ripristinando il file WIM dal backup e pulendo le cartelle temporanee.
#### 2. Script di avvio del ripristino [`scripts/trigger_rescue_reboot.ps1`](file:///c:/Users/Kryo/Documents/BHPAI/scripts/trigger_rescue_reboot.ps1):
- Attiva WinRE se è in stato disabilitato.
- Utilizza il comando standard `reagentc /boottore` e la configurazione `bcdedit /set {current} recoveryenabled yes` per specificare che il computer si avvii in WinRE al prossimo riavvio.
---
### 12.6 Guida Operativa e Parametri da Riga di Comando di `bhpai_rescue.exe`
Dopo che il computer si è avviato in Windows Recovery Environment:
1. Selezionare: **Troubleshoot (Risoluzione dei problemi)** $\rightarrow$ **Advanced options (Opzioni avanzate)** $\rightarrow$ **Command Prompt (Prompt dei comandi)**.
2. Nella finestra della riga di comando, digitare: ```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
#### Flag CLI Avanzati:```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
Dopo aver completato ogni sessione di lavoro, il sistema esporta 2 report di indagine digitale (DFIR Reports) nella directory radice della partizione di destinazione:
C:\BHPAI_Rescue_Report.json: Report dettagliato in formato JSON contenente tutti gli hash SHA-256, l'elenco delle chiavi, il comportamento del registro e i metadati delle transazioni.C:\BHPAI_Rescue_Summary.md: Report riepilogativo in formato Markdown che presenta una sintesi per gli analisti (esempio di riferimento: BHPAI_Rescue_Summary.md).bhpai_sourceopen - 25%)Al fine di servire la comunità di ricerca sulla sicurezza informatica, i test indipendenti e la dimostrazione delle capacità tecniche, il progetto BHPAI rilascia la versione Community Edition archiviata nella directory bhpai_sourceopen. Questo pacchetto è progettato secondo il modello Open-Core:
Core/scanner/: L'intero codice sorgente C++ per l'analisi della struttura PE, l'estrazione di caratteristiche Opcode/API N-Grams, il grafo CFG Cyclomatic Complexity, TF-IDF, la generazione automatica di regole YaraGen, l'elaborazione ottimizzata di stringhe AVX2 StringEx.Core/Decompile/: Disassemblatore binario x86/x64 tramite Capstone Engine (Disassembler, PeParser).Core/pack/: Set di decompressione in-memory UPX e WWPack.fuzzy/: Algoritmo di hashing fuzzy binario SSDEEP (fuzzyhash.c/.h).Analyzers/Common/: Instradamento file a 3 fasi FileRouter, limiti ParserLimits, mappatura MITRE ATT&CK MitreMapper, neutralizzazione IOC IOCExtractor (Defanging).Core/Train/ & model/: Estrattore di vettori di caratteristiche PE (feature_extractor.py) e configurazione delle soglie di classificazione.scan.py & app_scan.py: Scanner da riga di comando e interfaccia Desktop dedicata per PE.[!IMPORTANT] Impegno su Licenza e Indipendenza:
- Esclusione 100% del Sottosistema PDF: Poiché il sottosistema PDF è in fase di sviluppo e completamento, l'intero codice sorgente PDF viene mantenuto riservato e non incluso in questa versione open source.
- Esclusione 100% del Dataset: Assolutamente non viene pubblicata la directory
dataset/(non contiene campioni di malware o documenti utente).- Licenza Indipendente: Include uno stub di licenza Community (
BhpaiLicense.hpp) che consente agli utenti di compilare ed eseguire analisi binarie in totale libertà senza necessità di attivazione di chiavi hardware commerciali.
Il Documento Master Tecnico del progetto BHPAI V1.6 Enterprise è stato redatto e standardizzato dal BHPAI Engineering Team. Tutti i diritti riservati.
Language / Ngôn ngữ: 🇻🇳 Tiếng Việt | 🇬🇧 English
System Version: V1.6 Enterprise Edition (Full Architectural & Feature Release)
Authors: Rin449 Core Languages & Tech Stack: 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
Master Reference Manual: Covers Multi-Format architectural routing, hierarchical recursive payload decomposition, static PE & native PDF stream parsing, Ring-3 stealth dynamic sandbox, ransomware candidate key extraction, false-positive-resistant calibrated AI models, offline WinRE transactional recovery suite, and zero-knowledge encrypted vault backup.
Analyzers/PDF/)AnalysisNode)ParserLimits, AnalysisBudget)dataset/pdf/)StratifiedGroupKFoldCalibratedClassifierCV)pagefile.sys (20+ Standard Crittografici)BehaviorGraph) e Macchina a Stati della Catena di AttaccoCryptoOperation)bhpai_rescue.exebhpai_rescue.exeNel panorama moderno delle minacce informatiche, le campagne di Advanced Persistent Threat (APT), spyware e ransomware si sono espanse ben oltre i convenzionali binari eseguibili (.exe, .dll):
/Launch che generano comandi shell nascosti) o incorporando eseguibili dropper PE all'interno dei documenti.BHPAI versione V1.6 Enterprise è un ecosistema di difesa informatica multi-livello che fornisce protezione end-to-end della catena di attacco attraverso un Motore Ibrido Multi-Formato unificato: instradamento automatico del formato a 3 fasi (PE, PDF, Office, Script), analisi ricorsiva dei payload annidati, isolamento in sandbox dinamica stealth Ring-3, monitoraggio Intel PT assistito da hardware e modelli AI calibrati resistenti ai falsi positivi.
BHPAI V1.6 opera secondo il principio architetturale Instrada - Disseziona Ricorsivamente - Correla i Comportamenti - Recupera Offline:``` ┌───────────────────────────────────────────────┐ │ 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. **Safety First & Anti-Bomb Protection**: La sandbox confina l'esecuzione all'interno di un desktop virtuale privato (`BHPAISandboxDesktop`), applica rigidi limiti tramite Windows Job Object (tetto di 512MB di RAM, affinità CPU, nessun process breakaway) e rimuove i privilegi elevati tramite Restricted Tokens. Il parser PDF è protetto da un `AnalysisBudget` e da rigidi `ParserLimits` che prevengono le Decompression Bombs (rapporto di compressione massimo 100:1, espansioni di stream limitate e tetti alla profondità di ricorsione).
2. **Stealth Anti-Evasion (Minimal User-Mode Footprint)**: La DLL di monitoraggio Ring-3 mitiga il rilevamento scollegando proattivamente il proprio `LDR_DATA_TABLE_ENTRY` da tutte e 3 le liste dei moduli PEB (`InLoadOrder`, `InMemoryOrder`, `InInitializationOrder`), cancellando le intestazioni PE e i percorsi di debug PDB dalla RAM e applicando protezioni DACL al processo Launcher.
3. **Hierarchical Recursive Analysis Tree & Child Dominance**: L'albero `AnalysisNode` ispeziona ricorsivamente ogni payload incorporato. Se un qualsiasi binario annidato (Child PE) viene classificato come malevolo, il sistema attiva la **Child Dominance Rule**, elevando il verdetto del documento padre a **MALICIOUS** con un punteggio di minaccia minimo di 85/100.
4. **False-Positive Resistance AI**: Le scorciatoie spurie sulle feature vengono completamente eliminate tramite un design del dataset a 3 livelli (`suspicious_benign`), deduplicazione multilivello (Exact Hash + Structural Fingerprinting) e cross-validation group-aware tramite `StratifiedGroupKFold`.
5. **Data Protection & Candidate Key Recovery**: Il BHR Engine rileva burst di cifratura ad alta entropia al confine I/O Win32/NT, estrae strutture candidate di chiavi crittografiche (AES-GCM GHASH $H$, stato ChaCha20, RSA DER, X25519) dalla RAM del processo e da `pagefile.sys`, e ripristina i file modificati dal buffer COW Virtual Overlay.
---
### 1.3 V1.6 Core Technical Highlights & Specification Matrix
| Subsystem & Criterion | V1.6 Technical Specifications & Implementation Stack |
| :--- | :--- |
| **File Routing Engine** | 3-Stage: Magic Bytes (PE, PDF, PK, OLE2, ELF, Shebang) + In-Memory Container Inspection (ZIP OOXML for DOCX/XLSX/PPTX) + Script Classifier (PS1, VBS, JS, BAT, HTA) |
| **Native C++ PDF Analyzer V2.0** | C++17 Binary-Safe Parser, FlateDecode/ASCIIHex/LZW Inflate, Recursive Embedded Payloads (`MZ`), Javascript Deobfuscation & Acrobat API Analyzer, 57 Vector Features |
| **Anti-Bomb / DoS Defense** | `ParserLimits`: Max Input 500MB, Max Extracted 250MB, Max Ratio 100.0, Max Objects 100K, Max Filter Depth 6, Analysis Timeout 30s |
| **Sandbox Environment** | Windows Job Object (RAM 512MB, CPU Affinity, No Breakaway, UILIMITs) + Restricted Token (Drop Admin SIDs & Dangerous Privileges) + Dedicated Virtual Desktop |
| **Filesystem / Registry Virtualization** | 2-Layer Copy-On-Write (COW) Virtual Overlay supporting Alternate Data Streams (ADS), Reparse Points, and Merged Virtual Registry View |
| **Stealth Monitoring Techniques** | 3-Way PEB Module Unlinking (`InLoadOrder`, `InMemoryOrder`, `InInitializationOrder`) + In-Memory PE Header Scrubber + PDB Wiping + Launcher DACL Guard |
| **Hooking & Behavioral Graph** | MinHook Engine + RAII `HookGuard` + Cross-Process `BehaviorGraph` (Remote Thread, Process Hollowing, APC Queue Injection tracking) |
| **Hardware-Assisted Intel PT** | Hardware Tracing via CPUID leaf 0x14, Windows Kernel Tracing `ProcessIntelProcessorTrace` Class 47, TNT/TIP/FUP Packet Decoding |
| **Static PE Disassembly Engine** | Capstone Disassembler (x86/x64) + Opcode TF-IDF + API N-Grams + CFG Cyclomatic Complexity + YaraGen (Rust Noise Blacklist) + SSDEEP/TLSH |
| **Machine Learning / AI Ensemble** | PyTorch Sequence Embedder + CFG GNN + LightGBM Ensemble (Adam, Eve, Marcus) + SHAP Feature Pruning + PDF Calibrated LGBM |
| **Anti-False Positive Training** | 3-Tier Dataset (`malware`, `benign`, `suspicious_benign`), Level-1 (SHA256) & Level-2 (Structural Fingerprint) Dedup, `StratifiedGroupKFold` |
| **Ransomware Detection (BHR)** | Real-Time Shannon Entropy Rate ($\ge 7.5$) + Burst Modification Rate ($>20$ files/s) + Volume Shadow Copy Deletion Command Detector |
| **Key Extraction & Recovery** | RAM & `pagefile.sys` Extractor for 20+ Standards (AES-GCM GHASH $H$, ChaCha20, RSA DER, X25519 Clamping) + Automated COW Overlay Rollback |
| **Zero-Knowledge Backup Vault** | Client-Side E2EE (AES-256-GCM) + SRP-6a PAKE (RFC 5054) + Instant Master Re-Keying ($K_{\text{vault}}$) + Canonical Binary AAD + Bucket Padding |
| **WinRE Emergency Rescue Suite** | `bhpai_rescue.exe` C++17 standalone, 7 core subsystems, 5-Phase ACID transaction, Crash state recovery, automatic offline registry hive loading |
| **Desktop GUI & Licensing** | PyQt6 Dark Glassmorphism GUI (QThread workers) + Ed25519 HWID Hardware-Locked Licensing Engine |
---
## 2. OVERALL ARCHITECTURAL DIAGRAM & EXECUTION PIPELINE
Il diagramma di sequenza riportato di seguito illustra il flusso di esecuzione end-to-end dall'ingestione del file grezzo al triage statico/dinamico, alla scomposizione ricorsiva, all'inferenza AI e al disaster recovery offline:```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
Implementazioni del codice sorgente principale: BHPAISandbox.cpp, BHPAIMonitor.cpp, SafeVirtualDesktop.cpp, SafeJobObject.cpp, IntelPTMonitor.cpp, FakeNetEngine.cpp.
BHPAISandboxDesktop): Inizializzato tramite CreateDesktopW con flag di sicurezza DESKTOP_CREATEWINDOW | DESKTOP_WRITEOBJECTS. Tutte le finestre grafiche, i Messaggi di Windows (WM_DROPFILES, WM_COPYDATA, hook UI) e i keylogger sono rigorosamente isolati dalla sessione utente interattiva (Desktop Default).SafeJobObject):
JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE: Garantisce che la terminazione del launcher termini istantaneamente e in modo pulito l'intero albero dei processi figli.JOB_OBJECT_LIMIT_PROCESS_MEMORY: Limita il commit charge massimo a 512MB per processo, prevenendo attacchi di esaurimento della memoria.JOB_OBJECT_LIMIT_ACTIVE_PROCESS: Limita i processi attivi a 32, contrastando i tentativi di denial-of-service tramite fork-bomb.JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION: Sopprime le finestre di dialogo di crash del Windows Error Reporting.JOB_OBJECT_UILIMIT_HANDLES | JOB_OBJECT_UILIMIT_GLOBALATOMS: Impedisce la condivisione non autorizzata di handle tra processi e l'inquinamento degli atom globali.Il Launcher costruisce un token di sicurezza limitato tramite CreateRestrictedToken prima di eseguire CreateProcessAsUserW:
WinBuiltinAdministratorsSid, WinLocalSystemSid, WinLocalAdminSid.SeDebugPrivilege, SeTcbPrivilege, SeTakeOwnershipPrivilege, SeLoadDriverPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeShutdownPrivilege, SeImpersonatePrivilege.SECURITY_MANDATORY_LOW_RID o SECURITY_MANDATORY_MEDIUM_RID.Per minimizzare l'impronta del monitoraggio contro tecniche anti-analisi in user-mode:
BHPAIMonitor.dll scollega automaticamente il proprio LDR_DATA_TABLE_ENTRY da tutte e 3 le liste di moduli doppiamente concatenate all'interno del Process Environment Block (PEB):
InLoadOrderModuleListInMemoryOrderModuleListInInitializationOrderModuleList
Le traversate di PEB->Ldr o le chiamate a EnumProcessModules da parte del malware non rivelano alcuna traccia della DLL di monitoraggio.PAGE_READWRITE e azzera le proprie stringhe IMAGE_DOS_HEADER, IMAGE_NT_HEADERS, IMAGE_SECTION_HEADER e il percorso del file PDB nella Debug Directory, sconfiggendo gli scanner di firme in memoria.SetKernelObjectSecurity con una discretionary access control list (DACL) vuota, bloccando PROCESS_TERMINATE, PROCESS_VM_WRITE e PROCESS_SUSPEND_RESUME da processi a integrità inferiore.L'agente di monitoraggio intercetta le Native NT API di basso livello in ntdll.dll e kernelbase.dll utilizzando il MinHook Engine:
| Sottosistema API | Native NT API Intercettata | Obiettivo di Monitoraggio & Redirezione |
|---|---|---|
| Processo / Thread | NtCreateProcessEx, NtCreateUserProcess, NtCreateThreadEx, NtQueueApcThread | Rileva la generazione di processi figli, Process Injection, APC Injection. |
| Memoria Virtuale | NtAllocateVirtualMemory, NtProtectVirtualMemory, NtWriteVirtualMemory | Cattura allocazioni PAGE_EXECUTE_READWRITE, Hollowing, Shellcode. |
| I/O Filesystem | NtCreateFile, NtOpenFile, NtWriteFile, NtSetInformationFile, NtDeleteFile | Registra I/O, redirige al COW Overlay, valuta l'Entropia di Shannon. |
| Registro | NtCreateKey, NtOpenKey, NtSetValueKey, NtDeleteValueKey | Traccia le chiavi di Persistenza, redirige le scritture al Registro Virtuale. |
| Anti-Analisi | NtQueryInformationProcess, NtSetInformationThread, NtDelayExecution | Neutralizza i controlli ProcessDebugPort, il thread hiding, accelera i sleep. |
Ogni detour è protetto da un HookGuard basato su RAII (thread_local bool in_hook), eliminando deadlock infiniti da rientranza ricorsiva.
Per salvaguardare l'host sottostante consentendo al malware di eseguire senza ostacoli:
GENERIC_READ) vengono servite direttamente dai file originali su disco.GENERIC_WRITE) o cancellazioni (FILE_DELETE_ON_CLOSE), il file viene copiato su richiesta in BHPAI_Sandbox_Overlay\Files\. Tutte le modifiche successive operano su questo clone isolato della sandbox.file.txt:zone.identifier), i Reparse Points e i Symbolic Links.HKLM\Software\Microsoft\Windows\CurrentVersion\Run) vengono redirette a HKCU\Software\BHPAI_Virtual_Registry\.Sfrutta le sessioni kernel di Microsoft Event Tracing for Windows (ETW):
Microsoft-Windows-Kernel-Process: Cattura la creazione di processi anche se il malware aggira gli hook in userland tramite syscall dirette.Microsoft-Windows-Kernel-Network: Cattura l'attività grezza dei socket TCP/UDP.Microsoft-Windows-Kernel-Memory: Rileva il mapping di memoria virtuale tra processi.Simulatore di rete integrato (FakeNetEngine.cpp):
127.0.0.1).IntelPTMonitor.cpp si interfaccia direttamente con le primitive di tracing hardware della CPU:
__cpuidex(0x14, 0).ProcessIntelProcessorTrace (Classe 47).TNT (decisioni di branch Taken/Not-Taken), TIP (Target IP) e FUP (Function Pointer), esponendo catene ROP e redirezioni del flusso di controllo senza riscrittura binaria basata su software.| 🔴 Detected (Shadow Copy Deletion) |