「offer 还没影,木马先上门」:求职面试成了黑客的新入口

| | 1 次浏览

对开发者而言,"把仓库 clone 下来、装好依赖、跑起来”几乎是肌肉记忆。但当这套动作发生在一场求职面试里,对面坐着的“面试官”正等着你执行他发来的代码,肌肉记忆就成了最好的帮凶。本周,德国开发团队 Codedge 发布了一篇题为《How to compromise your system with a job interview》的演示文章(原文HN 讨论),在 Hacker News 上引发热议:攻陷一台开发机,不需要零日漏洞,一场面试就够了。

面试如何变成攻击链

原文是一篇第一人称视角的演示复盘,其思路与近两年安全厂商反复警告的真实攻击高度吻合。完整链条大致是:

  1. 包装身份:在 LinkedIn 等平台伪造招聘经理,主页精致、JD 专业、话术无懈可击,甚至配有假公司官网。
  2. 制造场景:以“技术评估”为名进行远程面试,过程中要求候选人 clone 指定仓库并运行项目,或安装某个“录制插件”“安全客户端”。
  3. 载荷落地:恶意代码藏在依赖包的安装钩子里,npm install 敲下的一瞬间就已经执行;所谓插件则是彻头彻尾的信息窃取木马。
  4. 利用信任惯性:求职者处于高压、急于表现的状态,配合度极高、警惕性最低,社工成本几乎为零。

这套打法并非纸上谈兵。安全厂商披露的“感染式面试”行动自 2023 年底起持续活跃,被归因于朝鲜 Lazarus 组织,目标是开发者的加密资产、SSH 密钥与云凭据,同时也是朝鲜“IT 工人”渗透西方远程岗位计划的前哨战。HN 评论区里,不少开发者表示自己或同事真的收到过几乎一模一样的“面试邀约”。

为什么偏偏是招聘场景

开发流程本身即攻击面。 Node 生态的 postinstall 脚本让“安装依赖”等价于“执行任意代码”,而“跑一下别人的项目”恰恰是开发者每天在做的事。攻击者不需要找漏洞,只需要借用你的职业习惯。

招聘流程存在信任错配。 面试的本质是“请你配合并展示执行力”,这与安全直觉天然相悖。更糟的是,不少公司的面试题就是“clone 我们的 demo 并跑起来”,整个行业都在训练候选人放弃对陌生代码的审查。

攻击半径被放大。 一台开发机上往往同时挂着 Git 凭据、云平台 token、生产数据库连接串,个人失守常常意味着企业边界失守。

AI 让伪装更便宜。 大模型可以批量生成以假乱真的招聘话术,实时换脸让视频面试的“眼见为实”也不再可靠,伪造一个“技术总监”的成本正在趋近于零。

普通开发者能做什么

  • 陌生代码一律先进沙箱、容器或一次性虚拟机,宿主机不是试验田;
  • 安装前读一遍 package.jsonscripts 字段,临时调试可用 npm install --ignore-scripts
  • 不安装对方指定链接里的“会议插件”,视频软件只从官方渠道获取;
  • 对招聘方做反向尽调,异常的急迫感(“今天就完成测评”)是典型信号;
  • 企业也该自查:面试流程是否在强制候选人执行未审计代码?这既是安全隐患,也是对候选人的不公平。

简短点评

安全行业常说“人是 weakest link",但更准确的说法是:特定流程会把人变弱。求职是少数几个我们会心甘情愿执行陌生人发来代码的场景——攻击者没有破解任何系统,只是借用了流程里本就存在的信任。因此,修复不能只靠个人警觉:工具层要让“安全地跑陌生代码”成为默认选项,行业层要把“运行未审计代码”从招聘惯例中剔除,才算治本。下次面试官微笑着问“项目跑起来了吗”,愿你至少先回一句:这代码,审过吗?

评论(0)

暂无评论,来写第一条吧。