CN113839940A - 基于url模式树的防御方法、装置、电子设备和可读存储介质 - Google Patents
基于url模式树的防御方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN113839940A CN113839940A CN202111100752.1A CN202111100752A CN113839940A CN 113839940 A CN113839940 A CN 113839940A CN 202111100752 A CN202111100752 A CN 202111100752A CN 113839940 A CN113839940 A CN 113839940A
- Authority
- CN
- China
- Prior art keywords
- node
- url
- pattern tree
- regular expression
- url pattern
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种基于URL模式树的防御方法、装置、电子设备和可读存储介质,通过响应目标域名的访问请求,以获取访问请求中携带的所请求的URL,将URL与预设的正则表达式集合中的各正则表达式进行匹配,正则表达式集合为通过遍历由目标域名对应的URL数据构建的URL模式树所获得。若URL未能与正则表达式中的任意一个正则表达式匹配,则对访问请求进行拦截。本方案,通过预先针对目标域名进行URL模式树构建的方式获得正则表达式集合,进而通过正则表达式匹配的方式实现防御拦截,基于URL模式树的树结构可体现域名的业务逻辑,无需在了解域名业务逻辑的基础上通过人工设置正则表达式,在效率及自动化程度上均可达到较优效果。
Description
技术领域
本申请涉及计算机网络技术领域,具体而言,涉及一种基于URL模式树的防御方法、装置、电子设备和可读存储介质。
背景技术
随着互联网的发展,网络应用已经越来越广泛,几乎每个人都能通过设备连网以进入互联网。但各种问题也随之而来,例如某些为了利益对某些域名进行攻击,使其服务器在一段时间内造成瘫痪。
而现在已经有各种云防御系统,可针对各种攻击进行防御。其中比较典型的拦截方式是通过单次请求的信息判断其是否为恶意请求。其中一种判断方法是通过所请求的URL进行判断,并执行防御拦截。在进行URL判断时,目前采用的方式是通过与正则表达式进行匹配的方式进行判断。而现有的基于URL数据的正则表达式的设置需要业务人员在了解域名的业务逻辑的情况下,按照一定规则进行人工编写。这种方式需要了解域名的业务逻辑,比较耗时且不通用,并且人工编写的方式不够自动化,在效率及维护成本上均存在缺陷。
发明内容
本申请的目的包括,例如,提供了一种基于URL模式树的防御方法、装置、电子设备和可读存储介质,其能够提高网络防御中的效率及自动化程度。
本申请的实施例可以这样实现:
第一方面,本申请提供一种基于URL模式树的防御方法,所述方法包括:
响应于对目标域名的访问请求,并获取所述访问请求中携带的所请求的URL;
将所述URL与预设的正则表达式集合中的各正则表达式进行匹配,其中,所述正则表达式集合为通过遍历由所述目标域名对应的URL数据构建的URL模式树所获得;
若所述URL未能与所述正则表达式集合中的任意一个正则表达式匹配,则对所述访问请求进行拦截。
在可选的实施方式中,所述方法还包括预先构建所述URL模式树的步骤,该步骤包括:
采集历史时段内所述目标域名的多条URL数据;
按预设规则对每条所述URL数据进行处理,得到对应的键值对;
根据每条URL数据对应的键值对,构建包含多个节点的URL模式树。
在可选的实施方式中,各所述节点具有定义信息,所述定义信息包括所述节点对应的键、所述键对应的值、所述键出现的频数、所述节点是否可作为结束节点的标识。
在可选的实施方式中,所述根据每条URL数据对应的键值对,构建包含多个节点的URL模式树的步骤,包括:
从URL模式树的根节点开始,在基于各节点进行子树构建时,统计具有相同指定键的多个节点各自在所述指定键下的值的频数;
针对频数大于或等于设定频数的节点,基于所述节点继续进行子树的构建;
针对频数小于所述设定频数的至少两个节点,基于所述至少两个节点在所述指定键下的值进行合并正则化,并基于合并正则化后得到的节点继续进行子树的构建;
直至设置的所有指定键下的节点均构建完成,得到所述URL模式树。
在可选的实施方式中,所述方法还包括对所述URL模式树进行更新的步骤,该步骤包括:
采集更新时段内所述目标域名的多条URL数据,并基于该多条URL数据构建得到更新URL模式树,其中,所述更新时段在时间轴上处于所述历史时段之后;
将所述更新URL模式树与所述URL模式树进行比对,以基于所述更新URL模式树中包含的节点信息对所述URL模式树进行更新。
在可选的实施方式中,所述将所述更新URL模式树与所述URL模式树进行比对,以基于所述更新URL模式树中包含的节点信息对所述URL模式树进行更新的步骤,包括:
对所述更新URL模式树和URL模式树进行同步遍历递归,对于遍历到的所述更新URL模式树中的第一节点和URL模式树中的第二节点,若所述第一节点对应的键小于所述第二节点对应的键,则将所述第一节点插入到所述URL模式树的第二节点之后;
若所述第一节点对应的键等于所述第二节点的键,则将所述第一节点合并至所述URL模式树的第二节点;
若所述第一节点对应的键大于所述第二节点的键,则不作处理并继续遍历至下一级节点。
在可选的实施方式中,所述将所述第一节点合并至所述URL模式树的第二节点的步骤,包括:
若所述第一节点和第二节点未进行合并正则化处理,则将所述第一节点的键对应的值合并至所述URL模式树的第二节点的值中;
若所述第一节点和第二节点为合并正则化处理后的节点,则在所述第一节点的正则表达式包含所述第二节点的正则表达式时,将所述第二节点的正则表达式替换为所述第一节点的正则表达式,在所述第一节点的正则表达式与所述第二节点的正则表达式存在交集时,将所述第一节点的正则表达式合并至所述第二节点的正则表达式中。
第二方面,本申请提供一种基于URL模式树的防御装置,所述装置包括:
响应模块,用于响应于对目标域名的访问请求,并获取所述访问请求中携带的所请求的URL;
匹配模块,用于将所述URL与预设的正则表达式集合中的各正则表达式进行匹配,其中,所述正则表达式集合为通过遍历由所述目标域名对应的URL数据构建的URL模式树所获得;
防御模块,用于在所述URL未能与所述正则表达式集合中的任意一个正则表达式匹配,对所述访问请求进行拦截。
第三方面,本申请提供一种电子设备,包括一个或多个存储介质和一个或多个与存储介质通信的处理器,一个或多个存储介质存储有处理器可执行的机器可执行指令,当电子设备运行时,处理器执行所述机器可执行指令,以执行前述实施方式中任意一项所述的方法步骤。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可执行指令,所述机器可执行指令被执行时实现前述实施方式中任意一项所述的方法步骤。
本申请实施例的有益效果包括,例如:
本申请提供一种基于URL模式树的防御方法、装置、电子设备和可读存储介质,通过响应目标域名的访问请求,以获取访问请求中携带的所请求的URL,将URL与预设的正则表达式集合中的各正则表达式进行匹配,其中,正则表达式集合为通过遍历由目标域名对应的URL数据构建的URL模式树所获得。若URL未能与正则表达式中的任意一个正则表达式匹配,则对访问请求进行拦截。本方案,通过预先针对目标域名进行URL模式树构建的方式获得正则表达式集合,进而通过正则表达式匹配的方式实现防御拦截,基于URL模式树的树结构可体现域名的业务逻辑,无需在了解域名业务逻辑的基础上通过人工设置正则表达式,在效率及自动化程度上均可达到较优效果。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的基于URL模式树的防御方法的流程图;
图2为本申请实施例提供的基于URL模式树的防御方法中,构建URL模式树的方法的流程图;
图3为图2中步骤S230包含的子步骤的流程图;
图4为本申请实施例提供的基于URL模式树的防御方法中,更新URL模式树的方法的流程图;
图5为图4中步骤S320包含的子步骤的流程图;
图6为图5中步骤S323包含的子步骤的流程图;
图7为本申请实施例提供的电子设备的结构框图;
图8为本申请实施例提供的基于URL模式树的防御装置的功能模块框图。
图标:110-存储介质;120-处理器;130-基于URL模式树的防御装置;131-响应模块;132-匹配模块;133-防御模块;140-通信接口。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
请参阅图1,本申请实施例还提供一种可应用于电子设备的基于URL模式树的防御方法,以用于对网络中的恶意访问进行拦截处理,该电子设备可以为网络中的服务器、网关设备等。该基于URL模式树的防御方法有关的流程所定义的方法步骤可以由所述电子设备实现。下面将对图1所示的具体流程进行详细阐述。
步骤S110,响应于对目标域名的访问请求,并获取所述访问请求中携带的所请求的URL。
步骤S120,将所述URL与预设的正则表达式集合中的各正则表达式进行匹配,其中,所述正则表达式集合为通过遍历由所述目标域名对应的URL数据构建的URL模式树所获得。
步骤S130,若所述URL未能与所述正则表达式集合中的任意一个正则表达式匹配,则对所述访问请求进行拦截。
本实施例中,用户终端可向电子设备发起对目标域名的访问请求,该目标域名可为任意的进行攻击防御保护的域名。域名是由一串用点分割的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识。
用户终端发起的访问请求中携带所请求的URL,该访问请求以用于向目标域名下的该URL对应的网页进行访问。URL用于指定Web资源在网络上的位置以及用于检索该资源的机制。
URL由多个部分组成,例如包含目录名称、文件路径和URL参数。恶意攻击者往往会对其中的URL参数进行操纵以创建新的URL,以嵌入恶意代码并进行传播攻击。
本实施例中,可预先基于目标域名对应的URL数据构建URL模式树,通过URL数据构建的模式树,可以将URL的各个组成部分合并成正则表达式形式,能够有效地体现域名的业务逻辑。此外,可预先通过遍历URL模式树中的各个节点,从而可生成URL模式树对应的包含多个正则表达式的正则表达式集合。
本实施例中,用于构建URL模式树的URL数据为目标域名的有效URL,也即非攻击URL,因此,可以将接收到的访问请求中的URL与预设的正则表达式集合中的各正则表达式进行匹配,如果访问请求中的URL未能与正则表达式集合中的任意一个正则表达式匹配,则表明访问请求中的URL可能是攻击者构造的URL,为恶意的访问请求,可对该访问请求进行拦截。
若访问请求中的URL能够与正则表达式集合中的其中一个正则表达式匹配,则表明该URL为非攻击的URL,可对该访问请求进行正常处理。
本实施例中,采用预先基于目标域名的URL数据构建URL模式树,并遍历URL模式树得到正则表达式集合的方式,以在接收到访问请求时,可将访问请求中的URL与正则表达式集合中的各个正则表达式进行匹配,从而判断访问请求是否为恶意请求。采用构建URL模式树的方式予以实现,基于URL模式树的树结构可体现域名的业务逻辑,无需在了解域名业务逻辑的基础上通过人工设置正则表达式,在效率及自动化程度上均可达到较优效果。
本实施例中,需要预先构建目标域名的URL模式树,请参阅图2,可采用以下方式进行构建:
步骤S210,采集历史时段内所述目标域名的多条URL数据。
步骤S220,按预设规则对每条所述URL数据进行处理,得到对应的键值对。
步骤S230,根据每条URL数据对应的键值对,构建包含多个节点的URL模式树。
其中,所述的历史时段可以是如最近一周、最近五天等不限,采集的该历史时段内目标域名的各条URL数据可为进行预处理后的有效的URL数据。
在一种可能的实现方式中,对于URL数据的预处理方式可以是通过响应状态码进行处理。例如,可获取各条URL数据中的响应状态码,响应状态码是用以标识服务器超文本传输协议响应状态的三位数字代码。所有状态码的第一个数字代表了响应的五种状态之一。其中,响应状态码对应具有五种类型,分别为消息、成功、重定向、请求错误和服务器错误。
消息类型的响应状态码为数字1开头,表示请求已被接受,需要继续处理。成功类型的响应状态码以数字2开头,表示请求已成功被服务器接收、理解并接受。重定向类型的响应状态码以数字3开头,表示需要客户端采取进一步的操作才能完成请求。而请求错误类型的响应状态码以数字4开头,表示客户端可能发生了错误,妨碍了服务器的处理。服务器错误类型的响应状态码以数字5或6开头,表示服务器在处理请求的过程中有错误或者异常状态发生。
因此,在基于响应状态码对URL数据进行预处理时,可以将其中响应状态码为数字4、5、6开头的URL数据剔除,从而保障用于构建URL模式树的URL数据为真实有效的。
此外,采集到的URL数据中可能存在重复,也即历史时段内多次重复对相应的网页的访问产生的。因此,在一种可能的实现方式中,可以对上述剔除处理后的URL数据进行去重处理,以保障预处理之后的URL数据具有唯一性的特点。
针对上述预处理之后的每条URL数据,可以按预设规则对每条URL数据进行处理得到对应的键值对。URL数据由多个组成部分组成,可以将每条URL数据拆分为域名、路径、参数多个部分,其中,域名中各个域名部分利用“.”进行分割,路径中各个路径部分利用“/”进行分割,参数中各个参数部分利用“&”进行分割。
例如,针对URL数据https://www.admin.com/ip/search?ip=1.0.0.0,进行拆分做成的键值对为:
[
“domain_0”:“www”,
“domain_1”:“admin”,
“domain_2”:“com”,
“path_0”:“ip”,
“path_1”:“search”,
“ip”:“1.0.0.0”
]
在此基础上,可以根据每条URL数据对应的键值对构建包含多个节点的URL模式树。
本实施例中,在构建URL模式树中需要预先对树中的各个节点进行定义,各个节点具有相应的定义信息,定义信息包括,但不限于节点对应的键、键对应的值、键对应的值出现的频数、节点是否可作为结束节点的标识。其中,所谓的结束节点为现有存在的URL数据中可以存在于末尾的参数信息所对应的节点,可定义为结束节点。
例如,各个节点的定义信息可表示如下:
{
“admin”:#对应的值
{
“key”:“domin_1”,#对应的键
“freq_count”:200,#出现频数
“maybe_end”:False,#可否作为结束节点
“child”:{...}#子树
}
}
本实施例中,在节点的定义信息中,其中,节点对应的键可以放在外面、值放在里面,此外,也可以将键放在里面、值放在外面,具体地本实施例不作限制。
在构建URL模式树时,模式树中各个节点在树中的位置,可以基于节点的键进行相应设置,其中,节点的键的排序方式可以按照域名、路径、参数的顺序依次进行排序。而其中,域名和路径分别可包含多个域名部分、路径部分。域名中各个域名部分可以分别设置对应的下标以便索引,例如上述的domain_0、domain_1、domain_2。路径中各个路径部分可以同样可分别设置对应的下标,例如上述的path_0、path_1。
在模式树的节点设置中,对于域名和路径可以按其各个部分的下标进行依次排序。而键值对中的参数的排序可以按照字典顺序进行排序。
基于上述对节点的定义,以及根据每条URL数据对应的键值对进行URL模式树的构建,构建得到的URL模式树中路径的子节点只会出现在域名下的某个子树中,规范模式树的结构,有效体现目标域名的业务逻辑。
在URL模式树的构建中,可能会存在一些出现频数较少的键值对,对于这类数据若不作处理而按常规方式构建在模式树中,则可能导致模式树的规模庞大、复杂度高。基于此考虑,请参阅图3,在本实施例中,在上述构建URL模式树中的步骤中,可以通过以下方式实现:
步骤S231,从URL模式树的根节点开始,在基于各节点进行子树构建时,统计具有相同指定键的多个节点各自在所述指定键下的值的频数。
步骤S232,针对频数大于或等于设定频数的节点,基于所述节点继续进行子树的构建。
步骤S233,针对频数小于所述设定频数的至少两个节点,基于所述至少两个节点在所述指定键下的值进行合并正则化,并基于合并正则化后得到的节点继续进行子树的构建。
步骤S234,直至设置的所有指定键下的节点均构建完成,得到所述URL模式树。
本实施例中,假设先将URL模式树作为一个树,则在构建的时候将从该树的根节点开始进行构建,并按照上述的键之间的顺序以及键内部的顺序进行一级一级的构建。除模式树中的结束节点之外的其他节点,可以基于节点进行子树的构建。
其中,所述的指定键可以是上述的如域名、路径、参数中的任意一个,或者是域名、路径或参数中的一个部分,例如上述域名中的domain_0、domain_1、domain_2中的任意一个。
而采集的多个URL数据中在指定键下对应的值可能并不相同,例如,针对domain_2而言,有些URL数据的该指定键对应的值为com,有些URL数据的该指定键对应的值为cn。因此,可以对具有相同指定键的多个节点各自在该指定键下的值的频数进行统计。例如,统计在指定键domain_2下值为com的URL数据的频数,以及指定键domain_2下值为cn的URL数据的频数。
对于频数大于或等于设定频数的节点,则可以基于该节点继续进行后续的子树的构建。而对于频数小于设定频数的节点,则可以进行合并正则化,以避免频数过少的节点均占据为模式树中的一个节点,导致模式树的规模过大的问题。
按上述方式进行各个节点的子树的构建,直到所有的指定键均构建完成,例如,上述的域名、路径、参数以及各个键内部的组成部分均构建完成后,可以得到构建的URL模式树。此外,判定停止构建的方式也可以是如节点对应的URL数据量小于指定阈值时,可以停止后续的构建,以当前的节点作为结束节点,完成URL模式树的构建。
由于在实施时会不断产生新的URL数据,因此需要对URL模式树进行更新,以符合实际应用场景。请参阅图4,在本实施例中,可以通过以下方式对URL模式树进行更新:
步骤S310,采集更新时段内所述目标域名的多条URL数据,并基于该多条URL数据构建得到更新URL模式树,其中,所述更新时段在时间轴上处于所述历史时段之后。
步骤S320,将所述更新URL模式树与所述URL模式树进行比对,以基于所述更新URL模式树中包含的节点信息对所述URL模式树进行更新。
所述的更新时段可以是当前时间节点的前一周、历史时段可以是当前时间节点的前两周至前一周的时段。本实施例中,基于采集到的更新时段内的URL数据构建更新URL模式树的上述与上述的构建URL模式树的方式相同,在此不作赘述。
本实施例中,对于URL模式树的更新,可以基于新构建的更新URL模式树的信息在原有的URL模式树的基础上进行调整更新。
本实施例中,在采集构建URL模式树的方式以生成正则表达式集合进行攻击防御,通过设置好的构建逻辑即可自动生成ULR模式树,在进行URL模式树的更新时,也可达到自动更新的效果。而现有技术中采用的了解域名业务逻辑的情况下人工编写规则的方式,在域名业务逻辑有所更新时,还需人工更新编写规则,其维护成本很大。而本实施例中的基于构建URL模式树的方式,在更新URL模式树时也可达到自动更新的效果,大大降低了维护成本。
请参阅图5,本实施例中,在对URL模式树进行更新时,可以通过以下方式实现:
步骤S321,对所述更新URL模式树和URL模式树进行同步遍历递归,对于遍历到的所述更新URL模式树中的第一节点和URL模式树中的第二节点,比对所述第一节点对应的键与所述第二节点对应的键的大小。
步骤S322,若所述第一节点对应的键小于所述第二节点对应的键,则将所述第一节点插入到所述URL模式树的第二节点之后。
步骤S323,若所述第一节点对应的键等于所述第二节点的键,则将所述第一节点合并至所述URL模式树的第二节点。
步骤S324,若所述第一节点对应的键大于所述第二节点的键,则不作处理并继续遍历至下一级节点。
本实施例中,由于更新URL模式树与原有的URL模式树的构建规律相同,因此,两者在结构上大致相同。在进行更新URL模式树和URL模式树的比对时,对两者中的节点进行同步遍历递归,也就是说,按相同的遍历顺序进行遍历。
遍历过程中到达的节点为所指向的节点,其中,更新URL模式树的节点命名为第一节点,同步指向的URL模式树中的节点命名为第二节点。如果第一节点对应的键小于第二节点对应的键,则将第一节点插入到URL模式树中第二节点之后。
其中,判断第二节点的键和第一节点的键的大小的方式是,如上述的节点对应的键可按如域名、路径、参数的顺序进行排序,而域名内部、路径内部和参数内部也是按一定的顺序进行排序。其中,排序在前的键大于排序在后的键。
例如,假设同步指向的更新URL模式树中的第一节点对应的键为domain_1,URL模式中的第二节点对应的键为domain_0,也即,第一节点对应的键小于第二节点对应的键,则可以将第一节点插入到URL模式树中的第二节点之后。
此外,若第一节点对应的键等于第二节点的键,则可以将第一节点的信息合并到第二节点中。而若第一节点对应的键大于第二节点对应的键,这种情形可能是由于更新URL模式树相较原有的URL模式树缺少部分键,由于更新的方式是对原有的URL模式树进行更新,因此这种情形下,无需进行处理。
请参阅图6,本实施例中,在将更新URL模式树中的第一节点合并到URL模式树中的第二节点时,可以采用以下方式实现:
步骤S3231,检测所述第一节点和第二节点是否进行合并正则化处理,若未进行合并正则化处理,则执行以下步骤S3232,若所述第一节点和第二节点为合并正则化处理后的节点,则执行以下步骤S3233或步骤S3234。
步骤S3232,将所述第一节点的键对应的值合并至所述URL模式树的第二节点的值中。
步骤S3233,在所述第一节点的正则表达式包含所述第二节点的正则表达式时,将所述第二节点的正则表达式替换为所述第一节点的正则表达式。
步骤S3234,在所述第一节点的正则表达式与所述第二节点的正则表达式存在交集时,将所述第一节点的正则表达式合并至所述第二节点的正则表达式中。
本实施例中,如果第一节点和第二节点是确切的节点,则直接将两者合并即可。若是正则表达式,如果第一节点的正则表达式包含于第二节点的正则表达式,则表明第一节点表征的信息仅是第二节点表征的信息中的部分,因此,此种情形下可以不作处理。若第一节点的正则表达式包含第二节点的正则表达式,则表明在更新URL模式树中可能出现了新的URL数据形式,则可以将第二节点的正则表达式替换为第一节点的正则表达式。此外,若第一节点的正则表达式与第二节点的正则表达式存在交集,同样地,表明在更新URL模式树中可能出现了新的URL,因此,可以将第一节点的正则表达式合并至第二节点的正则表达式中。
其中,关于正则表达式的合并以及包含关系的判断可以参见现有技术中的已有处理方式,本实施例中对此不作赘述。
请参阅图7,为本申请实施例提供的电子设备的示例性组件示意图,该电子设备可为上述的服务器或网关设备。该电子设备可包括存储介质110、处理器120、基于URL模式树的防御装置130及通信接口140。本实施例中,存储介质110与处理器120均位于电子设备中且二者分离设置。然而,应当理解的是,存储介质110也可以是独立于电子设备之外,且可以由处理器120通过总线接口来访问。可替换地,存储介质110也可以集成到处理器120中,例如,可以是高速缓存和/或通用寄存器。
基于URL模式树的防御装置130可以理解为上述电子设备,或电子设备的处理器120,也可以理解为独立于上述电子设备或处理器120之外的在电子设备控制下实现上述基于URL模式树的防御方法的软件功能模块。
如图8所示,上述基于URL模式树的防御装置130可以包括响应模块131、匹配模块132和防御模块133。下面分别对该基于URL模式树的防御装置130的各个功能模块的功能进行详细阐述。
响应模块131,用于响应于对目标域名的访问请求,并获取所述访问请求中携带的所请求的URL。
可以理解,该响应模块131可以用于执行上述步骤S110,关于该响应模块131的详细实现方式可以参照上述对步骤S110有关的内容。
匹配模块132,用于将所述URL与预设的正则表达式集合中的各正则表达式进行匹配,其中,所述正则表达式集合为通过遍历由所述目标域名对应的URL数据构建的URL模式树所获得。
可以理解,该匹配模块132可以用于执行上述步骤S120,关于该匹配模块132的详细实现方式可以参照上述对步骤S120有关的内容。
防御模块133,用于在所述URL未能与所述正则表达式集合中的任意一个正则表达式匹配,对所述访问请求进行拦截。
可以理解,该防御模块133可以用于执行上述步骤S130,关于该防御模块133的详细实现方式可以参照上述对步骤S130有关的内容。
在一种可能的实现方式中,所述防御装置还包括用于预先构建所述URL模式树的构建模块,该构建模块具体可以用于:
采集历史时段内所述目标域名的多条URL数据;
按预设规则对每条所述URL数据进行处理,得到对应的键值对;
根据每条URL数据对应的键值对,构建包含多个节点的URL模式树。
在一种可能的实现方式中,各所述节点具有定义信息,所述定义信息包括所述节点对应的键、所述键对应的值、所述键对应的值出现的频数、所述节点是否可作为结束节点的标识。
在一种可能的实现方式中,上述构建模块具体可以用于:
从URL模式树的根节点开始,在基于各节点进行子树构建时,统计具有相同指定键的多个节点各自在所述指定键下的值的频数;
针对频数大于或等于设定频数的节点,基于所述节点继续进行子树的构建;
针对频数小于所述设定频数的至少两个节点,基于所述至少两个节点在所述指定键下的值进行合并正则化,并基于合并正则化后得到的节点继续进行子树的构建;
直至设置的所有指定键下的节点均构建完成,得到所述URL模式树。
在一种可能的实现方式中,所述防御装置还包括用于对所述URL模式树进行更新的更新模块,该更新模块具体可以用于:
采集更新时段内所述目标域名的多条URL数据,并基于该多条URL数据构建得到更新URL模式树,其中,所述更新时段在时间轴上处于所述历史时段之后;
将所述更新URL模式树与所述URL模式树进行比对,以基于所述更新URL模式树中包含的节点信息对所述URL模式树进行更新。
在一种可能的实现方式中,上述更新模块具体可以用于:
对所述更新URL模式树和URL模式树进行同步遍历递归,对于遍历到的所述更新URL模式树中的第一节点和URL模式树中的第二节点,若所述第一节点对应的键小于所述第二节点对应的键,则将所述第一节点插入到所述URL模式树的第二节点之后;
若所述第一节点对应的键等于所述第二节点的键,则将所述第一节点合并至所述URL模式树的第二节点;
若所述第一节点对应的键大于所述第二节点的键,则不作处理并继续遍历至下一级节点。
在一种可能的实现方式中,上述更新模块可以用于通过以下方式将第一节点合并至第二节点:
若所述第一节点和第二节点未进行合并正则化处理,则将所述第一节点的键对应的值合并至所述URL模式树的第二节点的值中;
若所述第一节点和第二节点为合并正则化处理后的节点,则在所述第一节点的正则表达式包含所述第二节点的正则表达式时,将所述第二节点的正则表达式替换为所述第一节点的正则表达式,在所述第一节点的正则表达式与所述第二节点的正则表达式存在交集时,将所述第一节点的正则表达式合并至所述第二节点的正则表达式中。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
进一步地,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有机器可执行指令,机器可执行指令被执行时实现上述实施例提供的基于URL模式树的防御方法。
具体地,该计算机可读存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该计算机可读存储介质上的计算机程序被运行时,能够执行上述基于URL模式树的防御方法。关于计算机可读存储介质中的及其可执行指令被运行时,所涉及的过程,可以参照上述方法实施例中的相关说明,这里不再详述。
综上所述,本申请实施例提供的一种基于URL模式树的防御方法、装置、电子设备和可读存储介质,通过响应目标域名的访问请求,以获取访问请求中携带的所请求的URL,将URL与预设的正则表达式集合中的各正则表达式进行匹配,其中,正则表达式集合为通过遍历由目标域名对应的URL数据构建的URL模式树所获得。若URL未能与正则表达式中的任意一个正则表达式匹配,则对访问请求进行拦截。本方案,通过预先针对目标域名进行URL模式树构建的方式获得正则表达式集合,进而通过正则表达式匹配的方式实现防御拦截,基于URL模式树的树结构可体现域名的业务逻辑,无需在了解域名业务逻辑的基础上通过人工设置正则表达式,在效率及自动化程度上均可达到较优效果。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种基于URL模式树的防御方法,其特征在于,所述方法包括:
响应于对目标域名的访问请求,并获取所述访问请求中携带的所请求的URL;
将所述URL与预设的正则表达式集合中的各正则表达式进行匹配,其中,所述正则表达式集合为通过遍历由所述目标域名对应的URL数据构建的URL模式树所获得;
若所述URL未能与所述正则表达式集合中的任意一个正则表达式匹配,则对所述访问请求进行拦截。
2.根据权利要求1所述的基于URL模式树的防御方法,其特征在于,所述方法还包括预先构建所述URL模式树的步骤,该步骤包括:
采集历史时段内所述目标域名的多条URL数据;
按预设规则对每条所述URL数据进行处理,得到对应的键值对;
根据每条URL数据对应的键值对,构建包含多个节点的URL模式树。
3.根据权利要求2所述的基于URL模式树的防御方法,其特征在于,各所述节点具有定义信息,所述定义信息包括所述节点对应的键、所述键对应的值、所述键对应的值出现的频数、所述节点是否可作为结束节点的标识。
4.根据权利要求2所述的基于URL模式树的防御方法,其特征在于,所述根据每条URL数据对应的键值对,构建包含多个节点的URL模式树的步骤,包括:
从URL模式树的根节点开始,在基于各节点进行子树构建时,统计具有相同指定键的多个节点各自在所述指定键下的值的频数;
针对频数大于或等于设定频数的节点,基于所述节点继续进行子树的构建;
针对频数小于所述设定频数的至少两个节点,基于所述至少两个节点在所述指定键下的值进行合并正则化,并基于合并正则化后得到的节点继续进行子树的构建;
直至设置的所有指定键下的节点均构建完成,得到所述URL模式树。
5.根据权利要求2所述的基于URL模式树的防御方法,其特征在于,所述方法还包括对所述URL模式树进行更新的步骤,该步骤包括:
采集更新时段内所述目标域名的多条URL数据,并基于该多条URL数据构建得到更新URL模式树,其中,所述更新时段在时间轴上处于所述历史时段之后;
将所述更新URL模式树与所述URL模式树进行比对,以基于所述更新URL模式树中包含的节点信息对所述URL模式树进行更新。
6.根据权利要求5所述的基于URL模式树的防御方法,其特征在于,所述将所述更新URL模式树与所述URL模式树进行比对,以基于所述更新URL模式树中包含的节点信息对所述URL模式树进行更新的步骤,包括:
对所述更新URL模式树和URL模式树进行同步遍历递归,对于遍历到的所述更新URL模式树中的第一节点和URL模式树中的第二节点,若所述第一节点对应的键小于所述第二节点对应的键,则将所述第一节点插入到所述URL模式树的第二节点之后;
若所述第一节点对应的键等于所述第二节点的键,则将所述第一节点合并至所述URL模式树的第二节点;
若所述第一节点对应的键大于所述第二节点的键,则不作处理并继续遍历至下一级节点。
7.根据权利要求6所述的基于URL模式树的防御方法,其特征在于,所述将所述第一节点合并至所述URL模式树的第二节点的步骤,包括:
若所述第一节点和第二节点未进行合并正则化处理,则将所述第一节点的键对应的值合并至所述URL模式树的第二节点的值中;
若所述第一节点和第二节点为合并正则化处理后的节点,则在所述第一节点的正则表达式包含所述第二节点的正则表达式时,将所述第二节点的正则表达式替换为所述第一节点的正则表达式,在所述第一节点的正则表达式与所述第二节点的正则表达式存在交集时,将所述第一节点的正则表达式合并至所述第二节点的正则表达式中。
8.一种基于URL模式树的防御装置,其特征在于,所述装置包括:
响应模块,用于响应于对目标域名的访问请求,并获取所述访问请求中携带的所请求的URL;
匹配模块,用于将所述URL与预设的正则表达式集合中的各正则表达式进行匹配,其中,所述正则表达式集合为通过遍历由所述目标域名对应的URL数据构建的URL模式树所获得;
防御模块,用于在所述URL未能与所述正则表达式集合中的任意一个正则表达式匹配,对所述访问请求进行拦截。
9.一种电子设备,其特征在于,包括一个或多个存储介质和一个或多个与存储介质通信的处理器,一个或多个存储介质存储有处理器可执行的机器可执行指令,当电子设备运行时,处理器执行所述机器可执行指令,以执行权利要求1-7中任意一项所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可执行指令,所述机器可执行指令被执行时实现权利要求1-7中任意一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111100752.1A CN113839940B (zh) | 2021-09-18 | 2021-09-18 | 基于url模式树的防御方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111100752.1A CN113839940B (zh) | 2021-09-18 | 2021-09-18 | 基于url模式树的防御方法、装置、电子设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113839940A true CN113839940A (zh) | 2021-12-24 |
CN113839940B CN113839940B (zh) | 2023-06-06 |
Family
ID=78959913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111100752.1A Active CN113839940B (zh) | 2021-09-18 | 2021-09-18 | 基于url模式树的防御方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113839940B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314271A (zh) * | 2022-07-29 | 2022-11-08 | 云盾智慧安全科技有限公司 | 一种访问请求的检测方法、系统及计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110307436A1 (en) * | 2010-06-10 | 2011-12-15 | Microsoft Corporation | Pattern tree-based rule learning |
CN106940711A (zh) * | 2017-02-27 | 2017-07-11 | 北京神州绿盟信息安全科技股份有限公司 | 一种url检测方法及检测装置 |
CN107508809A (zh) * | 2017-08-17 | 2017-12-22 | 腾讯科技(深圳)有限公司 | 识别网址类型的方法及装置 |
WO2018001078A1 (zh) * | 2016-06-29 | 2018-01-04 | 中兴通讯股份有限公司 | 一种url匹配方法、装置及存储介质 |
-
2021
- 2021-09-18 CN CN202111100752.1A patent/CN113839940B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110307436A1 (en) * | 2010-06-10 | 2011-12-15 | Microsoft Corporation | Pattern tree-based rule learning |
WO2018001078A1 (zh) * | 2016-06-29 | 2018-01-04 | 中兴通讯股份有限公司 | 一种url匹配方法、装置及存储介质 |
CN106940711A (zh) * | 2017-02-27 | 2017-07-11 | 北京神州绿盟信息安全科技股份有限公司 | 一种url检测方法及检测装置 |
CN107508809A (zh) * | 2017-08-17 | 2017-12-22 | 腾讯科技(深圳)有限公司 | 识别网址类型的方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314271A (zh) * | 2022-07-29 | 2022-11-08 | 云盾智慧安全科技有限公司 | 一种访问请求的检测方法、系统及计算机存储介质 |
CN115314271B (zh) * | 2022-07-29 | 2023-11-24 | 云盾智慧安全科技有限公司 | 一种访问请求的检测方法、系统及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113839940B (zh) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11088995B2 (en) | Client/server security by an intermediary rendering modified in-memory objects | |
US10050991B2 (en) | System and method for monitoring network vulnerabilities | |
WO2018121331A1 (zh) | 攻击请求的确定方法、装置及服务器 | |
US10795744B2 (en) | Identifying failed customer experience in distributed computer systems | |
US10824345B2 (en) | Systems and methods for storing object state on hash chains | |
CN111563216B (zh) | 本地数据缓存方法、装置及相关设备 | |
WO2015149628A1 (zh) | Dns缓存信息处理方法、设备及系统 | |
CN113452780B (zh) | 针对客户端的访问请求处理方法、装置、设备及介质 | |
US10187264B1 (en) | Gateway path variable detection for metric collection | |
CN113839940B (zh) | 基于url模式树的防御方法、装置、电子设备和可读存储介质 | |
US10990607B1 (en) | Systems and methods for log aggregation | |
CN111314379A (zh) | 被攻击域名识别方法、装置、计算机设备和存储介质 | |
US10205679B2 (en) | Resource object resolution management | |
CN106959975B (zh) | 一种转码资源缓存处理方法、装置及设备 | |
CN114793244B (zh) | 一种区块链的资源处理方法、装置、设备和介质 | |
US11799882B1 (en) | Network endpoint identification through network fingerprint based entity resolution | |
US11138463B1 (en) | Unsupervised and supervised machine learning approaches to detecting bots and other types of browsers | |
US8281000B1 (en) | Variable-length nonce generation | |
US11743280B1 (en) | Identifying clusters with anomaly detection | |
US20220300478A1 (en) | Competing updates from multiple servicing instances | |
EP4220472A1 (en) | System and method for reference validation of spreadsheets | |
US20150304382A1 (en) | Providing transaction identifiers for application performance management in distributed computer systems | |
CN106911647A (zh) | 一种检测网络攻击的方法和装置 | |
CN115481126A (zh) | 一种链路关系存储方法、装置、设备及介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |