Venin-Client-Systems/venin-dfir

GitHub: Venin-Client-Systems/venin-dfir

一款 CLI 优先的数字取证工具包,专注于证据解析、采集和时间线重建。

Stars: 0 | Forks: 0

# VENIN DFIR VENIN DFIR 是一款以命令行界面为核心的数字取证工具包,用于支持证据采集、解析、时间线重建和可重复的调查自动化。 本项目有意不以图形用户界面为核心。它遵循小型工具理念:每个解析器应专注于一类,生成确定性的结构化输出,并能与共享的时间线模型集成。 ## 架构 选定的技术栈为 Rust + Python: - Rust 负责核心解析器、命令行界面、注册表、时间戳标准化、哈希计算、数据导出和时间线生成。 - Python 专为分析师端工作流辅助、笔记本、验证以及对 VENIN JSON/CSV 输出进行可重复的后处理而保留。 关于 Rust、Go 与 Python 的技术选型决策详情,请参阅 [ARCHITECTURE.md](ARCHITECTURE.md)。 ## 当前可用的解析器 `browser_history.chromium` 是首个实现的解析器。 它解析 Chromium 系列浏览器的 `History` SQLite 数据库,并提取以下信息: - URL - 标题 - 访问次数 - 输入次数 - 隐藏标志 - 原始 Chromium 时间戳 - 标准化的 UTC 时间戳 - 当存在 `visits` 表时,生成访问级别的的时间线事件 支持的浏览器系列包括使用 Chromium 架构的 Chrome、Chromium、Edge 和 Brave 的历史记录数据库。 ## 构建 ``` cd /Users/georgeatkinson/Developer/digital-forensics/venin-dfir cargo build --workspace ``` 在 macOS 上,链接了原生依赖的 Rust 构建需要接受 Xcode 命令行工具许可协议。 ## 运行测试 ``` cargo test --workspace ``` ## CLI 示例 列出已注册的工具: ``` cargo venin -- registry list ``` 解析一个 Chromium 历史记录数据库: ``` cargo venin -- parse chrome-history \ --input datasets/samples/chromium/History \ --evidence-id CASE001-EV001 \ --format both \ --output-dir output ``` 从标准化的时间线 JSON 构建统一的时间线: ``` cargo venin -- timeline build \ --input output/timelines/chromium_history.timeline.json \ --format both \ --output-dir output ``` ## 仓库结构 - `cmd/venin-cli` - 命令行入口点。 - `core/venin-core` - 工具注册表和共享工具元数据。 - `parsers/venin-parsers` - 取证解析器和解析器框架。 - `timeline/venin-timeline` - 标准化事件模型及 JSON/CSV 导出。 - `shared/venin-shared` - 时间戳、哈希和文件标识实用工具。 - `acquisition/` - 采集计划框架。 - `windows/`, `ios/`, `android/`, `mobile/` - 平台工作流 crate 及未来扩展区。 - `artifacts/` - 输出模式定义。 - `cases/` - 取证案例工作区模板。 - `datasets/` 和 `testdata/` - 合成测试数据和解析器验证输入。 - `reports/` - Markdown 报告模板。 - `tools/python` - 分析师端的 Python 辅助工具,用于处理 VENIN 导出。 ## 案例工作区 使用以下命令创建案例目录: ``` scripts/new_case.sh CASE002 ``` 案例目录布局: ``` cases/CASE002/ evidence/ acquisitions/ parsed/ timelines/ reports/ notes/ ``` ## 添加解析器 1. 在 `parsers/venin-parsers/src` 下添加一个解析器模块。 2. 使用 `serde` 定义类型化输出记录。 3. 在标准化值旁边保留原始值。 4. 为时间记录生成 `TimelineEvent` 值。 5. 在 `register_builtin_tools` 中添加元数据。 6. 添加确定性的测试夹具和单元测试。 7. 在 `TOOL_REGISTRY.md` 中记录该解析器。 ## 许可证 推荐采用双重许可 `MIT OR Apache-2.0`,这与常见的 Rust 开源实践一致,并为个人和组织明确了贡献条款。
标签:Chromium解析, DFIR工具, Python, Rust, SQLite解析, 二进制发布, 取证自动化, 可视化界面, 小工具哲学, 工件解析, 开源工具, 批量测试, 数字取证, 数据库解析, 数据提取, 无后门, 时间线重建, 浏览器历史, 结构化输出, 网络流量审计, 自动化脚本, 证据获取, 跨平台工具, 轻量级工具, 逆向工具, 通知系统, 重复性调查