近幾年來,透過端點偵測與回應系統(EDR)來追蹤電腦上一舉一動,藉此找出防毒軟體無法識別的攻擊事件,許多資安廠商爭相推出相關的解決方案,供企業採用。

業者往往會標榜在EDR系統中,代理程式(Agent)會將電腦所有行為記錄下來,以供後續分析,找出防毒軟體無法識別的潛在威脅。然而,今年臺灣駭客年會社群場(HITCON Community)上,於8月23日舉行的第1天議程裡,奧義智慧研究員姜尚德(JohnThunder)打破我們上述的認知,解析了EDR系統運作的原理和規則,並指出攻擊者如何規避有關的偵測機制。

姜尚德說,要形容EDR系統的用途,就好比我們現實生活中隨處可見的監視器,會錄下電腦上的存取行為,再將相關資訊傳送到後端的管理平臺,進一步分析出其中可能是攻擊的徵兆。雖然EDR代理程式留存大量事件記錄,但攻擊者卻能夠避免觸發警示規則,甚至將其關閉,而讓EDR系統無法提醒受害單位的管理者,來及時因應攻擊事件。

端點偵測與回應系統如何執行記錄的工作呢?姜尚德以時下常見無檔案攻擊裡,經常會被濫用的PowerShell為例,說明相關的步驟。首先,PowerShell載入特定模組,接著呼叫.NET程式庫,然後執行駭客下達的惡意指令;而EDR系統通常從兩種方面下手,其一是代理程式已與系統深度整合,能即時得知PowerShell的動態,再者,則是透過Windows內建的防惡意軟體掃描介面(Antimalware Scan Interface,AMSI),記錄PowerShell執行的命令。

姜尚德指出,大多EDR系統的代理程式,通常會再透過下列2個部分,與端點電腦的作業系統緊密整合,進而較為完整記錄攻擊事件的跡證。這兩個部分,分別稱為使用者模式(User Mode),以及核心模式(Kernel Mode)。

而在這類系統中,駭客想要繞過相關的偵測,概念其實和規避防毒軟體的策略類似。姜尚德說,攻擊者大致會從兩種層面著手,包含避免觸發EDR系統的警示通知(Alert),還有蒙蔽其代理程式的能見度(Visibility)。
想要規避EDR系統發出通知給管理者,姜尚德說,駭客首先會從受害系統的主控臺,檢查與端點電腦之間的連線組態,確認是否能得知其中所發出警示的規則,或者是觀察資料池裡面,所收集到的事件記錄內容,再決定要採取什麼手法進行攻擊。

端點偵測與回應系統(EDR)如何執行記錄的工作呢?奧義智慧研究員姜尚德(JohnThunder)以時下常見的PowerShell攻擊事件為例,首先,當PowerShell載入特定模組,接著會呼叫.Net程式庫,然後執行駭客下達的惡意指令;而EDR系統通常從2種方面下手,其一是代理程式已與系統深度整合,而能得知PowerShell動態,再者,則是透過Windows內建的防惡意軟體掃描介面(Antimalware Scan Interface,AMSI),記錄PowerShell執行的命令。

假若攻擊者能夠得發現端點電腦代理程式中,啟動警示的機制為何,那麼能夠從竄改參數或是調整攻擊行為等做法,來達到防止EDR通知管理員的目的。

至於從資料池內容來拆解,使得EDR系統無法錄下攻擊行為,駭客則要找出廠商整合代理程式與電腦系統的方式。若為使用者模式,攻擊者便會試圖停用EDR代理程式,要是無法中斷代理程式運作,或發現EDR廠商採取核心模式架構,攻擊者則會考慮從逆向工程的角度,解除代理程式與系統API之間的掛鈎(Hooking)。

身為提供EDR防護機制的廠商,姜尚德說,奧義智慧相當重視蒙蔽EDR系統的攻擊,並加強自家產品的安全機制。

藉由系統選擇性偵測可疑事件,規避警示通知

