manojmallick/supplyguard
GitHub: manojmallick/supplyguard
基于 Splunk 的智能体式软件供应链安全工具,通过 CI/CD 事件感知、CVE 与 typosquatting 检测、安全模型分诊以及构建拦截,实现从依赖变更发现到风险处置的自动化闭环。
Stars: 0 | Forks: 0
# SupplyGuard — Splunk 上的 Agentic 软件供应链安全
.api.scs.splunk.com//mcp/v1/
export SPLUNK_MCP_TOKEN=...
export SPLUNK_HOSTED_MODEL=foundation-sec-1.1-8b-instruct
pip install -r requirements.txt
python demo.py --auto
```
密钥**仅**来自环境变量——绝不硬编码,且始终在日志中掩码处理(`Config.mask_token`)。
## 与原始计划相比的变更
初稿*声称*使用了 AI,但实际上只提供了 SPL 和一个虚假的 `levenshtein()`。此版本修复了这个问题:
- **真正的 Agentic** — 一个真实的 SENSE→…→ACT 控制循环(`agent.py`),而不是一次性脚本。
- **真正的 AI** — 由 Splunk 托管的安全模型对威胁进行分类并编写 NIS2 报告(`judge.py`),而不是硬编码的 `return 0.7`。
- **正确的 Splunk 交互层** — 通过 MCP Server 的 `run_splunk_query` 工具读取,并使用 streamable-HTTP 的 `initialize` 握手。
- **修复了 SPL 的 Bug** — `levenshtein()`(并非原生 SPL 函数)改在 Python 中计算;`join` 反模式被 `lookup`/`stats` 替换。
- **无硬编码密钥** — 仅限环境变量、掩码处理、气隙隔离演示。
## 仓库结构
```
supplyguard/
├── supplyguard/
│ ├── config.py env-only secrets, risk thresholds, demo mode
│ ├── collector.py CI/CD events → HEC (privacy-safe)
│ ├── mcp_client.py Splunk MCP Server client (handshake) — agent reads Splunk
│ ├── analyzer.py CVE lookup + real Levenshtein typosquat detection
│ ├── judge.py Foundation-sec hosted model: triage + NIS2 narrative
│ ├── actions.py block / PR / report / flag (+ approval gate)
│ └── agent.py the agentic loop ← the core
├── demo.py runnable end-to-end demo (no network)
└── spl/ SPL analytics + NIS2 posture queries
```
*© 2026 Manoj Mallick · MIT License*
标签:AI智能体, CI/CD安全, DevSecOps, Llama, 上游代理, 合规遵循, 后端开发, 文档安全, 软件供应链安全, 远程方法调用