DNS的ECS服务黑名单防护方法、系统及存储介质
技术领域
本申请涉及DNS服务技术领域,特别是涉及一种DNS的ECS服务黑名单防护方法、系统及存储介质。
背景技术
用于解决网络拥堵的CDN技术被大量应用于分布式系统服务中,其中,转发DNS服务器使用ECS技术将携带客户端的ip subnet信息的包发送给上游服务器,上游服务器根据客户端的subnet信息给出更精确的访问地址。ECS是EDNS Client Subnet,是一种DNS扩展协议,由RFC 7871定义,其主要作用是允许LocalDNS把用户IP透传给权威DNS,目前被Google、OpenDNS和腾讯DNSPod等公共DNS服务所支持。
目前各种DNS服务器对ECS协议支持并不统一,造成ECS服务缺陷包括两处:
1、查询路径上所有的DNS服务器会通过edns0 subnet字段获取客户部分IP信息,一些DNS服务器不规范使用会放大隐私泄漏的危险,从而使攻击者通过对这些信息扫描CDN平台造成安全隐患。
2、一些不可路由的ECS前缀或其它带有非法ECS字段的请求会对权威DNS服务器产生误导,从而大量占用解析资源,造成解析性能的下降。
发明内容
基于此,有必要针对上述技术问题,提供一种DNS的ECS服务黑名单防护方法、系统及存储介质,通过建立ECS服务黑名单防护机制实现dns服务器的ECS安全认证,以此提升ECS服务安全的目的。
本发明的第一方面,提供了一种DNS的ECS服务黑名单防护方法,包括:检查转发服务器的记录是否命中设定的ECS服务黑名单,其中,
若未命中,则正常提供ECS解析服务;
若命中,则根据命中的类型执行对应的防护策略。
进一步地,所述检查转发服务器的记录是否命中设定的ECS服务黑名单包括:对发送的携带ECS字段的ipv4和ipv6的地址前缀长度进行检测,若ipv4的地址前缀长度超过24位或ipv6的地址前缀长度超过56位,并且没有采用加密措施的请求的转发服务器加入ECS服务黑名单。
进一步地,所述检查转发服务器的记录是否命中设定的ECS服务黑名单还包括:对发送的携带ECS字段的ipv4的地址前缀长度进行检测,若ipv4的地址前缀长度少于22位,则将此转发服务器加入ECS服务黑名单。
进一步地,所述检查转发服务器的记录是否命中设定的ECS服务黑名单还包括:检查携带ECS字段的转发服务器的前缀路径是否能路由,若不可路由,则将此不可路由的转发服务器加入ECS服务黑名单。
进一步地,根据命中的类型执行对应的防护策略包括:针对命中为ECS前缀过长的类型,其转发服务器的ECS查询请求强制采取加密策略;针对命中为ECS前缀过短的类型,其转发服务器的ECS查询请求拒绝提供ECS服务;针对命中为不可路由的类型,其转发服务器的ECS查询请求进行拒绝应答。
进一步地,所述正常提供ECS解析服务包括:对请求的edns IP subnet字段以及向外递归得到的ECS应答结果进行校验,校验通过后,应答转发服务器。
本发明的第二方面,提供了一种DNS的ECS服务黑名单防护装置,包括:
检测模块,检查转发服务器的记录是否命中设定的ECS服务黑名单,其中,所述ECS服务黑名单包括三种类型:ECS前缀过长类型、ECS前缀过短、ECS请求不可路由;
判断模块,若未命中,则正常提供ECS解析服务;若命中,则根据命中的类型执行对应的防护策略。
本发明的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明第一方面所述的方法之一。
本发明所提供的DNS的ECS服务黑名单防护方法、系统及存储介质,提供了一种新的关于ECS的三种防护策略,包括ECS前缀过长限制、ECS前缀过短限制、ECS前缀路径不可路由,该三种防护策略在现有DNS服务的基础上实现,在兼容现有DNS的应用场景基础上对ECS行为进行限制,通过该防护策略能过滤出符合RFC规范的ECS请求,降低DNS转发服务器对ECS字段前缀限制不规范而造成用户信息隐私泄露风险,对不可路由的ECS请求服务,减轻ecs解析查询造成的压力,进而提升ECS服务安全。
附图说明
图1为本发明实施例中的DNS的ECS服务黑名单防护方法的流程示意图。
图2为本发明实施例中的DNS的ECS服务黑名单防护系统的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。此外,为了清楚和简洁,省略对公知功能和结构的描述。
本文使用的术语仅用于描述本发明的各种实施例,而不旨在限制本发明。除非上下文另有明确指示,否则单数形式旨在包括复数形式。在本发明中,应理解,术语“包括”或“具有”指示特征、数字、步骤、操作、元件、部件或其组合的存在,并且不排除一个或更多个其它特征、数字、步骤、操作、元件、部件或其组合的存在,或添加一个或更多个其它特征、数字、步骤、操作、元件、部件或其组合的可能性。
实施例一
参照图1所示,本发明的实施例一提供了一种DNS的ECS服务黑名单防护方法,该方法包括:
步骤S1、检查转发服务器的记录是否命中设定的ECS服务黑名单。通过建立ECS服务黑名单会对不符合ECS协议安全规范的dns转发服务器进行标记,对命中ECS服务黑名单的转发服务器采取相应的防护策略。
步骤S2、若判断未命中,则正常提供ECS解析服务,包括:对请求的edns IP subnet字段以及向外递归得到的ECS应答结果进行校验,校验通过后,应答转发服务器;若判断命中设定的黑名单,则根据命中的类型执行对应的防护策略,不同的类型执行不同的服务策略。
具体来说,检查转发服务器的记录主要是对以明文发送的携带ECS字段的ipv4和ipv6的地址前缀长度、以及ECS前缀路径是否可路由进行检测。
edns_client_subnet是为了支持DNS ECS功能(RFC7871),将用户的子网信息传递给权威DNS,做更精确的DNS解析和流量调度。其中掩码越长地址信息越精确,掩码越短用户隐私效果越好,但掩码过长或过短都会对转发服务器的查询造成一定影响。
一方面,[RFC7871,11.1]出于保护用户隐私的目的强烈建议递归解析服务器将ipv4地址阶段为24位以隐藏用户的ipv4地址,[RFC6177]建议ipv6使用56位。为减小明文ECS字段地址前缀过长造成的隐私风险,本申请对明文发送的携带ECS字段的ipv4和ipv6地址最长前缀长度进行限制,将发送ipv4地址前缀长度超过24位或ipv6地址前缀长度超过56位并且请求没用采用DoT(DNS overTLS)等任何加密策略的请求的转发服务器加入ECS服务黑名单,类型设置为ECS前缀过长(ECS_PREFIX_TOO_LONG),针对命中此策略的转发服务器的ECS查询请求,强制采取DoT加密策略,否则拒绝提供ECS服务。
另一方面,[RFC6177]指出发送长度过短会对CDN效果产生负面影响,为防止ECS前缀长度过短对CDN准确性的影响,本申请对对明文发送的携带ECS字段的ipv4的最短长度进行限制,发送ipv4前缀长度最长不能少于22位,对少于22位的地址,将防护策略设置为ECS前缀过短(ECS_PREFIX_TOO_SHORT)。针对命中此种策略的转发服务器的ECS查询请求,拒绝提供ECS服务。
此外,[RFC7871,11.1]指出递归服务器必须在ECS选项中发送可路由的前缀路径,如果为不可路由则不发送。为避免由于不可路由路径造成服务资源浪费,本申请将发送不可路由的ECS前缀请求的转发服务器加入ECS黑名单队列,并将防护策略置为ECS_UNROUTABLE(ECS不可路由),针对命中此种策略转发服务器的ECS查询请求应答REFUSE(拒绝)。
本申请实施例一提供的DNS的ECS服务黑名单防护方法,通过设置多种防护策略,在兼容现有DNS的应用场景基础上对ECS行为进行限制,过滤出符合RFC规范的ECS请求,进而提升ECS服务安全。
实施例二
参照图2所示,本发明的实施例二提供了一种DNS的ECS服务黑名单防护系统,包括:
检测模块,检查转发服务器的记录是否命中设定的ECS服务黑名单,其中,所述ECS服务黑名单包括三种类型:ECS前缀过长类型、ECS前缀过短、ECS请求不可路由;
判断模块,若未命中,则正常提供ECS解析服务;若命中,则根据命中的类型执行对应的防护策略。
关于本实施例DNS的ECS服务黑名单防护系统的具体限定可以参见上文中对于DNS的ECS服务黑名单防护方法的限定,在此不再赘述。上述DNS的ECS服务黑名单防护系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
实施例三
本发明的实施例三,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述DNS的ECS服务黑名单防护方法的步骤。此处DNS的ECS服务黑名单防护方法的步骤可以是上述各个实施例的DNS的ECS服务黑名单防护方法中的步骤:检查转发服务器的记录是否命中设定的ECS服务黑名单,若未命中,则正常提供ECS解析服务;若命中,则根据命中的类型执行对应的防护策略。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。