MegaZegan/SentinelForge
GitHub: MegaZegan/SentinelForge
SentinelForge是一个防御性SOC分析工具,用于规范化安全日志、应用检测规则并生成风险报告,以辅助威胁检测和调查。
Stars: 0 | Forks: 0
# SentinelForge
SentinelForge 是一个防御性网络安全展示项目:一个小型 SOC 分析引擎,可规范化混合安全日志、应用可解释的检测规则、进行风险评分,并生成对分析师友好的调查结果和 HTML 报告。
它设计为在面试演示时安全使用,因为它仅处理日志和样本数据。不涉及漏洞利用、载荷传递、凭证收集或对实时目标的扫描。
## 为何此项目在 GitHub 上表现出色
- 真实的检测工程结构:规范化事件、规则类、风险评分和证据对象。
- 多源遥测数据:身份验证、Web 访问、云活动和网络流量风格的事件。
- 可解释的调查结果:每个警报均包含严重性、置信度、MITRE ATT&CK 映射、证据和建议的响应措施。
- 展示就绪的文档:架构说明、演示命令和扩展点。
- 关键检测场景的测试覆盖。
## 演示
```
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e . pytest
sentinelforge scan data\samples --report reports\demo.html
pytest
```
预期结果:CLI 将打印一组按风险排序的调查结果,并将 HTML 报告写入 `reports/demo.html`。
在 CI 中使用 `--fail-on-high` 参数,可使高危或严重检测产生退出代码 `1`。
## 示例调查结果
SentinelForge 目前可检测:
- 暴力破解登录尝试激增后接续的成功登录。
- 短时间窗口内跨国家的不可能旅行模式。
- 可疑的权限提升和管理员角色分配。
- Web 漏洞探测和自动化的侦察用户代理。
- 基于可疑 IP、域名或用户代理的 IOC 匹配。
- 基于异常出站流量的潜在数据渗出。
## 项目结构
```
src/sentinelforge/
cli.py Command-line interface.
config.py TOML config and IOC loading.
engine.py Detection orchestration and risk ranking.
models.py Event and Finding dataclasses.
parsers.py JSONL/CSV log ingestion and normalization.
report.py Static HTML report generation.
rules.py Built-in detection rules.
data/samples/ Safe synthetic logs for demos.
examples/ Example tuning and IOC config.
tests/ Pytest suite.
```
## 输入格式
SentinelForge 接受 JSON Lines (`.jsonl`) 和 CSV (`.csv`) 格式。当字段存在常用名称时,会自动进行规范化:
| 规范化字段 | 常见别名 |
| --- | --- |
| `timestamp` | `time`, `@timestamp`, `event_time` |
| `source` | `log_type`, `dataset`, `service` |
| `event_type` | `action`, `event`, `event_name` |
| `user` | `username`, `actor`, `principal` |
| `src_ip` | `client_ip`, `source_ip`, `ip` |
| `country` | `geo_country`, `src_country` |
| `url` | `path`, `request_uri` |
| `user_agent` | `ua`, `http_user_agent` |
| `bytes_out` | `sent_bytes`, `egress_bytes` |
## 调优
创建一个类似 `examples/sentinelforge.toml` 的 TOML 配置文件:
```
[thresholds]
brute_force_failures = 5
brute_force_window_minutes = 10
exfiltration_bytes = 50000000
[iocs]
ips = ["203.0.113.66"]
domains = ["malicious.example"]
user_agents = ["evilbot"]
```
然后运行:
```
sentinelforge scan data\samples --config examples\sentinelforge.toml --report reports\tuned.html
```
## 面试讨论要点
- 可解释的检测比黑盒警报更易于审计。
- 引擎将解析、检测规则和报告分离,使得新增遥测数据源更简洁。
- 调查结果独立包含置信度和严重性,这反映了真实 SOC 的分流流程。
- 示例日志是合成的且安全,但解析器能接受常见的实际场景字段别名。
## 发展路线图
- 导入 Sigma 规则以实现简单的 logsource 和条件匹配。
- 用户和主机行为的基线学习。
- 基于 SQLite 的案例历史记录和警报去重。
- 可选的 FastAPI 仪表盘。
标签:AMSI绕过, CI集成, DNS解析, HTML报告, IOC匹配, Python, Python安全, Web安全, Web漏洞探测, 不可能旅行, 免杀技术, 多模态安全, 威胁检测, 子域名暴力破解, 安全事件管理, 安全运营中心, 开源项目, 数据外泄, 文档结构分析, 无后门, 日志归一化, 暴力破解检测, 检测规则, 测试覆盖, 特权升级, 网络安全, 网络映射, 网络流量分析, 网络资产发现, 自动化检测, 蓝队分析, 身份验证安全, 逆向工具, 隐私保护, 风险评分