“不要随便从网上抓取东西”:Chainguard在52000个开源包中发现了什么
Chainguard推出新的源代码扫描器,检测所谓“灰色软件”——即功能透明但包含有害行为的开源包。该扫描器已识别并阻止超过52000个恶意或灰色包,并指出AI驱动的代理开发加剧了这一问题。
Chainguard,一家供应链安全公司,本周推出了一款新的源代码扫描器,旨在检测所谓的“灰色软件”——这些开源包能够执行其宣称的功能,通过所有现有的安全扫描,但会执行企业安全团队绝不会允许的操作。该公司声称,这些灰色软件比传统恶意软件更为普遍,且更难以捕捉。
代理开发的承诺是,任何人都可以通过“vibe coding”将解决方案变为现实,而无需等待工程团队。但Chainguard的首席信息安全官Quincy Castro警告说,关键是不要随便从互联网上抓取东西。“Frank in finance”并非程序员,他是一名财务规划与分析专家。代理代码开发的巨大承诺是允许组织从只能挑选供应商提供的内容中转变。但Castro强调,普通开发者不应在未仔细审查的情况下信任任何包。
灰色软件的定义很重要:传统恶意软件隐藏其行为,而灰色软件则透明地展示其功能,但将有害部分隐藏于显而易见之处。例如,一个社交媒体自动化包需要访问令牌才能运行,但同时也将这些令牌导出到远程命令与控制服务器——这一行为与其声明的目的毫无关联,也完全未向安装它的开发者披露。Chainguard已在npm上标记了五个活跃的灰色软件包,如chrome-tools和@robinpath/cloud-cli,它们公开导出用于收集Chrome密码、cookie和信用卡数据的模块,或者建立永久的后门至第三方服务器。所有这些包仍然可供下载,并且已经超过了注册表用作信任信号的七天冷却期。
Castro认为,灰色软件比纯恶意软件更常见,也更难捕捉,因为它更加微妙。Chainguard的扫描器旨在成为代理开发流程中的关键环节。它不是在开发者请求包时扫描(这可能导致恶意包在检测触发前被缓存),而是在包被添加到Chainguard Libraries目录之前进行分析。扫描器评估维护者行为、包内容、发布信号以及在沙盒环境中的动态执行,从而在包被提供之前做出决定。
关于误报,Castro表示目前尚未发现任何误报。公司还建立了一个策略覆盖层,允许客户将阻止的包加入白名单,并由Chainguard的产品安全团队监督这些决定并监控白名单包的行为变化。
代理开发不会让开发者更谨慎,只会让他们更快。在Frank in finance可以在一个下午“vibe code”出一个生产工作流的世界里,安全审查必须发生在代码落地之前。Chainguard的扫描器目前保护通过Chainguard Libraries for JavaScript提供的npm包,并计划在未来几周扩展到更多生态系统。