
Outlook 行事曆俾間諜程式當 C2:Project CAV3RN 點借 Graph API 藏指令
攻擊靠失守嘅雲端身份同 app 權限,企業 IT 要由 Graph 活動追查
行事曆點樣變成秘密收發站
iThome 報道,Kaspersky GReAT 發現 Project CAV3RN 一個叫 AzureCommunication.dll 嘅通訊模組。佢會用 Microsoft Graph 讀寫一個已失守嘅 Microsoft 365 信箱,將惡意程式指令、執行結果同在線狀態收埋喺 Outlook 行事曆事件。研究人員相信呢個模組用嚟取代舊有 HTTP/WebSocket 通訊元件,不過因為未搵到配套嘅新版 controller,呢點仍然係技術推斷。
模組會將事件集中放喺 2050 年 5 月 13 日同一個一小時時段,普通人日常睇日曆時自然好少會碌到咁遠。攻擊者用事件標題分辨指令、心跳同回傳結果,再將加密內容拆成文字附件。惡意程式讀完指令後會刪走事件;交功課時就建立新事件、加附件,再改標題。換句話講,網絡上見到嘅主要流量係正常 Microsoft 登入同 Graph API 請求,傳統靠陌生 C2 網域捉流量嘅規則容易走漏眼。
開 Outlook 唔會無端中招
研究冇指出 Outlook、行事曆或者 Microsoft Graph 存在已證實漏洞。呢套玩法要預先有 Entra tenant ID、app client ID、client secret、目標信箱同足夠嘅 Graph application permissions。Microsoft 官方權限表顯示,Calendars.ReadWrite application permission 可以喺冇用戶登入嘅情況下建立、讀取、修改同刪除行事曆事件,而且預設可觸及所有信箱,除非管理員另外限制 app 可存取嘅信箱範圍。
所以單靠偷到普通用戶密碼,未必足以砌出研究所見嘅通道;攻擊者仲要攞到可用嘅 app 身份同權限。Kaspersky 指樣本指向一間以色列律師行嘅失守 Microsoft 365 信箱,但公開報告未交代 app credential 同管理員授權最初點樣落入攻擊者手上。公司 IT 調查時要追返 app registration、service principal、credential 新增紀錄同 consent 歷史,唔好只係幫信箱改密碼就當完事。
非互動式登入要睇啱一欄
呢個模組用 client_credentials 流程換取 OAuth app token,過程冇人手輸入密碼或者撳 MFA。技術分類上,管理員應先查 service principal sign-ins,唔好只盯住一般互動式登入;Entra 入面嘅「non-interactive user sign-ins」主要記錄 app 或系統代用戶更新 token,概念相近,但唔等於今次所用嘅 app-only 身份。查錯一欄,好容易得到「冇異常登入」呢個假象。
Microsoft Graph activity logs 可以記低 App ID、Service Principal ID、User ID、來源 IP、權限範圍、HTTP 方法同 Request URI,亦可以同各類登入紀錄關聯。防守上可集中搵陌生 app 對 /users/.../calendarView、/events 同 /attachments 作密集 GET、POST、PATCH、DELETE,尤其係查詢 2050 年時段、反覆建立再刪除事件,或者喺冇正常商業用途嘅時間出現。單一 API 呼叫未必可疑,app 身份、目標信箱、時間範圍同操作節奏夾埋先有判斷力。
權限盤點要問清楚邊個批過
管理員可以喺 Entra ID 嘅 Enterprise apps 檢查每個 app 嘅 admin consent 同 user consent,優先翻查近期新增、名稱扮成 Microsoft 或內部工具、擁有 Calendars.ReadWrite 等高影響 Graph 權限,但又搵唔到業務負責人嘅 app。Microsoft 官方亦建議定期檢查 application permissions;如果確認係惡意 app,要撤銷授權、停用相關 service principal、輪換外洩 secret,再檢查同一身份有冇其他 Graph 權限。
行事曆本身亦有線索。Kaspersky 公開嘅事件標題格式包括 Event ID:、Boss update ID: 同 Boss Report ID:,附件名就見到 file0.txt 或 File0.txt。呢啲字串適合做追查起點,不過攻擊者改名亦唔難。較穩陣係睇行為,例如陌生 app 跨信箱讀寫、存取遙遠將來嘅固定時段、短時間內建立附件再刪除事件,或者 Graph 流量同平日用量差好遠。
DNS 後備通道亦留低痕跡
如果 Graph 登入或者 tenant 驗證失敗,模組會查詢攻擊者控制嘅 cloudlanecdn[.]com。Kaspersky 指,模組會將 DNS AAAA 回覆當成 16-byte 資料容器,逐段取回新 tenant ID、client ID、client secret 同信箱地址;更新本機 logAzure.txt 之後,就會再連接 Graph。呢段設計反映開發者預咗雲端 credential 會失效,所以準備咗遙距換設定嘅方法。
公開 IOC 包括 cloudlanecdn[.]com、clipeditskill[.]com、accesslinkssl[.]com、216[.]126[.]237[.]197、144[.]172[.]108[.]205,同三個樣本 hash:CAF021DDA726B8BA049C2AA395E505A1、C092B02FBC0FDF7EE9608DD016673806、29B2B8C5D99F05BFCDD0D8D976EB5678。IOC 會過期,較有用嘅做法係用佢哋回查 DNS、endpoint 同雲端紀錄,再將異常 Graph 行為寫成長期偵測規則。
歸因有線索,信心未算高
Check Point Research 認為相關 Cavern Manticore 活動同伊朗情報及安全部有關,又話攻擊目標主要係以色列 IT 服務商同政府機構。至於今次 Outlook 模組,Kaspersky 只以 低信心 評估 Project CAV3RN 同 OilRig 有關:佢哋見到濫用 Microsoft 服務、用附件交換指令、另設雲端 C2 修復方法等相似做法,但冇發現直接共用程式碼或者基建。
暫時亦冇證據顯示香港係攻擊目標,仲唔適合講成大規模 Outlook 危機。不過用 Microsoft 365 嘅企業可以借呢宗研究檢查一件實際問題:當合法雲端 API 俾失守身份調用,現有監察係咪睇得到 app-only 登入、Graph 請求同信箱操作。公司 IT 而家最值得做嘅,係盤點高權限 Graph app,同時確認相關日誌真係有收集同保留。
參考來源
- iThome — 網路間諜框架Project CAV3RN濫用Outlook行事曆,打造隱蔽C2通道 — original report
- Kaspersky Securelist:Project CAV3RN Outlook 及 DNS 通訊模組分析 — 主要技術來源,包含事件格式、Graph 操作、DNS 後備機制、歸因信心同公開 IOC。
- Microsoft Graph activity logs 官方說明 — 核對 Graph API 日誌可提供嘅 App ID、Request URI、權限同登入關聯資料。
- Microsoft Graph permissions reference — 核對 Calendars.ReadWrite application permission 嘅存取能力同管理員授權要求。
- Microsoft Entra:檢查 enterprise app 已獲授權權限 — 管理員檢查同撤銷 app consent、delegated permissions、application permissions 嘅官方指引。
- Microsoft Entra sign-in logs 官方說明 — 核對互動式、非互動式、service principal 同 managed identity 登入紀錄分類。
- Check Point Research:Cavern Manticore 模組化 C2 框架 — 補充相關框架演變、攻擊目標同伊朗背景,但同 Kaspersky 嘅低信心 OilRig 歸因分開處理。
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







