乐于分享
好东西不私藏

“别从网上随便下载东西”:Chainguard在52,000个开源包中发现了什么?

“别从网上随便下载东西”:Chainguard在52,000个开源包中发现了什么?

Chainguard推出新型源码扫描器,旨在识别传统安全扫描难以发现的“灰色软件”。该软件功能透明但行为恶意,在AI代理开发及“氛围编程”日益普及的背景下,对企业供应链安全构成巨大威胁。该工具通过预先分析包行为,有效拦截了超5万个恶意或灰色软件包。

译自:“Don’t just grab random stuff off the internet”: What Chainguard found in 52,000 open-source packages[1]

作者:Darryl K. Taft

代理开发[2] 的前景在于,任何人——无论是财务分析师、运营经理,还是 非技术创始人[3]——都可以在无需等待工程团队的情况下,通过 氛围编程[4] 开发出一个解决方案。但前提是,这些进入 AI 生成应用[5] 的开源成分是安全可用的。

供应链安全公司 Chainguard[6] 认为事实并非如此,并表示他们有数据证明这一点。

该公司本周推出了一款新的 源代码扫描器[7],它超越了传统的恶意软件检测,旨在捕获所谓的“灰色软件”:这些开源软件包的功能与其宣传的完全一致,能通过市场上现有的所有安全扫描,但执行的操作却是企业安全团队绝对不允许的。

“财务部门的 Frank 并不是程序员。他是做财务计划与分析(FP&A)的。于是,一个能够让你通过氛围编程创建解决方案的工具出现了——但千万不要从网上随便下载那些可能来自任何地方或被恶意行为者操纵的东西。”

“代理代码开发的一大承诺是,它允许组织摆脱那种只能在供应商愿意提供的产品中做选择的限制,” Chainguard 的 CISO Quincy Castro 在接受 The New Stack 简报时表示。“但财务部门的 Frank 并不是程序员。他是做财务计划与分析(FP&A)的。于是,一个能够让你通过氛围编程创建解决方案的工具出现了——但千万不要从网上随便下载那些可能来自任何地方或被恶意行为者操纵的东西。”

新的 Chainguard 扫描器目前每天分析超过 100,000 个软件包,并已拦截了超过 52,000 个被认定为恶意软件或灰色软件的包。

什么是灰色软件

这种区别至关重要。传统的恶意软件会隐藏其行为。而按照 Chainguard 的定义,灰色软件对其功能是透明的——它只是将有害的部分掩盖在光天化日之下。

Castro 在简报中提到的一个例子是某社交媒体自动化软件包,它需要访问令牌才能运行。但该软件包同时会将这些令牌导出到远程命令与控制服务器——这种行为与其声称的用途完全无关,并且在安装它的开发者面前从未披露过。

“我不认为一个普通人会想到,他们在批准该程序的同时,也批准了将这些令牌从自己的系统中导出,并发送到某个地方去进行不知名的用途。”

“你以为你是在给它授权以自动化你正在做的工作,” Castro 说,“我不认为一个普通人会想到,他们在批准该程序的同时,也批准了将这些令牌从自己的系统中导出,并发送到某个地方去进行不知名的用途。”

这种模式出现在凭据窃取、API 密钥采集、命令拦截和持久远程访问等场景中。Chainguard 已经在 npm 上标记了五个真实的案例——名称如 chrome-tools 和 @robinpath/cloud-cli 的包,它们公开导出用于窃取 Chrome 密码、Cookie 和信用卡数据的模块,或者建立通往第三方服务器的永久后门。这五个包目前仍然可以下载。所有这些包都通过了注册表用作信任信号的标准七天冷却期。

Castro 表示,他认为在野外环境下,灰色软件比纯粹的恶意软件更普遍——而且由于它更加隐蔽,也更难被发现。

“灰色软件具有任何理性的开发者或企业在进行正式审查时都不会期望、想要或允许出现在其应用中的功能,” Chainguard 的资深产品营销经理 Ross Gordon 和资深安全工程师 Evan Gibler 在一篇关于此次发布的 博文[8] 中写道。

“这些软件包看起来和你从公共注册表中下载的其他任何东西完全一样,却带来了令人担忧的安全缺陷。它们坦诚地声明了它们要做什么,而它们所做的正是有害的行为。我们发现的案例结合了凭据窃取、命令拦截、API 密钥采集和持久远程访问。”

为什么 AI 让情况变得更糟

灰色软件问题并非新事物。但 Castro 解释说,代理开发已将一种可控的风险转变成了一种结构性风险。

