
一個狡詐的軟體供應鏈攻擊,再次讓網路安全領域進入高度警戒狀態。攻擊者透過縝密的布局,在開源專案中成為被信任的開源貢獻者,然後悄悄的將後門程式埋進 Linux 發行版附帶的 XZ Utils 壓縮函式庫中(漏洞編號為:CVE-2024-3094)。該漏洞在某些情況下可被利用來進行 RCE(遠端程式碼執行)攻擊,這是一個高風險問題,能夠對既定的系統造成嚴重損害。
值得慶倖的是,該惡意程式尚未進入穩定版的 Linux 版本,有另一位維護者及時發現這個威脅,因此該漏洞僅存在於小部分的 Linux 版本中。如果當時沒有發現,該惡意程式將成為穩定版 Linux 的一部分流入多數企業環境中,這將成為有史以來最具破壞性的供應鏈攻擊之一,甚至會比 SolarWinds 事件來的嚴重。
開源專案其實很常會依賴社群貢獻者來幫忙維護關鍵系統,但在這種嚴重影響安全的事件出現之前,很少人會討論這個做法的安全性。雖然貢獻者們的貢獻對於開源軟體的發展至關重要,但這次事件突顯了在開發人員層面加強安全技能和安全意識的重要性,遑論對專案程式碼加強存取控制的必要性。
3 月 29 日,Red Hat 公司發佈緊急安全警報,通知 Fedora Linux 40 和 Fedora Rawhide 用戶:「最新版本的"XZ"壓縮工具和函式庫包含惡意程式碼,該程式碼的目的似乎是為了允許未經授權的存取」。
這段惡意程式碼注入的過程,本質上是一個複雜且漫長的社交工程攻擊,一名"Jia Tan"的匿名攻擊者在兩年多的時間裡為 XZ Utils 專案和社群做出許多貢獻,進而獲得其他維護者的信任。
Jia Tan 將自己作為項目的貢獻者來回覆使用者問題。資料來源:Mail Archive
後期利用多個假帳號連發問題單,使專案擁有者 Lasse Collin 疲於應付,最終 Jia Tan 獲得"trusted maintainer(受信任的維護者)"身份。

原維護者(Lasse Collin)工作過度,並指名 Jia Tan 將接手,使其獲得社群更多的信任。資料來源:Mail Archive
這正是一個高技術專業人員仍會被社交工程欺騙的典型案例,這也顯示了安全意識培訓的重要性。
本次事件要歸功於 Andres Freund(Microsoft 軟體工程師兼 PostgreSQL 維護者)的好奇心和快速反應,發現了這個後門並還原未受駭的版本,及時阻止這場供應鏈浩劫繼續擴大。
在 NIST 的漏洞清單中,該後門程式被正式列為嚴重程度最高的漏洞。最初,該漏洞被認為可以繞過 SSH 身份驗證,但進一步調查發現,它可以在受影響的 Linux 系統(包括 Fedora Rawhide、Fedora 41、Kali Linux、openSUSE MicroOS、openSUSE Tumbleweed 和某些版本的 Debian)上執行未經身份驗證的 RCE 攻擊。
Jia Tan 似乎花了不少心思設計這個惡意程式,正如 Red Hat 公司說明的那樣,該程式會在建置時,透過 systemd 干擾 SSHd 的身分認證,這種干擾可能會讓攻擊者突破 SSHd 驗證,進而在未經授權的情況下遠端存取整個系統。

Jia Tan 在 libarchive 代碼庫中的首次提交。 用 函數 fprintf()取代 safe_fprintf()。當時可能還沒有惡意,但不可忽視的是,這個改動可能導致字元轉義漏洞(character escape)。
微軟等公司已經發佈了指南,指導使用者掃描系統中的漏洞實例並提供減輕影響的方法。CISA 也建議受影響的開發人員和使用者立即將 XZ Utils 降級到未受攻擊的版本(如 XZ Utils 5.4.6 Stable 版)。
只要專案中有使用開源元件的需求,就很難防止這種攻擊。我們已經忙於對付軟體供應鏈中的不小心寫出的漏洞,而對於這種精心設計、惡意植入的安全性漏洞,多數使用者將更難察覺。(譯者註:相當於攻擊者可以自行創造零日漏洞,掌握進攻主導權)
大多數開發人員都無力阻止這種攻擊,除非他們有強烈的安全意識、健全的安全知識,加上某種程度的偏執。這幾乎是一個駭客所會具備的素質了。如果將範圍縮小在企業內部的版控庫(不開源)來討論,可以限制只能由安全技能經過驗證的相關人員存取。管理者可以考慮用分支來進行更安全的存取控制,只允許具備安全技能的開發人員可以提交更改到主分支上。
在這個利己的社會中,一群充滿活力的志工花自己的時間在社群中煞費苦心地維護關鍵系統是一個令人難以理解的概念,但這正是 Open Source 的本質。同時這也對保護供應鏈安全的專業人員來說,是一個存在重大風險的領域。
開源軟體幾乎是每個企業數位生態系統的重要組成部分,值得信賴的維護者(其中大多數都是真誠行事的好人)在無私地追求技術進步和完整性的過程中,確實就像個英雄。但若因此讓他們獨擔安全的責任卻又太過荒謬。在這個以 DevSecOps 為中心的時代,安全是一項共同的責任,每個開發成員都必須掌握相關知識和合適的工具,以應對工作中可能遇到的安全問題。在軟體發展過程中,安全意識和實踐技能是不可或缺的,而領導者有責任以企業的角度影響/推動安全文化的變革。
透過 Secure Code Warrior,立即在您的組織中建立蓬勃發展的安全文化吧!