01 · 数据源全景与选型
Fast-flux检测的数据底座由五类来源构成。选型时应以覆盖广度 × 时序控制 × 历史纵深 × 合规成本四维权衡:
| 数据源 | 提供什么 | 代表服务(公开可查) | 接入方式 |
|---|---|---|---|
| 商业/社区被动DNS | 真实流量驱动的"域名→记录集"历史 | Farsight DNSDB、CIRCL Passive DNS、Recorded Future(原PassiveTotal)被动DNS、Cisco Umbrella | API / 批量订阅 |
| 主动测量平台 | 结构化、无流量依赖的日常记录集测量 | OpenINTEL(学术平台,IEEE JSAC 2016);自建多观测点探针 | 数据共享申请 / 自建 |
| 威胁追踪器与Feed | 已标注的恶意C2/域名情报 | abuse.ch Feodo Tracker(持续跟踪Dridex、Emotet、TrickBot、QakBot等家族C2)、URLhaus、ThreatFox;ZeuS Tracker(2008—2019年运营的历史档案) | 免费Feed / API |
| 注册与证书侧数据 | 注册商/注册时间/证书时间线(富化用) | RDAP(RFC 7483,子课题01)、CT日志/crt.sh(子课题02) | 公开查询 / 管道 |
| 区域文件与排名 | 域名存在性基线、抽样框架 | ICANN CZDS(gTLD区域文件)、Tranco排名(NDSS 2019) | 申请 / 公开下载 |
选型建议:预算有限的团队以"免费被动DNS(CIRCL)+ Feodo/URLhaus Feed + 自建少量探针"即可跑通最小闭环;具备数据工程能力的组织应补充商业被动DNS的历史纵深与OpenINTEL式区域测量,以消除"新域名冷启动盲区"(回应KQ-1)。
02 · 采集架构与调度策略
2.1 双通道架构
推荐"被动打底 + 主动补盲"的双通道:被动通道消费pdns流式/批量数据,覆盖广但存在发现时延;主动通道对候选域名集(新注册Feed、威胁Feed、告警回溯对象)执行定时解析采样,提供可控的时序分辨率。
2.2 主动采样的四条工程纪律
- TTL感知调度:重查询间隔应参照目标域TTL设定(如对TTL=300秒的域名以5—10分钟间隔采样),避免无意义高频查询,也避免错过轮换周期;
- 抖动与限速:查询加入随机抖动,对单权威服务器遵守礼貌速率;遵守各数据源与目标域的接受使用策略;
- 多观测点一致性采样:同一时刻从≥3个不同AS的观测点查询,计算应答集合重合度(识别按来源分片的反侦察手段,第2页§06);
- 双栈覆盖:A与AAAA记录同时采集;IPv6池的flux行为逐渐增多(第7页§03),单栈观测会系统性漏报。
2.3 数据新鲜度目标
| 通道 | 建议新鲜度SLO | 说明 |
|---|---|---|
| 被动DNS接入 | ≤1小时 | 含解析时间与首次观测时间双时间戳 |
| 主动采样(候选集) | ≤10分钟 | 以TTL为参照的自适应间隔 |
| 威胁Feed打标 | ≤15分钟 | Feed拉取频率与本地IOC库同步 |
03 · 数据模型与质量治理
3.1 核心记录模型(域名时序中心)
record := {
domain : 规范化域名(小写、去尾点;IDN转Punycode)
rrtype : A | AAAA | NS | CNAME
rdata : 记录值(IP / 域名)
ttl_auth : 权威应答TTL(与递归侧TTL分列存储)
seen_first : 首次观测时间
seen_last : 最近观测时间
source : pdns | active | feed | rpz-hit ...
vantage : 观测点标识(主动通道)
}该模型刻意保持扁平——Fast-flux分析的本质是"集合随时间的演化",过度规范化反而损害时序查询性能。
3.2 质量治理(对齐GB/T 36344-2018)
| 质量维度 | 度量方式 | 常见问题与对策 |
|---|---|---|
| 完整性 | 候选集覆盖率、记录类型覆盖率(A/AAAA/NS) | AAAA缺失 → 双栈强制采集;NS仅首见 → 独立NS轮询任务 |
| 准确性 | 与权威直接应答对拍(抽样) | 递归侧TTL被压值 → 权威/递归分列,特征计算仅用权威侧 |
| 时效性 | 观测时延分布(解析发生→入库) | 批处理积压 → 流式优先、批量补数 |
| 一致性 | 跨源实体对齐率(域名规范化、IDN) | 大小写/尾点/Punycode不一致 → 入库前统一规范化 |
| 可联系性 | —(注册侧概念,见子课题01) | 本课题记录层不涉及个人信息 |
3.3 保留策略
- 热层(90天):全量记录,支撑小时级时序分析与告警回溯;
- 温层(1年):按小时桶预聚合的"域名→IP集合"快照,支撑团伙聚类与历史复盘;
- 冷层(≥3年):已确认恶意事件的全分辨率存档(证据链需要),成本可控。
3.4 数据血缘与可追溯性(Provenance)
- 记录级血缘字段:ingest_job_id、source_scope(授权范围与许可版本)、transform_version(规范化脚本版本)随记录入库,任何特征值可回溯至原始采集批次;
- 变更审计:特征口径、阈值与白名单的每次变更留痕(变更人、时间、理由、回滚路径),与第4页§04阈值纪律联动;
- 证据链衔接:已确认恶意事件的记录集保持原始采集元数据完整(来源、观测点、时间戳),直接支撑第5页§04证据包与跨机构协作;
- 质量闭环:§3.2质量度量结果进入月度数据质量报告,重大劣化触发采集策略评审。
04 · 存储与查询工程
Fast-flux分析负载的特征是高写入(流式)+ 集合运算(IP池去重/Jaccard/熵)+ 时间范围扫描。列式时序数据库是该负载的自然选择;以下为参考实现要点(以ClickHouse为例,非唯一选型):
| 设计项 | 建议 |
|---|---|
| 排序键 | (domain, seen_first) ——支撑"单域时序"与"多域IP共享"两类核心查询 |
| 物化视图 | 按小时预聚合:domain → uniqExact(ip集合)、uniqExact(asn集合)、TTL分位数 ——特征管道直接消费 |
| IP侧索引 | 反向索引 ip → 当日域名集合(Set/Join表),支撑"某IP涉及多少恶意域"的溯源查询 |
| 查询接口 | 特征管道批量拉取 + 分析师即席查询(SQL)+ API(供SIEM/SOAR消费) |
工程陷阱警示:①递归侧TTL封顶会污染TTL特征——务必与权威侧分列;②pdns数据中的"合成记录"(部分解析器对NXDOMAIN的自定义应答)需识别剔除;③大规模uniq运算注意内存配额,小时桶预聚合可显著降载;④时钟漂移:跨观测点时间戳须统一NTP校准,否则churn计算会引入假阳性。
05 · 富化管道:从记录到特征向量
原始解析记录需经四层富化方可进入识别模型:
06 · 合规与伦理要求
- 主动测量边界:仅对域名发起标准DNS递归解析流程中的查询,不探测目标主机任何端口与服务;遵守礼貌速率与数据源ToS;
- 被动数据最小化:被动DNS采集与存储以"域名—记录"聚合对为单位,不保存查询者身份信息;合作方数据按其授权范围使用;
- 证据链管理:确认恶意事件的原始记录存档保留完整采集元数据(来源、观测点、时间戳),支撑后续法律程序与跨机构协作;
- 共享控制:对外共享的指标与情报做聚合与最小化处理(对齐子课题06的态势指标口径),个案数据通过正规协作通道交换。
本节参考来源(第3页)
F. Weimer. "Passive DNS Replication". FIRST Conference 2005:被动DNS方法学源头。
Farsight Security DNSDB:farsightsecurity.com;CIRCL Passive DNS:circl.lu(公开社区服务)。
OpenINTEL主动DNS测量平台:openintel.nl;van Rijswijk-Deij et al., IEEE JSAC 2016。
abuse.ch Feodo Tracker:feodotracker.abuse.ch;URLhaus:urlhaus.abuse.ch;ThreatFox:threatfox.abuse.ch。
ICANN CZDS(集中式区域文件服务):czds.icann.org;Tranco List:tranco-list.eu(Le Pochat et al., NDSS 2019)。
GB/T 36344-2018《信息技术 数据质量评价指标》:本课题数据质量框架的国标锚点(与专题首页口径一致)。
RFC 7483(RDAP JSON响应,子课题01);RFC 6962(CT日志,子课题02):富化管道依赖的协议标准。