CN114372265A - 一种恶意程序检测方法、装置、电子设备及存储介质 - Google Patents

一种恶意程序检测方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114372265A
CN114372265A CN202011096025.8A CN202011096025A CN114372265A CN 114372265 A CN114372265 A CN 114372265A CN 202011096025 A CN202011096025 A CN 202011096025A CN 114372265 A CN114372265 A CN 114372265A
Authority
CN
China
Prior art keywords
detection
file
lexical unit
lexical
malicious program
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
CN202011096025.8A
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 ZHONGKE WANGWEI INFORMATION TECHNOLOGY CO LTD
Original Assignee
BEIJING ZHONGKE WANGWEI INFORMATION TECHNOLOGY 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 ZHONGKE WANGWEI INFORMATION TECHNOLOGY CO LTD filed Critical BEIJING ZHONGKE WANGWEI INFORMATION TECHNOLOGY CO LTD
Priority to CN202011096025.8A priority Critical patent/CN114372265A/zh
Publication of CN114372265A publication Critical patent/CN114372265A/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
    • 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/561Virus type analysis
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Virology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供一种恶意程序检测方法、装置、电子设备及存储介质,该方法包括:获取检测文件,对检测文件类型进行识别;在所述检测文件为源代码文件时,将所述检测文件转换为词法单元序列;将所述词法单元序列输入第一预设恶意程序检测模型进行分类检测,得到所述词法单元序列的检测结果;其中,所述第一预设恶意程序检测模型是根据带程序类别标签的样本词法单元序列训练得到的。可以适用于无需特征签名库的深度学习模型,检测流程的一次优化和定型即可应对未来相当一段时间的未知威胁检测,无需频繁更新特征提取规则以及特征签名库,免除了对恶意程序样例的人工特征分析和特征签名提取的繁杂过程。

Description