他说,在 AI 编程工具出现之前,人工代码审查就已经变得不切实际了。现在,随着非技术用户通过自然语言提示创建应用,以及 AI 代理自动拉取依赖项,灰色软件的暴露面已大幅扩大。而人类的监管力量已无法跟上。

“无论我们是针对庞大的代码库进行大规模审查,还是开发人员自己进行审查——对任何人来说,这都变得越来越不切实际。”

“无论我们是针对庞大的代码库进行大规模审查,还是开发人员自己进行审查——对任何人来说,这都变得越来越不切实际,” Castro 在谈到人工审查时说道。

这为企业级的代理浪潮创造了一个特定的威胁模型。Castro 解释说,当知识工作者通过氛围编程构建工作流自动化工具,而他们的代理拉取了一个窃取访问令牌的包时,在开发者和损害之间并没有 SRE 团队作为屏障。

Chainguard 的扫描器旨在置于该瓶颈处。它不会在开发者请求包时才进行扫描(这会创造在检测触发前恶意包可能被缓存的暴露窗口),而是在包被添加到 Chainguard Libraries 目录之前就进行分析。

该扫描器会评估维护者行为、包内容、发布信号以及在沙箱环境中的动态执行情况,并在包被提供之前做出决定。

竞争优势

Chainguard 的博文断言,替代方案只能捕获明显的恶意软件。当被要求提供支持时,Castro 坚持这一说法——并为竞争对手为何可能落后提供了可能的解释。

“我们每天、每小时都在构建海量的开源项目,” 他说。“我们拥有大量关于这些包是什么样子的数据,以及它们被构建时的遥测信息。可能我们确实拥有一些其他人所没有的关于这些东西的信号。”

Socket、Snyk、Sonatype 和 Endor Labs 等公司都在开源软件包的行为分析上进行了大量投入。

关于误报问题,Castro 表示目前尚未发现任何误报。该公司还建立了一个策略覆盖层,允许客户将已拦截的包加入白名单,并由 Chainguard 的产品安全团队监督这些决策,同时监控白名单中的包随时间推移的行为漂移。

“我们在这里做出了一种有意的权衡,即允许误报以防止漏报,” Chainguard 联合创始人兼 CEO Dan Lorenc 在 LinkedIn 的一篇文章中写道。“我们的早期测试表明,它的表现与目前市面上所有的其他恶意软件扫描器相当甚至更好,而且你还能获得拦截灰色软件的额外好处。如果我们做得过头了,你只需将单个包加入白名单即可。我们不会评判你。”

更大的愿景

对灰色软件的定位指出了一个在很大程度上被忽视的问题。供应链安全[9] 一直集中在如排版抢注、依赖混淆攻击和维护者账户被盗等问题上——这些都是有东西被隐藏的情况。更棘手的情况是那种明确告诉你它要做什么,并寄希望于你不够仔细而无法理解它的软件包。

代理开发并没有让开发者变得更谨慎。它让他们变得更快。Castro 说,在一个财务部门的 Frank 可以在一下午就通过氛围编程完成生产工作流的世界里,本应发生在“安装包”和“发布到生产环境”之间的安全审查必须在某个地方发生。Chainguard 认为它应该在代码落地之前就发生。

Chainguard 的扫描器目前保护通过 Chainguard Libraries 为 JavaScript[10] 提供的 npm 包。该公司表示,未来几周内,覆盖范围将扩展到其他生态系统。

引用链接

[1] “Don’t just grab random stuff off the internet”: What Chainguard found in 52,000 open-source packages:https://thenewstack.io/chainguard-greyware-scanner-vibe-coding/[2]代理开发:https://thenewstack.io/agentic-ai-is-quickly-revolutionizing-ides-and-developer-productivity/[3]非技术创始人:https://thenewstack.io/vibe-coding-ceos-executives-ai-agents/[4]氛围编程:https://thenewstack.io/how-to-use-vibe-coding-safely-in-the-enterprise/[5]AI 生成应用:https://thenewstack.io/ai-coding-tools-create-more-bugs-than-they-fix/[6]Chainguard:https://www.chainguard.dev/[7]源代码扫描器:https://thenewstack.io/sonatype-offers-its-malicious-source-code-blocker-as-a-service/[8]博文:https://www.chainguard.dev/unchained/the-expanding-threat-landscape-chainguard-now-scans-source-code-for-traditional-malware-and-greyware[9]供应链安全:https://thenewstack.io/are-we-thinking-about-supply-chain-security-all-wrong/[10]JavaScript:https://thenewstack.io/30-years-of-javascript-10-milestones-that-changed-the-web/