還原CloudflareCDN漏洞被利用的過程

2022-10-11    分類: 網(wǎng)站建設(shè)

Cloudflare 已修復(fù)其免費開源 CDNJS 中的一個嚴(yán)重漏洞,該漏洞可能影響互聯(lián)網(wǎng)上 12.7% 的網(wǎng)站。

CDNJS為數(shù)百萬網(wǎng)站提供超過4000個JavaScript和CSS庫,這些庫公開存儲在GitHub上,使其成為第二大JavaScript CDN。

該漏洞利用包括使用 GitHub 和 npm 將數(shù)據(jù)包發(fā)布到 Cloudflare 的 CDNJS,以觸發(fā)路徑遍歷漏洞,并最終遠(yuǎn)程執(zhí)行代碼。

如果被利用,該漏洞將導(dǎo)致 CDNJS 基礎(chǔ)設(shè)施的完全攻擊。

還原 Cloudflare CDN 漏洞被利用的過程

從“ZIP Slip”到遠(yuǎn)程代碼執(zhí)行

本周,安全研究員 RyotaK 解釋了他如何在研究供應(yīng)鏈攻擊的同時找到一種方法來完全攻擊 Cloudflare 的 CDNJS 網(wǎng)絡(luò)。

CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。其基本思路是盡可能避開互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內(nèi)容傳輸?shù)母臁⒏€(wěn)定。在維護(hù)互聯(lián)網(wǎng)的安全性、完整性和可用性方面發(fā)揮著關(guān)鍵作用,因為絕大多數(shù)網(wǎng)站都依賴這些服務(wù)來加載流行的 JavaScript 庫和 CSS 腳本。

CDN 可能成為攻擊者的目標(biāo)選擇,因為如果受到攻擊,攻擊會對許多網(wǎng)站、在線商店及其客戶產(chǎn)生深遠(yuǎn)的影響。

在瀏覽 cdnjs.com 時,RyotaK 注意到對于 CDNJS 中尚不存在的庫,他可以建議通過 CDNJS 的 GitHub 存儲庫添加一個新庫。

還原 Cloudflare CDN 漏洞被利用的過程

用戶可以請求將包發(fā)布到 CDNJS 的 GitHub 存儲庫

在探索了這個 GitHub 存儲庫以及共同使 CDNJS 生態(tài)系統(tǒng)工作的相鄰存儲庫之后,RyotaK 找到了一種方法來誘使服務(wù)器執(zhí)行任意代碼。

特別是,研究人員研究了 cdnjs/bot-ansible 和 cdnjs/tools 中存在的腳本,包括一個自動更新腳本,有助于自動檢索庫更新。

這些腳本會定期使用其開發(fā)者在相應(yīng) npm 注冊表上發(fā)布的較新版本的軟件庫更新 CDNJS 服務(wù)器。

換句話說,對于發(fā)布到 CDNJS 的 GitHub 存儲庫的每個庫,其更新版本將從鏈接的 npm 注冊表下載,并且 npm 版本也由庫開發(fā)者維護(hù)。

RyotaK想知道,如果他發(fā)布到CDNJS的庫在對應(yīng)的npm版本中包含路徑遍歷漏洞,會發(fā)生什么。注意,npm包是以TGZ (.tar.gz)檔案的形式發(fā)布的,可以很容易地使用隱藏在其中的路徑遍歷漏洞來制作。

研究人員首先使用 GitHub 向 CDNJS 發(fā)布了一個名為 hey-sven 的測試庫,然后開始在 npm 注冊表上發(fā)布更新版本的“hey-sven”。

在發(fā)布到 npm 的較新的“hey-sven”版本中,最終將由 CDNJS 的更新機(jī)器人處理,研究人員在看起來很奇怪的路徑上注入了 Bash 腳本。

這些不同的路徑只不過是隱藏在 ZIP/TGZ 檔案中的路徑遍歷漏洞,這個概念在 2018 年以“ZIP Slip”方式爆發(fā)了。

2018 年 6 月 5 日,Snky 安全團(tuán)隊公布了一個名為 Zip Slip 的漏洞。這是一個廣泛存在的文件覆蓋漏洞,通過這個漏洞,攻擊者可以利用一個特制的 Zip 壓縮文件,從路徑遍歷覆蓋任意文件,繼而遠(yuǎn)程命令執(zhí)行,發(fā)起攻擊。Zip Slip 是以目錄遍歷的一種形式,通過從存檔中提取文件來進(jìn)行攻擊。目錄遍歷漏洞的前提是攻擊者可以訪問文件系統(tǒng)中應(yīng)該駐留的目標(biāo)文件夾之外的部分文件系統(tǒng)。然后,攻擊者可以覆蓋可執(zhí)行文件并遠(yuǎn)程調(diào)用它們,或者等待系統(tǒng)或用戶調(diào)用它們,從而實現(xiàn)受害者機(jī)器上的遠(yuǎn)程命令執(zhí)行。此漏洞還可能通過覆蓋配置文件或其他敏感資源而造成損害,并且可能會在客戶端(用戶)機(jī)器和服務(wù)器上受到攻擊。

攻擊者主要可以利用保存目錄遍歷文件名的特制檔案文件(例如../../evil.sh)觸發(fā) Zip Slip 漏洞。該漏洞已影響許多存檔的格式,包括 tar、jar、war、cpio、apk、rar 和 7z 等大量的壓縮文件。

