aoiflux/indicer

GitHub: aoiflux/indicer

DUES 是一个数字取证平台,用于高效存储、分析和搜索大规模磁盘镜像与文件。

Stars: 5 | Forks: 1

# DUES - 去重统一证据存储

DUES Logo

[![Go 版本](https://img.shields.io/badge/Go-1.25-blue.svg)](https://golang.org) [![版本](https://img.shields.io/badge/version-0.38-green.svg)](https://github.com/aoiflux/indicer) [![许可证](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) DUES 是一个数字取证数据平台,用于摄取、去重、索引、搜索、恢复和比较大型证据集。 版本:0.38 代号: spacebar ## 重要升级通知(破坏性变更) v0.38 引入了磁盘数据库和索引布局的结构性变更。 - 旧的数据库目录可能与此版本不完全兼容。 - 在不进行迁移或重建的情况下重用旧的数据库路径可能导致读取/启动失败。 - 升级前请备份现有数据库路径。 - 升级后,运行修复和重建索引/恢复工作流,以新格式重建状态。 ## 发布摘要 本次发布是一次大规模的全面更新,重点聚焦于可靠性、检索质量和调查速度。 - 存储管道改进,具备更好的可靠性和吞吐量调优。 - 恢复管道升级,包括多线程恢复控制。 - 搜索相关性改进,结合 BM25 和混合全文回退。 - 新增用于证据、分区和已索引文件元数据的丰富化管道。 - 新增微型伪影提取和图工作流。 - 近似相似度和 SimHash 增强,支持数据库内外匹配。 - 扩展了服务器功能,支持浏览器上传会话。 - 核心子系统的测试和基准测试覆盖范围更广。 专利信息:本软件已产生两项衍生发明,受印度专利局注册的专利 567877 和 556272 保护。 ## 功能亮点 ### 1) 摄取、去重与存储 - 分块级去重,支持可配置的哈希算法。 - 默认哈希为 BLAKE3;也支持 SHA3。 - 可选的基于密码的加密数据库操作。 - 每个分块进行 zstd 压缩,压缩级别可调。 - 容器模式,用于大规模 blob 打包。 - 分层块索引模式,实现可扩展的查找路径。 - 摄取验证和启动时恢复,用于处理不完整的摄取。 - 修复工具,用于检查并可选择性地将部分摄取标记为失败。 ### 2) 使用 libtsk (通过 libtusk) 进行图像解析 - DUES 现在使用 libtusk(The Sleuth Kit 的 C 语言封装)在支持的目标上进行分区表和文件系统解析。 - 这实现了更丰富的分区/文件系统感知索引行为,与取证图像分析用例保持一致。 - 当前支持 CGO/libtusk 的目标平台:windows/amd64 和 linux/amd64。 - 在不受支持的目标上,DUES 会回退到内部解析(MBR/exFAT 路径)。 - 在当前的解析流程中,碎片化文件处理仍然有限;碎片化条目会被 libtusk 索引路径报告并跳过。 另请参阅: - [TOOLCHAIN_NOTES.md](TOOLCHAIN_NOTES.md) - [clib/LIBTUSK_ABI.md](clib/LIBTUSK_ABI.md) ### 3) 搜索与排名 - 查询解析,支持 AND/OR/短语搜索行为。 - 基于 BM25 的排名支持。 - 通过 rank-alpha 进行词频感知的排名调整。 - 混合模式:优先使用全文旁路存储,自动回退到扫描搜索。 - 为报告工作流生成搜索输出。 ### 4) 近似相似度 - 近似内:比较 DUES 中已存储的对象。 - 近似外:将外部文件与 DUES 内容进行比较。 - 支持 SimHash 工作流和 Top-K 验证选项。 - 可选的深度和精确解释行为,用于调查工作流。 ### 5) 丰富化与微型伪影 - 图丰富化命令,用于回填层次结构元数据。 - 跨已索引文件的微型伪影提取管道。 - 针对常见取证伪影模式的检测器和解析器扩展。 - 支持图导出,包括交互式 HTML 输出。 ### 6) API、服务器与浏览器上传路径 - 在端口 50051 上运行 Connect + gRPC + gRPC-Web 服务器模式。 - 本地主机感知的 CORS 行为,适用于浏览器客户端。 - 浏览器上传会话端点: - POST /web/upload/start - POST /web/upload/chunk - POST /web/upload/finalize - 健康检查端点:GET / ### 7) TUI 与操作员工作流 - 基于 Bubble Tea v2 的 TUI,集成存储/列表/搜索/恢复/近似/重置流程。 - 改进了命令行操作的易用性和状态可视性。 ## 安装说明 ### 前置条件 - Go 1.25+ - Windows、Linux 或 macOS ### 构建 ``` git clone https://github.com/aoiflux/indicer.git cd indicer go build -o dues . ``` Windows 用户可能更倾向于: ``` go build -o dues.exe . ``` ## 快速开始 ``` # imilarity" could be "近似相似性" or "近似匹配". "DB object" – "DB" might stand for database, so keep "DB" in English? "DB" is a common abbreviation for database, so I should keep it as "DB". "object" is part of it. So: "来自 DB 对象的近似相似性" but to be concise, perhaps "DB 对象的近似相似性". I'll translate: "近似相似性来自 DB 对象" dues store E01-image.dd --enable-enrichment --enable-fts # 7. Near similarity for external file dues list # - Similarly: "外部文件的近似相似性" dues search "invoice payment" # 8. Backfill hierarchy enrichment in graphdb dues search --enable-fts "invoice|receipt" # - "Backfill hierarchy enrichment" – "backfill" might be a technical term, so keep in English? "hierarchy enrichment" – "层次结构丰富化". "graphdb" – this is likely a tool or library name, so keep in English: "graphdb". So: "在 graphdb 中回填层次结构丰富化" but that sounds awkward. Perhaps "Backfill hierarchy enrichment in graphdb" -> "在 graphdb 中回填层次结构丰富化". I'll adjust: "回填层次结构丰富化于 graphdb" dues restore --filepath restored.bin # 9. Extract micro-artefacts and export graph.html dues near in --advanced-deep --topk 50 # - "Extract micro-artefacts" – "micro-artefacts" might be a technical term, keep in English? Probably translate. "提取微小产物" or "提取微 artifacts". To keep it clear, I'll translate: "提取微 artifacts" but the instruction says to keep technical jargon in English, so "micro-artefacts" might be kept as is. However, in the context, it's not a proper noun, so I'll translate it. "export graph.html" – "graph.html" is a file name, so keep in English. So: "提取微 artifacts 并导出 graph.html" dues near out suspect.bin --explain-exact # 10. Inspect/repair pending ingests dues enrich # - "Inspect/repair" -> "检查/修复". "pending ingests" – "pending" might be kept or translated, "ingests" could be "摄入" or "导入". I'll translate: "检查/修复待处理的摄入" dues micro extract --top-k 25 # 11. Launch TUI dues repair dues repair --fix # - "Launch" -> "启动". "TUI" – this might be an abbreviation for Text User Interface, so keep in English as "TUI". So: "启动 TUI" dues tui ``` ## 命令摘要 核心命令: - dues store FILE - dues list - dues search QUERY - dues restore HASH - dues near in HASH - dues near out FILE - dues stats - dues repair [--fix] - dues enrich - dues micro extract - dues micro list - dues server - dues tui - dues version - dues reset ## 重要标志 全局: - --dbpath, -d: 自定义数据库路径 - --password, -p: 用于加密数据库访问的密码 - --chonksize, -c: 分块大小,单位 KB(默认 256) - --low, -l: 低资源模式 - --quick, -q: 吞吐量优先模式 - --container, -x: 容器 blob 模式 - --hierarchical, -i: 分层索引模式 - --compress-level: fast、default 或 best 存储相关亮点: - --sync, -s: 同步索引 - --no-index, -n: 跳过索引 - --enable-fts: 构建旁路全文索引 - --enable-enrichment: 将层次结构元数据更新到 graphdb - --hashalgo, -a: sha3 或 blake3 - --simhash: 在摄取期间计算分块 SimHash 签名 - --store-workers 和 --store-queue: 覆盖摄取管道调优参数 恢复相关亮点: - --filepath, -f: 输出路径 - --restore-workers, --restore-queue: 管道调优参数 - --restore-progress-ms: 进度更新间隔 - --restore-buffer-mb: 写入缓冲区大小 搜索相关亮点: - --rank-alpha: 词频提升权重 - --enable-fts: 混合全文 + 回退扫描路径 近似相关亮点: - --deep, -e: 部分分块匹配 - --advanced-deep, -a: 阶段 2 全文件 SimHash 重排序 - --topk, -k: 阶段 2 重排序的 Top-K 候选 - --explain-exact, -x: 强制进行分块钻取以精确匹配外部文件 ## 迁移清单(0.38 之前版本升级到 0.38) 1. 备份当前数据库目录。 2. 将二进制文件升级到 v0.38。 3. 运行 `dues repair` 并检查待处理/失败的证据。 4. 根据需要重新运行存储/索引路径,以对齐格式。 5. 如果需要图元数据,请重新运行丰富化和微型提取。 6. 在代表性样本上验证搜索和恢复输出。 ## 架构与设计文档 - [STORE_LLD.md](docs/STORE_LLD.md) - [STORE_BOTTLENECKS.md](docs/STORE_BOTTLENECKS.md) - [SEARCH_LLD.md](docs/SEARCH_LLD.md) - [ENRICHMENT_LLD.md](docs/ENRICHMENT_LLD.md) - [MICRO_ARTEFACT_DEEP_DIVE.md](docs/MICRO_ARTEFACT_DEEP_DIVE.md) - [NEAR_SIMILARITY_LLD.md](docs/NEAR_SIMILARITY_LLD.md) - [HIERARCHICAL_INDEX.md](docs/HIERARCHICAL_INDEX.md) - [CONTAINER_MODE_LLD.md](docs/CONTAINER_MODE_LLD.md) - [CONTAINER_MANAGER_CURRENT.md](docs/CONTAINER_MANAGER_CURRENT.md) - [RESTORE_LLD.md](docs/RESTORE_LLD.md) - [BENCHMARKING.md](docs/BENCHMARKING.md) - [TUI_QUICKSTART.md](docs/TUI_QUICKSTART.md) - [TUI_IMPLEMENTATION.md](docs/TUI_IMPLEMENTATION.md) ## 输出产物 - report.json:搜索报告输出 - graph.html:相似度和微型伪影图可视化 - BLOBS/*.blob:去重的分块/容器数据 ## 许可证 MIT。详见 [LICENSE](LICENSE)。 ## 贡献 欢迎提交问题和拉取请求。
标签:BLAKE3, BM25搜索, EVTX分析, Go语言, Python工具, SHA3, SimHash, 元数据富化, 全文搜索, 关系发现, 取证平台, 取证科学, 哈希算法, 图工作流, 大规模调查, 存储系统, 微 artifacts 提取, 快速取证, 数字取证, 数据加密, 数据去重, 数据取证, 数据摄入, 文件分析, 日志审计, 电子取证, 磁盘镜像处理, 程序破解, 索引技术, 自动化脚本, 证据存储, 证据恢复, 证据搜索, 证据比较, 证据管理, 调查工具, 近似匹配, 高性能计算