一种恶意程序检测方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种恶意程序检测方法、装置、电子设备及存储介质。
背景技术
随着网络技术的发展,恶意程序呈现出传播速度更快、破坏能力更强、数量庞大、变化多端(更多地使用代码混淆、代码变异、代码加密等技术)的特点,给恶意程序检测工作带来巨大挑战。
当前网络安全产品普遍使用的恶意程序检测方法主要有两种:
一是基于特征码扫描技术的传统恶意程序检测方法。其基本原理是:人工分析并提取已知恶意程序样例中的特征数据,即特征签名,如文件名、一段特殊代码或字符串、文件哈希值等,该特征签名能唯一识别该类型恶意程序,将其添加到恶意程序特征签名库中,在检测时搜索恶意程序特征签名库,查找是否存在匹配的特征签名来判别目标是否为恶意程序,若匹配则为恶意程序,反之则为正常程序。
二是基于传统分类算法/传统机器学习技术的启发式恶意程序检测方法。该方法由人工预先编制文件特征提取规则,应用该规则从文件中提取的特征将反映文件的行为属性,是否存在恶意行为。这些文件特征再被输入传统分类算法/传统机器学习方法,最终由传统分类算法/传统机器学习方法给出文件的分类结果,判定是否为恶意程序,以及相关的置信度/概率值。该类方法的目标是通过启发式规则/算法分析量化的文件特征,试图发现特征签名库中仍未包含的新恶意程序,即未知威胁程序。
但是当前的恶意程序检测方法中,启发式技术强依赖于人工制定的特征提取策略,需要特征提取方面的先验知识。同时若当前策略不能用以较好地抽取未知威胁程序的特征时,该启发式技术将失效,同时,基于特征提取策略的启发式检测,对于未知威胁程序预测的能力不佳。
因此如何更好的实现恶意程序检测已经成为业界亟待解决的问题。
发明内容
本发明实施例提供一种恶意程序检测方法、装置、电子设备及存储介质,用以解决上述背景技术中提出的技术问题,或至少部分解决上述背景技术中提出的技术问题。
第一方面,本发明实施例提供一种恶意程序检测方法,包括:
获取检测文件,对检测文件类型进行识别;
在所述检测文件为源代码文件时,将所述检测文件转换为词法单元序列;
将所述词法单元序列输入第一预设恶意程序检测模型进行分类检测,得到所述词法单元序列的检测结果;
其中,所述第一预设恶意程序检测模型是根据带程序类别标签的样本词法单元序列训练得到的。
更具体的,在所述获取检测文件,对检测文件类型进行识别的步骤之后,所述方法还包括:
在所述检测文件为可执行文件时,将所述检测文件转换为像素矩阵;
将所述像素矩阵输入第二预设恶意程序检测模型进行分类检测,得到所述像素矩阵的检测结果;
其中,所述第二预设恶意程序检测模型是根据带程序类别标签的样本像素矩阵训练得到的。
更具体的,在所述检测文件为源代码文件时,将所述检测文件转换为词法单元序列的步骤,具体包括:
根据预设词法分析规则对所述源代码文件进行词法分析,得到源代码词法单元序号集;
对所述源代码词法单元序号集进行长度规格化处理,得到词法单元序列。
更具体的,对所述源代码词法单元序号集进行长度规格化处理,得到词法单元序列的步骤,具体为:
分析所述源代码词法单元序号集的长度;
在所述源代码词法单元序号集超过预设长度时,在所述源代码词法单元序号集截取出预设长度的词法单元序号,以实现规格化处理;
在所述源代码词法单元序号集短于预设长度时,以词法单元结束符进行补充,以实现规格化处理。
更具体的,在所述检测文件为可执行文件时,将所述检测文件转换为像素矩阵的步骤,具体包括:
根据所述检测文件内存信息确定矩阵尺寸信息;
将所述检测文件的字节的归一化浮点值,按照所述矩阵尺寸信息生成字节矩阵;
通过全浮点双线性插值算法将所述字节矩阵缩放为预设尺寸,得到像素矩阵;
其中,所述像素矩阵的每个像素点为取值[0.0,1.0)的单精度浮点数。
更具体的,所述第一预设恶意程序检测模型为:LSTM模型或Google Transformer模型。
更具体的,所述第二预设恶意程序检测模型为:ResNet模型或MobileNet模型。
第二方面,本发明实施例提供一种恶意程序检测装置,包括:
获取模块,用于获取检测文件,对检测文件类型进行识别;
预处理模块,用于在所述检测文件为源代码文件时,将所述检测文件转换为词法单元序列;
检测模块,用于将所述词法单元序列输入第一预设恶意程序检测模型进行分类检测,得到所述词法单元序列的检测结果;
其中,所述第一预设恶意程序检测模型是根据带程序类别标签的样本词法单元序列训练得到的。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述恶意程序检测方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述恶意程序检测方法的步骤。
本发明实施例提供的一种恶意程序检测方法、装置、电子设备及存储介质,通过将检测文件转换为词法单元序列,将原始文件精准地表达为自然语言处理技术的输入数据形式,从而可以适用于无需特征签名库的深度学习模型,检测流程的一次优化和定型即可应对未来相当一段时间的未知威胁检测,无需频繁更新特征提取规则以及特征签名库,免除了对恶意程序样例的人工特征分析和特征签名提取的繁杂过程。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中所描述的恶意程序检测方法流程示意图;
图2为本发明一实施例所描述的第一预设恶意程序检测模型结构图;
图3为本发明一实施例所描述的检测流程示意图;
图4为本发明另一实施例所描述的检测流程示意图;
图5为本发明一实施例所描述的恶意程序检测软件运行流程图;
图6为本发明一实施例所描述的调用者与搭载了恶意程序检测的本软件进程的交互过程示意图;
图7为本发明一实施例所描述恶意程序检测装置示意图;
图8为本发明一实施例所描述的电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例中所描述的恶意程序检测方法流程示意图,如图1所示,包括:
步骤S1,获取检测文件,对检测文件类型进行识别;
具体的,本发明实施例中所描述的检测文件的是指需要进行检测的恶意程序的文件,该恶意程序的文件类别可以是指windows可执行(Windows Portable Executable)文件,例如Windows 32-bit本地、Windows 64-bit本地、MSIL可执行文件等。
本发明实施例中所描述的恶意程序的检测文件类别还可以是指Java Script源代码文件。
步骤S2,在所述检测文件为源代码文件时,将所述检测文件转换为词法单元序列;
具体的,当检测文件为Java Script源代码类型的文件时,首先对被检测文件,即通过Java Script源代码预设的词法分析规则做词法分析,获取该源代码的词法单元(Token)序列,序列中每个词法单元以Token ID(整数值)表示。
而本发明实施例中所描述预设的词法分析规则具体是指从Java Script语法和Java Script Web APIs中挑选了共4150个词法/词汇作为词法单元(Token)集合,每个词法/词汇对应一个序号,词法单元编号(Token ID)按顺序编码为1至4150共4150个整数值,编号0为专用的词法单元序列结束符,词法典中单词(Token)总数为4151个。
词法单元序列在输入深度序列模型之前,须经过长度规格化处理,对于超过预设长度的词法单元序列,将其截断为预设长度,截断规则为:在序列尾部截断超长部分,或在序列中随机位置为起点截取指定长度连续序列。
而对于短于预设长度,此处的预设长度可以是指2500个词法单元的词法单元序列,则以词法单元结束符在该词法单元序列的尾部进行补充,一直补充至指定长度,或仅在尾部添加一个结束符。
步骤S3,将所述词法单元序列输入第一预设恶意程序检测模型进行分类检测,得到所述词法单元序列的检测结果;
具体的,本发明实施例中所描述的第一预设恶意程序检测模型基于LSTM以及Google Transformer构建,这两者是自然语言处理领域现有的标准模型,本发明实施例中的第一预设恶意程序检测模型,在这两者的下游配置了降采样层(Pooling)、激活函数(Activation Function)以及表达层(全连通层,Fully Connected Layer),图2为本发明一实施例所描述的第一预设恶意程序检测模型结构图,如图2所示,两个模型均读取相同的词法单元序列,其中基于LSTM模型可以处理可变长度序列。
其中,所述第一预设恶意程序检测模型是根据带程序类别标签的样本词法单元序列训练得到的。
图3为本发明一实施例所描述的检测流程示意图,如图3所示,将JS源代码进行预处理,首先通过词法分析器提取Token序列,然后进行序列长度规格化,即Padding或截断,然后将其输入深度学习模块,得到分类结果,
本发明实施例通过将检测文件转换为词法单元序列,将原始文件精准地表达为自然语言处理技术的输入数据形式,从而可以适用于无需特征签名库的深度学习模型,检测流程的一次优化和定型即可应对未来相当一段时间的未知威胁检测,无需频繁更新特征提取规则以及特征签名库,免除了对恶意程序样例的人工特征分析和特征签名提取的繁杂过程。
在上述实施例的基础上,所述方法还包括:
在所述检测文件为可执行文件时,将所述检测文件转换为像素矩阵;
将所述像素矩阵输入第二预设恶意程序检测模型进行分类检测,得到所述像素矩阵的检测结果;
其中,所述第二预设恶意程序检测模型是根据带程序类别标签的样本像素矩阵训练得到的。
图4为本发明另一实施例所描述的检测流程示意图,如图4所示,将被检测文件进行预处理,首先按照宽度规则整理为字节矩阵,然后插值缩放为规格化浮点矩阵,在输入深度学习模型,得到分类结果。
具体的,本发明实施例中所描述的可执行文件是指windows可执行(WindowsPortable Executable)文件,例如Windows 32-bit本地、Windows 64-bit本地、MSIL可执行文件等。
根据所述检测文件内存信息确定矩阵尺寸信息;将检测文件字节的归一化浮点值,按照所述矩阵尺寸信息来生成一个字节矩阵;通过全浮点双线性插值算法将每个字节矩阵缩放为预设尺寸,得到像素矩阵。
然后将像素矩阵输入到第二预设恶意程序检测模型,进行分类预测,深度网络最终输出层(全连通层)输出预定义的若干种文件类型的概率值,根据最终输出的概率值来判断检测文件是属于无害文件还是恶意程序。
本发明实施例通过将检测文件转换为像素矩阵,将原始文件精准地表达为图像的输入数据形式,从而可以适用于无需特征签名库的深度学习模型,检测流程的一次优化和定型即可应对未来相当一段时间的未知威胁检测,无需频繁更新特征提取规则以及特征签名库,免除了对恶意程序样例的人工特征分析和特征签名提取的繁杂过程。
将所述检测文件转换为词法单元序列的步骤,具体包括:
根据预设词法分析规则对所述源代码文件进行词法分析,得到源代码词法单元序号集;
对所述源代码词法单元序号集进行长度规格化处理,得到词法单元序列。
在所述检测文件为源代码文件时,将所述检测文件转换为词法单元序列的步骤,具体包括:
根据预设词法分析规则对所述源代码文件进行词法分析,得到源代码词法单元序号集;
对所述源代码词法单元序号集进行长度规格化处理,得到词法单元序列。
具体的,通过Java Script源代码预设的词法分析规则做词法分析,获取该源代码的词法单元(Token)序列,序列中每个词法单元以Token ID(整数值)表示。
表1为词法分析规则的词法单元的类别汇表,如下表1所示,表1
Figure BDA0002723774520000091
本发明实施例中所描述的词法分析规则可以通过Flex词法分析规则语言编写,该Flex源代码经Flex词法分析器生成器编译,输出lex.yy.c词法分析器(C语言源码)。lex.yy.c词法分析器作为本软件一个模块单元,在运行时被输入待检测的Java Script源代码,输出对应的词法分析序号集,即词法分析序号集(Token ID序号集)。其中词法单元编号(Token ID)按顺序编码为1至4150共4150个整数值,编号0为专用的词法单元序列结束符,词法典中单词(Token)总数为4151个。
在所述源代码词法单元序号集超过预设长度时,在所述源代码词法单元序号集截取出预设长度的词法单元序号,以实现规格化处理;
在所述源代码词法单元序号集短于预设长度时,以词法单元结束符进行补充,以实现规格化处理。
本发明实施例通过将检测文件,转换为易于进行分析的语义输入信息,从而实现了人工特征分析的最小程度依赖,同时不需要构建特征签名库。此外,检测流程的一次优化和定型即可应对未来相当一段时间的未知威胁检测,无需频繁更新特征提取规则以及特征签名库。
在上述实施例的基础上,在所述检测文件为可执行文件时,将所述检测文件转换为像素矩阵的步骤,具体包括:
根据所述检测文件内存信息确定矩阵尺寸信息;
将所述检测文件的字节的归一化浮点值,按照所述矩阵尺寸信息生成字节矩阵;
通过全浮点双线性插值算法将所述字节矩阵缩放为预设尺寸,得到像素矩阵;
其中,所述像素矩阵的每个像素点为取值[0.0,1.0)的单精度浮点数。
具体的,本发明实施例中不同的检测文件的大小,对应了不同的矩阵尺寸信息,即不同的矩阵宽度(字节),表2为文件大小区间和矩阵宽度对应表,如下表2所示:
表2
Figure BDA0002723774520000101
Figure BDA0002723774520000111
表2中文件大小区间一列标定了区间的上下界,各行右侧的矩阵宽度为文件尺寸大于该值时的宽度选择。按该规则生成的字节矩阵尾部将被补0字节值,直至矩阵的高度与宽度完全相同。
本发明实施例首先根据文件内存信息确定其对应的矩阵尺寸,然后将检测文件的字节组织成字节矩阵,其中矩阵每个元素为原始字节值(0~255)的归一化浮点值(0.0~255/256)。
在得到字节矩阵后,通过全浮点双线性插值(Bilinear Interpolation)算法缩放为固定像素尺寸大小(256x256像素),其中每像素点为取值[0.0,1.0)的单精度浮点数(FP32)。
图5为本发明一实施例所描述的恶意程序检测软件运行流程图,如图5所示,本发明实施例中所描述的恶意程序检测方法被设计为独立运行的进程模块,网络安全主系统通过Linux进程间通信(System V消息队列)与其交互,调用其上的恶意程序检测功能。
对于主系统(本软件的调用者)来说,提供以下功能用例:
I.在Linux环境启动本软件进程,并在启动后任何时刻终止进程。
II.在运行时加载恶意程序检测模型集合(包括上述两个检测流程的各模型),并在已加载模型后的任何时刻更换模型(重加载)。
III.主系统指定被检测文件路径,本软件读取该文件,根据文件类型选择运行相应的检测流程,并返回:文件类型和文件被模型预测的属于各预定义类型的概率(若文件类型是当前支持类型,即HTML-Java Script文件、HTML-VBScript文件或Windows PortableExecutable文件)。
IV.查询文件检测缓存结果(曾被检测过的文件的摘要(SHA1散列)和检测结果被缓存保存,该文件被二次要求检测时结果直接由缓存满足)。
V.设置深度模型的数值计算并行度(使用线程数)。
图6为本发明一实施例所描述的调用者与搭载了恶意程序检测的本软件进程的交互过程示意图,如图6所示,调用者(主系统)与本软件(进程)的交互通过System V消息队列实现,上图中显示的交互过程(除创建和退出进程外)为同步操作,本软件(进程)对调用者的每条请求都发送确认应答,且调用者的请求在System V消息队列中排序,进程按该顺序逐条执行各请求。本软件(进程)对检测结果缓存查询的处理使用单独的专用线程,可以与上图中调用者指令(除创建和退出进程外)并行执行,因此,对相同文件的第二次检测可以无阻塞地通过查询缓存快速得到结果。
图7为本发明一实施例所描述恶意程序检测装置示意图,如图7所示,包括:获取模块710、预处理模块720和检测模块730;其中,获取模块710用于获取检测文件,对检测文件类型进行识别;其中,预处理模块720用于在所述检测文件为源代码文件时,将所述检测文件转换为词法单元序列;其中,检测模块730用于将所述词法单元序列输入第一预设恶意程序检测模型进行分类检测,得到所述词法单元序列的检测结果;其中,所述第一预设恶意程序检测模型是根据带程序类别标签的样本词法单元序列训练得到的。
本发明实施例提供的装置是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
本发明实施例通过将检测文件转换为词法单元序列,将原始文件精准地表达为自然语言处理技术的输入数据形式,从而可以适用于无需特征签名库的深度学习模型,检测流程的一次优化和定型即可应对未来相当一段时间的未知威胁检测,无需频繁更新特征提取规则以及特征签名库,免除了对恶意程序样例的人工特征分析和特征签名提取的繁杂过程。
图8为本发明一实施例所描述的电子设备结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如下方法:获取检测文件,对检测文件类型进行识别;在所述检测文件为源代码文件时,将所述检测文件转换为词法单元序列;将所述词法单元序列输入第一预设恶意程序检测模型进行分类检测,得到所述词法单元序列的检测结果;其中,所述第一预设恶意程序检测模型是根据带程序类别标签的样本词法单元序列训练得到的。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:在所述检测文件为源代码文件时,将所述检测文件转换为词法单元序列;将所述词法单元序列输入第一预设恶意程序检测模型进行分类检测,得到所述词法单元序列的检测结果;其中,所述第一预设恶意程序检测模型是根据带程序类别标签的样本词法单元序列训练得到的。
本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储服务器指令,该计算机指令使计算机执行上述各实施例提供的方法,例如包括:在所述检测文件为源代码文件时,将所述检测文件转换为词法单元序列;将所述词法单元序列输入第一预设恶意程序检测模型进行分类检测,得到所述词法单元序列的检测结果;其中,所述第一预设恶意程序检测模型是根据带程序类别标签的样本词法单元序列训练得到的。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种恶意程序检测方法,其特征在于,包括:
获取检测文件,对检测文件类型进行识别;
在所述检测文件为源代码文件时,将所述检测文件转换为词法单元序列;
将所述词法单元序列输入第一预设恶意程序检测模型进行分类检测,得到所述词法单元序列的检测结果;
其中,所述第一预设恶意程序检测模型是根据带程序类别标签的样本词法单元序列训练得到的。
2.根据权利要求1所述恶意程序检测方法,其特征在于,在所述获取检测文件,对检测文件类型进行识别的步骤之后,所述方法还包括:
在所述检测文件为可执行文件时,将所述检测文件转换为像素矩阵;
将所述像素矩阵输入第二预设恶意程序检测模型进行分类检测,得到所述像素矩阵的检测结果;
其中,所述第二预设恶意程序检测模型是根据带程序类别标签的样本像素矩阵训练得到的。
3.根据权利要求1所述恶意程序检测方法,其特征在于,在所述检测文件为源代码文件时,将所述检测文件转换为词法单元序列的步骤,具体包括:
根据预设词法分析规则对所述源代码文件进行词法分析,得到源代码词法单元序号集;
对所述源代码词法单元序号集进行长度规格化处理,得到词法单元序列。
4.根据权利要求3所述恶意程序检测方法,其特征在于,对所述源代码词法单元序号集进行长度规格化处理,得到词法单元序列的步骤,具体为:
分析所述源代码词法单元序号集的长度;
在所述源代码词法单元序号集超过预设长度时,在所述源代码词法单元序号集截取出预设长度的词法单元序号,以实现规格化处理;
在所述源代码词法单元序号集短于预设长度时,以词法单元结束符进行补充,以实现规格化处理。
5.根据权利要求2所述恶意程序检测方法,其特征在于,在所述检测文件为可执行文件时,将所述检测文件转换为像素矩阵的步骤,具体包括:
根据所述检测文件内存信息确定矩阵尺寸信息;
将所述检测文件的字节的归一化浮点值,按照所述矩阵尺寸信息生成字节矩阵;
通过全浮点双线性插值算法将所述字节矩阵缩放为预设尺寸,得到像素矩阵;
其中,所述像素矩阵的每个像素点为取值[0.0,1.0)的单精度浮点数。
6.根据权利要求1所述恶意程序检测方法,其特征在于,所述第一预设恶意程序检测模型为:LSTM模型或Google Transformer模型。
7.根据权利要求2所述恶意程序检测方法,其特征在于,所述第二预设恶意程序检测模型为:ResNet模型或MobileNet模型。
8.一种恶意程序检测装置,其特征在于,包括:
获取模块,用于获取检测文件,对检测文件类型进行识别;
预处理模块,用于在所述检测文件为源代码文件时,将所述检测文件转换为词法单元序列;
检测模块,用于将所述词法单元序列输入第一预设恶意程序检测模型进行分类检测,得到所述词法单元序列的检测结果;
其中,所述第一预设恶意程序检测模型是根据带程序类别标签的样本词法单元序列训练得到的。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述恶意程序检测方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述恶意程序检测方法的步骤。
CN202011096025.8A 2020-10-14 2020-10-14 一种恶意程序检测方法、装置、电子设备及存储介质 Pending CN114372265A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011096025.8A CN114372265A (zh) 2020-10-14 2020-10-14 一种恶意程序检测方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011096025.8A CN114372265A (zh) 2020-10-14 2020-10-14 一种恶意程序检测方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114372265A true CN114372265A (zh) 2022-04-19

