打開網(wǎng)易新聞 查看精彩圖片

tj-actions/changed-files 被篡改,運(yùn)行憑證竊取內(nèi)存刮取器

超過23,000個組織(包括部分大型企業(yè))使用的開源軟件,在攻擊者未經(jīng)授權(quán)訪問維護(hù)者賬戶后,植入了憑證竊取代碼。這是最新一次引發(fā)互聯(lián)網(wǎng)波動的開源供應(yīng)鏈攻擊事件。

被篡改的軟件包 tj-actions/changed-files 是 tj-actions 的一部分,tj-actions 是一個被超過23,000個組織使用的文件集合。Tj-actions 是眾多 GitHub Actions 之一,這是一種在開源開發(fā)者平臺上用于簡化軟件流程的平臺。Actions 是實(shí)現(xiàn)持續(xù)集成與持續(xù)部署(CI/CD,持續(xù)集成和持續(xù)部署或持續(xù)交付)的核心手段。

大規(guī)模內(nèi)存刮取

大規(guī)模內(nèi)存刮取

在周五或更早之前,tj-actions/changed-files 的所有版本源代碼接收到未經(jīng)授權(quán)的更新,修改了開發(fā)者用來引用特定代碼版本的“標(biāo)簽”。這些標(biāo)簽指向一個公開可用的文件,該文件會復(fù)制運(yùn)行它的服務(wù)器的內(nèi)部內(nèi)存,搜索憑證,并將其寫入日志。事后,許多運(yùn)行 tj-actions 的公開可訪問的倉庫在日志中顯示了它們最敏感的憑證,任何人都可以查看這些日志。

“Actions 可怕的一點(diǎn)在于,它們常??梢孕薷氖褂盟鼈兊膫}庫的源代碼,并訪問與工作流相關(guān)的任何秘密變量,”runZero 的創(chuàng)始人兼首席執(zhí)行官、開源安全專家 HD Moore 在一次采訪中說道。“最謹(jǐn)慎的做法是審計(jì)所有源代碼,然后在工作流中固定特定的提交哈希值,而不是標(biāo)簽,但這樣做很麻煩?!?/p>

打開網(wǎng)易新聞 查看精彩圖片

正如此次供應(yīng)鏈攻擊所顯示的,許多 GitHub 用戶并未遵循這些最佳實(shí)踐。使用 tj-actions 且信任標(biāo)簽而非經(jīng)過驗(yàn)證版本哈希的倉庫最終運(yùn)行了內(nèi)存刮取器/日志記錄器。該攻擊對任何此類倉庫構(gòu)成潛在威脅,因?yàn)閼{證絕不應(yīng)以可讀形式出現(xiàn)。對于公開可見的倉庫,風(fēng)險(xiǎn)尤為嚴(yán)重,因?yàn)閼{證可被任何人查看。

攻擊細(xì)節(jié)

攻擊細(xì)節(jié)

一個 tj-actions 的維護(hù)者在周六表示,攻擊者通過某種方式獲取了 @tj-actions-bot 所使用的憑證,以獲得對受感染倉庫的特權(quán)訪問。維護(hù)者稱,目前尚不清楚該憑證是如何被攻破的。該機(jī)器人的密碼已經(jīng)被更改,為了增加安全性,賬戶現(xiàn)在受通行密鑰(passkey)的保護(hù),這是一種符合 FIDO 聯(lián)盟規(guī)定的憑證,默認(rèn)需要雙因素認(rèn)證。

GitHub 官方回應(yīng)

GitHub 官方回應(yīng)

GitHub 官員在一份聲明中表示,他們沒有證據(jù)表明公司或其平臺已被攻破。

“出于謹(jǐn)慎考慮,我們根據(jù) GitHub 的《可接受使用政策》暫停了相關(guān)用戶賬戶并移除了相關(guān)內(nèi)容,”官員們寫道。“在確認(rèn)所有惡意更改已撤銷且漏洞源已被封堵后,我們恢復(fù)了賬戶和內(nèi)容?!彼麄冞M(jìn)一步提醒用戶,在更新新版本之前,應(yīng)“始終審查他們在代碼中使用的 GitHub Actions 或任何其他包?!?/p>

事件發(fā)現(xiàn)與影響

事件發(fā)現(xiàn)與影響

此次供應(yīng)鏈攻擊最初由安全公司 StepSecurity 發(fā)現(xiàn),該公司表示通過“在網(wǎng)絡(luò)流量中出現(xiàn)意外端點(diǎn)的異常檢測”注意到了該事件。事發(fā)似乎始于太平洋時間周六上午9點(diǎn)左右。

在另一份報(bào)告中,安全公司 Wiz 的研究人員表示,初步分析已經(jīng)確認(rèn)數(shù)十名 tj-actions 用戶在此次供應(yīng)鏈攻擊中遭受了實(shí)際損害。研究人員寫道:

在與此次惡意活動相關(guān)的威脅狩獵中,Wiz 威脅研究團(tuán)隊(duì)多次觀察到部署了旨在泄露秘密的腳本,作為惡意負(fù)載執(zhí)行的一部分。此外,Wiz 威脅研究團(tuán)隊(duì)目前已識別出數(shù)十個受惡意 GitHub Actions 影響的倉庫,包括由大型企業(yè)運(yùn)營的倉庫。在這些倉庫中,惡意負(fù)載成功執(zhí)行并導(dǎo)致憑證泄露到工作流日志中。目前已識別的泄露憑證包括有效的 AWS 訪問密鑰、GitHub 個人訪問令牌(PATs)、npm 令牌、私有 RSA 密鑰等。

歷史案例與防范建議

歷史案例與防范建議

tj-actions 事件是針對廣泛使用的開源包的最新一次供應(yīng)鏈攻擊案例。去年,一名為微軟工作的獨(dú)立開發(fā)者發(fā)現(xiàn)了一個被故意植入的后門,該后門存在于 xz Utils 中,這是一個被數(shù)百萬組織(其中許多是《財(cái)富》500強(qiáng)公司)使用的開源數(shù)據(jù)壓縮工具。幸運(yùn)的是,這個允許攻擊者以特權(quán)身份登錄任何服務(wù)器的后門程序,在計(jì)劃部署到 Linux 生產(chǎn)版本前幾周便被發(fā)現(xiàn)。其他近期的供應(yīng)鏈攻擊案例可以參考此處和此處。

任何負(fù)責(zé)使用 tj-actions 的系統(tǒng)負(fù)責(zé)人應(yīng)仔細(xì)檢查其系統(tǒng),檢查是否有被攻擊的跡象。此次供應(yīng)鏈攻擊應(yīng)促使管理員審查他們使用的任何 GitHub Actions,確保使用指向已驗(yàn)證代碼的加密哈希值,而非標(biāo)簽。StepSecurity 和 Wiz 的相關(guān)博文(以及 Semgrep 的這篇文章)提供了有用的指導(dǎo)。

關(guān)注【黑客聯(lián)盟】帶你走進(jìn)神秘的黑客世界