Page 373 - 《软件学报》2026年第4期
P. 373
1814 软件学报 2026 年第 37 卷第 4 期
FluxBuster [31] 、ExecScent [32] 、Segugio [33] 、DNSMap [34] 、BotGAD [35,36] 、BotDAD [37] 等, 这些方法都涉及深度报文检
测. 利用 DNS 报文进行检测必须对 DNS 报文完成解包, 无法像网络流量通过流技术快速统计流特征进行检测,
DNS 报文检测方法都是通过对报文进行解析后然后统计特征, 再利用模型或其他技术进行检测. 从表 1 中得知,
对于 DNS 大型运营商, 1 min 的流量解析时间都要将近 1 min, 而且多线程并不能提高解析效率, 因此, 目前已有
的 DNS 流量检测技术难以满足大型运营商实时在线的检测需求. 通过 DNSMap [34] 和 BotDAD [37] 方法对我们分析
的 DNS 流量进行了测试, 其检测效率无法在大型运营商上进行在线部署应用.
100
90
请求平均响应率 (%) 70
80
60
50
40
30
20
10
0
2022/3/4 2022/3/5 2022/3/6 2022/3/7 2022/3/8 2022/3/9 2022/3/11 2022/3/13 2022/3/15 2022/3/17 2022/3/19 2022/3/21 2022/3/23 2022/3/25
2022/3/20
2022/3/18
2022/3/22
2022/3/26
2022/3/24
2022/3/12
2022/3/10
2022/3/14
2022/3/16
日期
图 17 递归服务器向根服务器的请求平均响应率
90
80
70
平均时延 (ms) 50
60
40
30
20
10
0
2022/3/16
2022/3/14
2022/3/12
2022/3/24
2022/3/22
2022/3/20
2022/3/4 2022/3/5 2022/3/6 2022/3/7 2022/3/8 2022/3/9 2022/3/11 2022/3/13 2022/3/15 2022/3/17 2022/3/18 2022/3/19 2022/3/21 2022/3/23 2022/3/25
2022/3/10
日期
图 18 递归服务器向根服务器的请求应答的平均时延
因此, 需要探索未来在大型 DNS 服务商中的检测方案. 如图 19 所示, 通常对 DNS 流量检测是在递归服务器
到用户侧的端口流量上进行检测, 但在大型服务商中这个端口流量太大, 解包时间太长, 无法达到实时在线的检测
目标. 根据缓存命中率的测量结果 (图 15), 绝大部分的解析在递归服务器的缓存完成, 递归服务器向权威侧的迭
代查询流量只占用户侧流量的很少一部分. 因此, 最有效的提高检测效率的思路是将异常检测从递归服务器用户
侧端口转移到权威侧端口.
但如果只用权威侧端口流量进行检测, 只能检测到这部分流量的异常情况, 没有检测缓存中具体记录, 并不能
反映整个用户的异常情况. 由于缓存没有区分正常和异常记录的能力, 它只留存记录, 因此缓存中的解析记录本身
可能存在异常的情况, 比如缓存污染等, 递归服务器会将缓存中异常的解析结果向客户应答, 导致解析异常. 探索
的思路是, 能否找到一种替代缓存的应答技术, 使得绝大部分流量在递归服务本地解析, 同时该技术可以区分正常
和异常记录, 只将正常的解析记录向客户应答, 阻断异常的记录, 这样就可以实现在权威侧端口进行检测, 不仅大
大提高了检测效率, 而且具有恶意域名阻断能力.

