Docker Hub 的數(shù)千個(gè)鏡像泄露了敏感數(shù)據(jù)
德國(guó)亞琛工業(yè)大學(xué)的研究人員發(fā)表的一項(xiàng)研究表明,Docker Hub 上托管的數(shù)以萬(wàn)計(jì)的容器鏡像包含機(jī)密信息,使軟件、在線(xiàn)平臺(tái)和用戶(hù)面臨巨大的攻擊面。
Docker Hub 是一個(gè)基于云的存儲(chǔ)庫(kù),供 Docker 社區(qū)存儲(chǔ)、共享和分發(fā) Docker 鏡像,這些容器創(chuàng)建模板包括所有必要的軟件代碼、運(yùn)行時(shí)刻、庫(kù)、環(huán)境變量和配置文件,以便在Docker中輕松部署應(yīng)用程序。
研究人員分析了來(lái)自 Docker Hub 和數(shù)千私人注冊(cè)表的 337171 個(gè)鏡像,發(fā)現(xiàn)大約 8.5% 包含私鑰和 API 密鑰等敏感數(shù)據(jù),并且許多暴露的密鑰都被積極利用,破壞了依賴(lài)它們的元素的安全性。
該研究從 337171 個(gè) Docker 鏡像中收集了包含 1647300 個(gè)層面的海量數(shù)據(jù)集,并盡可能從每個(gè)存儲(chǔ)庫(kù)中獲取最新的鏡像版本。使用正則表達(dá)式搜索特定數(shù)據(jù)分析顯示,28621 個(gè) Docker 鏡像中暴露了 52107 個(gè)有效私鑰和 3158 個(gè)不同的 API密鑰。經(jīng)過(guò)研究人員驗(yàn)證,這些不包括測(cè)試密鑰、API密鑰示例和無(wú)效匹配。大多數(shù)暴露的數(shù)據(jù)(95% 為私鑰,90% 為 API密鑰)都駐留在單用戶(hù)映像中,這表明它們很可能是無(wú)意泄露的。
調(diào)查結(jié)果
影響最大的是 Docker Hub,其暴露比例為 9.0%,而來(lái)自私有注冊(cè)表的鏡像暴露比例為 6.3%。這種差異可能表明 Docker Hub 用戶(hù)通常比設(shè)置私有存儲(chǔ)庫(kù)的用戶(hù)對(duì)容器安全性的了解較差。
使用暴露的密鑰
接下來(lái),研究人員確定了所暴露秘密的實(shí)際用途,以了解攻擊面的大小。令人震驚的是,研究人員發(fā)現(xiàn)了 22082 個(gè)依賴(lài)于暴露私鑰的受損證書(shū),其中包括 7546 個(gè)私有 CA 簽名證書(shū)和 1060 個(gè)公共 CA 簽名證書(shū)。
這上千個(gè) CA 簽名證書(shū)尤其值得關(guān)注,因?yàn)檫@些證書(shū)通常被大量用戶(hù)使用。在研究時(shí),141 個(gè) CA 簽名的證書(shū)仍然有效,這在一定程度上降低了風(fēng)險(xiǎn)。
為了進(jìn)一步確定暴露的秘密在野外的用途,研究人員使用了 Censys 數(shù)據(jù)庫(kù)提供的全互聯(lián)網(wǎng)測(cè)量結(jié)果,發(fā)現(xiàn)275269 臺(tái)主機(jī)與泄露的密鑰存在關(guān)聯(lián),其中包括了8674 個(gè) MQTT和19 個(gè) AMQP 主機(jī)可能傳輸隱私敏感的物聯(lián)網(wǎng) (IoT) 數(shù)據(jù)。
這種程度的暴露凸顯了容器安全方面的巨大問(wèn)題,以及在創(chuàng)建鏡像時(shí)未首先清除鏡像中的機(jī)密信息這類(lèi)過(guò)失性錯(cuò)誤。
關(guān)于API暴露,分析發(fā)現(xiàn)大多數(shù)容器(2920個(gè))屬于亞馬遜AWS等云提供商,但也有一些涉及Stripe等金融服務(wù)。目前,研究人員還不清楚這些API在野外的具體利用情況。