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