danutmatinca/macos-system-check
GitHub: danutmatinca/macos-system-check
一套基于 macOS 内置工具的手动终端安全排查方法论,通过进程、持久化、网络和 AV 状态四步流程检测潜在入侵指标。
Stars: 0 | Forks: 0
# macOS 进程与系统检查
这是一项在 macOS 上进行的手动终端排查练习,完全使用内置的命令行工具完成(不依赖任何第三方 EDR/防病毒产品)。目标是:从四个独立的方面检查正在运行的系统是否存在入侵指标 (IOC) —— 正在运行的进程、自启动持久化、网络连接,以及 Apple 内置防恶意软件保护 (XProtect) 的状态。
## 为什么做这个项目
这源于一个简单的问题:*“我正在运行的进程列表中有什么看起来可疑的吗?”* 乍一看,有一个进程名称 (`doubleagentd`) 令人警惕。与其停留在“这名字听起来不妙”,不如逐步进行验证 —— 完整的二进制文件路径、代码签名链以及系统完整性保护状态 —— 直到最终确认它是合法的 Apple 系统服务,而不是间谍软件。
那个单独的案例成为了一套更广泛、可重复的方法论的起点:一套可以在任何 Mac 上重新运行的四步系统检查方法。
## 仓库内容
| 文件 / 文件夹 | 用途 |
|---|---|
| [`System_Check_DE.md`](./System_Check_DE.md) | 分步指南(德语)—— 包含所有命令及其执行顺序,可直接复制粘贴 |
| [`System_Check_EN.md`](./System_Check_EN.md) | 分步指南(英语)—— 包含所有命令及其执行顺序,可直接复制粘贴 |
| [`findings.md`](./findings.md) | 实际执行的分析及其结果的报告(德语) |
| [`scripts/check_process.sh`](./scripts/check_process.sh) | 将进程名称解析为其完整的二进制文件路径并检查其代码签名 |
| [`scripts/xprotect_check.sh`](./scripts/xprotect_check.sh) | 检查 XProtect(Apple 内置的防病毒工具)是否处于活动状态且为最新版本 |
## 方法论一览
1. **进程基线** (`ps -ef`) —— 当前正在运行的进程,并根据已知的系统/应用程序路径进行过滤
2. **异常深度验证** —— 完整路径 (`lsof`)、代码签名 (`codesign`)、SIP 状态 (`csrutil`)
3. **持久化检查** (`launchctl`, LaunchAgents/LaunchDaemons) —— 任何注册为自启动的项
4. **网络检查** (`lsof -i`, `netstat`) —— 任何与未知主机进行通信的项
5. **AV 引擎状态** (XProtect) —— 内置保护是否确实处于活动状态且为最新
本次练习的结果:**未发现入侵指标。** 完整的详细分析请参见 [`findings.md`](./findings.md)。
## 关键要点
听起来可疑的进程名称本身并不能作为证据。正确的排查意味着要追踪整个链条 —— 路径 → 签名 → 系统保护上下文 —— 而不是仅仅根据命名就得出结论(这与 [MITRE ATT&CK T1036 – 伪装](https://attack.mitre.org/techniques/T1036/) 相关)。
## 用法
```
git clone
cd macos-system-check
chmod +x scripts/*.sh
# 检查特定进程 (path + code signature)
./scripts/check_process.sh
# 检查 XProtect 状态
./scripts/xprotect_check.sh
```
## 免责声明
这是一项手动排查练习,不能替代专用的防病毒软件或全面的取证调查。其结果仅反映运行检查时的系统快照 —— 并不能永久保证系统是干净的。
标签:Cutter, Mr. Robot, PB级数据处理, 安全运维, 库, 应急响应, 应用安全, 系统排查, 脚本