PostgreSQL漏洞泄露企業(yè)數(shù)據(jù)庫,多家云巨頭受到影響
多款PostgreSQL即服務產(chǎn)品驚現(xiàn)漏洞,包括來自微軟和谷歌兩大云巨頭的產(chǎn)品。
安全公司W(wǎng)iz Research近日在多家云供應商的暢銷“PostgreSQL即服務”產(chǎn)品中發(fā)現(xiàn)了漏洞,這些漏洞是云供應商本身帶來的。
今年早些時候,這家安全公司就在Microsoft Azure Database for PostgreSQL Flexible Server這款產(chǎn)品中發(fā)現(xiàn)了一系列嚴重漏洞。
該漏洞名為#ExtraReplica,允許未經(jīng)授權的訪客讀取其他客戶的PostgreSQL數(shù)據(jù)庫,從而繞過租戶隔離機制。
Wiz公司的研究主管Shir Tamari告訴媒體:“隔離機制并不完美,我們可以通過網(wǎng)絡從我們的托管實例訪問其他客戶的實例,這為其他潛在漏洞打開了攻擊面。”
該公司證明,不法分子可以利用這個攻擊面,進而獲得全面讀取其他客戶的數(shù)據(jù)庫的權限。
幾十年前的漏洞
Wiz現(xiàn)在透露,一個類似的漏洞影響谷歌云平臺(GCP),不過潛在影響不太嚴重。
PostgreSQL的歷史可以追溯到25年前,它缺少適合托管服務的權限模型,導致云供應商只好自行添加代碼。
為了將Postgres轉變成一項托管服務,云服務供應商就要在不危及服務的情況下為用戶提供超級用戶權限,為此需要允許一些被認為很危險的功能。
PostgreSQL的權限模型無法為用戶提供一組超級用戶權限。因此,云供應商不得不進行修改,以便允許普通用戶擁有一組超級用戶功能。
這番修改讓Wiz的團隊可以在多款PostgreSQL即服務產(chǎn)品的供應商管理的計算實例上執(zhí)行任意命令——在極端情況下,未授權訪客可以訪問使用受影響服務的其他客戶的數(shù)據(jù)。
已有多個補丁
以Cloud SQL為例,雖然Wiz的團隊無法獲得超級用戶身份,但可以訪問其部分權限。其中一個權限是能夠將表的所有權任意更改為數(shù)據(jù)庫中的任何用戶或角色。
這意味著該團隊可以創(chuàng)建一個含有虛假內(nèi)容的表,隨后在該表上創(chuàng)建附有代碼執(zhí)行載荷的惡意索引函數(shù),之后將表的所有者更改為cloudsqladmin,即GCP的超級用戶角色,這個角色僅供Cloud SQL用于維護和管理數(shù)據(jù)庫。
Wiz的團隊分析該表后,迫使PostgreSQL引擎將用戶上下文切換到表的所有者cloudsqladmin,并以cloudsqladmin權限調(diào)用惡意索引函數(shù),從而執(zhí)行shell命令。
Wiz的團隊在研究漏洞期間與十幾家PostgreSQL供應商合作,以驗證和修復所發(fā)現(xiàn)的問題。事實證明,許多云供應商做了相同的修改,以便將PostgreSQL調(diào)整為一項托管服務,因此可能面臨安全隱患。
Tamari說:“作為廣泛且負責任的披露過程的一部分,我們將研究結果告知了幾大云供應商及其他廠商,以幫助它們確定各自是否存在我們發(fā)現(xiàn)的問題。”
本文翻譯自:https://portswigger.net/daily-swig/multiple-cloud-vendors-impacted-by-postgresql-vulnerability-that-exposed-enterprise-databases