minernote/macos-suspicious-app-forensics
GitHub: minernote/macos-suspicious-app-forensics
针对可疑 macOS 样本的静态分流工作流,通过只读挂载和深度特征分析区分篡改与后门,辅助安全评估。
Stars: 0 | Forks: 0
# macOS 可疑应用取证
针对可疑 macOS `.dmg`、`.app` 和 `.pkg` 样本的静态分流工作流。
本仓库帮助安全工程师、研究人员和 AI 代理安全地回答一个实际问题:
“这个 macOS 安装器或应用仅仅是被破解/篡改过,还是显示出后门、持久化、凭证访问或主机风险迹象?”
该工作流程首先设计为只读静态分析。它避免在主机上执行样本,并区分:
- 已证实的内容
- 可疑的内容
- 未证实的内容
- 需要在隔离虚拟机中进行更深层次动态分析的内容
## 本仓库解决的问题
当人们检查可疑的 macOS 软件,尤其是破解应用或共享的 DMG 时,通常会犯以下两种错误之一:
1. 因为杀毒软件未检测到任何内容而信任该样本。
2. 基于通用字符串(如 `private key`、`upload`、`POST`、`Phantom` 或 `Backpack`)过度声称存在恶意软件或钱包盗窃。
本仓库为您提供结构化的工作流,以避免这两种错误。
它帮助您确定样本是否显示以下证据:
- 非官方签名或重新打包
- 注入的 dylib 或补丁加载器
- 官方构建中不存在的额外文件
- 可疑的网络、凭证或持久化能力
- 先前执行后的主机残留痕迹
它还教您如何避免误报。
## 适用对象
- 对 macOS 样本进行分流的安全研究人员
- 检查下载的应用是否仅仅是破解版本或更具危险性的事件响应人员
- 希望在安装第三方工具之前获得可重复安全工作流的 AI 代理构建者
- 收到可疑 DMG 并希望获得基于证据的答案的高级用户
## 包含内容
- `SKILL.md` — 完整的 Hermes skill / 工作流
- `references/false-positives.md` — 常见的误导性字符串及其解读方法
- `references/publish-checklist.md` — 发布该 skill 或公开改编它的检查清单
- `references/qiuchenly-inject.yar` — 针对已观察到的补丁/注入家族的聚焦启发式 YARA 起始规则
- `templates/report-sample.md` — 用于最终结论的报告模板
## 本工作流的作用
该工作流针对静态分流和主机端安全进行了优化。
核心步骤:
1. 计算样本哈希并记录元数据
2. 以只读方式挂载 DMG
3. 验证 codesign、TeamIdentifier 和 Gatekeeper 上下文
4. 在可用时,将样本包与官方安装的构建版本进行比较
5. 使用 `otool -L` 检查注入的 dylib 和动态链接关系
6. 使用 ClamAV 和聚焦的 YARA 规则进行扫描
7. 仔细提取字符串,并将真实指标与噪声区分开来
8. 搜索持久化和主机残留痕迹
9. 生成明确区分证据与不确定性的结论
## 本工作流不做的事情
本仓库不承诺完美的恶意软件检测。
它不会:
- 仅仅因为 AV 清洁就证明样本是安全的
- 仅凭通用的 API 字符串就证明盗窃或外泄
- 取代沙箱化的动态分析
- 取代内存取证或网络遥测
- 在样本受到高度针对性攻击时取代逆向工程
将其作为一种纪律严明的首过分流框架使用。
## 典型用例
### 1. 破解的商业应用
您下载了一个“预激活”的 macOS 应用,并想知道:
- 它是否仅仅是许可证绕过/补丁注入?
- 它是否替换了主要的二进制文件?
- 它是否添加了额外的加载器或辅助工具?
- 是否有明显的持久化或凭证针对性迹象?
### 2. 来自 Telegram / Discord / 论坛的共享 DMG
有人发送了一个 DMG 并声称它是安全的。您希望在考虑安装之前获得一份经过记录的审查。
### 3. AI 代理包审查
您希望代理或助手以可重现的方式检查外部 macOS 制品,而不是做出模糊的声明。
### 4. 主机污染检查
您已经挂载或部分运行了样本,并希望扫描明显的启动项、辅助工具和残留文件。
## 快速开始
### 选项 A:作为 Hermes skill 使用
如果您正在使用 Hermes Agent,放置或加载此 skill 并对样本路径运行它。
输入:
- 样本路径
- 用于比较的可选官方应用路径
预期输出:
- 风险等级
- 已证实的篡改信号
- 在此过程中未发现盗窃/持久化的证据
- 未知项和限制
- 建议的下一步操作
### 选项 B:作为独立检查清单手动使用
示例骨架:
```
# Hash 样本
shasum -a 256 suspicious.dmg
# 以只读方式挂载
hdiutil attach -readonly -nobrowse -noverify -mountpoint /tmp/sample-mount suspicious.dmg
# 检查签名
codesign -dv --verbose=4 "/tmp/sample-mount/Suspicious App.app" 2>&1
spctl -a -vv --type exec "/tmp/sample-mount/Suspicious App.app" 2>&1
# 如果存在,与官方 build 进行比较
otool -L "/tmp/sample-mount/Suspicious App.app/Contents/MacOS/AppBinary"
# 使用 ClamAV / YARA 扫描
clamscan --infected --recursive suspicious.dmg
clamscan --infected --recursive /tmp/sample-mount
yara -r references/qiuchenly-inject.yar /tmp/sample-mount
# 分离
hdiutil detach /tmp/sample-mount
```
有关完整的工作流和解读模型,请参阅 `SKILL.md`。
## 如何正确解读结果
### 有力证据
高信噪比的指标包括:
- 非官方签名机构
- 缺失或意外的 TeamIdentifier
- 主可执行文件显式链接到可疑的 dylib
- 官方构建中不存在的可疑独占文件
- 补丁或注入函数名称
- 意外的辅助工具、启动守护进程或持久化文件
### 弱证据
不应单独使用弱信号来声称已被攻陷:
- 来自加密库的通用 `private key` 字符串
- 通用的 `upload`、`POST`、`zip`、`tar` 字符串
- 通用的浏览器/应用名称,如 `Arc`、`Phantom`、`Backpack`
- 合法应用使用的正常 Keychain 或剪贴板 API
这种区别很重要。一份纪律严明的报告应该说:
- “我证实了补丁注入”
- 除非存在确切的针对性证据,否则不说“我证实了钱包盗窃”
## 输出模型
一份好的最终报告应包含:
- 样本路径和 SHA256
- 比较目标
- 已证实的篡改证据
- 可疑但未证实的指标
- 在此过程中未发现证据的发现
- 局限性
- 安装建议
- 下一步最安全的操作
使用 `templates/report-sample.md` 作为起点。
## 建议的结论分类
持续使用这四个分类:
- 已证实的良性行为
- 已证实的篡改/注入
- 在此过程中未发现盗窃/持久化的证据
- 未知/无法在不进行动态分析的情况下证明
这使报告保持有用和诚实。
## 本仓库帮助回答的示例问题
与其模糊地问:
- “这个破解的应用有病毒吗?”
您可以更精确地回答:
- 它是由官方供应商签名的吗?
- 它是否添加了非官方的 dylib?
- 主二进制文件是否被修改以加载注入的代码?
- 我们是否发现了确切的持久化迹象?
- 我们是否发现了确切的钱包/浏览器针对性逻辑?
- 我们是否发现了明显的主机残留痕迹?
- 在没有沙箱执行的情况下,哪些仍未被证实?
## 安全提示
- 如果可以避免,切勿在日常工作机上执行可疑样本。
- 对于更深层次的动态分析,最好使用一次性虚拟机。
- 在虚拟机中分析高风险样本时,禁用共享文件夹、剪贴板同步和拖放功能。
- 将“未命中 AV”视为一个数据点,而不是结论。
## 局限性
本仓库有意优先考虑静态分析。
这意味着它可能会遗漏:
- 隐藏在运行时解密背后的逻辑
- 仅在启动后获取的分阶段 payload
- 环境感知行为
- 不留下明显字符串的针对性凭证盗窃
如果样本风险较高,正确的下一步是隔离的动态分析,而不是过度自信。
## 本仓库存在的原因
创建本仓库是在一个真实世界的分流案例之后,该案例中一个 macOS 破解应用清楚地显示了第三方注入和篡改,但更困难的问题更加微妙:
“我们实际上证实了资产盗窃,还是仅仅证实了补丁注入?”
这种区别正是该工作流程旨在保留的内容。
## 贡献
欢迎贡献以下内容:
- 更好的 YARA 起始规则
- 更多的误报示例
- 特定于 macOS 的持久化检查
- 改进的报告模板
- 安全的、基于证据的语言改进
请保持核心理念不变:
- 不要过度声称
- 将证据与嫌疑区分开
- 主机安全第一
## 许可证
MIT
标签:APP, ClamAV, Cutter, DMG, dylib注入, PKG, Web 安全测试, YARA, 主机残留, 云安全监控, 云资产可视化, 凭证访问, 取证, 只读挂载, 后门检测, 安全工程, 工作流, 库, 应急响应, 样本研判, 破解软件, 签名验证, 网络信息收集, 误报规避, 静态分析