Binarly緊急發布Linux后門掃描工具
固件安全廠商Binarly近日緊急發布了一款免費在線Linux后門掃描工具,用于檢測可能受CVE-2024-3094漏洞影響的所有Linux可執行文件。
CVE-2024-3094是在XZ Utils中發現的,史上最危險、最復雜(但“功虧一簣”)的軟件供應鏈攻擊之一。曝出該漏洞的XZ Utils是一套廣泛應用于主流Linux發行版的壓縮工具和庫,但Binarly推出的后門程序掃描工具的檢測范圍不限于XZ Utils。
去年底,微軟工程師Andres Freud在調查DebianSid(滾動發行版)SSH登錄異常(緩慢)時,發現最新版本的XZ Utils軟件包存在后門程序。該后門由代號為“匿名貢獻者”的人士引入到XZ5.6.0版本中,并延續到5.6.1版本。不過,由于采用“激進更新”方式的Linux發行版和版本較少,因此大多數使用早期安全庫版本的發行版并未受到影響。
XZ后門發現后,大量部門和企業立即啟動了檢測和修復工作。美國網絡安全與基礎設施安全局(CISA)建議降級到XZUtils5.4.6穩定版,并持續追蹤和報告相關惡意活動。
Binarly指出,迄今為止的XZ后門威脅緩解工作主要依靠簡單的檢測方法,例如字節字符串匹配、文件哈希黑名單和YARA規則,這些方法不僅會帶來大量誤報警報,還無法檢測其他項目中類似的后門程序。
為了解決這個問題,Binarly開發了一款針對特定庫和攜帶相同后門的任何文件的專用掃描器。
Binarly表示:“如此復雜且專業設計的綜合性植入框架并非一次性操作就可以完成的。它可能已經被部署在其他地方,或部分用于其他操作。這就是我們開始專注于這種復雜后門的更通用檢測方法的原因。”
XZ后門通過修改IFUNC調用來攔截或掛鉤執行,從而插入惡意代碼。Binarly的檢測方法采用靜態分析二進制文件的方式,識別GNU間接函數(IFUNC)轉換過程中的篡改行為。
具體來說,掃描器會檢查在植入惡意IFUNC解析器過程中標記為可疑的轉換。GCC編譯器的IFUNC屬性允許開發人員創建同一函數的多個版本,然后根據處理器類型等各種標準在運行時進行選擇。
Binarly解釋道:“XZ后門利用GCC編譯器用于運行時解析間接函數調用的GNU間接函數(ifunc)屬性,作為其在執行過程中獲取初始控制的核心技術之一。植入的后門代碼最初會攔截或掛鉤執行。它修改ifunc調用,替換原本應該簡單調用“cpuid”的“is_arch_extension_supported”檢查,轉而調用由有效載荷對象文件(例如liblzma_la-crc64-fast.o)導出的“_get_cpuid”,并調用植入下圖所示代碼中的惡意_get_cpuid()。”
??????
Binarly的掃描器通過檢測除XZ Utils項目之外的各種供應鏈組件來提高檢測率,并且檢測結果的可信度也大大提高。
Binarly的首席安全研究員兼首席執行官Alex Matrosov表示:“這種檢測基于行為分析,可以自動檢測任何類似的后門程序變種。即使經過重新編譯或代碼更改,我們也能檢測到它。”
該后門掃描器現已上線,網址為xz.fail,用戶可免費上傳二進制文件進行無限次的檢測。