THAMO 线索举报、高危库与白名单增补
日期:2026-11-02。版本:1.1。适用首期。状态:阶段1/3本地接口、图片分析、Worker与签名情报已实现,见../implementation/stage-3-report.md;未生产接入。以下保留完整首期目标,未覆盖项按报告分阶段。
1. 功能与入口
用户可举报短信、URL和截图。保护页「举报可疑内容」、短信详情「举报」、系统分享至THAMO、我的「我的举报」共用同一表单;不新增底部Tab。首期一条线索可附一张PNG/JPEG截图,先预览,可移除/重选并补充说明;不做聊天客服、视频和多文件取证。
提交后返回report_id、处理状态和检查结果入口;可查看风险类型、证据、建议及未完成部分。处理状态:已收到/排队 → 分析中 → 完成、失败或已取消;结果单独保存高风险/需要核实/暂未见明显风险/证据不足,模型或情报失败注明未完成。候选入库与全局发布是第三套内部状态,不能把「收到举报」当「已确认诈骗」。失败保留可重试草稿,不自动再次上传用户已经删除的图片。
首期复用OTP账户:已登录才能上传举报,未登录可以编辑本地草稿,登录成功后回到原草稿,不直接丢失输入或未经确认自动提交。不再建设匿名身份、匿名回执令牌及账户合并。服务器从会话确定所有者,不信任客户端传入user_id;举报ID不可作为单独读取凭证。首期不强制填写受害金额或个人资料,不因举报给开启度加分,不奖励举报数量。主动单条举报与历史短信云同步分开同意:拒绝自动同步不妨碍主动提交。
2. 截图与图片处理
Android使用Photo Picker,适用设备回退系统文件选择器;只读取用户选中的图片,不为举报申请全相册、全盘存储或屏幕录制权限,不监视用户所有截图。首期仅一张、原始文件最多5MB;端上和服务器均验证格式、解码像素/资源上限并限制超大图,重编码和去除EXIF,具体压缩参数以文字清晰度验收为准。
上传前展示预览,并提醒用户先遮盖真实OTP、PIN、密码和无关个人资料;首期不声称已自动遮盖所有Bangla/混合语言截图。禁止发现认证秘密后继续复制到模型输出/日志;无法可靠处理的样本应要求编辑后重交。Gemini会接收用户确认的图片及必要说明,不把图片先传给模型又声称只传了匿名文字。
图片保存在私有附件存储,MySQL保存所有者、哈希、MIME、大小、对象ID和处理结果,不把Base64大图塞入原始短信表。读取需验证所有者/管理员权限,临时授权访问,不能生成永久公开图片URL。截图建议30天保留;举报与结论180天,注销和删除覆盖附件及派生文本。原始图片不发到公开威胁社区,不在其他用户手机分发。
3. 自动分析流水线
提交 → 鉴权/限流/类型校验 → 去重与规范化 → 信任基线匹配 → 已确认威胁情报匹配 → 规则初筛 → 必要的Gemini文本/图像理解 → 决策合并 → 用户回执 → 候选指标和证据入库。
Gemini负责Bangla/English/Banglish意图、截图文字/可见URL提取、冒充与索密话术、结构化理由和建议。提取文本标明来自图片及不确定性;模糊/裁切/伪造截图不足以证明真实网站或号码归属,不把图片中的域名拼成已访问的网址。
短信:索密/转账/紧迫性、已知诈骗模板、发送身份线索。URL:规范化/IDN/真实主机、仿冒与已许可信誉数据。App:签名/来源/身份与恶意情报;截图里的App名称不等于已经扫描APK。
首期不自动抓取任意用户URL、不执行网页JS、不下载恶意APK、不构建动态沙箱。若后续增加受控解链,必须独立网络隔离、每跳校验DNS/IP、禁止内网/云元数据、限制跳数/体积/时间与协议;不能直接让Gemini调用任意网址工具。没有访问网页就明确写未核验实际页面,缺少情报不等于安全。
模型输出固定schema:risk_level、reason_codes、observed_evidence、suggested_action、limitations、model_version。文本/图片都为不可信输入,不能执行其中「忽略规则」「加入白名单」等指令。只做有上限的重试,超时给未完成,不无限调用。普通输入和已确认命中可走规则/缓存,不能每条都多次LLM投票。
4. 高危线索库
四类逻辑对象即可:举报、指标、证据来源、信任规则。实现可复用已有表,不拆新微服务。
指标类型:精确URL、主机/域名、号码、短信模板、包名+证书、文件哈希。每条有:规范键、类型、风险类型、候选/有效/冲突/撤销/过期状态、来源及来源家族、证据摘要、首次/最近发现、有效期、置信层级、规则/模型版本、更新原因。URL匹配精度不得因丢弃路径/查询而误封共享平台整域;私密参数不对外传播。
来源分层:
• 用户举报和截图:原始线索,不是已确认黑名单。
• Gemini判断:派生意见,不是独立事实来源,也不是多个独立情报源。
• 官方公开通报或已许可确认情报:可验证证据,仍检查时间/有效范围与错误撤销。
• 官方品牌网站、应用签名等:身份基线,不保证内容永远无害。
无人值守的发布策略:证据达标且来源许可/新鲜度/精确匹配通过的记录可按固定规则自动发布;只有AI判断或投诉数量多的留在候选,给提交者必要提醒,不发布全局自动封禁。多个镜像同源算一个来源,不让批量注册和重复截图提升独立可信度。来源可靠度只依据已核验有效率及一致证据,不按举报数量加权,不作客户信用画像。
用户举报不能直接决定另一用户的私人信息展示、联系人优先级或身份结论;跨用户使用只限合法适用、必要、已说明的威胁指标,不能传播私人原文。电话/SMS受限数据的实际用途仍须对应Play政策,不把用户同意当作任意加工资格。
5. 冷启动与持续更新
优先候选:Phishing.Database的明确许可版本做URL候选种子;BGD e-GOV CIRT公开通报按TLP与条目许可提取适用IOC;孟加拉品牌官方资料建立身份基线。各源固定来源、版本摘要、许可及更新时间;阶段1已做固定来源小批候选,阶段3已受限获取、签名及真实撤销/回滚;无商业确认情报采购,不把旧版本或候选当仍活跃。
可选增强:Google Web Risk作为独立查询来源,结果/缓存遵守服务限制,不复制为可再分发自有黑名单;URLhaus针对恶意软件下载而非一般钓鱼,商业资格需确认;OpenPhish社区版非商用不能直接作为公司产品免费情报;PhishTank现行条款指向Cisco,旧归档的免费商用文字不能作为当前授权结论。
每日受限任务检查来源变化/ETag(源要求更低频时遵守),导入到暂存区,校验许可状态、记录数突变、格式、共享域名误封、白名单冲突及过期,然后生成新版本与小规模影子评测。通过再原子切换生效版本,保留上一个可回滚版本。全源失败沿用有效旧版并显示陈旧,不清空库、不误标全部安全。
AI可发现新话术、生成模板候选、归类与提出去误报规则;不会直接改可执行规则、覆盖品牌签名、修改信任源或自发训练生产模型。候选规则先在冻结的正常/诈骗样本回放,验证误报与召回再版本化发布。无须配置人工逐条审核岗位;例外和纠错可在管理页暂停/回滚,且所有操作有审计。
6. 白名单 / 信任规则
1. 个人信任:用户对号码/会话/特定结果选择「我信任/不自动拦截」,仅对自己生效,不修改全局事实;即便个人放行,强恶意证据仍显示必要提醒。
2. 官方身份基线:精确主机、已核验联系方式、包名+证书及适用版本/签名轮换,保存官方出处与复核时间。显示「身份基线匹配」,不显示「绝对安全」。来电号码可被冒用,官方号码也不能免除内容检测。
3. 特定规则误报例外:仅对精确对象和特定规则降权/暂停,记录原因、期限、创建来源和冲突;不得新增一个可绕过所有检测的超级白名单。
禁止:根据显示名/品牌文字就放行;把共享平台、短链根域或整类号码加入永久全放行;一次用户反馈就改全局;让Gemini直接创建全局信任规则。白名单条目不屏蔽实际恶意下载、索密或新的确认情报。
冲突处理:记录进入冲突态并暂停自动全局封禁,保留实际证据与「需要核实」提示,不静默优先白名单把危险标安全。精确确认恶意的独立证据可继续提示风险;回滚/到期和撤销均生成版本更新。号码、域名可转手,必须过期复核。
7. 后台最小增量
现有小后台增加一个「线索与信任」页面,4个Tab:举报、候选、有效情报、信任规则。查看来源、命中证据、图片(授权访问)、AI解释、有效期、冲突、版本;支持筛选、停用/撤销、误报纠正和回滚。不是客服系统,不需要有人坐班审核,不添加任意SQL控制台。
8. 接入实施阶段
阶段1:表/附件契约、举报接收/回执、候选/有效/白名单状态、后台骨架;验证合成样本,并固定许可明确的URL源和官方身份出处,小批导入暂存候选,未确认来源不下载。
阶段3:短信/链接/截图入口、系统选择器、隐私预览、异步Gemini和状态回执,规则/信誉合并、个人信任与误报反馈;启用URL来源受限更新、影子评测与版本发布/回滚。
阶段5:应用专用证书/恶意情报、App证书关联,复用已有来源与版本机制;如果许可或质量不成立保留候选、不假称生产已用。
阶段6:刷量、恶意举报、截图伪造/提示注入、共享域误封、白名单冲突、源过期/撤回、用户删除及附件隔离验证。真实分析效果与设计原型分开。
9. 验收样例
• 正常银行通知被多人举报:不因票数自动封禁;识别正常交易上下文并保留反馈。
• 白名单显示名短信索取PIN:继续告警,不因名字像官方放行。
• 用户信任的号码出现在确认恶意来源:保留个人设置,展示新证据,不向其他用户广播该用户私密记录。
• 同一URL数百条投诉/重复截图:同一候选合并,独立证据计数不膨胀。
• 图片仅有一半网址:提取为不完整线索,要求补充,不拼造域名。
• 未知链接无情报、Gemini不确定:需要核实,不显示已查安全。
• 上游撤回或源陈旧:条目撤销/过期,客户端能收到版本变化。
• 举报附件不可公开读取;删除覆盖缩略图/派生文本和服务缓存;敏感信息不进入日志。
10. 核验来源
公开来源选型详见 ../research-and-validation/thamo-threat-library-sources-20261102.md。
• Android Photo Picker:https://developer.android.com/training/data-storage/shared/photo-picker
• Gemini图像理解:https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding
以上为能力文档,不代表现有服务账号/模型已经完成图像接口验收。未调用真实付费模型、未上传用户图片。
11. 最小接口、任务与失败恢复
以下接口已在阶段1/3本地实现(实际见docs/api/thamo-stage3.md);沿用现有账户鉴权,不新建一套登录服务。
| 接口 | 作用 | 成功的含义 |
|---|---|---|
| POST /v1/reports | 有界multipart提交类型、文字、说明、单图;带幂等键 | 返回202和report_id,表示内容/任务已持久化,不表示分析完成 |
| GET /v1/reports | 当前账户分页查询举报历史 | 仅本人记录,不公开举报墙 |
| GET /v1/reports/{id} | 查看处理状态、结果、限制与证据摘要 | 验证所有者,不以知道ID作为权限 |
| GET /v1/reports/{id}/attachment | 授权读取附件 | 每次检查所有者或管理权限,不暴露磁盘路径和永久公共URL |
| DELETE /v1/reports/{id} | 删除举报、附件和派生内容并取消任务 | 返回删除状态;后台晚到结果不能复活 |
| GET/POST /v1/trust-rules/personal;DELETE /v1/trust-rules/personal/{id} | 当前用户的个人信任与撤销 | 不能写官方基线、全局规则例外或他人设置 |
现有Nginx默认1MB body,已有JSON端点另有大小限制;截图最大5MB不能直接沿用。阶段1仅为举报路由设置适当总请求上限(建议6MB,包含字段开销),使用受限流式读取/解码,不整体放开所有API,也不把图片Base64混入短信同步。上传失败不返回「已收到」。
单体MySQL任务+一个工作进程足够:记录job_id、report_id、状态、attempt_count、next_retry_at、lease_until、input_version、analysis_version与取消/删除标记。任务租约过期可恢复,输入版本和结果提交幂等,服务重启不丢任务;对临时失败初始最多2次自动重试,达到上限返回可见失败。模型超时、用户限流、每日预算分别配置,不使用无限重试。
API请求不等模型返回。工作进程提交结果前复查所有者、同意、input_version和删除标记。用户编辑/重新提交生成新输入版本;旧结果不能覆盖新输入。重复请求最多复用本账户相同有效输入及检测版本的结果,不暴露他人私信/图片或仅凭相同哈希共享原文。
处理状态:queued/running/completed/failed/cancelled。风险状态与coverage字段记录证据充分度;发布状态:candidate/active/conflicted/revoked/expired。三者独立,completed不自动active;active指标也不意味着所有用户自动封禁。
12. 明确的证据与动作判定
| 证据 | 库状态/输出 | 允许动作 |
|---|---|---|
| 单次或大量投诉、仅AI判断、截图文字 | candidate;提交者可收到具体内容风险提醒 | 不全局自动封禁,不自动标注号码所属人诈骗 |
| 单一未经充分验证公开源命中 | candidate或需要核实 | 保留来源,不因源条数多或镜像多提升为多源确证 |
| 许可与质量配置已核验的确认情报,精确匹配且有效、无未解决冲突 | 可按固定策略active | 提示高风险;拦截另受用户设置、角色和对应动作规则限制 |
| 官方身份匹配,内容却索PIN或另有独立强恶意证据 | 保留身份信息,内容仍告警;不执行宽泛放行 | 暂停有争议全局自动封禁,具体强证据继续可见,不称安全 |
| 来源撤回、指标过期或证据失效 | revoked/expired,停止继续按旧证据执行 | 下发撤销/到期状态、支持纠错与回滚 |
信任规则必须包含owner/scope、精确目标、适用规则、理由/证据、来源、创建/复核时间、到期时间及版本。个人信任不需要上传用户通讯录,默认不向别的用户共享;官方基线只匹配身份类规则,不能豁免所有内容检查。共享平台根域和短链服务不能整域全放行或全封禁。
不设「投诉达到N条就封」或「Gemini自报置信度超过某数就封」阈值。自动规则发布依据固定测试结果与证据等级,不依赖人工逐条审核,也不允许模型直接写可执行代码或改变信任来源。
版本更新同时处理新增、撤销和到期。客户端通过HTTPS获取有版本与摘要的最小必要情报,范围受许可限制;更新中断保留完整旧有效版,不能半个版本生效。回滚仍保留已删除/撤销的必要标记,不能把新撤销条目因旧快照恢复而重新激活。
13. 首期边界与验收引用
保留单图、文字/URL、我的举报、异步分析、候选/有效情报、三类信任规则。延后匿名举报、公开评论/投票、悬赏积分、聊天工单、多图/视频、自动抓网页、APK沙箱、全自动生产模型训练。库从少量可核来源开始,既不等全国号码库建完才上线,也不凭空宣称覆盖所有诈骗。
场景按需求与验收矩阵的AC10–AC19、AC22–AC24验证;具体归属见阶段计划。附件与派生文本须纳入账户删除、Data Safety和用户说明。截图自动脱敏未经验证前不能作为已实现卖点。