我测试了Google Cloud Run,并且遇到了一些安全问题。假设我使用二进制程序处理用户输入。如果程序容易受到攻击并且恶意代码注入了容器,该怎么办。攻击者将能够访问我的数据库或存储或容器有权访问的任何资源。
问题是:这是一个真正的问题,我该如何预防?
我最好的主意是在其中放置另一个容器,该容器仅容纳可能存在漏洞的二进制文件。
这确实是一个真正的问题–但是,此类攻击并非特定于Cloud Run,而是适用于您可能会使用不受信任的二进制文件的任何计算平台。
假设您ffmpeg
在容器中运行,并且您的一位用户为您提供了要转换的视频输入。该视频可以利用ffmpeg中的漏洞(因为它不是用内存安全的语言编写的,所以存在很多漏洞),并且可以执行任意代码。此任意代码可以有效地泄露您的环境,包括通过查询以下内容来访问GCP API的令牌:
curl -H "metadata-flavor: Google" http://metadata/computeMetadata/v1/instance/service-accounts/default/token
您注入到容器中的机密以及此令牌可能是在遭受攻击时最容易泄露的工件。
为了防止遭受此类攻击,我建议:
--service-account
无权在您的对象中执行任何操作的服务帐户()运行此服务。这样,攻击者可以窃取无法完成的令牌(但是,可以了解您的GCP项目ID或该服务帐户的电子邮件地址)。希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句