“协作者”陷阱:为什么绝不要“测试”朋友的机器人

执行摘要:社会工程学不仅仅是关于假工作。它是关于假友谊。本文探讨了 Discord 和 Telegram 上的“帮我修个 Bug”骗局,攻击者打着合作的幌子诱骗开发人员克隆恶意仓库。
Midjourney 提示词 (Prompts)
/imagine prompt: A split view of a Discord chat interface. On one side, a friendly anime avatar asking for help. On the other side, a dark web dashboard waiting for a connection, "Social Engineering" --ar 16:9/imagine prompt: A developer typing "git clone" into a terminal, but the text turns into red vipers slithering out of the screen, "Malicious Repository" --ar 16:9/imagine prompt: A frantic "Wallet Drained" notification on a smartphone screen, background is a blurred matrix of code, "The Aftermath" --ar 16:9
1. 布局:“你能帮我修这个 Bug 吗?”
你身处一个流行 Web3 库的 Discord 频道(例如 Ethers.js 或 Hardhat)。一个用户发私信或在公共频道发帖:
“嘿 Dev,我正在做一个套利机器人,但在 Sepolia 测试网上遇到了一个奇怪的 Gas 错误。你能帮我看看吗?我卡住了。”
他们不要钱。他们不索要你的助记词。他们利用的是你的 好奇心 和 乐于助人。
他们发送一个 GitHub 链接。它看起来像是一个标准的 Hardhat 项目。

2. 载荷:所谓的“测试”脚本
你克隆了仓库。你检查了 contracts/ 文件夹。Solidity 代码看起来没问题——也许有点乱,但很安全。
骗子说:“只需要运行测试脚本,你就会看到错误。”
你输入:
npm install
npx hardhat test
游戏结束。
当测试运行并在控制台打印假的“Gas 错误”时,一个后台进程(隐藏在稍微修改过的依赖项或 test.js 文件中)已经完成了:
- 扫描你的
~/.config文件夹。 - 找到你的
browser_data(Chrome/Brave 本地状态)。 - 解密你保存的密码和 MetaMask 密钥库。
- 将打包的数据上传到远程服务器。

3. “游戏测试员”变体
另一个针对游戏玩家的常见变体:
“我正在开发一款 Web3 游戏(像 Axie/Pixels),需要内测玩家。只要玩 20 分钟我就付给你 100 美元的 ETH。”
他们发给你一个 .exe 或安装文件。
骗局: 游戏是真的(通常是盗用的 Unity 模板),但安装程序会释放一个“剪贴板劫持软件 (Clipper)”。
- Clipper 恶意软件: 它监控你的剪贴板。当你复制钱包地址进行转账时,它会瞬间将地址替换为黑客的地址。你在不知不觉中将资金发给了攻击者。

4. 如何识别“协作者”
- “私有”仓库: 合法的开源帮助发生在公开的 Issue 中,而不是私信或 ZIP 文件中。
- 混淆代码: 如果你在仓库中看到一个文件(如
lib/utils.js)是一行长长的随机字符 (var _0x5a1...),立即删除它。 - 催促运行: 如果当你说“我先读读代码”时他们变得不耐烦,拉黑他们。
5. 防御协议:沙盒 (The Sandbox)
永远不要在你的主力机器上“帮助”陌生人。
- 使用 Replit / CodeSandbox: 将他们的仓库导入云环境。如果包含恶意软件,它会感染云容器,而不是你的 PC。
- 虚拟机隔离: 正如我们在 传染性面试 指南中提到的,对任何非你自己编写的代码使用虚拟机。
- 审计脚本: 在运行
npm install之前,务必阅读package.json脚本。
参见: 提防 YouTube 上的“快速致富”机器人教程。它们通常是伪装的 MEV 机器人骗局。
结论
在开源世界里,信任是赚来的,不是给的。一个“有 Bug 的机器人”是书中更古老的把戏。如果有人需要帮助,让他们发布代码片段 (CodeSnippet) 或 Gist——永远不要克隆陌生人的仓库。
