Linux xz後門的破壞可能比想像的更大

原创 岱军 云云众生s
一位神秘的貢獻者植入了後門,在過去兩年中幫助維護了廣泛使用的 xz 壓縮庫。那麼,還有什麼隱藏在裡面?

譯自Linux xz Backdoor Damage Could Be Greater Than Feared,作者 Joab Jackson。

當你的家被闖入時,你可能最初無法理解被拿走了什麼,或造成了什麼傷害。這就是Linux 社群目前對最近發現的 xz 後門安全漏洞的擔憂。

「這種上游供應鏈安全攻擊是多年來人們一直稱之為歇斯底里的噩夢場景,」Kubernetes 安全主席Ian Coldwater在X 上寫道。 “這是真的。”

一名 Microsoft 工程師首先偵測到後門,他將其追溯到 xz 壓縮庫的最近更新。庫更新是最近的一次,但它已經出現在某些 Linux 發行版的滾動和高級“快速”版本中。

後門需要滿足某些條件和依賴項才能觸發。然而,一旦觸發,攻擊者就可以在完全沒有身份驗證的情況下進入你的系統。

錯誤的程式碼已被迅速清除,但現在的問題是這個後門已經造成的潛在損害——以及是誰植入了這個詭計,他們的目的是什麼。

更令人擔憂的是,這個庫中可能還存在其他尚未發現的後門,或者已經植根於更多伺服器仍在使用的庫的早期版本中。

如果不是愛管閒事的工程師…
感謝那些足夠極客的工程師,他們在SSH 會話中調試緩慢的登入時間。

Microsoft 原理軟體工程師(Principle Software Engineer)Andres Freund注意到他的遠端 ssh 登入比應有的時間長 500 毫秒。他將延遲追溯到 SSH 對liblzma壓縮函式庫發出的系統調用,原因是該函式庫包含在 Freund 的Debian sid安裝中嵌入的xz 實用程式中。

他在安裝過程中用於 Debian 的 xz 實用程式 tarball 中追蹤到了後門程式碼——儘管它們不在庫的原始 GitHub 原始程式碼中。

額外的包袱是一個混淆腳本,它將在 tarball 的配置設定結束時執行。

Freund 向 Debian 安全部門報告了錯誤的 tarball,然後向經銷商管道報告。 Red Hat 將此問題提交為CVE-2024-3094,嚴重性為 10。

對 Freund 來說,這種看似惡意的程式碼注入發生在 Linux 發行週期的上游,這讓他很擔心。

「考慮到數週的活動,提交者要么直接參與其中,要么他們的系統遭到了一些非常嚴重的破壞。不幸的是,鑑於他們在各種列表中就上述’修復’進行了交流,後者似乎不太可能,」他寫道。

Jia Tan 是誰?
Red Hat工程師Richard WM Jones一直與後門的明顯作者聯繫,他在 Hacker News 上轉發。

這位名為 Jia Tan 的貢獻者一直“試圖將 xz 5.6.x 添加到 Fedora 40 和 41”,因為它“‘有很棒的新功能’”。

來自 Jia Tan 的 GitHub 帳號。

「他加入 xz 專案已有 2 年,添加了各種二進位測試文件,老實說,有了這種複雜程度,我什至會懷疑更早版本的 xz,直到有相反的證據,」Jones 寫道。

發現包含後門的 XZ Utils5.6.0和5.6.1版本 tarball。兩者均由 Jia Tan(JiaT75)創建並簽署。

安全專家Michal Zalewski指出,Jia Tan 可能是一個化名,解釋說這個角色顯然在 2021 年憑空出現。

JiaT75 於 2021 年在 GitHub 上註冊,此前沒有任何活動記錄,並立即開始處理xz 實用程式專案。該帳戶除了一個 gmail 位址外,沒有其他識別資訊。

xz 首席維護者是 Lasse Collin(Larhzu),自該計畫成立以來一直參與其中。他通常會對 xz tarball(多個檔案的捆綁包)進行簽名以進行分發。然而,他讓 Tan 處理了最近的幾個版本。

Collin 對 Tan 了解多少並未明確。就在這場混亂之前,Collin 已下線,處在網路休假中,只上網一次,在專案網站上發布了一條簡短的回應。

Zaleski 的偵查發現,在過去幾年中,Collin 一直受到網路騷擾者的糾纏,要求他辭去 xz 管理員的職務。

網路騷擾者要求 xz 維護者下台

