C2 是攻擊者在入侵後用來持續操控終端的通訊。本文講解它的原理,以及察覺與防範的方法(不涉及攻擊的製作方法與運用方式)。
在攻擊流程中的位置
C2 不是「入侵本身」,而是在其之後到來的。
這裡重要的是,②的外向通訊正是偵測與阻斷的機會。即便要 100% 防住入侵很難,也仍有在外向通訊的階段察覺並攔下的餘地。
C2、後門與殭屍網路的區別
這些用語容易混在一起。依角色區分如下。
| 用語 | 意思 | 與 C2 的關係 |
|---|---|---|
| C2(C&C) | 攻擊者與被入侵終端之間的遠端操控通道,以及下達命令的伺服器 | — |
| 後門 | 留在終端上、可以繞過正常認證的入口 | 常會與 C2 通訊以接收命令 |
| 殭屍網路(Botnet) | 一大群被劫持、同時接收同一個 C2 命令的終端 | C2 從一處操控大量終端 |
| RCE | 能從遠端執行任意程式碼的漏洞 | 取得 C2 之前那次入侵的手段之一 |
| 信標(Beacon) | 終端以固定間隔傳給 C2 的簡短訊息 | C2 仍在運作的跡象 |
為什麼它會混進正常的通訊裡
整理攻擊者手法的 MITRE ATT&CK,把 C2 列為獨立的階段(TA0011):攻擊者試圖與被入侵的系統通訊以操控它們。其中列出的典型手法,是利用 Web、DNS 等日常的通訊協定,混入既有的流量,以避開偵測與過濾。
所以光是封鎖特定的連接埠號碼並不夠。ATT&CK 列出的緩解措施是網路流量過濾與網路入侵防禦。實務上有兩個思路有效:
- 依目的地限制:用允許清單決定伺服器可以連往哪些目的地,其他的外向通訊一律封鎖
- 依形態察覺:不看內容,而看目的地、間隔、資料量,以及是哪個程式在通訊
如何察覺(偵測的線索)
| 線索 | 看什麼 |
|---|---|
| 信標(定期通訊) | 以固定間隔發往同一目的地的規律性外向通訊 |
| 陌生的目的地 | 可疑的網域/IP(與已知惡意目的地=IOC 比對) |
| 可疑的 DNS | 向陌生網域的查詢·異常增多的 DNS |
| 意料之外的路徑 | 在意料之外的連接埠/通訊協定上的外向通訊 |
如何防禦
從源頭上不讓其入侵(基本對策)
限制外向通訊(egress)
監控 DNS 與通訊紀錄
比對並攔截已知的惡意目的地
實際案例:外向通訊成為線索的時候
在本站報導的 Codecov 遭入侵事件(2021)中,在 CI 中執行的發布腳本遭到竄改,據報約有兩個月的時間,機密從客戶的 CI 環境被傳送到外部伺服器。由於被竄改的程式碼不是客戶自己的,即使審查自家程式碼也發現不了。
事後可以檢查的線索,是從 CI 連往陌生目的地的外向通訊。如果 CI 的外向通訊只限於必要的目的地、其他的都留下紀錄,就有機會封鎖這次傳送,或更早察覺。不論是 C2 還是資料竊取,入侵後的攻擊都必須與外部通訊才能達成目的。
如何在自己的環境中檢查
- 列出目前的外向連線:在 Windows 上,
Get-NetTCPConnection -State Established會顯示每個目的地及其OwningProcess(正在通訊的程式 ID),再用Get-Process -Id <ID>取得程式名稱。在 Linux 上,ss -tunp可以做到同樣的事 - 檢視雲端的外向規則:例如 AWS 的預設安全群組允許所有外向通訊。寫下你的伺服器真正需要連往的目的地(OS 更新、金流或郵件 API 等),並限制其餘的通訊
- 檢查 DNS 查詢紀錄:在路由器或 DNS 服務的紀錄中,找出以固定間隔重複查詢的陌生網域
- 依目的地彙總:把 Proxy 或防火牆的紀錄依目的地彙總,找出整天以相同間隔發出少量通訊的目的地。找到之後,確認該目的地的擁有者,判斷是否為正常的更新檢查
- 與公開的目的地比對:在你的紀錄中搜尋主管機關或廠商公布的 C2 目的地(IOC)
本站的視角:外向通訊也要保護,確認 C2「不存在」也是調查的一部分
C2 這一思路帶來的最大啟示是:防守不只是防止入侵。即便完全防止入侵很難,也仍留有限制外向通訊、察覺可疑回呼的餘地。本站在把「讓其無法入侵的設計(打修補程式·最小權限·MFA)」作為首選的同時,建議把出口控制與通訊監控作為最後一層防禦一併具備。此外,在懷疑發生入侵時的調查中,確認不存在常駐的 C2(後門或非法的定期通訊)也是重要的一環。要得出「實際危害有限」的結論,對外向通訊的確認不可或缺。
出處(一手資料)
- MITRE ATT&CK「Command and Control (TA0011)」— attack.mitre.org(C2 階段的定義)
- MITRE ATT&CK「Application Layer Protocol (T1071)」— attack.mitre.org(混入既有流量,以及流量過濾等緩解措施)
- AWS「Default security groups for your VPCs」— docs.aws.amazon.com(預設的外向規則)
- Codecov 的出處列在案例文章中
接下來閱讀
- 案例:Codecov 遭入侵事件(2021) / Capital One 外洩事件(2019)
- 術語:EDR 是什麼 / 後門是什麼(與 C2 通訊的立足點)/ RCE 是什麼 / IOC(入侵指標)是什麼 / IOA(攻擊指標)是什麼 / 勒索軟體是什麼 / 什麼是惡意軟體