CN113987496A - 恶意攻击检测的方法、装置、电子设备及可读存储介质 - Google Patents

恶意攻击检测的方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN113987496A
CN113987496A CN202111300573.2A CN202111300573A CN113987496A CN 113987496 A CN113987496 A CN 113987496A CN 202111300573 A CN202111300573 A CN 202111300573A CN 113987496 A CN113987496 A CN 113987496A
Authority
CN
China
Prior art keywords
character string
sample
malicious
target
screening
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.)
Pending
Application number
CN202111300573.2A
Other languages
English (en)
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.)
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co 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 Beijing Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202111300573.2A priority Critical patent/CN113987496A/zh
Publication of CN113987496A publication Critical patent/CN113987496A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Computer Hardware Design (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Virology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请属于网络安全技术领域,公开了恶意攻击检测的方法、装置、电子设备及可读存储介质,该方法包括,对待检测的目标脚本文件进行字符串提取,获得至少一个目标字符串;基于至少一个目标字符串,以及预先训练好的恶意攻击检测模型,获得目标脚本文件的恶意攻击检测结果,其中,恶意攻击检测模型是基于卷积神经网络以及门控循环单元构建的,用于检测目标脚本文件是否为恶意脚本文件。这样,降低了恶意攻击检测耗费的时间成本和人力成本,提高了恶意攻击检测的准确度。

Description

恶意攻击检测的方法、装置、电子设备及可读存储介质
技术领域
本申请涉及网络安全技术领域,具体而言,涉及恶意攻击检测的方法、装置、电子设备及可读存储介质。
背景技术
实际应用中,攻击者通常通过浏览器或客户端执行上传于服务器中的恶意攻击脚本的恶意命令,以实现对服务器的恶意远程控制,如,非法提升访问权限、窥视文件目录、篡改任意文件、执行恶意命令以及下载保密数据等。因此,通常需要对脚本文件进行恶意攻击检测,以提高网络安全。
现有技术下,通常采用规则匹配检测的方式,对脚本文件进行恶意攻击检测。
但是,采用这种方式,需要通过人工按照专家经验构造检测规则,这会耗费大量的人力成本和时间成本,且难以检测未知恶意脚本文件,使得恶意攻击检测的准确率较低。
由此,在进行恶意攻击检测时,如何降低耗费的成本以及提高恶意攻击检测的准确度,是一个需要解决的技术问题。
发明内容
本申请实施例的目的在于提供恶意攻击检测的方法、装置、电子设备及可读存储介质,用以在进行恶意攻击检测时,降低耗费的成本以及提高恶意攻击检测的准确度。
一方面,提供一种恶意攻击检测的方法,包括:
对待检测的目标脚本文件进行字符串提取,获得至少一个目标字符串;
基于至少一个目标字符串,以及预先训练好的恶意攻击检测模型,获得目标脚本文件的恶意攻击检测结果,其中,恶意攻击检测模型是基于卷积神经网络以及门控循环单元构建的,用于检测目标脚本文件是否为恶意脚本文件。
在上述实现过程中,降低了耗费的时间成本和人力成本,提高了恶意脚本攻击检测的准确度。
一种实施方式中,对待检测的目标脚本文件进行字符串提取,获得至少一个目标字符串,包括:
对目标脚本文件进行字符串提取,获得至少一个字符串;
获取样本字符串集合,其中,样本字符串集合是基于非恶意样本以及恶意样本中的样本字符串生成的;
从至少一个字符串中,筛选出被样本字符串集合包含的字符串;
将筛选出的字符串,确定为目标字符串。
在上述实现过程中,筛选出对恶意攻击检测有价值的目标字符串,减少了耗费的存储资源,提高了后续恶意攻击检测的准确度。
一种实施方式中,对目标脚本文件进行字符串提取,获得至少一个字符串,包括:
获取目标脚本文件的脚本语言类型;
判断脚本语言类型是否为非指定类型,若是,则采用正则表达式,提取目标脚本文件中的至少一个字符串;
否则,将目标脚本文件进行解析,获得目标脚本文件对应的字节码文件,并采用正则表达式,对字节码文件中进行字符串提取,获得至少一个字符串。
在上述实现过程中,可以针对不同的脚本文件,采用不同的字符串提取方式,提高了恶意攻击检测的适用范围。
一种实施方式中,恶意攻击检测模型中包含词向量嵌入模块、卷积神经网络模型、门控循环单元模型以及全连接层,基于至少一个目标字符串,以及预先训练好的恶意攻击检测模型,获得恶意攻击检测结果,包括:
基于预设的样本字符串以及索引之间的第一对应关系,获得至少一个目标字符串对应的索引;
通过词向量嵌入模块,基于索引与词向量之间的第二对应关系,以及至少一个目标字符串对应的索引,获得至少一个目标字符串对应的词向量;
基于至少一个目标字符串对应的索引和词向量,以及卷积神经网络模型,获得卷积神经网络模型输出的第一特征;
基于至少一个目标字符串对应的索引和词向量,以及门控循环单元模型,获得门控循环单元模型输出的第二特征;
将第一特征和第二特征进行拼接,获得第三特征;
将第三特征输入至全连接层,获得全连接层输出的恶意攻击检测结果。
在上述实现过程中,将卷积神经网络模型和门控循环单元模型结合,构建恶意攻击检测模型,降低了恶意攻击检测的误报率,提高了恶意攻击检测的准确度和泛化能力,充分提升了恶意攻击检测的性能以及安全检测的能力。
一种实施方式中,在基于预设的样本字符串、索引以及词向量三者之间的对应关系,获得至少一个目标字符串对应的输入矩阵之前,还包括:
分别针对样本字符串集合中的每一样本字符串,生成相应的索引;
根据各样本字符串对应的索引,建立第一对应关系;
分别将样本字符串集合中的每一样本字符串输入预先训练好的词向量模型,获得相应的词向量;
根据各样本字符串对应的词向量,以及第一对应关系,建立第二对应关系。
在上述实现过程中,构建样本字符串以及索引之间的第一对应关系以及索引与词向量之间的第二对应关系,减少了模型输入耗费的存储资源。
一种实施方式中,在对待检测的目标脚本文件进行字符串提取,获得至少一个目标字符串之前,还包括:
采用正则表达式,分别对样本集合中的每一样本进行字符串提取,获得每一样本对应的样本字符串;
采用第一筛选方式、第二筛选方式以及第三筛选方式中的至少一种,对各样本对应的样本字符串进行筛选,获得样本字符串集合;
其中,第一筛选方式是根据样本的恶意攻击类别筛选字符串,第二筛选方式是根据字符串在各文档中的文档频率筛选字符串,第三筛选方式是基于机器学习筛选字符串。
在上述实现过程中,根据样本的恶意攻击类别、字符串在各文档中的文档频率以及机器学习筛选字符串,可以在对目标脚本文件进行恶意攻击检测时,根据样本字符串集合,对目标脚本文件的字符串进行筛选,以避免脚本文件中恶意引入的大量混淆的自定义函数,减少了样本字符串集合耗费的存储资源,还有利于构建轻量化的模型。
一种实施方式中,采用第一筛选方式,对各样本对应的样本字符串进行筛选,获得样本字符串集合,包括:
基于各非恶意样本的样本字符串,获得非恶意字符串集合;
基于各恶意样本中的样本字符串,获得恶意字符串集合;
基于非恶意字符串集合和恶意字符串集合的交集,获得样本字符串集合。
在上述实现过程中,采用第一筛选方式,可以筛选出对恶意攻击检测有意义的字符串,还可以减少耗费的存储资源。
一种实施方式中,采用第二筛选方式,对各样本对应的样本字符串进行筛选,获得样本字符串集合,包括:
获取每一样本字符串对应的文档频率;
从各样本字符串中,筛选出对应的文档频率高于预设文档频率阈值的样本字符串,获得样本字符串集合。
在上述实现过程中,可以通过第二筛选方式,筛选出属于通用词的样本字符串。
一种实施方式中,采用第三筛选方式,对各样本对应的样本字符串进行筛选,获得样本字符串集合,包括:
基于方差以及卡方检验,对各样本字符串进行筛选,获得检验字符串集合;
基于逻辑回归,对各样本字符串进行筛选,获得回归字符串集合;
基于随机森林,对各样本字符串进行筛选,获得森林字符串集合;
基于检验字符串集合、回归字符串集合以及森林字符串集合,获得样本字符串集合。
在上述实现过程中,可以筛选出重要的特征,即样本字符串。
一方面,提供一种恶意攻击检测的装置,包括:
获得单元,用于对待检测的目标脚本文件进行字符串提取,获得至少一个目标字符串;
检测单元:基于至少一个目标字符串,以及预先训练好的恶意攻击检测模型,获得目标脚本文件的恶意攻击检测结果,其中,恶意攻击检测模型是基于卷积神经网络以及门控循环单元构建的,用于检测目标脚本文件是否为恶意脚本文件。
一种实施方式中,获得单元用于:
对目标脚本文件进行字符串提取,获得至少一个字符串;
获取样本字符串集合,其中,样本字符串集合是基于非恶意样本以及恶意样本中的样本字符串生成的;
从至少一个字符串中,筛选出被样本字符串集合包含的字符串;
将筛选出的字符串,确定为目标字符串。
一种实施方式中,获得单元用于:
获取目标脚本文件的脚本语言类型;
判断脚本语言类型是否为非指定类型,若是,则采用正则表达式,提取目标脚本文件中的至少一个字符串;
否则,将目标脚本文件进行解析,获得目标脚本文件对应的字节码文件,并采用正则表达式,对字节码文件中进行字符串提取,获得至少一个字符串。
一种实施方式中,恶意攻击检测模型中包含词向量嵌入模块、卷积神经网络模型、门控循环单元模型以及全连接层,检测单元用于:
基于预设的样本字符串以及索引之间的第一对应关系,获得至少一个目标字符串对应的索引;
通过词向量嵌入模块,基于索引与词向量之间的第二对应关系,以及至少一个目标字符串对应的索引,获得至少一个目标字符串对应的词向量;
基于至少一个目标字符串对应的索引和词向量,以及卷积神经网络模型,获得卷积神经网络模型输出的第一特征;
基于至少一个目标字符串对应的索引和词向量,以及门控循环单元模型,获得门控循环单元模型输出的第二特征;
将第一特征和第二特征进行拼接,获得第三特征;
将第三特征输入至全连接层,获得全连接层输出的恶意攻击检测结果。
一种实施方式中,检测单元还用于:
分别针对样本字符串集合中的每一样本字符串,生成相应的索引;
根据各样本字符串对应的索引,建立第一对应关系;
分别将样本字符串集合中的每一样本字符串输入预先训练好的词向量模型,获得相应的词向量;
根据各样本字符串对应的词向量,以及第一对应关系,建立第二对应关系。
一种实施方式中,获得单元还用于:
采用正则表达式,分别对样本集合中的每一样本进行字符串提取,获得每一样本对应的样本字符串;
采用第一筛选方式、第二筛选方式以及第三筛选方式中的至少一种,对各样本对应的样本字符串进行筛选,获得样本字符串集合;
其中,第一筛选方式是根据样本的恶意攻击类别筛选字符串,第二筛选方式是根据字符串在各文档中的文档频率筛选字符串,第三筛选方式是基于机器学习筛选字符串。
一种实施方式中,获得单元还用于:
基于各非恶意样本的样本字符串,获得非恶意字符串集合;
基于各恶意样本中的样本字符串,获得恶意字符串集合;
基于非恶意字符串集合和恶意字符串集合的交集,获得样本字符串集合。
一种实施方式中,获得单元还用于:
获取每一样本字符串对应的文档频率;
从各样本字符串中,筛选出对应的文档频率高于预设文档频率阈值的样本字符串,获得样本字符串集合。
一种实施方式中,获得单元还用于:
基于方差以及卡方检验,对各样本字符串进行筛选,获得检验字符串集合;
基于逻辑回归,对各样本字符串进行筛选,获得回归字符串集合;
基于随机森林,对各样本字符串进行筛选,获得森林字符串集合;
基于检验字符串集合、回归字符串集合以及森林字符串集合,获得样本字符串集合。
一方面,提供了一种电子设备,包括处理器以及存储器,存储器存储有计算机可读取指令,当计算机可读取指令由处理器执行时,运行如上述任一种恶意攻击检测的各种可选实现方式中提供的方法的步骤。
一方面,提供了一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时运行如上述任一种恶意攻击检测的各种可选实现方式中提供的方法的步骤。
一方面,提供了一种计算机程序产品,计算机程序产品在计算机上运行时,使得计算机执行如上述任一种恶意攻击检测的各种可选实现方式中提供的方法的步骤。
本申请实施例提供的恶意攻击检测的方法、装置、电子设备及可读存储介质中,对待检测的目标脚本文件进行字符串提取,获得至少一个目标字符串;基于至少一个目标字符串,以及预先训练好的恶意攻击检测模型,获得目标脚本文件的恶意攻击检测结果。这样,降低了耗费的人力成本和时间成本,提高了恶意攻击检测的准确度。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种样本字符串集合构建的方法的实施流程图;
图2为本申请实施例提供的一种恶意攻击检测的方法的实施流程图;
图3为本申请实施例提供的一种恶意攻击检测模型训练的方法的实施流程图;
图4为本申请实施例提供的一种恶意攻击检测的装置的结构框图;
图5为本申请实施方式中一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
首先对本申请实施例中涉及的部分用语进行说明,以便于本领域技术人员理解。
终端设备:可以是移动终端、固定终端或便携式终端,例如移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信***设备、个人导航设备、个人数字助理、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,终端设备能够支持任意类型的针对用户的接口(例如可穿戴设备)等。
服务器:可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器。
为了在检测脚本文件是否为恶意脚本时,减少耗费的时间成本和人力成本,提高恶意恶意攻击检测的准确性,本申请实施例提供了恶意攻击检测的方法、装置、电子设备及可读存储介质。
本申请实施例中,仅以执行主体为服务器为例进行说明,实际应用中,执行主体也可以为终端设备等电子设备,在此不作限制。
本申请实施例中,在进行恶意攻击检测之前,先构建用于筛选目标文件文件中的字符串的样本字符串集合。参阅图1所示,为本申请实施例提供的一种样本字符串集合构建的方法的实施流程图,该方法的具体实施流程如下:
步骤100:获取样本集合。
具体的,获取非恶意样本以及恶意样本,并基于非恶意样本以及恶意样本,组成样本集合。
其中,脚本(Script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。实际应用中,可以采用不同的脚本语言编写脚本,在此不作限制。样本(即非恶意样本以及恶意样本)可以为后台管理脚本(webshell)。非恶意样本为一个或多个,恶意样本为一个或多个。样本的脚本语言可以为服务器页面(JavaServerPages,JSP)、动态服务器页面(Active Server Pages,ASP)以及超级文本预处理语言(Hypertext Preprocessor,PHP)中的至少一种,也可以为其它任意脚本语言,在此不作限制。
一种实施方式中,非恶意样本是从内容管理***(wordpress)、网站管理软件(phpcms)、数据库管理工具(phpmyadmin)、模板引擎(smarty)以及高性能PHP框架(yii)中的任意一种或任意组合中获取的。恶意样本是通过面向开源及私有软件项目的托管平台(GitHub)获取的。非恶意样本的数量为4.8万,恶意样本数量为2800。
进一步的,还可以对样本集合中的样本,进行样本去重。
其中,进行样本去重时,可以采用以下步骤:
S1001:采用哈希算法,分别确定每一样本的哈希值。
例如,可以采用MD5信息摘要算法(Message-Digest Algorithm 5,MD5),分别确定每一样本的md5(即哈希值)。
S1002:对哈希值相同的多个样本,进行样本去重。
也就是说,存在多个样本对应的哈希值相同时,说明上述多个样本是相同的,则可以去除多余的样本,仅保留一个即可。
这样,就可以生成样本集合。
步骤101:采用正则表达式,分别对样本集合中的每一样本进行字符串提取,获得每一样本对应的样本字符串。
由于对恶意攻击检测有意义的变量和函数通常是由大小写字母以及下划线组成的,而对恶意攻击检测没有意义的自定义变量通常是由数字、字母、下划线构成的,且字符较少的变量通常为自定义变量,而字符过多的函数名对恶意攻击检测通常也是没有意义的,再者,数字如果保留,函数、变量的数量将非常庞大,模型训练时,会耗费大量的时间成本、存储资源以及***资源,且易引起误报,因此,构建用于提取脚本文件中由大写字母、小写字母和下划线构成的变量、函数和特殊字符的正则表达式,以在后续的步骤中,基于提取的字符串进行恶意攻击检测时,提高恶意攻击检测的准确性。
其中,提取样本对应的样本字符串时,可以采用以下步骤:
S1011:获取样本的脚本语言类型。
具体的,脚本语言类型即为编写脚本的脚本语言,如,脚本语言类型可以为超级文本预处理语言(Hypertext Preprocessor,PHP)脚本文件。
S1012:判断脚本语言类型是否为非指定类型,若是,则执行S1013,否则,执行S1014。
一种实施方式中,指定类型为PHP,非指定类型即为非PHP脚本文件。
实际应用中,指定类型可以根据实际应用场景进行设置,在此不作限制。
S1013:采用正则表达式,提取样本中的至少一个样本字符串。
S1014:将样本进行解析,获得样本对应的字节码文件,并采用正则表达式,对字节码文件中进行样本字符串提取,获得至少一个样本字符串。
具体的,样本可以为PHP语言编写的PHP脚本文件,样本字符串可以为从PHP脚本文件中提取的字节码(opcodes)。
一种实施方式中,预先安装用于提取php脚本文件的样本字符串的运行环境,并执行脚本文件解析命令,获得字节码文件,以及通过正则表达式,提取字节码文件中以大写字母形式存在的字节码。
例如,运行环境可以为内存泄露检测工具(Visual Leak Detector,vld),文件解析命令可以为cmd=“php”+“-dvld.active=1-dvld.execute=0“+filepathoutput=commands.getoutput(cmd)。
进一步的,还可以采用正则表达式,分别提取样本和字节码文件中的样本字符串,并将提取的样本字符串,确定为上述至少一个样本字符串。
一种实施方式中,采用正则表达式,分别提取样本和字节码文件中的样本字符串,提取到以大写字母形式存在的字节码和大小写字母形式存在的变量及函数样本字符串。
本申请实施例中,仅以提取一个样本中的样本字符串为例进行说明,实际应用中,可以采用相同的原理,提取其它样本的样本字符串,在此不做赘述。
这样,就可以提取各样本中的样本字符串。
步骤102:采用第一筛选方式、第二筛选方式以及第三筛选方式中的至少一种,对各样本对应的样本字符串进行筛选,获得样本字符串集合。
具体的,第一筛选方式是根据恶意攻击类别筛选字符串,第二筛选方式是根据字符串在各文档中的文档频率筛选字符串,第三筛选方式是基于机器学习筛选字符串。可选的,机器学习可以包括方差、卡方检验、逻辑回归和随机森林中的至少一种,实际应用中,也可以根据实际应用场景对机器学习进行设置。
其中,执行步骤102时,可以采用方式中的任意一种或组合:
方式1:采用第一筛选方式,根据各样本的恶意攻击类别,对各样本对应的样本字符串进行筛选,获得样本字符串集合。
例如,样本字符串集合的容量大小为9507。
方式2:采用第二筛选方式,根据样本字符串在各文档中的文档频率,对各样本对应的样本字符串进行筛选,获得样本字符串集合。
方式3:采用第三筛选方式,基于机器学习,对各样本对应的样本字符串进行筛选,获得样本字符串集合。
方式4:获取上述分别基于第一筛选方式、第二筛选方式以及第三筛选方式获得的样本字符串集合,并将基于第一筛选方式和第二筛选方式获得的样本字符串集合进行合并,以及确定合并后的样本字符串集合,与基于第三筛选方式获得的样本字符串集合的交集,获得新的样本字符串集合。
进一步的,还可以将基于第一筛选方式、第二筛选方式以及第三筛选方式中的至少两个获得的样本字符串集合,取交集或并集,获得新的样本字符串集合。
这样,可以在不需要专家经验的条件下获得较好的样本字符串集合。
其中,恶意攻击类别是根据样本是否为恶意脚本划分的,按照恶意攻击类别,将样本划分为非恶意样本以及恶意样本。第一筛选方式又可以称为黑白交集提词法。
其中,执行方式1时,可以采用以下步骤:
步骤1:基于各非恶意样本的样本字符串,获得非恶意字符串集合。
步骤2:基于各恶意样本中的样本字符串,获得恶意字符串集合。
步骤3:基于非恶意字符串集合和恶意字符串集合的交集,获得样本字符串集合。
由于交集以外的词汇大多是自定义函数及变量,或者为了混淆逃逸而故意写乱的函数名,这些字符串对于恶意攻击检测的意义很小,且数量巨大,还会在后续的模型训练过程中,导致模型噪声问题,因此,采用第一筛选方式,可以筛选出对恶意攻击检测有意义的字符串,还可以减少耗费的存储资源。
一种实施方式中,创建两个列表,即数据(data)表和标签(lables)表,将各脚本样本文件的样本字符串存储至data表中,并将相应的恶意攻击类别存储至lables表中,以及按照恶意攻击类别,将data表中的各脚本样本文件的样本字符串,分别划分为非恶意字符串集合以及恶意字符串集合。进一步地,取非恶意字符串集合和恶意字符串集合的交集,获得样本字符串集合。
可选的,非恶意样本和恶意样本的恶意攻击类别,可以分别采用0和1表示,也可以采用其它标签表示,在此不作限制。通过第一筛选方式获得的样本字符串集合可以表示为set_A集合。
其中,执行方式2时,可以采用以下步骤:
步骤1:获取每一样本字符串对应的文档频率。
具体的,每一样本字符串对应的文档频率为包含每一样本字符串的文档的数量。进一步的,文档频率还可以为该样本字符串在各文档中出现的总次数。
步骤2:从各样本字符串中,筛选出对应的文档频率高于预设文档频率阈值的样本字符串,获得样本字符串集合。
实际应用中,预设文档频率阈值可以根据实际应用场景进行设置,如,5,在此不作限制。
例如,筛选出对应的文档频率高于5(即预设文档频率阈值)的样本字符串,获得样本字符串集合。
这是由于样本集合的大小确定后,样本字符串的文档频率高于预设文档频率阈值时,样本字符串通常为应用编程接口(Application Programming Interface,API),否则,样本字符串通常为自定义的非通用词,非通用词会使得样本区分度过高而模型的泛化能力降低,因此,可以通过第二筛选方式,筛选出属于通用词的样本字符串。
其中,执行方式3时,可以采用以下步骤:
步骤1:基于方差以及卡方检验,对各样本字符串进行筛选,获得检验字符串集合。
具体的,从各样本字符串中,基于机器学习库(sklearn)以及方差,筛选出信息含量较高的样本字符串,并基于sklearn以及卡方检验,筛选出与恶意攻击检测结果的相关度较高的样本字符串,以及将筛选出的样本字符串,组成检验字符串集合。
这样,可以筛选出信息含量较高或者与恶意攻击检测结果的相关度较高的样本字符串,但是,筛选出的检验字符串集合比较容易受到样本数量的影响。
步骤2:基于逻辑回归算法,对各样本字符串进行筛选,获得回归字符串集合。
这样,采用逻辑回归算法,可以基于回归系数选取与恶意攻击检测相关的样本字符串。
步骤3:基于随机森林,对各样本字符串进行筛选,获得森林字符串集合。
这样,从各样本字符串中,基于随机森林,通过构建森林树的方式,对非线性的数据进行拟合,并通过基尼系数筛选出重要的样本字符串。
采用这种方法,可以筛选出重要的特征,即样本字符串,但是这种方法对于具有更多类别的变量会更有利,并且一旦某个特征被选择之后其他特征的重要度就会急剧下降,导致其他重要特征可能丢失。
步骤4:基于检验字符串集合、回归字符串集合以及森林字符串集合,获得样本字符串集合。
具体的,将检验字符串集合、回归字符串集合以及森林字符串集合三者合并,获得样本字符串集合。
进一步地,还可以基于检验字符串集合、回归字符串集合以及森林字符串集合中的任一个或任意组合的交集或并集,获得样本字符串集合。
进一步的,在执行方式3之前,还可以先分别对每一样本字符串进行数值转换以及归一化,获得每一样本字符串对应的字符串数值,并基于各样本字符串对应的字符串数值,执行方式3,获得样本字符串集合。
可选的,数值转换可以采用词频-逆文档频率(Term Frequency-InverseDocument Frequency)算法。
例如,通过方式3获得的样本字符串集合,可以表示为set_C。
这样,就可以在后续的恶意攻击检测步骤中,基于获取的样本字符串集合,对目标脚本文件的字符串进行筛选,以筛选出有效的目标字符串。
参阅图2所示,为本申请实施例提供的一种恶意攻击检测的方法的实施流程图,该方法的具体实施流程如下:
步骤200:对待检测的目标脚本文件进行字符串提取,获得至少一个目标字符串。
具体的,执行步骤200时,可以采用以下步骤:
S2001:对目标脚本文件进行字符串提取,获得至少一个字符串。
具体的,执行S2001时,可以采用以下步骤:
步骤1:获取目标脚本文件的脚本语言类型。
具体的,脚本语言类型即为编写脚本的脚本语言,如,脚本语言类型可以为超级文本预处理语言(Hypertext Preprocessor,PHP)脚本文件。
步骤2:判断脚本语言类型是否为非指定类型,若是,则执行步骤3,否则,执行步骤4。
一种实施方式中,指定类型为PHP,非指定类型即为非PHP脚本文件。
步骤3:采用正则表达式,提取目标脚本文件中的至少一个字符串。
步骤4:将目标脚本文件进行解析,获得目标脚本文件对应的字节码文件,并采用正则表达式,对字节码文件中进行字符串提取,获得至少一个字符串。
具体的,目标脚本文件可以为PHP语言编写的PHP脚本文件,字符串可以为从PHP脚本文件中提取的字节码(opcodes)。
进一步的,还可以采用正则表达式,分别提取目标脚本文件和字节码文件中的字符串,并将提取的字符串合集,确定为上述至少一个字符串。
一种实施方式中,采用正则表达式,分别提取目标脚本文件和字节码文件中的字符串,提取到以大写字母形式存在的字节码和大小写字母形式存在的变量及函数字符串。
需要说明的是,基于与样本字符串提取相似的原理,可以提取目标脚本文件的字符串,在此不做赘述。
S2002:获取样本字符串集合。
S2003:从上述至少一个字符串中,筛选出被样本字符串集合包含的字符串。
这样,就可以通过样本字符串集合,筛选出有效的字符串。
S2004:将筛选出的字符串,确定为目标字符串。
步骤201:基于至少一个目标字符串,以及预先训练好的恶意攻击检测模型,获得目标脚本文件的恶意攻击检测结果。
具体的,恶意攻击检测模型是基于卷积神经网络以及门控循环单元构建的,用于检测目标脚本文件是否为恶意脚本文件。
其中,执行步骤201时,可以采用以下步骤:
S2011:基于预设的样本字符串以及索引之间的第一对应关系,获得至少一个目标字符串对应的索引。
一种实施方式中,在执行S2011之前,预先通过开源人工神经网络库(keras)自带的标记器(tokenizer),生成各样本字符串的索引,并基于各样本字符串的索引,建立样本字符串以及索引之间的第一对应关系。
进一步地,还可以基于各目标字符串对应的索引,生成包含各索引的第一输入矩阵。
进一步地,若第一输入矩阵中的索引数量,高于指定矩阵长度阈值,则按照指定矩阵长度阈值,将各索引进行划分,获得多个第一输入矩阵,若第一输入矩阵中的索引数量,低于指定矩阵长度阈值,则对第一输入矩阵进行数据填充,使得第一输入矩阵的索引数量达到指定矩阵长度阈值。
一种实施方式中,第一输入矩阵的维度可以为[索引批次(batch_size),索引(time_steps)]。
例如,指定矩阵长度阈值为1500,第一输入矩阵中的索引数量,低于指定矩阵长度阈值,则对第一输入矩阵进行数据填充,获得的第一输入矩阵为[176 535 14……0 0 0],共1500个索引。
实际应用中,指定矩阵长度阈值可以根据实际应用场景进行设置,在此不作限制。
S2012:通过词向量嵌入模块,基于索引与词向量之间的第二对应关系,以及至少一个目标字符串对应的索引,获得至少一个目标字符串对应的词向量。
具体的,将基于各目标字符串对应的索引生成的第一输入矩阵,输入恶意攻击检测模型,通过恶意攻击检测模型中的词向量嵌入模块,基于上述第二对应关系,获取每一目标字符串的索引对应的词向量,并基于各目标字符串对应的索引和词向量,生成第二输入矩阵。
一种实施方式中,第二输入矩阵的维度为[索引批次(batch_size),索引(time_steps),词向量(embed_size)]。
其中,恶意攻击检测模型中包含词向量嵌入模块。词向量嵌入模块为嵌入(Embedding)层。
其中,在执行S2012之前,预先建立索引与词向量之间的第二对应关系。建立第二对应关系时,可以采用以下步骤:
将各样本字符串输入至预先训练好的词向量训练模型,输出每一样本字符串对应的词向量,并基于各样本字符串对应的词向量,以及样本字符串以及索引之间的第一对应关系,建立索引与词向量之间的第二对应关系。
可选的,词向量训练模型可以是基于谷歌开源词向量模型(Word2vec)构建的。词向量训练模型是一种旨在获取一定窗口范围内词的上下文词意的浅层神经网络,通过词向量训练模型可以将高维稀疏的目标字符串转化为低维稠密的词向量。
一种实施方式中,基于索引与词向量之间的第二对应关系,建立词向量矩阵,并基于词向量矩阵,执行S2012。
S2013:基于至少一个目标字符串对应的索引和词向量,以及卷积神经网络模型,获得卷积神经网络模型输出的第一特征。
具体的,将第二输入矩阵,输入至卷积神经网络模型,获得卷积神经网络模型输出的第一特征。
其中,卷积神经网络模型是基于常用于抽象特征的卷积神经网络构建的,可选的,卷积神经网络模型可以是基于深度金字塔卷积神经网络(Deep Pyramid ConvolutionalNeural Networksfor Text Categorization,DPCNN)构建的。
其中,第一特征可以表示为output_A。
S2014:基于至少一个目标字符串对应的索引和词向量,以及门控循环单元模型,获得门控循环单元模型输出的第二特征。
具体的,将第二输入矩阵输入至门控循环单元模型,获得门控循环单元模型输出的第二特征。
具体的,门控循环单元模型可以是基于门控循环单元(Gate Recurrent Unit,GRU)构建的。第二特征可以表示为output_B。
其中,GRU为用于获取序列信息的一种循环神经网络,是长短期记忆网络(LongShort-Term Memory,LSTM)模型的变体,在减少参数量的同时保留了LSTM(获取远距离信息的能力。
S2015:将第一特征和第二特征进行拼接,获得第三特征。
这样,就可以将第一特征和第二特征在索引维度上进行拼接,从而可以增强字符串特征,与单独采用卷积神经网络模型或门控循环单元模型相比,采用这种方式,可以获得更好的恶意攻击检测效果。
S2016:将第三特征输入至全连接层,获得全连接层输出的恶意攻击检测结果。
具体的,将第三特征输入至稠密(Dense)全连接层,获得一个恶意攻击检测值,并通过该恶意攻击检测值,可以确定恶意攻击检测结果,即目标脚本文件是否为恶意脚本文件。
其中,恶意攻击检测模型中包含词向量嵌入模块、卷积神经网络模型、门控循环单元模型以及全连接层。
其中,在执行步骤201之前,预先通过样本数据对恶意攻击检测模型进行训练。
一种实施方式中,采用交叉熵作为损失函数,选择亚当(Adam)作为优化器,设置学习率为0.001,设置训练50轮,设置ReduceOnPleatu的patience=2以使模型收敛到更优的位置,设置EarlyStopping的patience=5以减少模型训练的时间开销。模型在现有测试集上的误报为0.004,模型的召回为0.94。
本申请实施例中,预先基于样本的恶意攻击类别、字符串在各文档中的文档频率,以及机器学习,构建样本字符串集合,从而可以在针对目标脚本文件进行恶意攻击检测时,根据样本字符串集合,对目标脚本文件的字符串进行筛选,以避免脚本文件汇中恶意引入的大量混淆的自定义函数,减少了样本字符串集合耗费的存储资源,还有利于构建轻量化的模型,再者,可以根据目标脚本文件的脚本语言类型,选择不同的字符串提取方式,从而可以基于脚本分词或者基于字节码,对不同类型的脚本文件进行恶意攻击检测,预先建立样本字符串、索引以及词向量之间的对应关系,从而可以仅将各目标字符串的索引,作为恶意攻击检测模型的输入,减少了耗费的存储资源,提高了数据处理效率,进一步的,将卷积神经网络模型和门控循环单元模型结合,构建恶意攻击检测模型,降低了恶意攻击检测的误报率,提高了恶意攻击检测的准确度和泛化能力,充分提升了恶意攻击检测的性能以及安全检测的能力。
参阅图3所示,为本申请实施例提供的一种恶意攻击检测模型训练的方法的实施流程图。
步骤300:构建样本集合。
具体的,采集多个非恶意样本,以及多个恶意样本,并基于各样本的哈希值,进行样本去重,获得样本集合。
进一步地,若样本为PHP脚本文件,则对PHP脚本文件进行解析,获得字节码文件,并将获得字节码文件添加到样本集合。
步骤301:构建正则表达式。
步骤302:基于正则表达式,提取样本集合中各样本的样本字符串。
步骤303:根据各样本字符串对应的恶意攻击类别、文档频率以及机器学习,对样本字符串进行筛选,获得样本字符串集合。
步骤304:通过词向量训练模型,生成每一样本字符串对应的词向量。
具体的,基于样本字符串集合中的各样本字符串,对Word2vec进行训练,获得训练好的词向量训练模型,并通过词向量训练模型,生成每一样本字符串对应的词向量。
步骤305:确定每一样本字符串对应的索引,构建样本字符串以及索引之间的第一对应关系以及索引与词向量之间的第二对应关系。
步骤306:基于第一对应关系,以及指定矩阵长度阈值,分别生成每一样本的样本字符串对应的第一输入矩阵。
步骤307:基于第一输入矩阵,以及第二对应关系,生成第二输入矩阵。
步骤308:将第二输入矩阵,输入至卷积神经网络模型,获得第一特征。
步骤309:将第二输入矩阵输入至门控循环单元模型,获得第二特征。
步骤310:将第一特征和第二特征进行拼接,获得第三特征。
步骤311:将第三特征输入至全连接层,获得全连接层输出的恶意攻击检测结果。
步骤312:根据各样本的实际恶意攻击结果,以及恶意攻击检测结果,对恶意攻击检测模型的参数进行调整,获得训练好的恶意攻击检测模型。
基于同一发明构思,本申请实施例中还提供了一种恶意攻击检测的装置,由于上述装置及设备解决问题的原理与一种恶意攻击检测的方法相似,因此,上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图4所示,其为本申请实施例提供的一种恶意攻击检测的装置的结构示意图,包括:
获得单元401,用于对待检测的目标脚本文件进行字符串提取,获得至少一个目标字符串;
检测单元402:基于至少一个目标字符串,以及预先训练好的恶意攻击检测模型,获得目标脚本文件的恶意攻击检测结果,其中,恶意攻击检测模型是基于卷积神经网络以及门控循环单元构建的,用于检测目标脚本文件是否为恶意脚本文件。
一种实施方式中,获得单元401用于:
对目标脚本文件进行字符串提取,获得至少一个字符串;
获取样本字符串集合,其中,样本字符串集合是基于非恶意样本以及恶意样本中的样本字符串生成的;
从至少一个字符串中,筛选出被样本字符串集合包含的字符串;
将筛选出的字符串,确定为目标字符串。
一种实施方式中,获得单元401用于:
获取目标脚本文件的脚本语言类型;
判断脚本语言类型是否为非指定类型,若是,则采用正则表达式,提取目标脚本文件中的至少一个字符串;
否则,将目标脚本文件进行解析,获得目标脚本文件对应的字节码文件,并采用正则表达式,对字节码文件中进行字符串提取,获得至少一个字符串。
一种实施方式中,恶意攻击检测模型中包含词向量嵌入模块、卷积神经网络模型、门控循环单元模型以及全连接层,检测单元402用于:
基于预设的样本字符串以及索引之间的第一对应关系,获得至少一个目标字符串对应的索引;
通过词向量嵌入模块,基于索引与词向量之间的第二对应关系,以及至少一个目标字符串对应的索引,获得至少一个目标字符串对应的词向量;
基于至少一个目标字符串对应的索引和词向量,以及卷积神经网络模型,获得卷积神经网络模型输出的第一特征;
基于至少一个目标字符串对应的索引和词向量,以及门控循环单元模型,获得门控循环单元模型输出的第二特征;
将第一特征和第二特征进行拼接,获得第三特征;
将第三特征输入至全连接层,获得全连接层输出的恶意攻击检测结果。
一种实施方式中,检测单元402还用于:
分别针对样本字符串集合中的每一样本字符串,生成相应的索引;
根据各样本字符串对应的索引,建立第一对应关系;
分别将样本字符串集合中的每一样本字符串输入预先训练好的词向量模型,获得相应的词向量;
根据各样本字符串对应的词向量,以及第一对应关系,建立第二对应关系。
一种实施方式中,获得单元401还用于:
采用正则表达式,分别对样本集合中的每一样本进行字符串提取,获得每一样本对应的样本字符串;
采用第一筛选方式、第二筛选方式以及第三筛选方式中的至少一种,对各样本对应的样本字符串进行筛选,获得样本字符串集合;
其中,第一筛选方式是根据样本的恶意攻击类别筛选字符串,第二筛选方式是根据字符串在各文档中的文档频率筛选字符串,第三筛选方式是基于机器学习筛选字符串。
一种实施方式中,获得单元401还用于:
基于各非恶意样本的样本字符串,获得非恶意字符串集合;
基于各恶意样本中的样本字符串,获得恶意字符串集合;
基于非恶意字符串集合和恶意字符串集合的交集,获得样本字符串集合。
一种实施方式中,获得单元401还用于:
获取每一样本字符串对应的文档频率;
从各样本字符串中,筛选出对应的文档频率高于预设文档频率阈值的样本字符串,获得样本字符串集合。
一种实施方式中,获得单元401还用于:
基于方差以及卡方检验,对各样本字符串进行筛选,获得检验字符串集合;
基于逻辑回归,对各样本字符串进行筛选,获得回归字符串集合;
基于随机森林,对各样本字符串进行筛选,获得森林字符串集合;
基于检验字符串集合、回归字符串集合以及森林字符串集合,获得样本字符串集合。
本申请实施例提供的恶意攻击检测的方法、装置、电子设备及可读存储介质中,对待检测的目标脚本文件进行字符串提取,获得至少一个目标字符串;基于至少一个目标字符串,以及预先训练好的恶意攻击检测模型,获得目标脚本文件的恶意攻击检测结果,其中,恶意攻击检测模型是基于卷积神经网络以及门控循环单元构建的,用于检测目标脚本文件是否为恶意脚本文件。这样,降低了耗费的成本以及提高了恶意攻击检测的准确度。
图5示出了一种电子设备5000的结构示意图。参阅图5所示,电子设备5000包括:处理器5010以及存储器5020,可选的,还可以包括电源5030、显示单元5040、输入单元5050。
处理器5010是电子设备5000的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在存储器5020内的软件程序和/或数据,执行电子设备5000的各种功能,从而对电子设备5000进行整体监控。
本申请实施例中,处理器5010调用存储器5020中存储的计算机程序时执行如图2中所示的实施例提供的恶意攻击检测的方法。
可选的,处理器5010可包括一个或多个处理单元;优选的,处理器5010可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器5010中。在一些实施例中,处理器、存储器、可以在单一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
存储器5020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、各种应用等;存储数据区可存储根据电子设备5000的使用所创建的数据等。此外,存储器5020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件等。
电子设备5000还包括给各个部件供电的电源5030(比如电池),电源可以通过电源管理***与处理器5010逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗等功能。
显示单元5040可用于显示由用户输入的信息或提供给用户的信息以及电子设备5000的各种菜单等,本发明实施例中主要用于显示电子设备5000中各应用的显示界面以及显示界面中显示的文本、图片等对象。显示单元5040可以包括显示面板5041。显示面板5041可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置。
输入单元5050可用于接收用户输入的数字或字符等信息。输入单元5050可包括触控面板5051以及其他输入设备5052。其中,触控面板5051,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触摸笔等任何适合的物体或附件在触控面板5051上或在触控面板5051附近的操作)。
具体的,触控面板5051可以检测用户的触摸操作,并检测触摸操作带来的信号,将这些信号转换成触点坐标,发送给处理器5010,并接收处理器5010发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板5051。其他输入设备5052可以包括但不限于物理键盘、功能键(比如音量控制按键、开关机按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
当然,触控面板5051可覆盖显示面板5041,当触控面板5051检测到在其上或附近的触摸操作后,传送给处理器5010以确定触摸事件的类型,随后处理器5010根据触摸事件的类型在显示面板5041上提供相应的视觉输出。虽然在图5中,触控面板5051与显示面板5041是作为两个独立的部件来实现电子设备5000的输入和输出功能,但是在某些实施例中,可以将触控面板5051与显示面板5041集成而实现电子设备5000的输入和输出功能。
电子设备5000还可包括一个或多个传感器,例如压力传感器、重力加速度传感器、接近光传感器等。当然,根据具体应用中的需要,上述电子设备5000还可以包括摄像头等其它部件,由于这些部件不是本申请实施例中重点使用的部件,因此,在图5中没有示出,且不再详述。
本领域技术人员可以理解,图5仅仅是电子设备的举例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
本申请实施例中,一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得通信设备可以执行上述实施例中的各个步骤。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (20)

1.一种恶意攻击检测的方法,其特征在于,包括:
对待检测的目标脚本文件进行字符串提取,获得至少一个目标字符串;
基于所述至少一个目标字符串,以及预先训练好的恶意攻击检测模型,获得所述目标脚本文件的恶意攻击检测结果,其中,所述恶意攻击检测模型是基于卷积神经网络以及门控循环单元构建的,用于检测所述目标脚本文件是否为恶意脚本文件。
2.如权利要求1所述的方法,其特征在于,所述对待检测的目标脚本文件进行字符串提取,获得至少一个目标字符串,包括:
对所述目标脚本文件进行字符串提取,获得至少一个字符串;
获取样本字符串集合,其中,所述样本字符串集合是基于非恶意样本以及恶意样本中的样本字符串生成的;
从所述至少一个字符串中,筛选出被所述样本字符串集合包含的字符串;
将筛选出的字符串,确定为所述目标字符串。
3.如权利要求2所述的方法,其特征在于,所述对所述目标脚本文件进行字符串提取,获得至少一个字符串,包括:
获取所述目标脚本文件的脚本语言类型;
判断所述脚本语言类型是否为非指定类型,若是,则采用正则表达式,提取所述目标脚本文件中的所述至少一个字符串;
否则,将所述目标脚本文件进行解析,获得所述目标脚本文件对应的字节码文件,并采用所述正则表达式,对所述字节码文件中进行字符串提取,获得所述至少一个字符串。
4.如权利要求2或3所述的方法,其特征在于,所述恶意攻击检测模型中包含词向量嵌入模块、卷积神经网络模型、门控循环单元模型以及全连接层,所述基于所述至少一个目标字符串,以及预先训练好的恶意攻击检测模型,获得恶意攻击检测结果,包括:
基于预设的样本字符串以及索引之间的第一对应关系,获得所述至少一个目标字符串对应的索引;
通过所述词向量嵌入模块,基于索引与词向量之间的第二对应关系,以及所述至少一个目标字符串对应的索引,获得所述至少一个目标字符串对应的词向量;
基于所述至少一个目标字符串对应的索引和词向量,以及所述卷积神经网络模型,获得所述卷积神经网络模型输出的第一特征;
基于所述至少一个目标字符串对应的索引和词向量,以及所述门控循环单元模型,获得所述所述门控循环单元模型输出的第二特征;
将所述第一特征和所述第二特征进行拼接,获得第三特征;
将所述第三特征输入至所述全连接层,获得所述全连接层输出的所述恶意攻击检测结果。
5.如权利要求4所述的方法,其特征在于,在所述基于预设的样本字符串以及索引之间的第一对应关系,获得所述至少一个目标字符串对应的索引之前,还包括:
分别针对所述样本字符串集合中的每一样本字符串,生成相应的索引;
根据各样本字符串对应的索引,建立所述第一对应关系;
分别将所述样本字符串集合中的每一样本字符串输入预先训练好的词向量模型,获得相应的词向量;
根据各样本字符串对应的词向量,以及所述第一对应关系,建立所述第二对应关系。
6.如权利要求2或3所述的方法,其特征在于,在所述对待检测的目标脚本文件进行字符串提取,获得至少一个目标字符串之前,还包括:
采用正则表达式,分别对样本集合中的每一样本进行字符串提取,获得每一样本对应的样本字符串;
采用第一筛选方式、第二筛选方式以及第三筛选方式中的至少一种,对各样本对应的样本字符串进行筛选,获得所述样本字符串集合;
其中,所述第一筛选方式是根据样本的恶意攻击类别筛选字符串,所述第二筛选方式是根据字符串在各文档中的文档频率筛选字符串,所述第三筛选方式是基于机器学习筛选字符串。
7.如权利要求6所述的方法,其特征在于,所述采用所述第一筛选方式,对各样本对应的样本字符串进行筛选,获得所述样本字符串集合,包括:
基于各非恶意样本的样本字符串,获得非恶意字符串集合;
基于各恶意样本中的样本字符串,获得恶意字符串集合;
基于所述非恶意字符串集合和所述恶意字符串集合的交集,获得所述样本字符串集合。
8.如权利要求7所述的方法,其特征在于,所述采用所述第二筛选方式,对各样本对应的样本字符串进行筛选,获得所述样本字符串集合,包括:
获取每一样本字符串对应的文档频率;
从各样本字符串中,筛选出对应的文档频率高于预设文档频率阈值的样本字符串,获得所述样本字符串集合。
9.如权利要求8所述的方法,其特征在于,所述采用所述第三筛选方式,对各样本对应的样本字符串进行筛选,获得所述样本字符串集合,包括:
基于方差以及卡方检验,对各样本字符串进行筛选,获得检验字符串集合;
基于逻辑回归,对各样本字符串进行筛选,获得回归字符串集合;
基于随机森林,对各样本字符串进行筛选,获得森林字符串集合;
基于所述检验字符串集合、所述回归字符串集合以及所述森林字符串集合,获得所述样本字符串集合。
10.一种恶意攻击检测的装置,其特征在于,包括:
获得单元,用于对待检测的目标脚本文件进行字符串提取,获得至少一个目标字符串;
检测单元:基于所述至少一个目标字符串,以及预先训练好的恶意攻击检测模型,获得所述目标脚本文件的恶意攻击检测结果,其中,所述恶意攻击检测模型是基于卷积神经网络以及门控循环单元构建的,用于检测所述目标脚本文件是否为恶意脚本文件。
11.如权利要求10所述的装置,其特征在于,所述获得单元用于:
对所述目标脚本文件进行字符串提取,获得至少一个字符串;
获取样本字符串集合,其中,所述样本字符串集合是基于非恶意样本以及恶意样本中的样本字符串生成的;
从所述至少一个字符串中,筛选出被所述样本字符串集合包含的字符串;
将筛选出的字符串,确定为所述目标字符串。
12.如权利要求11所述的装置,其特征在于,所述获得单元用于:
获取所述目标脚本文件的脚本语言类型;
判断所述脚本语言类型是否为非指定类型,若是,则采用正则表达式,提取所述目标脚本文件中的所述至少一个字符串;
否则,将所述目标脚本文件进行解析,获得所述目标脚本文件对应的字节码文件,并采用所述正则表达式,对所述字节码文件中进行字符串提取,获得所述至少一个字符串。
13.如权利要求11或12所述的装置,其特征在于,所述恶意攻击检测模型中包含词向量嵌入模块、卷积神经网络模型、门控循环单元模型以及全连接层,所述检测单元用于:
基于预设的样本字符串以及索引之间的第一对应关系,获得所述至少一个目标字符串对应的索引;
通过所述词向量嵌入模块,基于索引与词向量之间的第二对应关系,以及所述至少一个目标字符串对应的索引,获得所述至少一个目标字符串对应的词向量;
基于所述至少一个目标字符串对应的索引和词向量,以及所述卷积神经网络模型,获得所述卷积神经网络模型输出的第一特征;
基于所述至少一个目标字符串对应的索引和词向量,以及所述门控循环单元模型,获得所述门控循环单元模型输出的第二特征;
将所述第一特征和所述第二特征进行拼接,获得第三特征;
将所述第三特征输入至所述全连接层,获得所述全连接层输出的恶意攻击检测结果。
14.如权利要求13所述的装置,其特征在于,所述检测单元还用于:
分别针对所述样本字符串集合中的每一样本字符串,生成相应的索引;
根据各样本字符串对应的索引,建立所述第一对应关系;
分别将所述样本字符串集合中的每一样本字符串输入预先训练好的词向量模型,获得相应的词向量;
根据各样本字符串对应的词向量,以及所述第一对应关系,建立所述第二对应关系。
15.如权利要求11或12所述的装置,其特征在于,所述获得单元还用于:
采用正则表达式,分别对样本集合中的每一样本进行字符串提取,获得每一样本对应的样本字符串;
采用第一筛选方式、第二筛选方式以及第三筛选方式中的至少一种,对各样本对应的样本字符串进行筛选,获得所述样本字符串集合;
其中,所述第一筛选方式是根据样本的恶意攻击类别筛选字符串,所述第二筛选方式是根据字符串在各文档中的文档频率筛选字符串,所述第三筛选方式是基于机器学习筛选字符串。
16.如权利要求15所述的装置,其特征在于,所述获得单元还用于:基于各非恶意样本的样本字符串,获得非恶意字符串集合;
基于各恶意样本中的样本字符串,获得恶意字符串集合;
基于所述非恶意字符串集合和所述恶意字符串集合的交集,获得所述样本字符串集合。
17.如权利要求16所述的装置,其特征在于,所述获得单元还用于:获取每一样本字符串对应的文档频率;
从各样本字符串中,筛选出对应的文档频率高于预设文档频率阈值的样本字符串,获得所述样本字符串集合。
18.如权利要求17所述的装置,其特征在于,所述获得单元还用于:基于方差以及卡方检验,对各样本字符串进行筛选,获得检验字符串集合;
基于逻辑回归,对各样本字符串进行筛选,获得回归字符串集合;
基于随机森林,对各样本字符串进行筛选,获得森林字符串集合;
基于所述检验字符串集合、所述回归字符串集合以及所述森林字符串集合,获得所述样本字符串集合。
19.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-9任一所述方法。
20.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-9任一所述方法。
CN202111300573.2A 2021-11-04 2021-11-04 恶意攻击检测的方法、装置、电子设备及可读存储介质 Pending CN113987496A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111300573.2A CN113987496A (zh) 2021-11-04 2021-11-04 恶意攻击检测的方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111300573.2A CN113987496A (zh) 2021-11-04 2021-11-04 恶意攻击检测的方法、装置、电子设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN113987496A true CN113987496A (zh) 2022-01-28

Family

ID=79746471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111300573.2A Pending CN113987496A (zh) 2021-11-04 2021-11-04 恶意攻击检测的方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN113987496A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115550062A (zh) * 2022-11-23 2022-12-30 北京升鑫网络科技有限公司 一种恶意请求的检测方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667816A (zh) * 2018-04-19 2018-10-16 重庆邮电大学 一种网络异常的检测定位方法及***
CN109165510A (zh) * 2018-09-04 2019-01-08 中国民航大学 基于双通道卷积神经网络的Android恶意应用程序检测方法
US20190236273A1 (en) * 2018-01-26 2019-08-01 Sophos Limited Methods and apparatus for detection of malicious documents using machine learning
CN111371806A (zh) * 2020-03-18 2020-07-03 北京邮电大学 一种Web攻击检测方法及装置
CN112685737A (zh) * 2020-12-24 2021-04-20 恒安嘉新(北京)科技股份公司 一种app的检测方法、装置、设备及存储介质
WO2021139641A1 (zh) * 2020-01-07 2021-07-15 深信服科技股份有限公司 一种web攻击检测方法、装置及电子设备和存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190236273A1 (en) * 2018-01-26 2019-08-01 Sophos Limited Methods and apparatus for detection of malicious documents using machine learning
CN108667816A (zh) * 2018-04-19 2018-10-16 重庆邮电大学 一种网络异常的检测定位方法及***
CN109165510A (zh) * 2018-09-04 2019-01-08 中国民航大学 基于双通道卷积神经网络的Android恶意应用程序检测方法
WO2021139641A1 (zh) * 2020-01-07 2021-07-15 深信服科技股份有限公司 一种web攻击检测方法、装置及电子设备和存储介质
CN113158182A (zh) * 2020-01-07 2021-07-23 深信服科技股份有限公司 一种web攻击检测方法、装置及电子设备和存储介质
CN111371806A (zh) * 2020-03-18 2020-07-03 北京邮电大学 一种Web攻击检测方法及装置
CN112685737A (zh) * 2020-12-24 2021-04-20 恒安嘉新(北京)科技股份公司 一种app的检测方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115550062A (zh) * 2022-11-23 2022-12-30 北京升鑫网络科技有限公司 一种恶意请求的检测方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109697162B (zh) 一种基于开源代码库的软件缺陷自动检测方法
Mehtab et al. AdDroid: rule-based machine learning framework for android malware analysis
CN108090351B (zh) 用于处理请求消息的方法和装置
Feng et al. AC-Net: Assessing the consistency of description and permission in Android apps
CN116361801B (zh) 基于应用程序接口语义信息的恶意软件检测方法及***
CN109614795B (zh) 一种事件感知的安卓恶意软件检测方法
CN111314388B (zh) 用于检测sql注入的方法和装置
CN115150261B (zh) 告警分析的方法、装置、电子设备及存储介质
CN113656763B (zh) 确定小程序特征向量的方法、装置和电子设备
CN104680065A (zh) 病毒检测方法、装置及设备
CN109388551A (zh) 预测代码存在漏洞概率的方法、漏洞检测方法、相关装置
CN114253866B (zh) 恶意代码检测的方法、装置、计算机设备及可读存储介质
CN113626704A (zh) 基于word2vec模型的推荐信息方法、装置及设备
CN112580331A (zh) 政策文本的知识图谱构建方法及***
Zhang et al. A php and jsp web shell detection system with text processing based on machine learning
US9898467B1 (en) System for data normalization
CN113987496A (zh) 恶意攻击检测的方法、装置、电子设备及可读存储介质
CN112231507A (zh) 识别方法、装置及电子设备
CN113971283A (zh) 一种基于特征的恶意应用程序检测方法及设备
CN112087473A (zh) 文档下载方法、装置、计算机可读存储介质和计算机设备
CN112364649B (zh) 命名实体的识别方法、装置、计算机设备及存储介质
CN115203674A (zh) 一种应用程序自动登录方法、***、装置及存储介质
CN114303352B (zh) 推送内容的处理方法、装置、电子设备以及存储介质
CN114780724A (zh) 案件分类方法、装置、计算机设备及存储介质
CN113626815A (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