随着开源生态的蓬勃发展,npm作为全球最大的JavaScript包管理平台,已经成为软件开发不可或缺的组成部分。然而,这也使其成为网络攻击者重点瞄准的目标。最近,网络安全研究机构披露了一起与朝鲜有关联的复杂供应链攻击行动,利用35个恶意npm软件包渗透开发者系统,带来严重的安全威胁。该攻击行动被命名为“Contagious Interview”,其中涉及的恶意软件包由24个不同的npm账号上传,共计下载次数超过4000次。令人担忧的是,其中6个软件包仍可在npm平台上直接下载,分别是react-plaid-sdk、sumsub-node-websdk、vite-plugin-next-refresh、vite-loader-svg、node-orm-mongoose及router-parse。攻击者通过这些软件包植入了一个名为HexEval的十六进制编码加载器,隐藏于代码内部。
HexEval的主要功能是在软件安装后收集宿主机的信息,并根据情况下发后续负载。其中最关键的负载包括一个知名的JavaScript窃取器BeaverTail,该窃取器进一步下载并执行一个名为InvisibleFerret的Python后门程序。InvisibleFerret使攻击者能够远程控制受感染的主机,获取敏感数据。攻击路径呈现出“套娃式”结构,有效绕过了静态分析工具和人工代码审查,显示出攻击者不断优化技术以规避安全检测。此外,有部分软件包还搭载了跨平台键盘记录程序,用以捕捉受害者的每一次按键操作,增加了对目标的监控深度。此次供应链攻击的幕后黑手据称是朝鲜国家支持的黑客组织,自2023年末首次被帕洛阿尔托网络安全研究团队Unit 42公开曝光以来,该行动持续进行,目标直指全球软件开发者,目的在于实施加密货币盗窃和敏感信息窃取。
这股黑客势力在网络安全界拥有多个代号,包括CL-STA-0240、DeceptiveDevelopment、DEV#POPPER及Famous Chollima等,近期还利用另一种名为ClickFix的社交工程手法,推动名为GolangGhost和PylangGhost的新型恶意代码传播,被称为ClickFake Interview子行动。攻击者采取多管齐下的方式,通过LinkedIn等专业社交平台,伪装成招聘人员,主动联系正在寻找工作的软件开发者。在交流中,黑客会发送附带恶意npm包的“编码任务”项目链接,嵌入有攻击组件的GitHub或Bitbucket仓库成为诱饵。受害者在受到“面试”名义的诱导下,未经适当隔离环境直接运行这些项目,导致恶意软件得以执行。研究人员指出,攻击者深谙开发者与招聘人员之间的信任关系,利用工业标准化的招聘流程作为掩护,大大提高了攻击成功率。Contagious Interview供应链攻击展现了北韩黑客集团供应链攻击的新型技术组合,不仅融合了复杂的恶意负载分发,还利用开源软件生态和社交工程的结合来突破传统安全防线。
恶意HexEval加载器通过插入正常包发布来掩盖行踪,躲避npm官方的检测机制,同时该集团还通过多阶段恶意程序实现感染步骤分散,进一步增加防御难度。此次事件也暴露出现有开源软件供应链安全的脆弱性,提醒各方在依赖公有仓库的同时必须提升软件包的溯源和审计机制。开发者需增强对来源不明软件依赖的警惕,尽量在隔离环境或容器中测试第三方包,避免直接在生产或本地环境运行未验证的代码。同时,提升个人信息安全意识,谨慎对待在线招聘面试中的技术测试,尤其是涉及代码下载和环境配置的环节。技术防护方面,企业和安全团队可利用行为分析、动态检测技术加强对软件包运行时的监控,结合威胁情报共享快速响应潜在威胁。全球开源社区也应联合推行安全最佳实践,发展自动化检测工具,确保npm等公共软件仓库的生态健康与安全。
展望未来,供应链攻击手法愈加狡猾多样,国家级攻击者持续完善攻击流程并利用社交平台渗透特定目标领域,开发者和企业必须提升整体安全防御能力,筑牢开源软件供应链的第一道防线。只有全行业通力合作,才能有效遏制此类危害深远的网络威胁,保障开发环境洁净与数字资产安全。