Family

ID=81138502

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011096025.8A Pending CN114372265A (zh) 2020-10-14 2020-10-14 一种恶意程序检测方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114372265A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114896597A (zh) * 2022-05-09 2022-08-12 南开大学 基于可执行文件线性序列表示的计算机恶意代码检测方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114896597A (zh) * 2022-05-09 2022-08-12 南开大学 基于可执行文件线性序列表示的计算机恶意代码检测方法
CN114896597B (zh) * 2022-05-09 2022-11-15 南开大学 基于可执行文件线性序列表示的计算机恶意代码检测方法

Similar Documents

Publication Publication Date Title
US11790079B2 (en) Systems and methods for executable code detection, automatic feature extraction and position independent code detection
CN107918733B (zh) 检测网页的恶意元素的系统和方法
CN109391706A (zh) 基于深度学习的域名检测方法、装置、设备和存储介质
CN110581864B (zh) 一种sql注入攻击的检测方法及装置
CN111090860A (zh) 一种基于深度学习的代码漏洞检测方法及装置
CN111241496B (zh) 确定小程序特征向量的方法、装置和电子设备
CN112118225A (zh) 一种基于RNN的Webshell检测方法及装置
CN116361801A (zh) 基于应用程序接口语义信息的恶意软件检测方法及系统
KR102516454B1 (ko) Url 클러스터링을 위한 url의 요약을 생성하는 방법 및 장치
CN114285641A (zh) 网络攻击检测方法及装置、电子设备、存储介质
CN113869789A (zh) 一种风险监控的方法、装置、计算机设备及存储介质
CN114372265A (zh) 一种恶意程序检测方法、装置、电子设备及存储介质
CN112115266A (zh) 恶意网址的分类方法、装置、计算机设备和可读存储介质
CN109684844B (zh) 一种webshell检测方法、装置以及计算设备、计算机可读存储介质
CN116248412A (zh) 共享数据资源异常检测方法、系统、设备、存储器及产品
JP2024507029A (ja) ウェブページ識別方法、装置、電子機器、媒体およびコンピュータプログラム
CN111475812B (zh) 一种基于数据可执行特征的网页后门检测方法与系统
CN114722389A (zh) Webshell文件的检测方法、装置、电子设备及可读存储介质
CN113987496A (zh) 恶意攻击检测的方法、装置、电子设备及可读存储介质
CN114666078A (zh) Sql注入攻击的检测方法及系统、电子设备及存储介质
CN114679321B (zh) 一种ssti漏洞的检测方法、装置及介质
CN116611065B (zh) 脚本的检测方法、深度学习模型的训练方法及装置
CN115412335B (zh) 5g电力物联网边缘设备漏洞检测方法、装置及系统
CN116127236B (zh) 基于并行结构的网页web组件识别方法及装置
CN114500033B (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