CN113259303A - 一种基于机器学习技术的白名单自学习方法和装置 - Google Patents
一种基于机器学习技术的白名单自学习方法和装置 Download PDFInfo
- Publication number
- CN113259303A CN113259303A CN202010088877.6A CN202010088877A CN113259303A CN 113259303 A CN113259303 A CN 113259303A CN 202010088877 A CN202010088877 A CN 202010088877A CN 113259303 A CN113259303 A CN 113259303A
- Authority
- CN
- China
- Prior art keywords
- parameter
- value
- request
- type
- numerical
- 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/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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Mathematical Physics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于机器学习技术的白名单自学习方法和装置,属于网络安全技术领域。所述方法包括:对多个待学习业务请求的各个请求参数的参数值进行聚合,得到各个所述请求参数对应的取值集合;通过机器学习技术,基于每个所述取值集合的取值个数、数值长度和数值格式,确定所述请求参数对应的参数类型;生成各个所述请求参数对应的参数类型的特征值,并基于所述特征值对新业务请求进行安全检测。采用本发明,WAF能够在常规防护流程前快速有效地过滤出大量正常的业务请求,减少WAF的安全防护负担。
Description
技术领域
本发明涉及网络安全技术领域,特别涉及一种基于机器学习技术的白名单自学习方法和装置。
背景技术
随着互联网和计算机技术的迅速发展,企业业务系统的复杂程度跟随业务需求的发展不断变化,各种各样的业务请求应运而生。由于业务需求越来越多,业务请求的数量、种类、功能也越来越多,企业业务系统的安全需求也随之高涨。目前企业大多采用WAF(WebApplication Firewall,Web应用防火墙)来对接收到的业务请求进行安全防护,以过滤掉异常的业务请求,从而保证企业业务系统的安全。
目前大部分的业务请求很可能是正常的请求,若WAF对每个业务请求逐一进行安全检测,WAF上无效的检测负担则会大幅增加,因此WAF普遍选用基于白名单的安全检测方式。现有的白名单一部分是需要WAF的运营人员进行配置,而人工配置的白名单存在很大的局限性,对运营人员的安全知识要求也比较高,而且无法对所有的正常业务请求进行准确检测,存在较多漏报误报的情况。另一部分白名单采用了机器学习技术来进行内容配置,具体方式也仅是简单的学习请求参数是否是字符型,枚举型等简单的类型,这样也同样容易导致误报和漏报的情况。故而,目前WAF中亟需一种无需人工配置、适用性强、准确性高、流程简单便捷的针对业务请求的安全检测方法。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种基于机器学习技术的白名单自学习方法和装置。所述技术方案如下:
第一方面,提供了一种基于机器学习技术的白名单自学习方法,所述方法包括:
对多个待学习业务请求的各个请求参数的参数值进行聚合,得到各个所述请求参数对应的取值集合;
通过机器学习技术,基于每个所述取值集合的取值个数、数值长度和数值格式,确定所述请求参数对应的参数类型;
生成各个所述请求参数对应的参数类型的特征值,并基于所述特征值对新业务请求进行安全检测。
第二方面,提供了一种基于机器学习技术的白名单自学习装置,所述装置包括:
聚合模块,用于对多个待学习业务请求的各个请求参数的参数值进行聚合,得到各个所述请求参数对应的取值集合;
分类模块,用于通过机器学习技术,基于每个所述取值集合的取值个数、数值长度和数值格式,确定所述请求参数对应的参数类型;
检测模块,用于生成各个所述请求参数对应的参数类型的特征值,并基于所述特征值对新业务请求进行安全检测。
第三方面,提供了一种网络设备,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的基于机器学习技术的白名单自学习方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的基于机器学习技术的白名单自学习方法。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,对多个待学习业务请求的各个请求参数的参数值进行聚合,得到各个请求参数对应的取值集合;通过机器学习技术,基于每个取值集合的取值个数、数值长度和数值格式,确定请求参数对应的参数类型;生成各个请求参数对应的参数类型的特征值,并基于特征值对新业务请求进行安全检测。这样,针对不同企业业务系统的业务请求进行机器学习,并根据一定算法,聚合相同参数类型的相同请求参数,计算出不同参数类型对应的特征值,再根据特征值对业务请求进行加白处理,从而WAF能够在常规防护流程前快速有效地过滤出大量正常的业务请求,减少WAF的安全防护负担。本发明可以适应各种各样的企业业务系统的安全检测需求,且无需人工配置、适用性强、准确性高、流程简单便捷。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于机器学习技术的白名单自学习的方法流程图;
图2是本发明实施例提供的一种基于机器学习技术的白名单自学习的装置结构示意图;
图3是本发明实施例提供的一种基于机器学习技术的白名单自学习的装置结构示意图;
图4为本发明实施例提供的一种网络设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种基于机器学习技术的白名单自学习方法,该方法可以应用于企业业务系统中的WAF上,并主要用来实现白名单的自学习,以及利用白名单对业务请求进行安全检测。WAF可以将通过本方法自学习得到的白名单,与常规防护流程进行结合,来对接收到的业务请求进行安全检测,同时可以在安全检测的过程中,进一步优化白名单,实现白名单持续的自学习。具体来说,WAF接收到业务请求后,可以先匹配白名单进行检测,判断业务请求是否归属白名单,如果归属那么直接把该业务请求发送至后端的企业业务系统;而如果不归属白名单,WAF则可以对业务请求进行数据包解析,再利用归纳提取出的各个参数类型的特征值进行安全检测,若检测通过,则把该业务请求发送至后端的企业业务系统;若检测不通过,则进入到常规防护流程。
下面将结合具体实施方式,对图1所示的处理流程进行详细的说明,内容可以如下:
步骤101,对多个待学习业务请求的各个请求参数的参数值进行聚合,得到各个请求参数对应的取值集合。
在实施中,WAF在对业务请求执行安全检测的过程中,可以定期确定一个网站的所有符合机器学习条件的请求项,并针对各请求项选取在一段时间内所有业务请求(可称为待学习业务请求)作为白名单的学习素材,用于执行参数聚合、特征提取等处理。具体的,WAF可以对多个待学习业务请求进行分类,将请求目标、请求方式相同的业务请求归为同一类别。之后,对于每一类别下的业务请求,WAF可以对多个业务请求中的同一请求参数进行聚合,从而可以得到各个请求参数对应的取值集合。例如,可以将不同用户的账户登录请求归为一类,然后将多个账户登录请求中的账户标识、账户密码和验证信息3个请求参数分别进行聚合,以生成账户标识、账户密码和验证信息3个请求参数对应的取值集合。
可选的,在对业务请求的请求参数进行聚合前,可以先进行数据清洗,已剔除掉无法用于机器学习的业务请求,相应的处理可以如下:当接收到目标业务请求时,判断目标业务请求是否为静态文件请求,是否为无参数请求,或者是否包含无参数值的请求参数;若是,则忽略目标业务请求,否则将目标业务请求设置为待学习业务请求。
其中,目标业务请求可以是针对企业业务系统的任意业务请求。
在实施中,WAF在接收到目标业务请求后,可以先判断目标业务请求是否为符合机器学习要求的请求。具体的,主要可以进行如下判断:其一,目标业务请求是否为静态文件请求,即目标业务请求是否指向静态资源文件;其二,目标业务请求是否为无参数请求,即目标业务请求中是否未携带任何请求参数;其三,目标业务请求是否包含无参数值的请求参数,即目标业务请求中携带了请求参数,但是请求参数的参数值是否为空。如果符合上述判断,WAF则可以判断目标业务请求不属于适合机器学习的请求,进而可以忽略目标业务请求;如果不符合上述判断,则可以将目标业务请求设置为待学习业务请求。
步骤102,通过机器学习技术,基于每个取值集合的取值个数、数值长度和数值格式,确定请求参数对应的参数类型。
在实施中,WAF在聚合得到了各个请求参数对应的取值集合后,针对每个数值集合,可以对数值集合中的所有参数值进行统计,获取所有参数值的取值个数、数值长度和数值格式。其中,取值个数为数值集合中不同取值的个数,数值长度即为数值集合中参数值包含的字符个数,数值格式即为数值集合中参数均符合的格式。如数值集合中包含“15011111111”、“15122222222”、“15011111111”、“15233333333”、“15344444444”5个参数值,则其中包含4个不同的取值,则取值个数为4;每个参数值均包含11个数字,则数值长度为11;每个参数值均符合手机号的格式,则数值格式为手机号。之后,WAF可以利用机器学习技术,基于统计得到的各个取值集合的取值个数、数值长度和数值格式,来确定各个请求参数对应的参数类型。
可选的,确定请求参数对应的参数类型的处理具体可以如下:若取值集合中的取值个数小于预设计数阈值,则确定请求参数为枚举型,否则检测取值集合中的数值长度;若取值集合中的数值长度相同,则根据取值集合中的数值格式,确定请求参数对应的参数类型;若取值集合中的数值长度不相同,则根据数值长度和数值内容,确定请求参数对应的参数类型。
在实施中,WAF确定各个请求参数对应的参数类型时,可以先统计各个请求参数对应的取值集合中的取值个数。若取值个数小于预设计数阈值,则可以确定相应的请求参数对应的参数类型为枚举型。若取值个数不小于预设计数阈值,则可以进一步检测取值集合中的数值长度。若取值集合中的所有参数值(或者90%以上的参数值)的数值长度均相同,则可以认为相应的请求参数为符合标准格式的定长参数,进而可以根据取值集合中的数值格式,确定请求参数对应的参数类型;若取值集合中参数值的数值长度互不相同,或者仅10%以下的参数值相同,则可以进一步根据取值集合中参数值的数值长度和数值内容,来确定相应的请求参数对应的参数类型。
可选的,对于是定长参数的请求参数,其参数类型的确定方式具体可以如下:若取值集合中的数值长度相同,则将取值集合中的所有参数值与预设的标准格式逐一进行比对;当所有参数值均符合目标标准格式时,确定请求参数属于目标标准格式对应的参数类型;若所有参数值于所有标准格式均不相符,则确定请求参数的参数类型为自定义类型。
在实施中,WAF可以针对一些通用的参数类型设置标准格式,当请求参数符合某一标准格式时,可以认为该请求参数即属于该标准格式对应的参数类型,其中,标准格式至少可以包括身份证号格式、银行卡号格式、手机号格式、固定电话号格式、日期格式、时戳格式和IP地址格式。这样,WAF若发现某一类请求参数的取值集合中所有参数值的数值长度均相同,则可以将取值集合中的所有参数值与预设的标准格式逐一进行比对,如先判断参数值的数值格式是否为身份证号格式,若不是,则继续判断参数值的数值格式是否为银行卡号格式,依次类推。当所有参数值均符合目标标准格式时,WAF则可以确定相应的请求参数属于目标标准格式对应的参数类型。而如果遍历了所有标准格式后,发现不存在所有参数值均匹配的标准格式,即所有参数值于所有标准格式均不相符,WAF则可以确定相应的请求参数的参数类型为自定义类型。
可选的,对于不是定长参数的请求参数,其参数类型的确定方式具体可以如下:若取值集合中的数值长度不相同,则判断取值集合中的数据内容是否为纯数值;如果是,则确定请求参数的参数类型为纯数值类型,否则判断数值长度是否大于预设长度阈值;如果大于,则确定请求参数的参数类型为长文本类型,否则确定请求参数的参数类型为短文本类型。
在实施中,对于非定长参数的请求参数,WAF可以根据数值长度和数值内容将这些请求参数大致分为三类。具体来说,若某请求参数的取值集合中的参数值的数值长度不相同,WAF则可以先判断取值集合中所有参数值的数据内容是否均为纯数值,此处,纯数值即为参数值完全由阿拉伯数字0-9组成。如果是纯数值,WAF则可以直接确定该请求参数的参数类型为纯数值类型;如果不是纯数值,WAF则可以进一步按照数值长度这一属性将请求参数分为长文本类型和短文本类型,即如果数值长度大于预设长度阈值,则确定请求参数的参数类型为长文本类型,如果数值长度小于预设长度阈值,则确定请求参数的参数类型为短文本类型。
步骤103,生成各个请求参数对应的参数类型的特征值,并基于特征值对新业务请求进行安全检测。
在实施中,WAF在确定了业务请求中各个请求参数对应的参数类型之后,可以生成各个参数类型的特征值,该特征值可以为属于该参数类型的所有请求参数应具备的取值特征。这样,WAF后续在接收到针对其后端的企业业务系统的新业务请求时,可以基于各个参数类型的特征值对新业务请求进行安全检测。
可选的,定长参数的参数类型的特征值的确定方式可以如下:针对任一标准格式对应的参数类型,生成标准格式对应的格式模板,并将格式模板作为参数类型的特征值;对于自定义类型,将自定义类型对应的数值长度,和所有请求参数的数值字符集合作为参数类型的特征值。
在实施中,基于步骤102的处理,定长参数的参数类型可以分为两种,即标准格式对应的参数类型和自定义类型。一方面,对于任一标准格式对应的参数类型,WAF可以计算生成该标准格式对应的格式模板,然后可以将各标准格式对应的格式模板确定为相应参数类型的特征值;另一方面,对于自定义类型,WAF可以生成自定义类型下所有请求参数的包含的数值字符集合,再将自定义类型对应的数值长度和该数值字符集合确定为自定义类型的特征值。
可选的,基于标准格式对应的特征值进行安全检测的处理具体可以如下:当新业务请求的目标请求参数为目标标准格式时,判断目标请求参数是否满足目标标准格式对应的特征值;如果满足,则将目标请求参数添加至白名单,否则对目标请求参数进行常规防护流程。
在实施中,WAF在接收到新业务请求后,如果发现新业务请求的目标请求参数为目标标准格式,则可以调取目标标准格式对应的特征值,然后将目标请求参数与该特征值进行比对。如果目标请求参数满足目标标准格式对应的特征值,则可以直接将目标请求参数添加至白名单;而如果目标请求参数不满足目标标准格式对应的特征值,则可以对目标请求参数进行WAF的常规防护流程。
可选的,基于自定义类型的特征值进行安全检测的处理具体可以如下:当新业务请求的目标请求参数属于自定义类型时,判断目标请求参数的数值长度是否与自定义类型对应的数值长度一致,且所有数值字符是否在数值字符集合中;如果是,则将目标请求参数添加至白名单,否则对目标请求参数进行常规防护流程。
在实施中,WAF在接收到新业务请求后,如果发现新业务请求的目标请求参数属于自定义类型,则可以先判断目标请求参数的数值长度是否与自定义类型对应的数值长度一致。如果一致的话,则可以进一步判断目标请求参数的所有数值字符是否均属于自定义类型对应的数值字符集合中;如果均属于数值字符集合,则可以将目标请求参数添加至白名单;如果目标请求参数的数值长度不一致或者存在非数值字符集合中的数值字符,则可以对目标请求参数进行WAF的常规防护流程。
可选的,非定长参数的参数类型的特征值的确定方式可以如下:对于纯数值类型,将纯数值类型对应的数值长度的平均值和标准差作为参数类型的特征值;对于长文本类型或短文本类型,计算参数类型对应的数值长度的平均值和标准差,并通过预设概率算法计算并生成统计值波动范围,将平均值、标准差和统计值波动范围确定为参数类型的特征值。
在实施中,基于步骤102的处理,非定长参数的参数类型可以分为三种,即纯数值类型、长文本类型和短文本类型。一方面,对于纯数值类型,WAF可以计算纯数值类型下所有参数值的数值长度的平均值和标准差,并将该平均值和标准差确定为纯数值类型的特征值;另一方面,对于长文本类型或短文本类型,WAF可以计算相应参数类型下所有参数值的数值长度的平均值和标准差,同时通过预设概率算法来计算并生成统计值波动范围,进而可以将上述平均值、标准差和统计值波动范围一并确定为相应参数类型的特征值。
其中,预设概率算法具体可以为一种校验字符分布概率的算法,针对短文本类型,预设概率算法可以选用马尔科夫链算法,具体可以通过马尔科夫链算法计算生成统计概率矩阵,并通过统计概率矩阵确定短文本类型对应的统计值波动范围,处理过程可以如下:
1.首先生成所有短文本的数值字符集合;
2.统计各个字符为首字符的概率,可称为起始概率:
可如下表所示:
合法字符 | a | c | d | 1 | 2 |
起始概率 | 0.4 | 0.1 | 0.1 | 0.2 | 0.2 |
3.统计各个字符为末尾字符的概率,可称为终止概率:
可如下表所示:
合法字符 | b | c | f | 1 | 9 |
终止概率 | 0.3 | 0.2 | 0.2 | 0.1 | 0.2 |
4.统计任意两字符间的前后相连的概率,可称为共现概率:
可如下表所示:
a | b | c | d | |
a | 0 | 0.5 | 0.33 | 0.17 |
b | 0.21 | 0 | 0.368 | 0.421 |
c | 0 | 0 | 0.33 | 0.67 |
d | 0.353 | 0.353 | 0.176 | 0.118 |
其中,a行与b列的表格表示ab这个元组b在a后出现的概率为0.5,c行与d列的表格表示d在c后出现的概率是0.67。
5.根据起始概率终止概率和共现概率,生成统计概率矩阵:
可如下表所示:
a | b | c | d | |
a | 0 | 0.5 | 0.33 | 0.17 |
b | 0.21 | 0 | 0.368 | 0.421 |
c | 0 | 0 | 0.33 | 0.67 |
d | 0.353 | 0.353 | 0.176 | 0.118 |
P(*|start) | 0.3 | 0.2 | 0.4 | 0.1 |
P(end|*) | 0.5 | 0.15 | 0.15 | 0.2 |
6.基于统计概率矩阵,计算每个短文本对应的统计值:
以样本”abcbad”为例。对应的分数为Score=(P(a|start)+P(b|a)+P(c|b)+P(b|c)+P(a|b)+P(d|a)+P(end|d))/(len(“abcbad”)+1)。
7.根据每个短文本对应的统计值,确定短文本类型对应的统计值波动范围。
针对长文本类型,预设概率算法可以选用卡方校验算法,具体可以通过卡方校验算法生成卡方理想频率分布矩阵,并通过卡方理想频率分布矩阵确定长文本类型对应的统计值波动范围,处理过程可以如下:
1.首先生成所有长文本的数值字符集合;
2.统计各个字符的平均出现次数:
例如,在10个长文本中,a出现了22次,b出现了12次...则各个字符的平均出现次数(可称之为ei),具体如下表所示:
合法字符 | a | b | c | e | f | 1 | 2 |
出现频率 | 2.2 | 1.2 | 2.3 | 6.4 | 3.4 | 5.7 | 8.9 |
3.计算单个长文本中各字符的单样本出现次数:
以长文本“ab1cefabcf11”为例,各字符的单样本出现次数(可称之为ai),具体如下表所示:
合法字符 | a | b | c | e | f | 1 | 2 |
出现次数 | 2 | 2 | 2 | 1 | 2 | 3 | 0 |
4.根据平均出现次数和单样本出现次数,计算单个长文本的统计值:
统计值的计算公式可以为:
5.根据每个长文本对应的统计值,确定长文本类型对应的统计值波动范围。
可选的,基于纯数值类型的特征值进行安全检测的处理具体可以如下:当新业务请求的目标请求参数属于纯数值类型时,判断目标请求参数的数值长度与纯数值类型对应的数值长度的平均值之差,是否小于N倍纯数值类型对应的数值长度的标准差;如果是,则将目标请求参数添加至白名单,否则对目标请求参数进行常规防护流程。
在实施中,WAF在接收到新业务请求后,如果发现新业务请求的目标请求参数完全由阿拉伯数字组成,则可以认为目标请求参数属于纯数值类型,进而可以利用纯数值类型对应的数值长度的平均值和标准差来检测目标请求参数。如果目标请求参数的数值长度与纯数值类型对应的数值长度的平均值之差,小于N倍纯数值类型对应的数值长度的标准差,则可以直接将目标请求参数添加至白名单,否则可以对目标请求参数进行WAF的常规防护流程。
可选的,基于长文本类型或短文本类型的特征值进行安全检测的处理具体可以如下:当新业务请求的目标请求参数属于长文本类型或短文本类型时,判断目标请求参数的数值长度,与长文本类型或短文本类型对应的数值长度的平均值之差,是否小于N倍长文本类型或短文本类型对应的数值长度的标准差,且通过预设概率算法计算出的目标请求参数的统计值是否处于统计值波动范围之内;如果是,则将目标请求参数添加至白名单,否则对目标请求参数进行常规防护流程。
在实施中,WAF在接收到新业务请求后,如果发现新业务请求的目标请求参数属于长文本类型或短文本类型,则可以利用相应参数类型对应的数值长度的平均值和标准差来检测目标请求参数。如果目标请求参数的数值长度,与相应参数类型对应的数值长度的平均值之差,小于N倍相应参数类型对应的数值长度的标准差,则可以进一步通过预设概率算法计算出的目标请求参数的统计值,再判断目标请求参数的统计值是否处于相应参数类型对应的统计值波动范围之内,否则可以对目标请求参数进行WAF的常规防护流程。而如果目标请求参数的统计值处于波动范围之内,则可以将目标请求参数添加至白名单,否则可以对目标请求参数进行WAF的常规防护流程。
其中,若目标请求参数属于短文本类型,当选用马尔科夫链算法生成统计值波动范围时,可以通过马尔科夫链算法来计算目标请求参数的统计值:以短文本“abcd”为例,首先对其进行二元拆分并生成统计概率矩阵;之后检查P(a|start)、P(b|a)、P(c|b)、P(d|c)、P(end|d)是否有取值为0的情况,若为0则可以直接确认目标请求参数为异常;再者根据公式“Score=∑P(ai+1|ai)/(n+1)”计算该目标请求参数的统计值。若目标请求参数属于长文本类型,当选用卡方校验算法生成统计值波动范围时,可以通过卡方校验算法来计算目标请求参数的统计值:对于长文本,可以先计算目标请求参数中各字符的单样本出现次数,之后再结合长文本的数值字符集合中各个字符的平均出现次数,计算该目标请求参数的统计值。
值得一提的是,针对枚举型,可以将聚合出的参数值集合直接确定为枚举型的特征值,在进行安全检测时,也可以直接判断新业务请求的请求参数的取值是否在该参数值集合中,如果在,则可以将目标请求参数添加至白名单,否则可以对目标请求参数进行WAF的常规防护流程。
本发明实施例中,对多个待学习业务请求的各个请求参数的参数值进行聚合,得到各个请求参数对应的取值集合;通过机器学习技术,基于每个取值集合的取值个数、数值长度和数值格式,确定请求参数对应的参数类型;生成各个请求参数对应的参数类型的特征值,并基于特征值对新业务请求进行安全检测。这样,针对不同企业业务系统的业务请求进行机器学习,并根据一定算法,聚合相同参数类型的相同请求参数,计算出不同参数类型对应的特征值,再根据特征值对业务请求进行加白处理,从而WAF能够在常规防护流程前快速有效地过滤出大量正常的业务请求,减少WAF的安全防护负担。本发明可以适应各种各样的企业业务系统的安全检测需求,且无需人工配置、适用性强、准确性高、流程简单便捷。
基于相同的技术构思,本发明实施例还提供了一种基于机器学习技术的白名单自学习装置,如图2所示,所述装置包括:
聚合模块201,用于对多个待学习业务请求的各个请求参数的参数值进行聚合,得到各个所述请求参数对应的取值集合;
分类模块202,用于通过机器学习技术,基于每个所述取值集合的取值个数、数值长度和数值格式,确定所述请求参数对应的参数类型;
检测模块203,用于生成各个所述请求参数对应的参数类型的特征值,并基于所述特征值对新业务请求进行安全检测。
可选的,如图3所示,所述装置还包括过滤模块204,用于:
当接收到目标业务请求时,判断所述目标业务请求是否为静态文件请求,是否为无参数请求,或者是否包含无参数值的请求参数;
若是,则忽略所述目标业务请求,否则将所述目标业务请求设置为待学习业务请求。
可选的,所述分类模块202,具体用于:
若所述取值集合中的取值个数小于预设计数阈值,则确定所述请求参数为枚举型,否则检测所述取值集合中的数值长度;
若所述取值集合中的数值长度相同,则根据所述取值集合中的数值格式,确定所述请求参数对应的参数类型;
若所述取值集合中的数值长度不相同,则根据所述数值长度和数值内容,确定所述请求参数对应的参数类型。
可选的,所述分类模块202,具体用于:
若所述取值集合中的数值长度相同,则将所述取值集合中的所有参数值与预设的标准格式逐一进行比对;
当所述所有参数值均符合目标标准格式时,确定所述请求参数属于所述目标标准格式对应的参数类型;
若所述所有参数值于所有所述标准格式均不相符,则确定所述请求参数的参数类型为自定义类型;
其中,所述标准格式至少包括身份证号格式、银行卡号格式、手机号格式、固定电话号格式、日期格式、时戳格式和IP地址格式。
可选的,所述检测模块203,具体用于:
针对任一标准格式对应的参数类型,生成所述标准格式对应的格式模板,并将所述格式模板作为所述参数类型的特征值;
对于自定义类型,将所述自定义类型对应的数值长度,和所有所述请求参数的数值字符集合作为所述参数类型的特征值。
可选的,所述检测模块203,具体用于:
当新业务请求的目标请求参数为目标标准格式时,判断所述目标请求参数是否满足所述目标标准格式对应的特征值;
如果满足,则将所述目标请求参数添加至白名单,否则对所述目标请求参数进行常规防护流程。
可选的,所述检测模块203,具体用于:
当新业务请求的目标请求参数属于自定义类型时,判断所述目标请求参数的数值长度是否与所述自定义类型对应的数值长度一致,且所有数值字符是否在所述数值字符集合中;
如果是,则将所述目标请求参数添加至白名单,否则对所述目标请求参数进行常规防护流程。
可选的,所述分类模块202,具体用于:
若所述取值集合中的数值长度不相同,则判断所述取值集合中的数据内容是否为纯数值;
如果是,则确定所述请求参数的参数类型为纯数值类型,否则判断所述数值长度是否大于预设长度阈值;
如果大于,则确定所述请求参数的参数类型为长文本类型,否则确定所述请求参数的参数类型为短文本类型。
可选的,所述检测模块203,具体用于:
对于纯数值类型,将所述纯数值类型对应的数值长度的平均值和标准差作为所述参数类型的特征值;
对于长文本类型或短文本类型,计算所述参数类型对应的数值长度的平均值和标准差,并通过预设概率算法计算并生成统计值波动范围,将所述平均值、所述标准差和所述统计值波动范围确定为所述参数类型的特征值。
可选的,所述检测模块203,具体用于:
当新业务请求的目标请求参数属于纯数值类型时,判断所述目标请求参数的数值长度与所述纯数值类型对应的数值长度的平均值之差,是否小于N倍所述纯数值类型对应的数值长度的标准差;
如果是,则将所述目标请求参数添加至白名单,否则对所述目标请求参数进行常规防护流程。
可选的,所述检测模块203,具体用于:
当新业务请求的目标请求参数属于长文本类型或短文本类型时,判断所述目标请求参数的数值长度,与所述长文本类型或短文本类型对应的数值长度的平均值之差,是否小于N倍所述长文本类型或短文本类型对应的数值长度的标准差,且通过所述预设概率算法计算出的所述目标请求参数的统计值是否处于所述统计值波动范围之内;
如果是,则将所述目标请求参数添加至白名单,否则对所述目标请求参数进行常规防护流程。
本发明实施例中,对多个待学习业务请求的各个请求参数的参数值进行聚合,得到各个请求参数对应的取值集合;通过机器学习技术,基于每个取值集合的取值个数、数值长度和数值格式,确定请求参数对应的参数类型;生成各个请求参数对应的参数类型的特征值,并基于特征值对新业务请求进行安全检测。这样,针对不同企业业务系统的业务请求进行机器学习,并根据一定算法,聚合相同参数类型的相同请求参数,计算出不同参数类型对应的特征值,再根据特征值对业务请求进行加白处理,从而WAF能够在常规防护流程前快速有效地过滤出大量正常的业务请求,减少WAF的安全防护负担。本发明可以适应各种各样的企业业务系统的安全检测需求,且无需人工配置、适用性强、准确性高、流程简单便捷。
图4是本发明实施例提供的网络设备的结构示意图。该网络设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对网络设备400中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在网络设备400上执行存储介质430中的一系列指令操作。
网络设备400还可以包括一个或一个以上电源429,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,一个或一个以上键盘456,和/或,一个或一个以上操作系统441,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
网络设备400可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述基于机器学习技术的白名单自学习指令。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种基于机器学习技术的白名单自学习方法,其特征在于,所述方法包括:
对多个待学习业务请求的各个请求参数的参数值进行聚合,得到各个所述请求参数对应的取值集合;
通过机器学习技术,基于每个所述取值集合的取值个数、数值长度和数值格式,确定所述请求参数对应的参数类型;
生成各个所述请求参数对应的参数类型的特征值,并基于所述特征值对新业务请求进行安全检测。
2.根据权利要求1所述的方法,其特征在于,所述对多个业务请求的各个请求参数的参数值进行聚合,得到各个所述请求参数对应的取值集合之前,还包括:
当接收到目标业务请求时,判断所述目标业务请求是否为静态文件请求,是否为无参数请求,或者是否包含无参数值的请求参数;
若是,则忽略所述目标业务请求,否则将所述目标业务请求设置为待学习业务请求。
3.根据权利要求1所述的方法,其特征在于,所述通过机器学习技术,基于每个所述取值集合中的取值个数、数值长度和数值格式,确定所述请求参数对应的参数类型,包括:
若所述取值集合中的取值个数小于预设计数阈值,则确定所述请求参数为枚举型,否则检测所述取值集合中的数值长度;
若所述取值集合中的数值长度相同,则根据所述取值集合中的数值格式,确定所述请求参数对应的参数类型;
若所述取值集合中的数值长度不相同,则根据所述数值长度和数值内容,确定所述请求参数对应的参数类型。
4.根据权利要求3所述的方法,其特征在于,所述若所述取值集合中的数值长度相同,则根据所述取值集合中的数值格式,确定所述请求参数对应的参数类型,包括:
若所述取值集合中的数值长度相同,则将所述取值集合中的所有参数值与预设的标准格式逐一进行比对;
当所述所有参数值均符合目标标准格式时,确定所述请求参数属于所述目标标准格式对应的参数类型;
若所述所有参数值于所有所述标准格式均不相符,则确定所述请求参数的参数类型为自定义类型;
其中,所述标准格式至少包括身份证号格式、银行卡号格式、手机号格式、固定电话号格式、日期格式、时戳格式和IP地址格式。
5.根据权利要求4所述的方法,其特征在于,所述生成各个所述请求参数对应的参数类型的特征值,包括:
针对任一标准格式对应的参数类型,生成所述标准格式对应的格式模板,并将所述格式模板作为所述参数类型的特征值;
对于自定义类型,将所述自定义类型对应的数值长度,和所有所述请求参数的数值字符集合作为所述参数类型的特征值。
6.根据权利要求5所述的方法,其特征在于,所述基于所述特征值对新业务请求进行安全检测,包括:
当新业务请求的目标请求参数为目标标准格式时,判断所述目标请求参数是否满足所述目标标准格式对应的特征值;
如果满足,则将所述目标请求参数添加至白名单,否则对所述目标请求参数进行常规防护流程。
7.根据权利要求5所述的方法,其特征在于,所述基于所述特征值对新业务请求进行安全检测,包括:
当新业务请求的目标请求参数属于自定义类型时,判断所述目标请求参数的数值长度是否与所述自定义类型对应的数值长度一致,且所有数值字符是否在所述数值字符集合中;
如果是,则将所述目标请求参数添加至白名单,否则对所述目标请求参数进行常规防护流程。
8.根据权利要求3所述的方法,其特征在于,所述若所述取值集合中的数值长度不相同,则根据所述数值长度和数值内容,确定所述请求参数对应的参数类型,包括:
若所述取值集合中的数值长度不相同,则判断所述取值集合中的数据内容是否为纯数值;
如果是,则确定所述请求参数的参数类型为纯数值类型,否则判断所述数值长度是否大于预设长度阈值;
如果大于,则确定所述请求参数的参数类型为长文本类型,否则确定所述请求参数的参数类型为短文本类型。
9.根据权利要求8所述的方法,其特征在于,所述生成各个所述请求参数对应的参数类型的特征值,包括:
对于纯数值类型,将所述纯数值类型对应的数值长度的平均值和标准差作为所述参数类型的特征值;
对于长文本类型或短文本类型,计算所述参数类型对应的数值长度的平均值和标准差,并通过预设概率算法计算并生成统计值波动范围,将所述平均值、所述标准差和所述统计值波动范围确定为所述参数类型的特征值。
10.根据权利要求9所述的方法,其特征在于,所述基于所述特征值对新业务请求进行安全检测,包括:
当新业务请求的目标请求参数属于纯数值类型时,判断所述目标请求参数的数值长度与所述纯数值类型对应的数值长度的平均值之差,是否小于N倍所述纯数值类型对应的数值长度的标准差;
如果是,则将所述目标请求参数添加至白名单,否则对所述目标请求参数进行常规防护流程。
11.根据权利要求9所述的方法,其特征在于,所述基于所述特征值对新业务请求进行安全检测,包括:
当新业务请求的目标请求参数属于长文本类型或短文本类型时,判断所述目标请求参数的数值长度,与所述长文本类型或短文本类型对应的数值长度的平均值之差,是否小于N倍所述长文本类型或短文本类型对应的数值长度的标准差,且通过所述预设概率算法计算出的所述目标请求参数的统计值是否处于所述统计值波动范围之内;
如果是,则将所述目标请求参数添加至白名单,否则对所述目标请求参数进行常规防护流程。
12.一种基于机器学习技术的白名单自学习装置,其特征在于,所述装置包括:
聚合模块,用于对多个待学习业务请求的各个请求参数的参数值进行聚合,得到各个所述请求参数对应的取值集合;
分类模块,用于通过机器学习技术,基于每个所述取值集合的取值个数、数值长度和数值格式,确定所述请求参数对应的参数类型;
检测模块,用于生成各个所述请求参数对应的参数类型的特征值,并基于所述特征值对新业务请求进行安全检测。
13.根据权利要求12所述的装置,其特征在于,所述分类模块,具体用于:
若所述取值集合中的取值个数小于预设计数阈值,则确定所述请求参数为枚举型,否则检测所述取值集合中的数值长度;
若所述取值集合中的数值长度相同,则根据所述取值集合中的数值格式,确定所述请求参数对应的参数类型;
若所述取值集合中的数值长度不相同,则根据所述数值长度和数值内容,确定所述请求参数对应的参数类型。
14.一种网络设备,其特征在于,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至11任一项所述的基于机器学习技术的白名单自学习方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至11任一项所述的基于机器学习技术的白名单自学习方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010088877.6A CN113259303B (zh) | 2020-02-12 | 2020-02-12 | 一种基于机器学习技术的白名单自学习方法和装置 |
PCT/CN2020/079353 WO2021159575A1 (zh) | 2020-02-12 | 2020-03-13 | 一种基于机器学习技术的白名单自学习方法和装置 |
EP20775160.3A EP3886394A4 (en) | 2020-02-12 | 2020-03-13 | PROCESS AND DEVICE FOR SELF-LEARNING A WHITELIST BASED ON MACHINE LEARNING TECHNOLOGY |
US17/077,990 US20210250356A1 (en) | 2020-02-12 | 2020-10-22 | Whitelist self-learning method and device based on machine learning technology |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010088877.6A CN113259303B (zh) | 2020-02-12 | 2020-02-12 | 一种基于机器学习技术的白名单自学习方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113259303A true CN113259303A (zh) | 2021-08-13 |
CN113259303B CN113259303B (zh) | 2023-01-20 |
Family
ID=74758466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010088877.6A Active CN113259303B (zh) | 2020-02-12 | 2020-02-12 | 一种基于机器学习技术的白名单自学习方法和装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3886394A4 (zh) |
CN (1) | CN113259303B (zh) |
WO (1) | WO2021159575A1 (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110214157A1 (en) * | 2000-09-25 | 2011-09-01 | Yevgeny Korsunsky | Securing a network with data flow processing |
CN105656886A (zh) * | 2015-12-29 | 2016-06-08 | 北京邮电大学 | 一种基于机器学习的网站攻击行为的检测方法及装置 |
CN107645503A (zh) * | 2017-09-20 | 2018-01-30 | 杭州安恒信息技术有限公司 | 一种基于规则的恶意域名所属dga家族的检测方法 |
CN107644166A (zh) * | 2017-09-22 | 2018-01-30 | 成都知道创宇信息技术有限公司 | 一种基于自动学习的web应用安全防护方法 |
CN109325193A (zh) * | 2018-10-16 | 2019-02-12 | 杭州安恒信息技术股份有限公司 | 基于机器学习的waf正常流量建模方法以及装置 |
CN109672666A (zh) * | 2018-11-23 | 2019-04-23 | 北京丁牛科技有限公司 | 一种网络攻击检测方法及装置 |
CN110661680A (zh) * | 2019-09-11 | 2020-01-07 | 深圳市永达电子信息股份有限公司 | 一种基于正则表达式进行数据流白名单检测的方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729594B (zh) * | 2013-12-31 | 2016-05-18 | 山东中创软件商用中间件股份有限公司 | 一种防护规则生成方法及装置 |
CN106209488B (zh) * | 2015-04-28 | 2021-01-29 | 北京瀚思安信科技有限公司 | 用于检测网站攻击的方法和设备 |
CN109714341A (zh) * | 2018-12-28 | 2019-05-03 | 厦门服云信息科技有限公司 | 一种Web恶意攻击识别方法、终端设备及存储介质 |
-
2020
- 2020-02-12 CN CN202010088877.6A patent/CN113259303B/zh active Active
- 2020-03-13 WO PCT/CN2020/079353 patent/WO2021159575A1/zh unknown
- 2020-03-13 EP EP20775160.3A patent/EP3886394A4/en not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110214157A1 (en) * | 2000-09-25 | 2011-09-01 | Yevgeny Korsunsky | Securing a network with data flow processing |
CN105656886A (zh) * | 2015-12-29 | 2016-06-08 | 北京邮电大学 | 一种基于机器学习的网站攻击行为的检测方法及装置 |
CN107645503A (zh) * | 2017-09-20 | 2018-01-30 | 杭州安恒信息技术有限公司 | 一种基于规则的恶意域名所属dga家族的检测方法 |
CN107644166A (zh) * | 2017-09-22 | 2018-01-30 | 成都知道创宇信息技术有限公司 | 一种基于自动学习的web应用安全防护方法 |
CN109325193A (zh) * | 2018-10-16 | 2019-02-12 | 杭州安恒信息技术股份有限公司 | 基于机器学习的waf正常流量建模方法以及装置 |
CN109672666A (zh) * | 2018-11-23 | 2019-04-23 | 北京丁牛科技有限公司 | 一种网络攻击检测方法及装置 |
CN110661680A (zh) * | 2019-09-11 | 2020-01-07 | 深圳市永达电子信息股份有限公司 | 一种基于正则表达式进行数据流白名单检测的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3886394A1 (en) | 2021-09-29 |
WO2021159575A1 (zh) | 2021-08-19 |
EP3886394A4 (en) | 2021-09-29 |
CN113259303B (zh) | 2023-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107992490B (zh) | 一种数据处理方法以及数据处理设备 | |
CN105704685B (zh) | 一种短信安全处理方法及装置 | |
US20210250356A1 (en) | Whitelist self-learning method and device based on machine learning technology | |
CN108718306B (zh) | 一种异常流量行为判别方法和装置 | |
CN110365636B (zh) | 工控蜜罐攻击数据来源的判别方法及装置 | |
CN110221936A (zh) | 数据库告警处理方法、装置、设备及计算机可读存储介质 | |
WO2021109724A1 (zh) | 日志异常检测方法及装置 | |
CN109409113B (zh) | 一种电网数据安全防护方法和分布式电网数据安全防护系统 | |
CN111431883B (zh) | 一种基于访问参数的web攻击检测方法及装置 | |
CN111586695A (zh) | 短信识别方法及相关设备 | |
CN113408281B (zh) | 邮箱账号异常检测方法、装置、电子设备及存储介质 | |
CN108804501B (zh) | 一种检测有效信息的方法及装置 | |
CN106850632B (zh) | 一种异常组合数据的检测方法及装置 | |
CN113259303B (zh) | 一种基于机器学习技术的白名单自学习方法和装置 | |
CN113849595A (zh) | 一种基层治理事件类型识别方法及系统 | |
CN116800518A (zh) | 一种网络防护策略的调整方法及装置 | |
US9391936B2 (en) | System and method for spam filtering using insignificant shingles | |
WO2016200333A1 (en) | System and method for determining a security classification of an unknown application | |
CN115048345A (zh) | 异常日志检测方法、装置、电子设备和存储介质 | |
CN111507368B (zh) | 一种校园网入侵检测方法和系统 | |
CA3144052A1 (en) | Method and apparatus for recognizing new sql statements in database audit systems | |
CN112073360A (zh) | 超文本传输数据的检测方法、装置、终端设备及介质 | |
EP2811699B1 (en) | System and method for spam filtering using shingles | |
CN114501348B (zh) | 受诈用户的联合监测方法、装置、设备及存储介质 | |
CN110825924B (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 |