OCHOLA-EDDYPHIL/elenchos-dfir
GitHub: OCHOLA-EDDYPHIL/elenchos-dfir
Elenchos 是一个结合模型驱动编排与确定性取证工具的自主 DFIR 分诊 agent,专注于 Windows 磁盘取证证据的安全、可追溯分析。
Stars: 0 | Forks: 0
# Elenchos
Elenchos 是一个用于 SIFT 和 Protocol SIFT 的边界化自主 DFIR 分诊 agent。
我使用模型驱动的编排来选择安全的下一步操作,使用确定性的取证工具处理证据,并使用策略门控来防止不受支持或不安全的操作。
Elenchos 得名于与反驳和交叉询问相关的古希腊术语。我在操作上运用了这个概念:每个取证结论都必须经受住证据检查,不受支持的结论会被降级,并且分析人员审查保持明确。
## 核心理念
Elenchos 将模型和证据处理层分开:
- 模型协调边界化的工作流操作。
- Elenchos 确定性核心负责准备案例、运行受支持的解析器、验证发现并编写报告。
- 策略决策拒绝不安全或不受支持的操作。
- 原始证据保持只读。
- 模型的推理属于操作说明,而非取证证据。
当前的范围是针对 `$MFT`、Registry 证据、Amcache 以及代码库支持的预备好的 NTUSER 用户活动证据的 Windows 磁盘取证文件分诊。内存、数据包、浏览器/云、远程 endpoint、移动设备、法律认证以及完整的企业级 IR 仍超出范围,除非已明确实现。
## 安装
在 Linux/SIFT 兼容的 shell 中使用 Python 3.10 或更高版本。
```
git clone
cd
python -m venv .venv
source .venv/bin/activate
.venv/bin/python -m pip install -e ".[dev]"
.venv/bin/python -m pytest
.venv/bin/python -m ruff check .
.venv/bin/python -m mypy src
```
该 package 会安装一个 `elenchos` console script。示例使用 `.venv/bin/python -m elenchos`,因此它们不依赖于 shell 的 `PATH`。
## 演示路径:TUI / OpenClaw
提交的演示视频使用的是 TUI/OpenClaw 编排路径。
1. 如上所示安装 Elenchos。
2. 从官方 Devpost Resources 链接下载 FIND EVIL / SANS 初始证据,并将其解压到此 repository 之外。
3. 启动 TUI:
```
elenchos tui
```
4. 按照 [docs/tui.md](docs/tui.md) 中的详细工作流操作。
下面确定性的 CLI 路径作为可重现的备用方案保持可用。
原始证据必须保留在 repository 之外。生成的输出将写入被忽略的运行目录中,例如 `runs/`。
## 证据和输出
将证据暂存在 repository 之外,并以只读方式挂载或复制。
```
/cases/demo/evidence/
mft/$MFT
registry/NTUSER.DAT
registry/SOFTWARE
amcache/Amcache.hve
```
生成的输出属于被忽略的路径,例如 `runs/`、`.local/`、`outputs/`、`analysis/` 或 `reports/generated/`。不要提交原始证据、生成的解析器输出、本地 OpenClaw 状态、记录、截图、凭证、私有路径或私有运行日志。
有关支持的数据集,请参阅 [docs/dataset.md](docs/dataset.md);有关证据安全,请参阅 [docs/security-boundaries.md](docs/security-boundaries.md)。
## 确定性 CLI
设置本地变量:
```
export CASE_ID="case_evidence"
export RUN_DIR="runs/demo"
mkdir -p "$RUN_DIR"
```
准备基于 E01 或基于源根目录的案例:
```
.venv/bin/python -m elenchos case prepare \
--case-id "$CASE_ID" \
--source-root "" \
--source-manifest-out ".local/cases/$CASE_ID/source-manifest.json" \
--output-dir "$RUN_DIR/case-prep"
```
运行确定性的、由清单驱动的分诊:
```
.venv/bin/python -m elenchos agent run-case \
--artifact-manifest "$RUN_DIR/case-prep/case_prep.json" \
--casebook "docs/casebooks/generic-windows-disk-triage.json" \
--output-dir "$RUN_DIR/agent-run" \
--max-iterations 10 \
--max-normalized-events 5000 \
--event-selection-profile forensic-triage
```
直接解析器和关联命令仍然可用;请参阅 [docs/parser-contracts.md](docs/parser-contracts.md)、[docs/parser-tooling-matrix.md](docs/parser-tooling-matrix.md) 和 [docs/agent-workflow.md](docs/agent-workflow.md)。
## OpenClaw Runtime
OpenClaw 是自然语言 runtime。Elenchos 仍然是确定性的、与模型无关的取证核心。OpenClaw 控制 provider 和模型选择;模型输出不是取证证据。
首选的 OpenClaw/MCP 路径:
```
.venv/bin/python -m elenchos.integrations.mcp_server
```
阻塞式备用工具:
```
prepare_case -> run_case -> summarize_run -> validate_run_outputs
```
实时自主性添加了:
```
inspect_run_state -> [model-rationale] -> record_model_rationale
-> evaluate_action_policy -> [policy] -> execute allowed bounded action
-> poll progress -> validate outputs -> emit_claim_boundary -> stop
```
在没有私有证据或 provider 凭证的情况下对边界化适配器进行冒烟测试:
```
.venv/bin/python scripts/demo_elenchos_preflight.py
.venv/bin/python scripts/openclaw_elenchos_smoke.py --dry-run --output-dir runs/openclaw-smoke
```
直接 CLI 仍然是可重现的备用方案:
```
.venv/bin/python -m elenchos case prepare ...
.venv/bin/python -m elenchos agent run-case ...
```
使用 [examples/openclaw/case-triage.prompt.md](examples/openclaw/case-triage.prompt.md) 作为可重用的操作员 prompt。使用 [docs/casebooks/generic-windows-disk-triage.json](docs/casebooks/generic-windows-disk-triage.json) 进行无故事的 Windows 磁盘分诊。有关完整的 runtime 工作流,请参阅 [docs/openclaw-mcp-workflow.md](docs/openclaw-mcp-workflow.md) 和 [docs/tui.md](docs/tui.md)。
## 输出和可追溯性
典型的生成输出包括 `report.md`、`findings.json`、`audit.jsonl`、`decision_trace.json`、`gap_analysis.json`、`validation_summary.json`、`model_rationale.jsonl`、`policy_decisions.jsonl`、`progress.jsonl` 和 `run_integrity_manifest.json`。
通过以下方式追踪报告陈述:
```
report.md sentence
-> finding id
-> findings.json
-> evidence refs
-> normalized events
-> parser result
-> audit.jsonl
-> manifest artifact and hash
```
有关追踪映射和经过脱敏处理的示例,请参阅 [docs/execution-log-traceability.md](docs/execution-log-traceability.md)。
## 结论边界
Elenchos 将发现标记为 `confirmed`、`inferred`、`needs_review`、`not_assessed` 或 `rejected`。除非生成的 Elenchos 输出支持该结论并且验证通过,否则它不会声称存在盗窃、数据泄露、恶意软件、内存发现、归因、入侵或最终的事件结论。
请参阅 [docs/limitations.md](docs/limitations.md) 和 [docs/model-rationale-boundary.md](docs/model-rationale-boundary.md)。
## 文档地图
| 需求 | 从这里开始 |
| --- | --- |
| 架构和数据流 | [docs/architecture.md](docs/architecture.md) |
| Agent 工作流 | [docs/agent-workflow.md](docs/agent-workflow.md) |
| OpenClaw/MCP 工作流 | [docs/openclaw-mcp-workflow.md](docs/openclaw-mcp-workflow.md) |
| Elenchos TUI | [docs/tui.md](docs/tui.md) |
| 数据集处理 | [docs/dataset.md](docs/dataset.md) |
| 解析器验证 | [docs/parser-validation.md](docs/parser-validation.md) |
| 可追溯性 | [docs/execution-log-traceability.md](docs/execution-log-traceability.md) |
| 安全边界 | [docs/security-boundaries.md](docs/security-boundaries.md) |
## 许可证
MIT。请参阅 [LICENSE](LICENSE)。
标签:DLL 劫持, Python, SIFT, 大语言模型, 数字取证, 无后门, 自动化取证, 自动化脚本, 逆向工具