# 专坑开发者的假工作邀约：我的两次经历、FBI 列出的危险信号，以及应对办法

> 2026 年 6 月，一个假客户的测试项目把恶意软件藏在一个 npm 依赖里，在我的 Mac 上跑了好几天；10 月，又一个假客户让我把一条命令粘贴进终端。一支 53 秒的科普视频：攻击套路、FBI 列出的危险信号，以及能挡住它的三个习惯。

- URL: https://oliverz.dev/zh/videos/fake-job-offer
- Author: Oliver Zhang (https://oliverz.dev)
- Language: zh-Hans
- Published: 2026-10-31
- Tags: security, malware, developer, explainer
- Video: https://www.youtube.com/shorts/ziU4qzdx9ig

> **一句话总结：** 2026 年，假"客户"两次想让我运行他们的代码。6 月那次得手了：测试项目把恶意软件藏在它的一个 npm 依赖里，跑了好几天，没有任何杀毒软件吭声。10 月那次我拒绝了。两次走的都是 FBI 认为与朝鲜有关的同一套路；没有人正式认定我这两次是谁干的，但它们和这套路吻合。FBI 的建议：不要在工作电脑上运行面试代码，非运行不可就用一台单独的虚拟机，并通过另一个渠道核实招聘方是谁。

## 6 月：测试项目本身就是恶意软件

完整经过见我之前的文章 [我在 Upwork 上两次撞上朝鲜黑客的假面试](https://oliverz.dev/zh/blog/upwork-contagious-interview)。简单说：一个自由职业平台上的"客户"给了我一道编程测试。

"He sent over a Node.js test project called "Online_Store". The malicious code was hidden in one of its npm dependencies."（他发来一个叫"Online_Store"的 Node.js 测试项目。恶意代码就藏在它的一个 npm 依赖里。）

我好一阵子都没察觉："By the time I noticed, it had been running in the background for days."（等我发现时，它已经在后台跑了好几天。）

而且什么都没有警告我："neither macOS's built-in XProtect nor traditional antivirus made a sound, either time."（macOS 自带的 XProtect 和传统杀毒软件，两次都一声没吭。）

## 10 月：不开摄像头，"装一下这个会议软件"

四个月后，来了一个新"客户"，这次来自一家假公司。视频通话时，"He kept his camera off"（他一直没开摄像头）。接着，"we had to switch to a meeting app called "Zeff""（我们得换用一个叫"Zeff"的会议软件），而要装它，我得"run a `curl | bash` command in the terminal, or download a DMG. I didn't install it."（在终端里运行一条 `curl | bash` 命令，或者下载一个 DMG。我没装。）

命令和地址都不会出现在视频和本文里：这里讲的是怎么识破诱饵，而不是它会装上什么。

## 一套已知的套路

回头看，两次尝试的形状一样："Both attacks followed the same playbook: contact, build trust, the ask, the payload. The second time, I stopped at the payload."（两次攻击走的是同一套剧本：联系、建立信任、提出要求、投放恶意代码。第二次，我在投放恶意代码那一步停下了。）

FBI 曾对这种形状发出过警告。它的公共服务公告 PSA 240903 题为"North Korea Aggressively Targeting Crypto Industry with Well-Disguised Social Engineering Attacks"（朝鲜以伪装巧妙的社会工程攻击猛烈针对加密货币行业）。我的两次经历和它描述的模式吻合；没有人正式认定它们的来源，所以我不会说是朝鲜黑了我。

## 为什么瞄准的是人

币安被盗后，Aikido 的 Mackenzie Jackson 在接受 BBC 采访时描述了一种转变。用 BBC 的话说："He says hackers have shifted from going after company infrastructure to going after the machines of the people who run it."（他说，黑客已经从攻击公司的基础设施，转向攻击运维这些设施的人所用的机器。）

至于手段："Jackson says techniques vary, but include tricking workers into installing malware under the pretext of a job interview, or interfering with code that developers rely on."（Jackson 说，手法各不相同，但包括以求职面试为借口诱骗员工安装恶意软件，或者篡改开发者所依赖的代码。）

Jackson 描述的是常见手法，并不是在说币安是怎么被攻破的。

## 危险信号

FBI 把这一条列为指标之一："Requests to conduct a "pre-employment test" or debugging exercise that involves executing non-standard or unknown Node.js packages, PyPI packages, scripts, or GitHub repositories."（要求进行"入职前测试"或调试练习，其中涉及运行非标准或来历不明的 Node.js 包、PyPI 包、脚本或 GitHub 仓库。）

从我自己的两次经历里，还能再加两条：一个始终不开摄像头、想换用一个你从没听说过的软件的"客户"；以及要你把一条命令粘贴进终端的要求。

## 补救办法

1. **不要在工作电脑上。** FBI："Avoid taking pre-employment tests or executing code on company owned laptops or devices."（避免在公司所有的笔记本电脑或设备上参加入职前测试或运行代码。）
2. **非运行不可，就隔离开。** FBI 的建议，概括来说：在一台没有连接公司的设备上用虚拟机，或者用测试方提供的设备。
3. **通过另一个渠道核实。** FBI："Develop your own unique methods to verify a contact's identity using separate unconnected communication platforms."（建立你自己独有的方法，通过互不相连的独立通信平台核实联系人的身份。）

## 之后我做了什么

事后，我做了一个工具："So I built a small macOS menu bar app called Tsuba"（所以我做了一个 macOS 菜单栏小工具，叫 Tsuba）。它的思路是："before unfamiliar code runs for the first time, it takes a look for you."（陌生代码第一次运行之前，先替你看一眼。）[Tsuba](https://oliverz.dev/zh/products/tsuba) 免费并且开源。它排在上面这些习惯之后，而不是取代它们。

## 来源

- Oliver Zhang，[我在 Upwork 上两次撞上朝鲜黑客的假面试](https://oliverz.dev/zh/blog/upwork-contagious-interview)，oliverz.dev，2026 年 10 月 28 日
- FBI，[PSA 240903: North Korea Aggressively Targeting Crypto Industry with Well-Disguised Social Engineering Attacks](https://www.ic3.gov/PSA/2024/PSA240903)，2024 年 9 月 3 日
- BBC News，[关于币安被盗的直播页面](https://www.bbc.com/news/live/cqrmynd3042gt)，2026 年 10 月 30 日

视频用代码制作动画，脚本在 AI 辅助下撰写；上面每个事实都对照来源核实过。示意部分：项目目录树和那个标红的依赖、"未发现威胁"的盾牌、视频通话，以及打了码的终端命令。本文讲的是风险和补救办法，不是攻击的具体步骤。视频为英文。视频用 [Shotloop](https://oliverz.dev/zh/products/shotloop) 制作：我做的免费 Mac 应用，用代码做科普短视频，一个镜头一个镜头地改。
