面试项目竟是恶意软件
I Inspected My Take-Home Interview Project. It Was a Whole Operation

上周四,一位招聘人员通过 LinkedIn 联系我,提供了一份月薪 10000 到 15000 美元的远程 Python 开发工作。面对如此诱人的薪资和看似正规的 Y Combinator 初创公司背景,我起初并未多想。然而,在检查他们提供的 take-home 面试项目时,我习惯性运行了 `tree -a` 命令,结果发现 `.git/hooks` 目录下隐藏着恶意的 `pre-commit` 脚本。该脚本会检测操作系统并静默下载远程 payload,最终利用 `Hardhat` 等工具试图窃取加密货币钱包信息。这并非简单的钓鱼,而是一场精心策划的恶意软件分发行动,甚至利用了 VSCode 的启动配置来扩大感染范围。
这不仅仅是一个习惯,可能是我参加 CTF 比赛养成的,但这次它确实在现实世界中救了我一命。
HN 评论区
121- IvanGoncharov
哇,读完这篇文章,我意识到自己也被黑了,而且是用了一种更高级的攻击手段。
几周前,我和一家完全正规公司的 CTO 进行了一次面试。
这有点奇怪,因为他关掉了摄像头,而且对方口音很重。
但除此之外,一切都像正常的筛选面试,对方显然非常懂行。
面试结束时,他解释说在技术面试环节,我需要修改他们的项目(这是一个开源产品),所以他让我克隆仓库并检查环境配置。
后来,HR 说 CTO 生病了,面试将推迟。
但几天后,那个 HR 的 LinkedIn 个人资料被删除了。
这超级诡异,但直到我在 Hacker News 上看到这篇帖子,我才开始起疑。
我检查了一下,发现我在面试期间克隆并运行的仓库里包含恶意软件载荷。
P.S. 我认为这是一次针对性攻击,因为过去我维护过一个非常流行的 NPM 包,周下载量超过 4300 万。这是我唯一能想到的、有人对我实施如此复杂的社会工程学攻击的原因。
P.P.S. 好在所有地方我都开启了双因素认证(2FA),发布 NPM 包时我也总是手动操作,不使用 token。不过,我得把笔记本格式化重装系统了。
- petterroea
最近似乎针对开发者的朝鲜攻击有所增加。除了这种已经持续多年的攻击类型外,我最近每周大概会收到一封来自朝鲜黑客的邮件。内容总是“你好,我发现了你的资料,想合作吗?”之类的。
我所在的编程类 Discord 社区情况也类似。有人出现后,几天内要么问有没有工作机会,要么建议合作。当然,你可能会说这些 Discord 上的人可能真的失业了(在这种经济环境下,很有可能),但消息的数量和相似性说明并非如此。你还能看出这些人出现在……_一些奇怪的地方_求职。举个例子,在一个几乎没人用的 Python 库的 Discord 社区里,活跃度几乎为零,却有人来求职——要么这人找工作找得特别差,要么就是某个攻击者正在爬取 Discord 社区列表并逐个攻击。
这很遗憾,但现在有很多攻击都在利用我们彼此之间的信任。这再次提醒我们,就像爸妈常说的那样:永远不要相信网上的陌生人。
- wxw
> 他们嵌入了一段脚本,用于检查受害者的主机操作系统,并静默执行远程载荷。
这似乎成了一个 recurring theme( recurring 主题),上个月首页就有类似的故事。
- ivanjermakov
> 为什么要用原始 IP 地址?这简直就是在喊“我是恶意软件”。
如果受害者深入检查了 hook 的内容,他们不太可能就此停止怀疑。我敢肯定,大多数开发者不会认为执行 `git commit` 是恶意的(这是 Git 的安全疏忽吗?)。
- vardalab
我从这件事得出的结论是,Claude 作为一个助手完全没用,多亏了那些安全限制和一堆废话。
- lantry
> 旁注:为什么要用原始 IP 地址?这简直就是在喊“我是恶意软件”。至少注册一个诱饵域名,比如 lint-checker.com 或 jenkins-ci-runner.net。如果写下这段代码的威胁行动者在读:请记笔记!
也许他们不想向域名注册商提供任何可识别的信息?或者只是尽量减少自己的在线痕迹?
- nphardon
当 Hacker News 首页终于出现一篇真正与黑客攻击相关的帖子时,真是个好日子。
- CM30
嗯,还有其他人遇到截图加载问题吗?我不得不把大部分截图在新标签页打开才能看到。
不管怎样,这确实是个很狡猾的骗局,过去肯定坑了不少求职者。更可怕的是,文章中提到的 Visual Studio Code 项目听起来更让人毛骨悚然。那个工具真的允许在有人打开你的项目时运行自定义代码吗?这感觉像是一个极其明显的恶意软件传播途径,应该至少有一些安全缓解措施……
另外,这些招聘网站对此类骗局几乎无所作为,也令人担忧。我明白,要识别所有违规行为可能有点难。但按理说,如果无法证明某人确实在某家公司工作,就应该限制其账号声称与该组织有关联。目前,你基本上可以声称自己在任何喜欢的公司工作,或者声称拥有任何机构颁发的任何学位。如果这些信息能进行某种真实的验证,并且在原始发布者未确认隶属于该组织时,在消息顶部显示醒目的警告,那么很多骗局将难以得逞。