
스텔스 Ring-3 Windows 샌드박스, 정적 PE/PDF 분석기, 랜섬웨어 키 복구, 그리고 오탐 방지 탐지를 위한 AI 앙상블을 결합한 다중 형식 멀웨어 분석 플랫폼입니다.
시스템 버전: V1.6 Enterprise Edition (시스템 기능 종합 업데이트)
작성자: Rin449 핵심 언어 및 기술: 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
마스터 참조 문서: 다중 형식 아키텍처(Multi-Format) 상세, 재귀 분석 알고리즘, PE 및 PDF 정적 분석, Sandbox Stealth Ring-3 동적 모니터링, Ransomware 키 구조 추출, 오탐 방지 AI 모델(False Positive Resistant), WinRE 오프라인 복구 시스템 및 Zero-Knowledge 데이터 보안.
Language / Ngôn ngữ: 🇻🇳 Tiếng Việt | 🇬🇧 English
Analyzers/PDF/)AnalysisNode Architecture)pagefile.sys에서 암호화 키 구조 (20+ Standards) 추출BehaviorGraph) & 공격 체인 State Machine현재 사이버 보안 시대에서 표적 공격(APT), 스파이웨어, 랜섬웨어(Ransomware)는 전통적인 실행 파일(.exe, .dll)의 범위를 넘어섰습니다:
/Launch 액션 포함) 또는 PDF 내부에 PE 실행 파일을 Dropper 형태로 삽입하여 초기 침투.BHPAI V1.6 Enterprise 버전은 Multi-Format Hybrid Engine 아키텍처를 통해 공격 체인에 대한 포괄적인 보호 솔루션을 제공하는 다계층 사이버 보안 시스템입니다: 다중 형식 자동 라우팅(PE, PDF, Office, Script), 중첩 페이로드 재귀 분석, Sandbox Ring-3 stealth 격리, Intel PT 하드웨어 모니터링, 오탐 방지 보정 AI 모델.
BHPAI V1.6은 라우팅 - 재귀 해석 - 행위 상관관계 - 오프라인 복구 모델을 기반으로 설계되었습니다:``` ┌───────────────────────────────────────────────┐ │ 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 (안전 우선 & DoS 방어)**: 전용 가상 데스크톱(`BHPAISandboxDesktop`)을 통한 프로세스 격리 샌드박스, Job Object 제한(RAM 512MB, CPU, Breakaway 금지) 및 Restricted Token을 통한 권한 하향. PDF 스트림 압축 해제기는 `AnalysisBudget`과 `ParserLimits`로 보호되어 Decompression Bomb 방지(최대 압축 비율 100:1, 용량 및 중첩 깊이 제한).
2. **Stealth Anti-Evasion (User-mode 흔적 최소화)**: Ring-3 모니터링 DLL은 PEB 모듈 이중 연결 리스트 3개(`InLoadOrder`, `InMemoryOrder`, `InInitializationOrder`)에서 제거, RAM 내 PE Header & Debug PDB 삭제, 그리고 기본적인 `OpenProcess(PROCESS_TERMINATE)` 명령에 대항하는 Launcher DACL 보호 설정을 통해 일반적인 anti-analysis 기법에 대한 흔적을 능동적으로 최소화합니다.
3. **Recursive Analysis Tree & Child Dominance (재귀 분석 & 자식 지배)**: `AnalysisNode` 트리 아키텍처는 문서 내부에 포함된 모든 파일을 재귀적으로 검사합니다. 자식 실행 파일(Child PE)이 악성으로 탐지되면 시스템은 **Child Dominance Rule**을 발동하여 부모 문서의 결론을 최소 위험 점수 85/100의 **MALICIOUS**로 자동 승격합니다.
4. **False-Positive Resistance AI (오탐 저항)**: 3계층 데이터셋(`suspicious_benign`) 구성, 다단계 중복 제거(Exact Hash + Structural Fingerprint) 및 `StratifiedGroupKFold` 그룹 분해를 통해 잘못된 추론 지름길을 제거합니다.
5. **Data Protection & Key Recovery (후보 키 탐지 & 추출 지원)**: BHR Engine은 Win32/NT I/O 범위 내에서 급격한 엔트로피 암호화 행위를 탐지하고, 프로세스가 메모리를 해제하기 전에 RAM 및 `pagefile.sys`에서 후보 키 구조(AES-GCM GHASH $H$, ChaCha20 state, RSA DER, X25519)를 스캔하며, 표준 I/O 작업에 대해 COW Overlay 버퍼에 기록된 파일의 롤백을 지원합니다.
---
### 1.3 V1.6 핵심 기술 사양표 (Technical Highlights)
| 하위 시스템 & 기준 | V1.6 기술 사양 & 구현 기술 |
| :--- | :--- |
| **파일 라우팅 (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) |
| **네이티브 PDF 분석 V2.0** | C++17 Binary-Safe Parser, FlateDecode/ASCIIHex Inflate, Recursive Embedded Payloads (`MZ`), Javascript Obfuscation & Acrobat API Analyzer, 57 Vector Features |
| **Anti-Bomb / DoS 방어** | `ParserLimits`: Max Input 500MB, Max Extracted 250MB, Max Ratio 100.0, Max Objects 100K, Max Filter Depth 6, Timeout 30초 |
| **샌드박스 환경** | Windows Job Object (RAM 512MB, CPU Affinity, No Breakaway, UILIMITs) + Restricted Token (Drop Dangerous Privileges) + Virtual Desktop |
| **Filesystem/Registry 가상화** | Copy-On-Write (COW) Virtual Overlay 2계층, Alternate Data Streams (ADS), Reparse Points, 및 Merged Virtual Registry View 지원 |
| **Stealth Monitor 기법** | Unlink PEB (`InLoadOrder`, `InMemoryOrder`, `InInitializationOrder`) + In-Memory PE Header Scrubber + PDB Wiping + Launcher DACL Guard |
| **Hooking & 행위 그래프** | MinHook Engine + RAII `HookGuard` + `BehaviorGraph` 프로세스 간 (Remote Thread, Process Hollowing, APC Queue Injection) |
| **Intel PT 하드웨어 모니터링** | Hardware-Assisted Tracing via CPUID leaf 0x14, `ProcessIntelProcessorTrace` Class 47, TNT/TIP/FUP Packet Decoder |
| **PE 정적 분석 (Static)** | Capstone Disassembler (x86/x64) + Opcode TF-IDF + API N-Grams + CFG Cyclomatic Complexity + YaraGen (Rust Blacklist) + SSDEEP/TLSH |
| **AI / Machine Learning 모델** | PyTorch Sequence Embedder + GNN on CFG + LightGBM Ensemble (Adam, Eve, Marcus) + SHAP Feature Pruning + PDF Calibrated LGBM |
| **False Positive 방지 학습** | 3계층 데이터셋 (`malware`, `benign`, `suspicious_benign`), 1단계 Dedup (SHA256) & 2단계 (Structural Fingerprint), `StratifiedGroupKFold` |
| **랜섬웨어 탐지** | Real-time Shannon Entropy Calculation ($\ge 7.5$) + Burst Modification Rate ($>20$ files/s) + Shadow Copy Wiping Detector |
| **키 추출 & 복구** | RAM & `pagefile.sys` Extractor for 20+ algorithms (AES-GCM GHASH $H$, ChaCha20, RSA DER, X25519 Clamping) + Automated COW Rollback |
| **독립 암호화 백업 (Vault)** | Client-Side Zero-Knowledge E2EE (AES-256-GCM) + SRP-6a PAKE (RFC 5054) + Instant Re-Keying ($K_{\text{vault}}$) + Canonical AAD |
| **WinRE 오프라인 복구** | `bhpai_rescue.exe` C++17 standalone, 7개 하위 시스템, 5-Phase ACID transaction, Crash state recovery, 오프라인 레지스트리 자동 마운트 |
| **데스크톱 UI & 라이선스** | PyQt6 Dark Glassmorphism GUI (QThread workers) + Ed25519 HWID Hardware-Locked Licensing engine |
---
## 2. 전체 아키텍처 및 데이터 처리 흐름도
시퀀스 다이어그램은 입력 파일 접수부터 페이로드 추출, 정적/동적 분석, AI 분류 및 데이터 복구까지의 처리 흐름을 보여줍니다:```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
주요 소스 코드는 다음 위치에 있습니다: BHPAISandbox.cpp, BHPAIMonitor.cpp, SafeVirtualDesktop.cpp, SafeJobObject.cpp, IntelPTMonitor.cpp, FakeNetEngine.cpp.
BHPAISandboxDesktop): DESKTOP_CREATEWINDOW | DESKTOP_WRITEOBJECTS 플래그와 함께 CreateDesktopW로 초기화합니다. 악성코드의 모든 그래픽 창, Windows 메시지(WM_DROPFILES, WM_COPYDATA, UI 리디렉션)는 가상 데스크톱 내에 완전히 격리되어 사용자 화면(Default 데스크톱)과 분리됩니다.SafeJobObject):
JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE: Launcher 프로세스가 종료되면 악성코드의 전체 자식 프로세스 트리가 자동으로 종료됩니다.JOB_OBJECT_LIMIT_PROCESS_MEMORY: 시스템 리소스 고갈을 방지하기 위해 프로세스당 최대 RAM을 512MB로 제한합니다.JOB_OBJECT_LIMIT_ACTIVE_PROCESS: Fork-Bomb 공격을 방지하기 위해 동시 프로세스를 최대 32개로 제한합니다.JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION: Windows 오류 보고 충돌 대화 상자 창을 차단합니다.JOB_OBJECT_UILIMIT_HANDLES | JOB_OBJECT_UILIMIT_GLOBALATOMS: 전역 Handle 및 Atoms 간섭을 방지합니다.Launcher는 CreateProcessAsUserW를 호출하기 전에 CreateRestrictedToken을 통해 제한된 토큰을 생성합니다:
WinBuiltinAdministratorsSid, WinLocalSystemSid, WinLocalAdminSid.SeDebugPrivilege, SeTcbPrivilege, SeTakeOwnershipPrivilege, SeLoadDriverPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeShutdownPrivilege, SeImpersonatePrivilege.SECURITY_MANDATORY_LOW_RID 또는 SECURITY_MANDATORY_MEDIUM_RID 수준으로 낮춥니다.Ring-3 메모리 공간에서 악성코드가 모니터링 DLL을 탐지할 가능성을 최소화하기 위해:
BHPAIMonitor.dll DLL은 Process Environment Block (PEB) 내 3개의 이중 연결 목록에서 자신의 LDR_DATA_TABLE_ENTRY를 자동으로 제거합니다:
InLoadOrderModuleListInMemoryOrderModuleListInInitializationOrderModuleList
악성코드가 PEB->Ldr을 순회하거나 EnumProcessModules를 호출할 때 모니터링 모듈이 목록에 표시되지 않습니다.PAGE_READWRITE를 덮어쓰고 RAM 내 DLL의 IMAGE_DOS_HEADER, IMAGE_NT_HEADERS, IMAGE_SECTION_HEADER 영역 및 Debug Directory PDB Path 문자열을 제로 필(Zero-fill)하여 메모리 시그니처 스캔 기법을 차단합니다.SetKernelObjectSecurity를 설정하여, 무결성 수준이 낮은 프로세스로부터 , , 권한을 거부합니다.시스템은 MinHook Engine을 사용하여 ntdll.dll 및 kernelbase.dll의 저수준 Native NT API 함수에 직접 개입합니다:
모든 후킹 함수는 RAII HookGuard 클래스(thread_local bool in_hook)로 보호되어 무한 반복(Recursive Hook Loop Deadlock) 현상을 방지합니다.
악성코드가 정상적으로 상호작용할 수 있도록 허용하면서 실제 시스템을 안전하게 보호하기 위해:
GENERIC_READ 모드로 파일을 열면 시스템은 원본 파일에서 읽기를 허용합니다.GENERIC_WRITE 쓰기 또는 FILE_DELETE_ON_CLOSE 삭제 작업이 발생하면: 원본 파일이 즉시 가상화 임시 디렉터리 BHPAI_Sandbox_Overlay\Files\로 복사됩니다. 모든 데이터 변형 작업은 이 복사본에서 실행됩니다.file.txt:zone.identifier), Reparse Points 및 Symbolic Links.HKLM\Software\Microsoft\Windows\CurrentVersion\Run)가 임시 분기 HKCU\Software\BHPAI_Virtual_Registry\로 매핑됩니다.Microsoft Event Tracing for Windows (ETW) 하위 시스템을 사용하여 Kernel에서 이벤트를 캡처합니다:
Microsoft-Windows-Kernel-Process: 악성코드가 Direct Syscalls로 Userland Hooks를 우회하더라도 프로세스 생성 이벤트를 캡처합니다.Microsoft-Windows-Kernel-Network: 저수준 TCP/UDP 연결을 기록합니다.Microsoft-Windows-Kernel-Memory: 교차 프로세스 메모리 매핑(Cross-Process Memory Mapping) 작업을 추적합니다.독립적인 네트워크 시뮬레이션 엔진(FakeNetEngine.cpp)을 통합합니다:
127.0.0.1)를 반환합니다.IntelPTMonitor.cpp 하위 시스템은 Intel CPU의 하드웨어 추적 기능을 활용합니다:
__cpuidex(0x14, 0) 명령을 통해 호환성을 확인합니다.ProcessIntelProcessorTrace)를 통해 ToPA (Table of Physical Addresses)를 구성합니다.TNT (Taken/Not-Taken Branch), TIP (Target IP) 및 FUP (Function Pointer)를 수집하여, 소프트웨어에 의존하지 않고 ROP (Return-Oriented Programming) Chains를 탐지하고 실행 흐름을 해독할 수 있습니다.다층 보호로 설계되었지만, Ring-3 동적 분석 환경은 실제 전장에서 명확히 이해해야 할 자연스러운 기술적 경계가 존재합니다:
ntdll.dll 파일에서 Syscall 번호(SSN - System Service Number)를 직접 추출하고 자체 메모리에서 syscall / sysenter 바이너리 명령을 직접 실행하면, 실행 흐름은 ntdll.dll에 MinHook으로 설치된 함수를 거치지 않고 Kernel로 바로 진입합니다.주요 소스 코드는 다음 위치에 있습니다: 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 크기가 VirtualSize와 크게 불일치.IMAGE_SCN_MEM_WRITE | IMAGE_SCN_MEM_EXECUTE 속성을 동시에 보유 (W^X Violation).CS_OPT_DETAIL과 함께 cs_open(CS_ARCH_X86, CS_MODE_32 / CS_MODE_64) 초기화..text, .code) 내 전체 바이너리 명령 흐름 디코딩.mov -> push -> call -> test -> jz).IMAGE_IMPORT_DESCRIPTOR (IAT)를 추출하고 의심도가 높은 API 쌍을 분석:
VirtualAlloc $\rightarrow$ WriteProcessMemory $\rightarrow$ CreateRemoteThread.FindResource $\rightarrow$ LoadResource $\rightarrow$ LockResource $\rightarrow$ SizeofResource.CryptAcquireContext $\rightarrow$ CryptGenKey $\rightarrow$ CryptEncrypt.jmp, call, , , )으로 끝나는 Basic Blocks (기본 명령 블록)으로 분할.UPX0, UPX1, UPX2, ASPack, PECompact, Themida, VMProtect, .mpress.library\core\src\..., panicked at, alloc::raw_vec 무시).주요 소스 코드는 다음 위치에 있습니다: Analyzers/PDF/, FileRouter.hpp, UniversalDefanger.hpp, UniversalReportSchema.hpp, pdf_analyzer.exe.
시스템은 파일 확장자(.exe, .pdf)에 의존하지 않고 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) / / $\rightarrow$ 해당 분기Analyzers/PDF/)PDF 분석기는 순수 C++17로 완전히 작성되었으며, 바이너리 안전하고 거대한 외부 라이브러리에 의존하지 않습니다:
/FlateDecode (zlib inflate), /ASCIIHexDecode, /ASCII85Decode, /LZWDecode, /RunLengthDecode를 통한 다층 자동 압축 해제./OpenAction, /AA, /Names, /JavaScript, /JS, /Launch, /EmbeddedFiles, /RichMedia, /XFA.AnalysisNode Architecture)모든 임베디드 페이로드를 관리하는 계층적 재귀 트리 구조:``` [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 컨텍스트 위험 점수 엔진 및 자식 지배 규칙(Child Dominance Rule)
1. **Contextual Risk Scoring Engine**: 결합된 컨텍스트 가중치(Action Trigger $\times$ JavaScript Risk $\times$ Exploit Indicators)를 기반으로 점수를 산정합니다.
2. **Child Dominance Rule (자식 지배 규칙)**:
- 재귀 트리 내의 임의의 자식 노드(`Child Node`)가 **`MALICIOUS`**로 결론이 난 경우(예: 첨부된 PE 파일이 랜섬웨어 또는 트로이 목마인 경우):
- 부모 문서(Parent Document)의 결론이 **자동으로 `MALICIOUS`로 상향 조정됩니다**.
- 부모 노드의 위험 점수가 자동으로 설정됩니다:
$$\text{Score}_{\text{parent}} = \max(\text{Score}_{\text{parent}}, 85, \text{Score}_{\text{child}})$$
---
### 5.5 Anti-DoS 방어 및 압축 폭탄 보호(Decompression Bomb Protection)
시스템이 리소스 고갈 공격(Denial-of-Service)을 받지 않도록 보장하기 위해:
- **`ParserLimits` 구성**:
- 최대 입력 파일 크기 제한: **500 MB**.
- 최대 총 압축 해제 스트림 용량 제한: **250 MB**.
- 최대 압축 해제 비율(Max Compression Ratio): **100.0:1** (이 임계값을 초과하면 즉시 압축 해제를 중단하고 `DecompressionBombDetected`로 표시).
- 최대 객체 수 제한: **100,000 Objects**.
- 압축 해제 필터의 중첩 깊이 제한: **최대 6계층**.
- **`AnalysisBudget` 메커니즘**:
- 최대 타임아웃 시간이 설정된 카운트다운 타이머 설정: **30초/파일**.
- 시간 예산을 초과하면 애플리케이션을 중단시키지 않고 재귀 분석을 자동으로 취소.
---
### 5.6 증거 기반 MITRE ATT&CK 매핑 및 Universal IOC Defanger
1. **Evidence-Based MITRE ATT&CK Mapping**:
모든 MITRE ATT&CK 기법에는 구체적인 증거(Evidence String, Object ID, Byte Offset)가 함께 할당됩니다:
- `T1204.002` (Malicious File): Object 8을 가리키는 `/OpenAction` 발견.
- `T1059.007` (JavaScript): Object 14에서 메모리 익스플로잇 문자열 발견.
- `T1027.009` (Embedded Payloads): `/EmbeddedFiles`에서 실행 가능한 PE 바이너리 발견.
2. **Universal IOC Defanger (`UniversalDefanger.hpp`)**:
표시하거나 보고서를 내보내기 전에 침해 지표를 자동으로 무해화합니다:
- 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 Universal Schema 2.0 출력 보고서 표준화
모든 분석 모듈(PE, PDF, Dynamic Sandbox, WinRE)은 **Universal JSON Schema 2.0** 표준에 따라 일관된 데이터를 반환합니다:
- `metadata`: `sha256`, `md5`, `file_size`, `format`, `timestamp`.
- `threat_summary`: `score` (0-100), `verdict` (`CLEAN`, `SUSPICIOUS`, `MALICIOUS`), `confidence`.
- `analysis_tree`: 전체 페이로드의 계층적 재귀 트리 구조.
- `mitre_matrix`: 증거와 함께 제공되는 ATT&CK 전술 및 기법 목록.
- `extracted_iocs`: defanged 처리된 IP, URL, Domain, Hash 목록.
---
## 6. 상세 모듈 4: 3계층 데이터셋 및 False Positive 방지 AI PDF 파이프라인
주요 소스 코드는 다음 위치에 있습니다: [`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 3계층 데이터셋 구조 (`dataset/pdf/`)
사이버 보안 AI 모델에서 흔히 발생하는 오탐(False Positive) 문제를 근본적으로 해결하기 위해:
1. **`malware/`**: 실제 공격 환경에서 수집된 실제 악성코드 샘플(CVE Exploits, Droppers, Phishing Forms, Obfuscated JS를 포함한 PDF).
2. **`benign/`**: 표준 사무용 PDF 문서(서적, 재무 청구서, 학술 문서, 행정 증빙).
3. **`suspicious_benign/` (Hard Negatives - 오탐 억제 세트)**:
- 완전히 깨끗하지만 기술적 특징이 복잡한 PDF 문서: X.509 PKCS#7 디지털 서명이 있는 전자 청구서(`/Sig`, `/ByteRange`), 유효한 계산 JavaScript를 포함한 AcroForm 양식, 유효한 텍스트 파일이 첨부된 문서(`/EmbeddedFiles`), 소스 코드 조각과 난독화 문자열을 포함한 기술 문서.
---
### 6.2 Hard Negatives를 통한 "False Positive Machine" 추론 지름길 제거
- 일반적인 AI 모델은 `/JavaScript` 또는 `/EmbeddedFiles` 키워드를 보면 즉시 악성코드로 라벨링하는 경향이 있습니다(Heuristic Shortcut).
- `suspicious_benign` 그룹을 훈련 세트에 포함시키면 LightGBM 모델이 키워드 존재 여부에 기반한 단순한 오류 탐지 대신 더 깊은 상관관계(명령 스트림 엔트로피, 악성 API 이름, 압축 해제 깊이의 조합)를 학습하도록 강제합니다.
---
### 6.3 분할 전 다단계 중복 제거(Multi-Level Deduplication)
Train과 Test 세트 간의 데이터 누출(Data Leakage) 현상을 제거하기 위해:
1. **1단계 중복 제거(Exact Hash)**: SHA-256 / MD5 해시가 중복되는 파일을 제거합니다.
2. **2단계 중복 제거(Structural Fingerprinting)**:
- PDF 객체 트리 구조와 의미론적 콘텐츠의 구조적 해시 벡터를 계산합니다.
- 파생 변형(이름 변경, 메타데이터 변경에도 바이트-스트림 트리 구조가 동일한 변형)을 제거합니다.
---
### 6.4 데이터 누출 방지 독립 세트 분할 `StratifiedGroupKFold`
- `StratifiedGroupKFold` 알고리즘을 사용합니다(`n_splits=5`).
- 문서 패밀리 식별자(`Family Group ID`)로 그룹화하여, 동일한 구조적 출처를 가진 모든 파일이 하나의 세트(Train 또는 Test)에 완전히 포함되도록 보장하고, 암기 학습 및 허위 정확도 부풀리기 현상을 방지합니다.
---
### 6.5 57개 특징 벡터 및 확률 보정(`CalibratedClassifierCV`)
1. **57개 포괄적 특징 공간**:
- Header & Trailer 구조 그룹(12개 특징): `count_obj`, `count_stream`, `count_xref`, `count_trailer`, `has_eof`, `version_number`...
- 행위 트리거 그룹(15개 특징): `count_js`, `count_javascript`, `count_openaction`, `count_launch`, `count_embeddedfiles`, `count_richmedia`...
- 엔트로피 & 스트림 필터 그룹(18개 특징): `stream_entropy_mean`, `stream_entropy_max`, `flatedecode_depth`, `ratio_uncompressed`...
- 코드 익스플로잇 & 디지털 서명 그룹(12개 특징): `heap_spray_pattern_count`, `eval_count`, `has_signature`, `invalid_xref_count`...
2. **확률 보정(`CalibratedClassifierCV`)**:
- 독립 검증 세트에서 Isotonic Regression 및 Platt Sigmoid Scaling 보정을 사용하여 LightGBM 결정 트리의 출력을 실제 통계적 확률 $P(\text{Malicious} \mid X) \in [0.0, 1.0]$로 변환합니다.
---
### 6.6 검증 벤치마크 결과 및 오탐 저항 능력(Audit Report)
독립 테스트 세트(Test Set)에 대한 실험적 평가:
| 평가 지표 | V1.6 달성 값 | 기술적 평가 |
| :--- | :---: | :--- |
| **Accuracy (전체 정확도)** | **99.42%** | 3개 데이터셋 모두에서 균형 유지 |
| **Malware Recall (악성코드 탐지율)** | **99.15%** | 대부분의 CVE 익스플로잇 및 PDF Dropper 샘플 식별 |
| **`benign`에 대한 False Positive Rate** | **0.00%** | 표준 사무용 문서에서 오탐 미기록 |
| **`suspicious_benign`에 대한 False Positive Rate** | **0.21%** | 복잡한 디지털 청구서 및 JS 양식에서 효과적인 오탐 저항 |
| **Inference Latency (AI 추론 지연 시간)** | **1.85 ms / file** | 고속, 실시간 스캔 준비 완료 |
---
## 7. 상세 모듈 5: 머신러닝 & AI 앙상블 (PE & GNN & SHAP)
주요 소스 코드는 다음 위치에 있습니다: [`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 다차원 특징 공간 통합(Feature Vectorization)
실행 파일(PE)의 특징 공간을 통합하는 모델:
1. **정적 구조 벡터(Static Vector)**: 128차원 (Section Entropy, Header Anomalies, Resource Metrics, Import Table Distribution).
2. **Opcode 명령 스트림 벡터(Disassembly TF-IDF)**: Capstone Engine에서 추출한 512차원.
3. **API 호출 스트림 벡터(API N-Grams)**: 256차원.
4. **제어 흐름 그래프 벡터(CFG Structural Embeddings)**: 128차원.
---
### 7.2 PyTorch API Sequence Embedder & Control Flow Graph GNN
1. **PyTorch API Sequence Embedder**:
- 양방향 순환 신경망 Bi-LSTM + Multi-Head Self-Attention이 연속적인 API 함수 호출 시퀀스를 압축된 의미론적 벡터로 인코딩합니다.
2. **Control Flow Graph GNN (Graph Neural Network)**:
- **Graph Convolutional Network (GCN)** 또는 **Graph Attention Network (GAT)** 모델을 사용하여 CFG의 Basic Block 노드 간에 메시지 전달(Message Passing)을 수행하고, 레지스터 재할당(Register Renaming)과 무관하게 악성코드의 제어 구조를 추출합니다.
---
### 7.3 SHAP Feature Pruning을 통한 특징 최적화
- 게임 이론 **SHAP (SHapley Additive exPlanations)** 를 적용하여 모델의 결정을 설명합니다(Explainable AI - XAI).
- 각 특징의 기여도 지표(SHAP Value $\phi_i$)를 평가합니다. SHAP value가 0에 가까운 특징을 제거하여 계산 속도를 최적화하고 일반화 능력을 강화합니다.
---
### 7.4 LightGBM 앙상블 분류 모델(Adam, Eve, Marcus) & 동적 임계값
3개의 전문화된 모델을 결합한 앙상블 아키텍처:
1. **Model Adam (Static Specialist)**: PE 구조 특징, Opcode TF-IDF 및 Header Entropy 기반 분류 전문.
2. **Model Eve (Dynamic & Behavior Specialist)**: `BehaviorGraph` 행위 그래프, API Hooks 로그 및 Kernel ETW 기반 분류 전문.
3. **Model Marcus (Graph & Sequence Embedder)**: GNN 및 PyTorch API Sequence Embedder 출력 기반 분류 전문.
4. **Dynamic Thresholding Engine**:
- 가중치가 적용된 통합 위험 점수를 계산합니다:
$$\text{Score}_{\text{final}} = w_1 \cdot P_{\text{Adam}} + w_2 \cdot P_{\text{Eve}} + w_3 \cdot P_{\text{Marcus}}$$
- 3단계 분류: `CLEAN` ($\text{Score} < 40$), `SUSPICIOUS` ($40 \le \text{Score} < 75$), `MALICIOUS` ($\text{Score} \ge 75$).
---
### 7.5 AI 분류기 벤치마크 결과 & 실험적 평가
20,000개 PE 샘플(10,000 Clean + 10,000 Ransomware, Trojan, Worm, Backdoor 계열 Malware)로 구성된 독립 테스트 데이터셋에 대한 실험:
| 기준 | 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. 상세 모듈 6: BHR ENGINE (RANSOMWARE DETECTOR & KEY RECOVERY)
주요 소스 코드는 다음 위치에 있습니다: [`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 고엔트로피 암호화 탐지 알고리즘(Shannon Entropy Rate)
BHR Engine은 실시간으로 파일 데이터 쓰기 스트림을 모니터링합니다:
- `NtWriteFile` 함수가 $\ge 4 \text{ KB}$ 데이터 블록과 함께 호출될 때마다 시스템은 버퍼의 Shannon Entropy를 계산합니다.
- 쓰기 데이터의 Entropy가 임계값 **$\ge 7.5$** (압축 블록 또는 암호화된 ciphertext의 특징)를 초과하면 경고 카운터가 활성화됩니다.
---
### 8.2 Burst Modification Rate 모니터링 & Shadow Copy 삭제 행위
1. **Burst File Modification Rate**:
- 파일 변환 빈도를 추적합니다. 프로세스가 높은 엔트로피 데이터로 **초당 20개 이상의 파일**을 수정/덮어쓰기하면 해당 프로세스는 폭발적 랜섬웨어 행위로 식별됩니다.
2. **Shadow Copy 삭제 행위 탐지**:
- 백업 시스템을 파괴하는 명령을 실행하는 자식 프로세스를 모니터링합니다:
- `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 RAM & `pagefile.sys`에서 암호화 키 구조 추출(20+ Standards)
암호화 행위가 탐지되면 BHR Engine은 프로세스 메모리 스냅샷을 수행하고 **20개 이상의 현대 암호화 표준**에 해당하는 후보 암호화 키 구조를 스캔합니다:
1. **AES-128 / AES-256 Key Schedules**: AES S-Box / Rcon 알고리즘의 역계산을 통해 확장 키 스케줄(Expanded Key Schedule) 테이블을 스캔합니다.
2. **AES-GCM Authentication Subkey ($H$)**: 메모리 공간에서 특징적인 GHASH 해시 블록 $H = E_K(0^{128})$을 식별합니다.
3. **ChaCha20 / Salsa20 State Matrix**: 표준 16바이트 행렬 상수 문자열 `"expand 32-byte k"` (`0x61707865`, `0x3320646e`, `0x79622d32`, `0x6b206574`)과 Nonce 및 Block Counter 배열을 스캔합니다.
4. **RSA Private Key ASN.1 DER Header**: PKCS#1 DER 구조(`0x30, 0x82`와 Modulus $n$, Public Exponent $e$, Private Exponent $d$, Primes $p, q$ 시퀀스)를 식별합니다.
5. **X25519 / Curve25519 Scalar Clamping**: 비트 클램핑 조건(`k[0] &= 248; k[31] &= 127; k[31] |= 64;`)을 충족하는 32바이트 문자열을 스캔합니다.
---
### 8.4 COW Virtual Overlay 버퍼에서 데이터 복구(Win32/NT Scope)
표준 파일 API를 통한 랜섬웨어의 덮어쓰기 및 암호화 작업은 모두 가상 버퍼 `Overlay\Files\`로 리디렉션되므로, 이 라우팅 범위 내의 하드 디스크 상 사용자 원본 파일은 보존됩니다.
- `automated_overlay_restore.py`는 `Overlay\` 버퍼 내의 변조된 파일을 정리하여 ciphertext를 복호화하지 않고도 가상 변경 사항을 롤백할 수 있게 합니다.
---
### 8.5 Crypto Timeline 로그 & 데이터 변환 맵
`CryptoTimeline.cpp`와 `crypto_tracker.py`는 공격이 발생한 전체 타임라인을 기록합니다:
- 프로세스 시작 시점 및 첫 번째 파일의 Entropy가 증가한 시점.
- 변환 맵 목록: `원본 파일 경로` $\rightarrow$ `암호화된 파일 경로`.
- 타임라인별 암호화된 데이터 비율(Cryptographic Timeline Graph).
---
### 8.6 Dual-Engine Hybrid Ransomware Memory Key Extraction 실험적 검증
Dual-Engine Hybrid 암호화 메커니즘(LockBit 3.0 / BlackCat 유사)을 모방한 랜섬웨어 샘플을 대상으로 통제된 Lab 환경에서 테스트:
- 대칭 암호화: AES-256-GCM + ChaCha20.
- 비대칭 키 교환: X25519 Ephemeral Scalar + RSA PKCS#1 DER.
- Heap 노이즈 삽입: 15개의 무작위 엔트로피 메모리 영역 및 압축 블록.
테스트 샘플 시나리오(Synthetic Benchmark)에서 후보 키 구조 추출 결과:
1. **AES-256-GCM Master Key**: GHASH $H$ Subkey 일치, 신뢰도 **95.0%**.
2. **ChaCha20 State Matrix**: 행렬 상수 및 Nonce 식별, 신뢰도 **60.25%**.
3. **X25519 Ephemeral Key**: Clamping Pattern Mask 식별, 신뢰도 **57.0%**.
4. **RSA PKCS#1 DER Sequence Private Key**: ASN.1 DER 구조 식별, 신뢰도 **60.75%**.
> [!WARNING]
> **실제 환경에서의 기술적 한계 & 과제(Real-World Limitations)**:
> 1. **암호화 직후 Zeroization**: 실제 랜섬웨어 변종(Babuk, Conti, LockBit 등)은 암호화 세션이 완료된 직후 `SecureZeroMemory` 또는 `RtlZeroMemory`를 능동적으로 호출하여 대칭 키 배열을 완전히 삭제하는 경우가 많습니다. 추출 과정은 프로세스가 암호화 중이거나 zeroization 함수가 호출되기 전에 Memory Dump가 적시에 수행된 경우에만 실행 가능합니다.
> 2. **비대칭 C2 키 메커니즘**: 대부분의 현대 랜섬웨어는 대칭 세션 키(AES/ChaCha20)를 생성하고, 이 세션 키를 공격자의 Public Key(악성코드에 하드코딩됨)로 암호화한 후 C2로 Ciphertext를 전송하거나 암호화된 파일 끝에 기록합니다. Private Key는 피해자의 RAM에 존재하지 않습니다.
> 3. **`pagefile.sys` 내 단편화**: 디스크 상의 가상 메모리를 스캔하려면 키가 덮어쓰기(paging churn)되지 않고 여러 개의 불연속적인 4KB 페이지로 단편화되지 않아야 합니다. 따라서 RAM/Pagefile 스캔은 증거 조사를 위한 구조 솔루션(Best-Effort Forensic Triage)이며, 독립적인 데이터 백업 방안을 완전히 대체하지는 않습니다.
---
### 8.7 Recovery Engine Registry & Crypto Dataflow Tracker 아키텍처
- **Recovery Engine Registry** (`recovery/registry.py`): 복구 방법(`automated_overlay_restore.py`, `exact_lookup.py`)을 동적으로 관리하고 등록합니다. 최적의 복호화 방법을 순위화하는 `evaluate_all(sample)` 메커니즘을 제공합니다.
- **Crypto Dataflow Tracker** (`recovery/crypto_tracker.py`): 암호화 이벤트 스트림, 키 객체를 연결하고 실시간 I/O 이벤트 시퀀스를 기반으로 유효성을 검증합니다.
---
## 9. 상세 모듈 7: BEHAVIOR CORRELATOR & BEHAVIORGRAPH ENGINE V1.6
주요 소스 코드는 다음 위치에 있습니다: [`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 다중 소스 이벤트 표준화(Userland Hooks + Kernel ETW)
`EventNormalizer.cpp`는 MinHook Userland DLL 및 Kernel ETW로부터 수천 개의 개별 이벤트를 수신하여 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) 및 공격 체인 상태 머신V1.6 Enterprise 버전에서는 행위 상관기(correlator)에 BehaviorGraph Engine이 통합되었습니다:
ProcessNode)와 방향성 엣지(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 및 \??\C:\...)를 표준 Win32 형식(C:\...)으로 자동 양방향 정규화합니다.RegNotifyChangeKeyValue, NtNotifyChangeKey)를 추적합니다.NetworkSessionTracker)을 관리합니다.provider, algorithm, mode, keysize, ivlen, inputlen, outputlen, keygen, pid)를 기록합니다.V1.6 시스템에는 7차원 자동 테스트 스위트(tests/)가 통합되어 있습니다:
주요 소스 코드는 다음 위치에 있습니다: Core/vault/, gui_vault.py.
Vault V1.6 하위 시스템은 제로 지식(Zero-Knowledge) 원칙에 따라 높은 보안성을 갖춘 독립형 백업 솔루션을 제공합니다:
---
### 10.2 SRP-6a PAKE 영지식 인증 프로토콜 (RFC 5054)
비밀번호나 비밀번호 해시를 노출하지 않고 Vault를 인증하고 잠금 해제하기 위해:
1. **정보 초기화 (Registration / Setup)**: 클라이언트는 $x = H(s, P)$를 계산하고 Verifier $v = g^x \pmod N$를 생성하며, Salt $s$와 Verifier $v$만 저장합니다.
2. **인증 (Authentication)**: 공유 비밀 값 $S$를 기반으로 보안 자격 증명 교환 프로토콜을 수행하고 증명 값 $M_1, M_2$로 검증합니다. 비밀번호는 결코 평문 형태로 나타나지 않습니다.
---
### 10.3 즉시 비밀번호 변경 메커니즘 (Instant Re-Keying Mechanism)
BHPAI는 **$K_{ ext{vault}}$ Indirection** 아키텍처를 통해 수백 GB의 백업 데이터를 재암호화할 필요 없이 마스터 비밀번호 변경 문제를 해결합니다:
- 파일 데이터는 Vault 마스터 키 $K_{ ext{vault}}$로 암호화됩니다.
- 키 $K_{ ext{vault}}$는 다시 잠금 해제 키 $K_{ ext{unlock}}$(비밀번호에서 생성됨)로 보호됩니다.
- 비밀번호 변경 시: 이전 비밀번호로 $K_{ ext{vault}}$를 복호화한 후, 새로운 비밀번호로 $K_{ ext{vault}}$ 블록만 재암호화하면 됩니다. **전체 백업 데이터는 암호문 상태 그대로 유지됩니다.**
---
### 10.4 표준화된 AAD 인증 & 트래픽 분석 방지를 위한 Bucket Size Padding
1. **Binary Length-Prefixed Canonical AAD** (`Core/vault/integrity.py`): C++와 Python 간 호환되는 표준화된 형식의 추가 인증 데이터(Authenticated Additional Data)를 추가하여 서로 다른 파일 간의 암호문 교환 행위를 방지합니다.
2. **Application-Level Bucket Size Padding**: 파일에 고정 크기(64KB, 1MB, 10MB, 100MB)로 패딩을 추가하여 암호문 크기를 기반으로 파일 내용을 추측할 가능성을 최소화합니다.
---
### 10.5 로컬 암호화 블록 저장소 아키텍처 (Local Encrypted Block Store)
- 백업 데이터를 안전한 로컬 암호화 이진 블록으로 관리합니다.
- 보호된 암호화 콘텐츠 청크 해시(Encrypted Content Chunk Hash) 기반의 로컬 중복 제거(deduplication)를 지원합니다.
- 외장 드라이브, 보안 USB 또는 독립 복구 파티션에 저장하는 것과 높은 호환성을 가집니다.
---
## 11. 세부 하위 시스템 9: PYQT6 GLASSMORPHISM 데스크톱 인터페이스, HWID 라이선스 & CLI 도구
주요 소스 코드 위치: [`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 PyQt6 데스크톱 Glassmorphism 인터페이스 아키텍처 (멀티스레딩 QThread)
현장 조사 및 로컬 운영을 위한 전용 데스크톱 사용자 인터페이스:
- **UI를 차단하지 않는 매끄러운 설계 (Non-blocking GUI Responsiveness)**: 모든 무거운 연산 작업(Disassembly Capstone, Sandbox IPC, KDF Cryptography, PE/PDF 추출)은 GUI 스레드와 완전히 분리되어 **`QThread` Background Workers**를 통해 조정됩니다.
- **Dark Glassmorphism 디자인 스타일**: 현대적인 다크 톤, 정교한 라운드 코너 효과, 직관적인 제어 패널 및 실시간 상태 차트 시스템을 사용합니다.
---
### 11.2 데스크톱 GUI의 핵심 기능 탭
1. **Multi-Format Scanner Tab**:
- 모든 파일(PE, PDF, Office, Scripts)을 드래그 앤 드롭할 수 있습니다.
- 위협 점수(Threat Score), 재귀적 페이로드 분석 및 `AnalysisNode` 트리 시각화를 표시합니다.
2. **Dynamic Sandbox Monitor Tab**:
- 실시간 이벤트 로그, NT Native API 호출 흐름, 자식 프로세스 및 CPU/RAM/Disk IO 리소스 차트를 모니터링합니다.
3. **MITRE ATT&CK Matrix Tab**:
- 악성코드가 위반한 전술 및 기법 매트릭스를 직접 추출한 증거와 함께 시각화합니다.
4. **BHR & Recovery Center Tab**:
- 데이터 암호화 타임라인, 실시간 엔트로피 파라미터를 모니터링하고 신속한 롤백 복구를 수행합니다.
5. **Zero-Knowledge Encrypted Vault Tab**:
- 로컬 E2EE 암호화 백업 저장소 관리, vault 잠금/해제, 중요 폴더 백업 및 안전한 복구를 수행합니다.
---
### 11.3 하드웨어 잠금 라이선스 시스템 (HWID-Locked Licensing & Ed25519)
소프트웨어 무결성을 보호하는 오프라인 라이선스 관리 하위 시스템:
- **장치 키 (HWID Binding)**: 불변 하드웨어 정보(CPU ID, BIOS UUID, Disk Serial, MAC Address)를 수집하여 각 워크스테이션에 대한 고유 식별 HWID 문자열을 생성합니다.
- **Ed25519 디지털 서명**: Ed25519 공개 키 알고리즘을 사용하여 오프라인 인증서 파일 `license.dat`에 디지털 서명합니다.
- **오프라인 강제 적용 (Offline Enforcement)**: 모든 바이너리 도구(`BHPAISandbox.exe`, `pe_analyzer.exe`, `bhpai_rescue.exe`)는 자동으로 `license.dat`를 로드하고, Master Public Key로 서명을 검증하며, 네트워크 연결 없이 컴퓨터의 HWID와 일치 여부를 대조합니다.
---
### 11.4 독립형 Threat Intelligence 엔진 & Universal IOC Defanger
- 널리 알려진 악성코드 패밀리(LockBit, Conti, WannaCry, RedLine, Emotet, Babuk) 식별 지식 베이스와 행위 분류 규칙 세트가 내장되어 있습니다.
- 보고서 추출 과정에서 분석가를 보호하기 위해 악성 IOC 목록(IP, Domain, URL, Hashes)을 자동으로 추출하고 defang합니다.
---
### 11.5 다중 형식 보고서 시스템 Universal Schema 2.0 (JSON, Markdown, PDF)
- **JSON Schema 2.0**: 표준화된 기계 판독 가능 데이터 구조를 제공하여 다른 분석 시스템과 쉽게 통합할 수 있습니다.
- **Markdown Summary**: 시각적인 요약 보고서를 내보내 디지털 포렌식 엔지니어 간 신속한 공유를 지원합니다.
- **PDF 보고서**: 엔트로피 분포 차트와 페이로드 구조 트리를 포함한 전문적인 보고서를 자동으로 생성합니다.
---
## 12. 세부 하위 시스템 10: BHPAI RESCUE SUITE & WINRE 긴급 복구 부팅
주요 소스 코드 위치:
- C++ 복구 도구: [`Rescue/`](file:///c:/Users/Kryo/Documents/BHPAI/Rescue), [`bhpai_rescue.exe`](file:///c:/Users/Kryo/Documents/BHPAI/bhpai_rescue.exe).
- 배포 스크립트: [`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).
- 샘플 보고서: [`BHPAI_Rescue_Summary.md`](file:///c:/Users/Kryo/Documents/BHPAI/BHPAI_Rescue_Summary.md).
---
### 12.1 오프라인 복구 환경 Windows Recovery Environment (WinRE)
운영 체제가 랜섬웨어 공격으로 마비되거나, 화면 잠금(Screen Locker)이 걸리거나, 안전 모드가 비활성화되거나, 시스템 파일이 조작된 경우, 실행 중인 운영 체제에서 직접 분석하는 것은 악성코드 프로세스나 루트킷에 의해 방해받아 많은 위험이 따릅니다. **BHPAI Rescue Suite V2**는 오프라인 환경인 **Windows Recovery Environment (WinRE)** 또는 Windows PE에서 운영하여 이 문제를 해결합니다:
- **실행 중인 환경과의 분리**: 메인 Windows에서 활성화된 악성 프로세스나 커널 후킹의 영향을 받지 않습니다.
- **오프라인 레지스트리 로드 (Offline Hive Loading)**: 하드 디스크의 실제 레지스트리 구조 파일(`SYSTEM`, `SOFTWARE`, `NTUSER.DAT`)을 WinRE의 임시 하이브에 자동으로 마운트하여 대상 운영 체제를 부팅할 필요 없이 시스템 잠금을 수정하고 해제합니다.
- **Air-Gapped & 네트워크 독립**: 완전히 로컬에서 실행되며 네트워크 연결이 필요 없어 C2 봇넷이 데이터 파괴 신호를 보낼 위험을 줄입니다.
---
### 12.2 `bhpai_rescue.exe`의 7개 핵심 하위 시스템 아키텍처
[`Rescue/`](file:///c:/Users/Kryo/Documents/BHPAI/Rescue)의 소스 코드는 순수 C++17로 작성되었으며 OpenSSL 및 zlib와 정적 링크(static linking)로 컴파일됩니다:```
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 (OS 파티션 탐지):
FindFirstVolumeW, FindNextVolumeW).System32\ntoskrnl.exe, System32\config\SYSTEM, explorer.exe).OfflineRegistryManager (오프라인 레지스트리 관리):
RegLoadKeyW를 사용하여 하이브 파일을 임시 접두사에 로드합니다: HKEY_LOCAL_MACHINE\BHPAI_OFFLINE_SYSTEM, BHPAI_OFFLINE_SOFTWARE, BHPAI_OFFLINE_NTUSER.Select\Current 키를 통해 활성 ControlSet을 확인합니다 (예: ).안전을 보장하고 Windows 운영 체제 중단 위험을 방지하기 위해 RescueRemediator는 5단계 트랜잭션 프로세스를 적용합니다:```
[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)**: 전체 검사, 모든 악성 바이너리, 레지스트리 지속성 키 및 영향을 받은 파일 목록 작성.
2. **Phase 2 (Backup)**: Volume GUID 코드 및 Disk ID에 연결된 트랜잭션 디렉터리 `C:\BHPAI_Rescue_Backup\` 생성. 모든 하이브 파일(`SYSTEM.before`, `SOFTWARE.before`, `NTUSER.DAT.before`)을 백업하고 원본 파일 메타데이터(크기, 시간 속성, ACL descriptor)를 저장.
3. **Phase 3 (Modify)**: 각 동작을 트랜잭션 로그(`transaction.json`)에 기록하고, 악성 코드 파일을 격리 저장소로 이동하며 악성 레지스트리 값을 수정.
4. **Phase 4 (Verify)**: 디스크의 각 변경 사항을 재검증: 악성 파일이 원래 위치에 더 이상 존재하지 않는지 확인하고, 격리 저장소의 파일이 SHA-256 해시와 일치하는지, 레지스트리 하이브가 올바른 Windows 표준 바이너리를 가리키는지 확인.
5. **Phase 5 (Commit)**: 트랜잭션 상태를 `IN_PROGRESS`에서 `COMMITTED`로 변경. Phase 3 또는 Phase 4의任何 단계에서 문제가 발생하면 시스템이 자동으로 **LIFO Rollback**을 트리거하여 하이브 파일을 원상 복구하고 격리 저장소의 파일을 원래 위치로 반환.
---
### 12.4 장애 발생 시 자동 복구 메커니즘 (Crash State Recovery)
`bhpai_rescue.exe`가 수정을 수행하는 도중 컴퓨터의 전원이 갑자기 나가거나 의도치 않게 종료된 경우:
- 다음번 WinRE 부팅 시 `bhpai_rescue.exe`가 자동으로 `transaction.json`을 읽고 **CRASH STATE**(`IN_PROGRESS`) 상태를 감지.
- 프로그램이 `[CRITICAL WARNING] INCOMPLETE REMEDIATION DETECTED` 경고를 출력.
- 2단계 복구 옵션 제공:
- **Tier 1**: LIFO Rollback 로그 순서에 따라 역순 복구.
- **Tier 2 (Emergency Hive Restore)**: `*.before` 백업에서 모든 원본 레지스트리 하이브 파일을 강제 복구.
---
### 12.5 배포 시나리오 및 자동 WinRE 부팅
#### 1. 안전한 임베딩 스크립트 [`scripts/deploy_winre.ps1`](file:///c:/Users/Kryo/Documents/BHPAI/scripts/deploy_winre.ps1):
- **DISM 직접 호출**: `& dism.exe`를 실행하여 출력을 실시간으로 스트리밍하고 PowerShell 프로세스 중단 위험 최소화.
- **구성 상태 보존**: 원래 WinRE 상태(`reagentc /info`)를 기억. 처음에 Disabled였다면 완료 후 정확히 Disabled로 복원하고, 처음에 Enabled였다면 WinRE가 다시 활성화되도록 보장.
- **수정 전 백업**: 자동으로 `Winre.wim`을 `Winre.wim.BHPAI.backup`으로 복사.
- **적응형 Launcher**: 환경 변수 `%~d0` 및 `%SystemDrive%`를 사용하는 `Windows\System32\bhpai.cmd` 스크립트를 생성하여 WinPE가 할당한 드라이브 문자에 자동으로 적응.
- **자동 Rollback 메커니즘**: mount 중 발생하는 예외를 처리하고 자동으로 `/Discard`를 실행하여 백업에서 WIM 파일을 복구하고 임시 디렉터리를 정리.
#### 2. 구조 부팅 트리거 스크립트 [`scripts/trigger_rescue_reboot.ps1`](file:///c:/Users/Kryo/Documents/BHPAI/scripts/trigger_rescue_reboot.ps1):
- WinRE가 꺼진 상태인 경우 활성화.
- 표준 명령 `reagentc /boottore` 및 `bcdedit /set {current} recoveryenabled yes` 구성을 사용하여 다음 재부팅 시 컴퓨터가 WinRE로 부팅되도록 지정.
---
### 12.6 `bhpai_rescue.exe` 운영 가이드 및 명령줄 매개변수
컴퓨터가 Windows Recovery Environment로 부팅된 후:
1. 클릭 선택: **Troubleshoot (문제 해결)** $\rightarrow$ **Advanced options (고급 옵션)** $\rightarrow$ **Command Prompt (명령 프롬프트)**.
2. 명령줄 창에서 입력: ```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
#### 고급 명령줄 매개변수 (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
각 작업 세션이 완료된 후, 시스템은 대상 파티션의 루트 디렉터리에 2개의 디지털 포렌식 조사 보고서(DFIR Reports)를 출력합니다:
C:\BHPAI_Rescue_Report.json: 전체 SHA-256 해시, 키 목록, 레지스트리 동작 및 트랜잭션 메타데이터를 포함하는 JSON 형식의 상세 보고서.
C:\BHPAI_Rescue_Summary.md: 분석 전문가를 위한 종합 요약을 Markdown 형식으로 제시하는 요약 보고서 (참조 예시: BHPAI_Rescue_Summary.md).
bhpai_sourceopen - 25%)사이버 보안 연구 커뮤니티, 독립 테스트 및 기술 역량 시연을 위해, BHPAI 프로젝트는 bhpai_sourceopen 디렉터리에 저장된 Community Edition을 출시합니다. 이 패키지는 Open-Core 모델에 따라 설계되었습니다:
Core/scanner/: PE 구조 분석, Opcode/API N-Grams 특징 추출, CFG Cyclomatic Complexity 그래프, TF-IDF, YaraGen 규칙 자동 생성, AVX2 StringEx 최적화 문자열 처리를 위한 전체 C++ 소스 코드.
Core/Decompile/: Capstone Engine을 통한 x86/x64 바이너리 디스어셈블러 (Disassembler, PeParser).
Core/pack/: UPX 및 WWPack 인메모리 언패커.
fuzzy/: SSDEEP 바이너리 퍼지 해싱 알고리즘 (fuzzyhash.c/.h).
Analyzers/Common/: 3단계 파일 라우터 FileRouter, ParserLimits 제한, MITRE ATT&CK MitreMapper 매핑, IOC 무해화 IOCExtractor (Defanging).
Core/Train/ & model/: PE 특징 벡터 추출기 (feature_extractor.py) 및 분류 임계값 구성.
scan.py & app_scan.py: PE 전용 명령줄 스캐너 및 데스크톱 GUI.
[!IMPORTANT] 라이선스 및 독립성 보장:
- PDF 하위 시스템 100% 제외: PDF 하위 시스템은 완성 개발 과정에 있으므로, 전체 PDF 소스 코드는 비공개로 유지되며 이 오픈 소스 버전에 포함되지 않습니다.
- Dataset 100% 제외:
dataset/디렉터리(악성 코드 샘플 또는 사용자 문서 미포함)는 절대 공개하지 않습니다.- 독립 라이선스: Community license stub (
BhpaiLicense.hpp)이 함께 제공되어 사용자가 상업용 하드웨어 키 활성화 없이 바이너리 분석을 완전히 자유롭게 컴파일하고 실행할 수 있습니다.
BHPAI V1.6 Enterprise 프로젝트의 Master 기술 문서는 BHPAI Engineering Team에 의해 작성 및 표준화되었습니다. 모든 권리 보유.
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.
현대 사이버 보안 위협 환경에서 지능형 지속 위협(APT), 스파이웨어 및 랜섬웨어 캠페인은 기존 실행 파일 바이너리(.exe, .dll)를 훨씬 뛰어넘어 확장되었습니다:
/Launch 액션)를 통해 이루어지거나 문서 내부에 드로퍼 PE 실행 파일을 삽입하는 방식으로 이루어집니다.BHPAI 버전 V1.6 Enterprise는 통합 다중 형식 하이브리드 엔진을 통해 엔드투엔드 공격 체인 보호를 제공하는 다계층 사이버 방어 생태계입니다: 3단계 자동 형식 라우팅(PE, PDF, Office, Script), 재귀적 중첩 페이로드 분석, Ring-3 스텔스 동적 샌드박스 격리, 하드웨어 지원 Intel PT 모니터링 및 보정된 오탐 방지 AI 모델.
BHPAI V1.6은 라우팅 - 재귀적 해부 - 행동 상관 - 오프라인 복구의 아키텍처 원칙에 따라 운영됩니다:``` ┌───────────────────────────────────────────────┐ │ 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. **안전 우선 및 폭탄 방지**: 샌드박스는 전용 가상 데스크톱(`BHPAISandboxDesktop`) 내에서 실행을 제한하고, 엄격한 Windows Job Object 제한(512MB RAM 상한, CPU 선호도, 프로세스 분리 금지)을 적용하며, 제한된 토큰(Restricted Tokens)을 통해 높은 권한을 제거합니다. PDF 파서는 `AnalysisBudget`과 엄격한 `ParserLimits`로 보호되어 압축 폭탄(최대 압축 비율 100:1, 제한된 스트림 확장, 재귀 깊이 상한)을 방지합니다.
2. **은밀한 안티-회피 (최소 사용자 모드 흔적)**: Ring-3 모니터링 DLL은 자체 `LDR_DATA_TABLE_ENTRY`를 3개의 PEB 모듈 목록(`InLoadOrder`, `InMemoryOrder`, `InInitializationOrder`) 모두에서 사전에 연결 해제하고, RAM에서 PE 헤더와 PDB 디버그 경로를 삭제하며, Launcher 프로세스에 DACL 보호를 적용하여 탐지를 완화합니다.
3. **계층적 재귀 분석 트리 및 자식 우선 규칙**: `AnalysisNode` 트리는 모든 내장 페이로드를 재귀적으로 검사합니다. 중첩된 바이너리(자식 PE)가 악성으로 분류되면, 시스템은 **자식 우선 규칙(Child Dominance Rule)**을 발동하여 상위 문서의 판정을 최소 위협 점수 85/100으로 **악성(MALICIOUS)**으로 승격합니다.
4. **오탐 저항 AI**: 3계층 데이터셋 설계(`suspicious_benign`), 다단계 중복 제거(정확한 해시 + 구조적 지문), `StratifiedGroupKFold`를 통한 그룹 인식 교차 검증을 통해 허위 특징 단축을 완전히 근절합니다.
5. **데이터 보호 및 후보 키 복구**: BHR 엔진은 Win32/NT I/O 경계에서 고엔트로피 암호화 버스트를 탐지하고, 프로세스 RAM과 `pagefile.sys`에서 후보 암호화 키 구조(AES-GCM GHASH $H$, ChaCha20 상태, RSA DER, X25519)를 추출하며, COW 가상 오버레이 버퍼에서 수정된 파일을 롤백합니다.
---
### 1.3 V1.6 핵심 기술 하이라이트 및 사양 매트릭스
| 하위 시스템 및 기준 | V1.6 기술 사양 및 구현 스택 |
| :--- | :--- |
| **파일 라우팅 엔진** | 3단계: 매직 바이트(PE, PDF, PK, OLE2, ELF, Shebang) + 인메모리 컨테이너 검사(DOCX/XLSX/PPTX용 ZIP OOXML) + 스크립트 분류기(PS1, VBS, JS, BAT, HTA) |
| **네이티브 C++ PDF 분석기 V2.0** | C++17 바이너리 안전 파서, FlateDecode/ASCIIHex/LZW 인플레이트, 재귀 내장 페이로드(`MZ`), Javascript 난독화 해제 및 Acrobat API 분석기, 57개 벡터 특징 |
| **폭탄 방지 / DoS 방어** | `ParserLimits`: 최대 입력 500MB, 최대 추출 250MB, 최대 비율 100.0, 최대 객체 100K, 최대 필터 깊이 6, 분석 타임아웃 30초 |
| **샌드박스 환경** | Windows Job Object(RAM 512MB, CPU 선호도, 분리 금지, UILIMITs) + 제한된 토큰(관리자 SID 및 위험 권한 제거) + 전용 가상 데스크톱 |
| **파일 시스템 / 레지스트리 가상화** | 대체 데이터 스트림(ADS), 재분석 지점, 병합된 가상 레지스트리 뷰를 지원하는 2계층 Copy-On-Write(COW) 가상 오버레이 |
| **은밀한 모니터링 기법** | 3방향 PEB 모듈 연결 해제(`InLoadOrder`, `InMemoryOrder`, `InInitializationOrder`) + 인메모리 PE 헤더 스크러버 + PDB 삭제 + Launcher DACL 가드 |
| **후킹 및 행위 그래프** | MinHook 엔진 + RAII `HookGuard` + 교차 프로세스 `BehaviorGraph`(원격 스레드, 프로세스 할로잉, APC 큐 인젝션 추적) |
| **하드웨어 지원 Intel PT** | CPUID leaf 0x14를 통한 하드웨어 추적, Windows 커널 추적 `ProcessIntelProcessorTrace` Class 47, TNT/TIP/FUP 패킷 디코딩 |
| **정적 PE 디스어셈블리 엔진** | Capstone 디스어셈블러(x86/x64) + Opcode TF-IDF + API N-Grams + CFG 순환 복잡도 + YaraGen(Rust 노이즈 블랙리스트) + SSDEEP/TLSH |
| **머신 러닝 / AI 앙상블** | PyTorch 시퀀스 임베더 + CFG GNN + LightGBM 앙상블(Adam, Eve, Marcus) + SHAP 특징 정리 + PDF 캘리브레이션된 LGBM |
| **오탐 방지 훈련** | 3계층 데이터셋(`malware`, `benign`, `suspicious_benign`), 레벨-1(SHA256) 및 레벨-2(구조적 지문) 중복 제거, `StratifiedGroupKFold` |
| **랜섬웨어 탐지 (BHR)** | 실시간 섀넌 엔트로피 비율($\ge 7.5$) + 버스트 수정 비율($>20$ 파일/초) + 볼륨 섀도 복사본 삭제 명령 탐지기 |
| **키 추출 및 복구** | 20개 이상 표준(AES-GCM GHASH $H$, ChaCha20, RSA DER, X25519 클램핑)을 위한 RAM 및 `pagefile.sys` 추출기 + 자동 COW 오버레이 롤백 |
| **제로 지식 백업 볼트** | 클라이언트 측 E2EE(AES-256-GCM) + SRP-6a PAKE(RFC 5054) + 즉시 마스터 재키잉($K_{\text{vault}}$) + 정규 바이너리 AAD + 버킷 패딩 |
| **WinRE 비상 복구 제품군** | `bhpai_rescue.exe` C++17 독립 실행형, 7개 핵심 하위 시스템, 5단계 ACID 트랜잭션, 크래시 상태 복구, 자동 오프라인 레지스트리 하이브 로딩 |
| **데스크톱 GUI 및 라이선싱** | PyQt6 다크 글래스모피즘 GUI(QThread 워커) + Ed25519 HWID 하드웨어 잠금 라이선싱 엔진 |
---
## 2. 전체 아키텍처 다이어그램 및 실행 파이프라인
아래 시퀀스 다이어그램은 원시 파일 수집부터 정적/동적 트리아지, 재귀 분해, AI 추론, 오프라인 재해 복구까지의 엔드투엔드 실행 흐름을 보여줍니다:```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
핵심 소스 구현: BHPAISandbox.cpp, BHPAIMonitor.cpp, SafeVirtualDesktop.cpp, SafeJobObject.cpp, IntelPTMonitor.cpp, FakeNetEngine.cpp.
BHPAISandboxDesktop): 보안 플래그 DESKTOP_CREATEWINDOW | DESKTOP_WRITEOBJECTS와 함께 CreateDesktopW를 통해 초기화됩니다. 모든 그래픽 창, Windows 메시지(WM_DROPFILES, WM_COPYDATA, UI 후크), 키스트로크 로거는 대화형 사용자 세션(Default 데스크톱)으로부터 엄격히 격리됩니다.SafeJobObject):
JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE: 런처를 종료하면 전체 자식 프로세스 트리가 즉시 깔끔하게 종료되도록 보장합니다.JOB_OBJECT_LIMIT_PROCESS_MEMORY: 프로세스당 최대 커밋 충전량을 512MB로 제한하여 메모리 고갈 공격을 방지합니다.JOB_OBJECT_LIMIT_ACTIVE_PROCESS: 활성 프로세스를 32개로 제한하여 포크 폭탄 서비스 거부 시도를 차단합니다.JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION: Windows 오류 보고 충돌 대화 상자를 억제합니다.JOB_OBJECT_UILIMIT_HANDLES | JOB_OBJECT_UILIMIT_GLOBALATOMS: 무단 프로세스 간 핸들 공유 및 전역 atom 오염을 방지합니다.런처는 CreateProcessAsUserW를 실행하기 전에 CreateRestrictedToken을 통해 제한된 보안 토큰을 생성합니다:
WinBuiltinAdministratorsSid, WinLocalSystemSid, WinLocalAdminSid.SeDebugPrivilege, SeTcbPrivilege, SeTakeOwnershipPrivilege, SeLoadDriverPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeShutdownPrivilege, SeImpersonatePrivilege.SECURITY_MANDATORY_LOW_RID 또는 SECURITY_MANDATORY_MEDIUM_RID로 낮춥니다.사용자 모드에서 안티 분석 기법에 대한 모니터링 흔적을 최소화하기 위해:
BHPAIMonitor.dll은 프로세스 환경 블록(PEB) 내의 3개 이중 연결 모듈 목록 모두에서 자신의 LDR_DATA_TABLE_ENTRY를 자동으로 언링크합니다:
InLoadOrderModuleListInMemoryOrderModuleListInInitializationOrderModuleList
악성코드가 PEB->Ldr을 순회하거나 EnumProcessModules를 호출해도 모니터링 DLL의 흔적이 전혀 드러나지 않습니다.PAGE_READWRITE를 적용하고 자신의 IMAGE_DOS_HEADER, IMAGE_NT_HEADERS, IMAGE_SECTION_HEADER, 그리고 디버그 디렉터리 PDB 파일 경로 문자열을 0으로 덮어써 인메모리 시그니처 스캐너를 무력화합니다.SetKernelObjectSecurity를 통해 명시적 보안 디스크립터를 구성하여, 낮은 무결성 프로세스로부터 , , 을 차단합니다.모니터링 에이전트는 MinHook 엔진을 사용하여 ntdll.dll 및 kernelbase.dll의 저수준 네이티브 NT API를 후킹합니다:
모든 우회 경로는 RAII 기반 HookGuard(thread_local bool in_hook)로 보호되어 무한 재귀 재진입 교착 상태를 제거합니다.
악성코드가 방해 없이 실행되도록 허용하면서 기반 호스트를 보호하기 위해:
GENERIC_READ)는 원본 디스크 파일에서 직접 제공됩니다.GENERIC_WRITE) 또는 삭제(FILE_DELETE_ON_CLOSE)가 발생하면, 파일은 요청 시 BHPAI_Sandbox_Overlay\Files\로 복사됩니다. 이후의 모든 수정은 이 격리된 샌드박스 클론에서 작동합니다.file.txt:zone.identifier), 재분석 지점, 심볼릭 링크를 완전히 지원합니다.HKLM\Software\Microsoft\Windows\CurrentVersion\Run)은 HKCU\Software\BHPAI_Virtual_Registry\로 리다이렉션됩니다.Microsoft ETW(Event Tracing for Windows) 커널 세션을 활용합니다:
Microsoft-Windows-Kernel-Process: 악성코드가 직접 시스템 호출을 통해 사용자 영역 후크를 우회하더라도 프로세스 생성을 포착합니다.Microsoft-Windows-Kernel-Network: 원시 TCP/UDP 소켓 활동을 포착합니다.Microsoft-Windows-Kernel-Memory: 프로세스 간 가상 메모리 매핑을 탐지합니다.통합 네트워크 시뮬레이터(FakeNetEngine.cpp):
127.0.0.1)으로 해석합니다.IntelPTMonitor.cpp는 CPU 하드웨어 추적 프리미티브와 직접 인터페이스합니다:
__cpuidex(0x14, 0)을 통해 CPU 지원을 검증합니다.ProcessIntelProcessorTrace(클래스 47)를 통해 ToPA(Table of Physical Addresses)를 구성합니다.TNT(분기 수행/미수행 결정), TIP(대상 IP), FUP(함수 포인터)를 통해 소프트웨어 기반 바이너리 재작성 없이 ROP 체인과 제어 흐름 리다이렉션을 노출합니다.PROCESS_TERMINATEPROCESS_VM_WRITEPROCESS_SUSPEND_RESUME| API 그룹 | 후킹된 Native 함수 | 모니터링 및 리디렉션 목적 |
|---|
| Process / Thread | NtCreateProcessEx, NtCreateUserProcess, NtCreateThreadEx, NtQueueApcThread | 자식 프로세스 생성, Process Injection, APC Injection 탐지. |
| Virtual Memory | NtAllocateVirtualMemory, NtProtectVirtualMemory, NtWriteVirtualMemory | PAGE_EXECUTE_READWRITE 할당, Process Hollowing, Shellcode Injection 식별. |
| Filesystem I/O | NtCreateFile, NtOpenFile, NtWriteFile, NtSetInformationFile, NtDeleteFile | I/O 기록, COW Overlay 리디렉션, Shannon Entropy 측정. |
| Registry | NtCreateKey, NtOpenKey, NtSetValueKey, NtDeleteValueKey | 자동 시작 지속성(Persistence) 지점 모니터링 및 COW 리디렉션. |
| Anti-Analysis | NtQueryInformationProcess, NtSetInformationThread, NtDelayExecution | ProcessDebugPort 탐지 차단, ThreadHideFromDebugger, Sleep Evasion 가속화. |
retjejneMZ<html>[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).unescape(), String.fromCharCode(), eval(), Heap Spraying NOP Sled (%u9090%u9090), 및 Adobe Reader API 악용 (util.printf, collab.getIcon, spell.customDictionaryOpen)을 식별하고 해독합니다.| Tactic | Technique ID | 기법 이름 | 탐지 상태 |
|---|
| 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 | 🔴 Detected (Shadow Copy Deletion) |
| 테스트 | Test Script | 상태 | 실제 측정 결과 |
|---|
| 1. Stress & Reentrancy | tests/test_sandbox_stress.py | PASSED | 지속적인 프로세스 생성 및 I/O 부하에서 0 crash / 0 deadlock. |
| 2. API Coverage & Normalization | tests/test_sandbox_coverage.py | PASSED | 정규화되지 않은 \Device\ 경로 0건 누락. |
| 3. False-Positive Baseline | tests/test_sandbox_false_positive.py | PASSED | 정상 동작하며, 표준 Windows 도구에서 오탐이 발생하지 않음. |
| 4. BehaviorGraph Validation | tests/test_sandbox_behavior_graph.py | PASSED | 프로세스 그래프 및 TLS SNI/HTTP 네트워크 세션이 정확하게 동작. |
| 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 | Clean, Obfuscated JS, Embedded PE 등 모든 테스트를 통과. |
ControlSet001Shell 키 (explorer.exe에서 악성 파일로 수정됨) 및 Userinit.taskmgr.exe, cmd.exe, sethc.exe에 가짜 디버거를 할당하는 기법.Windows\System32\Tasks 내 XML 작업 파일을 직접 읽습니다.OfflineMalwareScanner (BHR 10-Pillar 스캔 및 평가):
AppData\Local\Temp, ProgramData, Users\Public, Windows\Temp)에서 추출된 PE 실행 파일 목록을 자동으로 로드합니다.MALICIOUS, SUSPICIOUS, CLEAN)을 내립니다.OfflineBlastRadius (다중 신호 피해 범위 평가):
Desktop, Documents, Downloads, Pictures, Videos)를 스캔하고 목록화합니다.README.txt, DECRYPT_FILES.html, HOW_TO_RESTORE.txt)을 자동으로 탐지하고 수집합니다.OfflineCryptoArtifactHunter (암호 키 사냥):
pagefile.sys, swapfile.sys 및 크래시 덤프 파일 (MEMORY.DMP)을 직접 읽습니다.RescueRemediator (복구 조정):
C:\BHPAI_Rescue_Quarantine\)로 격리하는 프로세스를 제어합니다.explorer.exe로 복원, IFEO hijacks 삭제, 백그라운드 작업 (Scheduled Tasks) 및 악성 서비스 비활성화.RescueTransactionJournal (ACID 트랜잭션 저널 & LIFO 롤백):
BehaviorGraph) 및 공격 체인 상태 머신CryptoOperation)PROCESS_TERMINATEPROCESS_VM_WRITEPROCESS_SUSPEND_RESUME| API 서브시스템 | 후킹된 네이티브 NT API | 모니터링 및 리다이렉션 목표 |
|---|
| 프로세스 / 스레드 | NtCreateProcessEx, NtCreateUserProcess, NtCreateThreadEx, NtQueueApcThread | 자식 프로세스 생성, 프로세스 인젝션, APC 인젝션 탐지. |
| 가상 메모리 | NtAllocateVirtualMemory, NtProtectVirtualMemory, NtWriteVirtualMemory | PAGE_EXECUTE_READWRITE 할당, 할로잉, 셸코드 포착. |
| 파일시스템 I/O | NtCreateFile, NtOpenFile, NtWriteFile, NtSetInformationFile, NtDeleteFile | I/O 로깅, COW 오버레이로 리다이렉션, 섀넌 엔트로피 평가. |
| 레지스트리 | NtCreateKey, NtOpenKey, NtSetValueKey, NtDeleteValueKey | 지속성 키 추적, 가상 레지스트리로 쓰기 리다이렉션. |
| 안티 분석 | NtQueryInformationProcess, NtSetInformationThread, NtDelayExecution | ProcessDebugPort 검사 무력화, 스레드 숨기기, 슬립 가속화. |