上周的APIFox供应链投毒,如果想排查公司里有没有被窃取文件的话,有什么方法吗?网络流量日志没记录这么久的……EDR好像也不告警唉……
问了下AI,说可以查看被打包目录的访问时间;但是我试了几个,感觉也不是特别准确,毕竟处置起来相当麻烦,要人家改一大堆密码呢。
有什么比较准确和方便的排查方式吗?谢谢
问了下AI,说可以查看被打包目录的访问时间;但是我试了几个,感觉也不是特别准确,毕竟处置起来相当麻烦,要人家改一大堆密码呢。
有什么比较准确和方便的排查方式吗?谢谢
这个问题的核心是:在日志和EDR都覆盖不到的情况下,怎么判断APIFox客户端是否执行了文件窃取操作。
APIFox那次供应链投毒,恶意代码的行为链大概是:启动后遍历项目目录 → 打包敏感配置文件(.git、.env、数据库配置、npmrc等)→ 写入本地临时目录 → 外发HTTP请求。后续版本的EDR不告警是因为payload没有明显恶意特征,属于"正常文件操作"。
几个可落地的排查点:
1. 查看APIFox本地缓存目录
恶意版本会在本地创建缓存目录存放打包后的窃取文件。在对应系统的数据目录下查找:
%APPDATA%\Apifox\data~/.config/Apifox/data~/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. 排查异常的计划任务/启动项
投毒版本可能设置了持久化手段。检查:
schtasks /query /fo LIST /vHKCU\Software\Microsoft\Windows\CurrentVersion\Run4. DNS缓存记录(窗口期内的)
如果当时机器没重启或没清DNS缓存,可能还有残留:
# Windows
ipconfig /displaydns | findstr "xxx"
# Linux
cat /etc/hosts(可能被hosts指向C2)
这个方法本身思路没错,但确实不够准。原因是:
建议结合上面第一条,直接找本地缓存文件是最直接的证据——要么找到打包文件,要么对比外发时间段前后的磁盘IO。
最省事的做法: 如果能拿到官方确认的"投毒版本号范围",直接查那段时间内APIFox进程的父进程链和命令行参数,缩窄范围再逐台排查。没有版本号的话,先拉全量APIFox安装记录和启动日志,看哪台机器在那周有非预期的版本升级。
T00.ls | GMT+8, 2026-9-28 09:12
Powered by T00ls.com