Puppet Forge开始对模块进行安全扫描

IT自动化工具供应商Puppet,宣布在其模块目录Puppet Forge中,添加恶意程序扫描功能,以进一步提高模块的安全性。新的安全扫描功能可以检查上传模块中,所包含的恶意程序代码,以及存在潜在安全疑虑的内容。

官方提到,软件供应链攻击事件层出不穷,过去认为开源程序代码会受到更多的查看,但随着NPM、PyPI或RubyGems等点对点软件组件存储库兴起,这种假设已经不存在。虽然到目前为止Puppet生态系统,尚未因为Forge模块被注入恶意程序代码而受到攻击,但是官方未雨绸缪,在过去几个月打造了模块扫描框架。

对Puppet来说,在打造软件扫描框架之前,要先定义所谓安全的Puppet模块,官方提到,这就像是定义杂草一样,完全和上下文相关联,像是下载tarball并且执行壳层命令,是不少Tomcat模块的运行方式,因此无法排除这种行为,但是可以通过识别文件资源,使用全局可写入权限、广开防火墙规则,或是已知不安全的Apache配置,来找出可疑的文件,并标记出已知恶意软件文件或URL加到模块中的时间。

Puppet Forge安全扫描框架延伸自原本就已经存在的模块自动品质评分系统。由于官方将原本以Jenkins工作管线实做的品质评分系统,移植到更现代基于容器的工作流程,而使得这个工作流程,也适合用于安全分析系统,只要能够在容器中运行的系统,就可以用到Forge中。

Puppet采用VirusTotal作为Forge安全扫描解决方案,VirusTotal提供上传API,该API虽然不了解Puppet程序代码,但是能够解析解压缩模块tarball格式,以及扫描文件内容,找出恶意程序代码,官方提到,VirusTotal汇总了70个杀毒扫描程序,以及URL封锁名单,因此对于Puppet来说是完整的解决方案。

当模块通过VirusTotal扫描,Puppet会将模块标记为已扫描,一旦发现存在恶意程序代码,用户可以通过连接,连接到VirusTotal页面,查看详细的信息。Puppet提到,他们期望在年底之前,所有上传的模块,都会经过安全扫描,但是为了避免零日攻击,他们不会对既有的模块进行扫描,用户还是要对自己使用的模块进行评估。

官方强调,这个扫描框架并不能取代用户自己的安全解决方案,开发者仍然有责任审查不受信任的程序代码,并且运行自己的安全防护软件,他们仅能确保开发者所使用的Puppet模块,不会带来恶意软件。