Skip to main content

Command Palette

Search for a command to run...

HollowGraph: Tin tặc biến Microsoft 365 thành công cụ điều khiển mã độc

Updated
9 min readView as Markdown
HollowGraph: Tin tặc biến Microsoft 365 thành công cụ điều khiển mã độc

Tổng quan chiến dịch

Các chuyên gia bảo mật vừa công bố HollowGraph một loại malware .NET NativeAOT dùng calendar của mailbox Microsoft 365 bị chiếm quyền làm kênh C2 hai chiều. Toàn bộ tasking và exfiltration đi qua Graph API hợp lệ, nên với giám sát network truyền thống, nó trông y hệt traffic Microsoft 365 bình thường.

Malware chỉ hỗ trợ hai lệnh làgetsend — và không bao giờ liên hệ trực tiếp server của attacker. Operator cắm lệnh vào một sự kiện lịch ghi ngày 13/5/2050, nơi chủ mailbox không bao giờ cuộn tới; HollowGraph đọc lệnh từ đó, và khi exfiltrate, tạo sự kiện far-future tương tự để đính file đã mã hoá.

Hành động ưu tiên: hunt IOC theo pattern calendar event (ngày 2050-05-13) và audit OAuth app có quyền client-credential trên Graph Calendars.

Timeline sự kiện

Thời điểm Sự kiện
Đầu tháng 7/2026 Check Point công bố báo cáo Cavern Manticore, gán cho actor Iran-nexus
03/06/2026 Liên lạc victim–attacker sớm nhất được Group-IB ghi nhận
09/07/2026 Liên lạc gần nhất được ghi nhận trong cửa sổ phân tích
20/07/2026 Group-IB công bố báo cáo HollowGraph, link kỹ thuật tới Cavern

[NEEDS VERIFICATION: thời điểm initial compromise và thời điểm phát hiện ban đầu của Group-IB không được công bố trong cả hai nguồn]

Kill Chain / Attack Flow

ALT: Sơ đồ attack flow HollowGraph — từ execution, qua kênh Graph API (get/send) và kênh DNS tunneling refresh credential, tới exfiltration qua calendar event 2050

Initial Access [NEEDS VERIFICATION: cả Group-IB lẫn The Hacker News đều không mô tả vector xâm nhập ban đầu — không rõ malware được deploy lên 12 hệ thống bằng cách nào (phishing, exploit, supply chain...)]

Execution HollowGraph là một DLL .NET biên dịch NativeAOT. Loader gọi nó với một chuỗi lệnh có cấu trúc cố định: <command>_;;_<arg0>_,_<arg1>_,_<arg2> — thành phần ngoài phân tách bằng _;;_, tham số bên trong phân tách bằng _,_. Một task ID 7 ký tự được sinh từ tham số truyền vào để gắn nhãn cho mỗi phiên trao đổi C2.

Command and Control — kênh chính (Graph API) Calendar của mailbox bị chiếm đóng vai trò dead-drop hai chiều:

  • get: query endpoint calendarView, giới hạn khung giờ cố định 2050-05-13 22:00–23:00 UTC, filter theo subject chứa Event ID: <taskID>, tải attachment và giải mã bằng RSA private key nhúng sẵn trong config.

  • send: mã hoá file mục tiêu bằng RSA public key của C2, tạo một calendar event mới cùng khung giờ 2050, upload dữ liệu đã mã hoá dưới dạng một hoặc nhiều attachment File{n}.txt, sau đó đổi subject event sang định dạng Boss{..}ID{..} để operator nhận diện.

Credential Refresh — kênh phụ (DNS Tunneling) Song song, HollowGraph duy trì một kênh DNS riêng để làm mới bốn giá trị credential Entra ID (Azure AD): tenantId, clientId, clientSecret, và địa chỉ mailbox mục tiêu. Kênh này truy vấn domain cloudlanecdn[.]com bằng AAAA record (IPv6), không mã hoá.

Exfiltration & Staging Dữ liệu đánh cắp được mã hoá tại chỗ trước khi rời máy, đóng gói thành các chunk File{n}.txt, gắn vào calendar event 2050 — tận dụng chính hạ tầng lưu trữ của Microsoft 365 làm điểm staging trung gian thay vì server riêng.

Phân tích kỹ thuật chi tiết

Cơ chế mã hoá

