DNS 也能当数据通道
DNS 查询几乎在所有网络里都是放行的,于是有人把数据编码进域名里往外传:域名异常长、子域名随机、查询频率远超正常水平、TXT 记录返回大量数据。DNS 隧道检测靠的是这些行为特征,而不是单次查询看了什么内容。
先建基线再设阈值
正常业务也会高频查询 DNS:内容分发调度、广告与统计、监控探针都会带来大量请求。直接设一个固定阈值必然误报,先统计单主机的查询频率、域名长度分布与记录类型占比,再按偏离基线的程度告警,才有可用的准确率。
基本信息
| 典型特征 | 域名超长、查询频率高、子域名随机、响应数据量大 |
|---|---|
| 检测位置 | 边界设备的 DNS 检测模块,或专用 DNS 安全设备 |
| 观察指标 | 单主机查询数、域名平均长度、NXDOMAIN 比例、TXT 占比 |
| 处置动作 | 阻断对应域名,同时排查发起查询的主机 |
典型使用场景
- 内网主机疑似通过 DNS 外传数据
- 排查某台主机 DNS 查询量异常增长
- 评估是否需要上 DNS 安全设备或检测模块
- 事件溯源时确认外传通道与数据量级
- 内网未部署 DNS 防护时的暴露面评估
- 渗透测试后验证检测能力是否有效
观察指标
观察指标
# 单位时间内单主机的 DNS 查询数(对比基线)
# 查询域名的平均长度与最长长度
# NXDOMAIN 比例(大量解析失败常见于隧道探测)
# TXT 记录占比(常被用来承载外传数据)
# 同一主域下随机子域名的数量与分布指标与异常判断
| 指标 | 正常表现 | 可疑表现 |
|---|---|---|
| 查询频率 | 随业务波动 | 持续高频且集中在少数主机 |
| 域名长度 | 常规域名长度 | 明显超长或子域名随机化 |
| NXDOMAIN 比例 | 比例较低 | 比例异常偏高 |
| TXT 记录占比 | 很少出现 | 占比明显上升 |
没有基线时高频查询告警会持续误报,先统计正常业务特征,再定阈值与告警条件。
只拦域名不查主机,外发源仍在持续尝试其他通道,处置等于只做了一半。
DNS 隧道检测与出站访问控制配合效果更好:默认只允许内网主机查询内部 DNS,由内部 DNS 转发并记录日志。