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漏洞探测, 不可能旅行, 免杀技术, 多模态安全, 威胁检测, 子域名暴力破解, 安全事件管理, 安全运营中心, 开源项目, 数据外泄, 文档结构分析, 无后门, 日志归一化, 暴力破解检测, 检测规则, 测试覆盖, 特权升级, 网络安全, 网络映射, 网络流量分析, 网络资产发现, 自动化检测, 蓝队分析, 身份验证安全, 逆向工具, 隐私保护, 风险评分