CN114902607A - 防止与域名系统相关联的攻击的方法和系统 - Google Patents

防止与域名系统相关联的攻击的方法和系统 Download PDF

Info

Publication number
CN114902607A
CN114902607A CN202080080967.9A CN202080080967A CN114902607A CN 114902607 A CN114902607 A CN 114902607A CN 202080080967 A CN202080080967 A CN 202080080967A CN 114902607 A CN114902607 A CN 114902607A
Authority
CN
China
Prior art keywords
dns
dns query
query request
packet
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080080967.9A
Other languages
English (en)
Inventor
肖恩·摩尔
乔纳森·R·罗杰斯
史蒂文·罗杰斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiangxin Co ltd
Original Assignee
Centripetal Networks LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/692,365 external-priority patent/US11012414B2/en
Application filed by Centripetal Networks LLC filed Critical Centripetal Networks LLC
Publication of CN114902607A publication Critical patent/CN114902607A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • H04L2101/35Types of network names containing special prefixes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

对互联网的域名系统(DNS)的某些拒绝服务网络攻击的攻击途径是通过错误、虚假或未注册的域名DNS请求以解析未在DNS中注册的域名。其他一些网络攻击通过将数据编码在虚假域名或以其他方式未在DNS中注册的域名中来窃取敏感数据,这些域名在虚假DNS请求中在网络上传输。DNS网守可以过滤包含DNS请求的传输中的分组,并且可以有效地确定请求的域名是否在DNS中注册。当域名未在DNS中注册时,DNS网守可以采取多种防护动作之一。DNS网守将被确定为不合法的请求丢弃,从而可以阻止攻击。

Description

