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), 绝大部分的解析在递归服务器的缓存完成, 递归服务器向权威侧的迭
                 代查询流量只占用户侧流量的很少一部分. 因此, 最有效的提高检测效率的思路是将异常检测从递归服务器用户
                 侧端口转移到权威侧端口.
                    但如果只用权威侧端口流量进行检测, 只能检测到这部分流量的异常情况, 没有检测缓存中具体记录, 并不能
                 反映整个用户的异常情况. 由于缓存没有区分正常和异常记录的能力, 它只留存记录, 因此缓存中的解析记录本身
                 可能存在异常的情况, 比如缓存污染等, 递归服务器会将缓存中异常的解析结果向客户应答, 导致解析异常. 探索
                 的思路是, 能否找到一种替代缓存的应答技术, 使得绝大部分流量在递归服务本地解析, 同时该技术可以区分正常
                 和异常记录, 只将正常的解析记录向客户应答, 阻断异常的记录, 这样就可以实现在权威侧端口进行检测, 不仅大
                 大提高了检测效率, 而且具有恶意域名阻断能力.
   368   369   370   371   372   373   374   375   376   377   378