ilyesHamdiii/signalproof

GitHub: ilyesHamdiii/signalproof

SignalProof 是一个基于合约驱动的遥测与检测验证平台,用于在 ATT&CK 映射的受控测试后验证安全事件、字段完整性、接入路径和检测告警是否符合预期。

Stars: 0 | Forks: 0

# SignalProof SignalProof 用于验证在执行受控的 ATT&CK 映射测试后,是否存在预期的安全事件、必需字段、接入路径和检测告警。 ![SignalProof 仪表板](https://static.pigsec.cn/wp-content/uploads/repos/cas/ba/bacaf6a38675999d50d5d1d96f90e987a5f8999dbb682013f548a5f7d4a7cd46.png) ## 为什么开发 SignalProof 安全团队在编写检测规则时,通常会假设遥测数据存在且已正确规范化。但在实际应用中,Agent 可能会出现异常、必需字段可能缺失、数据接入可能会延迟,并且规则可能永远不会触发。 SignalProof 将这些假设转化为显式的、可测试的遥测合约。 ## 核心功能 - YAML 遥测合约 - 事件和字段级别的断言 - 接入和检测延迟验证 - Wazuh/OpenSearch 告警收集 - 监控盲点分类 - 包含 SHA-256 清单的证据报告 - PostgreSQL 验证历史记录 - 回归和恢复对比 - FastAPI REST API - Streamlit 仪表板 - 自动化测试和 GitHub Actions CI ## 架构 ![SignalProof 架构](https://static.pigsec.cn/wp-content/uploads/repos/cas/06/06383c7f320f59a45b9ec84540420796b1af13c7b6a19e06b6ef185415279177.png) SignalProof 将收集、验证、诊断、持久化和展示环节分离开来,这样就可以在不更改核心验证引擎的情况下添加额外的 SIEM 收集器。 ## 遥测合约 合约定义了一项技术要达到“具备检测能力”所必须存在的条件: ``` contract: id: windows-powershell-t1059-001 version: "1.0" attack: technique_id: T1059.001 technique_name: PowerShell events: - assertion_id: sysmon-process-create source: sysmon event_id: 1 required: true required_fields: - win.eventdata.image - win.eventdata.commandLine - win.eventdata.processGuid maximum_ingestion_latency_seconds: 30 detection: required: true backend: wazuh rule_id: "100201" minimum_alert_level: 8 maximum_detection_latency_seconds: 60 ``` ## 验证结果 SignalProof 会将一次运行标记为以下状态: - `passed` - `degraded` - `failed` 它还会生成基于证据的诊断结果,例如: - `telemetry_unobserved` - `collection_failure` - `forwarding_failure` - `parsing_failure` - `ingestion_latency_failure` - `detection_failure` - `detection_quality_failure` - `detection_latency_failure` - `workflow_failure` - `multiple_failures` ![失败的检测诊断](https://static.pigsec.cn/wp-content/uploads/repos/cas/59/599f9d56ad16aa543ad219fe1938bd0070b70d2d5c412c164538f7c0dfa377f7.png) ## 回归测试 SignalProof 会对比历史持久化的运行记录,以检测回归和恢复情况。 ``` signalproof compare-runs ` --previous "SP-DEMO-BASELINE-001" ` --current "SP-DEMO-DETECTION-MISSING-001" ``` ![回归对比](https://static.pigsec.cn/wp-content/uploads/repos/cas/45/45afdb1810cde89e6724d3f5b270bb29ce7be0e4df5e36df1edc92b8a344d558.png) ## Wazuh 集成 Wazuh 收集器通过 Wazuh Indexer API 使用只读工作流来查询告警证据。 当前的实时实验室模式: - `wazuh-alerts-*`:已支持 - `wazuh-archives-*`:可选,未在共享实验室中启用 - 实时模式:检测验证 - Fixture 模式:完整的事件和字段验证 ![Wazuh 实时证据](https://static.pigsec.cn/wp-content/uploads/repos/cas/e3/e37780e459674554308c0fbea1769d86bf93340a0b99889ab109a4d7528686b5.png) ## 证据报告 每次验证运行都可以生成: - `report.json` - `report.md` - `manifest.json` - 为生成的和原始的证据生成 SHA-256 哈希值 ![证据报告](https://static.pigsec.cn/wp-content/uploads/repos/cas/7e/7e05b4e60b696d7ba7c347d290660f32ff3ab3d84fa4e967fddd4f69482b1d56.png) 经过脱敏处理的示例可在 [`reports/samples`](reports/samples) 中查看。 ## REST API SignalProof 通过 FastAPI 暴露了合约验证、Fixture 执行、Wazuh 健康状态、历史记录以及回归测试等接口。 ![SignalProof Swagger API](https://static.pigsec.cn/wp-content/uploads/repos/cas/23/236cd4f82436c3e51c255b1aa6e6a9a5cf0194369d61a790bc7565cf144b4407.png) 使用以下命令启动: ``` uvicorn signalproof.api.app:app --reload ``` 然后打开: ``` http://127.0.0.1:8000/docs ``` ## 快速开始 ### 环境要求 - Python 3.12 或 3.13 - Docker - 通过 Docker Compose 运行的 PostgreSQL - 可选的用于实时告警验证的 Wazuh 实验室 ### 安装 ``` git clone https://github.com/YOUR-USERNAME/signalproof.git cd signalproof python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -e ".[dev]" ``` ### 启动 PostgreSQL ``` docker compose -f docker-compose.phase9.yml up -d ``` ### 配置数据库 ``` $env:SIGNALPROOF_DATABASE_URL = ` "postgresql+psycopg://signalproof:signalproof@127.0.0.1:5433/signalproof" ``` ### 初始化数据表 ``` signalproof init-db ``` ### 导入演示运行数据 ``` .\scripts\seed_demo_runs.ps1 ``` ### 启动仪表板 ``` streamlit run signalproof/dashboard/app.py ``` ## 测试 ``` python -m compileall signalproof ruff check signalproof tests pytest -v ``` ## 安全模型 SignalProof 专为授权的防御性验证而设计。 - 它不会执行攻击技术。 - 实时收集是只读的。 - 受控测试必须在独立的隔离实验室中单独执行。 - 凭据通过环境变量提供。 - `.env` 文件和私有证据绝不能被提交。 - 拒绝重复的运行 ID,以保护证据历史记录。 ## 局限性 - 当前的 Wazuh 实验室公开了告警索引,但没有公开原始归档索引。 - 未实现实时原始事件规范化。 - 身份验证和 RBAC 不在当前的 MVP(最小可行性产品)范围内。 - Streamlit 被用作工程仪表板,而不是生产级前端。 ## 路线图 - Wazuh 归档数据规范化 - Elastic 和 Splunk 收集器 - 计划任务验证套件 - 多技术测试活动 - 身份验证和 RBAC - 基于 Web 的遥测合约编辑器 ## 许可证 MIT
标签:AV绕过, FastAPI, Kubernetes, Streamlit, Wazuh, 测试用例, 版权保护, 网络测绘, 访问控制, 请求拦截, 逆向工具, 遥测测试