Developer Scam
搜索文档
仅差30秒,8年开发者险遭“面试劫”:测试代码暗中“藏毒”,回车一下就可能“倾家荡产”
36氪· 2025-10-21 15:28
攻击事件概述 - 一名拥有8年经验的自由开发者David Dodda遭遇了一场针对开发者的新型定向攻击,攻击者伪装成区块链公司高管,以远程面试和编程测试为诱饵植入恶意代码 [1] 骗局伪装手段 - 攻击者在LinkedIn上伪装成“Symfa公司首席区块链官Mykola Yanchii”,其账号拥有超过1000个真实好友连接,日常动态具有创业者风格,履历非常官方 [2] - Symfa公司的LinkedIn主页设计专业,展示了员工信息、业务介绍以及多条关于“用区块链改造房地产行业”的项目动态,使其看起来像一家正常运营的科技企业 [4] - 邀约流程符合常规:发件人礼貌专业,仅约定线上面试,并提出进行React/Node项目的“Take-Home测试”,代码库结构清晰,附有详细README文档和企业风格宣传图 [9][10] 攻击技术细节 - 恶意代码高度混淆,隐藏在server/controllers/userController.js文件的管理功能之间,采用字节数组隐藏远程URL,通过axios.get获取恶意负载并使用JavaScript的Function构造函数执行 [12][14] - 解码后的恶意URL(https://api.npoint.io/2c458612399c3b2031fb9)指向的负载可自动读取本地文件系统、抓取浏览器Cookie、访问加密钱包客户端并获取环境变量中的数据库密码与生产环境密钥 [12] - 攻击者设置了24小时自动失效机制,URL在24小时后完全失效,以降低被溯源的风险 [12] 利用的心理与技术弱点 - 心理诱导层面:利用开发者熟悉的面试流程(如Take-Home测试)、LinkedIn高管档案的权威感、人为制造的时间压力(要求在30分钟内完成测试)以及公司主页和员工列表等社会证明,降低开发者警惕性 [15] - 技术伪装层面:恶意代码嵌入正常业务逻辑中,采用字节数组混淆而非明文URL以躲避基础关键词检测,并设置URL自动销毁机制,伪装程度高 [15] 安全建议总结 - 运行未知代码需在隔离环境(如Docker、VM)中进行,绝不在主机直接运行 [16] - 在运行前应使用AI或静态分析工具对代码进行入口点、require/exec、new Function及远程请求等模式的检查 [16] - 验证招聘方真实性时应核查官网、域名、公司邮箱,而非仅依赖社交资料 [16] - 对任何强制或催促执行代码的要求保持怀疑,避免因时间压力跳过安全流程 [16]