3.2 KiB
3.2 KiB
威胁情报查询工具特有坑与边界
数据质量:无结果 ≠ 干净
- 私有/未收录样本查不到是常态:VT 只有公开库——检测数 0 或 not found 只标"未见记录"并注明查询时间,用行为证据(re-behavior / re-mem-forensics)下结论
- hash 误报:单厂商签名粒度粗,聚合统计不加权——"恶意"判定要求多厂商一致 + 家族标签 + 行为证据;改名/拼接样本的旧 hash 命中要核对内容(重算 sha256 比对)
- 沙箱报告假阴性:反沙箱样本在公开沙箱里休眠/走正常分支——报告"无恶意行为"不代表真实环境无行为;结合真实环境动态分析交叉验证
隐私与数据公开
- 上传即公开:VT/Any.run/hybrid-analysis 的免费通道默认公开报告——内部/客户样本上传前确认归属与数据策略(VT 企业私有 API、脱敏后上传、或选 private 分析选项)
- 查询也算数据暴露:API 查询行为与 key 关联——批量查询内部基础设施前评估暴露面
- 拿不准先问归属方,不做默认上传(re-analyze/platform-tips 敏感数据处理原则)
API 配额与限速
- VT 免费 key:有日配额与分钟限速,返回 403(无效/配额)与 429(限速)——脚本循环内 sleep(如 15 秒),聚合用 /search 少发请求,jq 只取所需字段
- hybrid-analysis:restricted key 只能查不能提交/下载;
/search/hash返回体含当前限额(Api-Limits 头)——超额先等重置 - MISP:配额取决于实例配置(无统一限速),但大结果集(不设 limit)会拖垮实例——查询带
limit+page分页
API 版本与端点漂移
- VT v2 → v3:v2 的
/vtapi/v2/*与/graph路径已废弃;v3 统一/api/v3/,鉴权头x-apikey——旧脚本 404 先查端点是否 v3 化(如 graphs 复数) - MISP 响应结构版本差异:restSearch 响应从
{"response": [...]}演变(老版本.response[0].Event直接对象、新版本数组包一层)——jq 用.response[]?.Event兼容展开;以实例实际返回为准 - hybrid-analysis:
POST /search/hash已标记弃用(被GET /search/hash取代);/report/summary弃用(用/report/<id>/summary);/report/{id}/dropped-files被-v2取代——按 v2.x 现文档写脚本 - Any.run:API 端点与鉴权以官方文档(any.run/api-documentation)为准,不同套餐能力不同——脚本化前先核对
关联误判边界
- graph/关联样本是启发式:同 C2/同签名/同互斥体命中不代表同一家族——关联强度分级写报告(强=多属性一致,弱=单属性巧合)
- 家族名口径不一:不同厂商对同一家族命名不同——以多厂商一致名称为准,报告里注明判定依据
- 时间漂移:历史检测/解析记录会随时间变化(下架/改名)——结论记录查询时间,复查时重新拉取
使用注意
- 查询证据链:值 + 来源 + 查询时间戳逐条入档(re-triage 惯例)
- 外部情报是佐证不是结论:最终判定以本地静态/动态证据为准(re-analyze/analysis-contract)