科技新聞:Linux 發行版面臨供應鏈攻擊風險
一名攻擊者在 xz-utils 軟件包中潛伏了三年,差點就成功對眾多 Linux 發行版的 sshd 注入後門,這將使攻擊者能夠繞過密鑰驗證,後果不堪設想。
該攻擊者名為 JiaT75(Jia Tan),他於 2021 年註冊了 GitHub 帳號,並積極參與 xz 項目的維護,逐漸獲得了信任,並獲得了直接提交代碼的權利。在最近幾個月的一次提交中,JiaT75 悄悄加入了兩個看似無害的測試用二進制數據,但在特定條件下,編譯腳本會從這兩個文件中讀取內容,對編譯結果進行修改,使編譯結果與公開的源代碼不一致。
目前初步的研究顯示,注入的代碼會使用 glibc 的 IFUNC 去 Hook OpenSSH 的 RSA_public_decrypt 函數,使得攻擊者可以通過構造特定的驗證數據繞過 RSA 簽名驗證。只要是同時使用了 liblzma 和 OpenSSH 的程序就會受到影響,最直接的目標就是 sshd,使得攻擊者可以構造特定請求,繞過密鑰驗證進行遠程訪問。
受影響的 xz-utils 包已經被納入 Debian testing 中進行測試,攻擊者同時也在嘗試納入 Fedora 和 Ubuntu。然而,幸運的是,注入的代碼似乎存在某種 Bug,導致特定情況下 sshd 的 CPU 佔用飆升。這一異常現象引起了一位安全研究人員的注意,他順藤摸瓜發現了這個陰謀並向 oss-security 報告,使得此事敗露。
如果不是因為這個 Bug,這個後門有很大的可能性被納入主流發行版的穩定版本,這將可能成為一次前所未有的重大安全事件。
此外,從一些細節中可以看出攻擊者非常用心。他們在 Ubuntu beta freeze 的幾天前才嘗試讓新版本納入,以期望減少在測試期間被發現的時間。此外,xz-utils 項目的原維護者 Lasse Collin (Larhzu) 有定期進行 internet breaks 的習慣,而且最近正在進行,導致他沒有機會審查這些變動,甚至到現在也沒能聯繫上他。這可能也是攻擊者選定 xz-utils 項目的原因之一。
目前,更多的細節還在被分析中,GitHub 已經關停了整個 xz 項目。
來源:Yachen Liu