新聞中心
PRESS CENTER安全研究人員最近調(diào)查了 IBM Cloud 的數(shù)據(jù)庫(kù)即服務(wù)基礎(chǔ)架構(gòu),發(fā)現(xiàn)了幾個(gè)安全問(wèn)題,這些問(wèn)題使他們能夠訪問(wèn)用于為客戶(hù)部署構(gòu)建數(shù)據(jù)庫(kù)映像的內(nèi)部服務(wù)器。演示的攻擊突出了一些常見(jiàn)的安全疏忽,這些疏忽可能導(dǎo)致云基礎(chǔ)設(shè)施中的供應(yīng)鏈?zhǔn)軗p。
該攻擊由安全公司 Wiz 的研究人員開(kāi)發(fā),結(jié)合了 IBM Cloud Databases for PostgreSQL 服務(wù)中的特權(quán)升級(jí)漏洞、散布在環(huán)境中的明文憑據(jù)以及允許在基礎(chǔ)架構(gòu)內(nèi)橫向移動(dòng)的過(guò)于寬松的內(nèi)部網(wǎng)絡(luò)訪問(wèn)控制。4g dtu
PostgreSQL 是云環(huán)境中一個(gè)有吸引力的目標(biāo)
Wiz 對(duì) IBM Cloud Databases for PostgreSQL 的審計(jì)是一個(gè)更大的研究項(xiàng)目的一部分,該項(xiàng)目分析了主要云提供商的 PostgreSQL 部署,這些云提供商提供該數(shù)據(jù)庫(kù)引擎作為其托管數(shù)據(jù)庫(kù)即服務(wù)解決方案的一部分。今年早些時(shí)候,Wiz 研究人員還發(fā)現(xiàn)并披露了 Microsoft Azure和谷歌云平臺(tái) (GCP)的 PostgreSQL 實(shí)現(xiàn)中的漏洞。
[通過(guò)頂級(jí)安全認(rèn)證提升您的職業(yè)生涯:它們的用途、成本以及您的需求。| 注冊(cè) CSO 時(shí)事通訊。]
開(kāi)源的 PostgreSQL 關(guān)系數(shù)據(jù)庫(kù)引擎已經(jīng)開(kāi)發(fā)了 30 多年,重點(diǎn)是穩(wěn)定性、高可用性和可擴(kuò)展性。然而,這個(gè)復(fù)雜的軟件并沒(méi)有設(shè)計(jì)適合多租戶(hù)云環(huán)境的權(quán)限模型,在這些環(huán)境中,數(shù)據(jù)庫(kù)實(shí)例需要相互隔離,并與底層基礎(chǔ)設(shè)施隔離。
1 second of 28 seconds成交量0%
PostgreSQL 具有強(qiáng)大的功能,管理員可以通過(guò)這些功能更改服務(wù)器文件系統(tǒng),甚至可以通過(guò)數(shù)據(jù)庫(kù)查詢(xún)執(zhí)行代碼,但這些操作是不安全的,需要在共享云環(huán)境中加以限制。同時(shí),數(shù)據(jù)庫(kù)復(fù)制、創(chuàng)建檢查點(diǎn)、安裝擴(kuò)展和事件觸發(fā)器等其他管理操作需要可供客戶(hù)使用,以便服務(wù)正常運(yùn)行。這就是為什么云服務(wù)提供商 (CSP) 必須想出變通辦法并對(duì) PostgreSQL 的權(quán)限模型進(jìn)行修改以啟用這些功能,即使客戶(hù)僅使用有限的帳戶(hù)進(jìn)行操作也是如此。
通過(guò)SQL注入提權(quán)
在分析 IBM Cloud 的 PostgreSQL 實(shí)施時(shí),Wiz 研究人員研究了可供用戶(hù)使用的邏輯復(fù)制機(jī)制。此功能是使用多個(gè)數(shù)據(jù)庫(kù)函數(shù)實(shí)現(xiàn)的,包括一個(gè)名為 create_subscription 的函數(shù),該函數(shù)由名為 ibm 的數(shù)據(jù)庫(kù)超級(jí)用戶(hù)擁有和執(zhí)行。
當(dāng)他們檢查這個(gè)函數(shù)的代碼時(shí),研究人員注意到一個(gè) SQL 注入漏洞,這是由于對(duì)傳遞給它的參數(shù)的不正確清理造成的。這意味著他們可以將任意 SQL 查詢(xún)傳遞給該函數(shù),然后該函數(shù)將以 ibm 超級(jí)用戶(hù)身份執(zhí)行這些查詢(xún)。研究人員通過(guò) PostgreSQL COPY 語(yǔ)句利用此漏洞在托管數(shù)據(jù)庫(kù)實(shí)例并打開(kāi)反向 shell 的底層虛擬機(jī)上執(zhí)行任意命令。
通過(guò) Linux 系統(tǒng)上的 shell,他們開(kāi)始進(jìn)行一些偵察以了解其環(huán)境,例如列出正在運(yùn)行的進(jìn)程、檢查活動(dòng)網(wǎng)絡(luò)連接、檢查列出系統(tǒng)用戶(hù)的 /etc/passwd 文件的內(nèi)容以及在 Linux 上運(yùn)行端口掃描。內(nèi)部網(wǎng)絡(luò)發(fā)現(xiàn)其他服務(wù)器。廣泛的端口掃描引起了 IBM 安全團(tuán)隊(duì)的注意,他們聯(lián)系了 Wiz 團(tuán)隊(duì)詢(xún)問(wèn)他們的活動(dòng)。
“在討論了我們的工作并與他們分享了我們的想法之后,他們友好地允許我們繼續(xù)我們的研究并進(jìn)一步挑戰(zhàn)安全邊界,這反映了該組織健康的安全文化,”Wiz 團(tuán)隊(duì)說(shuō)。
存儲(chǔ)的憑據(jù)導(dǎo)致供應(yīng)鏈攻擊
收集到的信息(例如環(huán)境變量)告訴研究人員他們位于 Kubernetes (K8s) pod 容器中,在搜索文件系統(tǒng)后,他們發(fā)現(xiàn) K8s API 訪問(wèn)令牌本地存儲(chǔ)在名為 /var/run/secrets/kubernetes 的文件中。 io/服務(wù)帳戶(hù)/令牌。API 令牌允許他們收集有關(guān) K8s 集群的更多信息,但事實(shí)證明,所有 Pod 都與他們的帳戶(hù)相關(guān)聯(lián),并且在同一命名空間下運(yùn)行。但這并不是死胡同。
K8s 是一個(gè)用于軟件部署的容器編排系統(tǒng),其中容器通常是從鏡像部署的——預(yù)構(gòu)建包,其中包含容器及其預(yù)配置服務(wù)運(yùn)行所需的所有文件。這些圖像通常存儲(chǔ)在容器注冊(cè)表服務(wù)器上,可以是公共的也可以是私有的。就 IBM Cloud 而言,它是一個(gè)需要身份驗(yàn)證的私有容器注冊(cè)表。
研究人員使用 API 令牌讀取其命名空間中 pod 的配置,并在這些配置文件中找到了四個(gè)不同內(nèi)部容器注冊(cè)表的訪問(wèn)密鑰。在 IBM Cloud 的身份和訪問(wèn)管理 (IAM) API 中對(duì)這個(gè)新發(fā)現(xiàn)的密鑰的描述表明它對(duì)容器注冊(cè)表具有讀寫(xiě)權(quán)限,這將使研究人員能夠用惡意鏡像覆蓋現(xiàn)有鏡像。
但是后來(lái)發(fā)現(xiàn)密鑰描述不準(zhǔn)確,只能下載圖片。這種訪問(wèn)級(jí)別具有安全隱患,但不會(huì)對(duì)其他 IBM Cloud 客戶(hù)構(gòu)成直接威脅,因此研究人員繼續(xù)推進(jìn)。
容器鏡像可能包含許多在部署期間使用并隨后被刪除的敏感信息,包括源代碼、引用基礎(chǔ)架構(gòu)中其他服務(wù)的內(nèi)部腳本,以及訪問(wèn)它們所需的憑據(jù)。因此,研究人員決定從注冊(cè)表服務(wù)下載所有圖像,并使用自動(dòng)化工具掃描它們的秘密,例如憑據(jù)和 API 令牌。
“為了全面掃描秘密,我們解壓縮了圖像并檢查了構(gòu)成每張圖像的文件組合,”研究人員說(shuō)?!叭萜麋R像基于一層或多層;每個(gè)人都可能無(wú)意中包含秘密。例如,如果秘密存在于一層中但從下一層中刪除,則它在容器內(nèi)將完全不可見(jiàn)。因此,單獨(dú)掃描每一層可能會(huì)揭示更多的秘密?!?/p>
容器鏡像的 JSON 清單文件有一個(gè)“歷史”部分,其中列出了在每個(gè)鏡像的構(gòu)建過(guò)程中執(zhí)行的歷史命令。在幾個(gè)這樣的文件中,研究人員發(fā)現(xiàn)了將密碼作為命令行參數(shù)傳遞給它們的
其他組織的經(jīng)驗(yàn)教訓(xùn)
雖然所有這些問(wèn)題都已私下報(bào)告給 IBM Cloud 團(tuán)隊(duì)并由其修復(fù),但它們并不是 IBM 獨(dú)有的。據(jù) Wiz 團(tuán)隊(duì)稱(chēng),“分散的秘密”問(wèn)題在所有云環(huán)境中都很常見(jiàn)。
自動(dòng)構(gòu)建和部署工作流程通常會(huì)在配置文件、Linux bash 歷史記錄、日志文件等不同地方留下秘密,開(kāi)發(fā)人員在部署完成后忘記清除這些秘密。此外,一些開(kāi)發(fā)人員不小心將他們的整個(gè) .git 和 CircleCI 配置文件上傳到生產(chǎn)服務(wù)器。Wiz 團(tuán)隊(duì)經(jīng)常發(fā)現(xiàn)的被遺忘的秘密包括云訪問(wèn)密鑰、密碼、CI/CD 憑證和 API 訪問(wèn)令牌。
在 IBM Cloud 攻擊中發(fā)揮關(guān)鍵作用的另一個(gè)普遍問(wèn)題是生產(chǎn)服務(wù)器和內(nèi)部 CI/CD 系統(tǒng)之間缺乏嚴(yán)格的訪問(wèn)控制。這通常允許攻擊者橫向移動(dòng)并在組織的基礎(chǔ)設(shè)施中獲得更深的立足點(diǎn)。
最后,私有容器注冊(cè)表可以向攻擊者提供超出憑據(jù)的大量信息。它們可以揭示有關(guān)基礎(chǔ)設(shè)施內(nèi)部關(guān)鍵服務(wù)器的信息,或者可以包含揭示其他漏洞的代碼。Wiz 團(tuán)隊(duì)表示,組織應(yīng)確保其容器注冊(cè)表解決方案實(shí)施適當(dāng)?shù)脑L問(wèn)控制和范圍界定。