防止与域名系统相关联的攻击的方法和系统
技术领域
本文描述的各方面总体涉及计算机硬件和软件以及网络安全性。具体地,本公开的一个或更多个方面总体涉及用于根据分组(packet)过滤规则对传输中的分组(in-transit packet)进行高效过滤的计算机硬件和软件。
背景
随着信息时代的不断发展,网络安全正变得越来越重要。网络威胁/攻击可能采取多种形式(例如,未经授权的请求或数据传输、病毒、恶意软件、旨在淹没资源的大量流量等)。
为了应对这些类型的威胁和攻击,已经开发和部署了各种网络防御方法和系统。一种网络防御系统使用分组网关(诸如威胁情报网关(TIG))来保护网络。分组网关可以包括具有将分组过滤规则集合应用于传输中的TCP/IP(传输控制协议/互联网协议)分组的能力的(内联(inline))网络分组过滤设备。TIG可充当已受网络威胁情报(CTI)防护或保护的网络(例如,私有网络)与未受到类似保护/防护的网络(例如,互联网)之间的网关或接口。
分组过滤规则可以基于由包括CTI提供者组织在内的CTI来源提供的威胁指标数据库。分组过滤规则集合可以表示用于保护/防护网络的TIG执行的(enforced)安全策略。威胁指标可以用作识别有风险的分组的分组匹配标准。本文对标准的引用可以指单个标准和/或多个标准。CTI指标或威胁指标可以包括资源的互联网网络地址(例如,IP地址、IP地址范围、L3/L4端口和协议、域名、统一资源标识符(URI)等),这些资源可能是由威胁主体(threat actors)控制或操作,或者可能以其他方式与恶意活动相关联。CTI指标/威胁指标还可以包括用于保护某些TCP/IP通信的证书和相关证书颁发机构(例如,传输层安全性(TLS)协议用来保护超文本传输协议(HTTP)中介会话的X.509证书)的标识符。CTI提供者包括与每个威胁指标相关联的威胁元数据,包括例如威胁/攻击类型、威胁名称、威胁风险评分、威胁主体(归属)等。TIG和相关联的应用可以使用威胁元数据来进一步增强对威胁的防护并进一步改善网络安全态势。
网络安全策略管理器可以通过从一个或更多个CTI提供者接收威胁指标和相关联的威胁元数据并基于指标和元数据生成分组过滤规则来创建网络安全策略作为CTI衍生分组过滤规则集合。每个分组过滤规则至少包括:(a)用于匹配分组数据的标准,(b)在与该标准匹配的情况下将应用于分组的动作或动作的组合,以及(c)威胁元数据。匹配标准可以包括由分组字段名称(例如,L3源IP地址字段)和字段值构成的一对或更多对。字段值可以是网络地址(例如,IP地址、域名、URI等)形式的威胁指标或证书或证书颁发机构的标识符。动作或动作的组合可以包括阻止或丢弃分组、允许或转发分组、记录分组、捕获分组、重定向或重新路由分组以及修改分组的某种组合以保护网络。在TIG和CTI衍生策略的上下文中,规则动作可以称为分组转换功能(PTF),它可以以保护网络的方式转换分组。例如,PTF可以将启动与威胁端点的连接建立的TCP SYN分组转换为相应的TCP RST分组,从而停止连接建立过程。威胁元数据可用于计算威胁风险评分,选择要应用于分组和与分组相关联的通信的威胁分析方法,或者根据威胁风险选择或计算要应用于分组的动作。
一个或更多个TIG可以内联地插入在例如一个或更多个网络的互联网接入链路中。一个或更多个TIG的策略管理器可以被配置为:(a)从一个或更多个CTI提供者接收CTI(威胁指标和相关联的元数据);(b)生成由威胁指标和元数据衍生的分组过滤规则构成的一个或更多个策略;(c)下载一个或更多个策略或将一个或更多个策略传输到一个或更多个(订阅)TIG,TIG可以通过策略订阅与策略管理器相关联。当分组(沿任一方向)穿过互联网接入链路时,TIG可以通过将分组过滤规则应用于每个传输中的分组来执行策略。
使用TIG和相关联的CTI保护网络的有效性通常取决于TIG应用的CTI指标和元数据的范围和质量、以及TIG的性能。在公开的当前时间,总共有数百万个威胁指标(和相关联的威胁元数据)可从多个CTI来源获得,指标的形式有IP地址、5元组、域名、URI等以及证书标识符、证书颁发机构标识符等。这些大型的CTI数据库可被转化成相似数量的分组过滤规则。由于在给定网络的通信流量中实际观察到的威胁指标不一定是已知的,因此TIG可以随时应用所有可用的CTI或相关联的数据分组过滤规则,以确保有效的保护。TIG策略可由数百万条、数千万或上亿条规则的构成。因此,TIG必须能够在不对网络性能产生不利影响的情况下对每个传输中的分组应用数百万条分组过滤规则。在TIG插入点可使用10G和40/100G网络链路,这意味着分组传输速率可以是每秒数百万或数千万个分组。TIG必须通过数百万条规则过滤每个传输中的分组,以在不对网络性能产生不利影响的情况下执行该策略。对于如此大的策略和高分组速率,即使策略存储在主存储器中,并且即使使用快速(例如,次线性)策略搜索算法,TIG性能也可能不足,并可能导致不可接受的性能下降。例如,由于缓冲区溢出,高延时(latency)可能会导致分组丢失。分组过滤期间发生的延时应当较低,并且不应(例如,由于缓冲区溢出而)丢弃分组。
TIG可以被设计为通过以下的某种组合来实现必要的性能:(a)高性能CPU,这些CPU可以针对网络分组处理进行架构或配置;(b)快速/高效的算法和相关联的数据结构,用于搜索用于在规则指标与当前传输中的分组相关联字段值之间的匹配的规则;以及(c)将策略(其可包括数百万条分组过滤规则)存储在高速本地存储器(例如,板载SDRAM,通常称为主存储器)中,从而使得CPU可以经由高速、高带宽数据总线快速访问主存储器。
然而,最近的网络趋势使TIG难以或实际上不能在维持有效的网络防护所需的级别上执行。CTI数量的增长率(由威胁指标和相关联的元数据的数量来测量)以及由此相关联策略的增长率(以字节为单位测量,它是分组过滤规则数量和这些规则的字节大小的函数)高于处理器速度、处理器成本、处理器功率要求、存储器速度、存储器密度、存储器成本等的改进速率。结果是,对于TIG而言通过增加存储器的大小来处理策略大小的增加不再实用。不断增加的网络链接速度和不断增加的网络流量使这个问题更加复杂。因此,需要改进TIG技术的效率,使得CTI衍生策略大小的大幅增加只需要相对较小的计算资源增加,这对于将TIG性能保持在可接受的水平(例如,相对低的延时和尽可能小到没有分组丢失)并同时提供有效的网络保护而言是必要的。
许多攻击可与互联网的域名系统(DNS)有关。DNS有时被称为互联网的“电话簿”,并且DNS是一个分布在互联网上的数据库,它将人类可读的域名映射到机器可读的IP地址。许多流行的互联网应用——包括万维网(www)和电子商务应用——都严重依赖DNS来实现跨互联网的路由器和互连链路基础设施的业务的路由,诸如web浏览器请求和web服务器响应。因此,导致DNS性能不佳的对DNS的成功攻击可能会导致这些互联网应用和互联网本身停止有效运行,或者以其他方式严重损害它们的运行。相反,DNS请求可被用作某些其他类型攻击——包括对DNS的分布式拒绝服务(DDoS)攻击——的攻击途径(attack vector),这可能会对网络资产造成损害和损失。因此,需要能够(a)防止对DNS的攻击、以及(b)防止DNS被用作攻击途径的高效的DNS防护。
概述
以下给出了简要概述,以便提供对本公开的一些方面的基本理解。其既不旨在确认本公开的关键或重要要素,也不旨在勾画本公开的范围。以下概述仅以简化形式给出本公开的一些构思,作为以下描述的序言。
本公开的各方面涉及用于网络威胁情报(CTI)应用的高效分组过滤。分组过滤方法可以是时间和空间高效的。实际上,任何分组网关过滤的分组中只有一小部分会匹配网关执行的安全策略中任何CTI衍生的分组过滤规则。因此,在搜索安全策略的规则之前确定分组是否匹配任何规则(或不匹配)的时间高效方法可以消除大量的策略搜索。如果该方法比通过策略搜索更快,则在对足够量的代表性分组流量进行平均时,预期搜索时间可能会显著减少。此外,安全策略可以包括多个规则,除了相关联的威胁指标值之外它们是相同的。这些规则具有相同的动作和威胁元数据。因此,空间(例如存储器资源)效率可以通过将多个不同指标与单个规则(例如相同的动作和威胁元数据)相关联来实现。
本公开的各方面还涉及高效防止与DNS相关联的一些攻击。攻击途径是包含可能未在DNS中注册的域名的DNS查询请求消息。在下文中,可将短语“DNS查询请求消息”缩写为“DNS请求”等。术语“DNS查询请求消息”和“DNS请求”可以指消息、包含该消息的TCP/IP分组或两者。此外,“DNS查询响应消息”可以类似地缩写或称为“DNS响应”等。
本发明的各方面提供了处理包括域名系统(DNS)查询请求的分组的方法。该方法可以包括:在诸如主机或代理(例如,端点或中间代理或网络设备)之类的计算设备中接收多个分组;基于分组报头信息判断多个分组中的每一个分组是否包含DNS查询请求;以及测试概率数据结构以确定DNS查询请求的域名是否在概率数据结构中表示。可以是布隆过滤器的概率数据结构可以配置有表示所有已知在DNS中注册的域名的数据集。该方法可以基于确定DNS查询请求的域名没有在概率数据结构中表示来确定DNS查询请求是否指示合法的DNS查询请求,以及可以基于确定多个分组中的分组不指示合法的DNS查询请求而丢弃该DNS查询请求。
当确定分组包括DNS查询请求时,并且如果确定该DNS查询请求的域名没有在概率数据结构中表示,则该方法可以确定该DNS查询请求是否指示合法的DNS查询请求。DNS查询请求可以包括合法的DNS请求,并且可以包括一些不合法请求。不合法请求可以包括错误请求,诸如属于为了解析域名请求的合法尝试的请求,以及可以包括虚假请求,诸如在为了拒绝向他人提供服务和/或从受损害系统中泄漏信息的尝试中提交的请求。可以将关于被确定为不合法的DNS查询请求的数据传输到管理服务器。被确定为包括合法请求的分组可以向其预期目的地传输。
计算设备可以监控网络流量以获取对传输的DNS查询请求的响应。基于确定对DNS查询请求的响应指示DNS查询请求已成功完成,计算设备可以将被监控的DNS查询请求的域名插入到概率数据结构中。计算设备可以将成功完成的DNS查询请求的域名传输给管理服务器。
在一些实施例中,为了确定DNS查询请求是否指示合法的DNS查询请求,计算设备可以确定接收的无效DNS查询请求的速率。计算设备还可以确定接收的无效DNS查询请求的数量的变化率。如果这样的速率满足阈值,则计算设备可以确定正在处理的分组不指示合法的DNS查询请求。计算设备还可以基于与DNS查询请求相关联的国家代码或针对概率数据结构接收的更新的定时来确定DNS查询请求是否指示合法的DNS查询请求。计算设备还可以基于请求中域名的句法特征来确定DNS查询请求是否指示合法的DNS查询请求。计算设备可以确定与未注册域相关联的分组可能与相关域名注册滞后(lag)相关联。计算设备可以确定与未注册域相关联的分组可能与合法数据交换服务相关联。计算设备还可以基于对请求合法的概率的确定来确定DNS查询请求是否指示合法的DNS查询请求,这可以基于前述因素中的一个或更多个。
附图简述
在所附权利要求中特别指出了本公开。通过在整体上回顾本公开,包括随其一起提供的附图,本公开的特征将变得更加明显。
在附图的各图中,通过示例而非限制的方式示出了本文中的一些特征,其中类似的附图标记指代相似的元件,并且其中:
图1描绘了保护多个不同网络中的至少一个的高效威胁情报网关(TIG)和相关联的策略服务器的例示性环境;
图2描绘了具有存储器分级结构的高效TIG的功能和系统组件;
图3是描述了配置TIG以用于高效操作然后相应地高效过滤分组的一般操作概念的流程图;
图4、图5、图6、图7、图8、图9、图10、图11、图12和图13描绘了根据本文所述的一个或更多个例示性方面的例示用于配置和操作高效TIG的方法的示例性事件序列;
图11进一步描绘了在图1描绘的环境中发生的示例性事件序列,其中TIG被配置为有效地保护网络免受对互联网DNS的攻击;
图14——其可以与图1相同或相似——描绘了用于保护DNS和使用DNS的网络两者的各部分免受威胁和攻击的DNS攻击预防系统的例示性网络环境;
图15描绘了DNS网守(DNS-G/K)保护设备的示例性组件;
图16描绘了DNS-G/K的示例性操作概念的流程图;
图17描绘了DNS-G/K的示例性操作概念的另一流程图;
图18描绘了DNS过滤器管理器的操作概念的流程图;
图19描绘了例示用于防止对DNS的某些攻击的方法的示例性事件序列;
图20描绘了例示用于防止某些DNS隧道攻击(tunneling attack)的方法的事件序列;
图21描绘了可以根据本文描述的一个或更多个例示性方面使用的例示性计算机系统架构;并且
图22描绘了可以根据本文描述的一个或更多个例示性方面使用的例示性网络系统架构。
详细描述
在各种例示性实施例的以下描述中,参考形成本说明书的一部分的附图,并且在附图中通过例示说明的方式示出了可以实践本公开各方面的各种实施例。应当理解,在不脱离本公开的范围的情况下,可以利用其他实施例,并且可以进行结构和功能上的修改。此外,参考了其中可以实践本公开各方面的特定应用、协议和实施例。应当理解,在不脱离本公开的范围的情况下,可以利用其他应用、协议和实施例,并且可以进行结构和功能上的修改。
在以下描述中讨论了元件之间的各种连接。这些连接是一般性的,并且除非另外指明,其可以是直接或间接的、有线或无线的、物理或逻辑、虚拟或软件定义的。类似地,元件(包括主机和设备)可以是物理的或虚拟的。就这一点而言,本说明书并非旨在进行限制。
布隆过滤器可以是一种用于确定集合中元素的隶属的时间高效且空间高效的概率数据结构。布隆过滤器参数化为(1)集合中的元素数量N;(2)存储N个元素所需的存储大小或存储装置/存储器位数M;(3)误报率(false positive rate)P。误报率P是对集合中元素X的隶属测试错误返回匹配值True的概率(例如,当实际上X不是集合的成员时,隶属测试确定X是该集合的成员)。M的值取决于N和误报率P。对于N(集合中的元素的数量)的固定值,存储大小M与误报率成反比。也就是说,随着误报率P的降低,存储大小M会增加。可以在CTI应用和相关联的CTI衍生策略的上下文中为布隆过滤器选择误报率。
例如,对于包含5亿个域名的集合且误报率P为0.01或10-2的布隆过滤器,存储大小M可能大约为600MB。相比之下,在互联网DNS中注册的域名的平均大小大约为20个字节。因此,一个简单的5亿个域名的未压缩列表需要大约10GB的存储空间,约是存储大小M的(10G/600M)=16.66倍。如果误报率P以因子1000降低到0.00001或10-5,则存储大小M增加到大约1.5GB,因子仅为2.5(=1.5G/600M)。这是空间高效的。一般来说,存储大小M随误报率P的对数大小而变化。集合隶属测试算法同样是时间高效的,其中理论时间复杂度函数也在误报率P的对数的数量级上。在实践中,集合隶属算法的实现可能非常快且时间几乎恒定,即使误报率P变化了几个数量级。
为了实现空间效率和时间效率,可以使用诸如布隆过滤器之类的概率数据结构来避免不必要的分组过滤规则搜索或避免重复存储,例如,公共规则动作的重复存储。例如,5亿个域名可以存储在大小大约为600MB的布隆过滤器中(当误报率P=0.01时)。在实践中,如果每个规则平均100至1000字节(例如,20字节用于域名指标,30字节用于指定动作和相关选项,50至950字节用于元数据),则一个由5亿条分组过滤规则(带域名指标)构成的策略可能需要,例如,50GB到500GB的存储装置/存储器。也就是说,与没有布隆过滤器的基于分组过滤规则的策略相比,布隆过滤器可能需要更少的存储装置/存储器,降低了2至3个数量级。通过将与相同操作符或动作(例如阻止操作)和相同元数据相关联的多个威胁指标进行分组,布隆过滤器的使用可以消除与针对每个规则单独地存储动作和元数据相关联的冗余存储,相反针对包含多个威胁指标的布隆过滤器仅存储动作和元数据一次。也就是说,代替存储每个规则和相关联的规则动作,规则动作可以与特定的布隆过滤器相关联,并且基于布隆过滤器的测试指示匹配而作为要执行的规则动作被存储单次。因此,与不集成布隆过滤器技术的分组过滤规则策略的存储器/空间要求相比,集成布隆过滤器技术的策略的存储器/空间要求可能相对小得多,可能小几个数量级。
对于CTI应用,布隆过滤器的漏报率(false negative rate)始终为零(无论非零误报率P是多少),这与没有布隆过滤器执行的策略保持相同级别或保持安全性。也就是说,如果确定元素X是否是集合I的成员的测试返回否定或假(False),那么X肯定不是集合I的成员。因此,虽然使用布隆过滤器技术以获得时间效率的TIG在误报率P的概率的情况下可能不必要地搜索策略/过滤分组,但当策略中存在匹配规则时,TIG永远不会跳过策略搜索或不过滤分组。
虽然可在整个说明书中使用术语布隆过滤器,但过滤器或数据结构的选择是示例性的,并且并不旨在以任何方式进行限制或约束。可以使用具有足够时间和空间效率用于测试集合隶属并保持安全性的任何数据结构。例如,布谷(Cuckoo)过滤器是一种概率数据结构,其时间和空间效率与布隆过滤器相似。布谷过滤器还具有能够有效地从集合中删除或移除元素的能力,而标准的布隆过滤器没有从集合中移除元素的能力(尽管已经开发了支持删除能力的布隆过滤器变体)。从集合中有效地插入、更新或删除元素的能力在一些应用、实施方式和/或实施例中可以证明是有用的。安全策略更新可以包括添加或删除规则的更新,或者更改与特定威胁指标相关联的规则动作的更新。例如,更新可能会将规则动作从监控动作更改为丢弃动作。数据结构可以支持多种函数,诸如用于向集合中添加元素的Insert()函数、用于测试元素的集合隶属的布尔值Member()函数以及用于从集合中移除元素的Delete()函数。下面的描述还假设数据结构是概率性的,因此与(非零)误报率P相关联,但同样,这种选择是示例性的,并不旨在是限制性的。
布隆过滤器技术可以通过多种方式提高CTI应用/TIG功能的效率。下面将描述八种示例性方法(除了上面已经提供的方法之外)。简化起见,前六种示例性方法涉及网络地址(例如IP、域名、URL等)形式的指标,第七种方法涉及证书标识符形式的指标,以及第八种方法关于指标类型是通用的。
在第一示例中,可以使用布隆过滤器技术来提高性能。对于要搜索的过滤规则集合中的每个规则,可以提取相关联的指标并且可以将该指标插入到策略布隆过滤器中。得到的策略布隆过滤器可以存储在分组过滤设备的主存储器中。在搜索分组过滤规则集合以寻找与当前传输中的分组的网络地址的匹配之前,分组过滤设备可以确定该网络地址是否是策略布隆过滤器的成员。如果确定的结果为TRUE(真)或指示匹配,则分组过滤设备可以搜索对应的规则集合以寻找匹配规则并且可以将规则动作应用于分组。如果分组过滤设备确定结果为FALSE(假)或不指示匹配,则设备可以跳过对分组过滤规则的不必要搜索(例如,因为将找不到匹配规则)。通过跳过不必要的搜索,可以减少每分组的平均策略搜索时间并且可以提高TIG性能或吞吐量。这种概率数据结构或布隆过滤器可以被称为时间效率概率数据结构或布隆过滤器,或策略概率数据结构或布隆过滤器。
在第二示例中,策略可以包括分组过滤规则的子集,除了它们的匹配标准或与威胁指标相关联的标准之外它们是相同的。规则可以具有相同的动作、相同的威胁元数据和相同的一个匹配标准或多个标准(其可以例如与一个或更多个威胁指标相关联)。策略存储的空间(例如存储器使用)效率可以通过将多个不同的指标与单个规则(例如相同的动作和/或威胁元数据)相关联来实现。例如,TIG或策略管理服务器可以基于与规则相关联的威胁指标的类型和/或基于与规则关联的动作和威胁元数据将安全策略的多个规则(或安全策略的一部分)分类或划分为子集。与单一类型的分组匹配标准或威胁指标相关联的子集可以避免对与该子集相关联的规则进行不必要的搜索。可以在分组不包括与该子集相关联的分组匹配标准的类型的情况下跳过对子集概率数据结构或布隆过滤器的搜索。与单个规则动作相关联的子集可以避免对规则动作的不必要的重复存储和单独的规则的不必要的存储,这可以节省存储器空间。对于每个这样的子集,相关联的子集布隆过滤器可以被配置为包含相关联规则的所有指标,并且子集布隆过滤器可以进一步与相关联规则的公共规则动作和威胁元数据相关联。子集的公共规则动作和威胁元数据可以针对概率数据结构存储一次,而不是针对子集的每个规则存储并与每个规则相关联。然后,对于每个这样的子集,相关联的子集布隆过滤器可以替换策略中的规则子集,从而减少用于存储策略的空间要求。因此,策略可以表示为这些概率数据结构或布隆过滤器的集合。在策略搜索期间,分组过滤设备会测试分组的网络地址是否是任何子集概率数据结构或布隆过滤器的成员。如果分组过滤设备通过子集布隆过滤器测试确定有匹配,则可以将与子集布隆过滤器相关联的动作和威胁元数据应用于该分组。如果针对子集布隆过滤器中的隶属测试诸如网络地址之类的元素的时间少于以其他方式搜索规则的子集所需的时间,则也可以获得时间效率。在某些应用中,包含在布隆过滤器隶属测试返回FALSE或确定不存在分组与集合的匹配时应用的分组过滤规则可能很有用。也就是说,子集布隆过滤器可以具有两个相关联的分组过滤规则,包括当隶属测试返回TRUE以指示匹配时应用的第一规则和当隶属测试返回FALSE以指示没有匹配时应用的第二规则。这种子集布隆过滤器可以被称为空间效率布隆过滤器。
在第三示例中,由于TIG策略可能变得太大而无法存储在可用的主存储器中,由于诸如商品成本、布局和密度约束以及功率或热量限制之类的因素,充分增加主存储器容量可能变得不切实际。虽然与主要主存储器相比,可能较慢(例如以读取访问时间衡量)但存储容量相应更大、更密集且更便宜(例如每字节)的辅助存储器可以被添加到TIG。这种辅助存储器可能需要一些其他类似RAM的属性,诸如字节寻址能力,以支持快速搜索算法。辅助存储器的容量可以调整大小以存储太大而无法放入主要主存储器的策略。为了确保TIG性能足够,辅助存储器速度与主要主存储器速度的比率可以等于或大于将匹配CTI衍生的分组过滤规则的分组的(预期)分数。存储针对存储在辅助存储器中的策略中的规则的所有指标的时间效率布隆过滤器可以存储在主要主存储器中。在搜索存储在辅助存储器中的策略之前,分组过滤设备可以执行对布隆过滤器的快速初始搜索。如果对布隆过滤器的初始搜索指示匹配,则分组过滤设备可以经由辅助存储器执行策略搜索和分组过滤。如果对布隆过滤器的初始搜索没有指示匹配,则可以跳过对辅助存储器中分组过滤规则的(相对较慢的)搜索。
在第四示例中,将布隆过滤器和分组过滤策略的某些部分存储在高速存储器(例如,主要主存储器)中并将策略的其他部分/其余部分存储在低速存储器(例如,辅助存储器)中可能是有利的。例如,将带有域名和URI指标的第一分组过滤规则集合存储在辅助存储器中,并将带有IP地址和IP地址范围指标的第二分组过滤规则集合存储在主要主存储器中可能是有利的,其中时间效率布隆过滤器对应于存储在主要主存储器中的两个规则集合。根据与特定受保护网络相关联的流量类型,为某些类型的规则设置优先级(例如,利用更高速度的存储器)可能是有利的。例如,使用主存储器存储带有预计要被更频繁搜索的指标类型(诸如IP地址和IP地址范围)的分组过滤规则相对于存储带有预计被不那么频繁搜索的指标类型(诸如域名和URL)的规则来说可能是有益的。在TCP/IP网络中,每个分组在L3/IP报头中都包含IP地址,而一小部分分组包含域名,甚至更小一部分包含URL。因此,如果主存储器不足以将所有过滤规则存储在一个策略中,那么例如将带有IP地址指标的规则存储在主存储器中,并将带有域名和URL指标的规则存储在辅助存储器中可能是有益的。例如,可能有益的是,使用主存储器存储与流行协议(诸如端口80/443上的HTTP/HTTPS(web))以及更高频率匹配CTI规则属性(例如与较低保真度威胁指标相关联的规则和(按类型)与大量指标相关联的规则)相关联的规则,诸如与用于域名和URL指标的过滤规则相比可能被更频繁搜索的用于IP地址和IP地址范围指标的过滤规则。
在第五示例中,将上述方法以任何组合以及方法的变化进行整合以实现进一步的效率可能是有利的。例如,时间效率布隆过滤器可以与CTI衍生分组过滤规则的子集相关联,并且该子集可以具有由空间效率布隆过滤器表示的规则的一些部分。在实践中,实现更高效率的组合和变化可能取决于许多因素,包括诸如CTI特性、性能要求、成本和操作环境之类的因素。
在第六示例中,如上所述的布隆过滤器或过滤器的组合可用于防护域名系统(DNS)免受某些网络攻击。DNS是一种将人类可读的域名转换为机器可读的IP地址的服务。DNS可以被视为{域名,IP地址}对的大型全球分布式存储器/储存器(store)以及用于将人类可读的域名转换为机器可读的IP地址的相关处理系统。许多流行的应用,例如万维网(WWW),都依赖DNS来实现高效操作。一些针对DNS的网络攻击使用虚假的DNS查询请求作为攻击途径。虚假DNS查询请求是解析未在DNS中注册的域名的请求。
对DNS存在至少两种类型的攻击,它们可以使用虚假的DNS查询请求并且可以通过本文描述的处理方法来得到缓解。首先,对DNS的分布式拒绝服务(DDoS)攻击通过让许多受恶意软件感染的设备发出针对未在DNS中注册的域名的虚假DNS查询请求而起作用。此类域名可能部分由域生成算法(DGA)生成,该算法可以生成随机字母数字字符串,这些字符串不太可能与在DNS中注册的域名匹配。DNS可能徒劳地在全球分布的数据库中搜索永远不会找到的匹配,这可能比搜索在DNS中注册的域名需要明显更多的工作/计算资源。如果同时发出足够多数量的这些虚假请求,那么DNS可能会花费大量的计算资源来尝试为这些虚假请求提供服务,从而导致计算资源不足以为合法的DNS请求提供服务,并可能导致拒绝服务。许多联网应用(诸如web)可能会使用DNS,因此对DNS的有效DDoS攻击可能会充当对使用DNS的合法互联网应用的间接攻击。如果应用(例如web浏览器)被拒绝DNS服务,则这些应用不知道如何对分组进行寻址从而使分组可以通过互联网路由到目标域(例如,web服务器)。
布隆过滤器技术和相关的效率方法可用于缓解此类攻击。DNS中注册的域名大约有5亿个。存储大小M大约为600MB且误报率P=0.01的(空间效率)的布隆过滤器可以配置有N=5亿个注册域名。该布隆过滤器的副本可以分发到例如(内联)分组过滤设备,诸如TIG,这些设备被配置为检查任何DNS查询请求中的域名是否在DNS中注册。如果布隆过滤器测试表明DNS过滤器指示匹配(例如True),则分组过滤设备可以将相关联的分组转发到分组的目的地(例如,DNS服务器)。如果布隆过滤器测试表明DNS过滤器指示不匹配(例如False),则分组过滤设备可以丢弃分组(并且可以例如生成并转发包含具有适当返回码的DNS查询响应的相应分组)。通过丢弃分组,跳过了对DNS的搜索。通过将这些配置有布隆过滤器的分组过滤设备定位在关键点(strategic point),例如,在互联网接入链路,特别是由DNS基础设施提供者操作的网络的互联网接入链路,那么许多虚假的DNS查询请求可以被丢弃/永远不会得到服务。因此,许多对DNS的搜索被跳过,这可以充分缓解DDoS攻击,从而以可接受的速率为合法的DNS查询请求提供服务。
第二种类型的DNS攻击是泄露(exfiltration)攻击,其可以通过将窃取的敏感信息编码为DNS查询请求中的(虚假)域名来利用DNS。这些虚假请求被发送到收集服务器,这些服务器可能冒充DNS服务器,或者可能是恶意主体控制的合法DNS服务器,这些服务器可能会提取和记录请求中的域名。通过提取和记录DNS查询请求中出现的被窃取信息,敏感信息被泄露或被窃取。这种类型的网络攻击可以称为DNS隧道攻击。
为防止此类攻击,请注意此类隧道攻击请求中的域名不太可能映射到在DNS中注册的域名。因此,为了防止这种攻击,配置有(空间效率)布隆过滤器的分组过滤设备(称为“DNS布隆过滤器”)包含所有在DNS中注册的域名,其可以被部署在例如受保护的企业网络的互联网接入链路处。每个DNS查询请求都可以由配置有DNS布隆过滤器的分组过滤设备过滤。分组过滤设备可以基于对DNS布隆过滤器的测试,确定任何DNS查询请求中的域名是否在DNS中注册。如果分组过滤设备确定DNS布隆过滤器指示匹配(例如,隶属测试返回True结果),则分组过滤设备可以将相关联的分组转发到其目的地(例如,DNS服务器)。如果分组过滤设备确定DNS布隆过滤器指示不匹配(例如False结果),则分组过滤设备可以丢弃相关联的分组,这可以防止DNS隧道攻击。
对于上述DNS攻击缓解应用,可能不需要使用CTI提供者提供的CTI。相反,这些DNS攻击缓解应用可以成为CTI数据的来源。当隶属测试指示不匹配(例如假结果)时,确定被测试的域名未在DNS中注册。因此,该域名可以被识别为威胁指标。因此,DNS攻击缓解应用可以被视为CTI的来源,而不是CTI的消费者。
在第七示例中,布隆过滤器技术可用于通过应用衍生自用于保护某些网络通信的证书的威胁情报来提高性能和安全性。例如,用于安全web/HTTP通信的超文本传输协议安全(HTTPS)协议可以使用TLS协议来安全地隧道传输HTTP。在TLS隧道设置握手期间,X.509证书可以在两个网络端点之间交换。这些证书可能已经由证书颁发机构(CA)组织颁发。然而,证书和CA可能与攻击相关联,或者以其他方式与威胁风险相关联。
因此,可以针对证书和CA数据提供和确定CTI。例如,CTI可以与撤销的证书相关联。CA可能会决定撤销CA已颁发的证书,因为CA可能认为证书已以某种方式受到损害。例如,在证书生成期间使用的私钥可能被确定为被窃取。CA可以发布包含已撤销证书序列号的证书撤销列表(CRL)。相关的威胁指标可以包括唯一标识证书的源和证书数据对(例如{CA标识符(CA-Identifier),序列号(Serial Number)},其中“CA标识符”对应于CA颁发的X.509证书的“颁发者名称(Issuer Name)”值)。CA可以提供服务器,该服务器用于根据请求下载CRL或者可以关于证书的撤销状态而被查询。例如,TLS端点应用(例如web浏览器)和中介(例如SSL/TLS代理)可以在通信会话隧道设置期间使用CRL和CRL服务器来确定与通信会话相关联的证书是否已被撤销。当确定与通信会话相关联的证书已被被撤销时,可以终止、警告、监控或以其他方式处理通信会话隧道设置,以便缓解与使用可能被损害的证书相关联的风险。
在端点通常不检查证书撤销状态的情况下,所得到的TLS隧道可能很容易被恶意主体解密。为了缓解这种威胁,CTI提供者可以收集由多个公共证书颁发机构发布的CRL数据,可以将CRL转换为威胁指标(例如{CA标识符,序列号}对),并且可以提供所得到的可供订阅者使用的CTI。这些订阅者可以包括TIG和/或为TIG提供服务的安全策略管理器。由于基于证书的CTI可包含数百万个指标(大约有2000万个撤销证书),因此TIG在配置用于保护网络的分组过滤策略时,可能会为此CTI使用时间效率和空间效率的布隆过滤器以及相关联的分组过滤规则。当包含证书的分组传输通过TIG时,TIG可以从证书中提取颁发者名称数据(其可对应于CA标识符),并从证书中提取序列号。TIG可以基于{CA标识符,序列号}对通过适当的布隆过滤器过滤分组,以确定证书的撤销状态。如果证书已被撤销,则TIG可以将相关联的分组过滤规则应用于被确定为包括被撤销的证书的相关联分组。
在第八示例中,例如在网络攻击事件期间,可能会需要将一个或更多个规则插入到主动执行的策略中。分组过滤规则可以插入到当前由分组过滤设备(例如,TIG、网络防火墙、路由器访问控制列表(ACL)等)对网络分组流量执行(内联)的策略中。出于性能和完整性的原因,策略的分组过滤规则可以按照在保持最优性、性能和完整性的同时插入新的分组过滤规则的方式进行排列、排序、索引和/或以其他方式优化,考虑到时间和计算复杂性这可能是一项昂贵的操作,并且可导致附加存储器的分配和/或存储器中存储的数据(规则)的存储器空间重组。例如,可以以支持(次线性)二分搜索(binary search)的方式对分组过滤规则集合进行排序和索引。将新的分组过滤规则插入到集合中可导致用于存储新规则的存储器分配和集合的重新索引以支持二分搜索。因此,在不引起分组过滤服务的(临时)停止的情况下将新规则插入到主动(active)策略中可能是不切实际的,这可能导致分组传输服务的丢失,和/或可能由于缓冲区溢出而导致分组丢失,和/或从分组过滤服务(例如,网络安全)衍生的应用或功能的丢失。
数据结构过滤技术可用于解决新存储器分配和重组的动态规则插入问题,这些问题可导致分组传输服务中断和/或安全性损失。在策略创建期间或基于安全策略的改变,可以提供至少一个空的空间效率布隆过滤器,以用于在通过分组过滤设备进行主动策略执行期间的规则插入。这种可动态填充的布隆过滤器的大小(M)可以设置为包括多达一定数量(N)的元素(例如威胁指标),同时将误报率(P)保持在指定值以下。例如,可以提供与“Block(阻止)”动作相关联的可动态填充的、初始为空的布隆过滤器,并且可以允许插入多达100000个(任何类型的)指标,此时误报率为10-12。当新指标(有效地)插入布隆过滤器时,可能不需要分配附加的存储器来存储新指标,也可能不需要重组集合中的指标。因此,向策略添加新规则不会导致任何新的存储器分配或存储器中数据的任何空间重组,因此不会存在服务或安全性的损失。指标插入的副作用是增加了布隆过滤器的误报率。但是,当少于100,000个指标插入到这种可动态填充的布隆过滤器中时,误报率将小于所需的最大值10-12。当插入超过100,000个指标时,误报率可能会超过最大误报率10-12,但这可能不会导致服务或安全性的损失。当集合的大小超过阈值时(例如,搜索的时间复杂度可随误报率P的对数大小而变化),可能不认为插入操作是有效的,并且不会导致任何新的存储器分配或存储器中数据的任何空间重组。因此,分组过滤服务以及由此分组传输服务将不会受到将规则插入到主动策略中的不利影响。
解决动态规则插入问题的另一种方法是允许将新的威胁指标和规则插入到主动执行的策略中,而无需提供可动态填充的、初始为空的布隆过滤器。通过将相关联的指标插入适当的空间效率布隆过滤器,可以将新规则添加或插入到主动策略中。随着附加指标的加入,相关联的过滤器的误报率将会增加。这样的布隆过滤器可以具有关于附加指标的阈值限制,并且该限制可以与被认为对于相关联的应用是可容忍的阈值误报率相关联。阈值误报率可由系统或策略管理员设置。
第一种在主动策略执行期间插入规则的方法,使用动态可填充的、初始为空的布隆过滤器,其在预期插入的规则的数量与(在策略创建时)策略中的规则数量相比相对较大时,以及在必须严格保持误报率或具有相对较低的容差时可能更有效。第二种在主动策略执行期间插入规则的方法在预期插入的规则的数量与(在策略创建时)策略中的规则数量相比相对较小时,以及在误报率具有相对较高的容差时可能更有效。如上所述,标准布隆过滤器不支持从集合中删除元素。因此,对于可能需要规则删除的应用,应该使用与标准布隆过滤器具有相似属性但也支持有效元素删除的(概率)数据结构来表示策略,诸如一些布隆过滤器变体、布谷过滤器等。
布隆过滤器也可用于确保某些CTI应用的隐私。例如,考虑第一组织Org X,它以网络地址的形式收集关于威胁主体的威胁情报/威胁指标。第一组织Org X可能想要将这些指标的集合分发给第二组织Org Y,以便Org Y可以在网络通信流量中搜索/检测这些指标。然而,在某些情况下,此类指标可能被视为高度敏感的(例如机密或敏感的个人信息);因此,Org X可能不希望以可能损害指标隐私的形式发布/分发指标。Org X可能不希望Org Y能够识别集合中的指标,例如,以防Org Y将它们泄露给恶意主体或允许它们被恶意主体窃取。然而,Org X希望Org Y能够检测到这些指标何时出现在网络通信流量中。
布隆过滤器技术可用于实现这些多个目标。Org X可以将指标插入(Insert())到敏感数据布隆过滤器B中,并且可以使用指标编码算法来填充敏感数据布隆过滤器B。Insert()函数以如下方式对指标集合进行编码:即使在Insert()函数使用的编码算法是已知的情况下,要对编码的指标求逆并由此确定集合中的指标在计算上也是难以处理的。因此,Org X可以在不损害B中包含的指标的隐私的情况下将敏感数据布隆过滤器B分发给Org Y。此外,如果敏感数据布隆过滤器B或数据结构的位向量被恶意主体窃取,恶意主体同样无法确定集合中的指标。同时,Org Y可以使用敏感数据布隆过滤器B,来通过提取流量中的网络地址然后测试网络地址在B中的隶属来检测网络通信流量中指标的出现。
此外,第一组织Org X可能希望控制哪些外部实体能够对敏感数据布隆过滤器B执行隶属测试。例如,在某些情况下,Org X可能希望第二组织Org Y能够对敏感数据布隆过滤器B执行隶属测试,但Org X可能不希望与某些威胁指标集合相关联的第三组织Org Z在OrgZ已获得包含在敏感数据布隆过滤器B中的位向量的副本的情况下能够测试敏感数据布隆过滤器B中这些指标的隶属。换句话说,Org X可能不希望Org Z知道Org X已经收集了与OrgZ相关联的威胁情报。
为了对敏感数据布隆过滤器B执行隶属测试Member(),Member()函数必须使用与Insert()函数所使用的算法相同的编码算法A,以使用指标填充敏感数据布隆过滤器B。编码算法A由某些选定的散列函数和模拟散列函数的特定算术组合构成。因此,Org X可以与Org Y秘密和/或安全地共享编码算法A,并且可以仅将B中包含的位向量而不是B本身单独分发给Org Y。Org Y可以对敏感数据布隆过滤器B执行隶属测试。Org X可以不与Org Z共享编码算法A,从而使得即使Org Z获得了B中包含的位向量的副本,Org Z也无法对敏感数据布隆过滤器B执行隶属测试。
本文描述的主题可以使用硬件、软件或固件的任何组合来实现。例如,本文描述的主题可以使用非暂时性机器可访问和可读介质来实现,该介质上存储有用于控制机器执行各步骤的机器执行指令。适用于实现本文所述主题的示例性机器可读介质包括磁盘存储器设备、芯片存储器设备、可编程逻辑器件、专用集成电路和可下载的电信号。此外,实现本文所述的主题的机器可读介质可以使用单个设备或计算平台来实现,或者可以分布在多个设备或计算平台上。其他细节和特征将在下面的部分中描述。
转向DNS的主题,对于许多联网应用(诸如万维网(www)等的HTTP中介的应用)而言,DNS并不是在互联网或其他网络上有效运行的严格必要条件。如本文所使用的,DNS可以是公共的或私有的,使得例如本文讨论的DNS可以与互联网或内联网相关联。然而,在实践中,互联网的DNS可能是必要的,因为许多互联网联网应用通常严重依赖DNS能够快速有效地将域名解析为IP地址。因此,如果DNS不能随时可用于为这些联网应用提供服务,则联网应用可能变得不可用。由于全球经济和社会已经严重依赖这些联网应用,因此当某些互联网应用无法有效运行时,可能会造成灾难性的后果。
如果恶意主体能够成功攻击DNS本身,则恶意主体可能会对全球经济和社会造成巨大破坏。事实上,此类攻击已经发生,这已经公开暴露了DNS没有足够的保护措施来防止此类攻击的事实。一种类型的对DNS的直接攻击可能会使用大型僵尸网络(botnet),诸如大量受感染的物联网(IoT)设备,以发送许多DNS查询请求来解析可能未在DNS中注册的域名。每个这样的请求都会导致DNS在确定域名不在DNS中并因此无法解析为IP地址之前搜索其全球分布的数据库。当以足够高的速率发送足够多数量的这些恶意不可解析请求时,DNS可能会花费其大部分资源来服务这些恶意请求,而对合法请求的服务不足或拒绝为合法请求提供足够的服务,这可能会导致相关联的合法网络应用不可用。这种类型的攻击是针对DNS的应用级DDoS攻击。
未注册的域名也可能被用于执行一些泄露攻击以经由互联网窃取敏感数据。例如,恶意主体可能已经渗透到私有企业网络并安装了恶意软件,该恶意软件会寻找并收集具有潜在价值的敏感信息,诸如信用卡信息数据库。恶意主体可能希望在不会被企业网络管理检测到的情况下经由互联网检索/传输和收集这种敏感信息。也就是说,恶意主体可能会尝试泄露信息。泄露敏感信息(诸如信用卡信息(例如card1234123412341234))的一种方法是将敏感信息编码在虚假域名(例如card1234123412341234.www.example.com)中,在DNS查询请求消息中插入该虚假域名,并将虚假的DNS查询请求消息发送到冒充DNS服务器的外部主机,该主机由恶意主体拥有/操作或以其他方式控制。由于企业经常配置网络防火墙以允许大多数或所有出站DNS查询请求到任何外部目的地,因此这种类型的攻击通常可能会成功。虚假域名不太可能与在DNS中注册的域名相匹配。因此,可以使用作为攻击途径的未注册域名来识别DNS攻击。
需注意,会出于一些合法的、非恶意的原因将带有未注册域名的DNS请求发送到DNS。例如,由于DNS是作为针对特定类型信息的“查找”服务(即将域名转换为IP地址)构建和实现的,一些公司及其产品将DNS的查找服务用于自己的目的,其中未注册的域名称被用于传输和交换信息。此类公司的典型做法是在DNS中注册一个域,例如“leverage-DNS.net”,然后为“leverage-DNS.net”配置和操作DNS授权名称服务器。因此,DNS会将用于解析后缀为“leverage-DNS.net”的域名的DNS请求路由到该授权名称服务器。例如,托管应用实例X可以发出包含(未注册的)域名“lookup.5h6di89wp77.leverage-DNS.net”的DNS请求。DNS将此DNS请求路由到名称服务器“leverage-DNS.net”。名称服务器可以执行逻辑,该逻辑例如从域名中提取标签“5h6di89wp77”,在本地数据库中搜索以关键词“5h6di89wp77”为索引的记录,以及随后在与DNS请求相对应的DNS响应中返回该记录。此DNS响应可以被路由到应用实例X,从而完成数据交换。
本公开的实际实施应该考虑到具有未注册域名的DNS请求的这种非恶意使用。例如,用于合法数据交换的授权名称服务器的名称数据库可由想要确定特定未注册域名是否可能是合法数据交换操作的组成部分的应用维护和访问。实际实施还应考虑到此类相关联系统可能被恶意主体以某种方式利用的情况。
在下面的描述中,介绍了一种保护DNS免受使用包含在DNS请求中的未注册域名作为攻击途径的攻击的一般方法。该系统可以包括DNS攻击预防逻辑,该逻辑可以部署在插入在网络中的关键位置处的设备中或者被配置为由网络中的一个或更多个设备运行。例如,DNS攻击预防逻辑可以安装在网络路径中的(透明或非透明的)计算设备(例如,装置)中,这些设备可位于或靠近DNS查询请求的发起者,或者可以安装在解析DNS请求的DNS名称服务器附近,或者可以安装在端点上,或者可以安装在可终止DNS会话的代理上。例如,使用加密DNS会话的协议(诸如DoT(RFC 7858)和DoH(RFC 8484))可能需要在代理设备的中间人(man-in-the-middle)中安装DNS攻击预防逻辑。这些装置和相关联的DNS攻击预防逻辑中的每一个都可以包括DNS网守功能(以下简称为“DNS-G/K”),该功能可以控制对DNS及其资源的访问。DNS-G/K可以执行DNS攻击预防逻辑和相关联的算法。DNS攻击预防逻辑可以检测(包含在传输中的分组中的)传输中的DNS查询请求消息,并且DNS攻击预防逻辑可以确定包含在限定名称(qualified name)或QNAME字段中的域名。
DNS攻击预防逻辑可以根据被分析的消息确定域名是否在DNS中注册,而无需查询DNS。如果DNS攻击预防逻辑确定为True值,指示该域名已在DNS中注册,则DNS攻击预防逻辑可以将包含DNS查询请求消息的分组转发到其目的地。也就是说,DNS攻击预防逻辑可以将查询请求消息转发给DNS资源,诸如授权名称服务器。否则,当DNS攻击预防逻辑确定为False值,指示该域名未在DNS中注册时,DNS攻击预防逻辑可以执行DNS保护动作。例如,DNS攻击预防逻辑可以丢弃包含错误DNS查询请求(诸如拼写错误的域名)或虚假DNS查询请求(可能是泄露尝试或DDoS攻击的一部分)的分组,以避免浪费DNS资源或避免传输被窃取的数据。DNS攻击预防逻辑可以生成带有响应代码(诸如“NXDOMAIN”)的相应DNS查询响应,并将响应发送回错误或虚假的DNS查询请求的源,或者可以记录并捕获错误或虚假的DNS查询请求,并且可以:(i)报告错误或虚假的DNS查询请求的源IP地址,以便网络管理机构可以检查源主机是否感染了恶意软件,并且在必要时可以删除恶意软件或以其他方式阻止主机攻击DNS;和/或(ii)报告未注册的域名,以便管理机构/分析人员可以检查使用域名作为途径的潜在攻击和/或将域名用作威胁情报和/或机器学习系统的训练数据、和/或作为全球DNS/互联网保护系统的输入等等的潜在攻击。基于以下描述的多种因素,出于网络保护的目的,不生成DNS响应或阻止向请求的源发送DNS响应可能更具保护性。
上面讨论的对DNS中域名的存在和/或注册的测试可以最小化或消除DNS资源用来处理错误请求的使用,并且相对于分组传输时间和网络性能度量,还可以有利地尽可能接近瞬时。也就是说,测试和整个DNS-G/K功能增加的延时应该相对较低,否则其可能无法实现,并且在计算时间、空间/存储器和处理资源方面应该是高效的。回想一下以上内容,例如,称为布隆过滤器的概率数据结构可以满足这些标准。布隆过滤器(a)空间有效地存储集合的元素,(b)将元素时间有效地插入到集合中,以及(c)时间有效地确定元素是否是集合的成员。布隆过滤器由误报率P参数化,误报率P可以包括当元素实际上不是集合成员时,针对该元素的集合隶属测试返回True的概率。对于布隆过滤器,漏报率为零。也就是说,如果元素的集合隶属测试返回False,则可以确定该元素不是该集合的成员。
布隆过滤器可用于测试域名在DNS中的存在/注册,以有效地确定给定域名是否是当前可在DNS中注册的所有域名集合的成员。例如,当误报率P=10-6时,大小约为1.8GB的布隆过滤器足以存储5亿个布隆过滤器编码的域名。这个包含5亿个元素的布隆过滤器可以瞬时确定给定域名是否是集合的成员,即使当误报率P非常低时(例如,10-6或百万分之一)。空间和时间要求随P的对数大小而变化。因此,将误报率P=10-6降低一百万的因子到P=10-12的误报率或到万亿分之一只会导致空间和时间要求增加2倍。作为比较,在公开的当前时间,DNS包含大约5亿个注册域名。作为比较,考虑DNS中域名的平均大小大约为20字节,因此存储5亿个未编码域名的存储器要求大约为10GB;而上面P=10-6的布隆过滤器需要大约1.8GB的存储器。
对于本说明书的其余部分,布隆过滤器(以下可缩写为“B/F”)数据结构将用于本公开的描述中,但这种选择是示例性的,并不意味着以任何方式进行限制或约束。同样如上所述,可以使用具有足够和相似的时间和空间效率的任何数据结构来存储元素集合、将元素插入到集合中,以及测试元素在集合中的隶属。例如,布谷过滤器具有与布隆过滤器相似的时间和空间效率,并且还具有从集合中有效删除或移除元素的能力——这是标准布隆过滤器所不具备的能力。已经开发了一些支持删除能力的布隆过滤器变体。从集合中有效地删除元素的能力在一些应用、实施方式和/或实施例中可以证明是有用的。数据结构可以支持用于向集合中添加元素的Insert()函数、可以支持用于测试元素的集合隶属的布尔值Member()函数以及可以支持用于从集合中删除元素的Delete()函数。下面的描述还假设数据结构是概率性的,因此与非零误报率P相关联,但同样,这种选择是示例性的,并不旨在以任何方式进行限制。
可以通过聚合已注册域名的列表和子列表(通常称为区域列表或区域文件)来创建在DNS中注册的所有域名的列表。这些列表可以从多个DNS注册运营商组织或相关代表处、从发现或发布其区域文件的授权名称服务器以及从域列表聚合器服务获取。然而,一些国家代码区域的注册商(registrar)通常不会将其区域文件发布给任何第三方。因此,一些已注册的国家代码域可能需要通过其他方式(诸如网络爬取(web crawling))发现并发布。此类域可能会被第三方服务提供者发现。无论采用何种收集方法,都可能无法获得100%完整的已注册国家代码域列表。这种不确定性可能会被考虑到DNS网守DNS-G/K的DNS保护逻辑中。
可以由此列表创建布隆过滤器(另外和/或另选地称为DNS-REG或布隆过滤器DNS-REG)。布隆过滤器DNS-REG可以由集中式服务或服务器创建,它可以生成布隆过滤器DNS-REG并将布隆过滤器DNS-REG和相关联的DNS保护逻辑的副本分发给订阅者,订阅者可以包括一个或更多个DNS网守(DNS-G/K)。集中式服务可以与管理布隆过滤器DNS-REG的订阅服务的管理服务器相关联。管理服务器可以存储多个布隆过滤器DNS-REG,并且可以被配置为将特定布隆过滤器DNS-REG分配给注册服务的每个设备。管理服务可以基于订阅设备的处理能力来选择特定的布隆过滤器DNS-REG。
布隆过滤器DNS-REG可以包含所有在DNS中注册的域名,并且可以与逻辑函数相关联。逻辑函数可以包括接受域名作为输入布尔值函数Insert-Into-DNS-REG(),可以将域名插入到集合DNS-REG中,并且如果插入操作成功则可以返回True值,或者如果操作不成功则返回False值。逻辑函数还可以包括接受域名作为输入的布尔值测试函数Member-of-DNS-REG(),并且如果输入域名是布隆过滤器DNS-REG的元素或成员则可以返回True值,如果输入域名不是集合的元素,则可以返回False值。另一个逻辑函数可以是删除元素函数Delete-from-DNS-REG(),它可以从集合DNS-REG中删除指定元素。删除元素函数可能对某些应用有用,包括在从DNS注销域名时更新布隆过滤器DNS-REG。
DNS网守DNS-G/K可以包括用于摄取/接收传输中的分组、用于缓冲和排队分组、用于转发或丢弃包含DNS请求的分组、用于从DNS请求中提取域名(例如,QNAME字段值)、用于管理DNS-REG的本地副本和对集中式服务的相关订阅、用于调用函数Insert-Into-DNS-REG()和Member-of-DNS-REG()及Delete-From-DNS-REG()、用于记录和报告返回False的Member-of-DNS-REG()调用、用于决定是否生成相应的DNS响应并将其转发到错误或虚假的DNS请求的源或发起者等的逻辑。DNS-G/K可以包含或嵌入在代表应用实例管理DNS请求的主机操作系统中,诸如Linux。例如,DNS-G/K逻辑可以包含在DNS请求发起/发源/发出的web浏览器中,或者嵌入在DNS堆栈(诸如BIND)中,其为一种在DNS授权名称服务器和DNS递归解析器两者中均能使用的已知的DNS服务器软件。DNS-G/K可以实现为管理布隆过滤器DNS-REG并通过布隆过滤器DNS-REG过滤DNS请求的微服务(micro-service)。
这些DNS网守(DNS-G/K)可以体现在装置和主机计算机(包括端点元件)中,它们可以广泛分布在互联网上,并且可以插入DNS请求的网络路径中,包括源端点和目的地端点处的路径终端。这些装置和主机可以包括DNS代理、DNS服务器、DNS解析器、DNS名称服务器、网络防火墙、网络代理、网络网关、网络装置、路由器、交换机、端点等。DNS-G/K也可部署在互联网连接网络中,这些网络由DNS注册商公司、DNS基础设施和托管服务提供者,以及可以运营关于可使许多DNS请求进入和离开其网络的多个DNS注册商公司或其他组织的DNS注册服务或DNS名称服务器的其他组织。
由于DNS可能会不断注册新域名,因此布隆过滤器DNS-REG可能会定期更新(例如,每小时、每天或每周更新)。布隆过滤器DNS-REG可以由集中式服务或管理服务器更新,并经由推送或拉取机制分发给DNS-G/K订阅者。另选地或同时地,集中式服务或管理服务器可以从注册商组织或其代表、从第三方域列表聚合器组织、从发现其区域文件的授权名称服务器和/或从诸如ICANN的DNS机构等收集新注册的域名。新收集的域名可以在馈送(feed)中提供给DNS-G/K订阅者,或者可以作为更新包的一部分提供给DNS-G/K订阅者。当DNS-G/K订阅者收到这样的馈送时,订阅者可以通过调用Insert-Into-DNS-REG()函数或生成更新的DNS-REG将域名插入到他们的布隆过滤器DNS-REG的本地副本中。类似地,集中式服务或管理服务器可以收集新注销的域名,并且可以向DNS-G/K订阅者提供包含最新/最近注销的域名的馈送。当DNS-G/K订阅者收到这种馈送时,DNS-G/K订阅者可以通过调用Delete-From-DNS-REG()函数来从其布隆过滤器DNS-REG的本地副本中删除域名。
DNS网守DNS-G/K可以包括处理误报的逻辑,并且可以包括处理与布隆过滤器DNS-REG相关联的滞后问题的逻辑,这将在下面更详细地描述。这种逻辑可用于替代将包含DNS查询请求消息的分组转发到其目的地的逻辑或用于执行上述DNS保护动作的逻辑。
关于误报,如上所述,布隆过滤器是一种可以通过误报率P进行参数化的概率数据结构。误报概率P与确定元素是否包含在布隆过滤器中的隶属测试相关联,是隶属测试可能错误地返回True值的可能性。布隆过滤器可以是布隆过滤器DNS-REG的一个实例。该逻辑可以确定被测试的分组的域名是否在DNS中注册。系统可以对给定的域名在布隆过滤器DNS-REG中执行隶属测试,其中误报概率为P。当域名实际上不包含在布隆过滤器DNS-REG中时,隶属测试可能会错误地返回True值。可能会执行将包含DNS查询请求消息的分组转发到其预期目的地的逻辑,这可能会将错误或虚假的DNS请求转发到其目的地。也就是说,与错误或虚假的DNS请求相关联的潜在攻击可能无法被阻止或缓解。
在错误或虚假的DNS请求是对DNS的DDoS攻击的一部分的情况下,误报测试结果的不利影响可能很小。这是因为,假设误报率P的值是合理的,很可能会检测到大多数虚假的DNS请求。当检测到大多数虚假DNS请求时,那些检测到的虚假请求不会导致误报,因此可被阻止/丢弃或如在执行DNS保护动作的逻辑中以其他方式处理。因此,误报不太可能导致DDoS攻击成功,因为必须允许大量虚假请求才能使DDoS攻击成功。如果DNS请求是DNS隧道攻击的一部分,例如作为数据泄露操作的一部分,则误报的不利影响可能较大,这取决于泄露的信息的敏感性和/或泄露的信息对在执行DNS保护动作的逻辑中阻止/丢弃的其他信息的依赖性。例如,如果误报包含被窃取的根密码,则不利影响可能很大。相反,如果误报包含较大文件的一小部分,那么被泄露的信息可能几乎没有价值,因为它的价值取决于文件的其余部分的上下文,而因为具有相关联信息的其余部分包含在单独的DNS请求中使得文件的其余部分可能未被成功泄露,其被确定为真阳性(true positive),可能会被执行DNS保护动作的逻辑阻止/丢弃。
可以选择误报率P使得误报在实践中不太可能发生。例如,可以选择误报率使得误报率P=10-12或更小。权衡是误报率P越小,存储布隆过滤器DNS-REG所需的存储器就越多。存储器存储对误报率P施加了实际限制。然而,不同的DNS-G/K订阅者可能对误报率P有不同的要求和约束,并且对布隆过滤器DNS-REG的存储器/存储装置有不同的要求和约束。因此,提供布隆过滤器DNS-REG的集中式服务或管理服务器还可以提供不同版本的布隆过滤器DNS-REG,这些过滤器可以由不同的误报率P、以及由此布隆过滤器DNS-REG的不同存储器大小参数化。集中式服务或管理服务器可以允许每个订阅者选择订阅者想要访问或递送哪个版本的布隆过滤器DNS-REG,选择标准是误报率P和相关联的存储器大小的组合。
可以由管理服务器提供的集中式服务可以基于计算设备的处理能力来选择或分配特定的布隆过滤器DNS-REG。管理服务器可以被配置为从第三方设备检索存储器容量信息,诸如从来自制造商网站或销售网站的产品数据表中检索。管理服务器可以基于计算设备的存储器大小、与计算设备相关联的安全策略的误报率P限制或计算设备的延迟限制来确定要分配给计算设备的特定布隆过滤器DNS-REG。
管理服务器还可以从多个不同的DNS-G/K订阅者接收关于DNS请求处理的信息。此信息可以包括受监控DNS查询请求的域名,该受监控DNS查询请求未在特定本地布隆过滤器DNS-REG中找到,但当请求被允许继续并由DNS-G/K基于来自DNS的响应被确认为有效时被确认为包括有效的域名。该信息还可以包括与通过测试特定的本地布隆过滤器DNS-REG或通过监控对允许继续到其预期目的地的DNS查询请求的DNS响应而被确定为虚假的DNS请求相关的记录数据。该信息可以至少包括此类DNS查询请求的源、预期目的地和其他分组信息。
DNS-G/K的DNS保护逻辑也可以将误报率P的值与其他参数值一起考虑。在决定如何处理DNS请求时,其他参数值可以包括DNS请求速率值(如下所述)。例如,Member-of-DNS-REG()的True实例的处理可以有所不同,这取决于与本地布隆过滤器DNS-REG相关联的误报率P的值。例如,相比于具有较低P值的本地DNS-REG的第二DNS-G/K,具有相对较高误报率P的本地布隆过滤器DNS-REG的第一DNS-G/K更可能得出隶属测试的True结果可能是误报的结论。因此,第一DNS-G/K可以相比于第二DNS-G/K不同地处理相关联的DNS请求。例如,第一DNS-G/K可由于误报的可能性相对较高并结合其他参数值(诸如DNS请求速率值和其他确定的攻击状态值)而决定不管怎样都要丢弃DNS请求,而第二DNS-G/K可以将该请求转发给DNS。
关于上面提到的滞后,当DNS-REG的实例不包含与实际DNS相同的注册域名集合时,可能会发生延迟。例如,域名XYZ可能最近已在DNS中注册,但域名XYZ可能尚未由集中式服务或管理服务器作为对实现布隆过滤器DNS-REG的分布式系统的更新来分发。也就是说,在特定时间点,DNS-G/K可能没有下载最新可用版本的布隆过滤器DNS-REG。这种类型的延迟可以称为同步滞后。另一个示例是关于国家代码域可能出现的一种类型的延迟。如上所述,由于国家代码区域的注册商通常不会发现其区域文件到任何第三方,因此可以使用诸如网络爬取等非确定性方法来编译国家代码域列表,结果是100%完整的注册国家代码域列表不可用于特定设备或系统。这种类型的延迟可以称为注册延迟或国家代码延迟。
基于这些类型的滞后,对于Member-of-DNS-REG()测试的给定执行实例,可能确定被测试的分组的域名XYZ是否在DNS-REG中,返回False,指示确定域名XYZ未在DNS中注册。基于该确定,可以执行用来执行DNS保护动作的逻辑,并且该逻辑可以被配置为丢弃或阻止被测试的DNS请求。在DNS-REG的最后更新之后注册域名XYZ时,本次测试不反映最近注册域名XYZ的有效性。由于更新DNS-REG的延迟而丢弃有效的DNS请求可称为“滞后丢弃(lag-drop)”。
滞后丢弃的不利影响可以取决于发出相关联的DNS请求的主体的意图。例如,如果合法或非恶意主体发出了一个有效的DNS请求,但由于滞后而被DNS-G/K丢弃,则滞后丢弃的不利影响可被认为是显著的,因为合法的业务交易可能会无法完成。此示例表明,在执行上述DNS保护动作的逻辑中,可能不希望丢弃或阻止DNS请求。相反,一些用于解析最近注册域名的DNS请求可能与恶意活动相关联,在这种情况下,滞后丢弃的影响可能被认为是无害的、可取的或有益的。对于与恶意活动相关联的此类请求,逻辑执行DNS保护动作以丢弃或阻止DNS请求是可取的。如上所述,在某些实施方式中,确定Member-of-DNS-REG()的False返回值是由于滞后还是由于输入域名是从未打算在DNS中注册的虚假名称是不切实际。在实践中,False返回值更可能是由于虚假DNS名称而不是滞后问题;因此,在执行DNS保护动作的逻辑中,丢弃或阻止DNS请求可能比转发或允许DNS请求更可取。
在执行DNS保护动作的逻辑中丢弃或阻止的一种替代方案可以是转发或允许DNS请求,但记录DNS请求并针对DNS返回的相应的DNS响应来监控后续网络流量。当已确定相关联的域名未在DNS中注册时,相应的DNS响应可以包括响应代码NXDOMAIN。此外,当没有相应的DNS响应时,逻辑可以确定请求是与攻击相关联的错误或虚假的DNS请求。然后,网络安全应用可以分析记录的DNS请求,例如,以确定DNS请求是否可能与DNS隧道攻击或泄露攻击相关联。该逻辑可以确定请求与合法请求相关联的概率,并且基于确定请求合法的概率超过阈值,该逻辑可以允许被确定为合法的请求继续前进到DNS进行解析。
当相应的DNS响应包含解析域名的IP地址,或者逻辑确定域名已在DNS中注册时,则可以确定Member-of-DNS-REG()的False返回值与滞后相关联。例如,如果DNS请求包含后缀为国家代码顶级域(ccTLD)的域名,则逻辑可以确定DNS请求与由于收集所有国家代码域问题而导致的滞后问题相关联。因此,逻辑可以确定DNS请求很可能与可能是非恶意的通信相关联。如果DNS请求不包括具有国家代码TLD的域名,则逻辑可以确定任何滞后问题都可能是同步滞后情况,如上文针对包含最近注册的域名的DNS请求所讨论的。由于逻辑可以确定DNS请求可能与恶意活动相关联,逻辑可以使用网络安全应用监控DNS请求,以监控与DNS请求相关联的后续活动和/或请求响应。监控可以允许逻辑确定后续活动(诸如与DNS响应提供的IP地址相关联的HTTP(S)会话)以及任何相关联的主体是否是恶意的。基于确定请求中的域名有效,DNS-G/K可以将注册的域名插入到布隆过滤器DNS-REG的本地副本中,并且可以将被确定为注册域名的域名传送到向订阅者分发布隆过滤器DNS-REG副本的集中式服务或管理服务器。
当检测到可能与对DNS的DDoS攻击相关联的错误或虚假DNS请求时,逻辑可以执行DNS保护动作以丢弃或阻止请求来防止或减轻攻击。如上所述,确定错误或虚假DNS请求是否与DDoS攻击或其他类型的攻击相关联可能不切实际。然而,该逻辑可以通过确定相关联的系统何时发现高速率的虚假DNS请求(这是DDoS攻击的特征)来估计错误或虚假DNS请求是否与DDoS攻击相关联。如果当所观察到的无效DNS请求的当前速率高于正常值时观察到无效DNS请求,则逻辑可以确定无效请求的高速率指示正在发生DDoS攻击。可以将无效DNS请求的速率与阈值进行比较。当逻辑确定可能正在发生DDoS攻击时,逻辑可以执行DNS保护动作逻辑来丢弃或阻止DNS请求。当无效DNS请求的速率可以与阈值相当时,逻辑可以执行DNS保护动作逻辑以丢弃或阻止DNS请求。
可以为每个设备设置速率阈值。无效DNS请求的阈值速率可以基于正常操作周期期间(例如,当没有活动的DDoS攻击发生时)的无效DNS请求的初始速率来确定。例如,逻辑可以监控一段时间内无效DNS请求的速率。由于网络流量可能会因一天中的时间和一周中的日子而有所不同,因此无效DNS请求的速率可以根据一天中的特定时间或一周中的日子进行调整。例如,对于企业网络,工作日午餐时间的错误DNS请求的预期速率可高于周末晚上的错误DNS请求的速率。对于家庭网络,周末晚上期间的无效或虚假DNS请求的预期速率可高于工作日午餐时间的无效或虚假DNS请求的速率。每个特定的网守设备可以基于多个因素具有不同的速率,该多个因素包括与设备相关联的位置和网络。例如,与企业网络相比,基于家庭网络的设备可以具有显著较低的总流量。每个特定的网守设备可以被配置为监控速率随着时间推移的变化,以调整无效或虚假DNS请求的预期速率。
速率阈值可以相对于布隆过滤器DNS-REG的误报率P来设置。也就是说,相对于布隆过滤器DNS-REG的误报率P,可以将阈值设置为允许将更多可能虚假的请求传递到预期的目的地,以便监控响应来确定关于布隆过滤器DNS-REG的可能注册滞后。当误报率较低时,DNS-G/K可以设置较低的速率阈值,这可以允许将更多可能虚假的DNS查询请求转发到其预期目的地。当误报率较高时,DNS-G/K可以设置较高的速率阈值,这可以允许将更少可能虚假的DNS查询请求转发到其预期目的地。
生成相关联的DNS响应可能会通过填充任何中间DNS服务器中的DNS缓存来加剧DDoS攻击。当逻辑确定可能正在发生DDoS攻击时,逻辑可以丢弃或阻止DNS请求,而不生成相关联的DNS响应(例如,其中RCODE:3=NXDOMAIN的响应)。替代地,如果逻辑确定请求是虚假DNS请求,同时所观察到的虚假DNS请求的当前速率不高于正常值,则逻辑可以执行DNS保护动作以转发或允许DNS请求,并且还记录、监控和/或网络分析相关联的事件以确定攻击的可能性、攻击的严重性和潜在的补救措施。为了确定是否正在发生DDoS攻击,逻辑可以确定错误DNS请求查询的当前速率是否满足阈值。
估计虚假DNS请求的正常速率的一种方法是测量每次观察虚假DNS请求之间的时间间隔,然后使用有效的算法来估计平均间隔(以及因而正常速率)。在未发生DDoS攻击期间观察到的虚假DNS请求之间的平均间隔可大于在发生DDoS攻击期间观察到的虚假DNS请求之间的平均间隔。逻辑可以监控和持续估计观察之间的平均时间,或者反过来可以监控和持续估计观察的速率。这些平均间隔可以基于指数加权移动平均(EWMA)方法或基于指数平滑方法来估计。指数平滑是时间和空间有效的,因为每次观察后对估计的每次更新只需要恒定时间的计算(通常是两次乘法和一次加法),并且通常任何时候只需要存储三个值。
可以确定虚假DNS请求的平均速率的估计以建立基线。当已经确定虚假DNS请求的平均速率的估计时,可以有效地确定虚假DNS请求的估计的平均速率的变化。可以使用例如应用于虚假DNS请求的平均速率的估计序列的指数平均计算来估计该变化。在没有DDoS攻击时,虚假DNS请求的估计的平均速率的计算变化应该接近于零。当系统确定不存在DDoS攻击时,逻辑可以执行DNS保护动作来转发或允许虚假DNS请求,同时对虚假DNS请求和相应的DNS响应(如果有的话)执行记录、监控或分析功能。当发起DDoS攻击时,估计的平均速率的计算变化应该是非零且为正的。当确定发起DDoS攻击时,执行DNS保护动作的逻辑可以丢弃或阻止虚假DNS请求。此外,如果虚假DNS请求的估计的平均速率的计算变化变得相对较大且为正(增加),则可以修改执行DNS保护动作的逻辑以丢弃虚假DNS请求,而不生成具有NXDOMAIN响应代码的相应DNS响应。
可以实施这种另选的保护动作,因为可能正在生成虚假DNS请求(包括在DDoS攻击期间的此类请求)的设备通常并不关心接收DNS响应。由于生成请求的设备不关心响应,可能会浪费由DNS-G/K生成DNS响应所消耗的计算资源,并且可能会增加对DNS-G/K的拒绝服务攻击的有效性。当在此类DDoS攻击期间可能生成带有NXDOMAIN响应代码的DNS响应时,中间DNS服务器中的DNS缓存可能会填满对虚假DNS请求的NXDOMAIN响应。在这种情况下,对合法DNS请求的DNS响应(其可包括已解析的IP地址)可能不会缓存在中间DNS服务器上,这会导致用于服务合法DNS请求的DNS资源消耗增加,这可能会进一步加剧DDoS攻击。这种情况可以被认为是对DNS缓存的拒绝服务攻击,并扩展为对DNS的攻击。
当DDoS攻击消退时,逻辑可以检测到虚假DNS请求的估计的平均速率发生变化。在攻击开始消退时,虚假DNS请求的估计的平均速率的变化可被确定为变成负数。基于确定攻击已经开始消退,当检测到并丢弃虚假DNS请求时,逻辑可以开始执行DNS保护动作以生成带有NXDOMAIN响应代码的DNS响应。
在确定当前未发生攻击的情况下,在测量虚假DNS请求速率的初始阶段期间,和/或当DNS-G/K被定位在使得其仅观察到相对少量的虚假DNS请求(例如,在受到良好保护的专用网络的边缘)的位置时,虚假请求的样本大小可能太小而无法计算准确的估计值。在这些情况下,如上文更详细描述的那样,估计与所有DNS请求相关联的速率也可以是有用的。系统可以确定与虚假DNS请求和合法DNS请求两者相关联的请求速率,并且可以比较虚假DNS请求的请求速率与所有DNS请求的请求速率的比率。当虚假请求与所有请求的比率发生显著变化时,逻辑可以确定正在发生攻击。虚假请求与所有请求的比率可用于确定系统是否应生成和传输对可能的虚假请求的DNS响应。
图1描绘了代表性环境100,其可以包括诸如威胁情报网关(TIG)200和250之类的分组过滤设备,用于通过执行由安全策略管理器(SPM)120提供的CTI衍生策略来保护网络112和114。TIG 200和250可以内联插入在将网络112和114与网络110连接的网络接入链路106中。网络110可以是互联网,它提供网络112、114、116和118之间的互连服务,并且可以实现附接到网络的IP可寻址主机120和130至137之间的通信。TIG200和250可以是物理的或逻辑的,并且网络的内部连接和网络间连接可以是有线、无线、物理、虚拟和/或逻辑/软件定义的任意组合。
网络112可以是示例性企业网络,其使用CTI衍生策略和实施本公开的各方面的TIG 200——诸如需要通过本公开实现的空间、时间和资源效率的非常大的策略——来保护其联网的公司资产。TIG 200可以订阅SPM120以获得CTI衍生策略,该策略由许多CTI提供者提供并且跨越一系列指标、指标类型、攻击类型、风险值、指标保真度等,导致策略由数千万计或数亿计的分组过滤规则构成,这些规则可以以其相关联的威胁指标表征。
网络114可以是由DNS基础设施和受管理服务提供者组织运营的示例性网络,DNS基础设施和受管理服务提供者组织具有包括DNS服务器和代理的联网公司资产(例如主机132和133),其处理大量DNS流量,通常代表重视高性能DNS服务的组织:诸如DNS域名注册运营商、授权名称服务器提供者、大型全球企业、内容交付网络提供者、ISP等。网络114由TIG250防护,其可以订阅SPM 120以获得CTI衍生策略,并且可以配置有可以确定分组中包括的域名是否在DNS中注册的分组过滤逻辑。
网络116可以是不受TIG和相关策略防护/保护的公司企业网络。附接到网络116的主机134和135可能被恶意软件感染或被恶意主体以其他方式控制。
网络118和相关联的联网资产可由恶意主体的组织控制/操作。网络118不受TIG和相关联策略的防护/保护。该组织可以使用附接到网络118的主机136和137来经由网络110(例如,互联网),诸如网络112、114和116,对远程网络资产执行各种攻击。
图2示出了支持本公开的各方面的TIG 200的系统架构。组件可以包括处理器CPU220(其可以执行用于配置和操作TIG 200的逻辑)、网络接口212和214、管理接口240以及存储器模块的分级结构TIER-0MEM230、TIER-1MEM 231、……TIER-N+1MEM 239。组件可以连接到总线BUS 210,该总线可以用于在TIG 200的组件之间传输信息。总线210可以提供TIG200的组件之间的数据通信通道。总线210可以在形式和性能上变化,从相对快速和小的总线(例如连接处理器逻辑和片上高速缓存存储器的片上硅总线)到相对缓慢和全局总线(例如互联网)。其他形式的总线可以包括,例如,印刷电路板(PCB)的集成/嵌入式数据总线、连接计算机和外围设备的并行数据线、连接网络交换机和路由器的端口/接口的串行光缆、L2/L3交换网络、L3路由网络等的任意组合。总线210可以是硅、有线、无线、物理、逻辑、虚拟、软件定义等的任意组合。例如,如图2所示,总线210的一部分可以用将网络接口/端口212和214与网络112和110连接的网络链路106来标识。
存储器模块230至239可以形成按速度(读/写访问时间)、密度(3D空间中每单位体积的字节数)、容量(以字节为单位测量)和每字节成本来分层/参数化的分级结构。由于与存储器类型和位置相关联的空间限制,容量(以字节为单位测量)可以与密度高度相关。(容量和密度在本公开中可以互换使用)。较小枚举的存储器模块(例如TIER-0MEM 230)与较高枚举的存储器模块(例如TIER-3MEM 233)相比可与更高的速度、更低的容量和更高的成本相关联。通常,随着枚举数从230增加到239,速度和成本会降低,而容量会增加。相邻层的参数可以变化一个或更多个数量级。例如,TIER-0MEM 230可以是片上SRAM高速缓存存储器;TIER-1MEM 231可以是PCB上的SDRAM“主存储器”;TIER-2MEM 232可以是PCB上的NVRAM(例如NAND FLASH SSD);TIER-3MEM 233可以是磁性机械/旋转磁盘;以此类推,其中TIER-N+1MEM 239标识为全球分布式存储器,例如由互联网DNS用于存储{域名,IP地址}对和相关信息。
分级存储器可以实现本文描述的与时间和空间效率相关的特征的具成本效益的实施。策略或策略的分区,以及任何相关联的布隆过滤器,可以存储在具有足够空间/可用容量的最高速存储器中。可以在处理策略规则之后存储策略以实现时间效率和/或空间效率措施,诸如使用布隆过滤器来利用规则匹配率/概率和规则冗余。也就是说,可以处理规则或策略以最小化布隆过滤器的大小、最小化布隆过滤器的误报率或消除布隆过滤器内的冗余规则。如果TIG的性能测量值不满足可接受的阈值,则TIG可以为TIG配置的存储器分级结构分配一个或更多个存储器层。TIG还可以提供布隆过滤器的分级系统,以在不损害安全性的情况下减少策略中分组过滤规则搜索的次数。
图3描绘了描述用于配置和操作高效TIG的代表性操作的流程图。在步骤3-1中,分组过滤设备,诸如威胁情报网关TIG 200,可以从安全策略管理器SPM 120下载CTI衍生策略。CTI衍生策略可以包括可以被预处理以消除冗余的多个规则。分组过滤设备可以按照分组过滤规则在策略文件中排列的顺序来处理或应用分组过滤规则(但是,如果策略的完整性不受影响,则规则可以被重新排序/重新排列)。分组过滤设备可以按照规则在空间上排列的顺序来处理或应用分组过滤规则。本文描述的一些特征可以包括对应于规则排序的过程。由于TLS证书消息和其他分组数据可以跨多个L2分组分段,因此本描述中对“分组”的引用可以指包含单个证书消息或其他分组数据的多个分组。为了有助于描述方法的说明性目的,描述了一些示例性排序。
SPM或TIG可以对规则进行排序和分组以满足某些要求和/或支持TIG功能。对于CTI衍生的策略,可以按照提高安全性、提高TIG性能(例如,减少策略搜索时间)、提高网络分析效率等的方式对规则进行排序/分组。可以例如通过指标类型和相关联的保真度,或者通过规则是否具有相同的动作和威胁元数据(但具有不同的指标)来对规则进行排序和子排序。网络地址指标类型可以是URI、域名和IP地址,并且相关联的规则可以按保真度降序排列。例如,URI规则可以先于域名规则,而域名规则可以先于IP地址规则。类似地,对于证书相关的指标类型,证书比证书颁发机构具有更高的保真度,这可以在对相关联的分组过滤规则进行排序时予以考虑。规则也可以按规则动作或按规则(非)依赖关系进行排序和子排序。例如,具有阻止/拒绝/丢弃动作的规则可以先于具有非阻止动作的规则。可以在不改变策略的完整性的情况下重新排列与顺序无关的规则。可以使用排序和分组标准的各种组合。可以以支持/优化时间和/或空间效率的方式对规则进行排序和分组。
在步骤3-2中,根据本文描述的方法,可以将策略划分为规则的子集,其中每个子集可以允许时间和/或空间效率。例如,如果在启动搜索之前已知当前网络地址是否与子集中规则中的任何指标都不匹配,则可预计具有相对较低的匹配过滤分组的网络地址的速率的指标的规则子集可以通过跳过对匹配规则的搜索来实现时间效率。如果子集中的每个规则具有相同的动作和相同的威胁元数据(但具有不同的指标),则可以实现另一种空间效率,因为规则子集可以作为与具有相同动作和威胁元数据的单个实例相关联的(不同)指标集合有效地存储在存储器中。
在步骤3-3中,对于每个子集,布隆过滤器可以被配置为包含针对子集中每个规则的每个指标。每个布隆过滤器可以与规则的子集相关联,也可以与过滤器包含的一个或更多个指标类型相关联,以便允许进一步提高效率。例如,布隆过滤器及其相关联的规则子集可以仅包含URI和域名指标;然后分组过滤设备可以搜索针对IP地址类型指标的规则的策略,可以跳过对URI和域名子集布隆过滤器(以及相关联的规则子集)的搜索。对于时间效率布隆过滤器,指针指向(分级)存储器中可以存储相关联的过滤规则子集的一个位置。时间效率布隆过滤器及其相关联的规则子集可以存储在存储器分级结构的同一层中,或者可以是如下情况:布隆过滤器可以相比于其相关联的子集存储在存储器分级结构的不同(例如更快)的层中,因为规则子集可能太大而无法与其布隆过滤器放在同一层。因此,相关联的规则子集可以存储在具有更大容量(但速度较慢)的存储器层中。为了实现空间效率,布隆过滤器可以和与布隆过滤器中的所有(不同)指标和分组过滤规则的关联子集相关联的动作和威胁元数据的单个实例相关联。
在某些情况下,规则子集可能不会产生时间或空间效率,和/或可能要求始终搜索该子集,和/或规则可能不是从CTI衍生的,或者可能不以其他方式表征为威胁指标。为了将子集布隆过滤器与策略中的每个子集相关联,通用布隆过滤器可以与这样的规则子集相关联,即该规则子集对于任何网络地址/元素输入的任何集合隶属测试可以始终返回TRUE值。通用布隆过滤器可能不需要任何存储器/存储空间来存储相关联的规则元素。如果相关联的子集中的每个规则仅包括一种或更多种指标类型的指标,则通用布隆过滤器可以与这些一种或更多种指标类型相关联。当相关联的子集中的规则仅具有“IP地址(IP address)”类型的指标并且被搜索的当前网络地址可能是URL时,这可以产生效率。因此,即使针对URL是否在通用布隆过滤器中的隶属测试可以返回TRUE结果,也可以安全地跳过子集搜索。通用布隆过滤器可以被认为是时间效率布隆过滤器的特例。
此外,在某些情况下,将单个时间效率布隆过滤器与多个子集或甚至所有子集(例如整个策略)相关联可能是有利的。测试单个集合X中的元素隶属可能比针对与单个集合X的分区相关联的每个子集相关联的多个子集布隆过滤器单独执行隶属测试更为时间有效。例如,对于包括与域名指标相关联的过滤规则的子集J和同样与域名指标相关联的过滤规则的子集K的策略,其中J中的域名指标与K中的域名指标都不同。可以生成分别包含J的域名指标和K的域名指标的两个布隆过滤器J'和K',并且可以生成用作组合子集过滤器的第三布隆过滤器L',其同时包含J和K的域名指标(每个布隆过滤器可以具有相同的误报率P)。在单个组合子集布隆过滤器L'中测试隶属的时间可以小于在布隆过滤器J'中测试隶属的时间和在布隆过滤器K'中测试隶属的时间之和。
步骤3-2和3-3在本文中被描述为由TIG 200执行,但是这些步骤可以由SPM 120执行,或者步骤的某些部分可以在TIG 200和SPM 120之间划分。如果布隆过滤器的某些部分可由SPM 120计算,则策略可由TIG 200下载,并且策略文件还可包括任何相关联的布隆过滤器和相关联的信息。另一个示例是,如果SPM 120执行策略到子集的划分并为每个子集指定要使用的效率或布隆过滤器的类型(例如,时间效率、空间效率、无效率(通用)等),然后TIG 200配置布隆过滤器。
在步骤3-4中,子集布隆过滤器及其相关联的策略子集可以由分组过滤设备或SPM120分发,并且可以存储在存储器分级结构中。布隆过滤器及其相关联的子集可以存储在具有足够可用容量的最快的存储器模块中。时间效率布隆过滤器可以存储在存储器模块中,该存储器模块与存储与过滤器相关联的规则子集的存储器一样快或者比它更快。在存储器容量方面,布隆过滤器可以优先于策略的子集。分组过滤设备可以基于分组过滤设备的每个存储器的确定的剩余容量来确定用于存储布隆过滤器或策略的规则子集的存储器模块。分组过滤设备可以优先存储布隆过滤器,使得规则子集可以不因容量原因而取代布隆过滤器。
在步骤3-5中,TIG 200可以(经由网络接口/设备端口)接收至少一个传输中的分组以开始分组过滤过程。在步骤3-6中,从分组中提取可以对应于策略中规则的威胁指标的网络地址和证书相关联标识符(如果有的话)。网络地址可以是L3/IP层分组报头中的源IP地址和/或目的地IP地址、L7/应用层分组中DNS查询请求消息中的域名、L7/应用层分组中的HTTP GET请求方法中URL和域名等。证书相关联标识符可以包括从X.509证书中包含的字段中提取的数据,这些字段可以包含在TLS证书消息中,诸如唯一标识或表征X.509证书的{颁发者名称,序列号}对,以及与颁发证书的证书颁发机构相关联的身份数据,其可包括证书的颁发者名称。
在步骤3-7中,针对从分组提取的每个网络地址和证书相关联标识符(如果有的话),分组过滤设备200可以视情况或基于对相关联的威胁指标的确定,在每个子集布隆过滤器中搜索网络地址或其他标识符,并且可以按照与策略定义的排序相对应的顺序搜索数据。可以进行搜索,直到(T)发现网络地址是布隆过滤器的元素/成员(匹配结果为真),或者直到(F)已经搜索所有布隆过滤器均未成功(不匹配或匹配为假)。基于布隆过滤器搜索的不匹配结果,可以确定网络地址或标识符不是任何布隆过滤器集合的子集的成员,因此,策略中没有将匹配的过滤规则并且没有必须应用的过滤规则操作符。基于不匹配结果(F),在步骤3-8F中,分组过滤设备200可以停止搜索过程,因为已经确定策略中没有具有匹配指标的规则,并且可以使搜索处理返回到步骤3-5以过滤下一个传输中的分组。基于匹配结果(T),在步骤3-8T中,分组过滤设备200可以在与布隆过滤器相关联的策略子集中搜索其中指标与网络地址或标识符匹配的分组过滤规则。在步骤3-9中,分组过滤设备200可以对分组应用过滤规则的动作,并且可以使分组处理返回到步骤3-5以过滤下一个传输中的分组。
如果在步骤3-6中从分组中提取了多个网络地址或证书相关联标识符,则分组过滤设备200可以在步骤3-8中基于与每个网络地址和标识符关联的指标保真度,确定可以在子集布隆过滤器中搜索每个网络地址或标识符的顺序。例如,如果从分组中提取出URL和IP地址,则分组过滤设备200可以在对IP地址进行类似搜索之前在布隆过滤器中搜索URL,因为(通常)URL指标比IP地址指标具有更高的保真度。类似地,如果从分组中提取出证书标识符和证书颁发机构标识符,则分组过滤设备200可以在对证书颁发机构标识符进行类似搜索之前在子集布隆过滤器中搜索证书标识符,因为(通常)证书指标可以比证书颁发机构指标具有更高的保真度。
图4示出了其中当策略被划分为两个子集时TIG 200被配置用于高效分组过滤的实施例和相关联的事件序列,其中与策略相关联的分组过滤规则的划分可以通过指标类型和分组将匹配子集中规则的可能性来确定。时间效率布隆过滤器可以与一个子集相关联,而通用布隆过滤器可以与另一子集相关联。规则的两个子集及其相关联的布隆过滤器都可以存储在同一个存储器模块中。这一例示大体上对应于图3的步骤3-1至3-4。
在步骤4-1中,SPM 120可以(经由网络110,其可以例如为互联网)向TIG的管理接口MGMT I/F 240发送文件,该文件包含将由TIG 200对传输中的分组执行的策略。策略文件可以包括具有策略描述符的报头,该报头可以包括诸如将策略划分为两个子集的划分方案、要应用于每个子集的效率的一种或更多种类型、策略的大小、每个子集的大小、以及每个子集中的指标的类型的信息。在步骤4-2中,MGMT I/F 240可以(经由BUS210)将策略文件传送到TIER-3MEM 233,其可以是低速存储器,诸如本地机械/旋转磁盘(非易失性、相对大容量、相对便宜、相对较慢的读/写访问)。在步骤4-3中,CPU 220可以从TIER-3MEM 233中检索策略文件报头。策略文件报头可以指示如何将策略划分为规则子集、可以应用哪些效率以及可以如何跨多个存储器模块分布子集(如果需要,基于大小信息进行分布)。当CPU 220处理策略报头文件信息时,CPU 220可以将部分信息临时存储在例如TIER-0MEM 230(其可以用片上高速缓存存储器来标识)、以及TIER-1MEM 231(其可以用PCB上的主存储器来标识(未示出))中。
在步骤4-4中,基于策略文件报头信息,CPU 220可以检索分组过滤规则的子集并且可以生成相关联的子集布隆过滤器。例如,CPU 220可以从磁盘233中检索第一子集SS-1,它由具有URL和域名指标的分组过滤规则构成。策略报头信息可以指示应该为第一子集SS-1生成策略范围(policy wide)的时间效率布隆过滤器。CPU 220可以提取第一子集中的所有指标,并且可以将提取的指标数据插入时间效率或策略布隆过滤器B/F-1(其可以针对误报率P进行了配置)。CPU 220可以将布隆过滤器B/F-1与第一子集SS-1相关联,并且可以将布隆过滤器B/F-1与布隆过滤器包含的指标类型(“URL”、“域名”)相关联。在步骤4-5中,CPU220可以分析存储器容量并且可以确定主存储器231具有足够的剩余可用容量来存储布隆过滤器B/F-1及其相关联的第一子集SS-1、以及第二子集SS-2。因此,CPU 220可以将时间效率布隆过滤器B/F-1和第一子集SS-1存储在主存储器231中。
在步骤4-6中,基于策略文件报头信息,CPU 220可以从磁盘233中检索第二子集SS-2,其可以由具有类型IP地址和IP地址范围的指标的分组过滤规则构成。基于确定策略报头信息没有为第二子集SS-2指定特定的子集效率,分组过滤设备可以生成具有类型{“IP地址”,“IP地址范围”}的通用布隆过滤器B/F-2以与SS-2相关联。通用布隆过滤器B/F-2可以与多种威胁指标类型相关。基于对存储器容量的分析,在步骤4-7中,CPU 220可以将通用布隆过滤器B/F-2和第二子集SS-2存储在主存储器231中。当确定策略的每个子集已经被处理或存储时,TIG 200可以确定针对当前策略的分组过滤的配置已经完成。
图5示出了图4中配置的TIG 200的代表性用例和相关联的高效分组过滤过程。这一例示大体上对应于图3的步骤3-5至3-9。例如,在步骤5-1中,操作由附接到网络112的台式计算机130托管的web浏览器的人类用户可以发起与由附接到网络116的服务器134托管的名为www.enterprise-xyz.com的网站的web/HTTP会话。在将DNS中的www.enterprise-xyz.com解析后(例如解析为诸如12.34.56.78的IP地址),计算机130就可以在80/HTTP端口(未在图5中示出)上的130和134之间建立TCP连接。计算机130可以向网站134转发至少一个分组,其中包含对http://www.enterprise-xyz.com的HTTP GET请求(可以默认为主页的URL,例如http://www.enterprise-xyz.com/index.html)。
在步骤5-2中,TIG 200的网络接口212可以接收并摄取传输中的HTTP get域名分组,并且可以经由BUS 210将接收的分组传输到CPU 220进行过滤。CPU 220可以从请求/分组中提取用于分组过滤的数据,诸如(a)域名www.enterprise-xyz.com,和(b)目的地IP地址12.34.56.78。CPU 220可以基于策略规则对提取的数据进行排序并且可以按照由策略定义的指标类型保真度的降序来针对每个指标搜索策略。CPU 220可以基于更高保真度指标(诸如域名www.enterprise-xyz.com)来搜索策略以获得匹配规则。如果确定没有匹配,则CPU 220可以搜索与较低保真度指标(诸如IP地址12.34.56.78)匹配的规则。
在步骤5-3中,CPU 220可以测试与用于分组过滤规则的第一子集SS-1的时间效率布隆过滤器B/F-1相关联(并包含在其中)的指标类型,以确定它们是否匹配www.enterprise-xyz.com的类型(域名)。由于B/F-1包含“域名”和“URL”类型的指标,因此CPU 220可以确定www.enterprise-xyz.com是否是B/F-1的成员。当确定策略的第一子集SS-1不包含具有威胁指标www.enterprise-xyz.com的分组过滤规则时,对www.enterprise-xyz.com进行B/F-1隶属测试返回FALSE或没有匹配值,并且CPU 220可以跳过对分组过滤规则的第一子集SS-1的搜索。对于包括IP地址的分组,CPU 220可以确定与分组过滤规则的第一子集SS-1所相关联的布隆过滤器B/F-1相关联(并包含在其中)的指标类型,以确定它们是否匹配12.34.56.78的类型(IP地址)。由于B/F-1包含“域名”和“URL”类型的指标,CPU 220可以跳过对B/F-1的隶属测试(因此可以跳过SS-1规则的搜索)。
在步骤5-4中,CPU 220然后可以确定与B/F-2(即与分组过滤规则的第二子集SS-2相关联的通用布隆过滤器)相关联的指标类型。由于与B/F-2相关联的指标类型是“IP地址”和“IP地址范围”,因此CPU 220可以跳过针对域名www.enterprise-xyz.com的对B/F-2的隶属测试,也可以跳过对与第二子集SS-2相关联的规则的搜索。对于包括IP地址12.34.56.78的分组,CPU 220可以确定与B/F-2(即与分组过滤规则的第二子集SS-2相关联的布隆过滤器)相关联的指标类型,以确定它们是否匹配12.34.56.78的类型(IP地址)。由于存在指标类型匹配,CPU 220可以确定与分组12.34.56.78相关联的IP地址是否包含在B/F-2中。当B/F-2是通用布隆过滤器时,搜索可以返回TRUE值。CPU 220可以在SS-2的规则的第二子集搜索具有匹配12.34.56.78的指标的分组过滤规则。当找不到匹配时,不会对分组应用任何动作或规则操作符,并且分组可以被转发到其预期目的地。基于确定不匹配,在步骤5-5中,CPU 220可以经由BUS 210将分组传送到网络接口214。在步骤5-6中,网络接口214可以将与分组过滤规则不匹配的分组转发到网络110,朝向目标目的地网站www.enterprise-xyz.com(其由具有IP地址12.34.56.78的服务器134托管)。
在步骤5-7中,操作由附接到网络112的台式计算机131托管的电子邮件应用的人类用户可以点击嵌入在网络钓鱼电子邮件中的URL链接http://www.cyber-threat-network.com/download/malware.exe。基于该动作,计算机131可以通过向附接到网络118的服务器136发送分组来发起与所托管的域名为www.cyber-threat-network.com的网站的web/HTTP会话。在将DNS中的域名www.cyber-threat-network.com解析为诸如87.65.43.21的IP地址后,计算机131就可以在80/HTTP端口上建立计算机131和136之间的TCP连接,并且计算机131可以向主机136转发包含对URL http://www.cyber-threat-network.com/download/malware.exe的HTTP GET请求的分组。在步骤5-8中,TIG 200的网络接口212可以接收并摄取传输中的分组并且可以经由BUS 210将分组传送到CPU 220用于过滤。CPU220可以从请求/分组中提取(a)URL http://www.cyber-threat-network.com/download/malware.exe和(b)目的地IP地址87.65.43.21。CPU 220逻辑可以被配置为在策略中按降低的保真度搜索指标。基于针对与分组相关联的每种类型的威胁指标确定的保真度,CPU 220可以首先在策略中搜索匹配URL(例如http://www.cyber-threat-network.com/download/malware.exe)的规则,然后(如有必要)可以搜索匹配87.65.43.21的规则。
在步骤5-9中,CPU 220可以确定与用于分组过滤规则的第一子集SS-1的布隆过滤器B/F-1相关联(并包含在其中)的指标类型,与所接收的请求/分组相关联的指标类型进行比较,以确定B/F-1指标类型是否与类型URL(例如http://www.cyber-threat-network.com/download/malware.exe)匹配。当B/F-1包含“域名”和“URL”类型的指标时,CPU 220可以确定URL http://www.cyber-threat-network.com/download/malware.exe是否是B/F-1的成员。当策略中的第一子集SS-1确实包含具有威胁指标http://www.cyber-threat-network.com/download/malware.exe的分组过滤规则时,B/F-1隶属测试返回TRUE值。基于B/F-1隶属测试的匹配确定,在步骤5-10中,CPU 220可以搜索分组过滤规则的第一子集SS-1以找到匹配规则。CPU 220应用规则的动作或操作符,其可以是阻止(BLOCK)或丢弃分组。CPU 220然后可以停止其对策略的搜索,并且可以向始发计算机返回一个值,例如TCP RST分组,以终止连接请求(未在图5中示出)。
图6示出了其中当策略可以被划分为两个子集时TIG被配置用于高效的分组过滤的实施例和相关联的事件序列,其中可以基于子集中规则的指标类型和按照分组将与子集中的规则匹配的可能性来确定划分。时间效率或策略布隆过滤器可以与两个子集相关联。子集一起可能太大而不适合放入可用的主存储器231,尽管每个子集本身可以适合放入主存储器231。可以选择匹配规则的可能性较低的子集来存储在具有足够可用容量但可比主存储器231慢的不同存储器模块中。尽管存储器较慢,但由于搜索布隆过滤器的时间效率方法可以避免对子集的每个规则进行不必要的搜索,因此可以保持TIG性能。这一例示大体上对应于图3的步骤3-1至3-4。步骤6-1、6-2、6-3与图4的步骤4-1、4-2、4-3类似,不再重复对接收策略文件的详细描述。
在步骤6-4中,基于策略文件报头信息,CPU 220可以从磁盘233中检索第一子集SS-1,该第一子集可以由具有URL和域名指标的分组过滤规则构成。策略报头信息可以指示应该为第一子集SS-1构建时间效率布隆过滤器,并且CPU 220可以提取第一子集中的所有指标,并且可以将这些指标插入布隆过滤器B/F-1(例如,其已经针对误报率P进行了配置)。CPU 220可以将布隆过滤器B/F-1与第一子集SS-1以及SS-1中包含的规则的指标类型(“URL”、“域名”)相关联。在步骤6-5中,基于策略报头文件信息,CPU 220可以确定主存储器231具有足够的可用容量来存储子集SS-1,但是没有足够的可用容量来同时存储子集SS-1和SS-2两者。由于需要搜索SS-1的可能性较低,CPU 220可以确定SS-1将被存储在辅助存储器模块TIER-2MEM 232(其具有足够的可用容量来存储第一子集SS-1,但比主存储器231慢)。基于容量确定,在步骤6-5A中,CPU 220可以将第一子集SS-1存储在存储器模块232中,并且可以将SS-1的存储器位置与其相关联的布隆过滤器B/F-1相关联。在步骤6-5B中,CPU220可以将布隆过滤器B/F-1存储在主存储器231中。
在步骤6-6中,基于策略文件报头信息,CPU 220可以从磁盘233中检索第二子集SS-2,其可以由具有“IP地址”和“IP地址范围”类型的指标的分组过滤规则构成。策略报头信息可以指示应该为SS-2构建时间效率布隆过滤器。CPU 220可以提取SS-2中的所有指标,并且可以将提取的威胁指标插入布隆过滤器B/F-2(例如,其已经针对误报率P进行了配置)。CPU 220还可以将布隆过滤器B/F-2与第二子集SS-2相关联,并且可以将布隆过滤器B/F与其包含指标的类型(“IP地址”、“IP地址范围”)相关联。在步骤6-7中,CPU 220可以确定主存储器231中有足够可用的内存来存储布隆过滤器B/F-2和第二子集SS-2。基于容量确定,CPU 220可以将B/F-2和子集SS-2的规则存储在主存储器231中。基于确定TIG 200已完成针对所接收策略的高效分组过滤的配置,TIG 200可以开始接收分组并开始使用生成的布隆过滤器过滤这些分组。
图7示出了图6中配置的TIG 200的代表性用例和相关联的高效分组过滤过程。这一例示大体上对应于图3的步骤3-5至3-9。步骤7-1和7-2与图5的步骤5-7和5-8基本相同,有关步骤7-1和7-2接收和摄取分组进行处理的详细描述不再进行重复。在步骤7-3中,CPU220可以确定与用于分组过滤规则的第一子集SS-1的布隆过滤器B/F-1相关联(并包含在其中)的指标类型,以确定指标类型是否匹配http://www.cyber-threat-network.com/download/malware.exe的类型(“URL”)。当B/F-1包含“域名”和“URL”类型的指标时,CPU220可以确定接收的分组的URL http://www.cyber-threat-network.com/download/malware.exe是否是B/F-1的成员。当策略中的第一子集SS-1包含具有威胁指标http://www.cyber-threat-network.com/download/malware.exe的分组过滤规则时,B/F-1隶属测试返回TRUE值。在步骤7-4中,CPU 220可以从B/F-1获得SS-1在TIER-2MEM 232中的存储器位置,并且可以搜索子集SS-1的规则以找到匹配的分组过滤规则(例如具有指标http://www.cyber-threat-network.com/download/malware.exe的规则)。CPU220然后可以应用为该规则指定的动作或操作符,其可以是BLOCK(阻止)或丢弃分组。CPU 220然后可以停止对策略的进一步或并行搜索,并且可以向始发计算机返回指示通信会话已经被阻止或终止的消息或分组(这可以包括例如向始发计算机发送超时消息或TCP RST信号/分组以终止TCP连接)。
图8示出了其中当策略被划分为四个子集时TIG被配置用于高效分组过滤的实施例和相关联的事件序列。四个子集中的三个由空间效率布隆过滤器和相关联的信息表示。第四子集与时间效率布隆过滤器相关联。
分组过滤规则的第一子集SS-1可以由以下所讨论的空间效率概率数据结构或布隆过滤器B/F-1以及相关联信息表示,诸如相关联的威胁指标类型和相关联的规则动作。针对规则的指标是在互联网DNS中注册的所有域名的集合的元素。这些指标包含在DNS布隆过滤器B/F-1中。与SS-1相关联的存储器模块可以是互联网DNS本身,其可以被认为是{域名,IP地址}对的全球分布式数据库。该存储器模块可以用图2和图8的TIER-N+1MEM 239标识。DNS概率数据结构B/F-1可以与两个规则动作相关联。作为第一个规则,当隶属测试返回TRUE值时(例如,当前域名已在DNS中注册),则相关联的规则的动作或操作符是条件操作。如果当前分组包含DNS查询请求(以将域名解析为IP地址),则规则动作是应用分组转换函数,该函数将包含DNS查询请求的分组转换为包含DNS查询响应的分组(例如将域名解析为IP地址)。可以通过将当前包含DNS查询请求的分组转发到互联网DNS(其将生成相应的DNS查询响应(分组))来完成该分组转换。如果当前分组确定了ELSE条件(例如,分组不包含DNS查询请求),则动作可以为空,这可以发信号通知分组过滤逻辑继续搜索策略的包括附加布隆过滤器和规则子集的其余部分。如果当前分组不是DNS查询请求,则跳过与B/F-1相关联的隶属测试(以及B/F-1分组过滤规则的后续应用)可能是合适的。当隶属测试返回FALSE时(例如域名未在DNS中注册),则相关联的规则的动作也可以是条件动作。当隶属测试返回FALSE时并且如果当前分组确实包含DNS查询请求(以将域名解析为IP地址),则规则动作可以是丢弃该分组并(任选地)应用分组转换函数,该函数生成包含具有RCODE=3(NXDOMAIN或不存在的互联网或内联网域名的其他指示)的相应DNS查询响应的分组,并将该分组发送到源主机以终止请求。当隶属测试返回FALSE并且结果是ELSE响应从而表明当前分组不包含DNS查询请求时,动作可以是空操作,这可以发信号通知分组过滤逻辑继续搜索策略的其余部分,包括附加规则子集及其相关联的过滤器。
第二子集和第三子集(分别为SS-2和SS-3)也分别由空间效率布隆过滤器B/F-2和B/F-3(和相关联的信息)表示。出于示例目的,假设B/F-2和B/F-3都衍生自单个CTI提供者的域名列表(并且由此任何相应的规则可以具有相同的威胁元数据),但每个相应的分组过滤规则只有单个动作:BLOCK动作(例如丢弃分组的操作)或MONITOR(监控)动作(例如允许/转发分组的操作,但也可以记录和捕获分组以用于可能的后续威胁分析)中的任一个。SS-2可以包含具有BLOCK动作的所有规则,并且相应地相关联的B/F-2可以包含或表示针对具有BLOCK动作的规则的所有指标。SS-3可以包含具有MONITOR动作的所有规则,并且相应地B/F-3可以包含针对具有MONITOR动作的规则的所有指标。因此,任何对B/F-2测试的TRUE结果的确定都可以导致应用BLOCK动作,并且可以将CTI提供者和相关联的威胁元数据以及分组和环境数据存储为威胁事件的日志(用于后续例如在网络分析应用中使用)。类似地,任何对B/F-3测试的TRUE结果的任何确定都可以导致应用MONITOR动作,并且可以将CTI提供者和相关联的威胁元数据以及分组和环境数据存储为威胁事件的日志。针对B/F-2和B/F-3两者的假规则可以导致应用空操作或动作,这可以发信号通知分组过滤逻辑继续搜索策略以找到匹配规则。与B/F-2相关联的误报率P2可以被限制为(远)小于/低于与B/F-3相关联的误报率P3。由于规则子集SS-2仅由BLOCK规则构成,因此B/F-2的误报/TRUE隶属测试结果意味着当前分组可能会在不应该被阻止/丢弃的情况下被阻止/丢弃,而在假设当前分组是受保护网络的合法业务通信的一部分的情况下这是非常不期望的。由于规则子集SS-3仅由MONITOR规则构成,因此误报/TRUE隶属测试结果不会导致合法业务流量的丢弃/阻止。在实践中,误报率P2可以是例如1/1012(万亿分之一)。也就是说,例如,预计只有万亿分之一的合法HTTP GET请求可能被错误丢弃,这种事件在实践中可能永远不会发生;而误报率P3的典型值可能是例如1/103(千分之一)或1/106(百万分之一)。如以上所讨论的,布隆过滤器的较低误报率P的系统成本是存储器空间要求的增加。然而,存储器空间要求可以随着误报率P的对数而变化。因此,对于具有1/1012误报率的N个元素集合的布隆过滤器只需要两倍于具有误报率1/106的相同N个元素集合的布隆过滤器的存储器空间,即使误报率相差一百万倍。这些决策可以基于与分组过滤设备中提供的每个存储器相关联的容量阈值做出,并且作为针对空间效率布隆过滤器选择误报率的示例。第四子集SS-4可以包括具有“IP地址”类型的指标的分组过滤规则。指标可以包含在由策略管理器SPM 120计算的时间效率布隆过滤器B/F-4中。第四子集SS-4可以不使用空间效率布隆过滤器来表示。
可以如下选择误报率。误报是不期望的,因此相对较低的误报率是可取的。所公开的系统和方法的有益效果之一是提高了存储器/存储空间使用的效率;但是因为布隆过滤器的大小(例如存储器/空间要求)随着误报率的降低而增加,所以(相反)误报率不必要地过低是不可取的。因此,要选择误报率,系统应考虑误报的不利影响。对于时间效率布隆过滤器,误报的不利影响是不必要地搜索分组过滤规则的相关联子集,因此存在(小)时间/延时成本;但是,由于不会找到误报的匹配规则,因此不会(错误地)对当前分组应用任何动作并且不利影响只是响应延迟。然而,对于空间效率布隆过滤器,误报的不利影响是匹配规则的动作将被错误地应用于当前分组。如果动作是阻止/丢弃(合法)分组,或以其他方式修改/转换分组,则误报的不利影响可被认为是显著不利的。如果动作是允许(合法)分组但记录并捕获它的副本以供后续网络分析,那么不利影响就不那么严重了。考虑到所有这些因素,选择误报率的方法将按以下方式选择,即使得(1)时间效率布隆过滤器的误报率可以高于空间效率布隆过滤器的误报率;(2)空间效率或子集布隆过滤器的误报率可以部分由相关联的动作确定:(a)当动作导致当前传输中的分组被丢弃/阻止时,误报率应该相对较低,并且也应该绝对低到使得在实践中误报可能永远不会发生(例如,1/1012,或万亿分之一);(b)当动作不会导致当前传输中的分组被丢弃/阻止时,误报率可以相对较高,但也相对低于时间效率布隆过滤器的误报率。最后,通用布隆过滤器的误报率可以未定义,因此可能不需要为通用布隆过滤器选择速率。
图8中的例示通常对应于图3的步骤3-1至3-4。在步骤8-0中,{域名,IP地址}对可以持续存储在全球分布式互联网DNS中,其由存储器模块TIER-N+1MEM 239表示。步骤8-1、8-2、8-3与图4的步骤4-1、4-2、4-3基本类似,在此将不再重复对这些步骤的详细描述。在步骤8-4中,基于策略文件报头信息,CPU 220可从磁盘233中检索第一子集SS-1。如以上所讨论的,SS-1由空间效率布隆过滤器B/F-1和相关联的信息表示,其可以包括用于处理逻辑的规则动作和元数据。基于B/F-1的最后更新时间,B/F-1可以包含所有(当前)在互联网DNS中注册的域名。在步骤8-5中,当确定主存储器231中有足够的可用容量时,CPU 220可以将B/F-1和相关联的信息存储在TIER-1MEM 231中。
在步骤8-6中,基于策略文件报头信息,CPU 220可以从磁盘233中检索两个规则子集SS-2和SS-3。如以上所讨论的,SS-2和SS-3可以由空间效率布隆过滤器B/F-2和B/F-3以及相关联的信息表示。在步骤8-7中,当确定主存储器231中有足够的可用容量时,CPU 220可以将B/F-2和B/F-3以及相关联的信息存储在TIER-1MEM 231中,信息可以包括用于SS-2和SS-3的规则。在步骤8-8中,基于策略文件报头信息,CPU 220可以从磁盘233中检索子集SS-4并且可以计算时间效率布隆过滤器B/F-4,其包含与SS-4中的分组过滤规则相关联的所有指标(“IP地址”类型)。在步骤8-9中,当确定主存储器231中有足够的可用容量时,CPU220可以将B/F-4和SS-4存储在TIER-1MEM 231中。TIG 200然后可以被配置用于针对当前策略的高效分组过滤并且可以开始处理分组。
图9示出了图8中配置的TIG 200的代表性用例和相关联的高效分组过滤过程。这一例示大体上对应于图3的步骤3-5至3-9。
例如,在步骤9-1中,操作由附接到网络112的台式计算机131托管的电子邮件应用的人类用户可能点击网络钓鱼电子邮件中的URL链接http://www.cyber-threat-network.com/download/malware.exe。计算机131可以发起与名为www.cyber-threat-network.com的网站的web/HTTP会话,该网站由附接到网络118的服务器136托管。然而,在计算机131可以连接到网站之前,台式计算机131可能需要将域名www.cyber-threat-network.com解析为IP地址。因此,计算机131可以生成并向互联网DNS服务转发包含DNS查询请求的分组(以将www.cyber-threat-network.com解析为其IP地址)。可包含在L3/IP报头中的分组的目的地IP地址字段值(例如18.27.36.45)可以是计算机131已被配置为联系DNS服务的DNS服务器的IP地址。L4/TCP报头中分组的目的地端口可能是53,即DNS服务的端口。在步骤9-2中,TIG 200的网络接口212可以接收并摄取传输中的分组并且可以经由BUS210将分组传送到CPU 220用于过滤。CPU 220可以从DNS查询请求中提取(a)域名www.cyber-threat-network.com,以及(b)目的地IP地址18.27.36.45。分组过滤逻辑可以被配置为在过滤IP地址指标之前过滤域名指标。因此,域名www.cyber-threat-network.com可以首先通过策略进行过滤。
在步骤9-3中,CPU 220可以检查与包含当前在互联网DNS中注册的所有域名的(空间效率)布隆过滤器B/F-1相关联(并包含在其中)的指标类型,以确定布隆过滤器指标类型是否与www.cyber-threat-network.com的类型(“域名”)相匹配。由于B/F-1包含“域名”类型的指标,因此CPU 220检查域名www.cyber-threat-network.com是否是B/F-1的成员。当www.cyber-threat-network.com已在互联网DNS中注册时,隶属测试可以返回TRUE结果。在步骤9-4中,CPU 220可以通过(经由网络接口214)将包含请求的分组发送到由TIER-N+1MEM239表示的互联网DNS,来将包含DNS查询请求的分组转换为包含相应DNS查询响应的分组。CPU 220可以停止对策略的搜索。在步骤9-5中,互联网DNS可以生成包含相应DNS查询响应的分组,该分组可以包括域名www.cyber-threat-network.com的解析IP地址(例如87.65.43.21),并且可以将该分组发送到主机131。
在步骤9-6中,在DNS中解析www.cyber-threat-network.com,并且在计算机131和主机136之间在80/HTTP端口建立TCP连接(在没有匹配情况下通过TIG 200策略有效过滤分组)后,计算机131可以向136转发包含对http://www.cyber-threat-network.com/download/malware.exe的HTTP GET请求的分组。在步骤9-7中,TIG 200的网络接口212可以接收并摄取传输中的分组并且可以经由BUS 210将所接收的分组传送到CPU 220用于过滤。CPU 220可以从分组中提取(a)URL http://www.cyber-threat-network.com/download/malware.exe,(b)域名www.cyber-threat-network.com,以及(c)目的地IP地址87.65.43.21。CPU220逻辑可以被配置为在策略中以降低保真度的顺序搜索指标,因此,CPU220可以首先在策略中搜索匹配URL http://www.cyber-threat-network.com/download/malware.exe的规则,然后搜索域名www.cyber-threat-network.com,然后搜索IP地址87.65.43.21。
在步骤9-8中,CPU 220可以确定与用于分组过滤规则的第一子集SS-1的布隆过滤器B/F-1相关联(并包含在其中)的指标类型,以确定它们是否与URL http://www.cyber-threat-network.com/download/malware.exe的指标类型(即“URL”)匹配。当B/F-1包含“域名”(而不是“URL”)类型的指标时,CPU 220可以跳过对B/F-1的隶属测试(并且由此跳过对SS-1的搜索)。类似地,可以在没有类型匹配的情况下针对B/F-2、B/F-3和B/F-4检查指标类型。因此,当不存在具有匹配http://www.cyber-threat-network.com/download/malware.exe的指标的规则时,可以不搜索该策略。在步骤9-9中,CPU可以在策略中搜索指标匹配域名www.cyber-threat-network.com的规则。对B/F-1的隶属测试可能会返回TRUE值(例如www.cyber-threat-network.com已在DNS中注册)。当前分组不是DNS查询请求时,根据B/F-1的隶属测试的匹配指示,不会应用任何规则动作,并且策略搜索可以继续。当(空间效率)B/F-2中的隶属测试返回TRUE(例如,存在具有匹配http://www.cyber-threat-network.com/download/malware.exe的指标的规则),并且相关联的规则动作为BLOCK时,可以丢弃该分组,这可以阻止恶意软件下载的发生。
图10示出了图8中配置的TIG 200的代表性用例和相关联的高效分组过滤过程。在这一配置中,TIG 200可以检测并可以处理包含未在DNS中注册的域名的虚假DNS查询请求。这一例示大体上对应于图3的步骤3-5至3-9。附接到(不安全的)网络116的主机135可能已被劫持以充当敏感数据的收集服务器,这些敏感数据可能会使用DNS隧道方法而被泄露/窃取,DNS隧道方法使用虚假DNS查询请求来泄露信息。然而,与主机135相关联的IP地址或任何域名都可能不为CTI提供者所知,因此TIG 200可能尚未配置有用于检测主机135与附接到网络112的主机之间的通信的CTI衍生的分组过滤规则。附接到(安全)网络112的主机130可能会受到恶意软件的损害,该恶意软件收集敏感的公司信息,例如,由主机130管理的信用卡号。恶意软件可能会尝试使用DNS隧道将此信息泄露给主机135。
在步骤10-1中,在主机130上执行的恶意软件可能会发送寻址到主机135(具有IP地址,例如45.36.27.18)和目的地端口53(DNS)的分组,该分组可能包含带有(虚假)域名“visa5234334164939009.www.legit-domain.com”的DNS查询请求,其中实际上包含了信用卡号。在步骤10-2中,TIG 200的网络接口212可以接收并摄取传输中的分组并且可以经由BUS 210将分组传送到CPU 220用于进行过滤。CPU 220可以从DNS查询请求中提取(a)域名visa5234334164939009.www.legit-domain.com,和(b)目的地IP地址45.36.27.18。分组过滤逻辑可能已被配置为在过滤IP地址指标之前过滤域名指标。因此,可以首先通过策略过滤visa5234334164939009.www.legit-domain.com。
在步骤10-3中,CPU 220检查与包含当前在互联网DNS中注册的所有域名的(空间效率)DNS布隆过滤器B/F-1相关联(并包含在其中)的指标类型,以确定它们是否与visa5234334164939009.www.legit-domain.com的类型(“域名”)相匹配。由于B/F-1包含“域名”类型的指标,因此CPU 220可以检查域名visa5234334164939009.www.legit-domain.com是否是B/F-1的成员。由于虚假域名visa5234334164939009.www.legit-domain.com尚未在互联网DNS中注册,因此隶属测试返回FALSE值。在步骤10-4中,CPU 220可以应用与针对DNS查询请求测试B/F-1的FALSE结果相关联的操作符或动作。假结果动作可能是(a)丢弃包含针对visa5234334164939009.www.legit-domain.com的DNS查询请求的当前分组,从而防止泄露/DNS隧道攻击;(b)应用分组转换函数,其生成包含RCODE=3(NXDOMAIN)的相应DNS查询响应的分组;以及(c)可以向主机131发送DNS查询响应。基于对B/F-1测试的FALSE结果,CPU 220可以停止对策略的搜索。
图11示出了高效TIG的代表性用例,其可以保护互联网DNS免受使用虚假DNS请求作为攻击途径的DDoS攻击类型。用例的环境由图1表示。分别保护网络112和114的TIG 200和250可以按与图8中相同的方式被配置有相同的策略。回顾一下,图8中配置的策略包括由空间高效的DNS概率数据结构(诸如布隆过滤器B/F-1)以及包含当前在互联网DNS中注册的所有域名的相关信息表示的子集SS-1。对互联网DNS的一种类型的攻击是DDoS攻击,其中许多分布在全球的受恶意软件感染的端点可能会发送许多虚假的DNS查询请求来解析未在DNS中注册的域名。恶意软件可能使用域名生成算法(DGA)来随机生成域名,例如q0e8vqq0y8n.www.legit-site.net,其不太可能匹配注册的域名。DNS可能会搜索其分布式数据库以尝试解析这些(无法解析的)请求。如果这些虚假请求的数量足够多,那么DNS会花费其(大量)大部分资源来尝试满足虚假请求,同时对合法请求的服务不足,从而拒绝为合法请求提供服务。由于许多流行的应用(例如web)都依赖于DNS来运行,因此对DNS的成功DDoS攻击会导致对依赖于DNS的应用的成功攻击。
DNS基础设施提供者网络(诸如网络114)被设计和配置为接收许多DNS查询请求以通过例如DNS名称服务器132和133提供服务;因此,在使用虚假DNS请求作为攻击途径对DNS进行DDoS攻击期间,此类网络可能会收到许多此类虚假DNS请求。TIG 250可以如图8中那样配置以保护网络114和互联网DNS的某些部分免受这些虚假请求的影响,同时继续为合法DNS请求提供服务,从而缓解DDoS攻击。此外,如图8中那样配置并保护网络112的TIG 200可以防止可由例如附接到网络112的受恶意软件感染的主机131发出的虚假DNS请求被传输到互联网(在图1中用网络110标识)中并攻击DNS。
可附接到(受TIG保护的)网络112的主机131和可附接到(未受保护的)网络116的主机134和135可能被恶意软件感染,该恶意软件可在受到例如附接到(由恶意主体操作的)网络118的主机136的命令时发出虚假的DNS请求。进一步地,图1的联网环境的DNS基础设施(未示出)可以被配置为使得源自附接到网络112和116的主机的DNS查询请求由附接到网络114的DNS名称服务器132和133提供服务。例如,服务器132和133可以配置为域example-132.net和example-133.net的授权名称服务器,在这种情况下,对域名(包括example-132.net和example-133.net)的DNS查询请求可以路由到服务器132和133。
在步骤11-1中,主机134可以生成虚假DNS查询请求并向DNS服务器132发送虚假DNS查询请求以解析域名ppk6h0ec.www.example-132.net。在步骤11-2中,主机135可以生成并向DNS服务器132发送虚假DNS查询请求以解析域名61kwrari.www.example-132.net,该请求可与来自主机134的请求同时发送。在步骤11-3中,主机130可以生成并向DNS服务器132发送合法的DNS查询请求以解析域名www.example-132.net,该请求可与来自其他主机的请求同时发送。在步骤11-4中,主机131可以生成并向DNS服务器133发送用于解析域名hyqlyn2c.www.example-133.net的虚假DNS查询请求,该请求可与来自其他主机的请求同时发送。
在步骤11-5中,TIG 200(a)可以接收和摄取来自130的合法DNS查询请求,(b)可以测试B/F-1以确定域名www.example-132.net在DNS中注册,以及(c)向DNS服务器132转发DNS查询请求。在步骤11-6中,TIG 200(a)可以接收并摄取来自131的虚假DNS查询请求,(b)可以测试DNS概率数据结构B/F-1,以确定虚假域名hyqlyn2c.www.example-133.net未在DNS中注册,(c)可以丢弃DNS查询请求(分组),(d)可以决定生成/欺骗(spoof)具有RCODE=3(NXDOMAIN)的相应DNS查询响应,以及(e)可以将DNS查询响应发送回源主机131。在步骤11-7中,TIG 250(a)可以接收并摄取来自134的虚假DNS查询请求,(b)可以测试B/F-1以确定虚假域名ppk6h0ec.www.example-132.net未在DNS中注册,(c)可以丢弃DNS查询请求(分组),(d)可以决定欺骗/生成具有RCODE=3(NXDOMAIN)的相应DNS查询响应,以及(e)可以将DNS查询响应发送回源主机134。在步骤11-8中,TIG 250(a)可以接收并摄取来自135的虚假DNS查询请求,(b)可以测试B/F-1以确定虚假域名61kwrari.www.example-132.net未在DNS中注册,(c)可以丢弃DNS查询请求(分组),(d)可以决定生成具有RCODE=3(NXDOMAIN)的相应DNS查询响应,以及(e)可以将DNS查询响应发送回源主机135。
在步骤11-9中,TIG 250(a)可以接收和摄取来自130的合法DNS查询请求,(b)可以测试B/F-1以确定域名www.example-132.com在DNS中注册,以及(c)可以向DNS服务器132转发DNS查询请求。在步骤11-10中,DNS服务器132(a)可以从130接收DNS查询请求以解析www.example-132.com,(b)可以通过在DNS中搜索分配给www.example-132.com的IP地址12.34.56.78来为请求提供服务,(c)可以生成相应的DNS查询响应,以及(d)可以将DNS查询响应发送回源主机130。基于对域名B/F-1的测试,TIG 200和250可以防止虚假DNS查询请求消耗/浪费任何尝试解析未注册域名的DNS资源。可以补救/防止拒绝服务攻击。因此,DNS可以完全用于服务合法的DNS查询请求。
图12示出了其中当策略被划分为三个子集时TIG可以被配置用于高效分组过滤的实施例和相关联的事件序列,其中划分由指标的类型和规则的分组转换函数的类型确定。时间效率布隆过滤器可以与整个集合相关联,也可以与所有三个子集的并集相关联。每个子集可以与空间效率布隆过滤器相关联(并由其表示)。所有布隆过滤器都可以有一个误报率值,该值已基于布隆过滤器的类型(例如时间效率或空间效率)和基于与子集中规则关联的分组转换函数的类型(例如BLOCK或MONITOR)选择。子集和相关联的布隆过滤器可以存储在相同的存储器模块中。这一例示大体上对应于图3的步骤3-1至3-4。
在步骤12-1中,SPM 120可以(经由网络110,其可以例如用互联网来标识)向TIG的管理接口MGMT I/F 240发送文件,该文件包含将由TIG200对传输中的分组执行的下一个策略。策略文件可以包括具有策略描述符的报头,该报头可以包括诸如分组过滤规则集合到子集的划分方案、要应用于每个子集的效率的一种或多种类型、策略的大小、每个子集的大小、以及每个子集中的指标的类型的信息。
在步骤12-2中,MGMT I/F 240可以(经由BUS 210)将策略文件传送到TIER-3MEM233,其可以用本地机械/旋转磁盘(非易失性、相对大容量、相对便宜、相对较慢的读/写访问)来标识。在步骤12-3中,CPU 220可以从磁盘233中检索策略文件报头。策略文件报头可以指示如何将策略划分为规则子集、可以应用哪些效率以及可以如何跨多个存储器模块分布子集(如果需要,基于大小信息)。当CPU 220处理策略报头文件信息时,CPU可以将部分信息临时存储在存储器的其他部分中,诸如可以用片上高速缓存存储器识别的TIER-0MEM230,以及可以用PCB上的主存储器来识别的TIER-1MEM 231。这些临时存储事件未显示。
策略描述符数据可以指定多个信息。策略描述符数据可以指定SS-1是分组过滤规则的子集,其中每个规则可以包括(a)证书标识符(Certificate-Identifier)类型的威胁指标,其为{CA标识符,序列号}对;(b)BLOCK分组操作符或转换函数;以及(c)威胁元数据,诸如“<威胁类型=撤销的证书>”。SS-1可以编码为使用误报率P=10-12的空间效率布隆过滤器B/F-1。策略描述符数据可以指定SS-2是分组过滤规则的子集,其中每个规则可以包括(a)域名类型的威胁指标;(b)BLOCK分组操作符或转换函数;以及(c)威胁元数据,诸如“<威胁类型=证书网络钓鱼站点>”。SS-2可以编码为使用误报率P=10-12的空间效率布隆过滤器B/F-2。策略描述符数据可以指定SS-3是分组过滤规则的子集,其中每个规则可以包括(a)域名类型的威胁指标;(b)MONITOR分组操作符或转换函数;以及(c)威胁元数据,诸如“<威胁类型=恶意软件CDN>”。SS-3可以编码为使用误报率P=10-6的空间效率布隆过滤器B/F-3。策略描述符数据可以指定时间效率布隆过滤器B/F-ALL,它与SS-1、SS-2和SS-3中的所有威胁指标相关联并包含所有威胁指标,并且具有误报率P=10-3
在步骤12-4中,基于策略文件报头信息,CPU 220可从磁盘233中检索第一子集SS-1。CPU 220可以提取SS-1中的所有指标(证书标识符类型),并且可以将指标同时插入到空间效率布隆过滤器B/F-1(误报率P=10-12)和时间效率布隆过滤器B/F-ALL(误报率P=10-3)两者。CPU 220可以将布隆过滤器B/F-1与分组转换函数BLOCK、威胁元数据“<威胁类型=撤销的证书>”以及指标类型证书标识符相关联。CPU 220可以将指标类型证书标识符与B/F-ALL相关联。在步骤12-5中,CPU 220可确定主存储器231具有足够的剩余可用容量来存储布隆过滤器B/F-1(其代表SS-1)。基于容量确定,CPU 220可以将空间效率布隆过滤器B/F-1存储在主存储器231中。
在步骤12-6中,基于策略文件报头信息,CPU 220可以从磁盘233中检索第二子集SS-2。CPU 220可以提取SS-2中的所有指标(域名类型),并且可以将指标同时插入到空间效率布隆过滤器B/F-2和时间效率布隆过滤器B/F-ALL两者。CPU 220可以将布隆过滤器B/F-2与分组转换函数BLOCK、威胁元数据“<威胁类型=证书网络钓鱼站点>”以及指标类型域名相关联。CPU 220可以将指标类型域名与B/F-ALL相关联。在该操作之后,B/F-ALL与两种类型的指标(证书标识符和域名)相关联。在步骤12-7中,CPU 220可确定主存储器231具有足够的剩余可用容量来存储布隆过滤器B/F-2(其代表SS-2)。基于容量确定,CPU 220可以将空间效率布隆过滤器B/F-2存储在主存储器231中。
在步骤12-8中,基于策略文件报头信息,CPU 220可以从磁盘233中检索第三子集SS-3。CPU 220可以提取SS-3中的所有指标(域名类型的),并且可以将指标同时插入到空间效率布隆过滤器B/F-3和时间效率布隆过滤器B/F-ALL两者。CPU 220可以将布隆过滤器B/F-3与分组转换函数MONITOR、威胁元数据“<威胁类型=恶意软件CDN>”以及指标类型域名相关联。CPU 220可以确定指标类型域名已经与B/F-ALL相关联,如以上步骤12-6中所讨论的。在步骤12-9中,CPU 220可确定主存储器231具有足够的剩余可用容量来存储布隆过滤器B/F-3(其代表SS-3)。基于容量确定,CPU 220可以将空间效率布隆过滤器B/F-3存储在主存储器231中。在步骤12-10中,CPU 220可以确定主存储器231具有足够的剩余可用容量来存储布隆过滤器B/F-ALL(其包含SS-1、SS-2和SS-3中的所有威胁指标)。因此,CPU 220可以将时间效率布隆过滤器B/F-ALL存储在主存储器231中。基于确定策略的所有规则子集已处理,可以确定TIG 200被配置为针对当前策略进行有效的分组过滤并且可以开始接收分组以进行过滤。
图13示出了图12中配置的TIG 200的代表性用例和相关联的高效分组过滤过程。这一例示大体上对应于图3的步骤3-5至3-9。图13中使用的TLS协议的版本大体上可以对应于TLS 1.2。
例如,在步骤13-1中,操作由附接到网络112的台式计算机130托管的网络浏览器的人类用户可以发起与域名为www.enterprise-xyz.com的网站的(安全的)web/HTTPS会话,该网站由附接到网络116的服务器134托管。主机130可以将DNS中的www.enterprise-xyz.com解析为IP地址(例如12.34.56.78),并且可以在端口443/HTTP上建立130和134之间的TCP连接(未在图13中示出)。CPU 220可以通过从这些分组的L3报头中提取IP地址并搜索策略来过滤这些分组;然而,当B/F-ALL不包含任何IP地址指标时,CPU 220可以不在策略中搜索这些IP地址。计算机130可以通过向网站134转发包含TLS ClientHello消息的分组来发起TLS隧道设置握手。
在步骤13-2中,TIG 200的网络接口212可以接收并摄取传输中的分组并且可以经由BUS 210将其传送到CPU 220用于过滤。CPU 220可以从ClientHello消息中的SNI字段中提取域名www.enterprise-xyz.com。在步骤13-3中,CPU 220可以确定过滤器B/F-ALL是否包含域名类型的指标,这可以返回TRUE值。CPU 220可以测试www.enterprise-xyz.com是否是B/F-ALL的成员,这可能会返回FALSE值。基于指示域名不在策略中的假值,CPU 220可以跳过对策略的搜索。在步骤13-4中,CPU 220可以经由BUS 210将分组传送到网络接口214。在步骤13-5中,网络接口214可以将分组转发到网络110中朝向目标目的地网站www.enterprise-xyz.com,其可以由具有IP地址12.34.56.78的服务器134托管。服务器134可以在端口443接收和摄取分组,可以处理ClientHello消息,并且可以通过将包含TLSServerHello消息的分组发送回主机130来响应ClientHello(未在图13中示出)。
在步骤13-6中,主机134可以向主机130发送包含TLS证书消息的分组。分组可由TIG(经由网络接口214)接收和摄取并由CPU 220处理。CPU 220可以从证书中提取“颁发者名称”和“序列号”值并将这些值与证书ID相关联。在步骤13-7中,CPU 220可以确定B/F-ALL是否包含与过滤分组相关联的证书标识符类型的指标,这可能返回TRUE结果。CPU220可以确定B/F-ALL是否包含与过滤分组相关联的证书ID,这可能返回TRUE结果。基于TRUE结果,CPU 220可以测试与B/F-ALL相关联的规则以确定与被测试的分组数据相关联的任何规则和操作。在步骤13-8中,CPU 220可以确定B/F-1是否包含证书标识符类型的指标,这可能返回TRUE结果。基于TRUE结果,CPU 220可以确定B/F-1是否包含证书ID,这可能返回TRUE结果。基于与证书ID相关联的TRUE结果,可以确定www.enterprise-xyz.com的证书已被颁发证书的证书颁发机构撤销,并且系统可以确定站点管理员尚未获得并安装新的(未撤销的)证书。
在步骤13-9中,CPU 220可以应用与B/F-1相关联的分组转换函数BLOCK,这可以导致分组被丢弃,并且可以导致TCP RST分组被(经由网络接口212)发送到主机130以终止TCP连接,从而停止TLS隧道设置握手过程。
根据本公开,可以与图1类似的图14描绘了代表性网络环境100。网络环境100可以包括DNS攻击预防系统,其用于保护互联网络(诸如公共互联网和可以通过公共互联网互连的专用网络)的域名系统(DNS)免受可使用虚假DNS请求作为攻击途径的攻击。与图1一样,网络110可以是公共互联网,其可以将网络112、114、116、118和120(其可以与关于图1描述的那些相同或相似)进行互联。
网络112可以是具有多个主机的私有企业网络。多个主机可以包括至少一个“物联网”(IoT)设备IOT 140,诸如可以经由互联网远程管理和操作的安全相机或装置,并且包括个人可识别信息(PII)主机PII 141。主机IOT 140和附接到网络112的其他IoT设备(未示出)可能已经感染了恶意软件,该恶意软件可以通过发出许多具有旨在攻击特定授权名称服务器(诸如附接到网络116的主机NS 144,如下所述)的域名的虚假DNS请求来生成对DNS的攻击。主机PII 141代表管理敏感信息(诸如个人可识别信息(PII)、信用卡信息等)的个人计算机或服务器。主机PII 141可能被收集信用卡信息的恶意软件感染,并且受感染的主机可能使用DNS隧道方法将信息泄露给附接到网络170的收集服务器CSVR 148(如下所述)。这两种攻击均可能发出具有未在DNS中注册的域名的请求。
网络114和附接的主机IOT 142和PII 143可以与网络112和主机IOT140和PII 141进行类似的配置并受到类似的损害。然而,网络114可以配置有DNS网守DNS-G/K 150,其位于网络114和互联网110之间的边界处或附近。网络114可以被配置为使得DNS-G/K 150过滤所有跨越网络114边界的DNS请求并且可以控制哪些DNS请求可以访问DNS。
网络116可以由DNS基础设施提供者组织DIPO-X操作。授权名称服务器NS 144和NS145可以是域example-144.com和example-145.com的DNS授权名称服务器,DIPO-X可以代表相关注册组织运行。名称服务器NS 144和NS 145都可以被配置为向已授权的请求者提供它们的区域文件,该区域文件可以包括这些服务器管理的所有注册域名的列表。网络116可以具有位于网络116和互联网110之间的边界处或附近的DNS网守DNS-G/K 180。网络116可以配置为使得DNS网守DNS-G/K 180过滤所有跨越边界的DNS请求,并且可以控制哪些DNS请求可以访问example-144.com的DNS名称服务器(授权名称服务器NS 144)和example-145.com的DNS名称服务器(授权名称服务器NS 145)。
网络118可以由DNS基础设施提供者组织(例如,DIPO-Y)操作。主机授权名称服务器NS 146和NS 147可以是域example-146.com和example-147.com的DNS授权名称服务器,DIPO-Y可以代表相关注册公司运行。名称服务器NS 146和NS 147都可以被配置为向已授权的请求者提供它们的区域文件,该区域文件可以包括这些服务器管理的所有注册域名的列表。网络118不需要具有DNS网守来控制哪些DNS请求可以访问example-146.com的DNS名称服务器(授权名称服务器NS 146)和example-147.com的DNS名称服务器(授权名称服务器NS147)。
网络170可能被至少一个恶意主体操作。网络170可以包括可以收集通过虚假DNS请求泄露的数据的收集服务器主机CSVR 148,并且可以包括僵尸网络命令和控制主机系统CNC 149,其可以执行指示受感染设备对DNS发起DDoS攻击的僵尸网络命令和控制过程。在收集服务器CSVR 148上执行的恶意数据收集过程可以在端口53(即众所周知的DNS端口)上接收虚假DNS请求。对于以下示例,收集服务器CSVR 148的公共IP地址可以是21.43.65.87。与网络170相关联的网络防火墙(未示出)可以被配置为允许具有收集服务器CSVR 148的目的地IP地址21.43.65.87和目的地端口53的入站(inbound)分组。网络170可能没有DNS网守来控制对DNS的访问。
可以充当系统管理服务器的布隆过滤器DNS过滤器管理器(DFM)160可以作为附接到与互联网110交接的专用网络(未示出)的主机来执行。DFM 160可以从所有DNS授权名称服务器(诸如DNS授权名称服务器NS 144-147)和/或从相关联的域列表聚合器(未在图1中示出)以及从其他注册域名的源连续收集注册域名的列表。DFM 160可以编码所有注册的域名并且可以将所有注册的域名存储在至少一个数据结构DNS-REG中,并且每个布隆过滤器DNS-REGPX可以具有相关联的误报率PX。DFM 160可以将数据结构或布隆过滤器分发给订阅DNS网守(例如,DNS-G/K 150和DNS-G/K 180)。
DFM 160还可以包括用于管理由订阅DNS网守(例如,DNS-G/K 150和180)提供或上传的信息的功能。这一信息可以包括订阅DNS网守DNS-G/K 150和180检测到的未注册域名和相关联的元数据(例如,攻击类型估计、时间戳、速率估计、源主机、DNS-G/K ID等),它们可用作确定或检测其他攻击的威胁情报。该信息还可以包括关于由DNS-G/K 150和180观察到的DNS请求和响应的统计数据以及DNS-G/K 150和180的元素管理信息。DFM 160还可以包括用于将从DNS-G/K 150和180收集的信息提供给订阅应用(未在图1中示出)的功能,订阅应用诸如威胁情报提供者、网络分析应用、网络元件管理器、DNS监控应用、DNS保护应用、互联网保护应用等。
图14(以及下文讨论的图15)中所示的DNS-G/K 150和DNS-G/K 180可以但不必是网络设备(诸如TIG 200和/或TIG 250)的全部或部分。通常,DNS-G/K 150和DNS-G/K 180可以在任何计算设备上执行,包括但不限于上文或下文讨论的那些计算设备。
图15示出了支持本公开的各方面的DNS-G/K 150和/或DNS-G/K 180的代表性系统组件图。图15所示的DNS-G/K 150可以与图1所示的DNS-G/K 180和/或DNS-G/K 150相同或相似。DNS-G/K 150组件可以包括处理器CPU 1520,其可以执行用于配置和操作DNS-G/K150的逻辑、用于分别与网络114和110对接的网络接口1512和1514、连接到网络110的管理接口MGMT I/F 1540、可以包含数据结构(例如,布隆过滤器)DNS-REG 1531的主存储器模块MAIN-MEMORY 1530,以及用于持久存储的存储器储存MEMORY-STORE 1532。这些组件可以连接到总线BUS1510,该总线可以用于在DNS-G/K 150的组件之间传输信息。DFM 160可以经由管理接口1540和网络110将布隆过滤器DNS-REG 1531提供给DNS-G/K 150。DNS-G/K 150的系统组件可以是在同一主机上执行的(例如共同驻留)过程或应用、在不同主机上执行的过程、在诸如管理程序(hypervisor)的虚拟基础设施上执行的过程、或者组件和软件的其他布置的任意组合。类似地,总线BUS 1510不仅可以是印刷电路板(PCB)的集成/嵌入式数据总线,而且还可以是例如L2/L3交换网络、L3路由网络、连接逻辑组件的L2/L3网络链路等的任意组合。数据总线可以是有线、无线、物理、逻辑、虚拟、软件定义的数据总线等的任意组合。网络接口1512和1514可以是L3透明的。网络接口1512和1514可以没有分配的IP地址并且可以不参与L3路由过程。类似地,网络接口1512和1514可以是L2透明的。网络接口1512和1514可以没有分配的MAC地址,因此可以不参与ARP过程。管理接口MGMT I/F 1540可以具有分配的IP地址,以用于与诸如DFM 160之类的管理设备进行通信。
图16是DNS-G/K 150的代表性操作概念的流程图。在步骤16-1中,DNS-G/K 150可以选择由DFM 160提供的数据结构(例如,布隆过滤器)DNS-REG 1531,并且可以下载布隆过滤器DNS-REG 1531并将其存储在其主存储器MAIN-MEMORY 1530中。布隆过滤器DNS-REG1531可以包含当前在DNS中注册的所有域名,这些域名可用于DFM 160或由其来确定。DFM160可以提供多个版本的DNS-REG 1531供DNS网守使用,这些DNS-REG可以由误报率和存储所有注册域名集合的相应存储器要求来表征。DNS-REG 1531的版本也可以由创建时间来表征,并且DNS-REG1531的选择和下载可以是DNS-G/K 150的更新过程的一部分。布隆过滤器(例如,DNS-REG 1531)可以由DNS-G/K 150基于相关联的误报率P和/或基于用于将域名集合存储在DNS-REG 1531中的相应存储器要求来选择。在步骤16-1中,DNS-G/K 150还可以将在步骤16-6、16-7和16-8中收集的信息上传到DFM 160。上传可以作为更新过程的一部分。上传可以包括数据,诸如由DNS-G/K 150检测到的错误、虚假或未注册的域名以及相关联的元数据(例如,时间戳、源主机标识符、估计的攻击类型、速率估计等),这些数据可以例如用作威胁情报并在威胁情报报告中。上传数据可能包括DNS-G/K 150观察到的DNS请求和响应的统计数据、以及DNS-G/K 150确定的域名,这些域名可以在DNS中注册但(例如,由于同步滞后)未包含在布隆过滤器DNS-REG 1531的本地实例中。这样的域名可能已经由DNS-G/K150在图17的步骤17-12中确定(如下所述)。也可以上传其他信息,诸如DNS-G/K 150元素管理信息。
在步骤16-2中,DNS-G/K 150可以从NETWORK 114接收传输中的分组,该分组可能旨在被转发到NETWORK 110。DNS-G/K 150还可以处理沿相反方向从NETWORK 110向NETWORK114传输的分组,但是为了说明的目的,仅描述了一个方向。在步骤16-3中,DNS-G/K 150可以确定分组是否包含DNS查询请求。如果分组不包含DNS查询请求,那么在步骤16-4F中,分组可以被转发到NETWORK 110,并且DNS-G/K 150循环回到步骤16-2以处理其他分组。如果分组确实包含DNS查询请求,则在步骤16-4T中,可以提取可能包含在QNAME字段中的域名。
在步骤16-5中,DNS-G/K 150可以测试域名是否是包含在布隆过滤器(例如,DNS-REG 1531)中的集合的成员。基于根据DFM 160的最后更新,DNS-REG 1531可以包括当前在DNS中注册的所有域名的集合。当隶属测试返回TRUE时,或者当确定名称已在DNS中注册时,在步骤16-6T中,可以记录分组和相关联的DNS请求及元数据以用于分析和统计目的,并存储在MEMORY-STORE 1532中。此外,错误、虚假或未注册域名DNS请求的速率与所有DNS请求的速率的比率和/或错误、虚假或未注册域名DNS请求的速率变化率与所有DNS请求的速率的比率可以由DNS-G/K150进行更新,分组可以被转发到NETWORK 110,并且DNS-G/K 150可以循环回到步骤16-2以处理其他分组。
当隶属测试返回FALSE时,和/或当确定名称未在DNS中注册并确定DNS请求与错误、虚假或未注册域名相关联时,则在步骤16-6F中,可以丢弃或阻止分组。出于统计目的,可以记录分组和相关联的信息及元数据(例如,域名、时间、位置、方向、源、攻击类型估计、速率估计等),可以记录和/或捕获分组和相关联的信息及元数据,并且可以将分组和相关联的信息及元数据存储在MEMORY-STORE 1532中。这一数据随后可以如上面的步骤16-1那样被传输或上传到DFM 160。分组和相关联的信息及元数据可用于网络分析应用、威胁情报应用和网络保护应用,诸如用于保护和防护全球DNS和全球互联网的应用(未在图16中示出)。例如,在使用虚假DNS请求作为攻击途径的高速DDoS攻击期间,记录和/或捕获与攻击相关联的分组可能会消耗不可接受的大量计算资源。因此,可以作为替代收集需要较少资源的统计信息。网络分析应用可以识别受感染的主机,这些主机可能是虚假DNS请求的发起者。分组和相关联的信息及元数据可以提供给网络威胁情报数据库,数据库随后可以由保护网络的应用和系统使用。例如,DNS基础设施提供者和互联网服务提供者可能会共同使用这些数据来驱动全球DNS和全球互联网保护应用。
在步骤16-7中,可以更新错误、虚假或未注册域名DNS请求的速率,以包含错误、虚假或未注册域名DNS请求的发生。DNS-G/K 150可以确定或计算错误、虚假的或未注册域名DNS请求的发生速率,或所有DNS请求的发生速率。DNS-G/K 150可以确定或计算虚假DNS请求的发生率的变化率,或所有DNS请求的发生率的变化率。DNS请求的速率和/或DNS请求速率的变化率可以在步骤16-8中用于确定与错误、虚假或未注册域名DNS请求相关联的攻击类型,并且可以用于确定可生成的DNS响应(如果有的话)。在步骤16-8中,DNS-G/K 150可以确定响应于错误、虚假或未注册域名DNS查询请求要生成什么类型的DNS查询响应(如果有的话),并且可以向网络114转发任何生成的DNS响应。当生成DNS响应时,DNS-G/K 150可以欺骗实际的DNS响应者,并且可以向相关联的DNS请求的发起者和可能已经观察到DNS请求的任何中间设备发送欺骗响应。在请求设备看来,欺骗响应可能是来自DNS的经过验证的名称服务器的响应。
用于确定DNS响应的因素可以包括:错误、虚假或未注册域名请求和合法DNS请求的当前估计速率,错误、虚假或未注册域名请求和合法DNS请求的变化率,数据结构(例如,DNS-REG 1531)的误报率P,域名后缀中包含国家代码情况下的估计滞后,错误、虚假或未注册域名DNS请求作为攻击途径的攻击的类型估计,和/或域名的句法特征(例如,信息熵值、与人类语言单词的相关性、标签长度、字母数字特征等)。例如,基于错误、虚假或未注册域名DNS请求的速率的当前值和/或错误、虚假或未注册域名DNS请求的速率的变化率,DNS-G/K 150可以确定正在发生大容量DDoS攻击。基于确定正在发生攻击,DNS-G/K 150可以确定不生成任何DNS响应以发送回DNS请求的源。在此类DDoS攻击期间生成对错误、虚假或未注册域名DNS请求的DNS响应(例如,响应代码为NXDOMAIN的响应)可能会通过消耗处理资源或使用对错误、虚假或未注册域名DNS请求的NXDOMAIN响应填充中间DNS代理中的DNS缓存来加剧攻击,这会导致合法的DNS请求和相关联的响应未存储在DNS缓存中,从而导致DNS负载增加。
在另一个示例中,非DDoS攻击(诸如DNS隧道攻击或泄露)可以基于错误、虚假或未注册域名DNS请求的速率的当前值以及错误、虚假或未注册域名DNS请求的速率的变化率而发生。应防止此类攻击,但不太可能过度消耗处理资源或填满DNS缓存。DNS-G/K 150可以确定可能正在发生非DDoS攻击,诸如DNS隧道攻击或泄露。基于确定正在发生这种攻击,DNS-G/K 150可以生成具有响应代码NXDOMAIN的DNS响应,并且可以将该响应传输到DNS请求的源。任何中间DNS代理中的DNS缓存可以存储DNS-G/K 150生成的NXDOMAIN响应,并且后续的错误、虚假或未注册域名DNS请求——包括对先前错误、虚假或未注册域名DNS请求的重试——可以由中间DNS代理进行处理。相反,DNS-G/K 150可以决定不生成DNS响应并将其传输回DNS请求的源,以便例如防止源意识到它可能已被发现或以其他方式被标识为恶意主体。
在又一个示例中,DNS-G/K 150可以确定错误、虚假或未注册域名DNS请求可以是在操作生成DNS请求的应用(诸如web浏览器)时人为错误的结果或者是恶意软件产生的模拟人为错误的结果。基于这样的确定,DNS-G/K 150可以生成具有响应代码NXDOMAIN的DNS响应。基于响应代码,应用在等待对请求的响应时可能不会超时,并且可能不会自动重新发出相同的错误、虚假或未注册域名DNS请求。例如,如果没有收到针对DNS请求的DNS响应,生成错误DNS请求的web浏览器可能会多次重复此重试循环,这可能导致人类操作员暂时无法使用浏览器,直到浏览器放弃。重复发出相同的错误DNS请求可能被视为拒绝服务攻击。通过DNS-G/K 150生成和发送具有响应代码NXDOMAIN的DNS响应,可以防止重复发出相同的错误DNS请求。
图17是DNS网守(诸如DNS-G/K 150)的操作流程图。图17中的步骤17-1至17-4与图16中的步骤16-1至16-4基本相同;因此,在此或在附图中不再重复对这些步骤的描述。其他步骤与处理可能由DNS-G/K150向DNS转发的DNS请求有关,即使图16中步骤16-5的域名隶属测试返回FALSE。
如上所述,一些请求可与由于滞后(诸如国家代码滞后)而不在DNS-REG 1531中的域名有关。例如,在本地DNS-REG 1531中注册的域名中可能会出现所有国家代码域集合的一些空白(gap),在全球DNS中注册的国家代码域CCD-X可能未包含在由DFM 160在图16的步骤16-1或图4的步骤4-1中分发的布隆过滤器DNS-REG 1531中。类似地,如果例如DNS-G/K150基于可从DFM 160接收的数据而确定存储在DNS-G/K150中的本地布隆过滤器(例如,DNS-REG 1531)在相对较长的时间内尚未被更新,则同步滞后可以是一个因素。此外,一些请求可涉及由于合法信息交换服务使用未注册的域名而不在DNS-REG 1531中的域名。
在步骤16-5中,针对CCD-X在布隆过滤器DNS-REG 1531中的隶属测试可能会返回FALSE值,并且在步骤16-6F中,可以丢弃相关联的分组。然而,当分组被丢弃时,DNS-G/K150不会收集新信息。作为丢弃的替代方案,如果确定域名实际上已在DNS中注册的可能性足够大,这出于其他可能的原因(诸如情报收集),或例如因为可能确定未注册的域名是合法信息交换服务的一部分,则DNS-G/K 150可以决定不丢弃DNS请求分组,而是将DNS请求分组转发到DNS中。DNS-G/K 150可以监控和观察相应的DNS响应,该响应可以包含解析的IP地址,从而使得确定域名已在DNS中注册,或者包含诸如NXDOMAIN之类的错误代码,从而使得确定域名未在DNS中注册;或者将没有响应,这可以指示DNS隧道攻击。鉴于这些考虑,可以提供附加处理来代替步骤16-5中的确定。在图17中,在步骤17.5.1和17.5.2中提供了此类确定。
在步骤17.5.1中,DNS-G/K 150可以测试域名是否是包含在布隆过滤器DNS-REG1531中的集合的成员,该集合代表当前在DNS中注册的所有域名。如果隶属测试返回TRUE,从而使得DNS-G/K 150确定名称已在DNS中注册,则在步骤17-6T中,可以出于统计目的记录分组和相关联的DNS请求,并且可以将其存储在MEMORY-STORE 1532中。DNS-G/K 150可以将分组转发到NETWORK 110中,并且DNS-G/K 150可以循环回到步骤17-2并处理更多分组。
如果隶属测试返回FALSE,从而使得确定域名未在DNS-REG 1531中注册,则在步骤17.5.2中,DNS-G/K 150可以确定是否将分组转发到DNS。转发确定可以基于由DNS-G/K 150确定隶属测试的FALSE结果是由于某种类型的滞后。例如,DNS-G/K 150可以确定域名是否包括作为国家代码的后缀。基于确定域名包括作为国家代码的后缀,DNS-G/K 150可以断定FALSE结果可能是由于国家代码滞后(如上所述)。替代地,DNS-G/K 150可以确定布隆过滤器DNS-REG 1531的本地副本在相当长的时间内没有被DFM 160更新,并且可以断定FALSE结果可能是由于同步滞后(如上所述)。转发确定还可以基于DNS-G/K 150确定隶属测试的FALSE结果是由于使用未注册域名作为合法信息交换服务的一部分。例如,DNS-G/K 150可以确定未注册的域名包括对应于由合法信息交换服务操作的授权名称服务器的后缀。
当在步骤17-5.2中,DNS-G/K 150可确定不向DNS转发DNS请求分组时,可以执行步骤17-6F、17-7和17-8。这些步骤与图16的步骤16-6F、16-7和16-8基本相同;因此,此处不再重复进行详细描述。当DNS-G/K 150确定转发DNS请求分组时,在步骤17-9中,DNS-G/K 150可以经由NETWORK 110向DNS转发DNS请求分组。当DNS-G/K 150确定请求中的域名未在DNS-REG 1531中注册但应转发请求分组时,DNS-G/K 150可以激活逻辑以监控与转发的请求分组相关联的通信,并且可以检测相应的DNS响应。在步骤17-10中,DNS-G/K 150可以检测或观察向NETWORK114传输的相应DNS响应(如果有的话)。
在步骤17-11中,DNS-G/K 150可以检查DNS响应是否指示解析的IP地址,从而使得确定域名没有在DNS-REG 1531中表示但是已在DNS中注册。如果DNS-G/K 150没有观察到指示解析的IP地址的DNS响应,则DNS-G/K 150可以执行步骤17-6F、17-7和17-8(如上所述),并且DNS-G/K150可以循环回到步骤17-2以处理其他分组。如果DNS-G/K 150确实观察到指示解析的IP地址的DNS响应,则在步骤17-12中,DNS-G/K 150可以将域名插入本地DNS-REG1531中,并且可以记录域名以用于信息性目的,并且可在步骤17-1中将其上传到DFM 160。在步骤17-13中,DNS-G/K150可以(经由NETWORK 114)将DNS响应分组转发到其目的地,并且DNS-G/K 150可以循环回到步骤17-2以处理其他请求。
在步骤17-10中,也可能是没有观察到DNS响应的情况。例如,当相关联的DNS请求是用于DNS隧道攻击(例如,泄露)的途径时,收集服务器CSVR 148可以不被配置为响应DNS请求。图17中未显示处理这种情况的逻辑路径。当没有观察到DNS响应时,DNS-G/K 150可以确定DNS请求可以是用于DNS隧道攻击的途径。DNS-G/K 150可以捕获、可以记载和/或可以记录DNS请求,并且可以向网络分析应用生成可能已经发生DNS隧道攻击的警报。在步骤17-1中,可以将与单个域名或多个域名以及相关信息相关联的警报上传到DFM 160。
图18是示出DNS过滤器管理器(DFM 160)的操作概念的流程图。需注意,图18中所示的所有步骤可以以不同的顺序执行,而不仅仅是所示的顺序,并且可以同时且连续地执行。图18中所示的步骤顺序是代表性的并且仅用于描述目的,并且不旨在以任何方式进行限制或约束。
在步骤18-1中,DFM 160可以收集并且可以聚合当前在DNS中注册的域名列表。DFM160可以创建可由其他计算设备访问或与之共享的域名数据库。这些列表的源可以包括区域文件,这些文件可以由DNS注册运营商组织和/或相关代表和/或授权名称服务器、域列表聚合器服务、发现国家代码域(CCD)的第三方服务、ICANN等发现。
在步骤18-2中,DFM 160可以快照(snapshot)当前注册的域名的数据库,这可能根据可以是周期性的调度。快照可以用作可以提供给订阅计算设备(诸如DNS-G/K 150和180)的DNS-REG 1531数据结构(例如,布隆过滤器)的源数据。使用快照中的数据,DFM 160可以生成多个DNS-REG 1531实例。每个实例DNS-REGPX可以由误报率PX来表征。对于诸如布隆过滤器等的概率数据结构,误报率P的对数大小可以与用于存储集合元素的存储器要求成比例。也就是说,对于每个DNS-REG 1531实例,与实例DNS-REGPX相关联的误报率越低,则可能需要越多的存储器来存储集合中给定数量的元素。本地DNS-G/K 150的每个实例可以具有不同的本地资源要求。例如,每个本地DNS-G/K 150可以对用于存储DNS-REGPX实例的可用本地主存储器有不同的限制。因此,DFM 160可以提供具有不同误报率和不同存储器大小的多个DNS-REGPX实例,使得给定的DNS-G/K 150可以选择满足本地资源要求的DNS-REGPX实例。
在步骤18-3中,DFM 160可以发布新创建的DNS-REGPX实例和相关联的信息/元数据,诸如时间戳数据,并且使DNS-REGPX实例对授权的DNS-G/K订阅者可用。在步骤18-4中,DFM 160可以通过向每个请求订阅者发送选择的DNS-REGPX和相关联的信息来响应订阅者请求。DFM 160可以记录每个这样的请求和响应,并且日志数据可以用于DNS-G/K 150和其他订阅者的全球监控应用。这种监控应用可以向最近尚未更新其本地DNS-REG实例的订阅DNS-G/K 150实例的管理员发送警报。
在步骤18-5中,DFM 160可以上传和存储由订阅DNS-G/K 150发送的信息。如上所述,这一信息可以包括由订阅DNS-G/K 150检测到的未注册域名和相关联的元数据(例如,时间戳、源主机、估计的攻击类型等),这些元数据可以在检测相关分组时被用作例如威胁情报。信息还可以包括DNS-G/K 150观察到的DNS请求和响应的统计信息、DNS-G/K 150元素管理信息、DNS-G/K 150可能已确定在DNS中注册但可能未包含在布隆过滤器DNS-REG 1531的本地实例中的域名。此类域名可能已经在关于图17的步骤17-12描述的过程中确定。
在步骤18-6中,DFM 160可以响应对信息(包括已经在步骤18-5中收集的信息(如上所述))的请求。可以从各种客户端系统(诸如网络分析应用、威胁情报提供者服务、互联网和DNS监控系统、域列表聚合器服务等)接收对信息的请求。DFM 160可以循环回到步骤18-1,或者上述过程可以同时或连续执行。
图18所示的DFM 160操作概念的一些可能变体可以减少资源要求并减少滞后。例如,在图18中,包含所有注册域名的最近生成的DNS-REGPX版本可以在被请求时分发给每个订阅者。在一定规模和高请求频率,持续分发DNS-REG 1531的完整实例可能效率低下。为了减少资源消耗,订阅者可以请求“增量(delta)”集合,而不是更新整个DNS-REGPX。也就是说,订阅者可以向DFM 160指示它下载的DNS-REGPX的最后时间戳版本(例如,版本x.04-01-2019.0800)。DFM 160可以计算版本x.04-01-2019.0800和最新版本(例如,x.04-02-2019.0800)之间的增量。增量集合可以包括在版本x.04-02-2019.0800中包含但未包含在x.04-01-2019.0800中的所有新注册的域名,并且可以包含在x.04-01-2019.0800中包含但未包含在x.04-02-2019.0800中的所有最近注销的域名。这一增量集合可以被发送到请求订阅者DNS-G/K 150。请求订阅者DNS-G/K 150可以将新注册的域名插入其DNS-REG 1531的本地副本,并可以从其DNS-REG 1531的本地副本中删除最近注销的域名。在另一个变体中,DFM 160可以提供新注册的域名和新注销的域名的连续馈送。连续馈送的订阅者可以将新注册的域名插入其本地DNS-REG中,并从其本地DNS-REG中删除最近注销的域名。如上所述,此变体可以减少滞后处理问题。
图18中所示的DFM 160操作概念的一些其他可能变体可以减少DNS-G/K 150本地资源要求,包括存储器要求和处理要求。例如,一些DNS-G/K 150可能不需要具有所有已知/可用注册域名的完整DNS-REG1531来提供针对攻击的有效保护,而是仅需要在其本地DNS-REG 1531实例中注册域名的相对较小子集。参考图1,考虑可以由第一DNS基础设施提供者组织(例如,DIPO-X)运营的网络116。DIPO-X可以操作两(2)个授权名称服务器NS 144和NS145,它们可以分别是例如域example-144.com和example-145.com的授权名称服务器。可以配置DNS,使得对域名*.example-144.com和*.example-145.com的所有DNS查询请求将被路由到附接到网络116的授权名称服务器NS 144和授权名称服务器NS 145。因此,此类请求将通过DNS网守DNS-G/K 180或被其过滤,并将被测试其是否隶属DNS网守DNS-G/K 180的本地DNS-REG 1531实例。
然而,情况有可能是大多数(如果不是全部)进入网络116的DNS查询请求可能是用于解析*.example-144.com和*.example-145.com形式的域名的合法DNS请求和错误、虚假或未注册域名DNS请求两者。因此,DNS网守DNS-G/K 180的本地DNS-REG 1531不需要填充有DNS中的每个注册域名,而是替代地只需填充有*.example-144.com和*.example-145.com形式的注册域名。与完整的布隆过滤器DNS-REG 1531相比,仅包含这些域名的布隆过滤器将需要更少的本地存储器和更少的时间来执行隶属测试。因此,如果DFM 160允许订阅者定制订阅者用来配置他们的DNS网守的布隆过滤器,这可能是有益的。DFM 160可以维护并且可以更新定制的布隆过滤器并且根据请求将它们提供给相关联的订阅者。
另选地,由于DIPO-X可以是授权名称服务器example-144.com和example-145.com的注册商和管理员,因此DIPO-X可以创建和管理包含*.example-144.com和*.example-145.com形式的注册域名的布隆过滤器,并使用此布隆过滤器来配置DNS-G/K 180。DIPO-X还可以向DFM 160提供此布隆过滤器,作为发布区域文件的替代方案。然后,DFM 160可以将此布隆过滤器包括在DFM 160分发给订阅者的布隆过滤器DNS-REG 1531中(例如,通过形成并集)。以此方式,DIPO-X可以通过不发现/发布其区域文件来保留其所需的任何隐私和保护,但可以与DFM 160和DNS-REG 1531过滤器的管理员一起参与帮助保护DNS和互联网。例如,在实践中,这种方法可能对不发布其区域文件的国家代码区域的注册商有用。
图19示出了具有可以减轻或防止对DNS的DDoS攻击的DNS网守的互联网络实施例的事件序列。在步骤19-1a和19-1b中,已经损害设备IOT 140和IOT 142的恶意软件联系僵尸网络命令和控制系统CNC 149以通知命令和控制系统CNC 149它们的存在并请求指令。在步骤19-2a和19-2b中,命令和控制系统CNC 149可以指示IOT 140和IOT 142以错误、虚假或未注册域名DNS请求在规定时间T攻击example-144.com和example-146.com的DNS授权名称服务器。
在步骤19-3a中,在规定时间T,IOT 140生成虚假DNS请求以解析域名6pPhAUPd.example-146.com。IOT 140使用随机字符串生成器创建字符串“6pPhAUPd”,然后将其用作子域标签来构建域名,DNS将该域名路由到example-146.com的授权名称服务器NS146以进行解析。这种域名生成方法假定所得到的域名极不可能已在DNS中注册。IOT 140将虚假DNS请求转发到example-146.com的授权名称服务器NS 146。
在步骤19-4a中,授权名称服务器NS 146接收DNS请求以解析6pPhAUPd.example-146.com。由于6pPhAUPd.example-146.com从未在DNS中注册,因此NS 146浪费资源在其DNS数据库中搜索相应的DNS条目但未找到。NS 146以RCODE=3生成对请求的相应DNS响应(“NXDOMAIN”,其发信号通知域名不存在于DNS中),并将DNS响应转发给请求者IOT 140。授权名称服务器(例如,NS 146)和设备(例如,IOT 140)之间的网络路径中的任何缓存DNS代理都可以插入{6pPhAUPd.example-146.com,NXDOMAIN}对的缓存条目。
因此,IOT 140在步骤19-3a中生成的虚假DNS请求浪费了网络带宽资源、DNS名称服务器资源和DNS缓存资源。这些资源可能不再可用于服务合法的DNS请求。
在步骤19-3b中,在规定时间T,与步骤19-3a类似,IOT 142生成虚假DNS请求以解析域名B2f8O2vR.example-146.com。IOT 142可以将虚假DNS请求转发到example-146.com的授权名称服务器NS 146。当虚假DNS请求离开网络114时,它可以被DNS网守DNS-G/K 150接收。DNS-G/K 150可以测试B2f8O2vR.example-146.com是否是其布隆过滤器DNS-REG本地实例的成员。隶属测试可能返回FALSE,从而使得确定B2f8O2vR.example-146.com不是布隆过滤器DNS-REG的成员,因此其未在DNS中注册。DNS-G/K 150可以检查其无效或虚假DNS请求的速率、无效或虚假DNS请求的速率的变化率以及其他参数,并决定请求可能是DDoS攻击的一部分。因此,DNS-G/K 150可以丢弃包含DNS请求的分组,但不会生成相应的DNS响应以发送回DNS请求的发起者(因为这会消耗资源并因此有助于执行DDoS攻击)。DNS-G/K 150可以记录、捕获和本地存储虚假DNS请求,以供将来可能被例如威胁情报提供者服务和/或网络分析服务等检索。DNS-G/K 150由此防止了虚假DNS请求攻击DNS和浪费资源,而这些资源可以替代地应用于为合法的DNS请求提供服务。
在步骤19-3c中,在规定时间T,与步骤19-3a类似,IOT 140生成虚假DNS请求以解析域名V00zln5k.example-144.com。IOT 140可以将虚假DNS请求转发到附接到网络116的example-144.com的名称服务器NS 144。在进入网络116之前,请求可以被DNS网守DNS-G/K180(DIPO-X安装在网络116的边界以保护其DNS基础设施)接收。DNS网守DNS-G/K 180可以测试V00zln5k.example-144.com是否是其本地布隆过滤器DNS-REG实例的成员。隶属测试返回FALSE,因此可以确定V00zln5k.example-144.com不是布隆过滤器DNS-REG的成员,因此其未在DNS中注册。DNS网守DNS-G/K 180可以决定虚假DNS请求可能是DDoS攻击的一部分。因此,DNS网守DNS-G/K 180可以丢弃包含DNS请求的分组,但不需要生成相应的DNS响应以发送回DNS请求的发起者。DNS网守DNS-G/K 180由此防止了虚假DNS请求攻击DNS和浪费资源,而这些资源可以替代地应用于为合法的DNS请求提供服务。
在步骤19-3d中,在规定时间T,与步骤19-3b类似,IOT 142生成虚假DNS请求以解析域名I9BVhImV.example-144.com。IOT 142将虚假DNS请求转发到example-144.com的名称服务器NS 144。当虚假DNS请求离开网络114时,它被DNS网守DNS-G/K 150接收。DNS-G/K150测试I9BVhImV.example-144.com是否是其本地布隆过滤器DNS-REG实例的成员。隶属测试返回FALSE,因此确定I9BVhImV.example-144.com不是布隆过滤器DNS-REG的成员,因此其未在DNS中注册。DNS-G/K 150检查无效或虚假DNS请求的速率和/或无效或虚假DNS请求的速率的变化率,并决定请求可能是DDoS攻击的一部分。因此,DNS-G/K 150丢弃包含DNS请求的分组,但并不生成相应的DNS响应以发送回DNS请求的发起者。DNS-G/K 150由此防止了虚假DNS请求攻击DNS和浪费资源,而这些资源可以替代地应用于为合法的DNS请求提供服务。
图20示出了具有可以减轻或防止DNS隧道攻击的DNS网守的互联网络实施例的事件序列。
回想以上内容和图14,附接到网络112的主机PII 141和附接到网络114的PII 143可以是管理敏感信息(诸如个人可识别信息(PII)、信用卡信息等)的服务器。主机PII 141和PII 143也已被恶意软件感染,该恶意软件收集信用卡信息,然后使用DNS隧道方法将信息泄露给附接到网络170的收集服务器CSVR 148(如下所述)。CSVR 148已经被分配了一个公共IP地址21.43.65.87。收集服务器CSVR 148可以配置有DNS服务器,该DNS服务器可以在端口53(DNS的公知端口)上摄取DNS请求。PII 141和PII 143上的恶意软件已被配置为向IP地址21.43.65.87(收集服务器CSVR 148的IP地址)发送DNS请求。
在步骤20-1中,附接到网络112的PII 141从本地数据库中读取信用卡号“1234123412341234”和相关联的信用卡发行商名称“card”,构造(虚假)DNS请求来解析例如1234123412341234card.csvr-148.tk,将请求封装在目的地端口53的UDP数据报分组中,将数据报封装在目的地IP地址为21.43.65.87的IP分组中,以及将分组转发到21.43.65.87(CSVR 148)。分组通过互联网络路由到收集服务器CSVR 148端口53,在端口53上侦听的DNS服务器接收虚假DNS请求以解析1234123412341234card.csvr-148.tk。DNS服务器从DNS请求中提取(窃取的)信用卡信息“1234123412341234”,并将DNS请求存储在本地数据库中,从而成功完成了泄露。DNS服务器不会针对虚假DNS请求生成相应的DNS响应,以便例如避免检测。
在步骤20-2中,附接到网络114的PII 143可以从本地数据库读取信用卡号“4321432143214321”和相关联的信用卡发行商名称“card2”,构造虚假DNS请求来解析例如4321432143214321card2.csvr-148.tk。PII 143可以将请求封装在目的地端口53的UDP数据报分组中,可以将数据报封装在目的地IP地址为21.43.65.87的IP分组中,以及可以将分组转发到收集服务器CSVR 148的IP地址(21.43.65.87)。当分组离开网络114时,它可以被DNS网守DNS-G/K 150接收。DNS-G/K 150可以测试请求4321432143214321card2.csvr-148.tk是否是其本地布隆过滤器DNS-REG实例的成员。隶属测试可能返回FALSE,因此确定4321432143214321card2.csvr-148.tk不是布隆过滤器DNS-REG的成员,因此其未在DNS中注册。DNS-G/K 150可以检查本地网守存储的错误、虚假或未注册域名DNS请求和合法DNS请求的速率和/或错误、虚假或未注册域名DNS请求和合法的DNS请求的速率的变化率以及其他参数,并且可以决定请求不是DDoS攻击的一部分,但可以是DNS隧道攻击的一部分。因此,DNS-G/K 150可以丢弃包含DNS请求的分组,但可以不生成相应的DNS响应以发送回DNS请求的发起者。DNS-G/K 150由此可以防止虚假DNS请求将窃取的信用卡号泄露给恶意主体。DNS-G/K 150可以记录、捕获和本地存储虚假DNS请求。此信息可以提供给例如威胁情报提供者服务和/或网络分析服务等。这些服务可以将恶意收集服务器CSVR148(IP地址21.43.65.87)和网络170识别为与恶意主体相关联,并将主机PII 143识别为被泄露恶意软件所损害。此信息可用于进一步保护网络,例如,通过企业为主机PII 143杀毒和/或通过威胁情报提供者向订阅者分发收集服务器CSVR 148的IP地址21.43.65.87和相关联的威胁元数据(例如,攻击类型是“DNS隧道”)作为威胁指标,以及分发(恶意)网络170的IP地址空间块,例如21.43.65.0/24。
本文描述的功能和步骤可以体现在由一个或更多个计算机或用来执行本文所述一个或更多个功能的其他设备执行的计算机可用数据或计算机可执行指令中,诸如在一个或更多个程序模块中。通常,程序模块包括例程、程序、对象、组件、数据结构等,它们在由计算机或其他数据处理设备中的一个或更多个处理器执行时执行特定任务或实现特定抽象数据类型。计算机可执行指令可以存储在诸如硬盘、光盘、可移动存储介质、固态存储器、RAM等的计算机可读介质上。应当理解,可以根据需要组合或分配程序模块的功能。另外,功能可以全部或部分地体现在固件或硬件等效物中,诸如集成电路、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。特定的数据结构可以被用于更有效地实现本公开的一个或更多个方面,并且此类数据结构被认为在本文描述的计算机可执行指令和计算机可用数据的范围内。
尽管不是必需的,但是本领域的普通技术人员将理解,本文描述的各个方面可以体现为一种方法、系统、装置或体现为一种或更多种存储计算机可执行指令的计算机可读介质。因此,各方面可以采取完全硬件实施例、完全软件实施例、完全固件实施例,或以任何组合结合软件、硬件和固件方面的实施例的形式。
如本文所述,各种方法和动作可以在一个或更多个计算设备和网络上操作。功能可以以任何方式分布,或者可以位于单个计算设备(例如,服务器、客户端计算机等)中。
可以在各种不同的系统环境中利用计算机软件、硬件和网络,系统环境包括独立的、联网的、远程访问的(也称为远程桌面)、虚拟的和/或基于云的环境,以及其他环境。图21示出了可用于在独立和/或联网环境中实现本文所述的一个或更多个例示性方面的系统架构和数据处理设备的一个示例。各种网络节点2103、2105、2107和2109可以经由诸如互联网的广域网(WAN)2101互连。也可以或另选地使用其他网络,包括专用内联网、公司网络、局域网(LAN)、城域网(MAN)、无线网络、个人网络(PAN)等。网络2101是出于例示说明目的,并且可以用更少或附加的计算机网络来替代。局域网2133可以具有任何已知LAN拓扑中的一个或更多个,并且可以使用各种不同协议中的一个或更多个,诸如以太网。设备2103、2105、2107和2109以及其他设备(未示出)可以经由双绞线、同轴电缆、光纤、无线电波或其他通信介质连接到一个或更多个网络。
如本文所使用和附图中所描绘的术语“网络”不仅指其中远程存储设备经由一个或更多个通信路径耦合在一起的系统,而且还指可能不时耦合到具有存储能力的此类系统的独立设备。因此,术语“网络”不仅包括“物理网络”,还包括“内容网络”,其由驻留在所有物理网络中的数据(可归于单个实体)构成。
这些组件可以包括数据服务器2103、web服务器2105和客户端计算机2107、2109。例如,DNS-G/K 150可以实现为多个不同设备中的任何一个,包括各种网络节点2103、2105、2107和2109中的每一个。数据服务器2103提供对用于执行本文所述的一个或更多个例示性方面的数据库和控制软件的整体访问、控制和管理。数据服务器2103可以连接到web服务器2105,用户通过该web服务器进行交互并获得所请求的数据。另选地,数据服务器2103本身可以充当web服务器并且直接连接到互联网。数据服务器2103可以通过局域网2133、广域网2101(例如,互联网)经由直接或间接连接或经由某些其他网络连接到web服务器2105。用户可以使用远程计算机2107、2109,例如使用web浏览器经由由web服务器2105托管的一个或更多个外部公开的网站连接到数据服务器2103,以与数据服务器2103进行交互。客户端计算机2107、2109可以与数据服务器2103配合使用以访问存储在其中的数据,或者可以用于其他目的。例如,通过客户端设备2107,用户可以如本领域中已知的使用互联网浏览器或通过执行经由计算机网络(诸如互联网)与web服务器2105和/或数据服务器2103进行通信的软件应用来访问web服务器2105。
服务器和应用可以组合在相同的物理机器上并保留单独的虚拟或逻辑地址,或者可以驻留在单独的物理机器上。图21仅示出了可以使用的设备和网络架构的一个示例,并且本领域技术人员将理解,所使用的特定设备和网络架构以及数据处理设备可以变化,并且相对于所提供的功能是次要的,如本文所进一步描述的。例如,可以在单个服务器上组合由web服务器2105和数据服务器2103提供的服务。
每个组件2103、2105、2107、2109可以是任何类型的已知计算机、服务器或数据处理设备。数据服务器2103例如可以包括控制数据服务器2103的整体操作的处理器2111。数据服务器2103可以进一步包括随机存取存储器(RAM)2113、只读存储器(ROM)2115、网络接口2117、输入/输出接口2119(例如,键盘、鼠标、显示器、打印机等)以及存储器2121。输入/输出(I/O)2119可以包括用于读取、写入、显示和/或打印数据或文件的各种接口单元和驱动器。存储器2121可以进一步存储用于控制数据处理设备2103的整体操作的操作系统软件2123、用于指示数据服务器2103执行本文所述方面的控制逻辑2125、以及提供可以结合或可以不结合本文所述方面使用的辅助、支持和/或其他功能的其他应用软件2127。控制逻辑在本文中也可以称为数据服务器软件2125。数据服务器软件的功能可以是指基于编码到控制逻辑中的规则自动做出的操作或决策、通过用户向系统提供输入而手动做出的操作或决策和/或基于用户输入(例如查询、数据更新等)的自动处理的组合。
存储器2121还可存储用于执行本文所述一个或更多个方面的数据,包括第一数据库2129和第二数据库2131。第一数据库可以包括第二数据库(例如,作为单独的表、报告等)。也就是说,信息可以存储在单个数据库中,或者可以分为不同的逻辑、虚拟或物理数据库,这取决于系统设计。设备2105、2107和2109可以具有与关于设备2103所述相似或不同的架构。本领域技术人员将理解,如本文所述的数据处理设备2103(或设备2105、2107或2109)的功能可以分布在多个数据处理设备上,例如,为了将处理负载分布在多个计算机上,为了基于地理位置、用户访问级别、服务质量(QoS)等分隔交易等。
一个或更多个方面可以体现在由本文所述的一个或更多个计算机或其他设备执行的计算机可用或可读数据和/或计算机可执行指令中,诸如在一个或更多个程序模块中。通常,程序模块包括例程、程序、对象、组件、数据结构等,它们在由计算机或其他设备中的处理器执行时执行特定任务或实现特定抽象数据类型。可以用源代码编程语言编写模块,随后将其编译以供执行,或者可以用脚本语言编写模块,诸如(但不限于)超文本标记语言(HTML)或可扩展标记语言(XML)。可以将计算机可执行指令存储在诸如非易失性存储设备之类的计算机可读介质上。可以利用任何合适的计算机可读存储介质,包括硬盘、CD-ROM、光学存储设备、磁性存储设备和/或其任何组合。另外,本文所述的表示数据或事件的各种传输(非存储)介质可以以电磁波的形式行进通过诸如金属线、光纤和/或无线传输介质(例如,空气和/或空间)之类的信号传导介质在源和目的地之间传输。本文所述的各个方面可以体现为方法、数据处理系统或计算机程序产品。因此,各种功能可以全部或部分地体现在软件、固件和/或硬件或硬件等效物中,诸如集成电路、现场可编程门阵列(FPGA)等。特定的数据结构可以用于更有效地实现本文所述的一个或更多个方面,并且此类数据结构被认为在本文所述的计算机可执行指令和计算机可用数据的范围内。
进一步参考图22,可以在网络或远程访问环境中实现本文所述的一个或更多个方面。图22描绘了示例性网络架构,其包括可根据本文所述的一个或更多个例示性方面使用的例示性计算环境2200中的计算设备2201。例如,DNS过滤器管理器(DFM)160可以使用计算设备2201的特征来实现。计算设备2201可以用作被配置为向客户端访问设备提供虚拟机的单服务器或多服务器桌面虚拟化系统(例如,远程访问或云系统)中的服务器2206a。计算设备2201可以具有处理器2203,以用于控制服务器和其相关联组件的整体操作,该相关联组件包括RAM 2205、ROM 2207、输入/输出(I/O)模块2209和存储器2215。
I/O模块2209可以包括鼠标、小键盘、触摸屏、扫描仪、光学阅读器和/或手写笔(或其他输入设备),计算设备201的用户可以通过它们提供输入,并且还可以包括用于提供音频输出的一个或更多个扬声器以及用于提供文本、视听和/或图形输出的一个或更多个视频显示设备。可以将软件存储在存储器2215和/或其他存储装置内,以向处理器2203提供指令,用于将计算设备2201配置为专用计算设备,以便执行本文所述的各种功能。例如,存储器2215可以存储由计算设备2201使用的软件,诸如操作系统2217、应用程序2219和相关联的数据库2221。
计算设备2201可以在支持到诸如终端2240(也称为客户端设备)的一个或更多个远程计算机的连接的联网环境中操作。终端2240可以是个人计算机、移动设备、膝上型计算机、平板电脑或服务器,其包括以上关于计算设备2103或2201所述的许多或所有元件。图9中描绘的网络连接包括局域网(LAN)2225和广域网(WAN)2229,但是也可以包括其他网络。当在LAN联网环境中使用时,计算设备2201可通过网络接口或适配器2223连接到LAN 2225。当在WAN联网环境中使用时,计算设备2201可以包括调制解调器2227或其他广域网接口,以用于通过诸如计算机网络2230(例如,互联网)之类的WAN 2229建立通信。应当理解,所示的网络连接是例示性的,并且可以使用在计算机之间建立通信链路的其他手段。计算设备2201和/或终端2240还可以是包括各种其他组件(诸如电池、扬声器和天线(未示出))的移动终端(例如,移动电话、智能电话、个人数字助理(PDA)、笔记本等)。
本文所述的各方面也可以与许多其他通用或专用计算系统环境或配置一起操作。可适用于本文所述方面的其他计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人计算机(PC)、小型计算机、大型计算机,包括上述任何系统或设备的分布式计算环境等。
如图22所示,一个或更多个客户端设备2240可以与一个或更多个服务器2206a-1206n(在本文中总称为“服务器2206”)通信。在一个实施例中,计算环境2200可以包括安装在服务器2206和客户端机器2240之间的网络装置。网络装置可以管理客户端/服务器连接,并且在某些情况下可以在多个后端服务器2206之间负载平衡客户端连接。
客户端机器2240可以被称为单个客户端机器2240或单个客户端机器组2240,而服务器2206可以被称为单个服务器2206或单个服务器组2206。在一个实施例中,单个客户端机器2240与多于一个服务器2206通信,而在另一实施例中,单个服务器2206与多于一个客户端机器2240通信。在又一个实施例中,单个客户端机器2240与单个服务器2206通信。
客户端机器2240可以通过以下非穷举性术语中的任何一个来引用:客户端机器;客户端;客户端计算机;客户端设备;客户端计算设备;本地机器;远程机器;客户端节点;端点;或端点节点。服务器2206可以通过以下非穷举性术语中的任何一个来引用:服务器;本地机器;远程机器;服务器群或主机计算设备。
在一个实施例中,客户端机器2240可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施例中,虚拟机可以是由类型1或类型2管理程序(例如,由Citrix、IBM、VMware开发的管理程序或任何其他管理程序)管理的任何虚拟机。在一些方面,虚拟机可以由管理程序管理,而在其他方面,虚拟机可以由在服务器2206上执行的管理程序或在客户端2240上执行的管理程序管理。
客户端设备2240可以显示由在服务器2206或其他远程定位机器上远程执行的应用生成的应用输出,并且客户端设备2240可以执行虚拟机接收器程序或应用以在应用窗口、浏览器、或其他输出窗口中显示输出。在一个示例中,应用是桌面,而在其他示例中,应用是生成或呈现桌面的应用。桌面可以包括图形壳,为可以在其中集成本地和/或远程应用的操作系统实例提供用户界面。如本文所使用的,应用是在已经加载了操作系统(以及任选地,还有桌面)的实例之后执行的程序。
服务器2206可以使用远程呈现协议或其他程序将数据发送到在客户端上执行的瘦客户端或远程显示应用,以呈现由在服务器2206上执行的应用生成的显示输出。瘦客户端或远程显示协议可以是诸如由佛罗里达州劳德代尔堡的思杰系统公司开发的独立计算架构(ICA)协议;或由华盛顿州雷德蒙德的微软公司制造的远程桌面协议(RDP)。
远程计算环境可以包括多于一个服务器2206a-1206n,从而使得例如在云计算环境中将服务器2206a-1206n一起逻辑分组为服务器群2206中。服务器群2206可以包括在地理上分散的同时在逻辑上分组在一起的服务器2206,或者在逻辑上分组在一起的同时彼此邻近定位的服务器2206。服务器群2206内的地理上分散的服务器2206a-1206n可以使用WAN(广域)、MAN(城域)或LAN(局域)进行通信,其中不同的地理区域可以被表征为:不同的大陆;大陆的不同地区;不同国家;不同的州;不同的城市;不同的园区;不同的房间;或上述地理位置的任何组合。服务器群2206可以作为单个实体进行管理,或者服务器群2206可以包括多个服务器群。
服务器群可以包括执行基本相似类型的操作系统平台(例如,WINDOWS、UNIX、LINUX、iOS、ANDROID、SYMBIAN等)的服务器2206。服务器群2206可以包括执行第一类操作系统平台的第一组一个或更多个服务器、以及执行第二类操作系统平台的第二组一个或更多个服务器。
服务器2206可以根据需要配置为任何类型的服务器,例如文件服务器、应用服务器、web服务器、代理服务器、装置、网络装置、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、安全套接字层(SSL)VPN服务器、防火墙、web服务器、应用服务器或作为主应用服务器、执行活动目录的服务器或执行应用加速程序的服务器,其提供防火墙功能、应用功能或负载均衡功能。也可以使用其他服务器类型。
第一服务器2206a可以从客户端机器2240接收请求,将请求转发到第二服务器2206b(未示出),并利用来自第二服务器2206b(未示出)的响应来对由客户端机器2240生成的请求作出响应。第一服务器2206a可以获取可用于客户端机器2240的应用的枚举、以及与托管在应用的枚举中标识的应用的应用服务器2206相关联的地址信息。然后,第一服务器2206a可以使用web界面呈现对客户端请求的响应,并直接与客户端2240通信,以使客户端2240可以访问所标识的应用。一个或更多个客户端2240和/或一个或更多个服务器2206可通过网络2230(例如,网络2101)传输数据。
本公开的各方面已经根据其例示性实施例进行了描述。通过审阅本公开,本领域普通技术人员可以想到所附权利要求的范围和精神内的许多其他实施例、修改和变化。例如,本领域的普通技术人员将理解,例示性附图中示出的步骤可以以不同于所列举的顺序来执行,并且示出的一个或更多个步骤可以是任选的。所附权利要求中的任何和所有特征可以以任何可能的方式组合或重新布置。

Claims (20)

1.一种方法,包括:
通过网守接收多个分组;
基于分组信息确定所述多个分组中的每个相应分组是否包括域名系统(DNS)查询请求;
基于确定所述多个分组中的第一分组包括DNS查询请求,测试概率数据结构以确定所述第一分组的第一DNS查询请求的第一域名是否在所述概率数据结构中表示;
基于确定所述第一DNS查询请求的所述第一域名未在所述概率数据结构中表示,根据至少一个标准确定所述第一DNS查询请求是否指示合法的DNS查询请求;以及
基于确定所述多个分组中的所述第一分组不指示合法的DNS查询请求,丢弃所述第一DNS查询请求。
2.根据权利要求1所述的方法,还包括:
基于确定所述多个分组中的所述第一分组不指示合法的DNS查询请求,将关于所述第一DNS查询请求的数据传输给管理服务器。
3.根据权利要求1所述的方法,还包括:
基于确定所述多个分组中的第二分组不包括DNS查询请求,将所述第二分组传输到其预期目的地。
4.根据权利要求1所述的方法,还包括:
基于确定所述多个分组中的第二分组包括第二DNS查询请求,测试所述概率数据结构以确定所述第二分组的所述第二DNS查询请求的第二域名是否在所述概率数据结构中表示;
基于确定所述第二DNS查询请求的所述第二域名未在所述概率数据结构中表示,确定所述第二DNS查询请求是否指示合法的DNS查询请求;以及
基于确定所述第二分组的所述第二DNS查询请求指示合法的DNS查询请求,将所述第二分组传输到其预期目的地。
5.根据权利要求4所述的方法,还包括:
监控网络流量中对所述第二DNS查询请求的响应;
基于确定对所述第二DNS查询请求的所述响应指示所述第二DNS查询请求已成功完成,将所述第二DNS查询请求的所述第二域名插入到所述概率数据结构中;以及
将所述第二DNS查询请求的所述第二域名传输给管理服务器。
6.根据权利要求1所述的方法,其中所述确定所述第一DNS查询请求是否指示合法的DNS查询请求包括:
确定接收的无效DNS查询请求的速率;
确定所述接收的无效DNS查询请求的速率是否满足阈值;以及
基于确定所述接收的无效DNS查询请求的速率满足阈值,确定所述多个分组中的所述第一分组不指示合法的DNS查询请求。
7.根据权利要求1所述的方法,其中所述确定所述第一DNS查询请求是否指示合法的DNS查询请求包括:
确定国家代码是否与所述第一DNS查询请求相关联;
确定与所述第一DNS查询请求相关联的所述国家代码是否指示注册滞后;以及
基于确定与所述第一DNS查询请求相关联的所述国家代码不指示注册滞后,确定所述多个分组中的所述第一分组不指示合法的DNS查询请求。
8.根据权利要求1所述的方法,其中所述概率数据结构是布隆过滤器。
9.根据权利要求1所述的方法,其中所述至少一个标准包括以下中的一项或更多项:
错误、虚假或未注册域名DNS请求的速率;
所述第一DNS查询请求的一个或更多个部分是否与人类语言单词相关;
与所述第一DNS查询请求相关联的一个或更多个标签长度;
与所述第一DNS查询请求相关联的国家代码;
针对所述概率数据结构接收的更新的定时;或者
与所述第一DNS查询请求相关联的域名的句法特征。
10.一种计算设备,包括:
至少一个处理器;和
包括指令的存储器,所述指令在由所述至少一个处理器执行时使所述计算设备:
接收多个分组;
基于分组信息,确定所述多个分组中的每个相应分组是否包括域名系统(DNS)查询请求;
基于确定所述多个分组中的第一分组包括DNS查询请求,测试概率数据结构以确定所述第一分组的第一DNS查询请求的第一域名是否在所述概率数据结构中表示;
基于确定所述第一DNS查询请求的所述第一域名未在所述概率数据结构中表示,根据至少一个标准确定所述第一DNS查询请求是否指示合法的DNS查询请求;以及
基于确定所述多个分组中的所述第一分组不指示合法的DNS查询请求,丢弃所述第一DNS查询请求。
11.根据权利要求10所述的计算设备,其中所述存储器还包括使所述计算设备执行以下操作的指令:
基于所述确定所述多个分组中的所述第一分组不指示合法的DNS查询请求,将关于所述第一DNS查询请求的数据传输给管理服务器。
12.根据权利要求10所述的计算设备,其中所述存储器还包括使所述计算设备执行以下操作的指令:
基于确定所述多个分组中的第二分组不包括DNS查询请求,将所述第二分组传输到其预期目的地。
13.根据权利要求10所述的计算设备,其中所述存储器还包括使所述计算设备执行以下操作的指令:
监控网络流量中对第二DNS查询请求的响应;
基于确定对所述第二DNS查询请求的所述响应指示所述第二DNS查询请求已成功完成,将所述第二DNS查询请求的第二域名插入到所述概率数据结构中;以及
将所述第二DNS查询请求的所述第二域名传输给管理服务器。
14.根据权利要求10所述的计算设备,其中所述存储器还包括使所述计算设备执行以下操作的指令:
确定接收的无效DNS查询请求的速率;
确定所述接收的无效DNS查询请求的速率是否满足阈值;以及
基于确定所述接收的无效DNS查询请求的速率满足阈值,确定所述多个分组中的所述第一分组不指示合法的DNS查询请求。
15.根据权利要求10所述的计算设备,其中所述存储器还包括使所述计算设备执行以下操作的指令:
确定国家代码是否与所述第一DNS查询请求相关联;
确定与所述第一DNS查询请求相关联的所述国家代码是否指示注册滞后;以及
基于确定与所述第一DNS查询请求相关联的所述国家代码不指示注册滞后,确定所述多个分组中的所述第一分组不指示合法的DNS查询请求。
16.一种或更多种非暂时性计算机可读介质,其包括指令,所述指令在由计算系统的一个或更多个处理器执行时使所述计算系统:
接收多个分组;
基于分组信息,确定所述多个分组中的每个相应分组是否包括域名系统(DNS)查询请求;
基于确定所述多个分组中的第一分组包括DNS查询请求,测试概率数据结构以确定所述第一分组的第一DNS查询请求的第一域名是否在所述概率数据结构中表示;
基于确定所述第一DNS查询请求的所述第一域名未在所述概率数据结构中表示,根据至少一个标准确定所述第一DNS查询请求是否指示合法的DNS查询请求;以及
基于确定所述多个分组中的所述第一分组不指示合法的DNS查询请求,丢弃所述第一DNS查询请求。
17.根据权利要求16所述的一种或更多种非暂时性计算机可读介质,还包括使所述计算系统执行以下操作的指令:
基于确定所述多个分组中的所述第一分组不指示合法的DNS查询请求,将关于所述第一DNS查询请求的数据传输给管理服务器。
18.根据权利要求16所述的一种或更多种非暂时性计算机可读介质,还包括使所述计算系统执行以下操作的指令:
基于确定所述多个分组中的第二分组不包括DNS查询请求,将所述第二分组传输到其预期目的地。
19.根据权利要求16所述的一种或更多种非暂时性计算机可读介质,还包括使所述计算系统执行以下操作的指令:
确定接收的无效DNS查询请求的速率;
确定所述接收的无效DNS查询请求的速率是否满足阈值;以及
基于确定所述接收的无效DNS查询请求的速率满足阈值,确定所述多个分组中的所述第一分组不指示合法的DNS查询请求。
20.根据权利要求16所述的一种或更多种非暂时性计算机可读介质,还包括使所述计算系统执行以下操作的指令:
确定国家代码是否与所述第一DNS查询请求相关联;
确定与所述第一DNS查询请求相关联的所述国家代码是否指示注册滞后;以及
基于确定与所述第一DNS查询请求相关联的所述国家代码不指示注册滞后,确定所述多个分组中的所述第一分组不指示合法的DNS查询请求。
CN202080080967.9A 2019-11-22 2020-11-23 防止与域名系统相关联的攻击的方法和系统 Pending CN114902607A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/692,365 US11012414B2 (en) 2019-04-30 2019-11-22 Methods and systems for prevention of attacks associated with the domain name system
US16/692,365 2019-11-22
PCT/US2020/061805 WO2021102414A1 (en) 2019-11-22 2020-11-23 Methods and systems for prevention of attacks associated with the domain name system

Publications (1)

Publication Number Publication Date
CN114902607A true CN114902607A (zh) 2022-08-12

Family

ID=73699496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080080967.9A Pending CN114902607A (zh) 2019-11-22 2020-11-23 防止与域名系统相关联的攻击的方法和系统

Country Status (5)

Country Link
EP (1) EP4059202A1 (zh)
JP (1) JP2023502361A (zh)
KR (2) KR20240110080A (zh)
CN (1) CN114902607A (zh)
WO (1) WO2021102414A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118590244A (zh) * 2024-07-23 2024-09-03 中电信量子科技有限公司 基于crl文件验证证书合法性的方法及系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114362991B (zh) * 2021-11-22 2024-04-16 北京威努特技术有限公司 一种acl访问控制列表规则过滤去重的方法及装置
CN114050943B (zh) * 2022-01-13 2022-04-01 北京安博通科技股份有限公司 一种基于dns代理方式的威胁情报匹配方法与系统
CN115102778B (zh) * 2022-07-11 2024-05-24 深信服科技股份有限公司 一种状态确定方法、装置、设备及介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102438025A (zh) * 2012-01-10 2012-05-02 中山大学 一种基于Web代理的间接分布式拒绝服务攻击抵御方法及系统
CN102523311A (zh) * 2011-11-25 2012-06-27 中国科学院计算机网络信息中心 非法域名识别方法及装置
CN103152357A (zh) * 2013-03-22 2013-06-12 北京网御星云信息技术有限公司 一种针对dns服务的防御方法、装置和系统
CN103294822A (zh) * 2013-06-17 2013-09-11 北京航空航天大学 一种基于主动哈希和布隆过滤器的高效缓存方法
EP3010208A1 (en) * 2014-10-17 2016-04-20 Cisco Technology, Inc. Address autoconfiguration using bloom filter parameters for unique address computation
US20160134639A1 (en) * 2012-03-14 2016-05-12 Bot Or Not, Llc Method for user authentication using dnssec
CN107360198A (zh) * 2017-09-12 2017-11-17 中国联合网络通信集团有限公司 可疑域名检测方法及系统
CN108683686A (zh) * 2018-06-21 2018-10-19 中国科学院信息工程研究所 一种随机子域名DDoS攻击检测方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010022767A1 (en) * 2008-08-26 2010-03-04 Telefonaktiebolaget Lm Ericsson (Publ) Packet forwarding in a network
US9003518B2 (en) * 2010-09-01 2015-04-07 Raytheon Bbn Technologies Corp. Systems and methods for detecting covert DNS tunnels
WO2013053407A1 (en) * 2011-10-14 2013-04-18 Telefonica, S.A A method and a system to detect malicious software
US9912594B2 (en) * 2014-06-10 2018-03-06 Google Llc Probabilistic message filtering and grouping
US9294490B1 (en) * 2014-10-07 2016-03-22 Cloudmark, Inc. Apparatus and method for identifying a domain name system resource exhaustion attack
CN104601557B (zh) * 2014-12-29 2018-12-21 广东顺德中山大学卡内基梅隆大学国际联合研究院 一种基于软件定义网络的恶意网站防护方法及系统
US10348684B2 (en) * 2016-09-01 2019-07-09 Hewlett Packard Enterprise Development Lp Filtering of packets for packet types at network devices

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523311A (zh) * 2011-11-25 2012-06-27 中国科学院计算机网络信息中心 非法域名识别方法及装置
CN102438025A (zh) * 2012-01-10 2012-05-02 中山大学 一种基于Web代理的间接分布式拒绝服务攻击抵御方法及系统
US20160134639A1 (en) * 2012-03-14 2016-05-12 Bot Or Not, Llc Method for user authentication using dnssec
CN103152357A (zh) * 2013-03-22 2013-06-12 北京网御星云信息技术有限公司 一种针对dns服务的防御方法、装置和系统
CN103294822A (zh) * 2013-06-17 2013-09-11 北京航空航天大学 一种基于主动哈希和布隆过滤器的高效缓存方法
EP3010208A1 (en) * 2014-10-17 2016-04-20 Cisco Technology, Inc. Address autoconfiguration using bloom filter parameters for unique address computation
CN107360198A (zh) * 2017-09-12 2017-11-17 中国联合网络通信集团有限公司 可疑域名检测方法及系统
CN108683686A (zh) * 2018-06-21 2018-10-19 中国科学院信息工程研究所 一种随机子域名DDoS攻击检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵晓永、王磊: ""面向分布式网络爬虫的域名解析方法研究"", 《北京信息科技大学学报(自然科学版)》, vol. 32, no. 02, 15 April 2017 (2017-04-15), pages 45 - 49 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118590244A (zh) * 2024-07-23 2024-09-03 中电信量子科技有限公司 基于crl文件验证证书合法性的方法及系统
CN118590244B (zh) * 2024-07-23 2024-10-11 中电信量子科技有限公司 基于crl文件验证证书合法性的方法及系统

Also Published As

Publication number Publication date
JP2023502361A (ja) 2023-01-24
KR20220101190A (ko) 2022-07-19
WO2021102414A1 (en) 2021-05-27
KR102681031B1 (ko) 2024-07-04
EP4059202A1 (en) 2022-09-21
KR20240110080A (ko) 2024-07-12

Similar Documents

Publication Publication Date Title
US11902250B2 (en) Methods and systems for prevention of attacks associated with the domain name system
CN114095198B (zh) 用于网络安全应用的高效加密sni过滤的方法和系统
US12021835B2 (en) Methods and systems for efficient packet filtering
US9838413B2 (en) Zero day threat detection based on fast flux detection and aggregation
KR102681031B1 (ko) 도메인 네임 시스템과 연관된 공격을 방지하기 위한 방법 및 시스템
US9634943B2 (en) Transparent provisioning of services over a network
US7849507B1 (en) Apparatus for filtering server responses
US7707287B2 (en) Virtual host acceleration system
US20080082662A1 (en) Method and apparatus for controlling access to network resources based on reputation
Bushart et al. DNS unchained: Amplified application-layer DoS attacks against DNS authoritatives
US8077622B2 (en) Systems and methods for efficiently load balancing based on least connections
CN118355631A (zh) 使用加密dns控制互联网访问的系统及方法
Lee et al. Improving the resilience of content distribution networks to large scale distributed denial of service attacks
Jacobson et al. The magazine archive includes every article published in Communications of the ACM for over the past 50 years.
Verwoerd Stateful distributed firewalls.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: New Hampshire

Applicant after: Xiangxin Network Co.,Ltd.

Address before: New Hampshire

Applicant before: Centripetal network Co.

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20230410

Address after: Ireland Galway

Applicant after: Xiangxin Co.,Ltd.

Address before: New Hampshire

Applicant before: Xiangxin Network Co.,Ltd.

TA01 Transfer of patent application right