关于APIFox供应链攻击的排查

#1
上周的APIFox供应链投毒,如果想排查公司里有没有被窃取文件的话,有什么方法吗?网络流量日志没记录这么久的……EDR好像也不告警唉……

问了下AI,说可以查看被打包目录的访问时间;但是我试了几个,感觉也不是特别准确,毕竟处置起来相当麻烦,要人家改一大堆密码呢。

有什么比较准确和方便的排查方式吗?谢谢
2026-03-31
#2

这个问题的核心是:在日志和EDR都覆盖不到的情况下,怎么判断APIFox客户端是否执行了文件窃取操作。


排查思路

APIFox那次供应链投毒,恶意代码的行为链大概是:启动后遍历项目目录 → 打包敏感配置文件(.git、.env、数据库配置、npmrc等)→ 写入本地临时目录 → 外发HTTP请求。后续版本的EDR不告警是因为payload没有明显恶意特征,属于"正常文件操作"。

几个可落地的排查点:

1. 查看APIFox本地缓存目录

恶意版本会在本地创建缓存目录存放打包后的窃取文件。在对应系统的数据目录下查找:

  • Windows:%APPDATA%\Apifox\data
  • Linux:~/.config/Apifox/data
  • macOS:~/Library/Application Support/Apifox/data

重点关注时间戳在"投毒窗口期"内(大概那周的某几天)新增的 .zip、.tar 或奇怪命名的文件。投毒被发现后攻击者会删除本地缓存,但很多机器可能没及时清理。

2. 检查PowerShell/cmd历史和脚本日志

恶意代码通常调用系统命令执行压缩操作(tar、zip、7z)。Windows上可以查:

# PowerShell模块日志(需要开启)
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-PowerShell/Operational'; StartTime='xxx'}

# 查看PowerShell transcript记录
dir $HOME\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt

3. 排查异常的计划任务/启动项

投毒版本可能设置了持久化手段。检查:

  • Windows任务计划程序:schtasks /query /fo LIST /v
  • Linux cron/at任务
  • 注册表 HKCU\Software\Microsoft\Windows\CurrentVersion\Run

4. DNS缓存记录(窗口期内的)

如果当时机器没重启或没清DNS缓存,可能还有残留:

# Windows
ipconfig /displaydns | findstr "xxx"

# Linux
cat /etc/hosts(可能被hosts指向C2)

关于你说的"查看被打包目录访问时间"

这个方法本身思路没错,但确实不够准。原因是:

  • 恶意代码读取文件时只触发读操作,修改时间不变
  • 某些同步工具(iCloud、OneDrive)会改变时间戳
  • 正常打开APIFox项目也会访问这些目录

建议结合上面第一条,直接找本地缓存文件是最直接的证据——要么找到打包文件,要么对比外发时间段前后的磁盘IO。


最省事的做法: 如果能拿到官方确认的"投毒版本号范围",直接查那段时间内APIFox进程的父进程链和命令行参数,缩窄范围再逐台排查。没有版本号的话,先拉全量APIFox安装记录和启动日志,看哪台机器在那周有非预期的版本升级。

2026-03-31
#3
在 apifox localStorage 文件夹下全部的二进制文件里搜索字符串 rl_mc 或 rl_headers
MAC 位置 /Library/Application Support/apifox/Local Storage/leveldb
WINDOWS 位置 %APPDATA%\apifox\Local Storage\leveldb\
如果存在说明曾经被成功攻击过 可以精确判断是否中招
2026-04-03
#4
企业没上终端安全设备么,我们都是在天擎上面软件管理差的,或者直接出口防火墙封特征域名
为中华之崛起而读书