多款PostgreSQL即服务产品惊现漏洞,包括来自微软和谷歌两大云巨头的产品。
安全公司Wiz Research近日在多家云供应商的畅销“PostgreSQL即服务”产品中发现了漏洞,这些漏洞是云供应商本身带来的。
今年早些时候,这家安全公司就在Microsoft Azure Database for PostgreSQL Flexible Server这款产品中发现了一系列严重漏洞。
该漏洞名为#ExtraReplica,允许未经授权的访客读取其他客户的PostgreSQL数据库,从而绕过租户隔离机制。
Wiz公司的研究主管Shir Tamari告诉媒体:“隔离机制并不完美,我们可以通过网络从我们的托管实例访问其他客户的实例,这为其他潜在漏洞打开了攻击面。”
该公司证明,不法分子可以利用这个攻击面,进而获得全面读取其他客户的数据库的权限。
Wiz现在透露,一个类似的漏洞影响谷歌云平台(GCP),不过潜在影响不太严重。
PostgreSQL的历史可以追溯到25年前,它缺少适合托管服务的权限模型,导致云供应商只好自行添加代码。
为了将Postgres转变成一项托管服务,云服务供应商就要在不危及服务的情况下为用户提供超级用户权限,为此需要允许一些被认为很危险的功能。
PostgreSQL的权限模型无法为用户提供一组超级用户权限。因此,云供应商不得不进行修改,以便允许普通用户拥有一组超级用户功能。
这番修改让Wiz的团队可以在多款PostgreSQL即服务产品的供应商管理的计算实例上执行任意命令——在极端情况下,未授权访客可以访问使用受影响服务的其他客户的数据。
以Cloud SQL为例,虽然Wiz的团队无法获得超级用户身份,但可以访问其部分权限。其中一个权限是能够将表的所有权任意更改为数据库中的任何用户或角色。
这意味着该团队可以创建一个含有虚假内容的表,随后在该表上创建附有代码执行载荷的恶意索引函数,之后将表的所有者更改为cloudsqladmin,即GCP的超级用户角色,这个角色仅供Cloud SQL用于维护和管理数据库。
Wiz的团队分析该表后,迫使PostgreSQL引擎将用户上下文切换到表的所有者cloudsqladmin,并以cloudsqladmin权限调用恶意索引函数,从而执行shell命令。
Wiz的团队在研究漏洞期间与十几家PostgreSQL供应商合作,以验证和修复所发现的问题。事实证明,许多云供应商做了相同的修改,以便将PostgreSQL调整为一项托管服务,因此可能面临安全隐患。
Tamari说:“作为广泛且负责任的披露过程的一部分,我们将研究结果告知了几大云供应商及其他厂商,以帮助它们确定各自是否存在我们发现的问题。”
参考及来源:https://portswigger.net/daily-swig/multiple-cloud-vendors-impacted-by-postgresql-vulnerability-that-exposed-enterprise-databases