為了說明EDR系統如何觸發警示通知的機制,姜尚德以微軟免費提供的EDR工具,也就是Sysmon為例,部析其資料收集的程序,若是管理者套用預設範本的組態設定,將電腦所有執行的事件記錄下來,代理程式平均每秒要截取92.77個事件(Event Per Second,EPS),會大幅影響電腦的運作,因此實務上,管理者導入這套系統時,必須指定Sysmon代理程式需要記錄的內容,才能正常上線使用。

基於相同的理由,商用產品的EDR系統,雖然會逐一記錄電腦所有行為,但是也採取了過濾雜訊,以及與事件調查無關的端點資訊等細節。

具體而言,在這樣的機制運作裡,EDR又是如何察覺可能的異常行為呢?姜尚德舉例,推出EDR的廠商,很可能指定電腦在執行特定的應用程式,像是文書處理軟體Word或者是Excel時,代理程式才會啟動偵測功能,檢查執行VBA巨集過程的時候,是否存在惡意行為。這樣的做法,乍聽之下合情合理,實際上卻隱含了許多問題,例如,攻擊者想要發動巨集攻擊,可以選擇使用上述兩款以外的Office應用程式,便能繞過這裡舉出的偵測規則,不被EDR代理程式當作疑似是潛藏攻擊的行為,而被忽略,管理者不會收到任何警示。

除了挑選其他能夠執行VBA巨集的應用程式下手,姜尚德表示,在上述的偵測條件下,攻擊者還是可以由Word或Excel呼叫其他元件,透過被稱為就地取材的方式(Living of the Land,LOL),達到目的。他舉例,駭客能由上述2款文書處理軟體呼叫PCALUA.EXE,然後以此執行PowerShell,來進行攻擊行為。前述提到的PCALUA.EXE,是Windows應用程式相容性助理(Program Compatibility Assistant)的重要元件,因此幾乎每臺電腦裡,都有這個可執行檔案。

反過來說,為了避免EDR系統誤報,廠商勢必也要內建許多的白名單規則,以免影響企業的運作。姜尚德舉例,在使用者登入Windows的過程裡,會存取LSASS.EXE可執行檔案,為了識別出駭客與一般的員工,偵測攻擊者常用來竊取使用者密碼的工具Mimikatz,若是以登入系統執行結果回傳0x1010(VMREAD),做為辨識這個作案工具的特徵,那麼會造成大量的誤報。

他也提到其他誤報的案例。若是在網路環境裡,出現無線網路SSID名稱含有INVOKE-MIMIKATZ.PS1,一旦電腦成功連線之後,微軟的EDR系統便會當作木馬攻擊。而這個PS1檔案名稱,來自於攻擊者執行Mimikatz的PowerShell腳本。

在因應上述的問題時,EDR廠商通常採用白名單的方式,緩和可能會出現的誤報現象。而這些白名單所組成的偵測條件,也同樣很有可能成為攻擊者得以濫用的管道。

讓代理程式無法正常運作,而停止記錄攻擊事件

攻擊者不只能夠藉著規避EDR系統記錄事件規則著手,甚至可以針對端點上的代理程式發動攻擊,讓它停止運作,或者是記錄下錯誤的內容,影響資安人員的判斷。

姜尚德指出,由於許多EDR廠商在開發代理程式的時候,會將回報事件資料給主控臺的模組,以及錄製端點事件的模組分開,導致攻擊者有機會直接將回傳事件模組予以關閉,讓EDR的主控臺無從得知端點電腦的狀態。
另一方面,在Windows作業系統上,EDR的代理程式錄製事件時,往往會透過前述的AMSI取得所需的資料,因此攻擊者也可能會藉由停用AMSI,達到阻礙EDR系統記錄端點電腦事件的目的;或者,藉著混淆過後的PowerShell指令,影響EDR系統分析事件的結果。

其他的迴避手法,還有會針對定時排程運作的代理程式,採取竄改系統時間的方式進行,或是直接鎖定代理程式的白名單動手等。

熱門新聞

Advertisement