Toàn bộ payload qua Graph API được bảo vệ bằng scheme hybrid: RSA-OAEP (SHA-256) wrap một khoá AES-256 sinh ngẫu nhiên, sau đó AES-256-GCM mã hoá dữ liệu thực. Điểm đáng chú ý: HollowGraph dùng hai cặp khoá RSA riêng biệt — một cho chiều nhận lệnh (get), một cho chiều xuất dữ liệu (send) — nên việc thu được khoá của chiều này không giúp giải mã được chiều kia.

ALT: Minh hoạ calendar event ngày 2050-05-13 dùng làm dead-drop C2 — subject "Event ID: <taskID>" cho lệnh get, subject "Boss{..}ID{..}" cho exfiltration send

Cấu trúc DNS tunneling

Kênh refresh credential dùng hai loại query phân biệt bằng subdomain marker:

LENGTH query:  {random}.{7charTaskID}.{fieldIndex}.p.cloudlanecdn[.]com
DATA   query:  {random}.{7charTaskID}.{fieldIndex}.{byteOffset}.q.cloudlanecdn[.]com

Query .p. ("prime") trả về 2 byte đầu của địa chỉ IPv6 mã hoá độ dài dữ liệu (big-endian uint16). Query .q. trả về toàn bộ 16 byte địa chỉ IPv6, trong đó 14 byte là payload thực dùng được. Implant ghép các chunk 14-byte này lại, decode UTF-8, rồi ghi giá trị credential mới vào file cấu hình trên đĩa logAzure.txt — một file được đặt tên có chủ đích để trông giống log file thông thường.

Liên kết với Cavern Framework

Group-IB xác định trùng khớp command syntax giữa HollowGraph và Cavern: cùng format <command>_;;_<arg0>_,_<arg1>_,_<arg2>. Đáng chú ý hơn, một trong các lệnh attacker gửi là chuỗi base64 MzU=, giải mã ra 003 — mã lệnh self-command "toggle debug logging" đã biết trong Cavern. Tasking từ C2 server cũng khớp cấu trúc JSON đặc trưng của Cavern, dạng {"cid": "<id>", "type": "self", "cmd": "003_;;__,_"}.

Về mặt tổ chức, Group-IB so sánh Cavern với một backdoor .NET từng gán cho Lyceum (đầu 2025) — cả hai đều dùng kiến trúc plugin-based, coi mọi lệnh không phải self-command là tên một plugin DLL cần load từ đĩa. Điểm khác biệt: Cavern hỗ trợ đa dạng runtime hơn (Pure .NET, Mixed-Mode C++/CLI, NativeAOT), trong khi backdoor Lyceum được ghi nhận thuần .NET.

IOC & Artifacts

# Network Indicators
cloudlanecdn[.]com

# File Hashes (SHA-256)
75e51774b8f79e5f256eaae639635f911b3e744d4774fd6068dd980255621509
f3f3006f8304788251b153d53b305322b8acab0c66ec816b8d9f101bcc851da3
b3d0f6e4e3be395fd7cf9e8101c89963d77216578cbb117a6ac9bc3564485eff

# Host-based Indicators
logAzure.txt                          # file config giả dạng log, chứa credential + RSA key
File{n}.txt                           # attachment chứa dữ liệu đã mã hoá trên calendar event
# Calendar Artifacts (Behavioral IOC)
Ngày event:        2050-05-13
Khung giờ (get):   22:00–23:00 UTC
Subject pattern:   "Event ID: <taskID>"       (tasking từ operator)
Subject pattern:   "Boss{..}ID{..}"           (exfiltration event, sau khi rename)
Subject ban đầu:   GUID ngẫu nhiên            (trước khi rename ở bước send)

Nguồn: Group-IB, "HOLLOWGRAPH: Turning Microsoft 365 Calendars into Covert Command-and-Control Channels", 20/7/2026.

MITRE ATT&CK Mapping

[NEEDS VERIFICATION: Group-IB không công bố MITRE ATT&CK mapping chính thức trong báo cáo. Bảng dưới đây là suy luận dựa trên hành vi kỹ thuật được mô tả, KHÔNG phải mapping từ vendor — cần review trước khi đưa vào SIEM/playbook chính thức]

Tactic Technique ID Technique Name
Command and Control T1102.002 Web Service: Bidirectional Communication
Command and Control T1071.001 Application Layer Protocol: Web Protocols
Command and Control T1071.004 Application Layer Protocol: DNS
Command and Control T1568 Dynamic Resolution
Defense Evasion T1036.005 Masquerading: Match Legitimate Name or Location (logAzure.txt)
Collection T1560.001 Archive Collected Data via Utility (mã hoá trước khi exfil)
Exfiltration T1567 Exfiltration Over Web Service
Credential Access T1552.001 Unsecured Credentials: Credentials In Files (config on-disk)

