一种恶意PDF文件的检测方法、装置及电子设备
文献发布时间:2023-06-19 11:49:09
技术领域
本公开涉及文件安全技术领域,特别涉及一种恶意PDF文件的检测方法、装置及电子设备。
背景技术
文件例如PDF文件通常具有跨平台的特性,是藏匿和传播恶意代码的重要媒介,由此引起的安全事件不胜枚举。恶意文件检测一直以来吸引了许多研究者注意,恶意PDF文件检测是其中一个分支。由于PDF文件灵活的层次结构,恶意代码很容易嵌入其中,常见的恶意PDF文件攻击方式包括嵌入JavaScript恶意代码、嵌入恶意文件、嵌入恶意链接或交互式表单等。
目前,利用第三方提供的应用程序进行恶意PDF文件扫描,该方式仅对PDF文件整体进行扫描,无法全面的检测PDF文件,导致检测结果的准确性较低。
发明内容
有鉴于此,本公开实施例的目的在于提供一种恶意PDF文件的检测方法、装置及电子设备,用于解决现有技术中检测结果的准确性较低的问题。
第一方面,本公开实施例提供了一种恶意PDF文件的检测方法,其中,所述检测方法包括:
获取待检测PDF文件;
提取所述待检测PDF文件中的待检测特征,基于训练检测模型使用的训练特征确定所述待检测特征;
将所述待检测特征作为预先训练好的所述检测模型的输入以得到所述检测模型的输出,基于所述检测模型的输出确定所述待检测PDF文件是否为恶意PDF文件。
在一种可能的实施方式中,所述检测模型的输出为概率值;所述基于所述检测模型的输出确定所述待检测PDF文件是否为恶意PDF文件,包括:
将所述检测模型输出的概率值与预设阈值进行对比;
若所述概率值大于或等于所述预设阈值,则确定所述待检测PDF文件为恶意PDF文件。
在一种可能的实施方式中,所述检测方法还包括训练所述检测模型的步骤:
获取包含多个携带有标签的PDF文件样本的训练样本集,所述训练样本集包括N个正常PDF文件样本以及M个恶意PDF文件样本,其中,所述正常PDF文件样本携带有正常标签,所述恶意PDF文件样本携带有恶意标签;
针对每个PDF文件样本,提取候选特征,所述候选特征包括至少一个内容特征和至少一个结构特征;
计算每两个所述候选特征之间的关联程度以及计算每个所述候选特征的重要程度和离散程度得到至少一个冗余特征,从所有所述候选特征中去除所述冗余样本特征得到训练特征;
将所述训练特征作为待训练的检测模型的输入以得到训练结果;
计算所述训练结果与理论结果之间的误差值,并在所述误差值大于允许误差值的情况下,调整所述待训练的检测模型的模型参数,直至所述误差值小于或等于所述允许误差值。
在一种可能的实施方式中,所述计算每两个所述候选特征之间的关联程度以及计算每个所述候选特征的重要程度和离散程度得到至少一个冗余特征,包括:
计算每两个所述候选特征之间的相关系数,在所述相关系数大于或等于预设阈值的情况下,则将两个所述候选特征中的一个作为所述冗余特征;
计算每个所述候选特征的重要系数,按照第一划分规则从所有所述候选特征中筛选至少一个所述候选特征作为所述冗余特征;
计算每个所述候选特征的离散系数,按照第二划分规则从所有所述候选特征中筛选至少一个所述候选特征作为所述冗余特征。
在一种可能的实施方式中,所述内容特征至少包括以下一个:所述待检测PDF文件的文件格式版本、文件结尾标志数量、结尾标志后的字节数、文件修改标识、文件字节熵、文件字节数、流与非流字节比例、对象数与文件大小比例、流内容字节熵、流内容字节数、非流内容字节熵以及非流内容字节数。
在一种可能的实施方式中,所述结构特征至少包括以下一个:JavaScript对象、交互式表单、自动执行相应动作、嵌入URL、嵌入文件、Encoding对象、Font对象、Resources对象、MediaBox对象、文件页面集合、文件页面布局以及表单类型。
第二方面,本公开实施例还提供了一种恶意PDF文件的检测装置,其包括:
获取模块,其配置为获取待检测PDF文件;
提取模块,其配置为提取所述待检测PDF文件中的待检测特征,基于训练检测模型使用的训练特征确定所述待检测特征;
确定模块,其配置为将所述待检测特征作为预先训练好的所述检测模型的输入以得到所述检测模型的输出,基于所述检测模型的输出确定所述待检测PDF文件是否为恶意PDF文件。
在一种可能的实施方式中,所述检测装置还包括训练模块,其配置为:
获取包含多个携带有标签的PDF文件样本的训练样本集,所述训练样本集包括N个正常PDF文件样本以及M个恶意PDF文件样本,其中,所述正常PDF文件样本携带有正常标签,所述恶意PDF文件样本携带有恶意标签;
针对每个PDF文件样本,提取候选特征,所述候选特征包括至少一个内容特征和至少一个结构特征;
计算每两个所述候选特征之间的关联程度以及计算每个所述候选特征的重要程度和离散程度得到至少一个冗余特征,从所有所述候选特征中去除所述冗余样本特征得到训练特征;
将所述训练特征作为待训练的检测模型的输入以得到训练结果;
计算所述训练结果与理论结果之间的误差值,并在所述误差值大于允许误差值的情况下,调整所述待训练的检测模型的模型参数,直至所述误差值小于或等于所述允许误差值。
第三方面,本公开还提供了一种存储介质,其中,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如下步骤:
获取待检测PDF文件;
提取所述待检测PDF文件中的待检测特征,基于训练检测模型使用的训练特征确定所述待检测特征;
将所述待检测特征作为预先训练好的所述检测模型的输入以得到所述检测模型的输出,基于所述检测模型的输出确定所述待检测PDF文件是否为恶意PDF文件。
第四方面,本公开还提供了一种电子设备,其中,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如下步骤:
获取待检测PDF文件;
提取所述待检测PDF文件中的待检测特征,基于训练检测模型使用的训练特征确定所述待检测特征;
将所述待检测特征作为预先训练好的所述检测模型的输入以得到所述检测模型的输出,基于所述检测模型的输出确定所述待检测PDF文件是否为恶意PDF文件。
本公开实施例利用其提供的内容特征和结构特征,不仅能反映恶意PDF文件的特性,还能反映正常PDF文件的特性;并且,检测模型的训练过程中通过两个候选特征之间的关联程度、每个候选特征的重要程度和离散程度去除冗余特征,以得到训练特征,使得利用训练特征对检测模型进行训练,进而达到去除冗余和噪声的目的,提高检测模型的判别能力以及准确性;之后,通过预先训练好的检测模型对待检测特征进行计算,以根据检测模型的输出来确定待检测PDF文件是否为恶意PDF文件,实现了对待检测PDF文件进行全面检测的目的,提高了检测结果的准确性。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本公开所提供的一种恶意PDF文件的检测方法的流程图;
图2示出了本公开所提供的检测方法中基于检测模型的输出确定待检测PDF文件是否为恶意PDF文件的流程图;
图3示出了本公开所提供的检测方法中训练检测模型的流程图;
图4示出了本公开所提供的检测方法中得到至少一个冗余特征的流程图;
图5示出了本公开所提供的一种恶意PDF文件的检测装置的结构示意图;
图6示出了本公开所提供的电子设备的结构示意图。
具体实施方式
为了使得本公开的目的、技术方案和优点更加清楚,下面将结合本公开的附图,对本公开的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开的以下说明清楚且简明,本公开省略了已知功能和已知部件的详细说明。
第一方面,为便于对本公开进行理解,首先对本公开所提供的一种恶意PDF文件的检测方法进行详细介绍。如图1所示,为本公开实施例提供的检测方法具体包括以下步骤:
S101,获取待检测PDF文件。
在具体实施中,预先确定检测范围,例如电子设备的存储空间、电子设备以及与该电子设备连接的所有外接设备的存储空间等。
将初次落入检测范围内的PDF文件作为待检测PDF文件;还可以设置对检测范围内的PDF文件进行阶段性的检测,例如每隔24小时便对检测范围内的所有PDF文件进行检测,也即检测范围内的所有PDF文件均为待检测PDF文件,当然,也可以随机抽取部分PDF文件进行检测,此时,抽取到的PDF文件即为待检测PDF文件;还可以将用户根据实际需求指定的PDF文件作为待检测PDF文件等。
S102,提取待检测PDF文件中的待检测特征,基于训练检测模型使用的训练特征确定待检测特征。
在获取到待检测PDF文件之后,对待检测PDF文件进行解析,并提取出待检测PDF文件中的待检测特征,本公开实施例中的待检测特征包括至少一个内容特征和至少一个结构特征。
其中,待检测特征的数量、属性与训练检测模型使用的训练特征的数量、属性相同。
S103,将待检测特征作为预先训练好的检测模型的输入以得到检测模型的输出,基于检测模型的输出确定待检测PDF文件是否为恶意PDF文件。
从待检测PDF文件中提取到待检测特征之后,将剩余特征输入至预先训练好的检测模型中,检测模型对待检测特征进行计算并得到检测模型的输出,基于检测模型的输出确定待检测PDF文件是否为恶意PDF文件。
具体地检测模型的输出为概率值,图2示出了基于检测模型的输出确定待检测PDF文件是否为恶意PDF文件的方法流程图,具体步骤包括S201和S202。
S201,将检测模型输出的概率值与预设阈值进行对比。
S202,若概率值大于或等于预设阈值,则确定待检测PDF文件为恶意PDF文件。
当然,若概率值小于预设阈值,则确定待检测PDF文件为正常PDF文件。
进一步地,图3示出了训练检测模型的步骤,具体包括S301-S305。
S301,获取包含多个携带有标签的PDF文件样本的训练样本集,训练样本集包括N个正常PDF文件样本以及M个恶意PDF文件样本,其中,正常PDF文件样本携带有正常标签,恶意PDF文件样本携带有恶意标签。
其中,正常标签和恶意标签可以分别用0和1表示。
本公开实施例中的N和M可以相同,也可以不同。
S302,针对每个PDF文件样本,提取候选特征,候选特征包括至少一个内容特征和至少一个结构特征。
其中,PDF文件具有物理结构和逻辑结构。从物理意义上看,PDF文件由文件头、对象集合、交叉引用表以及文件尾组成。文件头通常位于PDF文件的第一行,表示该PDF遵循的格式版本;对象集合包括PDF文件中可以包含的所有对象,如文本、图像、音频、视频、文档信息,一个对象以obj作为开头标志,endobj作为结尾标志,中间为对象所包含的字段、子节点、流内容等;交叉引用表是PDF文件内部的重要组织方式,用户通过交叉引用表可以直接访问特定对象,并且以xref为开头标志;文件尾以trailer为开头标志,包含一些键值对形式的文件描述信息,如文件中总的对象数、文件的作者、创建时间、是否加密、ID等。
具体地,根据待检测PDF文件的物理结构提取至少一个内容特征,本公开实施例中的内容特征至少包括以下一个:待检测PDF文件的Version文件格式版本、EOF文件结尾标志数量、EndBytes结尾标志后的字节数、Modification文件修改标识、TotalEntropy文件字节熵、TotalBytes文件字节数、Stream_in_nonStream流与非流字节比例、objCount_in_size对象数与文件大小比例、StreamEntropy流内容字节熵、StreamBytes流内容字节数、nonStreamEntropy非流内容字节熵以及nonStreamBytes非流内容字节数。
并且,利用公式(1)计算文件字节熵、流内容字节熵以及非流内容字节熵,具体公式(1)如下:
其中,E表示字节熵,b
这里,文件格式版本、文件结尾标志数量、结尾标志后的字节数以及文件修改标识(也即确定文件是否经过修改),这四项特征能够判断待检测PDF文档是否符合正常PDF文件的规范、是否为伪装的PDF文件;文件字节熵、文件字节数、流与非流字节比例、对象数与文件大小比例、流内容字节熵、流内容字节数、非流内容字节熵以及非流内容字节数,这八项特征能够判断待检测PDF文件中是否被恶意加入无关内容,也即避免了在待检测PDF文件中加入无关内容对文件大小上造成的误导。在实际应用中,与正常PDF文件相比,恶意PDF文件的字节熵值、流与非流字节比例、对象数与文件大小比例较低,进而可以基于该特性确定待检测PDF文件是否为恶意PDF文件。
通过解析待检测PDF文件的逻辑结构提取出一定数量的关键对象作为结构特征,其中,不仅包括能够反映恶意PDF文件特性的对象,还包括能反映正常PDF文件特性的对象。具体地,本公开实施例中的结构特征至少包括以下一个:JavaScript对象、交互式表单、自动执行相应动作、嵌入URL、嵌入文件、Encoding对象、Font对象、Resources对象、MediaBox对象、文件页面集合、文件页面布局以及表单类型。
在具体实施中,对PDF文件的攻击方式包括在正常PDF文件中嵌入JavaScript代码、嵌入文件、嵌入URL或交互式表单,这四种对象嵌入到自动执行动作的正常PDF文件中,往往就会执行恶意行为,因此,通过这四种对象的数量来表征恶意行为。正常PDF文件通常储存较多的文字、图像等,其包含Encoding对象、Font对象、FontFamily、Resources对象以及MediaBox对象等对象的数量会多于恶意对象,同时正常PDF文件中PagesLayout、ColorSpace、Height、Length等定义页面布局的相关对象数量也会多余恶意PDF文件。以上仅仅列出部分对象,在实际应用时,可以预先统计出收集的所有恶意PDF文件样本中出现频率较高的对象,以及收集的所有正常PDF文件样本中出现频率较高的对象,以作为候选特征中的结构特征。
例如,共收集了10000个恶意PDF文件样本,解析每个恶意PDF文件样本的逻辑结构,列出其中包含的所有关键对象,如果一个关键对象在不少于1000个恶意PDF文件样本中都存在,则确定其在恶意样本中出现频率较高;用同样的方法统计出正常PDF文件样本中出现频率较高的关键对象。将这些出现频率较高的对象作为结构特征,对象的数量作为特征值,例如,Javascript代码和Font对象作为其中两个特征,如果一个PDF样本中包含10个Javascript代码、15个Font对象,则该样本的Javascript特征值是10,Font特征值是15。
如下表1中示出了从逻辑结构提取出的部分对象以及其对应的含义。
表1
S303,计算每两个候选特征之间的关联程度以及计算每个候选特征的重要程度和离散程度得到至少一个冗余特征,从所有候选特征中去除冗余样本特征得到训练特征。
考虑到提取的候选特征中存在重复或相近的特征值,因此,本公开实施例提供的检测方法中,在提取出PDF文件样本的所有候选特征之后,从所有候选特征中确定出至少一个冗余特征,并从所有候选特征中去除冗余特征得到训练特征,以基于训练特征来训练待训练的检测模型,达到去除噪声及冗余的目的,提高检测模型的准确性。
具体地,图4示出了得到至少一个冗余特征的方法流程图,具体步骤包括S401-S403。
S401,计算每两个候选特征之间的相关系数,在相关系数大于或等于预设阈值的情况下,则将两个候选特征中的一个作为冗余特征。
在具体实施中,可以采用pearson(皮尔逊)、kendall(肯德尔)和spearman(斯伯曼/斯皮尔曼)等来计算两个候选特征之间的相关系数,本公开实施例以pearson为例进行详细阐述。
具体地,按照公式(2)计算两个候选特征之间的相关系数,具体公式(2)如下:
其中,ρ
在利用公式(2)计算出两个候选特征之间的相关系数之后,将相关系数与预设阈值进行对比,在相关系数大于或等于预设阈值的情况下,也即该两个候选特征的特征值相同或相近,因此,将两个候选特征中的任意一个作为冗余特征。
S402,计算每个候选特征的重要系数,按照第一划分规则从所有候选特征中筛选至少一个候选特征作为冗余特征。
其中,可以通过基尼系数、信息增益比等计算来确定每个候选特征的重要系数,本公开实施例以信息增益比为例进行详细阐述。
具体地,按照公式(3)计算每个候选特征的重要系数,具体公式(3)如下:
其中,G
进一步地,利用公式(4)-(6)分别计算H(D)、H(D|A)以及IntI(D,A),公式(4)-(6)如下:
其中,H(D)表示所有候选特征的类别的信息熵,H(D|A)表示加入候选特征A作为分类依据后的条件熵,IntI(D,A)表示候选特征A内部的信息熵,n表示所有候选特征中的类别数,m表示候选特征A的取值个数;p
基于公式(3)-(6)计算出每个候选特征的重要系数(信息增益比)之后,按照第一划分规则从所有候选特征中筛选至少一个候选特征作为冗余特征。例如,按照重要系数从高到低的顺序排列所有候选特征,并从重要系数最低的开始计算,将一定比例的候选特征作为冗余特征,还可以将一定数量的候选特征作为冗余特征等,以将重要系数较低的候选特征(也即对PDF文件所起的标识作用较弱的候选特征)去除,避免对其进行计算造成的计算资源浪费。
S403,计算每个候选特征的离散系数,按照第二划分规则从所有候选特征中筛选至少一个候选特征作为冗余特征。
考虑到变异系数能够消除尺度和量纲的影响,客观地反映数据离散程度,本公开实施例采用变异系数等来计算候选特征的离散系数。
具体地,按照公式(7)计算每个候选特征的离散系数,具体公式(7)如下:
其中,CV表示候选特征C的离散系数(变异系数),n表示所有候选特征个数,x
基于公式(7)计算出每个候选特征的离散系数(变异系数)之后,按照第二划分规则从所有候选特征中筛选至少一个候选特征作为冗余特征。例如,按照离散系数从高到低的顺序排列所有候选特征,并从离散系数最低的开始计算,将一定比例的候选特征作为冗余特征,还可以将一定数量的候选特征作为冗余特征等,以将离散系数较低的候选特征(也即对PDF文件所起的标识作用较弱的候选特征)去除,避免对其进行计算造成的计算资源浪费。
值得说明的是,第一划分规则和第二划分规则可以相同,也可以不同。
S304,将训练特征作为待训练的检测模型的输入以得到训练结果。
其中,本公开实施例采用LightGBM分类算法建立模型,使用机器学习库Sklearn中提供的LGBMClassifier接口实例化模型。在训练的过程中,将剩余样本特征作为模型的输入,同时设置0为正常PDF文件样本的正常标签,1为恶意PDF文件样本的恶意标签。
并且,在训练的过程中根据训练样本集中正常PDF文件样本和恶意PDF文件样本的数量,设置检测模型的“叶子数(num_leaves)”、“最大深度(max_depth)”、“叶子节点最小样本数(min_data_in_leaf)”等参数,以及学习率、L2正则化系数等超参数,采用二分类对数损失(binary-logloss)作为损失函数。之后可以按照图3中示出的步骤进行检测模型的模型训练,在实际训练中,还可以使用交叉验证方法训练监测模型,根据训练结果反复调整超参数至最优状态。当然,可以阶段性的对检测模型进行优化,以确保检测模型的准确性。
S305,计算训练结果与理论结果之间的误差值,并在误差值大于允许误差值的情况下,调整待训练的检测模型的模型参数,直至误差值小于或等于允许误差值。
这里,在调整待训练的检测模型的模型参数之后,重复执行S301-S304,直至该轮训练中得到的计算训练结果与理论结果之间的误差值小于或等于允许误差值,也即,确保了检测模型的准确性。
本公开实施例利用其提供的内容特征和结构特征,不仅能反映恶意PDF文件的特性,还能反映正常PDF文件的特性;并且,检测模型的训练过程中通过两个候选特征之间的关联程度、每个候选特征的重要程度和离散程度去除冗余特征,以得到训练特征,使得利用训练特征对检测模型进行训练,进而达到去除冗余和噪声的目的,提高检测模型的判别能力以及准确性;之后,通过预先训练好的检测模型对待检测特征进行计算,以根据检测模型的输出来确定待检测PDF文件是否为恶意PDF文件,实现了对待检测PDF文件进行全面检测的目的,提高了检测结果的准确性。
基于同一发明构思,本公开的第二方面还提供了一种与恶意PDF文件的检测方法对应的恶意PDF文件的检测装置,由于本公开中的装置解决问题的原理与本公开上述检测方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参见图5所示,恶意PDF文件的检测装置包括:
获取模块501,其配置为获取待检测PDF文件;
提取模块502,其配置为提取所述待检测PDF文件中的待检测特征,基于训练检测模型使用的训练特征确定所述待检测特征;
确定模块503,其配置为将所述待检测特征作为预先训练好的所述检测模型的输入以得到所述检测模型的输出,基于所述检测模型的输出确定所述待检测PDF文件是否为恶意PDF文件。
在另一实施例中,所述确定模块503包括:
对比单元,其配置为将所述检测模型输出的概率值与预设阈值进行对比;
确定单元,其配置为若所述概率值大于或等于所述预设阈值,则确定所述待检测PDF文件为恶意PDF文件。
在另一实施例中,所述检测装置还包括训练模块504,其配置为:
获取包含多个携带有标签的PDF文件样本的训练样本集,所述训练样本集包括N个正常PDF文件样本以及M个恶意PDF文件样本,其中,所述正常PDF文件样本携带有正常标签,所述恶意PDF文件样本携带有恶意标签;
针对每个PDF文件样本,提取候选特征,所述候选特征包括至少一个内容特征和至少一个结构特征;
计算每两个所述候选特征之间的关联程度以及计算每个所述候选特征的重要程度和离散程度得到至少一个冗余特征,从所有所述候选特征中去除所述冗余样本特征得到训练特征;
将所述训练特征作为待训练的检测模型的输入以得到训练结果;
计算所述训练结果与理论结果之间的误差值,并在所述误差值大于允许误差值的情况下,调整所述待训练的检测模型的模型参数,直至所述误差值小于或等于所述允许误差值。
在另一实施例中,所述训练模块504在计算每两个所述候选特征之间的关联程度以及计算每个所述候选特征的重要程度和离散程度得到至少一个冗余特征时,具体配置为:
计算每两个所述候选特征之间的相关系数,在所述相关系数大于或等于预设阈值的情况下,则将两个所述候选特征中的一个作为所述冗余特征;
计算每个所述候选特征的重要系数,按照第一划分规则从所有所述候选特征中筛选至少一个所述候选特征作为所述冗余特征;
计算每个所述候选特征的离散系数,按照第二划分规则从所有所述候选特征中筛选至少一个所述候选特征作为所述冗余特征。
本公开实施例利用其提供的内容特征和结构特征,不仅能反映恶意PDF文件的特性,还能反映正常PDF文件的特性;并且,检测模型的训练过程中通过两个候选特征之间的关联程度、每个候选特征的重要程度和离散程度去除冗余特征,以得到训练特征,使得利用训练特征对检测模型进行训练,进而达到去除冗余和噪声的目的,提高检测模型的判别能力以及准确性;之后,通过预先训练好的检测模型对待检测特征进行计算,以根据检测模型的输出来确定待检测PDF文件是否为恶意PDF文件,实现了对待检测PDF文件进行全面检测的目的,提高了检测结果的准确性。
本公开的第三方面还提供了一种存储介质,该存储介质为计算机可读介质,存储有计算机程序,该计算机程序被处理器执行时实现本公开任意实施例提供的方法,包括如下步骤:
S11,获取待检测PDF文件;
S12,提取所述待检测PDF文件中的待检测特征,基于训练检测模型使用的训练特征确定所述待检测特征;
S13,将所述待检测特征作为预先训练好的所述检测模型的输入以得到所述检测模型的输出,基于所述检测模型的输出确定所述待检测PDF文件是否为恶意PDF文件。
所述检测模型的输出为概率值;计算机程序被处理器执行基于所述检测模型的输出确定所述待检测PDF文件是否为恶意PDF文件时,具体被处理器执行如下步骤:将所述检测模型输出的概率值与预设阈值进行对比;若所述概率值大于或等于所述预设阈值,则确定所述待检测PDF文件为恶意PDF文件。
计算机程序被处理器执行检测方法时,还被处理器执行如下步骤:获取包含多个携带有标签的PDF文件样本的训练样本集,所述训练样本集包括N个正常PDF文件样本以及M个恶意PDF文件样本,其中,所述正常PDF文件样本携带有正常标签,所述恶意PDF文件样本携带有恶意标签;针对每个PDF文件样本,提取候选特征,所述候选特征包括至少一个内容特征和至少一个结构特征;计算每两个所述候选特征之间的关联程度以及计算每个所述候选特征的重要程度和离散程度得到至少一个冗余特征,从所有所述候选特征中去除所述冗余样本特征得到训练特征;将所述训练特征作为待训练的检测模型的输入以得到训练结果;计算所述训练结果与理论结果之间的误差值,并在所述误差值大于允许误差值的情况下,调整所述待训练的检测模型的模型参数,直至所述误差值小于或等于所述允许误差值。
计算机程序被处理器执行计算每两个所述候选特征之间的关联程度以及计算每个所述候选特征的重要程度和离散程度得到至少一个冗余特征时,还具体被处理器执行如下步骤:计算每两个所述候选特征之间的相关系数,在所述相关系数大于或等于预设阈值的情况下,则将两个所述候选特征中的一个作为所述冗余特征;计算每个所述候选特征的重要系数,按照第一划分规则从所有所述候选特征中筛选至少一个所述候选特征作为所述冗余特征;计算每个所述候选特征的离散系数,按照第二划分规则从所有所述候选特征中筛选至少一个所述候选特征作为所述冗余特征。
本公开实施例利用其提供的内容特征和结构特征,不仅能反映恶意PDF文件的特性,还能反映正常PDF文件的特性;并且,检测模型的训练过程中通过两个候选特征之间的关联程度、每个候选特征的重要程度和离散程度去除冗余特征,以得到训练特征,使得利用训练特征对检测模型进行训练,进而达到去除冗余和噪声的目的,提高检测模型的判别能力以及准确性;之后,通过预先训练好的检测模型对待检测特征进行计算,以根据检测模型的输出来确定待检测PDF文件是否为恶意PDF文件,实现了对待检测PDF文件进行全面检测的目的,提高了检测结果的准确性。
需要说明的是,本公开上述的存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何存储介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
本公开的第四方面还提供了一种电子设备,如图6所示,该电子设备至少包括存储器601和处理器602,存储器601上存储有计算机程序,处理器602在执行存储器601上的计算机程序时实现本公开任意实施例提供的方法。示例性的,电子设备计算机程序执行的方法如下:
S21,获取待检测PDF文件;
S22,提取所述待检测PDF文件中的待检测特征,基于训练检测模型使用的训练特征确定所述待检测特征;
S23,将所述待检测特征作为预先训练好的所述检测模型的输入以得到所述检测模型的输出,基于所述检测模型的输出确定所述待检测PDF文件是否为恶意PDF文件。
所述检测模型的输出为概率值;处理器在执行存储器上存储的基于所述检测模型的输出确定所述待检测PDF文件是否为恶意PDF文件时,还执行如下计算机程序:将所述检测模型输出的概率值与预设阈值进行对比;若所述概率值大于或等于所述预设阈值,则确定所述待检测PDF文件为恶意PDF文件。
处理器在执行存储器上存储的检测方法时,还执行如下计算机程序:获取包含多个携带有标签的PDF文件样本的训练样本集,所述训练样本集包括N个正常PDF文件样本以及M个恶意PDF文件样本,其中,所述正常PDF文件样本携带有正常标签,所述恶意PDF文件样本携带有恶意标签;针对每个PDF文件样本,提取候选特征,所述候选特征包括至少一个内容特征和至少一个结构特征;计算每两个所述候选特征之间的关联程度以及计算每个所述候选特征的重要程度和离散程度得到至少一个冗余特征,从所有所述候选特征中去除所述冗余样本特征得到训练特征;将所述训练特征作为待训练的检测模型的输入以得到训练结果;计算所述训练结果与理论结果之间的误差值,并在所述误差值大于允许误差值的情况下,调整所述待训练的检测模型的模型参数,直至所述误差值小于或等于所述允许误差值。
处理器在执行存储器上存储的计算每两个所述候选特征之间的关联程度以及计算每个所述候选特征的重要程度和离散程度得到至少一个冗余特征时,还执行如下计算机程序:计算每两个所述候选特征之间的相关系数,在所述相关系数大于或等于预设阈值的情况下,则将两个所述候选特征中的一个作为所述冗余特征;计算每个所述候选特征的重要系数,按照第一划分规则从所有所述候选特征中筛选至少一个所述候选特征作为所述冗余特征;计算每个所述候选特征的离散系数,按照第二划分规则从所有所述候选特征中筛选至少一个所述候选特征作为所述冗余特征。
本公开实施例利用其提供的内容特征和结构特征,不仅能反映恶意PDF文件的特性,还能反映正常PDF文件的特性;并且,检测模型的训练过程中通过两个候选特征之间的关联程度、每个候选特征的重要程度和离散程度去除冗余特征,以得到训练特征,使得利用训练特征对检测模型进行训练,进而达到去除冗余和噪声的目的,提高检测模型的判别能力以及准确性;之后,通过预先训练好的检测模型对待检测特征进行计算,以根据检测模型的输出来确定待检测PDF文件是否为恶意PDF文件,实现了对待检测PDF文件进行全面检测的目的,提高了检测结果的准确性。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本邻域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
以上对本公开多个实施例进行了详细说明,但本公开不限于这些具体的实施例,本邻域技术人员在本公开构思的基础上,能够做出多种变型和修改实施例,这些变型和修改都应落入本公开所要求保护的范围之内。
- 一种恶意PDF文件的检测方法、装置及电子设备
- 一种恶意PDF文档检测方法、装置及电子设备