Mecapixel/whisperward-osint
GitHub: Mecapixel/whisperward-osint
一款面向 Trust & Safety 和儿童保护领域的可解释 OSINT 数字调查平台,提供从公开数据收集到证据固定、风险评分的端到端调查流水线。
Stars: 0 | Forks: 0
# WhisperWard OSINT
**一个专为 Trust & Safety 和儿童保护调查设计的、可解释的数字调查平台。**



[](LICENSE)
WhisperWard 结合了公开数据收集、行为分析、跨平台身份关联以及透明、可解释的风险评分——同时在每次升级处理中保留人类的决策权。它是模块化且本地优先的:仅处理公开可访问的数据,完全在本地机器上运行 AI 分析,并在任何升级操作前要求人工审查。
该项目由 **Meca Dismukes (Pixora Inc.)** 构建,既是一个活跃的调查工具,也是一个面向 ICAC 相关工作和 Trust & Safety 领域的作品集项目。
**在线演示:** [whisperward-osint.onrender.com](https://whisperward-osint.onrender.com) — 预装了清晰标记的合成案例。托管在免费层上,因此空闲后的首次访问大约需要 30 到 60 秒来启动。
## WhisperWard 诞生背景
WhisperWard 的诞生是为了直接应对一起真实事件,该事件涉及一名成年人试图通过 Discord 针对一名未成年家庭成员。它的存在是为了给调查人员和平台安全团队提供一种更快捷、可靠且合乎伦理的方式,以便在公开信号报告到达人工审查员之前对其进行分类——而不是取代人类的判断。
## 致招聘人员与招聘经理
本项目展示了可直接应用于 ICAC 相关调查、Trust & Safety 以及检测工程岗位的生产级技能。
- 构建了完整的端到端调查 pipeline,从原始公开数据到经过分类、可人工审查、可在法庭上作为辩护依据的情报
- **防御和取证深度:**防篡改的哈希链式监管链、加密签名的 PDF 案例报告、绝不触碰加盖封条原件的 PII 编辑、90 天保留期执行器,以及在每次升级时严格的人工介入要求
- **生产级工程:**424 个通过的测试、结构化日志、带断路器的令牌桶速率限制,以及贯穿始终的 SHA-256 证据完整性
- **负责任的 AI:**仅限本地分析,带有可解释、可拆解的风险评分——任何调查数据都不会离开本机
- **全栈交付:**Python 后端、JSON API 层,以及使用 D3 实时呈现的 Web 仪表板
- **治理优先:**成文的伦理边界、偏见与公平性测试,以及经过校准的分级审查工作流——参见 [`POLICY_BOUNDARY.md`](POLICY_BOUNDARY.md) 和 [`ethical_governance.md`](ethical_governance.md)
这项工作可迁移到进攻性(OSINT 工具)、紫队(检测工程与抗规避)以及防御性安全岗位中。
## 伦理边界
完整政策:参见 [`POLICY_BOUNDARY.md`](POLICY_BOUNDARY.md) 和 [`ethical_governance.md`](ethical_governance.md)。
- 仅限公开数据——不拦截私人信息、不进行设备监控、不进行未经授权的访问
- 本地 AI——调查数据绝不会发送至任何第三方 API
- 所有 Tier 2 和 Tier 3 升级都需要人工审查
- 开发和演示仅使用由调查员创建的测试账户和合成数据——出于作品集目的,不处理任何真实的未成年人或真实的嫌疑人
- 不进行自动 CyberTipline 提交——系统仅生成符合 CyberTipline 标准的代表性导出数据;必须由合格且具备资质的人员确认并提交每一次升级
- CSAM 哈希检测(PhotoDNA / NCMEC)受审批门控,在等待外部授权时默认禁用
## 快速开始
只需两条命令即可查看带有内置演示数据的仪表板:
```
pip install -r requirements.txt
python webapp/main.py
# 然后打开 http://localhost:8003
```
该仪表板在没有任何 AI 依赖的情况下运行,并在数据库为空时自动注入合成演示案例。完整的收集和分析 pipeline(实时 OSINT、本地 AI)需要 Ollama runtime 以及下方[安装说明](#installation)中的额外设置。
仪表板在登录时会要求输入操作员名称。这是特意设计的轻量化机制:运行该工具的人即成为操作员,签名的会话 cookie 的存在是为了防止篡改而不是作为凭证门槛,权威的操作员记录保存在防篡改的监管链日志中。为了在主机重启后保持会话有效,可以选择在环境中设置 `WHISPERWARD_SESSION_SECRET`;否则,系统会在首次运行时生成并本地持久化一个密钥。
## 截图
Boot sequence — live case count pulled from the database
Operator authentication
Case registry — active cases sorted by risk score, with the D3 threat-tier distribution across all active cases
Classified case file — quick-view popup
Subject dossier — risk assessment, artifacts, and live Roblox avatar
Risk timeline and radial gauge — per-case scoring history and current-risk gauge
Risk breakdown — explainable component contributions from the structured risk engine, with the terminal intel log
截图使用了仅包含由调查员创建的账户和合成数据的干净测试环境。
## 核心功能 ### 已完成 **收集与分析** - 使用 Typer 和 Rich 构建的完整命令行界面 - 通过共享的 `BaseOSINTModule` 基类实现的模块化 OSINT 架构——添加新平台不到 100 行代码 - 平台插件架构(`platform_plugin.py`)提供了清晰的抓取/标准化/风险信号契约,包含一个封装了收集器的实时 Roblox 插件,以及为未来工作定义的 Discord 契约 - 具备重试逻辑和头像收集功能的实时 Roblox 公开 API 集成 - 通过 Sherlock 在 8 个平台上进行跨平台用户名关联 - 使用 Ollama (qwen2.5-coder:7b) 和基于 ChromaDB 检索增强的知识库进行本地 AI 分析 - 可解释的加权风险评分引擎,展示主要贡献信号 - 猥亵模式行为分类器(孤立、保密、年龄试探、平台迁移压力、礼物诱惑等),具备否定处理和顺序感知能力 **证据与监管链** - 哈希链式、防篡改的监管链日志,可检测编辑和删除操作 - 带有 SHA-256 哈希和自密封清单的证据打包 - 加密签名的 PDF 案例报告(使用 pyHanko),包含完整的完整性部分和篡改检测 - PII 编辑引擎,生成单独的派生导出文件,绝不修改密封的原始文件 - 符合 CyberTipline 标准的代表性报告导出,默认进行脱敏处理 - 90 天保留期执行器,默认以预演模式进行清除,并始终保留审计链 **Web 界面** - 带有实时案例数据和具有凝聚力的 CRT 监控美学的 FastAPI Web 仪表板 - 提供真实数据的 JSON API 层(指标、风险分布、单案例摘要、风险时间轴、平台能力) - D3.js 可视化:仪表板威胁分布图、单案例风险时间轴以及当前风险径向仪表盘 - 在对象档案中实时渲染 Roblox 头像 **工程** - 424 个通过的 pytest 测试、结构化日志、带断路器的速率限制,以及贯穿始终的 SHA-256 证据完整性 **关联与扩充** - 跨平台关联引擎,融合了五种经过稀有度加权的信号——用户名(RapidFuzz)、文体学、活动时间、共享网络和感知头像哈希——并具备 NetworkX 身份聚类、矛盾检查,以及每个信号的详细理由;配备了一流的 CLI `correlate` 命令,可将其完整结果密封到证据库中 - IP 扩充和匿名化(Tor / VPN / 主机)检测,设计上完全离线——任何被调查的地址都不会被传输给第三方 - 构建于插件架构之上的 Roblox 调查扩充功能,将仅供审查的线索输入风险引擎 - Discord 公开 OSINT 模块(邀请和小部件情报,无 token,仅限公开数据),实现了相同的插件契约 - CSAM 哈希检测模块——架构已完成并通过测试,受审批门控,在等待外部授权时默认禁用(仅限哈希和元数据,绝不涉及图像内容) ### 正在积极开发中 - 通过插件契约提供更多的平台模块(仅限公开数据) ## 治理与审查工作流 WhisperWard 生成情报;每一项决定均由合格的人员做出。风险评分映射到经过校准的三级工作流中,这在代码中得到了强制执行,并记录在 [`ethical_governance.md`](ethical_governance.md) 中: - **Tier 1 (0.0 – 1.9)** — 记录以供监控,计划重新扫描,不发送通知 - **Tier 2 (2.0 – 6.9)** — 通知人工审查员,必须在 24 小时内确认,未经明确批准不得升级 - **Tier 3 (7.0 – 10.0)** — 自动生成证据包,但若无具备资质的人员在包清单中签名确认,绝不提交 每次主要版本发布时都会运行偏见和公平性审计。任何表现出误报率比基线高出五个百分点以上的人口统计学代理组,都会阻止该版本的发布,直到问题解决。 ## 架构 WhisperWard 将可重用的调查核心与建立在其之上的特化功能分离开来。核心负责证据完整性、监管链、关联、可解释的风险评分、编辑、保留和报告。特化模块通过注册接口(`core/registry.py`)根据稳定的契约(`core/contracts.py`)向核心声明其收集器、分类器和行为指标;核心绝不导入特化模块。儿童安全是首个特化模块。AI 分析完全在本地运行,每一步都会记录其操作以供审计,证据在防篡改的哈希链下被密封。 ``` CLI / Dashboard | +-------------------+-------------------+ | WhisperWard Core | | contracts · registry · plugin base | | correlation engine · risk engine | | evidence store (SQLite + SHA-256 | | chain of custody) · redaction · | | retention · signed reporting | +-------------------+-------------------+ | modules/child_safety (first specialization) collectors (Roblox live, Discord contract, Sherlock) grooming classifier · CSAM hash-and-refer local AI + RAG (Ollama + ChromaDB) NCMEC-aligned referral export | Human Review + Signed Export ``` ## 技术栈 Python · Typer · Rich · FastAPI · D3.js · SQLite · ChromaDB · Ollama (qwen2.5-coder:7b) · pyHanko · reportlab · pytest · Loguru · structlog ## 安装说明 ``` git clone https://github.com/Mecapixel/whisperward-osint.git cd whisperward-osint pip install -r requirements.txt # 可选:使用 Sherlock 进行用户名关联 git clone https://github.com/sherlock-project/sherlock.git # 可选:本地 AI 分析(一次性 model 拉取) ollama pull qwen2.5-coder:7b # 初始化数据库 python whisperward.py init-db ``` ## 用法 WhisperWard 作为命令行 pipeline 运行。典型的调查流程: ``` # 创建 case python whisperward.py new-case --name "Investigation-2026" # 向 case 添加 target(使用上面返回的 CASE-XXXX id) python whisperward.py add-target --case CASE-XXXXXXXX --username someusername --platform roblox # 为 case 收集公开 OSINT python whisperward.py scan --case CASE-XXXXXXXX # 运行 AI + RAG 行为分析 python whisperward.py analyze --case CASE-XXXXXXXX --ai # 关联 case 中所有 target 的身份 python whisperward.py correlate --case CASE-XXXXXXXX # 生成身份关系图 python whisperward.py graph --case CASE-XXXXXXXX # 使用 SHA-256 清单打包证据 python whisperward.py export --case CASE-XXXXXXXX # 生成已签名的 PDF case 报告 python whisperward.py report --case CASE-XXXXXXXX # 或者端到端运行完整 pipeline python whisperward.py run --case CASE-XXXXXXXX ``` 启动 Web 仪表板: ``` python webapp/main.py # 然后打开 http://localhost:8003 ``` ## 许可证 GNU Affero General Public License v3.0 — 参见 [`LICENSE`](LICENSE)。 WhisperWard 是经过深思熟虑后采用 AGPL-3.0 许可证的。作为一款儿童安全工具,它必须保持开放和可审计:任何基于它进行构建或将其作为网络服务运行的人,都必须保持其版本开源,这样它的伦理防护机制就不会被悄悄移除或挪作他用。本工具仅供经授权的调查和防御用途。所有使用必须遵守平台服务条款和适用法律。 由 Meca Dismukes 构建和维护 — Pixora Inc.标签:AI风险缓解, ESC4, OSINT, Python, 信任与安全, 安全规则引擎, 数字取证, 无后门, 自动化脚本, 调查平台, 逆向工具