建立防駭獨門法寶 – Detection Engineering
從偵測工程建立客製化防禦體系,使駭客無所遁形
Author
Security Research Director
Jacky Hsieh
偵測工程( Detection Engineering ) 是最近幾年在藍隊防守方中越來越夯的名詞,也是現代藍隊想要成功阻擋攻擊者入侵不可或缺的一項關鍵技術。而這項技術的起源 – 隨著攻擊入侵技術的持續進步,藍隊針對各式攻擊威脅的偵測手法亦須隨之日益精進,為了能有效率、有系統且持續性地精進藍隊的偵測手段,偵測工程這一技術自然而然的問世。其核心目標即是透過一套有效率、有系統的流程,建立一系列專注於惡意行為本身而非工具的規則,能夠快速針對不同攻擊手法與情景進行應變,在原有的資安架構上建立一套機制,使其發揮更大功用,以產生最大價值。
【為何需要偵測工程?】
在早期做防毒偵測繞過相關研究的時候,常見的方法是使用微軟預設防毒Defender與網路上幾個常見的免費版防毒軟體做為評比標的,檢驗能夠有效繞過多少個免費防毒以做為評估標準。最近幾年,隨著各式相關產品的出現,我們可以看到越來越多背景強大的攻擊者,套用相同的概念來進行攻擊程式、手法的開發。從一開始的反向利用VT (VirusTotal) 這個幾十家防毒廠商集合而成的防毒、情資平台,以零檢測出為目標做開發測試,等於將以往只用少數免費防毒做測試的概念,做更大規模的升級測試;且若能成功在VT上取得零檢測的成績,更可以讓一般使用者、資訊人員甚至資安人員降低戒心,增加攻擊成功的機率。
再到最近幾年,多家國外知名防毒、EDR大廠都有發現相似事件:駭客組織透過各種PoC測試、人頭掛牌公司、暗網交易,甚至是直接打下受害者公司後竊取相關權限,以成功取得各大EDR廠的Agent程式和相關維運後台權限,如SentinelOne研究團隊近期便有發表相關研究[1],其餘如PA等多家大廠也都曾發表類似案例分享。由此可以確定,背景強大的攻擊者是可以直接取得EDR等產品來做研究測試,精進他們的惡意程式與攻擊手法,確保於之後正式攻擊時,不會觸發任何的告警。在此等強大的攻擊者面前,藍隊人員如果仍單純依賴產品本身的預設規則保護,而沒有研發出一些自己獨有且駭客無法取得做測試的偵測機制,那即便安裝再多的資安產品,只怕在真正強大的駭客團體面前,也是形同虛設。因此,如何透過偵測工程建立一套縝密的偵測規則與機制,使得駭客組織的一舉一動無所遁形,便是成功阻擋下駭客攻擊中至關重要的一步。
【該如何做偵測工程?】
下圖便是一個常用的規則產出流程
但在這流程中,通常有幾個比較需要注意的點是:
- 1. 關鍵行為分析
根據設定的目標,詳盡地進行行為的觀察與分析,找出能夠作為偵測規則的關鍵特徵。這步可以說是整個流程中最吃重技術實力的階段之一,有可能需針對攻擊手法、漏洞成因、弱點利用方式…等進行詳盡研究分析,才能找出攻擊中的必要步驟,並根據該步驟所產生的行為進行偵測;又或是若要偵測某些惡意程式,那麼進行靜態、動態的逆向分析多半是無可避免的一步。 - 2. 攻擊測試
在一般藍隊中,這可能會是比較缺乏的一項能力,如何完整測試規則有效性會是個問題。透過BAS或弱掃工具、使用公開的PoC exploit代碼進行攻擊,或是復現曾發生過的資安事件,又或甚至進行滲透測試、紅隊演練都是可能的選項之一。端看管理負責人如何在完整測試與成本上取得良好平衡。 - 3. FPR、FNR的平衡
FPR (False Positive Rate)、FNR (False Negative Rate)可以想成俗話中「寧可錯殺不可放過」中的「錯殺」與「放過」。雖然理想上FPR、FNR同時越趨近於0越好,但實務上降低FNR(放過率)的代價往往便是FPR (錯殺率)會隨之往上飆升,反之亦然。而若告警無法及時處理完畢等同沒有觸發任何告警,故不能單純只強調降低FNR,亦須同時考慮單位能量,接受部分FNR而達到控制FP告警的量,使告警都能被及時處理完畢,才能算是一條有用的規則。
成功產出第一條規則後,接下來要做的便是找出更多的偵測點建立更多規則,逐漸完善整個偵測規則集。那麼要怎麼找出更多潛在的偵測點呢?雖然這會隨著各個單位及設定目標的不同而有很大的差異,但基本想法就是將整體設定的目標具象化為集合 T,每條規則能偵測的目標具象化形成 Ri,使 T與所有Ri聯集的差集個數,透過規則的增加,逐漸趨於0,意即:
較常見且適用於多數單位的想法,即是找一套例如:Mitre Att&ck的攻擊框架作為整體目標,將每一條規則所能偵測的Mitre攻擊手法做標注後,將規則集和該框架攻擊手法做對應比較,一步步將空缺的部分填上。但需注意多數攻擊手法可能都要數條規則才能較完整偵測,故還是需要檢查已被涵蓋的攻擊手法是否仍需補上其他規則使其更加完善。視各單位的資源、條件、人力,決定如何設定目標、補足規則、完善規則集,正是考驗相關團隊負責人經驗與智慧的時候。
【案例演練】
當每次新聞上報出大型資安事件後,多數人心中可能都會產生的疑問,「請問有沒有辦法阻擋xxx勒索團體/勒索病毒?」、「請問能不能新增規則去偵測xxx勒索團體/勒索病毒?」。讓我們用幾年前非常有名的勒索團體「REvil」為例並帶進去前面的流程,看看最後會產出什麼樣的結果。首先,第一步的設定目標很明確,就是「偵測REvil勒索軟體」,而嚴重等級自然也會是最高等級的「Critical」告警,到了最重要的第三步時,可以透過逆向分析、行為分析找到他們的勒索軟體會新增以下機碼的這個關鍵特徵。
針對這個機碼的創立建立偵測規則,可以做到非常低的FPR、FNR,乍看之下十分完美。但相信稍作思考後便會發現,畢竟勒索團體、軟體百百種,只針對某駭客團體作為偵測目標產出規則似乎不太有意義,且此偵測特徵也很容易遭修改後而失效,因此這並不是一個好用的規則,頂多作為臨時一、兩個月該駭客團體最為活躍時使用的暫時規則而已。更好的修正目標應該會是「偵測勒索軟體」;而在找尋關鍵特徵時,相較於分析呼叫了哪些加解密相關API調用、數學運算指令次數或是特定團體的特徵…等等,將關鍵特徵專注於勒索軟體「宏觀」的行為會相對更合適 – 短時間內大量檔案開啟、修改、刪除、重新命名等,而這也是現在許多資安產品偵測勒索軟體的方法 – 一定時間內超過某數量的檔案操作異動,輔以一些其他條件(如:觸碰到誘餌檔案)來作為規則進行偵測,雖然此規則免不了有一定程度的FPR和FNR,但整體而言還算是個堪用的偵測規則。
由以上兩個實際案例對比可以發現,在建立規則時我們必須要注意幾個事項:
- 設定大小適中的目標
- 降低規則集維護管理所需的人力成本 (規則淘汰、更新修正、效益監控…等)
- 找尋適當的關鍵行為做偵測
- 適當的接受FNR:
以防止過多的單一針對、過度擬合(overfitting)之情況出現,避免規則容易遭繞過。利用規則集內的各個規則間可涵蓋之面向、範圍的不同,以達到互助互補的功能,即便某一條規則被繞過,也能透過其他條規則追查出駭客蹤跡。
- 控制FP告警數量:
避免產生太多FP 告警,導致平白消耗團隊能量而淹沒於告警海當中。
【結語】
隨著攻擊手法的進化,想要成功阻擋紅隊、駭客的攻擊,藍隊已經免不了透過偵測工程自製獨門規則集來當作偵測、阻擋駭客的壓箱寶。建立一套經得起實戰檢驗,由駭客攻擊階段初期(尋找入侵點、置入惡意程式…等等)、攻擊階段中期(探勘、常駐…等等)、最終造成勒索加密階段,每個攻擊階段都能有效偵測而不被繞過的規則集,顯然已成為評鑑藍隊能力的一項重要指標。
何為不同攻擊階段的偵測?為何需要每個攻擊階段都能偵測?可參考本公司前篇文章 – CrazyHunter 實戰錄
當然,有好工具協助有效率的建立規則,但也需能夠善用工具的人來使用,才能發揮其最大效益。畢竟從最開始的目標設定,到關鍵行為分析,再到配合單位的環境、擁有的資料資源做調整等,加上一個完整的偵測規則集,動輒數百條以上的規則需要管理維護,更是考驗著整個團隊從領導負責人、至每個研究團隊成員的硬實力。因此若是不知從何做起,那便先從嘗試建立第一條規則開始吧,之後透過大量的實戰檢測累積經驗與實力,優化精進偵測規則,逐步建立起讓駭客無所遁形的偵測規則集!
[1] https://www.sentinelone.com/labs/top-tier-target-what-it-takes-to-defend-a-cybersecurity-company-from-todays-adversaries/
-
客戶案例
- 建立防駭獨門法寶 – Detection Engineering
- CrazyHunter 實戰錄
- 淺談濫用微軟服務的APT攻擊手法
- 中芯數據觀察到GIS系統已成特定組織鎖定的攻擊目標
- 資安人觀點:交通部聯手中芯數據,打造資安防護網
- 零日漏洞不斷爆發,難道只要更新就會安全?
- 中芯數據精準防禦APT攻擊、由供應鏈展開的內網入侵
- 中芯數據發現APT41駭客春節期間出手蓄謀已久的新一波攻擊
- 中秋、雙十連假期間多家單位遭受攻擊,來源皆鎖定大型服務供應商,中芯數據全年無休進行阻擋供應鏈攻擊
- 中芯數據零誤判完全防守微軟Exchange零日漏洞攻擊
- 多家醫療單位遭受攻擊 中芯數據以獨家IIH技術全面防守
- 供應鏈攻擊鎖定大型服務供應商 中芯數據第一時間即時阻斷
- 嘉義市政府打造縱深防禦架構 強化端點防護能力對抗惡意威脅
- 三軍總醫院藉助中芯數據,精準挖掘難 被察覺的威脅
- 交通部連續兩年引進中芯數據服務 為全力保護國家資料安全
- 料敵機先!嘉義縣財政稅務局 部署中芯數據 IPaaS,不讓駭客染指民眾財產資料
- 高雄市政府全力防堵 APT 運用中芯數據意圖威脅即時鑑識服務 , 強化整體防護力