CN111600919B - 智能网络应用防护***模型的构建方法和装置 - Google Patents
智能网络应用防护***模型的构建方法和装置 Download PDFInfo
- Publication number
- CN111600919B CN111600919B CN201910128774.5A CN201910128774A CN111600919B CN 111600919 B CN111600919 B CN 111600919B CN 201910128774 A CN201910128774 A CN 201910128774A CN 111600919 B CN111600919 B CN 111600919B
- Authority
- CN
- China
- Prior art keywords
- web
- model
- training
- waf
- intelligent
- 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.)
- Active
Links
Images
Classifications
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- 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/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Security & Cryptography (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种智能网络应用防护***模型的构建方法和装置。所述方法包括:步骤A,获取训练样本数据;步骤B,利用至少两种特征提取算法,分别获取所述训练样本数据对应的不同类别的特征向量;步骤C,使用不同的监督学习算法,和训练样本数据的不同类别的特征向量文件,分别训练基模型,并进行交叉验证;步骤D,采用集成学习技术,根据基模型构建得到智能网络应用防护***模型。
Description
技术领域
本申请涉及信息处理领域,尤指一种智能网络应用防护***模型的构建方法和装置。
背景技术
Web的开放性、易用性、易开发性和Web应用的广泛性使Web应用的安全问题日益突出。随着互联网的快速发展,Web应用也随之多样化快速发展,而针对Web应用的攻击形式也纷繁多样,其中以SQL(Structured Query Language,结构化查询语言)注入攻击和XSS(cross site script,跨站脚本)攻击最为流行,危害最大,是当前信息泄露的主要途径。这两类攻击具有危害大、类型多、变异快、攻击隐蔽等特点,是Web应用攻击检测的重要任务之一。
在Web应用攻击检测的发展历史中,一般是依赖于规则的黑名单检测机制,无论是Web应用防火墙或IDS(Intrusion Detection Systems,入侵检测***)等,都是依赖于检测引擎内置的正则表达式,进行报文的匹配。通常能够抵御绝大部分的攻击,但在实际应用环境中普遍存在以下问题,规则库维护和升级困难,误报不易及时修改;规则级别难以设定,太严会产生误报,太宽则会漏报;特征库臃肿不堪,严重影响检测性能和正常的业务需求。
针对Web攻击检测已经有不少研究成果,主要包括离线分析和实时分析这种方式。对于离线分析,Adeva等人和Almgren等人提出通过分析Web日志发现攻击行为;何鹏程等人在分析日志的基础上,提出增加网络参数指标,进而发现攻击。离线分析存在较大的缺陷,不能够实时检测和阻断,难以满足Web网站的实时性防护要求。对于实时分析方式,除了传统的特征规则检测方法外,机器学习方法也被广泛研究。张伟等人提出使用人工特征提取,并使用SVM训练分类器,用以检测Web攻击;Vishnu等人使用基于朴素贝叶斯、SVM和J48决策树3种机器学习算法预测XSS脚本攻击;Rathore等人提出XSS检测工具XSSClassifier,使用10种不同机器学习算法检测SNS网站的XSS攻击。Fang Yong等人提出基于SQL注入的分词向量,并使用深度学习算法LSTM训练SQL注入检测模型。这些方法存在以下问题,选择特征向量提取算法单一、简单的使用一个或多个监督学习算法、缺少利用集成学习和强化学习进行Web攻击检测的深入研究。
在Web攻击检测领域,学习方式可以为深度学习、集成学习或者强化学习,基于提升Web攻击检测能力的研究,还没有形成一个较为成熟的应用体系。特别是,在Web攻击检测领域,如何提高Web攻击检测精度和检测效率,降低误报,这是一个新的挑战。
鉴于此,现有技术有待改进和提高。
发明内容
为了解决上述技术问题,本申请提供了一种智能WAF(Web ApplicationFirewall,网络应用防护***)模型的构建方法和装置,能够提高Web攻击模型的检测精度和检测效率。
为了达到本申请目的,本申请提供了一种智能WAF模型的构建方法,包括:
步骤A,获取训练样本数据;
步骤B,利用至少两种特征提取算法,分别获取所述训练样本数据对应的不同类别的特征向量;
步骤C,使用不同的监督学习算法,和训练样本数据的不同类别的特征向量,分别训练基模型,并进行交叉验证;
步骤D,采用集成学习技术,根据基模型构建得到智能WAF模型。
在一个示例性实施例中,所述步骤A包括:
对Web合法载荷和Web攻击载荷进行预处理,得到训练样本数据;其中,按照如下任一种或多种方式获取所述Web合法载荷和Web攻击载荷:
从WAF设备处理的网络流量中,获取Web合法载荷和Web攻击载荷;
利用网络爬虫技术从预先记录的合法网站上获取Web合法载荷;
利用网络爬虫技术从预先记录的开源社区获取Web攻击载荷;
获取执行渗透测试操作过程中检测得到的Web攻击载荷。
在一个示例性实施例中,所述步骤B包括:
对所述训练样本数据进行数据清洗操作;
对于清洗后的训练样本数据,利用多种特征提取算法,分别从多个角度提取特征,构造不同类别的特征向量;
对于不同类别的特征向量,分别进行量化处理;
将量化编码后的不同类别的特征向量分别存储为不同的特征文件。
在一个示例性实施例中,所述步骤C包括:
对于所述训练样本数据的每个类别的特征向量,分别进行步骤C1和C2:
步骤C1,对该类别的特征向量,采用至少两种监督学习算法分别训练不同的基模型,对训练所产生的至少两个基模型进行交叉验证,得到基模型的交叉验证结果;
步骤C2,根据所述基模型的交叉验证结果,利用预先存储的基模型选择策略选择最优的Top-k个最优的监督学习算法,其中Top-k为自然数;
对所述训练样本数据的全部类别的特征向量均执行完成步骤C1和步骤C2后,记录每个基模型训练所采用的特征向量的类别、以及每个类别的特征向量训练时,所得到的Top-k个监督学习算法及交叉验证结果。
在一个示例性实施例中,所述步骤D包括:
步骤D1、根据每个基模型的特征向量类别、所得到Top-k个监督学习算法及交叉验证结果,对所产生的基模型进行训练,得到多个基分类器;
步骤D2,根据预先获取的需求信息,对得到的基分类器进行组合,得到高层分类器;
步骤D3,根据集成策略对高层分类器进行训练,对训练后的高层分类器进行交叉验证,得到高层分类器的交叉验证结果;
步骤D4,根据高层分类器的交叉验证结果,生成智能WAF模型。
在一个示例性实施例中,所述步骤D2包括:
采用预先设置的复合金字塔模型的集成策略,对得到的基分类器进行组合,得到高层分类器,其中所述高层分类器所使用的不同监督学习算法均使用相同的模块进行处理,包括训练样本集合获取模块、特征提取模块和检测结果判断模块中的至少一个。
在一个示例性实施例中,在所述步骤D之后,所述方法还包括:
利用所述智能WAF模型,对网络流量进行检测。
在一个示例性实施例中,在所述步骤D之后,所述方法还包括:
步骤E,构造能够对抗所述智能WAF模型的Web攻击免杀样本,得到Web攻击免杀样本训练数据集;
步骤F,利用所述Web攻击免杀样本训练数据集,以及所述步骤A中的训练样本数据,持续构造新的训练样本数据;基于新的训练样本数据,进行所述步骤B、C、D。
在一个示例性实施例中,所述步骤E包括:
获取已检测确认为Web攻击载荷的数据作为黑样本数据;
利用强化学习技术,基于获取到的黑样本数据生成能够对抗所述智能WAF模型的Web攻击免杀样本;
得到Web攻击免杀样本训练数据集。
在一个示例性实施例中,所述所述利用强化学习技术,基于获取到的黑样本生成能够对抗所述智能WAF模型的Web攻击免杀样本数据,包括:
利用强化学习技术,基于所述黑样本数据生成伪装为Web合法载荷的Web攻击载荷;
在所述Web攻击载荷经过所述智能WAF模型预设的查杀处理操作后,利用强化学习技术,为所述每个Web攻击载荷的处理结果确定对应的奖励数值;
记录所述Web攻击载荷对应的奖励数值;
根据所述奖励数值,从所述Web攻击载荷中确定Web攻击免杀样本。
一种智能WAF模型的构建装置,其特征在于,包括处理器和存储器,其中所述存储器存储计算机程序,所述处理器用于调用所述存储器中的计算机程序以实现上文任一所述的方法。
本申请实施例提供的技术方案,获取训练样本数据;利用至少两种特征提取算法,分别获取所述训练样本数据对应的不同类别的特征向量;使用不同的监督学习算法,和训练样本数据的不同类别的特征向量,分别训练基模型,并进行交叉验证;采用集成学习技术,根据基模型构建得到智能WAF模型,能够提高Web攻击行为的检测精度和检测效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例提供的智能WAF模型的构建方法的流程图;
图2为本申请另一实施例提供的智能WAF模型的构建方法的流程图;
图3为图2所示的智能WAF模型的构建方法的数据流向示意图;
图4为本申请实施例提供的复合金字塔模型的示意图;
图5为本申请实施例提供的一种智能WAF模型的强化学习过程的流程图;
图6为本申请实施例提供的智能WAF模型的强化学习A3C算法的示意图;
图7为本申请又一实施例提供的通过基于混合学习的智能WAF模型进行检测的方法的流程图;
图8为本申请实施例提供的智能WAF模型的构建装置的结构示意图;
图9为本申请实施例提供的智能WAF模型的构建装置的部署示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本申请实施例提供的一种智能WAF模型的构建方法的流程图。图1所示方法包括:
步骤A、获取训练样本数据;
在一个示例性实施例中,所述步骤A包括:
对Web合法载荷和Web攻击载荷进行预处理,得到训练样本数据;其中,按照如下任一种或多种方式获取所述Web合法载荷和Web攻击载荷:
从WAF设备处理的网络流量中,获取Web合法载荷和Web攻击载荷;
利用网络爬虫技术从预先记录的合法网站上获取Web合法载荷;
利用网络爬虫技术从预先记录的开源社区获取Web攻击载荷;
获取执行渗透测试操作过程中检测得到的Web攻击载荷。
在本示例性实施例中,可以利用传统WAF设备处理网络流量,获取大规模的Web合法载荷和Web攻击载荷;可以利用网络爬虫技术,从合法网站获取大规模的Web合法载荷,从开源社区获取大规模的Web攻击载荷;可以利用多种渗透测试工具,获取渗透测试过程中使用的Web攻击载荷。
在一个示例性实施例中,所述步骤A还可以包括:将获取的Web合法载荷和Web攻击载荷进行预处理,构造训练样本数据集。
步骤B,利用至少两种特征提取算法,分别获取所述训练样本数据对应的不同类别的特征向量;
所述特征提取策略,可以但不限于包括语法树算法、N-Gram、词嵌入向量算法、异常特征提取算法中的至少一个。
通过多种特征提取策略,可以有效的获取web载荷的特征信息,方便更加精确地建立智能WAF模型。
在一个示例性实施例中,所述步骤B包括:
对所述训练样本数据进行数据清洗操作;
对于清洗后的训练样本数据,利用多种特征提取算法,分别从多个角度提取特征,构造不同类别的特征向量;
对于不同类别的特征向量,分别进行量化处理;
将量化编码后的不同类别的特征向量分别存储为不同的特征文件。
本示例性实施例中,在获取训练样本数据集后,进行数据清洗,可以提高数据质量。
本示例性实施例中,根据不同类别的特征提取算法,将量化编码后的特征向量存储为不同的特征文件。
步骤C,使用不同的监督学习算法,和训练样本数据的不同类别的特征向量,分别训练基模型,并进行交叉验证;
其中,所述基模型可以是指对于训练样本数据的特征向量,按照监督学习算法所训练的预设的模型;各监督学习算法分别对应不同的基模型。
在一个示例性实施例中,所述步骤C包括:
对于所述训练样本数据的每个类别的特征向量,分别进行步骤C1和C2:
步骤C1,对该类别的特征向量,采用至少两种监督学习算法分别训练不同的基模型,对训练所产生的至少两个基模型进行交叉验证,得到基模型的交叉验证结果;
步骤C2,根据所述基模型的交叉验证结果,利用预先存储的基模型选择策略选择最优的Top-k个最优的监督学习算法,其中Top-k为自然数;
对所述训练样本数据的全部类别的特征向量均执行完成步骤C1和步骤C2
后,记录每个基模型训练所采用的特征向量的类别、以及每个类别的特征向量训练时,所得到的Top-k个监督学习算法及交叉验证结果。
本示例性实施例中,为同一训练样本数据的多个类别的特征向量分别进行数据训练,可以全面找到符合该训练样本数据的特征向量的监督学习策略,提升检测的效率和精准度。
步骤D,采用集成学习技术,根据基模型构建得到智能WAF模型。
在一个示例性实施例中,所述步骤D包括:
步骤D1、根据每个基模型的特征向量类别、所得到Top-k个监督学习算法及交叉验证结果,对所产生的基模型进行训练,得到多个基分类器;
步骤D2,根据预先获取的需求信息,对得到的基分类器进行组合,得到高层分类器;
步骤D3,根据集成策略对高层分类器进行训练,对训练后的高层分类器进行交叉验证,得到高层分类器的交叉验证结果;
步骤D4,根据高层分类器的交叉验证结果,生成智能WAF模型。
本示例性实施例中,基分类器可以是指基模型使用的分类器;高层分类器可以是指基分类器组合出的分类器。
本示例性实施例中,集成策略可以根据实际设计的需要和测试要求进行选择,通过对基分类器的选择,可以适配不同的需求,有针对性的建立所需的智能WAF模型,提高智能WAF模型的泛化能力,进而提高检测精度和检测效率。
在一个示例性实施例中,所述步骤D2包括:
采用预先设置的复合金字塔模型的集成策略,对得到的基分类器进行组合,得到高层分类器,其中所述高层分类器所使用的不同监督学习算法均使用相同的模块进行处理,包括训练样本集合获取模块、特征提取模块和检测结果判断模块中的至少一个。
在一个示例性实施例中,在所述步骤D之后,所述方法还包括:
利用所述智能WAF模型,对网络流量进行检测。
在本示例性实施例中,可以对网络的实时流量进行检测,提高网络安全性,保证网络安全。
在一个示例性实施例中,在所述步骤D之后,所述方法还包括:
步骤E,构造能够对抗所述智能WAF模型的Web攻击免杀样本,得到Web攻击免杀样本训练数据集;
步骤F,利用所述Web攻击免杀样本训练数据集,以及所述步骤A中的训练样本数据,持续构造新的训练样本数据;基于新的训练样本数据,进行所述步骤B、C、D。
本示例性实施例相当于是迭代训练智能WAF模型,能够大幅度提高智能WAF检测Web攻击免杀样本的能力,并能够通过强化学习技术持续不断提升其对抗能力,有利于提高计算机***的网络安全。
在本示例性实施例中,通过获取免查杀的样本数据,可以有效避免黑客将web攻击载荷伪装成合法数据,绕过查杀操作,提高web防护模型的检测精确度,提升数据安全性。
在一个示例性实施例中,所述步骤E包括:
获取已检测确认为Web攻击载荷的数据作为黑样本数据;
利用强化学习技术,基于获取到的黑样本数据生成能够对抗所述智能WAF模型的Web攻击免杀样本;
得到Web攻击免杀样本训练数据集。
在本示例性实施例中,利用已检测出的Web攻击数据,获取其变形后的攻击数据,以提升Web检测模型的检测能力,实现自动升级功能。
在一个示例性实施例中,所述利用强化学习技术,基于获取到的黑样本生成能够对抗所述智能WAF模型的Web攻击免杀样本数据,包括:
利用强化学习技术,基于所述黑样本数据生成伪装为Web合法载荷的Web攻击载荷;
在所述Web攻击载荷经过所述智能WAF模型预设的查杀处理操作后,利用强化学习技术,为所述每个Web攻击载荷的处理结果确定对应的奖励数值;
记录所述Web攻击载荷对应的奖励数值;
根据所述奖励数值,从所述Web攻击载荷中确定Web攻击免杀样本。
在本示例性实施例中,可以定义适用于Web入侵检测对抗的强化学习环境(Environment)和参数;定义适用于Web入侵检测对抗的强化学习状态(State);定义适用于Web入侵检测对抗的强化学习动作(Action);定义适用于Web入侵检测对抗的强化学习奖励(Reward);定义适用于Web入侵检测对抗的强化学习智体(Agent);训练适用于Web入侵检测对抗的强化学习模型,并进行效果验证。
本示例性实施例利用Web入侵检测对抗的强化学习模型生成免杀样本数据集;基于免杀样本数据集和步骤A获得的训练样本集合,持续构建新的训练样本数据集;在对得到的训练样本数据执行数据清洗和特征提取,对训练样本集合进行数据清洗,并利用多种特征提取算法分别获取样本的不同类别特征向量;利用多种监督学习算法,使用不同类别特征向量和不同的学习算法分别训练基模型,并进行交叉验证;利用集成学习技术构建智能WAF融合模型,自动重新训练智能WAF检测模型,实现智能WAF模型的持续构建,进而不断提高智能WAF检测Web攻击免杀样本的能力。
本示例性实施例中,所述强化学习方法可以不断生成Web攻击免杀样本,进而通过智能WAF模型的持续构建,提升智能WAF检测Web攻击免杀样本的能力。
一种示例性实施例中,可以利用传统WAF设备标注、网络爬虫和渗透测试工具等技术获取监督学习算法使用的训练样本数据集;再对训练样本集合进行数据清洗,并利用多种特征提取算法,分别获取样本的不同类别特征向量;利用多种监督学习算法,使用不同类别特征向量和不同的学习算法分别训练基模型,并进行交叉验证;利用集成学习技术构建智能WAF融合模型,提高检测精度。
一种示例性实施例提出基于复合金字塔模型的集成策略,提高检测效率;步骤E可以利用强化学习技术,基于存在的黑样本自动持续生成能够绕过智能WAF的Web攻击免杀样本,构造Web攻击免杀样本训练数据集;利用生成的Web攻击免杀样本训练数据集,迭代训练新的智能WAF检测模型,进而不断提高智能WAF检测Web攻击免杀样本能力。
本申请提供的方法实施例,获取训练样本数据;利用至少两种特征提取算法,分别获取所述训练样本数据对应的不同类别的特征向量;使用不同的监督学习算法,和训练样本数据的不同类别的特征向量,分别训练基模型,并进行交叉验证;采用集成学习技术,根据基模型构建得到智能WAF模型,能够提高Web攻击行为的检测精度和检测效率。
下面对本申请提供的方法作进一步说明:
图2为本申请另一实施例提供的智能WAF模型的构建方法的流程示意图。如图2所示,本实施例的智能WAF模型的构建方法包括如下处理步骤:
步骤S101:样本获取;
可以利用传统WAF(Web Application Firewall,Web应用防护***)设备标注、网络爬虫和渗透测试工具等技术获取监督学习算法使用的训练样本集合;
图3为本实施例的智能WAF模型的构建方法的数据流向示意图。
在一个示例性实施例中,步骤S101可以采用如下方式处理,包括:
步骤S1011,利用若干WAF设备,可以来自不同的安全供应商,使用差异化的Web攻击检测技术。这些设备在规则配置时可使用低误报方式,设备之间可通过检测结果投票进一步降低误报,也可选择简单过滤检测结果扩充训练数据集。通过在具备较大Web流量的局点进行训练数据获取,实现获取大规模的Web合法载荷和Web攻击载荷的目的;
步骤S1012,对于权威合法网站,例如Alex-Top50,存在SQL注入漏洞和XSS的概率较低,可以利用网络爬虫技术从权威合法网站获取大规模的Web合法载荷样本。在开源社区或安全站点,例如github,大量的用户会将SQL注入样本、XSS样本进行上传分享,可以利用网络爬虫技术从这些样本分享站点获得大规模的Web攻击载荷样本;
步骤S1013,对Web服务器进行渗透测试过程中,渗透测试工具自动使用不同的Web攻击载荷对Web服务器进行漏洞利用测试,并通过分析返回包判断是否漏洞利用成功,即目标Web服务器是否存在相应的漏洞。对于存在的Web渗透测试工具集合,分别对目标Web服务器进行漏洞利用测试,通过旁路流量分析引擎分析Web攻击流量,提取Web攻击载荷样本;
步骤S1014,获取步骤S1011、步骤S1012和步骤S1013提供的训练样本原始数据集,包括Web合法载荷和Web攻击载荷。然后,对训练样本数据集进行预处理,包括过滤重复样本、编码转换(将Base64、十六进制等编码转为ASCII码)、删除异常样本、去除唯一属性(这些属性并不能刻画样本自身的分布规律)等,构造训练数据集;
在Web攻击过程中,攻击者通过编码可以改变注入语句的字符特征,使其在检测时不会被黑名单匹配到,并且编码后的语句被服务器解析后能正常执行。最常用的编码技术有URL编码、UTF8编码、Base64编码、十六进制编码和char编码等,而且这些编码可以混合使用。
步骤S102:数据清洗和特征提取,对训练样本集合进行数据清洗,并利用多种特征提取算法,包括语法树算法、N-Gram、词嵌入向量算法、异常特征提取算法等,分别获取样本的不同类别特征向量;
在一个示例性实施例中,步骤S102可以具体包括如下处理:
步骤S1021,对训练数据集进行数据清洗,包括处理缺失值、属性编码、数据标准化正则化、特征选择、主成分分析等操作。数据清洗过程与特征提取算法密切相关,不同类别的特征提取算法数据清洗的过程和手段差异较大;
在一个示例性实施例中,步骤S1021可以具体包括如下处理:
步骤S10211,缺失值处理可以主要包含三种方法,包括:
直接使用含有缺失值的特征;
删除含有缺失值的特征,其中该方法在包含缺失值的属性含有大量缺失值而仅仅包含极少量有效值时是有效的;
缺失值补全,其中缺失值补全方法包括均值插补、同类均值插补、建模预测、高维映射、多重插补、极大似然估计、压缩感知和矩阵补全等;
步骤S10212,特征编码,机器学习模型的输入特征要求数字型的特征向量,对于各种特殊的特征值,要对其进行相应的量化编码,以特征二元化编码、独热编码和词嵌入向量编码为例,对技术进行说明:
(1)特征二元化,特征二元化的过程是将数值型的属性转换为布尔值的属性,设定一个阈值作为划分属性值为0和1的分隔点;
(2)独热编码,独热编码(One-Hot Encoding)采用N位状态寄存器来对N个可能的取值进行编码,每个状态都由独立的寄存器来表示,并且在任意时刻只有其中一位有效。独热编码的优点:能够处理非数值属性;在一定程度上扩充了特征;编码后的属性是稀疏的,存在大量的零元分量;
(3)独热编码表示方式很直观,但是存在两个缺点,第一,矩阵的每一维长度都是字典的长度,浪费空间,不利于计算。第二,独热编码矩阵相当于简单的给每个单词编了个号,但是单词和单词之间的关系则完全体现不出来。词嵌入向量编码解决了这两个问题。词嵌入向量编码矩阵给每个单词分配一个固定长度的向量表示,这个长度可以自行设定,实际长度上会远远小于字典长度。而且两个单词向量之间的夹角值可以作为他们之间相近关系的一个衡量。
步骤S10213,对特例向量进行数据标准化和正则化:
其中,数据标准化可以是指将样本的属性缩放到某个指定的范围。这是由于某些算法要求样本具有零均值和单位方差,故需要消除样本不同属性具有不同量级时的影响,数量级的差异将导致量级较大的属性占据主导地位,进而导致迭代收敛速度减慢。而且,依赖于样本距离的算法对于数据的数量级非常敏感;
其中,数据正则化可以是指将样本的某个范数(如L1范数)缩放到1。
步骤S10214,特征选择,从给定的特征集合中选出相关特征子集的过程称为特征选择,从而减轻维数灾难,降低学习任务的难度。
步骤S10215,降维,当特征数量较多时,会造成计算量大,训练时间长的问题。而且,当特征数量多于样本数量时,每个样本都具有自己的独特性,样本点在高维空间中较为分散,需要降低特征矩阵维度避免过拟合。常见的降维方法有线性判别分析(LDA)、主成分分析法(PCA)等算法。
步骤S1022,利用多种特征提取算法,包括语法树算法、异常特征提取算法、词嵌入向量算法、N-Gram等,分别获取样本的不同类别特征向量;
在一个示例性实施例中,步骤S1022可以具体包括如下处理:
步骤S10221,AST(Abstract Syntax Tree,抽象语法树)语法树算法,生成过程如下:
(1)获取SQL语句的特征,首先对SQL语句进行解析,包括词法、语法分析,得到SQL的语法树;
(2)然后,遍历SQL语法树,进行裁剪,使之变为规范语法树,得到SQL语句的主干结构。裁剪过程主要是将SQL语句中用户输入部分,如数字以及字符串等,用特征的字符进行替换,同时删除一些无用的节点;
(3)接着,对SQL规范语法树进行特征提取,在提取过程中,为减小向量空间,需要把数字和字符等进行泛化;
(4)最后,根据词集模型,对SQL语句进行分词,分词后,统计每个词的频率,根据需要选择全部或部分词作为哈希表键值,并依次对该哈希表进行编号,从而得到该哈希表对字符串的编码。
上面过程的形式化描述如下:根据规范语法树提取模式特征,令f(k)为第k条SQL语句的特征向量,f(k)={f_(k_1,)f_(k_2,…,)f_(k_L)},(1≤k≤K)。其中,K为攻击的训练样本总数,L为提取的特征个数,f_(k_l)为第k条SQL语句的第l个特征向量,1≤l≤L。为减少时间和空间的复杂度,根据分词原则,对以上的特征向量进行泛化s(k)={s_(k_1,)s_(k_2,…,)s_(k_L)}。其中,s_(k_l)为第k条SQL语句的特征向量的第l个向量对应的泛化符号。为了利用HASH算法,对s(k)进行HASH计算,即H(k)=HASH(s(k))。其中,H(k)为第k条SQL语句的序列化编码。
步骤S10222,异常特征提取算法,主要是对样本进行数据统计,提取黑白样本区分度较大特征集合并映射为空间向量。特征集合包括,典型Web攻击载荷关键词是否存在、样本中数字字符百分比、大写字符百分比、截断字符百分比、特殊字符百分比等。
特征集合基本上可分为两大类:
(1)基本特征提取:对样本中的关键词进行提取,原则是根据关键词的重要程度、关键词的数量进行提取。本专利的阐述内容为Web攻击载荷,其关键词为常用的SQL语句,例如查询关键词包含union、select、order by、group by等;
(2)变形特征提取:样本中如果存在Web攻击载荷常用关键词则特征值为1,如果不存在则特征值为0。但是通常访问文本是一串字符串,而且字符串的内容因网站设计的不同差异性很大,需要对访问文本进行分词处理,采用3种字符进行分词,分别为:空格、“/”、“&”。
根据Web攻击载荷的基本特征和变形特征提取结果,其统计内容包括:
(1)大写字符在字符串中所占的比例,根据Web攻击载荷中的变形攻击将查询语句中部分字符的大小写进行转化,进而避开检测;
(2)空格字符在字符串中所占的比例,主要针对空字符攻击;
(3)特殊字符在字符串中所占的比例,主要是闭合截断字符,常见的闭合截断字符包括“{}”、“[]”、“=”、“?”“#”“/”等。主要针对内联注释序列和截断字符变形攻击;
(4)数字字符在字符串中所占的比例,主要针对动态查询变形攻击;
(5)特殊前缀字符在字符串中所占的比例,例如$#、\x、\u、%等。
步骤S10223,词嵌入向量算法,将文本转换为单词,接着每个单词转换成固定长度的向量表示,从而便于进行学习。
Web载荷的主要载体为访问的字符串,将这段字符串看成是一个文本,可选择使用嵌入式词向量模型建立一个语义模型,让机器能够理解<script>、alert()这样的HTML语言。取白样本中出现次数最多的单词,构成词汇表,其他的词标记为“UKN”,使用word2vec函数类建模,词空间维度可以取128维。
其中,Word2Vec是Google在2013年开源的一款将自然语言转化为计算机可以理解特征向量的工具。Word2Vec主要有CBOW(Continuous Bag-Of-Words)和Skip-Gram两种。CBOW模型训练过程是输入某一个词上下文相关的词对应的词向量,输出是这个词的词向量;而Skip-Gram与之相反,输入特定一个词的词向量,输出该特定词的上下文词向量。将分词处理完的数据作为文本向量的训练数据,训练得到词向量模型,通过此模型,可将单词转化为计算机所能理解的向量,如单词select经过转化后如下:[5.52,-2.44,-0.998,-1.69,1.88,2.89,0.905,-1.36,-1.84,0.59,-3.93,1.415,-0.035,-7.43,-0.683,-4.07]。
步骤S1023,获取特征向量,对其进行量化处理。在步骤S1022中,提到的独热编码、词嵌入向量都属于量化方式的一种。通常,量化处理算法的选择与特征提取算法关系较为密切;
步骤S1024,为了训练不同的基模型,进而利用集成学习和投票机制完成智能WAF的构建任务。本步骤根据不同模型需要的输入数据,使用不同类别的特征提取算法,将量化编码后的特征向量分别存储为不同的特征文件。
步骤S103:基模型训练和选择,利用多种监督学习算法,例如SVM、随机森林、LSTM、CNN等,使用不同类别特征向量和不同的学习算法分别训练基模型,并进行交叉验证;
不同的基模型对于不同类别的特征向量,其泛化能力差异性较大。融合模型的目的是想要结合不同基模型的长处,达到互补短处的目的。简而言之,如果基模型之间存在独立且互补的特性,那么正确融合多个基模型就可以得到一个更优的模型。
在一个示例性实施例中,步骤S103具体包括如下处理:
步骤S1031,选取一个特征向量文件并获取特征向量集合,使用多种不同的监督学习算法分别训练不同的基模型,并分别进行交叉验证;
步骤S1032,结合交叉验证结果,通过基模型选择策略选择最优的Top-k个最优的监督学习算法,其中Top-k为自然数;
为能够获得优良融合效果,基模型选择策略描述如下:
(1)准确性(accuracy):大部分基模型要能对最终输出有所帮助,而不是帮倒忙,应该至少比随机猜测更准确。因此,基模型的准确性对于融合模型很重要;
(2)多样性(diversity):基模型间需要有所不同,长处和短处各异,(高度相关的)同质化的基模型无法互补。因此,若基模型高度同质化,没有互补,那么对于融合模型就没有意义而只是简单的重复,徒增运算开销;
(3)在同时提高“准确性”和“多样性”的过程中,达到一定程度后,提高准确性会影响多样性,反之亦然。因此,需要根据业务情况对准确性与多样性进行取舍,以达到智能WAF融合模型的最优效果。
步骤S1033,更换特征向量类别,循环执行步骤S1031和S1032,获取针对不同类别特征向量的最优的Top-k个最优的监督学习算法,其中Top-k为自然数,进而构造不同的基模型。
步骤S1034,输出特征向量类别、最优的Top-k个最优的监督学习算法,其中Top-k为自然数及其交叉验证结果等信息。
步骤S104:利用集成学习技术构建智能WAF融合模型,提高检测精度。同时,提出基于复合金字塔模型的集成策略,提高检测效率;
在一个示例性实施例中,步骤S104具体包括如下处理:
步骤S1041,获取步骤S103的输出结果,包括输出特征向量类别、最优的Top-k个最优的监督学习算法,其中Top-k为自然数及其交叉验证结果等信息。进而,根据这些信息训练多个基分类器;
步骤S1042,根据智能WAF的业务需求情况,制定集成策略(或称为融合策略),根据集成策略基分类器进行组合并测试其交叉验证结果和泛化能力。集成策略示例描述如下:
训练数据集合描述如下,X∈R^(n×d),共有n个Web载荷样本,每个Web载荷样本有d维特征。基于以上数据集合,利用选取的基模型集合,构造策略示例如下:
(1)选用不同类型的分类器,比如逻辑回归、k近邻、SVM、随机森林、LSTM、CNN,在整个X集合上进行训练。此时模型的多样性取决于基模型对于数据不同的表达能力,也就是逻辑回归、k近邻、支持向量机之间的不同,它们对于数据的假设、表示提取能力都有差异;
(2)选用同类型的分类器,使用不同的参数,如对k近邻使用不同的k值,在整个X集合上进行训练。此时模型的多样性取决于“不同超参数在同一模型上的差异”所决定。从某个角度看,也可以理解为“不同类型的分类器”。这种情况下,不难看出参数差异所带来的区别远小于模型间的差异。例如,k=1可能和k=3的差别不大,因为同一模型对于数据的假设是一样的;
(3)选用相同的分类器,在不同的训练集上进行训练。比如先把X分成m份Web载荷样本(可能存在重复),再在m个Web载荷样本上单独训练基模型。不难看出,此时的差异性来源于数据的差异性。容易发现,如果n本身很小(小样本)且想要划分出m份子样本(使用采样sampling),那么子样本就会高度重复,因此多样性就打了折扣。但如果每个子样本都很小,模型无法学到数据,表现很差,准确率很低;
(4)使用相同的分类器,在不同类别特征向量上进行训练。训练数据集合包含m类不同的特征向量,我们可以构造m个基模型进行训练。此时的多样性来源于数据的差异性,在不同的超空间上,模型有不同的泛化误差,最终融合可以得到互补的效果;
(5)使用多个集成分类器,通过投票方式获得最优结果。在不同类别特征向量上进行基分类器的训练,然后根据集成策略训练不同的高层集成分类器,最后选择投票策略完成多个高层集成分类器的融合。
为准确阐述,本实施例以5种模型融合策略说明原理,事实上它们之间还可以组合使用,比如:策略(1)和策略(3)、策略(1)和策略(4)、策略(3)和策略(4)等。模型融合有多种组合方式,没有唯一正确的方法,通常是多次试验,目标是尽量保持“准确性”和“多样性”间的平衡。应该理解,本申请并不限于以上5种模型融合策略,因此也可以使用其它模型融合策略,同时保持本申请的精神。
步骤S1043,在Web入侵检测领域,需要对大流量进行实时分析,故对于模型融合的效率会有较高的要求。为了使得模型融合兼顾检测效率和精度的要求,提出基于复合金字塔模型的集成策略,复合金字塔模型如图4所示,从复合金字塔模型底层塔基到顶层塔尖包含4层,分别为数据层、特征提取层、模型融合层和决策层。其中,数据层主要功能为获取训练数据集合;特征提取层主要功能为特征工程,利用多种特征提取算法处理训练数据集获取特征向量集合;模型融合层,包含多个处理效率较高的监督学习模型(或集成学习模型),利用融合策略进行集成学习和检测;决策层,包含一个或多个处理效率较低的监督学习模型(或集成学习模型),利用融合策略进行集成学习和检测。在检测过程中,大量的Web合法载荷样本被高效的模型融合层处理过滤,少量疑似的Web载荷样本将被送到效率相对较低的决策层进行最终判断。通过复合金字塔模型的策略设计,在一定程度上使得模型融合兼顾检测效率和精度的要求;
步骤S1044,不同的集成策略效果差异较大,需要根据高层分类器的交叉验证结果和用户现网的模型泛化能力综合考虑,进而选择最优的融合模型生成智能WAF检测模型;
步骤S105:黑客在入侵WAF保护的网站时,经常要面对的就是绕过问题,通常黑客会基于经验综合使用常见的绕过方式,不断针对WAF的拦截情况进行调整。利用强化学习技术,模拟黑客的绕过策略,自动的发现绕过现有WAF设备的方式,进而利用存在的Web攻击载荷样本自动持续生成能够绕过智能WAF的Web攻击免杀样本,构造Web攻击免杀样本训练数据集,通过智能WAF持续构建,利用免杀样本训练数据集迭代训练新的智能WAF检测模型。从而,不断提升智能WAF的检测能力。
智能WAF模型的强化学习过程如图5所示;
在一个示例性实施例中,步骤S105具体包括如下处理:
步骤S1051,初始化适用于Web入侵检测对抗的强化学习环境,包括环境(Environment)、智体(Agent)、动作(Action)、状态(Status)和奖励(Reward)。在强化学习算法实现环节,包括单智体(Agent)强化学习算法和多智体(Agent)强化学习算法。为准确阐述,本实施例以多智体(Agent)强化学习算法说明原理。应该理解,本申请并不限于多智体(Agent)强化学习算法,因此也可以使用其它强化学习算法,同时保持本申请的精神;
步骤S1052,适用于Web入侵检测对抗的强化学习环境(Environment)和相关参数。
环境(Environment),环境会接收智体(Agent)执行的一系列的动作(Action),并且对这一系列的动作的好坏进行评价,并转换成一种可量化的奖励(Reward)反馈给智体(Agent),而不会告诉智体(Agent)应该如何去学习动作。智体(Agent)只能靠自己的过去经历去学习。同时,环境还像智体(Agent)提供它所处的状态(State)信息。所述环境特指智能WAF环境,为快速实现智能WAF环境类,可以使用OpenAI Gym框架,并定义加载训练样本函数、定义动作转换表函数、定义动作执行函数、环境重置函数等;
步骤S1053,适用于Web入侵检测对抗的强化学习状态(State),指智体(Agent)所处的环境信息,包含了智体(Agent)用于进行动作(Action)选择的所有信息,它是历史(History)的一个函数。所述状态(State)是一个2维度的向量,[查杀,免杀],可以编码成“01”和“10”。本申请提出的方法能够从当前状态获取到当前样本是否免杀,即成功绕过智能WAF检测。
步骤S1054,适用于Web入侵检测对抗的强化学习动作(Action),在强化学习领域,动作可以是连续的也可以是离散的。所述动作(Action)是指来自绕过智能WAF检测组件的动作列表,例如编码(16进制编码、10进制编码)、***注释、***回车、***TAB、大小写混淆等,动作列表包含69类绕过操作和一个空操作,动作空间的大小与绕过操作个数有关,可根据实际情况进行扩展。应该理解,本申请并不限于69种绕过操作,因此也可以扩展其它绕过智能WAF的操作,以及绕过操作可以组合使用,同时保持本申请的精神。
步骤S1055,适用于Web入侵检测对抗的强化学习奖励(Reward),指环境(Environment)提供给智体(Agent)的一个可量化的标量反馈信号,用于评价智体(Agent)在某一个时间步(Time Step)所做动作(Action)的好坏。强化学习就是基于一种最大化累计奖励假设:强化学习中,智体(Agent)进行一系列的动作(Action)选择的目标是最大化未来的累计奖励。本专利所述的奖励(Reward)示例如下:
智能WAF成功,正向奖励(10);
智能WAF失败,奖励(0);
应该理解,本申请并不限于该示例奖励方式,因此也可以定义其他奖励函数,同时保持本申请的精神。
步骤S1056,适用于Web入侵检测对抗的强化学习智体(Agent),智体是整个强化学习***核心。它能够感知环境的状态(State),并且根据环境提供的奖励(Reward)信号,通过学习选择一个合适的动作(Action),来最大化长期的奖励值。简而言之,智体就是根据环境提供的奖励作为反馈,学习一系列的环境状态到动作的映射,动作选择的原则是最大化未来累积的奖励概率。选择的动作不仅影响当前时刻的奖励,还会影响下一时刻甚至未来的奖励,因此,智体在学习过程中的基本规则是:如果某个动作带来了环境的正回报,那么这一动作会被加强,反之则会逐渐削弱。所述智体是智能WAF检测模型,通过特征提取模块提取Web载荷样本的特征向量给智能WAF检测模型,并获取模型的检测结果;
在本实施例中,选择把A3C算法封装成Agent,定义关键属性包括state_size(状态空间大小)、action_size(动作空间大小)等。A3C算法完全实现了Actor-Critic框架,并且引入了异步训练策略打破数据相关性,在提升性能的同时也大大加快了训练速度。本实施例智能WAF模型的强化学习A3C算法如图6所示,采用分布式学习方式,神经网络接收到当前状态作为输入节点的输入信号,输入信号通过隐层的每个节点进行传播,然后传给输出节点,最后与绕过检测的动作列表相关联。同时,节点之间的权重w能够确定输入信号被传送到哪一个输出节点。其中,每一个节点都存在阈值,当输入的信息总和与权重总和超出阈值,输入信号将被传送到下一个节点。因此,需要优化节点之前的权重使得能够针对当前状态选择最优的绕过行为。在A3C算法实现过程中,智体也称为“工作线程”,“参数服务器”能够共享众多“工作线程”的学习经验,并且“参数服务器”和“工作线程”具有相同的神经元网络结构。在学习过程中,每个“工作线程”能够在内存中存储从学习中获得的经验,一旦经验数量超过一定阈值,便会计算自身的梯度参数⊿w=grad,更新权重w,并将权重w推送到“参数服务器”。然后,“参数服务器”利用新的权重w更新其他“工作线程”上的权重w。重复该过程,直到满足学习终止条件。
学习过程具体步骤描述如下:
(1)“参数服务器”初始化权重w为随机值;
(2)“参数服务器”同步权重w到多个“工作线程”;
(3)利用神经元网络,“工作线程”根据当前的输入状态(State)选择合适的绕过动作(Action);
(4)由于绕过动作(Action)改变,引起状态(State)变化为下一个状态(State),进而“工作线程”能够获得与之动作(Action)相对应的奖励(Reward);
(5)“工作线程”存储获取到的学习经验到内存,包括当前状态(State)、动作(Action)、奖励(Reward)和下一个状态(State);
(6)“工作线程”重复步骤(3)、步骤(4)和步骤(5);
(7)对于指定的“工作线程”,当内存中的经验数量超过一定阈值,利用内存中的经验,包括当前状态(State)、动作(Action)、奖励(Reward)和下一个状态(State),计算网络梯度参数⊿w=grad;
(8)“工作线程”将推送网络梯度参数⊿w=grad到“参数服务器”;
(9)“参数服务器”利用来自“工作线程”的网络梯度参数⊿w=grad更新网络权重w;
(10)返回步骤(2),循环。
通过以上步骤,A3C算法可以异步利用多个智体(“工作线程”)进行学习,并且共享学习经验,实现更快的学习进度。
步骤S1057,训练和测试。设定训练步数,开始训练并进行10交叉验证。将日志和训练的模型持久化保存。由于训练花费时间较长,需要设置checkpoint点,便于异常中断学习后可以继续学习;
步骤S106:利用生成的Web攻击免杀样本训练数据集持续构建智能WAF,迭代训练新的智能WAF检测模型,进而不断提高智能WAF检测Web攻击免杀样本能力;
在一个示例性实施例中,步骤S106具体包括如下处理:
步骤S1061,利用Web入侵检测对抗强化学习模型生成免杀样本数据集;
步骤S1062,基于免杀样本数据集和步骤S101获得的训练样本集合,持续构建新的训练样本数据集;
步骤S1063,基于步骤S1061和步骤S1062,自动重新训练智能WAF检测模型,实现智能WAF模型的持续构建,进而不断提高智能WAF检测Web攻击免杀样本的能力。
本申请的又一实施例提供了一种通过基于混合学习的智能WAF模型进行检测的方法。图7为本实施例提供的通过基于混合学习的智能WAF模型进行检测的方法的流程示意图。如图7所示,检测流程包括如下处理步骤:
步骤S201,利用流量分析设备,实时分析网络流量,提取网络7层会话元数据;
步骤S202,获取网络7层会话元数据信息,并从中选择HTTP会话元数据,包括URL、POST等Web载荷信息;
步骤S203,利用步骤S102提出的特征提取算法,获取Web载荷的特征向量;
步骤S204,引导智能WAF检测模型,对Web载荷的特征向量进行预测,判断是否为Web攻击载荷和Web合法载荷。若为Web攻击载荷,进而判断是XSS攻击、SQL注入攻击等类型;
步骤S205,输出检测结果,包括五元组信息(源IP、目标IP、源端口、目标端口和协议)、攻击类型、攻击载荷和攻击返回载荷。其中,攻击返回载荷可以进一步使用规则判断攻击是否成功;
综上所述,借助于本申请实施例的技术方案,能够利用传统WAF设备标注、网络爬虫和渗透测试工具等技术获取监督学习算法使用的黑白样本集合,进而利用多种特征提取算法分别获取样本的不同类别特征向量。利用多种监督学习算法,使用不同类别特征向量和不同的学习算法分别训练基模型,并利用集成学习技术构建智能WAF模型。最后,利用强化学习技术,基于存在的黑样本自动持续生成能够绕过智能WAF的Web攻击免杀样本,构造Web攻击免杀样本训练数据集,通过智能WAF持续构建,利用免杀样本训练数据集迭代训练新的智能WAF检测模型。从而,大幅度提高了智能WAF的检测精度和检测效率,增强了智能WAF检测Web攻击免杀样本能力。同时,本申请利用混合学习技术解决智能WAF检测模型构建过程中的不同问题,利用监督学习识别Web合法流量和攻击流量,以及攻击流量的具体类别,包括SQL注入攻击和XSS攻击利用集成学习提高智能WAF的检测精度和检测效率,利用强化学习处理样本免杀操作过程中连续的、复杂的状态。
综上所述,本申请涉及一种基于混合学习的智能WAF构建方法和装置,利用传统WAF设备标注、网络爬虫和渗透测试工具等技术获取监督学习算法使用的黑白样本集合,进而利用多种特征提取算法分别获取样本的不同类别特征向量。利用多种监督学习算法,使用不同类别特征向量和不同的学习算法分别训练基模型,并利用集成学习技术构建智能WAF模型。最后,利用强化学习技术,基于存在的黑样本自动持续生成能够绕过智能WAF的Web攻击免杀样本,构造Web攻击免杀样本训练数据集,通过智能WAF持续构建,利用免杀样本训练数据集迭代训练新的智能WAF检测模型。从而,大幅度提高了智能WAF的检测精度和检测效率,增强了智能WAF检测Web攻击免杀样本能力。同时,本申请利用混合学习技术解决智能WAF检测模型构建过程中的不同问题,利用监督学习识别Web合法流量和攻击流量,以及攻击流量的具体类别,包括SQL注入攻击和XSS攻击利用集成学习提高智能WAF的检测精度和检测效率,利用强化学习处理样本免杀操作过程中连续的、复杂的状态。
本申请提供一种基于人工智能的web检测装置,包括处理器和存储器,其中所述存储器存储计算机程序,所述处理器用于调用所述处理器中的计算机程序以实现图1所示实施例的方法,或在图1所示实施例的方法基础上任一示例性实施例所述的方法。
根据本申请的实施例,提供了一种基于混合学习的智能WAF装置。图8为本申请实施例提供的一种智能WAF模型的构建装置的结构示意图。智能WAF模型的构建装置具体可以包括6大模块,包括样本获取模块、特征提取模块、基模型训练模块、智能WAF模型训练模块、智能WAF模型检测模块和强化学习模块,具体模块描述如下:
样本获取模块301,该模块利用传统WAF设备标注组件、网络爬虫组件和渗透测试工具组件等获取基模型训练模块使用的训练样本集合;
特征提取模块302,该模块包括数据清洗组件和特征提取组件,对训练样本集合进行数据清洗,并利用多种特征提取程序,分别获取样本的不同类别特征向量数据;
基模型训练模块303,该模块包括基模型的训练组件和选择组件,利用多种监督学习程序,使用不同类别特征向量和不同的学习方法分别训练基模型,并根据选择策略进行基模型选择;
智能WAF模型训练模304块,该模块利用集成学习组件根据集成策略对基模型训练模块303获取的基模型进行集成,构建智能WAF融合模型,提高检测精度和检测效率;
智能WAF模型检测模块305,该模块利用智能WAF融合模型对Web载荷进行检测,判定是否为Web攻击载荷和Web合法载荷。若为Web攻击载荷,进而判断是XSS攻击、SQL注入攻击等类型;
强化学习模块306,该模块初始化强化学习环境,包括环境(Environment)、智体(Agent)、动作(Action)、状态(Status)和奖励(Reward)。同时,建立强化学习模型,并设置模型的网络结构参数和训练参数,并训练强化学习分类器。最后,该模块基于存在的黑样本自动持续生成能够绕过智能WAF的Web攻击免杀样本,构造Web攻击免杀样本训练数据集。利用生成的Web攻击免杀样本训练数据集,迭代训练新的智能WAF检测模型,进而不断提高智能WAF检测Web攻击免杀样本能力。
根据本申请的实施例,还提供了一种智能WAF模型的构建装置。图9为本申请实施例提供的一种智能WAF模型的构建装置的部署示意图。如图9所示,根据本申请实施例提供的智能WAF模型的构建装置包括以下设备,流量分析服务器、智能WAF服务器、监督学习服务器、样本服务器和强化学习服务器。其中,服务器可以是软件,也可以是硬件。具体功能描述如下:
强化学习服务器401,利用强化学习技术,基于样本服务器提供的黑样本自动持续生成能够绕过智能WAF的Web攻击免杀样本,构造和输出Web攻击免杀样本训练数据集。
样本服务器402,负责Web载荷样本获取、处理和存储。即利用传统WAF设备标注、网络爬虫、渗透测试工具和强化学习等技术获取监督学习服务器使用的训练样本集合,并进行处理和特征提取后存储为特征向量文件;
监督学习服务器403,利用样本服务器获取的特征向量文件,训练基模型并进行选择。同时,基于选取的基模型,利用集成学习技术构建智能WAF融合模型,输出智能WAF检测模型文件;
智能WAF服务器404,获取流量分析服务器输出数据,并对Web载荷的特征向量进行预测,判断是否为Web攻击载荷和Web合法载荷。若为Web攻击载荷,进而判断是XSS攻击、SQL注入攻击等类型。最后,输出检测结果,包括五元组信息(源IP、目标IP、源端口、目标端口和协议)、Web攻击载荷、攻击类型和Web攻击返回载荷等信息;
流量分析服务器405,实时分析网络流量,提取网络7层会话元数据信息,并从中选择HTTP会话元数据,包括URL、POST等Web载荷信息,利用特征提取方法提取Web载荷特征向量。最后,输出待检测数据包括,包括五元组信息(源IP、目标IP、源端口、目标端口和协议)、Web载荷、Web载荷特征向量和Web请求返回载荷等信息;
本申请实施例提供的智能WAF装置,在选用的训练集覆盖足够多的Web攻击场景,并经过持续不断的监督学习和集成学习过程,能够发现Web攻击载荷之间潜藏的关联模式,这种关联模式使得智能WAF装置能够快速和准确检测Web攻击。最后,利用强化学习技术,基于存在的黑样本自动持续生成能够绕过智能WAF的Web攻击免杀样本,构造Web攻击免杀样本训练数据集,通过智能WAF持续构建,利用免杀样本训练数据集迭代训练新的智能WAF检测模型,从而大幅度增强了智能WAF检测Web攻击免杀样本能力。
综上所述,本申请涉及一种基于混合学习的智能WAF构建方法和装置,利用传统WAF设备标注、网络爬虫和渗透测试工具等技术获取监督学习算法使用的黑白样本集合,进而利用多种特征提取算法分别获取样本的不同类别特征向量。利用多种监督学习算法,使用不同类别特征向量和不同的学习算法分别训练基模型,并利用集成学习技术构建智能WAF模型。最后,利用强化学习技术,基于存在的黑样本自动持续生成能够绕过智能WAF的Web攻击免杀样本,构造Web攻击免杀样本训练数据集,通过智能WAF持续构建,利用免杀样本训练数据集迭代训练新的智能WAF检测模型。从而,大幅度提高了智能WAF的检测精度和检测效率,增强了智能WAF检测Web攻击免杀样本能力。同时,本申请利用混合学习技术解决智能WAF检测模型构建过程中的不同问题,利用监督学习识别Web合法流量和攻击流量,以及攻击流量的具体类别,包括SQL注入攻击和XSS攻击利用集成学习提高智能WAF的检测精度和检测效率,利用强化学习处理样本免杀操作过程中连续的、复杂的状态。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (9)
1.一种智能网络应用防护***WAF模型的构建方法,其特征在于,包括:
步骤A,获取训练样本数据;
步骤B,利用至少两种特征提取算法,分别获取所述训练样本数据对应的不同类别的特征向量;
步骤C,使用不同的监督学习算法,和训练样本数据的不同类别的特征向量,分别训练基模型,并进行交叉验证;
步骤D,采用集成学习技术,根据基模型构建得到智能WAF模型;
其中,不同类别特征向量包括如下至少一个:
大写字符在字符串中所占的比例,用于针对查询语句中部分字符的大小写转化来避开检测的行为进行判断;
空格字符在字符串中所占的比例,用于针对空字符攻击进行检测;
闭合截断字符在字符串中所占的比例,用于针对内联注释序列和截断字符变形攻击进行检测;
数字字符在字符串中所占的比例,用于针对动态查询变形攻击进行检测;
预设的前缀字符在字符串中所占的比例,所述前缀字符包括$#、\x、\u和%中至少一个;
所述步骤C包括:
对于所述训练样本数据的每个类别的特征向量,分别进行步骤C1和C2:
步骤C1,对该类别的特征向量,采用至少两种监督学习算法分别训练不同的基模型,对训练所产生的至少两个基模型进行交叉验证,得到基模型的交叉验证结果;
步骤C2,根据所述基模型的交叉验证结果,利用预先存储的基模型选择策略选择最优的Top-k个最优的监督学习算法,其中Top-k为自然数;
对所述训练样本数据的全部类别的特征向量均执行完成步骤C1和步骤C2后,记录每个基模型训练所采用的特征向量的类别、以及每个类别的特征向量训练时,所得到的Top-k个监督学习算法及交叉验证结果;所述步骤D包括:
步骤D1、根据每个基模型的特征向量类别、所得到Top-k个监督学习算法及交叉验证结果,对所产生的基模型进行训练,得到多个基分类器;
步骤D2,根据预先获取的需求信息,对得到的基分类器进行组合,得到高层分类器;
步骤D3,根据集成策略对高层分类器进行训练,对训练后的高层分类器进行交叉验证,得到高层分类器的交叉验证结果;
步骤D4,根据高层分类器的交叉验证结果,生成智能WAF模型。
2.根据权利要求1所述的方法,其特征在于,所述步骤A包括:
对Web合法载荷和Web攻击载荷进行预处理,得到训练样本数据;其中,按照如下任一种或多种方式获取所述Web合法载荷和Web攻击载荷:
从WAF设备处理的网络流量中,获取Web合法载荷和Web攻击载荷;
利用网络爬虫技术从预先记录的合法网站上获取Web合法载荷;
利用网络爬虫技术从预先记录的开源社区获取Web攻击载荷;
获取执行渗透测试操作过程中检测得到的Web攻击载荷。
3.根据权利要求1所述的方法,其特征在于,所述步骤B包括:
对所述训练样本数据进行数据清洗操作;
对于清洗后的训练样本数据,利用多种特征提取算法,分别从多个角度提取特征,构造不同类别的特征向量;
对于不同类别的特征向量,分别进行量化处理;
将量化编码后的不同类别的特征向量分别存储为不同的特征文件。
4.根据权利要求1所述的方法,其特征在于,所述步骤D2包括:
采用预先设置的复合金字塔模型的集成策略,对得到的基分类器进行组合,得到高层分类器,其中所述高层分类器所使用的不同监督学习算法均使用相同的模块进行处理,包括训练样本集合获取模块、特征提取模块和检测结果判断模块中的至少一个。
5.根据权利要求1所述的方法,其特征在于,在所述步骤D之后,所述方法还包括:
利用所述智能WAF模型,对网络流量进行检测。
6.根据权利要求1至5任一所述的方法,其特征在于,在所述步骤D之后,所述方法还包括:
步骤E,构造能够对抗所述智能WAF模型的Web攻击免杀样本,得到Web攻击免杀样本训练数据集;
步骤F,利用所述Web攻击免杀样本训练数据集,以及所述步骤A中的训练样本数据,持续构造新的训练样本数据;基于新的训练样本数据,进行所述步骤B、C、D。
7.根据权利要求6所述的方法,其特征在于,所述步骤E包括:
获取已检测确认为Web攻击载荷的数据作为黑样本数据;
利用强化学习技术,基于获取到的黑样本数据生成能够对抗所述智能WAF模型的Web攻击免杀样本;
得到Web攻击免杀样本训练数据集。
8.根据权利要求7所述的方法,其特征在于,所述利用强化学习技术,基于获取到的黑样本生成能够对抗所述智能WAF模型的Web攻击免杀样本数据,包括:
利用强化学习技术,基于所述黑样本数据生成伪装为Web合法载荷的Web攻击载荷;
在所述Web攻击载荷经过所述智能WAF模型预设的查杀处理操作后,利用强化学习技术,为所述每个Web攻击载荷的处理结果确定对应的奖励数值;
记录所述Web攻击载荷对应的奖励数值;
根据所述奖励数值,从所述Web攻击载荷中确定Web攻击免杀样本。
9.一种智能网络应用防护***WAF模型的构建装置,其特征在于,包括处理器和存储器,其中所述存储器存储计算机程序,所述处理器用于调用所述存储器中的计算机程序以实现如权利要求1至8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910128774.5A CN111600919B (zh) | 2019-02-21 | 2019-02-21 | 智能网络应用防护***模型的构建方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910128774.5A CN111600919B (zh) | 2019-02-21 | 2019-02-21 | 智能网络应用防护***模型的构建方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111600919A CN111600919A (zh) | 2020-08-28 |
CN111600919B true CN111600919B (zh) | 2023-04-07 |
Family
ID=72183233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910128774.5A Active CN111600919B (zh) | 2019-02-21 | 2019-02-21 | 智能网络应用防护***模型的构建方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111600919B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667666A (zh) * | 2020-12-31 | 2021-04-16 | 民生科技有限责任公司 | 一种基于N-gram的SQL运行时间预测方法及*** |
CN113032777B (zh) * | 2021-02-26 | 2023-04-07 | 山东浪潮科学研究院有限公司 | 一种Web恶意请求检测方法及设备 |
CN113312891B (zh) * | 2021-04-22 | 2022-08-26 | 北京墨云科技有限公司 | 一种基于生成模型的payload自动生成方法、装置、*** |
CN113254329A (zh) * | 2021-04-30 | 2021-08-13 | 展讯通信(天津)有限公司 | 基于机器学习的Bug处理方法、***、设备及存储介质 |
CN113345080A (zh) * | 2021-06-22 | 2021-09-03 | 郑州信源信息技术股份有限公司 | 一种供应商画像建模方法及*** |
CN113238971A (zh) * | 2021-07-12 | 2021-08-10 | 深圳市永达电子信息股份有限公司 | 基于状态机的自动化渗透测试***及方法 |
CN113949528A (zh) * | 2021-09-09 | 2022-01-18 | 中云网安科技有限公司 | 基于流量数据的访问控制方法、装置、存储介质及设备 |
CN114499997B (zh) * | 2021-12-30 | 2024-03-15 | 深圳供电局有限公司 | 攻击行为检测方法、装置、设备、介质和计算机程序产品 |
CN115695054B (zh) * | 2023-01-04 | 2023-03-21 | 北京知其安科技有限公司 | 基于机器学习的waf拦截页面识别的方法、装置及相关组件 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294993A (zh) * | 2017-07-05 | 2017-10-24 | 重庆邮电大学 | 一种基于集成学习的web异常流量监测方法 |
CN107846392A (zh) * | 2017-08-25 | 2018-03-27 | 西北大学 | 一种基于改进协同训练‑adbn的入侵检测算法 |
CN108023876A (zh) * | 2017-11-20 | 2018-05-11 | 西安电子科技大学 | 基于可持续性集成学习的入侵检测方法及入侵检测*** |
CN108111489A (zh) * | 2017-12-07 | 2018-06-01 | 阿里巴巴集团控股有限公司 | Url攻击检测方法、装置以及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160095856A (ko) * | 2015-02-04 | 2016-08-12 | 한국전자통신연구원 | 새로운 공격 유형의 자동 탐지 및 공격 유형 모델 갱신을 통한 지능형 침입 탐지 시스템 및 방법 |
-
2019
- 2019-02-21 CN CN201910128774.5A patent/CN111600919B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294993A (zh) * | 2017-07-05 | 2017-10-24 | 重庆邮电大学 | 一种基于集成学习的web异常流量监测方法 |
CN107846392A (zh) * | 2017-08-25 | 2018-03-27 | 西北大学 | 一种基于改进协同训练‑adbn的入侵检测算法 |
CN108023876A (zh) * | 2017-11-20 | 2018-05-11 | 西安电子科技大学 | 基于可持续性集成学习的入侵检测方法及入侵检测*** |
CN108111489A (zh) * | 2017-12-07 | 2018-06-01 | 阿里巴巴集团控股有限公司 | Url攻击检测方法、装置以及电子设备 |
Non-Patent Citations (1)
Title |
---|
基于机器学习的URL攻击行为实时检测技术的研究;杨朋朋;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20181115;第3-5章 * |
Also Published As
Publication number | Publication date |
---|---|
CN111600919A (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111600919B (zh) | 智能网络应用防护***模型的构建方法和装置 | |
CN106709345B (zh) | 基于深度学习方法推断恶意代码规则的方法、***及设备 | |
CN110266647B (zh) | 一种命令和控制通信检测方法及*** | |
CN111614599B (zh) | 基于人工智能的webshell检测方法和装置 | |
CN111783442A (zh) | 入侵检测方法、设备和服务器、存储介质 | |
CN113596007B (zh) | 一种基于深度学习的漏洞攻击检测方法和设备 | |
CN112468347B (zh) | 一种云平台的安全管理方法、装置、电子设备及存储介质 | |
KR102153992B1 (ko) | 심층 신경망을 이용한 사이버 위협 탐지 방법 및 장치 | |
CN112492059A (zh) | Dga域名检测模型训练方法、dga域名检测方法、装置及存储介质 | |
Ahmad et al. | Zero-day attack detection: a systematic literature review | |
CN112738014A (zh) | 一种基于卷积时序网络的工控流量异常检测方法及*** | |
CN112052451A (zh) | 一种webshell检测方法和装置 | |
CN117220920A (zh) | 基于人工智能的防火墙策略管理方法 | |
CN111740946A (zh) | Webshell报文的检测方法及装置 | |
CN113194064A (zh) | 基于图卷积神经网络的webshell检测方法及装置 | |
Lambert II | Security analytics: Using deep learning to detect cyber attacks | |
Assefa et al. | Intelligent phishing website detection using deep learning | |
Mimura et al. | Leaving all proxy server logs to paragraph vector | |
CN112052453A (zh) | 基于Relief算法的webshell检测方法及装置 | |
CN116663018A (zh) | 一种基于代码可执行路径的漏洞检测方法及装置 | |
Guan et al. | The design and implementation of a multidimensional and hierarchical web anomaly detection system | |
Zhong et al. | A security log analysis scheme using deep learning algorithm for IDSs in social network | |
Xie et al. | Research and application of intrusion detection method based on hierarchical features | |
CN117792794B (zh) | 一种网络威胁情报分析方法、设备及*** | |
Rathod et al. | AI & ML Based Anamoly Detection and Response Using Ember Dataset |
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 |