Nebulock-Inc/macos-coresigma
GitHub: Nebulock-Inc/macos-coresigma
基于 Sigma 规则的 macOS 端点安全遥测采集、检测与威胁狩猎框架,通过智能过滤和 ECS 标准化无缝对接 Elastic Stack 生态。
Stars: 10 | Forks: 1
# macOS CoreSigma
**macOS CoreSigma** 是一个全面的基于 Sigma 的检测框架,用于 macOS Endpoint Security Framework (ESF) 和 Unified Logging (UL) 遥测。它使安全团队能够利用 Sigma 规则格式进行高级的 macOS 威胁检测和狩猎。
## 概述
CoreSigma 提供:
- **57 条检测规则** - 包含 38 条 ESF 规则和 19 条 UL 规则,涵盖进程执行、文件事件、身份验证、权限提升、持久化等
- **兼容 ECS 的数据收集** - 将 ESF/UL 事件标准化为 Elastic Common Schema (ECS) 格式的收集器
- **智能过滤** - 在保留 100% 与安全相关的事件的同时,将日志量减少约 98.5%
- **Kibana 仪表板** - 用于实时监控的预构建安全仪表板
- **pySigma 集成** - 兼容 `pySigma-backend-elasticsearch` 中的 `ecs_macos_esf` pipeline
## 相关项目
- **[pySigma-backend-elasticsearch](https://github.com/SigmaHQ/pySigma-backend-elasticsearch)** - 包含 `ecs_macos_esf` pipeline 的 pySigma 后端 (PR #171)
- **[sigma-specification](https://github.com/SigmaHQ/sigma-specification)** - 包含 macOS ESF logsource 的 Sigma 分类法 (PR #25)
## 快速入门
### 前置条件
- macOS 11.0+ (Big Sur 或更高版本)
- Python 3.9+
- Elasticsearch 8.x 和 Kibana
- Root/sudo 访问权限 (通过 `eslogger` 进行 ESF 收集时需要)
- 终端的**完全磁盘访问**权限 (ESF 收集器需要)
### 安装
```
# Clone the repository
git clone https://github.com/Nebulock-Inc/macos-coresigma.git
cd macos-coresigma
# Run setup
./setup.sh
source venv/bin/activate
# Start Elasticsearch and Kibana (if using Docker)
docker-compose up -d
# Set up credentials (creates .env for Docker + Keychain for collectors)
./scripts/setup_credentials.sh --sync-docker
# Deploy detection rules to Kibana
python3 scripts/deploy_sigma_rules.py
# Generate dashboards
python3 scripts/create_lens_dashboards_ndjson.py
```
### 运行 ESF 收集器
```
# With intelligent filtering (recommended - reduces volume by 98.5%)
sudo python3 collectors/esf_collector.py --output elasticsearch
# Run as daemon (background with auto-restart)
sudo python3 collectors/esf_collector.py --output elasticsearch --daemon
# Without filtering (all events)
sudo python3 collectors/esf_collector.py --output elasticsearch --no-filtering
```
### 运行 UL 收集器
```
# Unified Logging collector (no sudo required)
python3 collectors/ul_collector.py --output elasticsearch
# Run as daemon (background with auto-restart)
python3 collectors/ul_collector.py --output elasticsearch --daemon
```
### 部署检测规则
```
# Deploy all 57 Sigma rules to Kibana Detection Engine
python3 scripts/deploy_sigma_rules.py
# Deploy and enable rules
python3 scripts/deploy_sigma_rules.py --enable
# Preview without deploying
python3 scripts/deploy_sigma_rules.py --dry-run
```
### 导入仪表板
```
# Option 1: Generate dashboards (recommended for fresh installs)
# Creates data views and visualizations based on your field mappings
python3 scripts/create_lens_dashboards_ndjson.py
# Option 2: Import pre-built dashboards (for complete 4-dashboard set)
curl -X POST "http://localhost:5601/api/saved_objects/_import?overwrite=true" \
-H "kbn-xsrf: true" -u elastic:changeme \
-F file=@exports/all_dashboards_latest.ndjson
```
预构建的导出文件 (`all_dashboards_latest.ndjson`) 包含:
- **macOS Endpoint Security (ESF) 遥测概述** - 进程执行、父→子进程关系、命令行
- **macOS Unified Logging 概述** - 安全子系统事件
- **Sigma 规则触发概述** - 规则命中统计
- **检测规则监控** - 原生 Kibana 规则性能
### 身份验证
凭据将按以下优先级顺序自动加载:
1. `ES_API_KEY` 环境变量
2. macOS Keychain (推荐用于本地开发)
3. `ES_USER`/`ES_PASSWORD` 环境变量
4. `~/.coresigma/config.yml`
```
# Setup credentials in Keychain (recommended)
./scripts/setup_credentials.sh
# Or create an API key (recommended for production)
./scripts/setup_credentials.sh --api-key
# Test authentication
./scripts/setup_credentials.sh --test
```
## 目录结构
```
macos-coresigma/
├── collectors/ # Data collection scripts
│ ├── esf_collector.py # ESF event collector with ECS normalization
│ └── ul_collector.py # Unified Logging collector
├── rules/ # Sigma detection rules
│ ├── esf/ # 38 ESF-based rules
│ └── ul/ # 19 UL-based rules
├── exports/ # Kibana dashboard exports
├── scripts/ # Utility scripts
├── tests/ # Test suite
└── docs/ # Documentation
```
## 检测覆盖范围
### ESF 事件类别
| 类别 | 事件类型 | 示例规则 |
|----------|-------------|---------------|
| 进程创建 | exec, fork, exit | 可疑进程执行,批量终止 |
| 文件事件 | create, write, unlink, rename | 持久化创建,敏感文件删除 |
| 身份验证 | login, logout, setuid, setgid | 权限提升,身份验证监控 |
| 内存 | mprotect | W+X 内存映射 (代码注入) |
| 代码签名 | cs_invalidated | 代码签名失效 |
| 安全策略 | tcc_modify, xprotect, gatekeeper | TCC 绕过,恶意软件检测 |
| 网络 | (计划中) | 网络连接监控 |
### 示例规则
- **进程执行**:可疑的 curl 下载、从临时目录执行
- **持久化**:LaunchAgent/Daemon 创建、内核扩展加载
- **权限提升**:setuid/setgid 切换至 root,sudo 使用
- **防御规避**:TCC 数据库修改、代码签名失效
- **横向移动**:屏幕共享会话、SSH 连接
## 字段映射
CoreSigma 将 Sigma 分类字段映射到 ECS 字段:
| Sigma 字段 | ECS 字段 | 描述 |
|-------------|-----------|-------------|
| `Image` | `process.executable` | 进程可执行路径 |
| `CommandLine` | `process.command_line` | 完整命令行 |
| `User` | `process.user.name` | 有效用户名 |
| `ParentImage` | `process.parent.executable` | 父进程路径 |
| `TargetFilename` | `file.path` | 目标文件路径 |
| `esf.event_type` | `esf.event_type` | 数字 ESF 事件类型 |
| `event.action` | `event.action` | 事件动作名称 |
有关完整的映射,请参见 [FIELD_NAME_ORIGINS.md](docs/FIELD_NAME_ORIGINS.md)。
## 智能过滤
ESF 收集器实现了智能过滤以减少噪音:
| 事件类型 | 过滤策略 | 缩减比例 |
|------------|-------------------|-----------|
| `open` | 仅限安全相关路径 | ~99% |
| `close` | 仅限修改过的文件 | ~99% |
| `lookup` | 仅限关键路径 | ~99.9% |
| `mprotect` | 仅限 W+X 权限 | ~99.6% |
| 所有其他 | 完整捕获 | 0% |
**结果**:约 198 万事件/天 → 约 3 万事件/天,对安全性零影响。
详情请参见 [FILTERING_CONFIGURATION.md](docs/FILTERING_CONFIGURATION.md)。
## 转换 Sigma 规则
使用带有 `ecs_macos_esf` pipeline 的 pySigma 后端:
```
# Install pySigma CLI and Elasticsearch backend
pip install sigma-cli pysigma-backend-elasticsearch
# Convert a rule to Lucene query
sigma convert -t lucene -p ecs_macos_esf rules/esf/process_execution_suspicious.yml
# Convert to EQL (Event Query Language)
sigma convert -t eql -p ecs_macos_esf rules/esf/macos_tcc_database_modification.yml
```
## Docker 部署
```
# Start Elasticsearch and Kibana
docker-compose up -d
# Wait for services to be ready
./scripts/start_services.sh
# Set up credentials (one-time)
./scripts/setup_credentials.sh
# Create index templates and dashboards
./scripts/setup_elasticsearch_templates.sh
python3 scripts/create_lens_dashboards_ndjson.py
```
## 文档
- [安装指南](docs/INSTALLATION.md)
- [快速入门](docs/QUICKSTART.md)
- [过滤配置](docs/FILTERING_CONFIGURATION.md)
- [Kibana 设置](docs/KIBANA_SETUP.md)
- [故障排除](docs/TROUBLESHOOTING.md)
- [pySigma 同步跟踪](docs/PYSIGMA_SYNC_TRACKING.md)
### 添加新规则
1. 在 `rules/esf/` 或 `rules/ul/` 中创建一个新的 `.yml` 文件
2. 遵循 Sigma 规则规范
3. 使用 logsource:`product: macos`,`service: endpointsecurity`
4. 使用 `sigma convert -t lucene -p ecs_macos_esf` 进行测试
5. 提交 PR
## 许可证
MIT 许可证 - 详情请参见 [LICENSE](LICENSE)。
## 致谢
- [SigmaHQ](https://github.com/SigmaHQ) - Sigma 规范和 pySigma
- [Elastic](https://www.elastic.co/) - ECS 规范
- [Apple](https://developer.apple.com/documentation/endpointsecurity) - Endpoint Security Framework
## 联系方式
- **组织**:[Nebulock Inc.](https://github.com/Nebulock-Inc)
- **问题**:[GitHub Issues](https://github.com/Nebulock-Inc/macos-coresigma/issues)
## 作者
由 Eric Brown 创建 © 2025
标签:AMSI绕过, CoreSigma, CSV导出, DNS 解析, Docker, ECS, EDR, Elastic Common Schema, Elasticsearch, Endpoint Security Framework, ESF, Google搜索, macOS Big Sur, macOS安全, pySigma, Python, Sigma规则, telemetry pipeline, Terraform, Unified Logging, 协议分析, 威胁检测, 安全防御评估, 开源安全工具, 数据规范化, 文件监控, 无后门, 日志过滤, 日志采集, 权限提升, 目标导入, 端点检测与响应, 统一日志, 脆弱性评估, 脱壳工具, 请求拦截, 越狱测试, 逆向工具, 逆向工程平台, 遥测管道