在一條訊息中,Collin 承認他最近幾乎沒有時間跟進不斷增加的 Backlog。 「從長遠來看,必須做出一些改變,」他寫道,並補充說,隨著時間的推移,他希望 Tan 承擔更多職責。

Zaleski 懷疑 JiaT75 的工作,鑑於其總體的高質量,並非業餘愛好者的工作。

Zaleski 推測,“所有跡像都表明這是一項專業且有償的工作”,甚至可能是外國政府所為。

其他安全專家似乎也同意注入程式碼的整體複雜性:

「這可能是我們見過的描述最詳細的供應鏈攻擊,這是一個噩夢般的場景:惡意、有能力、在廣泛使用的庫中獲得上游授權,」開源維護者Filippo Valsorda在BlueSky 上寫道。

Jia Tan 只能存取託管在 GitHub 上的 xz 檔案;Collin 保留對網站的控制權。出於安全考慮,GitHub 已停用所有 xz 實用程式儲存庫,並暫停了 Tan 和 Collin 的帳戶。

如果您運行 Linux 或 macOS 系統,您很可能擁有 xz 和 liblzma 依賴項的某個版本,這些依賴項是解壓縮軟體包以進行安裝和更新所必需的。

到目前為止,主要是滾動發布和快速更新發行版引入了 XZ Utils 5.6.0 和 5.6.1,例如 Fedora Linux 40 和 Fedora Rawhide 以及Debian 高級發行版。

Ubuntu 24.04 LTS(Noble Numbat)也包含受感染文件,現已刪除。 Arch和openSUSE也發布了公告。

Red Hat 已報告沒有任何 Red Hat Enterprise Linux 版本受到損害。

後門似乎僅透過一組特定條件觸發:根據 Gentoo Linux 開發者Sam James發布的za-utils 後門常見問題解答,透過「連接到公共 SSH 連接埠的遠端非特權系統」。

除了安裝 5.6.0 或 5.6.1 tarball 之外,漏洞還必須是在 AMD64 硬體上運行的 Linux 發行版,並使用glibc庫(例如所有那些 Debian 和 Red Hat 衍生版本)。

systemd和已修補的openssh的組合似乎也是後門的要求。

payload 由/usr/sbin/.中執行的sshd守護程式觸發。惡意程式碼實際上被嵌入到sshd本身中,這要歸功於最近的 sshd 補丁,以支援systemd-notify,允許其他服務(包括 liblzma)在 sshd 運行時收到警報。

一旦進入sshd,有效載荷會將 sshd 的解密功能重新導向以繞過使用者驗證。

「其他系統此時可能存在漏洞,但我們不知道,」James 寫道。

Red Hat警告其用戶妥協的嚴重性:

“在適當的情況下,這種幹擾可能會讓惡意行為者有機會繞過 sshd 身份驗證,並遠端獲得整個系統的未授權存取權限。”

xz後門有多少?
鑑於上面列出的這些條件,如果你正在運行一個可公開訪問的 SSH 的伺服器實例,James 建議你應該“立即立即立即更新。”

他強調,目前已知的關於後門觸發器及其感染版本的資訊非常有限。

「雖然不是危言聳聽,但明確一點很重要,在這個階段,我們很幸運,而且受感染的 liblzma 可能會產生其他影響,」James 寫道。

一方面,JiaT75 可能會在他任職期間(至少可以追溯到 v5.3.1)在 xz 的早期版本中植入其他隱藏得更好的後門?

當然,這意味著Linux 發行版池更大可能會受到影響。

根據 Red Hat 的說法,美國網路安全和基礎設施安全局 (CISA) 目前正在進一步調查後門。

好消息是情況本可以更糟:原始上游 OpenSSH 不會受到影響——除非liblzma被添加為依賴項。

儘管如此,OpenSUSE 建議其 Tumbleweed 用戶為面向公眾的伺服器重新安裝 SSH,因為無法判斷這些伺服器是否已被入侵。

無論如何,後門是如何如此接近如此多的生產系統的,這可能是對網路基礎設施狀態的一個警示故事。

「不過,我認為這意味著應該結束手動構建上游 tarball 而非直接提取 git 源的慣例,例如 debian 等發行版所支持的慣例,」一位評論員在 LXN.net 上指出。

“這是唯一一個在其他相當可複製的管道中很少有人關注的薄弱環節,而這實際上只是時間問題,直到有人利用它。”