本文目录导读:

这是一个非常专业且具有深度的问题,域名扫描的“识别”与“阻断”通常发生在网络安全防护的对抗场景中,防御方通过分析扫描行为的数据包特征、流量模式和行为逻辑,判断出这是恶意扫描,然后采取相应措施阻止其继续探测。
为了让你更清晰地理解这个过程,我将从识别和阻断两个核心环节分别进行拆解。
第一部分:如何识别域名扫描?
防御方(如WAF、IDS/IPS、威胁情报系统)主要通过以下几种技术手段来识别扫描行为:
基于请求特征的识别(最直接)
- 无效域名/NXDomain(不存在域名)查询风暴:攻击者常使用随机生成的大量不存在的子域名(如
asdf123.example.com)进行“字典攻击”或“DNS爆破”,当短时间内对一个主域名产生大量NXDomain响应时,防御系统会判定为扫描。 - 异常的用户代理(User-Agent):大多数商用扫描器(如Nmap、MassDNS、Fierce)或脚本编写的扫描工具有固定或奇怪的User-Agent字符串,Nmap的默认User-Agent是
Mozilla/5.0 (compatible; Nmap Scripting Engine; ...),检测到这类非常规的User-Agent通常是扫描识别的重要线索。 - 异常请求头或参数:扫描工具通常不会携带正常的浏览器请求头(如Accept-Language、Referer、Cookies),或者会发送包含SQL注入、XSS、路径遍历等恶意测试载荷的参数。
- 请求路径的规律性:扫描器会按顺序请求
admin.php、login.asp、test.html等常见后台路径,如果某个IP对大量不存在的路径发起顺序请求,而正常用户不会这样做。
基于行为模式的识别(最核心)
- 高频速率:同一个源IP地址在极短时间内(如1秒内)发起数十甚至上百次DNS查询或HTTP请求,远超人类操作上限。
- 规律性间隔:扫描器通常以固定的时间间隔(如每隔0.5秒或1秒)发出请求,而正常用户的行为是随机的、有思考停顿的。
- 遍历性探测:对特定参数(如
id=1,id=2,id=3...)进行连续递增或递减请求;或者对端口(如所有C类地址的80端口)进行顺序扫描。 - 低和慢扫描(Low and Slow):高级扫描器会模仿人类行为,降低频率、随机间隔、使用合法User-Agent,这时需要通过统计模型识别,比如在更长的时间窗口(如半小时)内,发现某个IP发起了异常高比例的404或不存在的资源请求。
基于威胁情报的识别(最高效)
- IP/域名黑名单:将发起请求的源IP与公开的黑名单(如AbuseIPDB、Spamhaus)或自建威胁情报库进行比对,如果该IP近期被报告发起过扫描或攻击,则直接判定为恶意。
- DNS指纹特征:某些扫描工具使用特定的DNS解析器或软件版本,其DNS请求报文中的EDNS0选项、UDP源端口等特征具有唯一性,可以形成指纹。
第二部分:如何实现对扫描的阻断?
当系统识别出扫描行为后,会根据风险等级采取不同力度的阻断措施:
应用层阻断(WAF/反向代理层面)
- 立即封禁IP:最直接的反制措施,WAF(Web应用防火墙,如ModSecurity、Cloudflare)在检测到恶意扫描后,会添加一条规则,永久或临时(如24小时)拦截该源IP的所有请求,返回403 Forbidden或直接丢弃连接。
- 限速(Rate Limiting):不直接封禁,而是对超出阈值的请求返回429 Too Many Requests,或者在流量层面进行排队处理,这可以防止误伤,同时消耗扫描器的带宽和资源。
- JS/人机验证(Challenge):对于可疑但不完全确定的扫描(如高频请求),弹出验证码(CAPTCHA)或JavaScript计算挑战,正常的浏览器可以完成,而自动化脚本通常无法处理,从而被阻止。
- 蜜罐(Honeypot):在正常页面中隐藏不可见的链接或表单字段(对正常用户不可见,但对爬虫可见),一旦扫描器访问了这些蜜罐资源,立即被列入高风险名单并永久封禁。
网络层阻断(防火墙/IPS层面)
- 动态黑名单:安全设备(如FortiGate、Palo Alto)接收来自WAF或IDS的威胁情报,动态下发ACL(访问控制列表),在网络入口处直接丢弃来自该IP的所有数据包。
- BGP黑洞路由(RTBH):当遭遇大规模DDoS型扫描时(如吞吐量超过10Gbps),通过BGP协议将目标域名的流量引向一个黑洞路由(Null Route),直接丢弃所有访问流量,牺牲该域名的可用性以保护整体网络。
- TCP RST(连接重置):如果发现当前TCP连接正在进行扫描(如SYN扫描),防火墙可以主动伪造一个RST包给双方,强行断开连接。
基于DNS的阻断
- DNS Sinkhole(DNS沉洞):如果检测到攻击者正在对特定域名进行DNS爆破,DNS服务器会将恶意请求或爆破目标解析到一个虚假的IP地址(通常是分析或陷阱服务器),而非真实的服务器IP,从而阻止其找到真实目标。
- 限制查询速率/阻断源IP:公共DNS(如所在组织的DNS服务器)可以配置针对某个源IP的每秒查询次数(QPS)限制,超限后直接返回ServFail或丢弃响应,迫使攻击者无法继续爆破。
法律与灰犀牛手段(针对高级扫描)
- 反向追踪与溯源:通过分析扫描数据包中的TTL、操作系统栈指纹、TLS指纹(JA3)等进行溯源,联系其IDC服务商或上游网络运营商,要求采取行动。
- 伦理克制:一些自动化扫描工具(如Project Sonar等安全研究机构)会遵循Robots.txt协议或包含自有标识,如果组织不希望被扫描,可以公开声明或通过防火墙规则进行阻止。
一个典型的对抗流程
假设一个攻击者对example.com进行子域名爆破扫描:
- 扫描发起:攻击者的脚本请求
admin.example.com、www.example.com、test.example.com……每个请求间隔0.3秒。 - 识别阶段:
- WAF发现该IP在10秒内请求了300个不存在的子域名(高频NXD)。
- 浏览器特征检测到
User-Agent为curl/7.68.0,不符合正常用户特征。
- 判断响应:WAF标记该IP为“扫描者”,置信度为95%。
- 阻断执行:
- WAF在内存中添加一条规则:对源IP
2.3.4的所有请求返回403,并记录日志。 - WAF调用防火墙API,防火墙在核心交换机上将该IP流量全部丢弃。
- 10分钟后,攻击者的脚本收到500多个403响应,扫描被迫中止,整个扫描过程被完全阻断。
- WAF在内存中添加一条规则:对源IP
如果你是在设计和搭建对抗扫描的系统,识别的关键在于多维度的行为分析(而非单一特征),阻断则要根据误报容忍度(高精度还是高召回)选择不同的策略,比如阈值、限速与封禁的组合。