最新研究表明,大多數端點檢測和響應(EDR)產品用于監視正在運行進程的“鉤子”(hooking)技術可以被濫用。
幾乎所有EDR系統的工作方式都存在一個通用缺陷,攻擊者可以利用這個缺陷偷偷植入惡意軟件。
安全公司Optiv在近期的一份報告中表示,解決該問題并非易事,需要對市場上大多數EDR系統進行重大改造。
EDR產品旨在檢測并響應端點設備上的可疑行為和攻擊。大多數產品結合了基于簽名的惡意軟件檢測、啟發式分析、沙箱以及其他技術,發現和阻止威脅。安全團隊使用EDR快速隔離失陷的系統,收集端點日志和其他威脅跡象來進行補救。
EDR系統的數據遙測流程
許多EDR產品使用“鉤子”技術檢測可疑活動并收集信息,進行基于行為的分析。Optiv的技術經理Matthew Eidelberg解釋,“鉤子”技術用于監視計算機正在運行的進程。“鉤子”設置在系統調用接口上,系統調用接口允許正在運行的進程與操作系統進行交互,請求服務,例如分配內存或創建文件。
進程調用執行流程示例
Eidelberg說:“許多EDR產品將‘鉤子’設置在用戶有權訪問的程序執行點,因此用戶有權刪除或完全繞開這些‘鉤子’。”
“鉤子”為終端設備上的EDR代理(agent)提供了監視所有正在運行的進程并查找對這些進程的任何更改的方法。EDR代理將“鉤子”收集的數據傳遞到EDR供應商的云端平臺,進行進一步分析。
問題在于,“鉤子”位于用戶空間中,因而當創建進程時,該進程內存空間中的所有內容都與運行它的用戶具有相同的權限。
Eidelberg說:“這意味著惡意代碼與系統動態鏈接庫具有相同的權限。”
結果,攻擊者可以修改這些系統動態鏈接庫中的“鉤子”,允許惡意代碼繞過EDR產品的檢測和補救機制。由于存在“鉤子”,攻擊者還可能在進程中寫入自己的惡意系統調用函數,使操作系統執行這些函數。
鉤子/Hooking執行流程示例
Eidelberg說:“ EDR產品不知道惡意系統調用函數的存在及其位置,因此無法鉤住惡意系統調用函數。”
Optiv對EDR和內存“鉤子”弱點的研究建立在其他研究人員先前的工作基礎上。Optiv在其報告中表示,安全供應商與其專注于僅適用于單個產品的技術,不如看它是否能夠發現攻擊者可以利用的所有EDR產品的“鉤子”系統性問題。作為這項工作的一部分,Optiv開發了一些漏洞利用程序,展示如何投遞惡意軟件偷偷繞過四家全球領先EDR產品的保護。
Eidelberg指出,攻擊者只需要訪問遠程端點即可執行這些攻擊。但是,在內核空間中運行的EDR應不會受到影響。
Eidelberg說:“這是因為內核‘鉤子’安全是非常可靠的:考慮到內核代碼加載的安全控制,攻擊者很難在內核中執行任何操作。”
Eidelberg 表示,Optiv一直在幫助EDR供應商了解攻擊者在自然環境下如何利用這些問題。他說,一些EDR供應商已經開始改進其產品,并通過“鉤子”增加收集遙測數據,看EDR是否能夠檢測到對系統動態鏈接庫的篡改。一些EDR供應商甚至將“鉤子”轉移到受保護的內核空間。
Eidelberg 指出,以上改進都是大的步驟,需要花一些時間來實施。同時,用戶應確保擁有強大的控制和檢測機制,防止攻擊者先行一步在端點系統上執行惡意代碼。攻擊者要利用此漏洞,他們需要將惡意代碼發送到用戶的系統中并執行這些操作。