AI News HubLIVE
站内改写2 分钟阅读

用Airgap将秘密隐藏于AI代理和NPM安装之外

Airgap是一款Linux工具,通过在命名空间中运行程序来隐藏文件中的敏感秘密,并对包管理器进行门控访问,有效防止AI代理和恶意NPM包窃取凭证。

来源Hacker News AI作者: netgusto

在当前的AI时代,开发者经常让AI代理读写项目文件,同时从互联网安装各种技能或插件。NPM生态环境中的恶意软件层出不穷,例如Shai-Hulud蠕虫,它们在安装时通过钩子窃取.env文件、SSH密钥和云凭证。此外,AI代理可能会运行命令或安装NPM包,而这些包可能被幻觉或恶意利用。为了解决这些安全风险,Sven Sauleau开发了Airgap,一个专为现代AI时代设计的安全工具。

Airgap的工作原理是通过Linux命名空间包装程序。它在一个新的挂载和用户命名空间中启动目标程序,并将用户主目录和当前工作目录挂载为FUSE文件系统。每个文件系统访问都经过Airgap的处理程序,从而实现对秘密的编辑或对意外文件访问的询问。具体来说,当程序读取.env、私钥或~/.npmrc时,返回的是编辑后的内容,真实值被隐藏。对于像~/.aws/credentials这样的意外文件,Airgap会先征求用户的许可。

Airgap目前支持两类程序:AI代理和包管理器。对于Claude和OpenCode等AI代理,Airgap仅启用编辑模式,使代理能够处理文件但看不到实际秘密。对于npm,Airgap不仅编辑秘密,还引入了交互式文件门控。当NPM安装钩子尝试读取如~/.ssh/id_rsa之类的敏感文件时,Airgap会弹出提示询问用户是否允许,从而阻止恶意钩子窃取凭证。正常的文件读取(如package.json、lockfiles和npm缓存)会被预先批准,不会触发提示。

Airgap能够有效防止像Shai-Hulud这样的恶意软件。Shai-Hulud是一种在2025年末通过NPM传播的自我复制蠕虫。它会在安装时从.npmrc、环境变量以及GitHub PAT和云密钥配置文件中窃取凭证,然后使用偷来的npm令牌重新发布其他包的后门版本。Airgap通过编辑和门控机制,使这些恶意钩子无法获取真实秘密。

为了无缝集成,开发者可以在shell配置中设置别名,如alias claude="airgap claude"、alias npm="airgap npm",这样所有操作都会自动在Airgap下运行。需要注意的是,Airgap只是一个安全层,并非绝对保证。开发者仍需保持警惕,并欢迎为项目贡献代码或报告问题。目前Airgap仅在Linux上可用,macOS支持正在开发中。该项目托管在GitHub上,可通过crates.io安装。