vandit98/sift-sentinel
GitHub: vandit98/sift-sentinel
一个证据安全的自主 DFIR 代理和 MCP 服务器,通过架构层面的强制约束让 AI 防御者能够快速分析取证证据而不会篡改证据或做出无根据断言。
Stars: 0 | Forks: 0
# SIFT Sentinel
面向 Protocol SIFT 的证据安全自主 DFIR 系统。
SIFT Sentinel 是一个具体的、可供评委运行的系统:它包含一个自定义的 MCP 服务器、一个确定性的自我修正分诊代理、结构化的执行日志,以及一个准确性基准测试。其设计目标很简单:让 AI 防御者能够快速行动,同时不允许其修改证据或做出无根据的断言。
## 概述
Protocol SIFT 为 Claude Code 提供了 DFIR 指令和工具知识。SIFT Sentinel 在此基础上增加了一个架构强制执行层:
- 没有向代理暴露通用的 shell 工具。
- 每项取证操作都是一个具有结构化输入和输出的类型化工具。
- 证据路径根据策略设定为只读,而非仅靠提示词约束。
- 生成的文件只能写入案例的 `outputs/` 目录下。
- 在每次自主运行前后都会对比证据的哈希值。
- 发现的结果必须通过验证才能成为已确认的结果。
- 每一项发现都会引用行级别的证据以及生成该证据的工具调用 ID。
- 基准测试会对误报、遗漏的真实项以及产生幻觉的已确认断言进行评分。
## 架构模式
主要模式:**自定义 MCP 服务器**。
辅助模式:**自我修正分诊代理**、**分析师训练循环** 和 **准确性基准测试框架**。
```
flowchart LR
Analyst["Analyst or MCP host"] --> MCP["SIFT Sentinel MCP server"]
MCP --> Agent["Self-correcting triage loop"]
Agent --> Tools["Typed forensic tools"]
Tools --> Policy["EvidencePolicy guard"]
Policy --> Evidence["Read-only evidence root"]
Policy --> Outputs["Case outputs only"]
Tools --> SIFT["Optional SIFT wrappers: Volatility, EvtxECmd, TSK"]
Agent --> Logs["JSONL execution logs"]
Agent --> Reports["Findings and Markdown report"]
Reports --> Benchmark["Accuracy scoring"]
```
有关信任边界和工具契约,请参阅 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。
## 项目页面
此仓库包含一个可部署在 Vercel 上的静态项目页面,位于 [index.html](index.html)。
通过导入以下内容从 Vercel 控制面板进行部署:
```
https://github.com/vandit98/sift-sentinel
```
## 快速开始
无需第三方依赖。
```
PYTHONPATH=src python3 -m sift_sentinel benchmark \
--case cases/demo-case/case.json \
--run-id demo-benchmark \
--max-iterations 3
```
预期基准测试结果:
```
{
"precision": 1.0,
"recall": 1.0,
"f1": 1.0,
"hallucination_count": 0,
"refuted_finding_ids": ["F-002"]
}
```
仅运行自主分诊循环:
```
PYTHONPATH=src python3 -m sift_sentinel run \
--case cases/demo-case/case.json \
--run-id demo-run \
--max-iterations 3
```
直接运行类型化工具:
```
PYTHONPATH=src python3 -m sift_sentinel tool \
--case cases/demo-case/case.json \
memory_netstat
```
验证案例并证明证据写入边界:
```
PYTHONPATH=src python3 -m sift_sentinel validate \
--case cases/demo-case/case.json
PYTHONPATH=src python3 -m sift_sentinel spoliation-test \
--case cases/demo-case/case.json
```
通过 stdio 运行 MCP 服务器:
```
PYTHONPATH=src python3 -m sift_sentinel mcp
```
## 演示案例
捆绑的案例是合成的,可以安全地重新分发:
- 内存进程、网络和 malfind 风格的工件
- 磁盘 Prefetch、Amcache、时间线和注册表 Run 键工件
- Windows 安全事件日志风格的进程创建行
- 记录在 `cases/demo-case/ground_truth.json` 中的已记录真实基准
该演示故意包含一个陷阱:`C:\Users\Public\svchost.exe` 出现在 Prefetch 中,但在 Amcache 或时间线中没有佐证。SIFT Sentinel 最初将其视为推断的线索,然后在运行缺失的检查后将其驳斥。
生成的样本工件位于:
- `cases/demo-case/outputs/demo-run/analysis/execution_log.jsonl`
- `cases/demo-case/outputs/demo-run/analysis/evidence_integrity.json`
- `cases/demo-case/outputs/demo-run/reports/triage_report.md`
- `cases/demo-case/outputs/demo-benchmark/reports/accuracy_report.md`
## 评委文档
- [架构](docs/ARCHITECTURE.md)
- [数据集文档](docs/DATASET.md)
- [准确性报告](docs/ACCURACY_REPORT.md)
- [试用说明](docs/TRY_IT_OUT.md)
- [演示视频脚本](docs/DEMO_SCRIPT.md)
- [研究笔记](docs/RESEARCH.md)
- [Claude Code MCP 示例](integrations/claude-code/mcp.example.json)
## SIFT Workstation 集成
演示可以在任何装有 Python 的环境中运行,但相同的策略层也支持 [src/sift_sentinel/sift_wrappers.py](src/sift_sentinel/sift_wrappers.py) 中的 SIFT 工具包装器:
- `volatility_json`:仅允许白名单内的 Volatility 3 插件
- `evtxecmd_csv`:只读事件日志,CSV 输出至案例的 outputs 目录下
- `mftecmd_csv`:只读 `$MFT` 或 `$J`,CSV 输出至案例的 outputs 目录下
- `pecmd_csv`:只读 Prefetch 目录,CSV 输出至案例的 outputs 目录下
- `amcacheparser_csv`:只读 Amcache 配置单元,CSV 输出至案例的 outputs 目录下
- `recmd_batch_csv`:仅使用批准的批处理文件进行只读注册表配置单元操作
- `yara_scan`:只读规则和证据工件,仅捕获输出
- `sleuthkit_fls`:带有非负偏移量的只读文件系统列表
- `SafeSubprocessRunner`:不使用 `shell=True`,不执行任意命令,在执行前检查读写路径
这使得该系统可以在 SANS SIFT Workstation 上使用,同时保留了评委所期望的证据安全边界。
## 测试
```
PYTHONPATH=src python3 -m unittest discover -s tests -v
```
当前本地测试结果:9 个测试通过。
标签:AI安全, Chat Copilot, DAST, FTP漏洞扫描, JSONL日志, LLM Agent, MCP服务器, OSV, SecList, Vercel, 内存取证, 协议SIFT, 取证工具, 只读策略, 大模型安全应用, 子域名变形, 安全合规, 安全基准测试, 安全编排, 库, 应急响应, 恶意软件分析, 数字取证, 模型上下文协议, 类型化工具, 精准度基准测试, 结构化执行日志, 网络代理, 自主安全代理, 自动化分析, 自动化脚本, 自我纠正, 证据保全, 误报率检测, 赛博安全, 跨站脚本, 逆向工具, 静态网页