天创培训:您身边的信息安全培训专家!
行业动态
ETCD数据库曝未授权访问漏洞 允许攻击者窃取密码和AWS密钥

ETCD数据库曝未授权访问漏洞 允许攻击者窃取密码和AWS密钥

从服务器的安全角度来讲,数据库绝对可以说是我们系统中最具价值的部分。无论是应用程序客户端还是在线服务,如果脱离了用于存储数据的数据库可以说均会是“一无用处”,并且这些数据对于企业来说是“资源”,也是“财富”。

因此,类似MySQL、PostgreSQL和MongoDB这样的数据库通常都会被被企业的IT团队谨慎对待。不过,今天在这里我们要谈到的是一个非常规数据库——ETCD。

ETCD是自称“开源黑客”和“在线自由主义者”的CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。根据官方的说法,它是一个键值存储仓库,可用于配置共享和服务发现(Service Discovery)。

正如上面提到的那样,ETCD通常被用于服务发现,即在同一个分布式集群中的进程或服务找到对方并建立连接,这涉及到在各种服务器和应用程序之间存储和分发密码和配置设置。

根据安全研究人员Giovanni Collazo的说法,ETCD实现了一个可以查询的编程接口,并且在默认情况下并不需要任何身份验证就可以返回管理登录凭证。换句话来说,任何人都可以对利用ETCD的这个机制来访问数据库内容。

为此,Collazo在使用Shodan 搜索引擎进行了一次搜索,他成功地找到了2284台运行ETCD数据库的服务器,并且诸如cms_admin、mysql_root、 postgres 之类的登录凭证以及服务器证书都可以进行查看。

在进一步测试中,Collazo创建了一个简单的脚本来检索并转储服务器上的某些敏感数据,所有的这些数据都以JSON格式进行了返回。在收集到约来自1485个唯一IP的750MB数据之后,Collazo停止了脚本的运行,共有8781 个密码、650 个AWS 访问密钥、23 个密钥和 8 个私钥包含在其中。

Collazo表示,他并没有去证实这些密码或者密钥的可用性,但至少它们使得攻击者入侵某些服务器或系统存在可能性。另外,别忘了还有可查看的服务器证书,任何人在几分钟之类都可以获得它们,这意味着至少数百个服务器会成为数据泄露或者勒索攻击的受害者。

Collazo还强调,由于这些运行ETCD数据库的服务器对于攻击者来说是“完全开放”的,他几乎可以确定攻击者可以使用相同的接口对服务器进行写操作,这将允许攻击者修改ETCD数据库中的数据或者进行配置修改,甚至是修改身份验证配置以将服务器的所有者“拒之门外”。

由于问题的根源在于ETCD在默认情况下并未开启身份验证,因此作为普通用户来讲启用身份验证便能及时解决这一问题。另外,将不必要的服务器直接连接到互联网永远都不会是一个好习惯,使用安全组或设置防火墙规则才能够避免未经授权的人员对服务器进行读取和写入操作。

Collazo表示,他还希望ETCD团队能够将安全作为首要考虑因素,以默认启用身份验证。