
摘要
本研究報告對與進階threat actor組織相關的三種複雜遠端存取木馬(Remote Access Trojans, RATs)進行全面的技術分析。這些惡意軟體樣本展示了進階的規避技術、模組化架構和複雜的命令與控制機制。本分析專注於這些惡意工具的技術特性、實作細節和操作能力,為網路安全中的防禦對策和未來研究方向提供見解。

1 簡介
進階threat actor不斷演進的惡意軟體武器庫,對網路安全專業人員構成重大挑戰。本報告審視了三個不同的RAT家族,它們擁有共同的設計理念和實作模式,這表明其是由同一個技術團隊或組織開發。每個RAT都展現出獨特的特性,同時保有隱匿運作、資料外傳和持續存取的核心功能。
這些惡意軟體家族因其進階的規避能力、模組化架構和穩健的命令與控制(C2)基礎設施,對企業網路構成嚴重威脅。技術分析揭示了複雜的反分析技術,包括環境感知、程式碼混淆和濫用合法憑證。本研究的目的是提供詳細的技術見解,以用於防禦策略和偵測機制。
2 RAT #1 技術分析:基於Delphi的載入器
2.1 架構概覽
第一個RAT使用基於Delphi的載入器元件,採用複雜的技術來規避偵測與分析。該惡意軟體在部署其最終payload之前,會執行一個帶有環境檢查的多階段載入程序。
Loader] --> B{Environment
Checks} B --> C{Checks
Pass?} C -->|No| D[Exit] C -->|Yes| E[Decrypt
Payload] E --> F[Inject
into
Process] F --> G[Execute
Core
RAT] G --> H[C2
Communication]
該載入器整合了多種反分析技術,包括針對虛擬化/沙箱Artifact的環境感知檢查、利用加密字串和API呼叫進行程式碼混淆,以及針對合法程序的 process hollowing 以進行注入。
2.2 程式碼分析
Delphi程式碼展示了複雜的程式設計模式和加密的設定資料。加密routine使用XOR cipher,其key源自環境因素,使得在沒有適當環境下進行靜態分析變得困難。
- // Example of encrypted string reconstruction (pseudo-code)
- function DecryptString(encryptedData: array of Byte): String;
- var
- i: Integer;
- key: Byte;
- begin
- key := GetKeyFromEnvironment;
- SetLength(Result, Length(encryptedData));
- for i := 0 to High(encryptedData) do
- Result[i+1] := Chr(encryptedData[i] xor key);
- end;
- // Configuration data storage
- const
- ENCRYPTED_CONFIG: array [0..47] of Byte = (
- $12, $45, $78, $AB, $CD, $EF, $34, $56,
- $78, $9A, $BC, $DE, $F0, $12, $34, $56,
- $78, $9A, $BC, $DE, $F0, $12, $34, $56,
- $78, $9A, $BC, $DE, $F0, $12, $34, $56,
- $78, $9A, $BC, $DE, $F0, $12, $34, $56,
- $78, $9A, $BC, $DE, $F0, $12, $34, $56
- );
此惡意軟體採用多層次的執行方法,每個階段負責解密和載入下一個元件。此設計限制了惡意軟體完整功能對分析工具和研究人員的曝光。
3 RAT #2 技術分析:基於Windows服務的持久性
3.1 架構設計
第二個RAT採用Windows服務來實現持久性,並具備複雜的程序間通訊機制。該惡意軟體在服務和使用者模式元件之間建立了一個隱蔽通道,使其在規避安全工具偵測的同時保持持久性。
這種基於服務的架構提供了多個優點,包括跨重新開機的持久性、在使用者空間運作時的系統層級存取,以及透過與合法系統服務融合來實現隱匿。
3.2 服務實作分析
該惡意軟體建立了一個具有欺騙性屬性的服務,模仿合法的Windows服務。該服務整合了進階功能,例如用於保留運作狀態的優雅關機Handle、僅供惡意軟體操作者存取的隱藏功能自訂控制碼,以及透過模仿標準服務行為來實現的合法外觀。
- // Service configuration structure (reconstructed)
- typedef struct _SERVICE_CONFIG {
- DWORD dwServiceType;
- DWORD dwStartType;
- DWORD dwErrorControl;
- CHAR lpBinaryPathName[MAX_PATH];
- CHAR lpServiceStartName[MAX_PATH];
- CHAR lpDisplayName[MAX_PATH];
- CHAR lpDescription[MAX_PATH];
- DWORD dwPersistenceFlags;
- BYTE encryptedC2Config[64];
- DWORD dwCheckInInterval;
- DWORD dwFailedCheckInThreshold;
- } SERVICE_CONFIG, *PSERVICE_CONFIG;
- // Service control handler with malicious functionality
- DWORD WINAPI ServiceCtrlHandler(DWORD dwControl, DWORD dwEventType, LPVOID lpEventData, LPVOID lpContext)
- {
- PMALWARE_SERVICE_CONTEXT pContext = (PMALWARE_SERVICE_CONTEXT)lpContext;
- switch (dwControl) {
- case SERVICE_CONTROL_STOP:
- // Perform cleanup and prepare for restart
- LogEvent("Service stopping", EVENTLOG_INFORMATION_TYPE);
- ScheduleRestart();
- break;
- case SERVICE_CONTROL_PAUSE:
- // Temporarily suspend malicious activities
- SuspendOperations();
- break;
- case SERVICE_CONTROL_CONTINUE:
- // Resume operations after pause
- ResumeOperations();
- break;
- case SERVICE_CONTROL_INTERROGATE:
- // Respond to status queries
- break;
- default:
- // Custom control codes for malware functionality
- if (dwControl >= 128 && dwControl <= 255) {
- HandleCustomCommand(dwControl, pContext);
- }
- break;
- }
- return NO_ERROR;
- }
4 RAT #3 技術分析:複雜的C2通訊
4.1 通訊協定架構
第三個RAT展示了特別進階的C2通訊能力,使用多層加密和協定模仿來規避網路偵測。該惡意軟體在標準HTTP/HTTPS通道上實作了一個客製化協定,同時整合了與合法流量融合的技術。
該通訊協定實作了多種安全規避技術,包括模仿協定以與合法網路流量融合、使用不同演算法的多層加密,以及流量整形以控制時間和大小模式以避免偵測。
4.2 加密方案分析
該惡意軟體採用複雜的多階段加密方法,展示了對密碼學原理和規避技術的進階理解。
- // Encryption process pseudo-code
- void EncryptPayload(PVOID pPayload, DWORD dwPayloadSize, PCSTR pszKey)
- {
- // Stage 1: XOR encryption with key derivation
- XORCrypt(pPayload, dwPayloadSize, DeriveKey(pszKey, 32));
- // Stage 2: Custom block cipher
- BlockCipherEncrypt(pPayload, dwPayloadSize, DeriveKey(pszKey, 64));
- // Stage 3: Base64 encoding with custom alphabet
- CustomBase64Encode(pPayload, dwPayloadSize);
- // Stage 4: Additional obfuscation
- AddObfuscationLayer(pPayload, dwPayloadSize);
- }
- // Key derivation function using environmental factors
- BOOL DeriveKey(PCSTR pszInputKey, DWORD dwKeySize, PBYTE pbOutputKey)
- {
- // Combine input key with system-specific data
- BYTE systemData[64];
- GetSystemUniqueData(systemData);
- // Cryptographic mixing using HMAC-SHA256
- CHMAC_SHA256 hmac;
- hmac.Init();
- hmac.Update((BYTE*)pszInputKey, strlen(pszInputKey));
- hmac.Update(systemData, sizeof(systemData));
- hmac.Final();
- // Expand or contract to desired key size
- return KeyDerivationFunction(hmac.GetHash(), SHA256_DIGEST_SIZE,
- pbOutputKey, dwKeySize);
- }
5 比較分析
5.1 RATs間的技術相似性
儘管功能上有所不同,這三種RATs共享顯著的技術相似性,包括用於功能擴展的帶有外掛程式系統的模組化架構、用於偵測debugger和虛擬環境的常見方法、用於在規避偵測的同時保持存取的類似策略,以及在協定設計和加密方法上的共享模式。
5.2 演進模式
技術實作顯示出從早期工具到更進階的明確演進,其隱匿能力透過更複雜的環境感知得到提升、持久性透過多重回退機制來維持存取、使用進階加密技術來保護通訊,以及透過減少鑑識Artifact和偵測面來實現更好的操作安全性。
特性 | RAT #1 | RAT #2 | RAT #3 |
---|---|---|---|
持久性機制 | Process injection | Windows service | 多種方法 |
加密方案 | 帶有環境key的XOR | 分層加密 | 多階段客製化加密 |
C2通訊 | 基本HTTPS | 基於HTTP的客製化協定 | 進階協定模仿 |
反分析技術 | 環境檢查 | Service偽裝 | 流量整形 |
6 防禦建議
基於對這些RATs的技術分析,建議採取以下防禦措施:
1. 行為偵測 :實作對這些RATs所採用的process hollowing和基於服務的持久性技術進行監控。
2. 網路流量分析 :部署能夠偵測加密通訊中異常模式的解決方案,即使是使用標準協定也一樣。
3. 憑證驗證 :監控異常的憑證使用或偽造嘗試,這可能表示惡意軟體通訊。
4. 記憶體分析 :定期進行記憶體鑑識,以識別可能規避基於硬碟偵測的惡意程式碼注入。
5. 應用程式白名單 :只限制授權應用程式的執行,以防止未經授權的程式碼執行。
7 結論
本報告分析的三種RATs展示了惡意軟體開發中顯著的技術複雜性和演進。它們的模組化架構、進階規避技術和穩健的通訊協定對組織安全構成嚴重威脅。
技術分析揭示了持續專注於隱匿、持久性和操作安全。防禦者必須實施多層次的安全控制,並側重於行為分析而非基於簽章的偵測,才能有效反制這些威脅。
未來的研究應專注於自動化分析技術,以更有效地分解類似的惡意軟體家族,並開發專門的偵測機制來應對這些RATs所採用的特定反分析方法。