目前 Zip Slip 漏洞已經(jīng)影響了包括阿里巴巴、Google、Oracle、Eclipse、HP、Amazon、Apache、Pivotal、Linkedin 等企業(yè)的數(shù)千個項目,以及 Java、Ruby、.Net、 Go 等多種語言生態(tài)系統(tǒng),其中 Java 受到的攻擊尤為嚴(yán)重,主要是因為它沒有中央倉庫提供高級別歸檔(如 Zip)文件處理。缺乏這樣的庫導(dǎo)致易受攻擊的代碼片段被手工制作,并在諸如 Stack Overflow 等開發(fā)者社區(qū)中共享。

還原 Cloudflare CDN 漏洞被利用的過程

“hey-sven”庫的 npm 1.0.1 和 1.0.2 版本包含路徑遍歷漏洞

一旦 CDNJS 服務(wù)器處理了精心制作的“hey-sven”npm 檔案,這些 Bash 腳本的內(nèi)容將在服務(wù)器上執(zhí)行。

但是,研究人員不想意外覆蓋現(xiàn)有腳本,因此在概念驗證 (PoC) 測試期間,他首先使用符號鏈接漏洞讀取他即將覆蓋的文件的內(nèi)容。

由于Git在默認(rèn)情況下支持符號鏈接,所以可以通過在Git存儲庫中添加符號鏈接來從cdnjs庫更新服務(wù)器中讀取任意文件。如果定期執(zhí)行的腳本文件被覆蓋執(zhí)行任意命令,自動更新功能可能會被攻擊,所以研究人員決定先檢查任意文件讀取。

一旦攻擊者精心制作的 PoC擊中服務(wù)器,RyotaK 就能夠意外地將敏感機(jī)密(例如 GITHUB_REPO_API_KEY 和 WORKERS_KV_API_TOKEN)轉(zhuǎn)儲到 CDN 提供的腳本中,網(wǎng)址為https://cdnjs.cloudflare.com/...

還原 Cloudflare CDN 漏洞被利用的過程

初始符號鏈接 PoC 的輸出為研究人員提供了密鑰

GITHUB_REPO_API_KEY是一個授予寫作權(quán)限的API密鑰,使攻擊者能夠修改CDNJS上的任何庫甚至篡改cdnjs.com網(wǎng)站本身。

另一方面,WORKERS_KV_API_TOKEN 秘密可用于篡改存在于 Cloudflare Workers 緩存中的庫。

通過組合這些權(quán)限,CDNJS 的核心部分,例如 CDNJS 的原始數(shù)據(jù)、KV 緩存,甚至 CDNJS 網(wǎng)站,都可以完全被篡改。

Cloudflare 發(fā)布了許多修復(fù)程序以修復(fù)漏洞

研究人員于 2021 年 4 月 6 日通過 HackerOne 的漏洞披露計劃向 Cloudflare 報告了此漏洞,并看到 Cloudflare 的團(tuán)隊在數(shù)小時內(nèi)應(yīng)用了間歇性修復(fù)。

BleepingComputer 看到的初始修復(fù)旨在解決符號鏈接漏洞:

還原 Cloudflare CDN 漏洞被利用的過程

Cloudflare 的 CDNJS (GitHub) 應(yīng)用的初始修復(fù)

然而,根據(jù)研究人員的說法,由于 CDNJS 生態(tài)系統(tǒng)的復(fù)雜性,在接下來的幾周內(nèi)對不同的存儲庫應(yīng)用了一系列更具體的修復(fù)。

RyotaK與BleepingComputer分享了第一個修復(fù)以拒絕Git存儲庫中的符號鏈接為中心,但它只修復(fù)了部分問題。

修復(fù)人員首先試圖拒絕符號鏈接,但注意到機(jī)器人當(dāng)前的設(shè)計太危險了。因此他們隔離了最危險的功能。

對于其他功能,修復(fù)人員應(yīng)用了 AppArmors。

Application Armor 或 AppArmor 是一種安全功能,它使用預(yù)定義的配置文件限制在基于 Unix 的環(huán)境上運(yùn)行的程序的功能,以便程序不會無意中超出其預(yù)期的訪問范圍。

研究人員還與 Cloudflare 部署的 BleepingComputer 共享了一系列修復(fù)程序,以保護(hù)自動機(jī)器人處理更新的庫:

還原 Cloudflare CDN 漏洞被利用的過程

Cloudflare 對 CDNJS 進(jìn)行了多項更改以解決該漏洞

雖然這個漏洞可以在沒有任何特殊處理的情況下被利用,但它可能會影響許多網(wǎng)站。鑒于供應(yīng)鏈中存在許多漏洞,這些漏洞很容易被利用但影響很大。

正如 BleepingComputer 先前報道的那樣,影響數(shù)千家在線商店的 Magecart 供應(yīng)鏈攻擊源于對Volusion 的 CDN 基礎(chǔ)設(shè)施的攻擊。

當(dāng)前文章:還原CloudflareCDN漏洞被利用的過程
文章轉(zhuǎn)載:http://www.muchs.cn/news8/204608.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站排名品牌網(wǎng)站設(shè)計、自適應(yīng)網(wǎng)站、微信小程序、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)