CN114285641A - 网络攻击检测方法及装置、电子设备、存储介质 - Google Patents

网络攻击检测方法及装置、电子设备、存储介质 Download PDF

Info

Publication number
CN114285641A
CN114285641A CN202111601657.XA CN202111601657A CN114285641A CN 114285641 A CN114285641 A CN 114285641A CN 202111601657 A CN202111601657 A CN 202111601657A CN 114285641 A CN114285641 A CN 114285641A
Authority
CN
China
Prior art keywords
request text
network
attack
sensitive
network request
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
Application number
CN202111601657.XA
Other languages
English (en)
Other versions
CN114285641B (zh
Inventor
施丽佳
白冰
董康辉
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.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp Ltd
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
Application filed by China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202111601657.XA priority Critical patent/CN114285641B/zh
Publication of CN114285641A publication Critical patent/CN114285641A/zh
Application granted granted Critical
Publication of CN114285641B publication Critical patent/CN114285641B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本公开提供了一种网络攻击检测方法及装置、电子设备、存储介质,涉及网络安全技术领域。该网络攻击检测方法包括:获取待检测的网络请求文本;对所述网络请求文本进行泛化分词处理,得到所述网络请求文本对应的请求文本词序列;将所述请求文本词序列输入到多片段问答模型中,输出所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。本公开实施例的技术方案能够检测到网络请求文本中的多种攻击类型并定位到对应的敏感片段,有效提升敏感片段的检测效率,提升检测的准确性以及全面性。

Description

网络攻击检测方法及装置、电子设备、存储介质
技术领域
本公开涉及网络安全技术领域,具体而言,涉及一种网络攻击检测方法、网络攻击检测装置、电子设备以及计算机可读存储介质。
背景技术
随着互联网技术的飞速发展,网络信息安全越来越得到人们的重视。一般情况下,网络攻击者常常将带有恶意目的的片段嵌入网络请求request中进行发送,形成攻击请求,网络维护运营人员需要从大量的网络请求中找出带有恶意片段的攻击请求并处理。
目前,相关的技术方案中,仅能检测出攻击请求中单个恶意片段的位置,若攻击请求中存在多个恶意片段时,可能导致漏检的问题,检测结果的准确性较低;同时,只能检测出恶意片段的位置,需要网络维护运营人员人工确定恶意片段对应的攻击类型,检测效率较低。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于提供一种网络攻击检测方法、网络攻击检测装置、电子设备以及计算机可读存储介质,进而至少在一定程度上克服相关技术方案中网络攻击检测结果的准确性较低、检测效率较低的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的第一方面,提供了一种网络攻击检测方法,包括:
获取待检测的网络请求文本;
对所述网络请求文本进行泛化分词处理,得到所述网络请求文本对应的请求文本词序列;
将所述请求文本词序列输入到多片段问答模型中,输出所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
在本公开的一些示例实施例中,基于前述方案,所述将所述请求文本词序列输入到多片段问答模型中,输出所述网络请求文本中的敏感片段,包括:
将所述请求文本词序列输入到多片段问答模型中,输出概率矩阵;
根据所述概率矩阵确定所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
在本公开的一些示例实施例中,基于前述方案,所述根据所述概率矩阵确定所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型,包括:
对所述概率矩阵进行sigmoid变换与标准化处理,得到标准概率矩阵;
通过所述标准概率矩阵确定所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
在本公开的一些示例实施例中,基于前述方案,所述标准概率矩阵包括多个列,每列对应一个攻击类型,每列包括属于对应的攻击类型的词语的概率值;
所述通过所述标准概率矩阵确定所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型,包括:
若检测到目标概率值大于或者等于概率值阈值,则将所述目标概率值对应的词语作为所述网络请求文本的敏感片段;以及
将所述目标概率值所处的列对应的目标攻击类型作为所述敏感片段对应的攻击类型。
在本公开的一些示例实施例中,基于前述方案,所述方法还包括:
若所述标准概率矩阵中的目标列对应的所有概率值均小于所述概率值阈值,则确定所述网络请求文本不存在所述目标列对应的攻击类型。
在本公开的一些示例实施例中,基于前述方案,所述方法还包括:
若所述标准概率矩阵中的所有概率值均小于所述概率值阈值,则确定所述网络请求文本为正常请求。
在本公开的一些示例实施例中,基于前述方案,所述多片段问答模型是基于预训练模型RoBERTa构建的,所述多片段问答模型的损失函数是BECLoss。
根据本公开实施例的第二方面,提供了一种网络攻击检测装置,包括:
网络请求获取模块,用于获取待检测的网络请求文本;
请求文本预处理模块,用于对所述网络请求文本进行泛化分词处理,得到所述网络请求文本对应的请求文本词序列;
网络攻击检测模块,用于将所述请求文本词序列输入到多片段问答模型中,输出所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
根据本公开实施例的第三方面,提供了一种电子设备,包括:处理器;以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现上述任意一项所述的网络攻击检测方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据上述任意一项所述的网络攻击检测方法。
本公开实施例提供的技术方案可以包括以下有益效果:
本公开的示例实施例中的网络攻击检测方法,可以获取待检测的网络请求文本,并对网络请求文本进行泛化分词处理,得到网络请求文本对应的请求文本词序列;将请求文本词序列输入到多片段问答模型中,输出网络请求文本中的敏感片段以及该敏感片段对应的攻击类型。一方面,对网络请求文本进行泛化分词处理,能够有效提升检测结果的鲁棒性;另一方面,通过多片段问答模型能够检测到网络请求文本中的多种攻击类型并定位到对应的敏感片段,有效提升敏感片段的检测效率,提升检测的准确性以及全面性;再一方面,通过直接输出网络请求文本中的敏感片段以及敏感片段对应的攻击类型,不需要网络维护运营人员去通过人工的方式确定敏感片段的攻击类型,更加符合网络运维场景的需求,进一步提升网络攻击检测以及处理的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本公开实施例的一种网络攻击检测方法及网络攻击检测装置的示例性应用环境的系统架构示意图。
图2示意性示出了根据本公开的一些实施例的网络攻击检测方法的流程示意图;
图3示意性示出了根据本公开的一些实施例的实现敏感片段检测的流程示意图;
图4示意性示出了根据本公开的一些实施例的根据概率矩阵确定敏感片段以及攻击类型的流程示意图;
图5示意性示出了根据本公开的一些实施例的根据概率矩阵对网络请求文本进行检测的流程示意图;
图6示意性示出了根据本公开的一些实施例的标准概率矩阵的结构示意图;
图7示意性示出了根据本公开的一些实施例的实现网络攻击检测的流程示意图;
图8示意性示出了根据本公开的一些实施例的网络攻击检测装置的示意图;
图9示意性示出了根据本公开的一些实施例的电子设备的计算机系统的结构示意图;
图10示意性示出了根据本公开的一些实施例的计算机可读存储介质的示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
此外,附图仅为示意性图解,并非一定是按比例绘制。附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本公开实施例的一种网络攻击检测方法及网络攻击检测装置的示例性应用环境的系统架构示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是各种具有网络通信功能的电子设备,包括但不限于台式计算机、便携式计算机、智能手机、智能客服机器人、门禁设备和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
本公开实施例所提供的网络攻击检测方法一般由终端设备101、102、103中执行,相应地网络攻击检测装置一般设置于终端设备101、102、103中。但本领域技术人员容易理解的是,本公开实施例所提供的网络攻击检测方法也可以由服务器105执行,相应的,网络攻击检测装置也可以设置于服务器105中,本示例性实施例中对此不做特殊限定。
举例而言,在一种示例性实施例中,可以是用户通过终端设备101、102、103采集待检测的网络请求文本,然后将网络请求文本上传至服务器105,服务器通过本公开实施例所提供的网络攻击检测方法生成至少一个敏感片段以及该敏感片段对应的攻击类型后,将检测结果回传给终端设备101、102、103等。
相关方案中,要么是通过依赖规则和黑白名单的方式来进行Web攻击检测,但是这种方式过分依赖网络维护运营人员的知识广度,针对未知攻击类型无可奈何;另一方面即使是已知的攻击类型,由于正则表达式天生的局限性,以及shell、php等语言极其灵活的语法,理论上可以绕过,因此误拦和漏拦是天生存在的;而提高正则准确性的代价就是添加更多精细化正则,耗费大量人力物力,并且随着正则的不断细化,数据量越大,降低检测系统的性能。
要么是基于人工智能(Artificial Intelligence,AI)技术,一般是利用基于自然语言处理(Natural Language Processing,NLP)的预训练模型技术的QuestionAnswering任务模型,该模型可以在输入文本中寻找一个片段作为答案,是一种“一对一”的模型。而在web网络攻击检测场景中,一条request请求文本,可能存在多个恶意片段,且对于检测到的恶意片段,需要输出对应的攻击类型,才符合运维需求。
基于相关技术中的一个或者多个问题,在本示例实施例中,首先提供了一种网络攻击检测方法,下面以服务器执行该方法为例进行说明。图2示意性示出了根据本公开的一些实施例的网络攻击检测方法流程的示意图。参考图2所示,该网络攻击检测方法可以包括以下步骤:
步骤S210,获取待检测的网络请求文本;
步骤S220,对所述网络请求文本进行泛化分词处理,得到所述网络请求文本对应的请求文本词序列;
步骤S230,将所述请求文本词序列输入到多片段问答模型中,输出所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
根据本示例实施例中的网络攻击检测方法,一方面,对网络请求文本进行泛化分词处理,能够有效提升检测结果的鲁棒性;另一方面,通过多片段问答模型能够检测到网络请求文本中的多种攻击类型并定位到对应的敏感片段,有效提升敏感片段的检测效率,提升检测的准确性以及全面性;再一方面,通过直接输出网络请求文本中的敏感片段以及敏感片段对应的攻击类型,不需要网络维护运营人员去通过人工的方式确定敏感片段的攻击类型,更加符合网络运维场景的需求,进一步提升网络攻击检测以及处理的效率。
下面,将对本示例实施例中的网络攻击检测方法进行进一步的说明。
在步骤S210中,获取待检测的网络请求文本。
在本公开的一个示例实施例中,网络请求文本是指用户通过通信网络设备输入的统一资源定位符(Uniform Resource Locator,URL)向Web网络服务器请求相应数据的文本数据。
以通过浏览器访问数据为例,一个完整的网络请求流程至少包括:浏览器通过域名解析把输入的网址转换为对应的网际互连协议(Internet Protocol,IP)地址;根据IP地址在互联网上找到对应的服务器,建立Socket链接;客户端向服务器发送超文本传输协议(Hyper Text Transfer Protocol,HTTP)协议请求包,请求服务器中的资源;到达负载均衡服务器,根据相应策略来分配用户请求到指定服务器来处理请求;请求的数据可以存储在分布式缓存中,或者静态文件中,还有数据库等等;当数据返回给浏览器时,浏览器解析数据和静态资源(css、js、jpg等等)时候又会发起另外一个请求,整个请求可能会在内容分发网络(Content Delivery Network,CDN)上,那么CDN服务器继续处理这个用户的请求;关闭传输控制协议(Transmission Control Protocol,TCP)链接,客户端与服务器断开,客户端解析HTML文档,在浏览器上渲染图形结果。由此可见,若网络攻击者在向网络服务器发起攻击时,通过发送给网络服务器的网络请求文本设置隐藏网络攻击片段是主要的途径之一,因此,网络维护运营人员需要时刻对发送给网络服务器的网络请求文本进行网络攻击检测,确保网络服务器的安全性。
可以通过预设接口的方式获取用户向网络服务器传递的网络请求文本,也可以通过预设的抓取工具获取用户向网络服务器传递的网络请求文本,本示例实施例对获取网络请求文本的方式不做任何特殊限定。
在步骤S220中,对所述网络请求文本进行泛化分词处理,得到所述网络请求文本对应的请求文本词序列。
在本公开的一个示例实施例中,泛化分词处理是指对网络请求文本中的字符进行分词后提升词表达泛化能力(Generalization ability)以实现文本特征提取的处理方式,例如,泛化分词处理可以是对网络请求文本的字符进行正则分词后,然后通过泛化词表对分词得到的词语或者字符进行替换得到请求文本词序列的处理过程,当然,泛化分词处理也可以是其他能够实现网络请求文本的泛化以实现文本特征提取的处理方式,本示例实施例对此不做特殊限定。
举例而言,以对字符串进行泛化分词处理为例,如字符串可以是“99999/**/union/**/select/**/0,1,concat(1331919200,0x3a,1131566153),3,4,5,6,7,8,9,10,11,12,13,14,15,16”,使用正则分词,可以得到结果:“'99999','/**/','union','/**/','select','/**/','0','1','concat(1331919200','0x3a','1131566153)','3','4','5','6','7','8','9','10','11','12','13','14','15','16”,进而可以对分词后的结果进行泛化处理,具体的泛化词表可以是“[a-z,A-Z]泛化为A;[0-9]泛化为N;[\-_]泛化为C,其他字符泛化为T”,其中,99999可以泛化为N,union可以泛化为AAAAA。当然,此处仅是示意性举例说明,并不应对本示例实施例造成任何特殊限定。
在步骤S230中,将所述请求文本词序列输入到多片段问答模型中,输出所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
在本公开的一个示例实施例中,多片段问答模型是指用于对网络请求文本中的多个敏感片段或者恶意片段进行定位以及敏感片段或者恶意片段的攻击类型识别的深度学习模型,例如,多片段问答模型可以是通过改进NLP预训练模型(BERT)的QA任务,修改模型的输出层结构,修改损失函数后得到的神经网络模型,具体的,多片段问答模型可以是基于预训练模型RoBERTa构建的。当然,多片段问答模型还可以是其他的能够实现网络请求文本中的多个敏感片段或者恶意片段的定位以及攻击类型判断的深度学习模型,如多片段问答模型还可以是基于卷积神经网络(Convolutional Neural Networks,CNN)的多任务分类器,本示例实施例对此不作特殊限定。
敏感片段是指网络请求文本中隐藏的疑似可执行代码段或者异常代码对应的文本片段,例如,敏感片段可以是伪装进URL的脚本代码,网络攻击者可以将URL进行URLEncode编码,当用户点击链接后,脚本就会被执行;敏感片段也可以是伪装成正常的HTTP请求参数的SQL(Structured Query Language,结构化查询语言)命令,网络攻击者可以将该伪装有SQL命令的HTTP请求参数传递到网络服务器,欺骗网络服务器最终执行恶意的SQL命令,达到入侵目的。当然,敏感片段还可以其他隐藏在网络请求文本中可能影响网络服务器正常工作的代码片段,本示例实施例对此不做特殊限定。
敏感片段对应的攻击类型是指划分的具有不同攻击目的的类型,例如,敏感片段对应的攻击类型可以包括跨站脚本攻击(Cross Site Scripting,XSS)攻击类型,XSS攻击类型的敏感片段的攻击原理是在网页中嵌入恶意脚本,当用户打开网页时,恶意脚本便开始在用户浏览器上执行,以盗取客户端cookie、用户名、密码,甚至下载木马程式等;可以包括全称跨站请求伪造(Cross Site Request Forgery,CSRF)攻击类型,攻击原理是通过盗用用户的身份信息,以用户的名义向第三方网站发起恶意请求,若转账、盗取账号、发信息、邮件等;可以包括SQL注入攻击类型,攻击原理是将SQL命令伪装成正常的HTTP请求参数,传递到服务端,欺骗服务器最终执行恶意的SQL命令,达到入侵目的。当然,敏感片段对应的攻击类型还可以是其他攻击类型,此处不再一一举例说明。
下面,对步骤S210至步骤S230进行详细说明。
在本公开的一个示例实施例中,可以通过图3中的步骤实现确定网络请求文本中的敏感片段以及敏感片段对应的攻击类型,参考图3所示,具体可以包括:
步骤S310,将所述请求文本词序列输入到多片段问答模型中,输出概率矩阵;
步骤S320,根据所述概率矩阵确定所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
其中,概率矩阵是指是用来描述一个马尔可夫链的转变的矩阵,概率矩阵的每一项都是一个表示概率的非负实数。多片段问答模型输出的概率矩阵可以表征多种攻击类型的概率,例如,假设对于每种攻击类型,输出的概率向量为512*1,那么多片段问答模型输出的概率矩阵可以表示为512*n-class(表示攻击类型的数量),如敏感片段的攻击类型共有7中,那么概率矩阵可以表示为512*7。当然,此处仅是示意性举例说明,本示例实施例对此不做特殊限定。
具体的,在根据概率矩阵确定网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型之前,可以对概率矩阵进行sigmoid变换与标准化处理,得到标准概率矩阵,进而可以通过标准概率矩阵快速确定网络请求文本中的敏感片段以及敏感片段对应的攻击类型。
其中,sigmoid变换是指通过sigmoid函数对多片段问答模型的输出向量进行平滑的处理过程。sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线,在本实施例中,由于其单增以及反函数单增等性质,sigmoid函数常被用作神经网络的激活函数,将变量映射到一个数值区间内。
标准化处理是指消除输出向量中存在的异常值或者噪音数据的处理方式,通过标准化处理可以间接通过中心化避免异常值和极端值对检测结果的影响,例如,标准化处理可以是z-score标准化处理方式,经过处理后的数据均值为0,标准差为1,当然,本示例实施例中的标准化处理还可以采用其他方式,本示例实施例不以此为限。
通过对概率矩阵进行sigmoid变换与标准化处理得到标准概率矩阵,进而在根据标准概率矩阵敏感片段以及敏感片段对应的攻击类型时,能够方便检测识别,有效提升检测效率,避免异常数据对检测结果的影响,提高检测结果的准确性。
在本公开的一个示例实施例中,标准概率矩阵可以包括多个列,标准概率矩阵的每列可以对应一个攻击类型,每列可以包括属于对应的攻击类型的词语的概率值。
可选的,可以通过图4中的步骤实现根据标准概率矩阵确定所述网络请求文本中的敏感片段以及敏感片段对应的攻击类型,参考图4所示,具体可以包括:
步骤S410,若检测到目标概率值大于或者等于概率值阈值,则将所述目标概率值对应的词语作为所述网络请求文本的敏感片段;以及
步骤S420,将所述目标概率值所处的列对应的目标攻击类型作为所述敏感片段对应的攻击类型。
其中,概率值阈值可以是预先设置的用于判断标准概率矩阵中的概率值是否属于某攻击类型的参数,例如,假设标准概率矩阵中的概率值取值区间为0-10,那么概率值阈值可以是5,也可以是6,具体可以根据实际使用情况进行自定义设置,本示例实施例对此不作特殊限定。
可以在检测到标准概率矩阵中某列的目标概率值大于或者等于概率值阈值时,则将目标概率值对应的词语作为网络请求文本的敏感片段,并且可以将目标概率值所处的列对应的目标攻击类型作为敏感片段对应的攻击类型。
可选的,可以通过图5中的步骤实现根据标准概率矩阵确定所述网络请求文本中的敏感片段以及敏感片段对应的攻击类型,参考图5所示,具体可以包括:
步骤S510,若所述标准概率矩阵中的目标列对应的所有概率值均小于所述概率值阈值,则确定所述网络请求文本不存在所述目标列对应的攻击类型;
步骤S520,若所述标准概率矩阵中的所有概率值均小于所述概率值阈值,则确定所述网络请求文本为正常请求。
其中,正常请求是指未检测出敏感片段的网络请求文本。
图6示意性示出了根据本公开的一些实施例的标准概率矩阵的结构示意图。
参考图6所示,可以对待检测的网络请求文本进行泛化分词处理,并将泛化分词处理得到的请求文本词序列输入到多片段问答模型中,输出概率矩阵,并对概率矩阵进行sigmoid变换与标准化处理,得到标准概率矩阵600,其中,标准概率矩阵600可以是512行*7列的矩阵(图6仅是示意性举例表示,对部分数据未示出,仅列出4列6行数据),例如,标准概率矩阵600可以包括四列,每列对应一个攻击类型,分别是跨站脚本攻击(Cross SiteScripting,XSS)类型601,SQL注入攻击(SQL-Injection)类型602,信息泄露攻击(Information Leakage)类型603,路径遍历攻击(Path Traversal)类型604,每列对应的512个元素可以表示属于该列对应的攻击类型的概率向量512*1。
假设概率值阈值可以设置为9.0000,那么,对于标准概率矩阵600中的每个元素,其中第一列中的目标概率值605“9.6050”大于概率值阈值9.0000,那么可以认为该元素对应的词语属于敏感片段,并且该敏感片段对应的攻击类型为跨站脚本攻击(Cross SiteScripting,XSS)类型601;其中,第二列的目标概率值606“9.4691、9.8834、9.3554”大于概率值阈值9.0000,那么可以认为这三个元素对应的词语属于敏感片段,并且该敏感片段对应的攻击类型为SQL注入攻击(SQL-Injection)类型602。由于第三列以及第四列中的概率值均小于概率值阈值,可以认为该网络请求文本不包含信息泄露攻击(InformationLeakage)类型603以及路径遍历攻击(Path Traversal)类型604的敏感片段。
当然,图6仅是示意性举例说明,并不应对本示例实施例造成任何特殊限定。
在本公开的一个示例实施例中,多片段问答模型可以是基于预训练模型RoBERTa构建的,RoBERTa预训练模型作为一种当前基于中文的先进的预训练模型之一,是在BERT预训练模型的基础上进行了改进。对原BERT的学习率(Learning Rate)的峰值做出了调整,将Adam算法(Adaptive Moment Estimation)中的参数β2从原先的0.999改为0.98。BERT会对输入的序列进行截断,而RoBERTa不会对输入的序列进行截断,RoBERTa在多项自然语言处理任务中都取得了非常卓越的成绩,并且在原BERT的基础上,模型使用了1024块V100GPU训练,并且RoBERTa使用的是动态遮盖(Dynamic Masking),即每次向模型输入一个新的文字序列时会随机生成一个新的遮盖模式,而原有的BERT只是静态遮盖(Static Masking)。实验发现,去除NSP(Next SentencePrediction)任务在下游任务的性能上能够与原始BERT持平或略有提高。这可能是由于BERT以单句子为单位输入,模型无法学习到词之间的远程依赖关系,而RoBERTa输入为连续的多个句子,模型更能俘获更长的依赖关系,这对长序列的下游任务比较友好。RoBERTa在训练过程中也使用了更大的Batch Size(单次训练所选取的样本数,即每一步训练时,模型同时训练的训练样本数),样本数从256到8000不等,而原BERT模型的单次最大训练样本只有256个样本数。
多片段问答模型的损失函数可以是BECLoss,即BCEWithLogitsLoss函数,BCEWithLogitsLoss函数包括可以Sigmoid层和BCELoss层,适用于多标签分类任务。本示例实施例可以采用均值模式,使loss数值更平稳。
举例而言,BCELoss层可以表示为关系式(1):
loss=BCEWithLogitsLoss(out_matrix,labels_hot) (1)
其中,out_matrix可以表示多片段问答模型的输出结果,labels_hot可以表示训练多片段问答模型时采用的标签数据。
Sigmoid层可以表示为关系式(2):
pro_matrix=sigmoid(out_matrix) (2)
其中,out_matrix可以表示多片段问答模型的输出结果,pro_matrix为多片段问答模型的输出矩阵进行sigmoid变换得到的标准概率矩阵。
采用均值模式的多片段问答模型的损失函数可以表示为关系式(3):
Figure BDA0003433245500000131
其中,L(pro_matrix,labels_hot)可以表示多片段问答模型的损失函数,pro_matrix为多片段问答模型的输出矩阵进行sigmoid变换得到的标准概率矩阵,labels_hot可以表示训练多片段问答模型时采用的标签数据。
图7示意性示出了根据本公开的一些实施例的实现网络攻击检测的流程示意图。
参考图7所示,步骤S710,获取待检测的网络请求request文本;
步骤S720,对网络请求request文本进行泛化分词,得到请求文本词序列;
步骤S730,将请求文本词序列输入到多片段问答模型中,输出概率矩阵;
步骤S740,对概率矩阵进行sigmoid变换以及标准化处理得到标准概率矩阵;
步骤S750,将标准概率矩阵与概率值阈值进行比较;在检测到目标概率值大于或者等于概率值阈值时,可以将目标概率值对应的词语作为网络请求文本的敏感片段,以及将目标概率值所处的列对应的目标攻击类型作为敏感片段对应的攻击类型;在检测到标准概率矩阵中的目标列对应的所有概率值均小于概率值阈值时,可以确定网络请求文本不存在目标列对应的攻击类型;在检测到标准概率矩阵中的所有概率值均小于概率值阈值,可以确定网络请求文本为正常请求;
步骤S760,输出敏感片段以及敏感片段对应的攻击类型。
本公开针长文本request请求检测网络web攻击的问题场景,通过改进NLP预训练模型的QA任务,修改模型的输出层结构,修改损失函数(以BECLoss作为损失函数),输出待测请求的敏感片段和对应的攻击类型。本公开中的网络攻击检测方法计算网络web请求文本中每个词的恶意概率,并且将原本的NLP预训练模型中单一答案的问答任务,转换成多回答模型,具有较高的实用性;通过在给出多敏感片段回答的同时,给出每个敏感片段的攻击类型标签,更加符合日常网络维护运营的需求,对web攻击研判更高效。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
此外,在本示例实施例中,还提供了一种网络攻击检测装置。参照图8所示,该网络攻击检测装置800包括:网络请求获取模块810、请求文本预处理模块820以及网络攻击检测模块830。其中:
网络请求获取模块810用于获取待检测的网络请求文本;
请求文本预处理模块820用于对所述网络请求文本进行泛化分词处理,得到所述网络请求文本对应的请求文本词序列;
网络攻击检测模块830用于将所述请求文本词序列输入到多片段问答模型中,输出所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
在本公开的一种示例性实施例中,基于前述方案,网络攻击检测模块830可以用于:
将所述请求文本词序列输入到多片段问答模型中,输出概率矩阵;
根据所述概率矩阵确定所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
在本公开的一种示例性实施例中,基于前述方案,网络攻击检测模块830还可以用于:
对所述概率矩阵进行sigmoid变换与标准化处理,得到标准概率矩阵;
通过所述标准概率矩阵确定所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
在本公开的一种示例性实施例中,基于前述方案,标准概率矩阵可以包括多个列,每列对应一个攻击类型,每列可以包括属于对应的攻击类型的词语的概率值;网络攻击检测模块830还可以用于:
若检测到目标概率值大于或者等于概率值阈值,则将所述目标概率值对应的词语作为所述网络请求文本的敏感片段;以及
将所述目标概率值所处的列对应的目标攻击类型作为所述敏感片段对应的攻击类型。
在本公开的一种示例性实施例中,基于前述方案,网络攻击检测模块830还可以用于:
若所述标准概率矩阵中的目标列对应的所有概率值均小于所述概率值阈值,则确定所述网络请求文本不存在所述目标列对应的攻击类型。
在本公开的一种示例性实施例中,基于前述方案,网络攻击检测模块830还可以用于:
若所述标准概率矩阵中的所有概率值均小于所述概率值阈值,则确定所述网络请求文本为正常请求。
在本公开的一种示例性实施例中,基于前述方案,多片段问答模型可以是基于预训练模型RoBERTa构建的,多片段问答模型的损失函数可以是BECLoss。
上述中网络攻击检测装置各模块的具体细节已经在对应的网络攻击检测方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了网络攻击检测装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述网络攻击检测方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
下面参照图9来描述根据本公开的这种实施例的电子设备900。图9所示的电子设备900仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930、显示单元940。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元910执行,使得所述处理单元910执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。例如,所述处理单元910可以执行如图2中所示的步骤S210,获取待检测的网络请求文本;步骤S220,对所述网络请求文本进行泛化分词处理,得到所述网络请求文本对应的请求文本词序列;步骤S230,将所述请求文本词序列输入到多片段问答模型中,输出所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)921和/或高速缓存存储单元922,还可以进一步包括只读存储单元(ROM)923。
存储单元920还可以包括具有一组(至少一个)程序模块925的程序/实用工具924,这样的程序模块925包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备900也可以与一个或多个外部设备970(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备900交互的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
参考图10所示,描述了根据本公开的实施例的用于实现上述网络攻击检测方法的程序产品1000,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施例的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种网络攻击检测方法,其特征在于,包括:
获取待检测的网络请求文本;
对所述网络请求文本进行泛化分词处理,得到所述网络请求文本对应的请求文本词序列;
将所述请求文本词序列输入到多片段问答模型中,输出所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
2.根据权利要求1所述的方法,其特征在于,所述将所述请求文本词序列输入到多片段问答模型中,输出所述网络请求文本中的敏感片段,包括:
将所述请求文本词序列输入到多片段问答模型中,输出概率矩阵;
根据所述概率矩阵确定所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
3.根据权利要求2所述的方法,其特征在于,所述根据所述概率矩阵确定所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型,包括:
对所述概率矩阵进行sigmoid变换与标准化处理,得到标准概率矩阵;
通过所述标准概率矩阵确定所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
4.根据权利要求3所述的方法,其特征在于,所述标准概率矩阵包括多个列,每列对应一个攻击类型,每列包括属于对应的攻击类型的词语的概率值;
所述通过所述标准概率矩阵确定所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型,包括:
若检测到目标概率值大于或者等于概率值阈值,则将所述目标概率值对应的词语作为所述网络请求文本的敏感片段;以及
将所述目标概率值所处的列对应的目标攻击类型作为所述敏感片段对应的攻击类型。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述标准概率矩阵中的目标列对应的所有概率值均小于所述概率值阈值,则确定所述网络请求文本不存在所述目标列对应的攻击类型。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述标准概率矩阵中的所有概率值均小于所述概率值阈值,则确定所述网络请求文本为正常请求。
7.根据权利要求1所述的方法,其特征在于,所述多片段问答模型是基于预训练模型RoBERTa构建的,所述多片段问答模型的损失函数是BECLoss。
8.一种网络攻击检测装置,其特征在于,包括:
网络请求获取模块,用于获取待检测的网络请求文本;
请求文本预处理模块,用于对所述网络请求文本进行泛化分词处理,得到所述网络请求文本对应的请求文本词序列;
网络攻击检测模块,用于将所述请求文本词序列输入到多片段问答模型中,输出所述网络请求文本中的敏感片段以及所述敏感片段对应的攻击类型。
9.一种电子设备,包括:
处理器;以及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如权利要求1至7中任一项所述的网络攻击检测方法。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的网络攻击检测方法。
CN202111601657.XA 2021-12-24 2021-12-24 网络攻击检测方法及装置、电子设备、存储介质 Active CN114285641B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111601657.XA CN114285641B (zh) 2021-12-24 2021-12-24 网络攻击检测方法及装置、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111601657.XA CN114285641B (zh) 2021-12-24 2021-12-24 网络攻击检测方法及装置、电子设备、存储介质

Publications (2)

Publication Number Publication Date
CN114285641A true CN114285641A (zh) 2022-04-05
CN114285641B CN114285641B (zh) 2024-04-05

Family

ID=80875222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111601657.XA Active CN114285641B (zh) 2021-12-24 2021-12-24 网络攻击检测方法及装置、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN114285641B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115102773A (zh) * 2022-06-29 2022-09-23 苏州浪潮智能科技有限公司 一种走私攻击检测方法、系统、设备及可读存储介质
CN115514539A (zh) * 2022-09-02 2022-12-23 中国电信股份有限公司 一种网络攻击的防护方法及装置、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170187747A1 (en) * 2015-12-28 2017-06-29 Arbor Networks, Inc. Using recurrent neural networks to defeat dns denial of service attacks
CN108259494A (zh) * 2018-01-17 2018-07-06 北京邮电大学 一种网络攻击检测方法及装置
CN110808968A (zh) * 2019-10-25 2020-02-18 新华三信息安全技术有限公司 网络攻击检测方法、装置、电子设备和可读存储介质
CN111371806A (zh) * 2020-03-18 2020-07-03 北京邮电大学 一种Web攻击检测方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170187747A1 (en) * 2015-12-28 2017-06-29 Arbor Networks, Inc. Using recurrent neural networks to defeat dns denial of service attacks
CN108259494A (zh) * 2018-01-17 2018-07-06 北京邮电大学 一种网络攻击检测方法及装置
CN110808968A (zh) * 2019-10-25 2020-02-18 新华三信息安全技术有限公司 网络攻击检测方法、装置、电子设备和可读存储介质
CN111371806A (zh) * 2020-03-18 2020-07-03 北京邮电大学 一种Web攻击检测方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115102773A (zh) * 2022-06-29 2022-09-23 苏州浪潮智能科技有限公司 一种走私攻击检测方法、系统、设备及可读存储介质
CN115514539A (zh) * 2022-09-02 2022-12-23 中国电信股份有限公司 一种网络攻击的防护方法及装置、存储介质及电子设备
CN115514539B (zh) * 2022-09-02 2024-01-30 中国电信股份有限公司 一种网络攻击的防护方法及装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN114285641B (zh) 2024-04-05

Similar Documents

Publication Publication Date Title
US11151177B2 (en) Search method and apparatus based on artificial intelligence
CN108259494B (zh) 一种网络攻击检测方法及装置
CN107463704B (zh) 基于人工智能的搜索方法和装置
CN110808968B (zh) 网络攻击检测方法、装置、电子设备和可读存储介质
CN112685739B (zh) 恶意代码检测方法、数据交互方法及相关设备
CN114285641B (zh) 网络攻击检测方法及装置、电子设备、存储介质
CN109391706A (zh) 基于深度学习的域名检测方法、装置、设备和存储介质
KR101858620B1 (ko) 기계 학습을 이용한 자바스크립트 분석 장치 및 방법
CN111866004B (zh) 安全评估方法、装置、计算机系统和介质
CN108229170B (zh) 利用大数据和神经网络的软件分析方法和装置
CN115941322B (zh) 基于人工智能的攻击检测方法、装置、设备及存储介质
CN112069498A (zh) 一种sql注入检测模型构建方法及检测方法
CN110866257A (zh) 木马检测方法及装置、电子设备、存储介质
Gong et al. Model uncertainty based annotation error fixing for web attack detection
Yan et al. Cross-site scripting attack detection based on a modified convolution neural network
CN117614644A (zh) 恶意网址识别方法、电子设备及存储介质
CN113918936A (zh) Sql注入攻击检测的方法以及装置
WO2020252880A1 (zh) 反向图灵验证方法及装置、存储介质、电子设备
CN111382383A (zh) 网页内容敏感类型确定方法、装置、介质和计算机设备
CN112364649B (zh) 命名实体的识别方法、装置、计算机设备及存储介质
CN111475812B (zh) 一种基于数据可执行特征的网页后门检测方法与系统
CN114301713A (zh) 风险访问检测模型的训练方法、风险访问检测方法及装置
CN110413909B (zh) 基于机器学习的大规模嵌入式设备在线固件智能识别方法
CN115840817A (zh) 基于对比学习的信息聚类处理方法、装置和计算机设备
CN113987496A (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