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, 大语言模型, 数字取证, 无后门, 自动化取证, 自动化脚本, 逆向工具