返回文章库

威胁情报|伪装成招聘面试的 GitHub 投毒事件分析

查找币 漏洞披露 安全研究 Web3安全 区块链安全
威胁情报|伪装成招聘面试的 GitHub 投毒事件分析

查找币安全研究院

链上取证分析 | Web3 风险核验 | Web3 事件响应
以合法授权、证据保全、隐私保护和可复核流程为前提,不要求用户在线提交敏感凭证或非公开材料。

查看研究院 研究报告中心
> 攻击者冒充 Web3 项目招聘方,通过 LinkedIn 接触开发者,诱导其运行恶意 GitHub 仓库。恶意代码藏身于看似正常的 Tailwind 插件中,在本地开发环境执行窃密逻辑。 ## 事件概述 近期,查找币监控系统捕获到一起高度针对开发者的恶意代码投递活动。攻击者伪装成 Web3 项目的招聘负责人,在 LinkedIn 上主动联系目标开发者,以"面试前体验 MVP 产品"为由,发送一个包含恶意代码的 GitHub 仓库,诱导开发者在本地环境中运行。 该攻击链路设计精巧,与真实技术面试流程高度吻合,且攻击者账号经过长期运营包装,具备较强的可信度与迷惑性。 ## 攻击流程还原 ### 第一步:建立信任 攻击者通过 LinkedIn 私信联系目标开发者,账号资料显示为 Web3 投资与商务从业者,历史动态持续发布项目投资、产品建设等话题,营造出真实的行业从业者形象。 ### 第二步:诱导执行 在沟通工作经历和面试安排后,攻击者声称需要目标提前体验产品 MVP,以便在面试中讨论具体技术细节,随即发送 GitHub 仓库链接。对于开发者而言,拉取代码、安装依赖、启动项目本就是日常操作,因此不易察觉异常。 ### 第三步:代码执行 目标按照项目说明执行开发或构建命令时,恶意代码在本地被 Node.js 环境加载并执行,触发后续窃密行为。 ## 恶意代码技术分析 ### 样本基本信息 | 项目 | 值 | |------|------| | 文件路径 | `theme/js/auron-core.min.js` | | 文件大小 | 4,069,335 字节(约 4 MB) | | SHA-256 | `78315f36bfe3ac62ec1a69a281be64c0db3614250a7851708813b0739a07842f` | | 触发条件 | `NODE_ENV === "development"` 且执行 Tailwind 构建 | ### 加载机制 该恶意文件被写入 `tailwind.config.ts` 配置文件,以 Tailwind 插件的形式注册: ```javascript require("./theme/js/auron-core.min.js"); ``` 这意味着文件并非浏览器端加载的静态资源,而是在 Tailwind 构建过程中被 Node.js 直接执行。开发者只要按照项目说明运行 `npm run dev` 或执行 CSS 构建,就会触发恶意代码。 ### 第一阶段:加载器 文件开头代码结构如下: ```javascript module.exports = ({ addBase }) => { if (process.env.NODE_ENV === "development") { // 混淆后的恶意代码 } }; ``` 样本运行于 Node.js 环境,外层被包装为 Tailwind/PostCSS 插件,恶意逻辑隐藏在插件函数内部。代码经过重度混淆,静态阅读效率较低,需在受控沙箱环境中动态分析。 ### 第二阶段:三路窃密 Payload 第一阶段加载器会启动多个隐藏的 Node.js 子进程,并向其中注入三段第二阶段脚本,分别承担以下职责: 1. **浏览器与钱包数据窃取**:从 Chrome、Firefox 等浏览器及常见 Web3 钱包扩展中提取本地存储的凭据、私钥、助记词等敏感信息。 2. **本地文件搜索与上传**:遍历用户目录中的特定类型文件(如文档、配置文件、密钥文件等),筛选后上传至攻击者控制的服务器。 3. **远程控制通道建立**:与 C2 服务器建立持久化通信链路,支持后续下发任意指令,实现远程控制。 ## 攻击特点分析 与常见的假空投页面、恶意文档附件或诱导执行终端命令等方式不同,本次攻击将恶意代码直接嵌入一个看似正常的开发项目中。风险发生在本地开发环境,攻击者利用开发者对代码仓库和开发流程的信任,降低了受害者的警惕性。 该攻击方式对开发者的威胁尤为突出,原因包括: - **信任链前置**:攻击者先通过社交工程建立信任关系,再发送恶意仓库。 - **执行路径隐蔽**:恶意代码伪装成构建工具插件,在常规开发操作中被触发。 - **窃密范围广**:同时覆盖浏览器数据、钱包凭证和本地文件,影响面较大。 ## 防护建议 针对此类攻击,查找币安全团队建议开发者采取以下防护措施: 1. **验证招聘方身份**:对远程面试或外包项目中的代码仓库保持警惕,通过官方渠道核实对方身份。 2. **审查项目依赖**:在运行未知项目前,检查 `package.json`、`tailwind.config.*` 等配置文件中的可疑插件或脚本。 3. **使用隔离环境**:在虚拟机、Docker 容器或独立沙箱中运行来源不明的项目代码。 4. **监控网络行为**:留意开发过程中是否存在异常的对外网络连接或数据上传行为。 5. **部署自动化检测**:使用查找币监控系统 API 或 DepScan CLI 工具,对项目依赖进行自动化安全扫描。 ## 威胁指标(IOC) - 恶意文件 SHA-256:`78315f36bfe3ac62ec1a69a281be64c0db3614250a7851708813b0739a07842f` - 恶意文件路径:`theme/js/auron-core.min.js` ## 查找币监控系统响应 查找币监控系统已第一时间通过情报推送与客户告警通道同步风险。本次行动涉及的全部恶意包及 IOC 已接入查找币监控系统威胁检测引擎,开发者可通过 API 对项目依赖进行自动化检测,快速判定是否命中已知恶意包并获取处置建议。 **相关工具:** - 📖 API 文档:`https://app.查找币监控系统.io/api-docs` - 🛠️ 查找币监控系统-DepScan:轻量级 CLI 工具,一行命令扫描项目依赖与全局安装包中的已知恶意包,支持 npm / PyPI / Cargo / Go / RubyGems 生态 - 🛠️ 查找币监控系统-Skills:AI 编码助手安全技能包,在依赖安装与 URL 访问前自动触发安全检测 --- **本文由查找币安全团队整理发布**
在文章库中查看和回复