CN113114679B - 报文的识别方法、装置、电子设备及介质 - Google Patents
报文的识别方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN113114679B CN113114679B CN202110397527.2A CN202110397527A CN113114679B CN 113114679 B CN113114679 B CN 113114679B CN 202110397527 A CN202110397527 A CN 202110397527A CN 113114679 B CN113114679 B CN 113114679B
- Authority
- CN
- China
- Prior art keywords
- request message
- request
- message
- matrix
- file
- 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
- 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
-
- 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
- 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
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Biology (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种报文的识别方法,属于大数据领域。该方法包括:获取访问网站的请求报文;以及利用分类器模型识别所述请求报文属于文件上传报文或非文件上传报文,以根据识别结果处理所述请求报文;其中,所述分类器模型为基于多个历史请求报文训练得到的二分类机器学习模型。本公开还提供了一种报文的识别装置、一种电子设备、以及一种计算机可读存储介质。
Description
技术领域
本公开属于人工智能技术领域,更具体地,涉及一种报文的识别方法、装置、电子设备、及计算机可读存储介质。
背景技术
在现代互联网的web应用程序当中,为了提高业务效率,往往有上传文件的功能,但是这也会提高web应用受到攻击的风险,如果web应用存在文件上传漏洞,那么攻击者就可以利用这个漏洞进行攻击,进而造成控制整个网站,甚至控制服务器的危害。因此,对访问web应用程序的文件上传报文进行监控和处理对保护web应用程序非常重要,而这也要求能够首先从大量访问web应用程序的请求报文中甄别出文件上传报文。
发明内容
有鉴于此,本公开实施例提供了一种报文的识别方法、装置、电子设备及介质,能够在较大程度上智能地、自动化地识别出请求报文是否为文件上传报文,便于网站对报文进行分析处理。
本公开实施例的一个方面,提供了一种报文的识别方法。该方法包括:获取访问网站的请求报文;以及利用分类器模型识别所述请求报文属于文件上传报文或非文件上传报文,以根据识别结果处理所述请求报文;其中,所述分类器模型为基于多个历史请求报文训练得到的二分类机器学习模型。
根据本公开的实施例,所述利用分类器模型识别所述请求报文属于文件上传报文或非文件上传报文,包括以如下任意一种方式或多种方式的组合,得到所述请求报文的特征矩阵:基于对所述请求报文中的字符的自然语言处理,获得所述请求报文的字符分布特征矩阵;基于将所述请求报文中的字符与预设的行为词典矩阵空间的匹配,获得所述请求报文的上传行为分布特征矩阵;或者,基于对所述请求报文中的字符与预设的类型词典矩阵空间的匹配,获得所述请求报文的文件类型特征矩阵。其中,所述行为词典矩阵空间由用于表征与报文的上传行为相关的词构成,所述类型词典矩阵空间由用于表征上传的文件的词构成。然后,将所述请求报文的特征矩阵输入到所述分类器模型,以获得所述分类器模型输出的分类结果。
根据本公开的实施例,所述得到所述请求报文的特征矩阵还包括,将所述字符分布特征矩阵、所述上传行为分布特征矩阵、和所述文件类型特征矩阵拼接,得到所述请求报文的特征矩阵。
根据本公开的实施例,所述基于对所述请求报文中的字符的自然语言处理,获得所述请求报文的字符分布特征矩阵包括:对所述请求报文以字符为分词的最小单位进行n-gram分词,得到所述请求报文的分词列表;以及将所述分词列表与预设的分词矩阵空间对比,得到所述请求报文的字符分布特征矩阵。其中,所述分词矩阵空间为基于对多个所述历史请求报文以字符为最小单位进行n-gram分词后,再经过逆向词频TF-IDF统计后得到的分词构成。
根据本公开的实施例,所述对所述述请求报文以字符为分词的最小单位进行n-gram分词包括,对所述请求报文的请求行、请求头以及请求体的参数中的字符进行n-gram分词。
根据本公开的实施例,所述行为词典矩阵空间中的词包括以下至少之一:upload,filename,boundary、data、或path;和/或所述类型词典矩阵空间中的词包括以下至少之一:png、jpg、jpeg、image、gif、bmp、ffd8、或424D。
根据本公开的实施例,所述分类器模型是通过如下方式训练得到的:获取多个所述历史请求报文;将每个所述历史请求报文标记为文件上传报文或非文件上传报文;按照与获得所述请求报文的特征矩阵相同的方式提取每个所述历史请求报文的特征矩阵;以及以每个所述历史请求报文的特征矩阵作为输入、以每个所述历史请求报文的标记作为输出参考,训练所述分类器模型。
本公开实施例的另一方面,提供一种报文的识别装置。所述装置包括获取模块、以及识别模块。获取模块用于获取访问网站的请求报文。识别模块用于利用分类器模型识别所述请求报文属于文件上传报文或非文件上传报文,以根据识别结果处理所述请求报文。其中,所述分类器模型为基于多个历史请求报文训练得到的二分类机器学习模型。
根据本公开的实施例,所述识别模块包括特征提取子模块、以及分类子模块。所述特征提取子模块用于以如下任意一种方式或多种方式的组合,得到所述请求报文的特征矩阵:基于对所述请求报文中的字符的自然语言处理,获得所述请求报文的字符分布特征矩阵;基于将所述请求报文中的字符与预设的行为词典矩阵空间的匹配,获得所述请求报文的上传行为分布特征矩阵;基于对所述请求报文中的字符与预设的类型词典矩阵空间的匹配,获得所述请求报文的文件类型特征矩阵;其中,所述行为词典矩阵空间由用于表征与报文的上传行为相关的词构成,所述类型词典矩阵空间由用于表征上传的文件的词构成。所述分类子模块用于将所述请求报文的特征矩阵输入到所述分类器模型,以获得所述分类器模型输出的分类结果。
根据本公开的实施例,所述装置还包括训练模块。所述训练模块用于通过如下方式训练得到所述分类器模型:获取多个所述历史请求报文;将每个所述历史请求报文标记为文件上传报文或非文件上传报文;利用所述特征提取子模块按照与获得所述请求报文的特征矩阵相同的方式提取每个所述历史请求报文的特征矩阵;以及以每个所述历史请求报文的特征矩阵作为输入、以每个所述历史请求报文的标记作为输出参考,训练所述分类器模型。
本公开实施例的另一方面,提供了一种电子设备。所述电子设备包括一个或多个存储器、以及一个或多个处理器。所述存储器存储有可执行指令。所述处理器执行所述可执行指令以实现如上所述的方法。
本公开实施例的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开实施例的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
上述一个或多个实施例具有如下优点或益效果:可以利用二分类机器学习模型对一个请求报文是否为文件上传报文进行分类识别,从而可以利用大数据方法、智能化地判断请求报文的类型,便于对请求报文采取有针对性的后续处理。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的报文的识别方法和装置的示例性***架构;
图2示意性示出了根据本公开实施例的报文的识别方法的流程图;
图3示意性示出了根据本公开实施例的报文的识别方法中提取请求报文的特征矩阵的方法流程示意;
图4示意性示出了根据本公开实施例的报文的识别方法中训练分类器模型的方法流程图;
图5示意性示出了根据本公开一实施例的报文的识别装置的框图;
图6示意性示出了根据本公开另一实施例的报文的识别装置的框图;以及
图7示意性示出了根据本公开实施例的适于实现报文识别的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
相关技术中,例如在网站访问或者测试的过程中,通常通过人工经验来判断一个请求报文是否为文件上传报文,以便进行报文的后续处理。报文类型的判断过程依赖人工经验,不够智能。
鉴于此,本公开的实施例提供了一种智能化、自动化的报文的识别方法、装置、电子设备、及介质。该方法包括首先获取访问网站的请求报文,然后利用分类器模型识别请求报文属于文件上传报文或非文件上传报文,以根据识别结果处理请求报文。其中,分类器模型为基于多个历史请求报文训练得到的二分类机器学习模型。以此方式,可以借助于人工智能的方式智能化地识别请求报文的类型,便于对请求报文采取有针对性地处理措施。
需要说明的是,本公开实施例确定的报文的识别方法和装置可用于金融领域,也可用于除金融领域之外的任意领域,本公开对应用领域不做限定。
图1示意性示出了根据本公开实施例的报文的识别方法和装置的示例性***架构100。需要注意的是,图1所示仅为可以应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,该***架构100可以包括用户101、浏览器或APP(Application,应用程序)102、识别装置103、以及目标应用服务器104。其中,目标应用服务器104可以为用户101通过浏览器或APP102中浏览的网站提供后台管理服务。识别装置103可以执行根据本公开实施例的报文的识别方法,对访问目标应用服务器104所支持的网站的请求报文的类型进行智能识别。
本公开实施例适用于软件开发生命周期中的开发阶段、功能测试阶段、安全测试阶段、和/或使用阶段。所以,用户101可以为开发人员、功能测试人员、安全测试人员、和/或使用人员等。
用户101可以在通过浏览器或APP102发起访问请求(例如,http请求)。识别装置103可以截获到该访问请求,然后执行本公开实施例的方法识别该访问请求的请求报文属于文件上传报文还是非文件上传报文,并根据识别结果处理该请求报文。例如在软件使用阶段当识别出该请求报文属于文件上传报文时,可以检测该请求报文中的上传文件是否安全(例如,是否携带病毒、文件格式是否合规、文件大小是否满足要求等),并在确定安全时再放行,若不安全则丢弃,以此方式可以保护目标应用服务器104免遭攻击。或者又例如,在软件安全测试阶段,当识别出请求报文属于文件上传报文时,可以对请求报文进行改造以构造各种类型的漏洞攻击报文,然后利用该各种类型漏洞攻击报文检测目标应用服务器104的漏洞防护性能等。可见,本公开实施例可以自动化地识别请求报文的类型,从而可以针对性得处理请求报文。
该识别装置103可以实现为下文所描述的识别装置500、识别装置600、电子设备700、计算机可读存储介质、或者计算机程序中的任意一个或者任意多个的组合,具体根据实际需要确定,本公开不予限定。另外,该识别装置103可以设置于目标应用服务器104,或者设置于与目标应用服务器104以及浏览器或APP102通信的其他设备中,对此本公开不予限定。
图2示意性示出了根据本公开实施例的报文的识别方法的流程图。
如图2所示,根据该实施例的报文的识别方法200可以包括操作S210~操作S220。
在操作S210,获取访问网站的请求报文。
在操作S220,利用分类器模型识别该请求报文属于文件上传报文或非文件上传报文,以根据识别结果处理该请求报文。其中,分类器模型为基于多个历史请求报文训练得到的二分类机器学习模型。该分类器模型可以用于将一个请求报文分类到文件上传报文或非文件上传报文二者之一。以此方式,可以借助于机器学习智能化地识别请求报文的类型,便于对请求报文采取有针对性地处理措施。
具体地,操作S220中利用分类器模型识别请求报文属于文件上传报文或非文件上传报文时,可以先提取请求报文的特征矩阵,然后将请求报文的特征矩阵输入到分类器模型,以获得分类器模型输出的分类结果,从而根据分类结果来确定请求报文的类型。
在一个实施例中,提取请求报文的特征矩阵时可以从请求报文的请求行、请求头、和/或请求体中分别抽取各个字段或某些字段的数据,并处理形成为特征矩阵。
在另一个实施例中,提取请求报文的特征矩阵时可以以请求报文中的字符为最小单位,对请求报文中的字符进行分词和/或匹配等处理,得到请求报文的特征矩阵。在一些实施例中,在以字符为最小单位处理请求报文的过程中,还可以结合字符的语义信息和/或字符的频率特征(例如,基于词频-逆向文本频率TF-IDF的统计信息)处理得到报文的特征矩阵,一个具体的实施例可以参考下文图3的示意。
图3示意性示出了根据本公开实施例的报文的识别方法中提取请求报文的特征矩阵的方法流程300的示意。
如图3所示,方法流程300可以包括操作S311~操作S313中的至少一个、以及操作S320。
在操作S311,基于对请求报文中的字符的自然语言处理,获得请求报文的字符分布特征矩阵。
例如,可以对请求报文以字符为分词的最小单位进行n-gram分词,得到请求报文的分词列表,然后将该分词列表与预设的分词矩阵空间对比,得到该请求报文的字符分布特征矩阵。其中,分词矩阵空间为基于对多个历史请求报文以字符为最小单位进行n-gram分词后,再经过逆向词频TF-IDF统计后得到的分词构成。
考虑到上传请求报文中上传的文件是以某种编码格式附在请求体中,且编码不具有自然语言的可理解性。因此,在对请求报文以字符为分词的最小单位进行n-gram分词时,可以仅对请求报文的请求行、请求头以及请求体的参数中的字符进行n-gram分词,而对于请求体中的文件编码可以不予分词处理。
例如,假设一个请求报文的请求行的内容为“POST/upload.labs/Pass-11/file/upload?Name=403.jpg http/1.1”,请求头、以及请求体的参数为“uid=rc-upload-1603767422299-5、name=403.jpg、type=image/jpeg、size=3875、filenamepath="E:\403.jpg、Content-Type:text/plain”。可以通过n-gram(例如,n=3)的字符窗口将上述请求报文进行分词,形成pos|ost|st/|t/u|/up|upl|plo|…pla|lai|ain|的分词列表。然后将该分词列表与预设的分词矩阵空间对比,形成字符分布特征矩阵。
其中,字符分布特征矩阵与分词矩阵空间的数据分布相对应,其中字符分布特征矩阵各个位置的数据取值,由分词矩阵空间中的各个位置的分词是否在所得的分词列表中能够找到来确定,或者换言之根据分词列表中的词是否存在于分词矩阵空间中来确定。若存在某个词,则将字符分布特征矩阵中与分词矩阵空间中的该词相对应位置的值置为1,若不存在,则将字符分布特征矩阵中与分词矩阵空间中的词相应位置的值置为0。例如,分词列表中的pos|ost|st/|三个词与分词矩阵空间相应位置上的pos、ost、st/分别匹配,则将字符分布特征矩阵中与预设的分词矩阵空间中该pos、ost、st/对应的位置的值置为1。这意味者,在该实施例中,经过自然语言处理,请求行中的POST一词可以用分词矩阵空间中pos、ost、st/三个词来表示。
分词矩阵空间可以是经过对大量历史请求报文以字符为最小单位进行n-gram分词后,再在该大量历史请求报文中,对每个词经过逆向词频TF-IDF统计后得到的分词构成。例如,根据TF-IDF统计选择统计指标大于一定阈值的分词,或者在TF-IDF统计后选择统计指标排序靠前的部分词,然后排列成矩阵,从而组成分词矩阵空间。
在操作S312,基于将请求报文中的字符与预设的行为词典矩阵空间的匹配,获得请求报文的上传行为分布特征矩阵。行为词典矩阵空间由用于表征与报文的上传行为相关的词构成。行为词典矩阵空间的词可以是根据经验或者统计选择出的用来描述请求报文的行为特性的词,包括上传报文的上传规范、上传路径、上传操作等的词。例如,行为词典矩阵空间中的词包括以下至少之一:upload,filename,boundary、data、或path。
在操作S313,基于对请求报文中的字符与预设的类型词典矩阵空间的匹配,获得请求报文的文件类型特征矩阵。其中,类型词典矩阵空间由用于表征上传的文件的词构成。类型词典矩阵空间的词可以是根据经验或者统计选择出的上传文件的格式、命名特征、文件类型等的词。例如,类型词典矩阵空间中的词包括以下至少之一:png、jpg、jpeg、image、gif、bmp、ffd8、或424D。
然后在操作S320,基于字符分布特征矩阵、上传行为分布特征矩阵、或者文件类型特征矩阵中的任意一个或多个的组合,得到请求报文的特征矩阵。
例如在一个实施例中,可以将字符分布特征矩阵、上传行为分布特征矩阵、和文件类型特征矩阵拼接,得到请求报文的特征矩阵。从而得到的请求报文的特征矩阵可以从多个维度更全面来反映一个报文在上传文件方面的特征。从而在利用该特征矩阵作为分类器模型的输入时,可以使分类器模型综合多个维度的信息来分析学习文件上传报文的特征,提高分类器模型的智能化程度和分类精度。
图4示意性示出了根据本公开实施例的报文的识别方法中训练分类器模型的方法400流程图。
如图4所示,本公开实施例的报文的识别方法还包括按照方法400所示的流程训练分类器模型。该方法400可以包括操作S410~操作S440。
在操作S410,获取多个历史请求报文。
在操作S420,将每个历史请求报文标记为文件上传报文或非文件上传报文。例如人工分析每个历史请求报文的类型,然后进行标记。
在操作S430,按照与获得请求报文的特征矩阵相同的方式提取每个历史请求报文的特征矩阵。具体地处理过程可以参考方法流程300的相关描述,此处不再赘述。
在操作S440,以每个历史请求报文的特征矩阵作为输入、以每个历史请求报文的标记作为输出参考,训练分类器模型。
图5示意性示出了根据本公开一实施例的报文的识别装置500的框图。
如图5所示,该报文的识别装置500可以包含两个单元:报文样本库510和文件上传判断模型520。
报文样本库510中存储大量的历史业务功能http报文,通过获取http报文中各种涉及到文件上传的关键字并自动归类总结,如“file”、“filename”、“file_name”、“upload”、“file_upload”、“document”、“file_submit”、“ext_name”等,文件扩展名如“.jpg”、“.png”、“.txt”、“.doc”、“.docx”、“.xls”、“.xlsx”等,并给每个报文设置一个标记,代表该报文是否为文件上传报文。
文件上传判断模型520可以对传入的请求报文生成的字符分布特征、和/或上传类型分布特征等,利用大数据方法判断请求报文类型。具体方式说明如下。
可以首先利用收集到的历史业务功能http报文构建分词矩阵空间。例如,可以将所有历史业务功能http报文的请求行、请求头和请求体中参数以字符为分词的最小单位进行n-gram分词,随后通过TF-IDF算法计算得到分词矩阵空间。
同时,可以构建上传类型分布特征,例如,可以设置行为词典空间与类型词典空间。其中行为词典空间包含但不限于[upload,filename,boundary、data、path]等上传相关行为、路径相关内容。类型词典空间包含但不限于[png,jpg,jpeg,image,gif,bmp,ffd8,424D]等文件扩展名、文件内容、头部标识相关内容。
然后,提取报文的特征矩阵。同样以上文示例的报文为例,该请求行的内容为“POST/upload.labs/Pass-11/file/upload?Name=403.jpghttp/1.1”,请求头和请求体的参数为“uid=rc-upload-1603767422299-5、name=403.jpg、type=image/jpeg、size=3875、filenamepath=″E:\403.jpg、Content-Type:text/plain”。在提取该报文的特征矩阵时,可以通过如下步骤实现。
第一步先通过n-gram,n=3的字符窗口将请求头和请求体进行分词,形成pos|ost|st/|t/u|/up|upl|plo|…pla|lai|ain|的分词列表。将该分词类别与分词矩阵空间对比,对应分词存在则为1,不存在则为0。从而得到字符分布特征矩阵。
第二步将请求行、请求头和请求体根据行为字典进行映射形成特征矩阵,若行为字典为[upload,filename,boundary、data、path],则上述上传请求映射为上传行为分布特征矩阵[1,1,0,0,1]。
第三步根据类型字典对上传报文进行映射,若类型字典为[png,jpg,jpeg,image、gif、bmp、ffd8、424D],则映射为文件类型特征矩阵[0,1,1,1,0,0,0,0]。
最后将上述三个特征矩阵拼接,形成用于判别报文的类别的特征矩阵。
接下来,可以将标记好的上传报文与其他报文一起进行如上类似方式的特征提取和映射,并送入机器学习分类模型,如梯度下降树算法(GBDT)算法模型、随机森林(RandomForest)等,进行分类识别,识别类型包括文件上传报文和非文件上传报文两大类,以此方式训练分类器模型,并利用训练好的分类器模型对待识别的请求报文的类型进行识别。
图6示意性示出了根据本公开另一实施例的报文的识别装置600的框图。
如图6所示,根据本公开实施例的报文的识别装置600可以包括获取模块610、以及识别模块620。根据本公开的另一些实施例,该装置600还可以进一步包括训练模块630。该装置600可以用于实现参考图2~图4所描述的方法。
获取模块610用于获取访问网站的请求报文。
识别模块620用于利用分类器模型识别该请求报文属于文件上传报文或非文件上传报文,以根据识别结果处理该请求报文。其中,该分类器模型为基于多个历史请求报文训练得到的二分类机器学习模型。
根据本公开的一些实施例,识别模块620可以包括特征提取子模块621、以及分类子模块622。
特征提取子模块621用于以如下任意一种方式或多种方式的组合,得到请求报文的特征矩阵:基于对该请求报文中的字符的自然语言处理,获得请求报文的字符分布特征矩阵;基于将该请求报文中的字符与预设的行为词典矩阵空间的匹配,获得该请求报文的上传行为分布特征矩阵;基于对该请求报文中的字符与预设的类型词典矩阵空间的匹配,获得请求报文的文件类型特征矩阵;其中,行为词典矩阵空间由用于表征与报文的上传行为相关的词构成,类型词典矩阵空间由用于表征上传的文件的词构成。
分类子模块622用于将请求报文的特征矩阵输入到分类器模型,以获得分类器模型输出的分类结果。
训练模块630用于通过如下方式训练得到分类器模型:获取多个历史请求报文;将每个历史请求报文标记为文件上传报文或非文件上传报文;通过特征提取子模块621按照与获得请求报文的特征矩阵相同的方式提取每个历史请求报文的特征矩阵;以及以每个历史请求报文的特征矩阵作为输入、以每个历史请求报文的标记作为输出参考,训练分类器模型。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块610、识别模块620、训练模块630、特征提取子模块621、以及分类子模块622中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块610、识别模块620、训练模块630、特征提取子模块621、以及分类子模块622中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块610、识别模块620、训练模块630、特征提取子模块621、以及分类子模块622中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图7示意性示出了根据本公开实施例的适于实现报文识别的电子设备700的方框图。图7示出的电子设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,根据本公开实施例的电子设备700包括处理器701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 703中,存储有电子设备700操作所需的各种程序和数据。处理器701、ROM702以及RAM 703通过总线704彼此相连。处理器701通过执行ROM 702和/或RAM 703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 702和RAM 703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备700还可以包括输入/输出(I/O)接口705,输入/输出(I/O)接口705也连接至总线704。电子设备700还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 702和/或RAM 703和/或ROM 702和RAM 703以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的报文的识别方法。
在该计算机程序被处理器701执行时,执行本公开实施例的***/装置中限定的上述功能。根据本公开的实施例,上文描述的***、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分709被下载和安装,和/或从可拆卸介质711被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (8)
1.一种报文的识别方法,包括:
获取访问网站的请求报文;以及
利用分类器模型识别所述请求报文属于文件上传报文或非文件上传报文,其中,所述分类器模型为基于多个历史请求报文训练得到的二分类机器学习模型;以及
根据识别结果处理所述请求报文,包括:在所述网站处于测试阶段时,当识别出所述请求报文属于文件上传报文时,对所述请求报文进行改造以构造各种类型的漏洞攻击报文,并利用所述各种类型的漏洞攻击报文检测所述网站的服务器的漏洞防护性能;
其中,
所述利用分类器模型识别所述请求报文属于文件上传报文或非文件上传报文包括:将请求报文的特征矩阵输入到所述分类器模型,以获得所述分类器模型输出的分类结果,其中,以如下方式组合得到所述请求报文的特征矩阵:
基于将所述请求报文的请求行、请求头和请求体中的字符,与预设的行为词典矩阵空间中的词的匹配,将表示匹配结果的数值按照所述行为词典矩阵空间中的词的位置排布,以获得所述请求报文的上传行为分布特征矩阵;所述行为词典矩阵空间由用于表征与报文的上传行为相关的词构成;所述行为词典矩阵空间中的词包括以下至少之一:upload,filename,boundary、data、或path;以及
基于对所述请求报文的请求行、请求头和请求体中的字符与预设的类型词典矩阵空间中的词的匹配,将表示匹配结果的数值按照所述行为类型词典空间中的词的位置排布,以获得所述请求报文的文件类型特征矩阵;所述类型词典矩阵空间由用于表征上传的文件的词构成;所述类型词典矩阵空间中的词包括以下至少之一:png、jpg、jpeg、image、gif、bmp、ffd8、或424D。
2.根据权利要求1所述的方法,其中,所述得到所述请求报文的特征矩阵还包括:
基于对所述请求报文中的字符的自然语言处理,获得所述请求报文的字符分布特征矩阵;以及
将所述字符分布特征矩阵、所述上传行为分布特征矩阵、和所述文件类型特征矩阵拼接,得到所述请求报文的特征矩阵。
3.根据权利要求2所述的方法,其中,所述基于对所述请求报文中的字符的自然语言处理,获得所述请求报文的字符分布特征矩阵包括:
对所述请求报文以字符为分词的最小单位进行n-gram分词,得到所述请求报文的分词列表;以及
将所述分词列表与预设的分词矩阵空间对比,得到所述请求报文的字符分布特征矩阵;
其中,
所述分词矩阵空间为基于对多个所述历史请求报文以字符为最小单位进行n-gram分词后,再经过逆向词频TF-IDF统计后得到的分词构成。
4.根据权利要求3所述的方法,其中,所述对所述请求报文以字符为分词的最小单位进行n-gram分词包括:
对所述请求报文的请求行、请求头以及请求体的参数中的字符进行n-gram分词。
5.根据权利要求2~4任意一项所述的方法,其中,所述分类器模型是通过如下方式训练得到的:
获取多个所述历史请求报文;
将每个所述历史请求报文标记为文件上传报文或非文件上传报文;
按照与获得所述请求报文的特征矩阵相同的方式提取每个所述历史请求报文的特征矩阵;以及
以每个所述历史请求报文的特征矩阵作为输入、以每个所述历史请求报文的标记作为输出参考,训练所述分类器模型。
6.一种报文的识别装置,包括:
获取模块,用于获取访问网站的请求报文;以及
识别模块,用于利用分类器模型识别所述请求报文属于文件上传报文或非文件上传报文,以及根据识别结果处理所述请求报文;其中,所述分类器模型为基于多个历史请求报文训练得到的二分类机器学习模型;
其中;
所述利用分类器模型识别所述请求报文属于文件上传报文或非文件上传报文包括:将请求报文的特征矩阵输入到所述分类器模型,以获得所述分类器模型输出的分类结果,其中,以如下方式组合得到所述请求报文的特征矩阵:
基于将所述请求报文的请求行、请求头和请求体中的字符与预设的行为词典矩阵空间中的词匹配,将表示匹配结果的数值按照所述行为词典矩阵空间中的词的位置排布,以获得所述请求报文的上传行为分布特征矩阵;所述行为词典矩阵空间由用于表征与报文的上传行为相关的词构成;所述行为词典矩阵空间中的词包括以下至少之一:upload,filename,boundary、data、或path;以及
基于对所述请求报文的请求行、请求头和请求体中的字符与预设的类型词典矩阵空间中的词的匹配,将表示匹配结果的数值按照所述行为类型词典空间中的词的位置排布,以获得所述请求报文的文件类型特征矩阵;所述类型词典矩阵空间由用于表征上传的文件的词构成;所述类型词典矩阵空间中的词包括以下至少之一:png、jpg、jpeg、image、gif、bmp、ffd8、或424D;
所述根据识别结果处理所述请求报文包括:在所述网站处于测试阶段时,当识别出所述请求报文属于文件上传报文时,对所述请求报文进行改造以构造各种类型的漏洞攻击报文,并利用所述各种类型的漏洞攻击报文检测所述网站的服务器的漏洞防护性能。
7.一种电子设备,包括:
一个或多个存储器,存储有可执行指令;以及
一个或多个处理器,执行所述可执行指令,以实现根据权利要求1~5中任一项所述的方法。
8.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110397527.2A CN113114679B (zh) | 2021-04-13 | 2021-04-13 | 报文的识别方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110397527.2A CN113114679B (zh) | 2021-04-13 | 2021-04-13 | 报文的识别方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113114679A CN113114679A (zh) | 2021-07-13 |
CN113114679B true CN113114679B (zh) | 2023-03-24 |
Family
ID=76716791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110397527.2A Active CN113114679B (zh) | 2021-04-13 | 2021-04-13 | 报文的识别方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113114679B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115473856A (zh) * | 2022-09-07 | 2022-12-13 | 中国银行股份有限公司 | 报文校验方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111935140A (zh) * | 2020-08-10 | 2020-11-13 | 中国工商银行股份有限公司 | 异常报文识别方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10585989B1 (en) * | 2018-09-07 | 2020-03-10 | International Business Machines Corporation | Machine-learning based detection and classification of personally identifiable information |
CN109246027B (zh) * | 2018-09-19 | 2022-02-15 | 腾讯科技(深圳)有限公司 | 一种网络维护的方法、装置和终端设备 |
CN111241273A (zh) * | 2018-11-29 | 2020-06-05 | 北京京东尚科信息技术有限公司 | 文本数据分类方法、装置、电子设备及计算机可读介质 |
CN110674289A (zh) * | 2019-07-04 | 2020-01-10 | 南瑞集团有限公司 | 基于分词权重判断文章所属分类的方法、装置和存储介质 |
CN110569359B (zh) * | 2019-08-26 | 2023-09-15 | 腾讯科技(深圳)有限公司 | 识别模型的训练及应用方法、装置、计算设备及存储介质 |
-
2021
- 2021-04-13 CN CN202110397527.2A patent/CN113114679B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111935140A (zh) * | 2020-08-10 | 2020-11-13 | 中国工商银行股份有限公司 | 异常报文识别方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113114679A (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11941491B2 (en) | Methods and apparatus for identifying an impact of a portion of a file on machine learning classification of malicious content | |
CN109492222B (zh) | 基于概念树的意图识别方法、装置及计算机设备 | |
US11216554B2 (en) | Determining apparatus, determining method, and determining program | |
US20230418943A1 (en) | Method and device for image-based malware detection, and artificial intelligence-based endpoint detection and response system using same | |
US20220253526A1 (en) | Incremental updates to malware detection models | |
CN111222137A (zh) | 一种程序分类模型训练方法、程序分类方法及装置 | |
KR102516454B1 (ko) | Url 클러스터링을 위한 url의 요약을 생성하는 방법 및 장치 | |
CN113114679B (zh) | 报文的识别方法、装置、电子设备及介质 | |
CN113282920B (zh) | 日志异常检测方法、装置、计算机设备和存储介质 | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
CN110798481A (zh) | 基于深度学习的恶意域名检测方法及装置 | |
CN113971284B (zh) | 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质 | |
Ugarte-Pedrero et al. | On the adoption of anomaly detection for packed executable filtering | |
KR102192196B1 (ko) | Ai 기반 머신러닝 교차 검증 기법을 활용한 악성코드 탐지 장치 및 방법 | |
CN113888760B (zh) | 基于软件应用的违规信息监控方法、装置、设备及介质 | |
KR102143510B1 (ko) | 정보 보안 위험 관리 시스템 | |
CN116186716A (zh) | 一种面向持续集成部署的安全分析方法及装置 | |
CN112732573B (zh) | 测试用例获取方法、装置、***、及介质 | |
CN115643044A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN114143074A (zh) | webshell攻击识别装置及方法 | |
CN113901817A (zh) | 文档分类方法、装置、计算机设备和存储介质 | |
CN113191137A (zh) | 一种操作风险获取方法、***、电子设备及存储介质 | |
CN113037555A (zh) | 风险事件标记方法、风险事件标记装置和电子设备 | |
US20200226257A1 (en) | System and method for identifying activity in a computer system | |
US20220164449A1 (en) | Classifer generator |
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 |