liblzma/xz被植入後門,過程堪比諜戰片!

事件概述

xz是一種幾乎存在於所有Linux發行版中的通用數據壓縮格式。從5.6.0版本開始,在xz的上游tarball包中被發現了惡意代碼,通過一系列複雜的混淆手段,liblzma的構建過程從僞裝成測試文件的源代碼中提取出預構建的目標文件,然後用它來修改liblzma代碼中的特定函數。這導致生成了一個被修改過的liblzma庫,任何鏈接此庫的軟件都可能使用它,從而攔截並修改與此庫的數據交互。

3月29日,微軟PostgreSQL開發人員Andres Freund在調試SSH性能問題時,在開源安全郵件列表中發帖稱,他在XZ軟件包中發現了一個涉及混淆惡意代碼的供應鏈攻擊。據Freund和RedHat稱,GitXZ中沒有惡意代碼,只有完整下載包中存在。但是這個代碼的提交人兩年前就加入了項目維護,暫時不能確定之前的版本有沒有問題。

xz 5.6.05.6.1版本庫中存在的惡意注入只包含在tarball下載包中。Git發行版中缺少觸發惡意代碼構建的M4宏。注入期間構建時使用的第二階段工件存在於Git存儲庫中,以防存在惡意的M4宏。如果不合併到構建中,第二階段文件是無害的。在發現者的演示中,發現它干擾了OpenSSH守護進程。雖然OpenSSH沒有直接鏈接到liblzma庫,但它以一種使其暴露於惡意軟件的方式與systemd通信,而systemd鏈接到了liblzma。惡意構建會通過systemd干擾sshd的認證。在一定的情況下,這種干擾有可能使惡意行爲體破壞ssh認證,並遠程未經授權訪問整個系統。

截至日前(3月30日),暫未觀察到利用此後門代碼的行爲。

image-20240330165828337

影響的系統範圍

xzliblzma 5.6.0~5.6.1 版本,可能包括的發行版 / 包管理系統有:

  • Fedora 41 / Fedora Rawhide

  • Debian Sid

  • Alpine Edge

  • x64 架構的 homebrew

  • 滾動更新的發行版,包括 Arch Linux / OpenSUSE Tumbleweed

如果你的系統使用systemd 啓動 OpenSSH 服務,你的 SSH 認證過程可能被攻擊。非x86-64 架構的系統不受影響。

if ! (echo "$build" | grep -Eq "^x86_64" > /dev/null 2>&1) && (echo "$build" | grep -Eq "linux-gnu$" > /dev/null 2>&1);then

你可以在命令行輸入xz --version來檢查xz 版本,如果輸出爲5.6.05.6.1 ,說明你的xz-utils已被植入後門。

$ xz --version
xz (XZ Utils) 5.6.1
liblzma 5.6.1

目前跡象表明,後門作者有選擇性的針對linux 發行版下手。但這個liblzma 可不只Linux上用。比如目前流行的iOS越獄環境,大部分tweak 包還是以.deb 格式發行,比較新的版本就用到了lzma 作爲壓縮。除此之外,近期有在 macOS上使用brew 安裝過xz 這個包也受影響,暫時不能證明有惡意行爲:

image-20240330170102458

【----幫助網安學習,以下所有學習資料免費領!加vx:dctintin,備註 “博客園” 獲取!】

 ① 網安學習成長路徑思維導圖
 ② 60+網安經典常用工具包
 ③ 100+SRC漏洞分析報告
 ④ 150+網安攻防實戰技術電子書
 ⑤ 最權威CISSP 認證考試指南+題庫
 ⑥ 超1800頁CTF實戰技巧手冊
 ⑦ 最新網安大廠面試題合集(含答案)
 ⑧ APP客戶端安全檢測指南(安卓+IOS)

過程精彩如諜戰片

這可能是最大膽的信息安全事件之一。“最大膽”表明這起事件在手法、規模、影響等方面都超出了我們以往對於攻擊的認知,可能是一個全新的安全威脅模型。

"最大膽"一詞還隱含着對攻擊者心理和技術實力的一種評價。做出如此"大膽"之舉的,肯定是心理素質極強、技術水平極高、準備極其縝密的黑客團伙,絕非一般的腳本小子可以企及。

1、一個不知名團伙注意到OpenSSH依賴一個名爲liblzma(xz)的小衆開源壓縮庫。

2、他們虛構了一個名爲"Jia Tan"的開發者身份,從2021年10月開始爲xz項目積極做貢獻,逐漸獲得信任,並最終接管了維護工作。

圖片

3、2024年2月,"Jia"在構建腳本中引入了一個複雜隱蔽的後門,該後門似乎針對OpenSSH的身份驗證前加密功能,可能添加了"主密鑰"讓攻擊者隨意訪問受影響服務器。

4、 "Jia"聯繫Linux發行版維護者,試圖讓帶後門的xz庫被打包分發給用戶,直到微軟員工Andres Freund因調查SSH延遲問題發現了此事。

這可能是一次有外國政府支持的職業行動,而非業餘愛好者所爲。更根本的是,xz後門不是一個技術問題,可能也不能單靠技術來解決。歸根結底,這是一個反情報挑戰——完全屬於政府和少數擁有生態系統範圍監控能力的商業實體的能力範疇。這尤其包括谷歌和微軟。事實上,這裏有一個有趣的想法:也許他們已經知道了很長一段時間。我們能分辨出這是爲了掩蓋"手段和來源"而精心設計的披露,還是偶然發現的嗎?

檢測和解決方法

解決方法:

  • 降級到5.6.0以下版本

  • 更新到官方最新版5.6.4

檢測腳本:

#! /bin/bash
​
set -eu
​
# find path to liblzma used by sshd
path="$(ldd $(which sshd) | grep liblzma | grep -o '/[^ ]*')"
​
# does it even exist?
if [ "$path" == "" ]
then
    echo probably not vulnerable
    exit
fi
​
# check for function signature
if hexdump -ve '1/1 "%.2x"' "$path" | grep -q f30f1efa554889f54c89ce5389fb81e7000000804883ec28488954241848894c2410
then
    echo probably vulnerable
else
    echo probably not vulnerable
fi

更多網安技能的在線實操練習,請點擊這裏>>

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章