Nhận định

Kỹ thuật giấu C2 trong dịch vụ cloud đáng tin cậy không mới — đã có tiền lệ dùng Outlook draft folder, OneDrive, hay chính mailbox làm kênh truyền tải. Điều đáng chú ý ở HollowGraph là mức độ "vô hình" được đẩy thêm một bậc: thay vì chỉ ẩn trong traffic Graph API hợp lệ, nó còn chọn đúng vị trí trong dữ liệu — một sự kiện lịch ghi năm 2050 — nơi không công cụ review thủ công nào, kể cả chủ mailbox, có lý do để nhìn vào. Đây không phải lỗ hổng phần mềm Microsoft, không có patch để vá; vấn đề nằm ở giám sát hành vi ứng dụng trên identity đã được cấp quyền hợp lệ.

Với hai cặp khoá RSA tách biệt cho từng chiều giao tiếp và một kênh DNS tunneling riêng chỉ để refresh credential, HollowGraph thể hiện độ trưởng thành vận hành cao hơn phần lớn backdoor tận dụng cloud service từng được công khai. Việc chỉ 3/12 hệ thống nhiễm thực sự chủ động liên lạc trong cửa sổ quan sát cũng là một tín hiệu đáng chú ý — operator có vẻ chọn lọc mục tiêu để tương tác thay vì kích hoạt toàn bộ implant đã cài, một hành vi thường gặp ở các chiến dịch espionage kỷ luật cao hơn là hoạt động thương mại hoá.

Với tổ chức tại Việt Nam dùng Microsoft 365 — và con số này hiện chiếm phần lớn khối doanh nghiệp vừa và lớn — điểm cần lưu tâm không phải "có bị nhắm mục tiêu trực tiếp không" (chiến dịch này tập trung vào Israel), mà là khoảng trống giám sát mà kỹ thuật này phơi bày: phần lớn SOC hiện theo dõi đăng nhập bất thường, MFA fatigue, hay forwarding rule đáng ngờ trên mailbox, nhưng rất ít nơi audit hành vi "application tạo/sửa calendar event" như một attack surface độc lập. OAuth app với client-credential flow, một khi đã được cấp quyền Calendars.ReadWrite, có thể hoạt động hoàn toàn im lặng dưới góc nhìn giám sát truyền thống.

Khuyến nghị

  • Hunt IOC: domain cloudlanecdn[.]com, file logAzure.txt trên endpoint, hash SHA-256 đã công bố

  • Query Microsoft Graph / mailbox audit log tìm calendar event có ngày 2050-05-13, subject dạng Event ID: , Boss{..}ID{..}, hoặc GUID thuần, kèm attachment File{n}.txt

  • Rà soát danh sách OAuth app đang có quyền client-credential truy cập Calendars trên tenant

  • Bật alert cho mọi client secret mới được tạo trên app đăng ký trong Entra ID

  • Thiết lập rule phát hiện application (không phải user) tạo/sửa calendar event, upload attachment, hoặc đổi subject — đây là hành vi bất thường với phần lớn app hợp pháp

  • Giám sát DNS tìm truy vấn AAAA tần suất cao, subdomain dài/entropy cao hướng về một domain đơn lẻ

  • Áp dụng Conditional Access, xoay vòng credential định kỳ, và anomalous-token detection cho toàn bộ Entra ID/M365

  • Đưa Graph API application permission vào phạm vi review định kỳ như một access review thông thường, không chỉ review user permission

  • Cân nhắc route DNS outbound qua resolver kiểm soát được, bật DNS filtering/sinkhole cho hạ tầng độc hại đã biết

Tài liệu tham khảo

  1. Group-IB — "HOLLOWGRAPH: Turning Microsoft 365 Calendars into Covert Command-and-Control Channels": https://www.group-ib.com/blog/hollowgraph-microsoft-365/

  2. The Hacker News — "HollowGraph Malware Hides C2 and Stolen Files in Microsoft 365 Events Dated 2050": https://thehackernews.com/2026/07/hollowgraph-malware-hides-c2-and-stolen.html

  3. Check Point Research — "Cavern Manticore: Exposing Iran-linked Modular C2 Framework": https://research.checkpoint.com/2026/cavern-manticore-exposing-iran-linked-modular-c2-framework/

More from this blog

F

FPT IS Security

896 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.