来自德国亚琛工业大学(RWTH Aachen University)的4名研究人员在近日发布的论文中指出,他们分析了来自公共仓库Docker Hub及其它8,076个私有Docker仓库的337,171个镜像文件,发现其中的28,621个镜像文件含有秘密,包括私钥、API秘密与其它敏感资讯等,占所分析总数的8.5%。其中,Docker Hub镜像文件外泄秘密的比例为9.0%,私有仓库则是6.3%。

研究人员自这些仓库中总计发现了52,107个私钥及3,158个外泄的API秘密,同时它们也带来了真正的安全威胁。

调查显示,在外泄的3,158个不同API秘密中,有2,920个隶属于云计算服务供应商,包括AWS API(1,213个秘密)、Alibaba API(177个秘密),还有超过200个API秘密涉及社交网站,另有25个秘密与Stripe API有关。这些API秘密或许是身份认证凭证,或许是访问权限,将允许黑客假冒用户身份、任意操纵数据、滥用服务、执行凭证填充攻击,或者是注入恶意程序等。

在外泄的私钥中,由通用凭证管理中心所发行的1,060个凭证便依赖其中的某些私钥,另有超过27万台的主机正在使用这些外泄私钥,以于TLS及SSH协议环境中进行身份认证。

值得注意的是,有许多私钥是在创建容器镜像文件的程序中,因为安装封包而自动产生的。由于容器镜像文件既可携,又能于不同的环境中分享,使得同样的密钥也会被复制到不同的容器中,倘若黑客于其中一个容器取得密钥,便有机会危害所有使用同样密钥的容器。

除了自动产生的私钥之外,部分缺乏危机意识的用户是故意将秘密放置于镜像文件中,也有些第三方封包默认即含有秘密,则很容易被用户忽略。此外,有些私有仓库的镜像文件含有敏感软件,还有些私有仓库没有限制写入权限。