Page 374 - 《软件学报》2026年第4期
P. 374
张宾 等: 基于大型 DNS 递归服务的域名访问模式测量与分析 1815
根名字服务器
RPZ:
白名单 递 恶意攻
… 归 击实时
用户 查询/应答 … 服 检测模 查询/应答 顶级域名字服务器
主机 黑名单 务 块: 只检
… 器 测出口
… 端流量
权威名字服务器
图 19 大型 DNS 服务商检测框架方案
沿此思路, 将前面一段历史 DNS 流量通过已有的异常检测方法如 DNSMap [34] 等把记录分成正常和异常两个
部分, 那些不确定的去除掉, 带有正常和异常标记的记录写入递归服务器, 解析器通过一种机制优先处理用户请
求, 匹配到正常的部分直接应答, 异常的部分应答 NXDOMAIN 或者一个警告网站 (实现阻断功能), 未能匹配的请
求将经由权威侧端口进行迭代查询, 这样就可以在权威侧部署传统的异常检测方法进行检测, 异常检测方法将检
测到的异常和正常记录进一步更新到递归服务器中. 这样就实现了从递归器用户侧端口转移到权威侧端口的检
测, 极大地减少了待检测的流量, 使得大型服务商的实时检测成为可能.
这种机制本文称为域名黑白名单机制, 具体使用响应策略区域 (response policy zone, RPZ) 技术实现. RPZ 由
ISC 首度发明并在 BIND 中实现, 它是一个开放的厂商中立的标准, 用于交互 DNS 防火墙配置信息, 它是配置在
一种特殊的 DNS 区文件中的 DNS 防火墙策略, 目前大部分 DNS 服务软件都具有 RPZ 功能. RPZ 为 DNS 服务器
提供一种应答拦截机制, 匹配过滤特定的域名或 IP, 改变应答结果. RPZ 通过 RPZ 区文件设置记录拦截规则, 规则
包括匹配条件和执行相应的干预动作. 通过 RPZ 机制实现内网解析, 匹配到的域名直接由 RPZ 本地返回.
本文应用 RPZ 实现黑白名单机制, 创建 RPZ 区域以存储域名黑白名单, 白名单部分存储正常解析记录, 黑名
单部分存储恶意域名记录, 用户请求首先与递归服务器中的 RPZ 区域存储的记录进行匹配, 匹配到的记录直接向
用户返回, 包括通过白名单返回正常解析记录, 和通过黑名单对恶意域名阻断或者转到一个提示网站, 具体使用
BIND 中的 RPZ 区域配置进行说明, 如下所示.
zone "rpz" {
type master;
file "/etc/bind/rpz.zone";
allow-query any; ;
allow-transfer localhost; ;
};
rpz.zone 文件配置如下:
;whitelist part
www.hit.edu.cn A 32.23.32.34
A 23.4.45.6
nextcloud.your-domain.com A 192.168.0.103
www.facebook.com A 23.23.232.2
…
;blacklist part
malicious1.org CNAME .
*.malicious1.org CNAME .
malicious2.org CNAME .

