ANY 与放大风险
ANY 类型查询会要求返回该名字下的所有记录,响应体积可能远大于请求,因此被视为具备放大能力的查询类型,也常被用于反射式攻击。判断风险要同时量化请求与响应的字节数之比以及来源分布:正常业务很少直接使用 ANY,出现来源分散、名称随机的高频 ANY 查询时更接近探测或滥用行为。另一方面,现代解析实现普遍对 ANY 做最小化应答、只返回少量记录,因此抓到小体积响应属预期,不能据此认定没有放大风险。
基本信息
| 协议依据 | RFC 8482(ANY 最小化应答) |
|---|---|
| 抓包字段 | dns.qry.type == 255 |
| 风险机制 | 响应体积大于请求时具备放大能力 |
| 判断要素 | 请求响应字节比、来源分散度、查询名称规律 |
| 现代实现 | 多数已对 ANY 返回最小化应答 |
典型使用场景
- 风险排查:确认是否存在具备放大能力的查询被滥用
- 来源分析:观察请求来源分散度判断是否为反射攻击
- 基线对比:与正常时段的 ANY 查询量比较
- 设备能力评估:确认解析器是否已实现最小化应答
- 告警规则:把异常高频的查询类型纳入监测
量化方法
量化方法
dns.qry.type == 255 # ANY 查询
# 统计请求与响应的字节数之比
# 再按来源地址统计查询频次与分散度
# 小体积响应属现代实现的预期行为风险量化要素
| 要素 | 说明 | 判断方向 |
|---|---|---|
| 请求响应字节比 | 放大倍数的直接度量 | 比值越大风险越高 |
| 来源分散度 | 来源地址是否高度分散 | 高度分散更接近反射攻击 |
| 名称规律 | 查询名是否有规律 | 随机名称更接近扫描行为 |
| 响应体积 | 是否被最小化处理 | 小响应属现代实现的预期 |
现代实现通常对 ANY 做最小化应答,看到很小的响应属预期行为;评估风险要看实现版本,而不是只看响应大小。
把 ANY 一律当成攻击会误伤合法的诊断工具,判断必须结合查询频次、来源分布与发生的时间段。