文件检测方法、存储介质及电子设备与流程

未命名 08-15 阅读:86 评论:0


1.本技术涉及文件检测领域,特别是涉及一种文件检测方法、可读存储介质及电子设备。


背景技术:

2.由于文件大小过大文件在进行安全检测时,会占用大量的计算机资源(如内存等),且大部分的恶意文件(如病毒或木马等)的文件大小较小(通常不会超过10mb),故而,很多检测平台会在内部设置可检测文件大小阈值(通常为100mb左右),当待检测文件的文件大小超过这个阈值时,会直接跳过对该文件的安全检测。
3.基于这种情况,很多黑客会在原本文件大小较小的恶意文件中嵌入大量的重复且无意义的数据,以使得嵌入后的恶意文件的文件大小超过检测平台的可检测文件大小阈值,以跳过检测平台的检测。


技术实现要素:

4.有鉴于此,本技术提供一种文件检测方法、可读存储介质及电子设备,至少部分解决现有技术中存在的技术问题,本技术采用的技术方案为:根据本技术的第一个方面,提供一种文件检测方法,包括:获取待检测文件;待检测文件的文件大小大于预设文件大小;对待检测文件进行压缩,得到待检测文件的文件压缩比ys;ys=y0/y1;其中,y0为待检测文件压缩前的文件大小,y1为待检测文件压缩后的文件大小;若ys大于预设文件压缩比,发出警报。
5.在本技术的一种示例性实施例中,在获取待检测文件之后,本技术的方法还包括:获取待检测文件的文件信息熵;若文件信息熵小于目标信息熵阈值,发出警报。
6.在本技术的一种示例性实施例中,目标信息熵阈值根据待检测文件的文件大小确定。
7.在本技术的一种示例性实施例中,待检测文件中包括若干段结构化数据和若干段非结构化数据;结构化数据和非结构化数据交替排列。
8.在本技术的一种示例性实施例中,在若ys大于预设文件压缩比,发出警报之后,本技术的方法还包括:分别对若干段非结构化数据中每一段非结构化数据进行压缩,得到第一数据段压缩比集m=(m1,m2,...,mv,...,mg);其中,v=1,2,...,g,mv为第v段非结构化数据的第一数据段压缩比,且mv为第v段非结构化数据压缩前的数据大小与第v段非结构化数据压缩后的数据大小的比,g为非结构化数据的段数;根据m,获取第一压缩比波动值mn;mn=(∑
gv=1
(mv-avg(m))2)/g;其中:avg()为预设的平均值确定函数;
若mn大于第一预设压缩比波动值,将m中的所有第一数据段压缩比按照从小到大的顺序排列,得到第一有序数据段压缩比集ma=(ma1,ma2,...,maw,...,mag);其中,w=1,2,...,g,maw为ma中排在第w位的第一数据段压缩比;根据第一数据段压缩比从小到大的顺序从ma中提取第一预设数量个第一数据段压缩比,得到目标第一数据段压缩比集mb=(mb1,mb2,...,mbx,...,mby);其中,x=1,2,...,y,mbx为mb中排在第x位的目标第一数据段压缩比,y为目标第一数据段压缩比的数量;依次基于mb中的目标第一数据段压缩比对应的每段非结构化数据的第一哈希值,遍历预设非结构化数据段整体哈希值集j=(j1,j2,...,jp,...,jq);其中,p=1,2,...,q,jp为第p个预设非结构化数据段整体哈希值,q为预设非结构化数据段整体哈希值的数量;若mbx对应的非结构化数据的第一哈希值与jp相同,则停止遍历,确定mbx对应的非结构化数据为目标非结构化数据;目标非结构化数据为嵌入恶意代码的非结构化数据。
9.在本技术的一种示例性实施例中,在若ys大于预设文件压缩比,发出警报之后,本技术的方法还包括:分别对若干段非结构化数据中每一段非结构化数据的前128字节的数据进行压缩,得到第二数据段压缩比集p=(p1,p2,...,pv,...,pg);其中,v=1,2,...,g,pv为第v段非结构化数据的第二数据段压缩比,且pv为第v段非结构化数据的前128字节的数据压缩前的数据大小与第v段非结构化数据的前128字节的数据压缩后的数据大小的比,g为非结构化数据的段数;根据p,获取第二压缩比波动值pn;pn=(∑
gv=1
(pv-avg(p))2)/g;其中:avg()为预设的平均值确定函数;若pn大于第二预设压缩比波动值,将p中的所有第二数据段压缩比按照从小到大的顺序排列,得到第二有序数据段压缩比集pa=(pa1,pa2,...,paσ,...,pag);其中,σ=1,2,...,g,paσ为pa中排在第σ位的第二数据段压缩比;根据第二数据段压缩比从小到大的顺序从pa中提取第二预设数量个第二数据段压缩比,得到目标第二数据段压缩比集pb=(pb1,pb2,...,pbz,...,pbβ);其中,z=1,2,...,β,pbz为pb中排在第z位的目标第二数据段压缩比,β为目标第二数据段压缩比的数量;依次基于pb中的目标第二数据段压缩比对应的每段非结构化数据的第二哈希值,遍历预设非结构化数据段部分哈希值集l=(l1,l2,...,lt,...,lu);其中,t=1,2,...,u,lt为第t个预设非结构化数据段部分哈希值,u为预设非结构化数据段部分哈希值的数量;若pbz对应的非结构化数据的第二哈希值与lt相同,则停止遍历,确定pbz对应的非结构化数据为目标非结构化数据;目标非结构化数据为嵌入恶意代码的非结构化数据。
10.在本技术的一种示例性实施例中,在若ys大于预设文件压缩比,发出警报之后,本技术的方法还包括:分别获取若干段非结构化数据中每一段非结构化数据的第一数据段信息熵,得到第一数据段信息熵集r=(r1,r2,...,rγ,...,rg);其中,γ=1,2,...,g,rγ为第γ段非结构化数据的第一数据段信息熵,g为非结构化数据的段数;根据r,获取第一信息熵波动值rs;rs=(∑
gγ=1
(rγ-avg(r))2)/g;其中:avg()为预设的平均值确定函数;若rs大于第一预设信息熵波动值,将r中的所有第一数据段信息熵按照从大到小
的顺序排列,得到第一有序数据段信息熵集ra=(ra1,ra2,...,raδ,...,rag);其中,δ=1,2,...,g,raδ为ra中排在第δ位的第一数据段信息熵,g为非结构化数据的段数;根据第一数据段信息熵从大到小的顺序从ra中提取第三预设数量个第一数据段信息熵,得到目标第一数据段信息熵集rb=(rb1,rb2,...,rbε,...,rbτ);其中,ε=1,2,...,τ,rbε为rb中排在第ε位的目标第一数据段信息熵,τ为目标第一数据段信息熵的数量;依次基于rb中的目标第一数据段信息熵对应的每段非结构化数据的第一哈希值,遍历预设非结构化数据段整体哈希值集j=(j1,j2,...,jp,...,jq);其中,p=1,2,...,q,jp为第p个预设非结构化数据段整体哈希值,q为预设非结构化数据段整体哈希值的数量;若rbε对应的非结构化数据的第一哈希值与jp相同,则停止遍历,确定rbε对应的非结构化数据为目标非结构化数据;目标非结构化数据为嵌入恶意代码的非结构化数据。
11.在本技术的一种示例性实施例中,在若ys大于预设文件压缩比,发出警报之后,本技术的方法还包括:分别获取若干段非结构化数据中每一段非结构化数据的前128字节的第二数据段信息熵,得到第二数据段信息熵集t=(t1,t2,...,tζ,...,tg);其中,ζ=1,2,...,g,tζ为第δ段非结构化数据的第二数据段信息熵,g为非结构化数据的段数;根据t,获取第二信息熵波动值ts;ts=(∑
gζ=1
(tζ-avg(t))2)/g;其中:avg()为预设的平均值确定函数;若ts大于第二预设信息熵波动值,将t中的所有第二数据段信息熵按照从大到小的顺序排列,得到第二有序数据段信息熵集ta=(ta1,ta2,...,ta,...,tag);其中,=1,2,...,g,ta为ta中排在第位的第二数据段信息熵,g为非结构化数据的段数;根据第二数据段信息熵从大到小的顺序从ta中提取第四预设数量个第二数据段信息熵,得到目标第二数据段信息熵集tb=(tb1,tb2,...,tbη,...,tbθ);其中,η=1,2,...,θ,tbη为tb中排在第η位的目标第二数据段信息熵,θ为目标第二数据段信息熵的数量;依次基于tb中的目标第二数据段信息熵对应的每段非结构化数据的第二哈希值,遍历预设非结构化数据段部分哈希值集l=(l1,l2,...,lt,...,lu);其中,t=1,2,...,u,lt为第t个预设非结构化数据段部分哈希值,u为预设非结构化数据段部分哈希值的数量;若tbη对应的非结构化数据的第二哈希值与lt相同,则停止遍历,确定tbη对应的非结构化数据为目标非结构化数据;目标非结构化数据为嵌入恶意代码的非结构化数据。
12.根据本技术的第二个方面,提供一种非瞬时性计算机可读存储介质,存储介质中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现上述文件检测方法。
13.根据本技术的第三个方面,提供一种电子设备,包括处理器和上述的非瞬时性计算机可读存储介质。
14.本技术至少具有以下有益效果:由于现有的大部分数据压缩方法(如huffman等)对重复的无意义的数据进行压缩时,压缩前后的压缩比非常大,所以,本技术中提供的文件检测方法,对于大于预设文件大小的待检测文件进行压缩,获取其压缩前文件大小与压缩后文件大小的压缩比,若待检测文件的压缩比大于预设文件压缩比,说明待检测文件中包含大量的重复的无意义的数据,
而正常的文件中基本不会有大量的重复且无意义的数据,故而此时可以确定待检测文件中大概率存在黑客为了绕过安全检测而嵌入的重复且无意义的数据,所以此时可以直接发起警报。同时由于对大文件(如150mb的文件)进行压缩所占用的计算机资源是远小于对其进行传统安全检测所占用的计算机资源的,故而,本技术提供的技术方案,可以在不过量占用计算机资源的情况下,快速完成对大文件的安全检测。
附图说明
15.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为本技术一个实施例提供的文件检测方法的流程图;图2为本技术另一个实施例提供的文件检测方法的流程图。
具体实施方式
17.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
18.请参考图1所示为根据本技术的一个实施例提供的文件检测方法的流程图。如图1所示,文件检测方法,包括步骤s100-步骤s300:步骤s100,获取待检测文件;待检测文件的文件大小大于预设文件大小。
19.这里,检测文件中包括若干段结构化数据和若干段非结构化数据;结构化数据和非结构化数据交替排列;结构化数据也称作行数据,由数字和值组成,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。与结构化数据相对的是不适于由数据库二维表来表现的非结构化数据,由传感器、文本文件、音频和视频文件等组成,包括所有格式的办公文档、xml、html、各类报表、图片和音频、视频信息等。
20.步骤s200,对待检测文件进行压缩,得到待检测文件的文件压缩比ys;ys=y0/y1;其中,y0为待检测文件压缩前的文件大小,y1为待检测文件压缩后的文件大小。
21.具体的,压缩待检测文件,得到文件压缩比,这里的文件压缩比为压缩前的文件大小与压缩后的文件大小的比。
22.步骤s300,若ys大于预设文件压缩比,发出警报。
23.具体的,当文件压缩比大于预设文件压缩比,则确定待检测文件为问题文件,发出警报。
24.由于现有的大部分数据压缩方法(如huffman等)对重复的无意义的数据进行压缩时,压缩前后的压缩比非常大。所以,本技术中,对于大于预设文件大小的待检测文件进行压缩,获取其压缩前文件大小与压缩后文件大小的压缩比,若待检测文件的压缩比大于预设文件压缩比,说明待检测文件中包含大量的重复的无意义的数据,而正常的文件中基本
不会有大量的重复且无意义的数据,故而此时可以确定待检测文件中大概率存在黑客为了绕过安全检测而嵌入的重复且无意义的数据,所以此时可以直接发起警报。同时由于对大文件(如150mb的文件)进行压缩所占用的计算机资源是远小于对其进行传统安全检测所占用的计算机资源的。故而,本技术提供的技术方案,可以在不过量占用计算机资源的情况下,快速完成对大文件的安全检测。
25.请参考图2所示为根据本技术的另一个实施例提供的文件检测方法的流程图。如图2所示,在获取待检测文件之后,本技术的方法还包括步骤s400-步骤s500:步骤s400,获取待检测文件的文件信息熵。
26.具体的,文件信息熵为文件信息中排除了冗余后的平均信息量,文件信息熵越大,表示文件中的信息量越大。反之,文件信息熵越小,表示文件中的信息量越小。
27.步骤s500,若文件信息熵小于目标信息熵阈值,发出警报。
28.具体的,目标信息熵阈值根据待检测文件的文件大小确定。这里,对于文件大小不同的待检测文件,信息熵表征方法不同,上限不同,所以信息熵也不同,且可能有较大差距,所以对于不同的待检测文件确定不同的目标信息熵阈值,这里确定的具体方式可以为:基于待检测文件的大小遍历预设的目标信息熵阈值映射表,确定待检测文件的目标信息熵阈值,这里,目标信息熵阈值映射表包括若干个文件大小数据和若干个文件大小数据中每个文件大小数据对应的目标信息熵阈值。由于非结构化数据包含的文件信息少,所以计算信息熵时,如果待检测文件包含大量的非结构化数据,则待检测文件的文件信息熵较小。所以,若文件信息熵小于目标信息熵阈值,则确定待检测文件为问题文件,发出警报。
29.由于黑客通常在非结构化数据中加入大量重复的无意义的数据,其信息熵小,所以,本实施例提供的文件检测方法,首先获取大于预设文件大小的待检测文件的信息熵,若待检测文件的文件信息熵小于目标信息熵阈值,说明待检测文件中包含大量的重复的无意义的数据,而正常的文件中基本不会有大量的重复且无意义的数据,故而此时可以确定待检测文件中大概率存在黑客为了绕过安全检测而嵌入的重复且无意义的数据,所以此时可以直接发起警报。同时由于获取大文件(如150mb的文件)的信息熵占用的计算机资源是远小于对其进行传统安全检测所占用的计算机资源的。故而,本技术提供的技术方案,可以在不过量占用计算机资源的情况下,快速完成对大文件的安全检测。
30.在一些实施例的一些可选的实现方式中,在步骤s300之后,本技术还包括以下步骤s310-步骤s360:步骤s310,分别对若干段非结构化数据中每一段非结构化数据进行压缩,得到第一数据段压缩比集m=(m1,m2,...,mv,...,mg);其中,v=1,2,...,g,mv为第v段非结构化数据的第一数据段压缩比,且mv为第v段非结构化数据压缩前的数据大小与第v段非结构化数据压缩后的数据大小的比,g为非结构化数据的段数。
31.步骤s320,根据m,获取第一压缩比波动值mn;mn=(∑
gv=1
(mv-avg(m))2)/g;其中:avg()为预设的平均值确定函数。
32.这里,用于增大文件大小的非结构化数据,基本为重复且无意义的数据。但是,有些黑客会在非结构化数据中嵌入恶意代码,增大检测难度。而恶意代码是有意义的数据,压缩后大小变化程度小。
33.步骤s330,若mn大于第一预设压缩比波动值,将m中的所有第一数据段压缩比按照
从小到大的顺序排列,得到第一有序数据段压缩比集ma=(ma1,ma2,...,maw,...,mag);其中,w=1,2,...,g,maw为ma中排在第w位的第一数据段压缩比。
34.具体的,若所有的非结构化数据都是重复且无意义的数据,则每段非结构化数据的压缩比均基本维持在一个较小的范围内波动。而若黑客在一些非结构化数据中嵌入了恶意代码,由于恶意代码是有意义的数据,压缩后大小变化程度小,即嵌入了恶意代码的某段非结构化数据的压缩比小于未嵌入恶意代码的某段非结构化数据的压缩比。所以,若所有的非结构化数据中存在至少一段嵌入了恶意代码的非结构化数据时,嵌入了恶意代码的非结构化数据的压缩比的波动范围相较于其他未嵌入恶意代码的非结构化数据的波动范围大。
35.综上,mn越大,表示m中的第一数据段压缩比与m中所有第一数据段压缩比的平均值之间的偏离程度越大,即m中可能存在至少一段嵌入了恶意代码的非结构化数据和至少一段未嵌入恶意代码的非结构化数据;反之,mn越小,表示m中的第一数据段压缩比与m中所有第一数据段压缩比的平均值之间的偏离程度小,mn如果趋近于0,则说明每段非结构化数据的压缩比均基本维持在一个较小的范围内,即m中可能不存在嵌入恶意代码的非结构化数据。
36.设置第一预设压缩比波动值,若mn大于第一预设压缩比波动值,则说明待检测文件中的某段非结构化数据中嵌入恶意代码的可能性较大。
37.步骤s340,根据第一数据段压缩比从小到大的顺序从ma中提取第一预设数量个第一数据段压缩比,得到目标第一数据段压缩比集mb=(mb1,mb2,...,mbx,...,mby);其中,x=1,2,...,y,mbx为mb中排在第x位的目标第一数据段压缩比,y为目标第一数据段压缩比的数量。
38.具体的,按照ma中从小到大的顺序提取第一数据段压缩比,即按照某段非结构化数据中嵌入恶意代码的可能性从大到小提取y个第一数据段压缩比。
39.步骤s350,依次基于mb中的目标第一数据段压缩比对应的每段非结构化数据的第一哈希值,遍历预设非结构化数据段整体哈希值集j=(j1,j2,...,jp,...,jq);其中,p=1,2,...,q,jp为第p个预设非结构化数据段整体哈希值,q为预设非结构化数据段整体哈希值的数量。
40.步骤s360,若mbx对应的非结构化数据的第一哈希值与jp相同,则停止遍历,确定mbx对应的非结构化数据为目标非结构化数据;目标非结构化数据为嵌入恶意代码的非结构化数据。
41.具体的,现有的遍历方法是直接利用每段非结构化数据的第一哈希值遍历j,需要耗费的计算机资源较多,效率较低。而本技术中,设置了第一哈希值遍历j的顺序,先利用嵌入恶意代码可能性高的非结构化数据的第一哈希值遍历j,如果mbx对应的非结构化数据的第一哈希值与jp相同,则停止遍历,相较于直接利用每段非结构化数据的第一哈希值遍历j,可更快的完成遍历,节约计算机资源,提高遍历的效率。
42.本实施例中,首先确定第一压缩比波动值mn,由于嵌入恶意代码的某段非结构化数据相较于未嵌入恶意代码的某段非结构化数据的压缩比小,所以若mn大于第一预设压缩比波动值,说明m中存在至少一段嵌入恶意代码的非结构化数据和至少一段未嵌入恶意代码的非结构化数据的可能性较大。进而对m中的第一数据段压缩比进行排序并提取第一预
设数量个第一数据段压缩比,得到目标第一数据段压缩比集,基于目标第一数据段压缩比集依次遍历预设非结构化数据段整体哈希值集,这里,设置了遍历的顺序,从嵌入恶意代码的可能性最高的非结构化数据的第一哈希值(即第一数据段压缩比最小的非结构化数据的第一哈希值)开始,依次遍历j,如果mbx对应的非结构化数据的第一哈希值与jp相同,则停止遍历,确定mbx对应的非结构化数据为目标非结构化数据,目标非结构化数据为嵌入恶意代码的非结构化数据。相较于直接利用每段非结构化数据的第一哈希值遍历j,有可能更快的完成遍历,节约计算机资源;反之,若mn小于第一预设压缩比波动值,则确定m中不存在嵌入恶意代码的非结构化数据,则不进行后面的步骤,同样节约了计算机资源。
43.另外,在步骤s300之后,本技术还可以包括以下步骤s311-步骤s361:步骤s311,分别对若干段非结构化数据中每一段非结构化数据的前128字节的数据进行压缩,得到第二数据段压缩比集p=(p1,p2,...,pv,...,pg);其中,v=1,2,...,g,pv为第v段非结构化数据的第二数据段压缩比,且pv为第v段非结构化数据的前128字节的数据压缩前的数据大小与第v段非结构化数据的前128字节的数据压缩后的数据大小的比,g为非结构化数据的段数。
44.步骤s321,根据p,获取第二压缩比波动值pn;pn=(∑
gv=1
(pv-avg(p))2)/g;其中:avg()为预设的平均值确定函数。
45.步骤s331,若pn大于第二预设压缩比波动值,将p中的所有第二数据段压缩比按照从小到大的顺序排列,得到第二有序数据段压缩比集pa=(pa1,pa2,...,paσ,...,pag);其中,σ=1,2,...,g,paσ为pa中排在第σ位的第二数据段压缩比。
46.步骤s341,根据第二数据段压缩比从小到大的顺序从pa中提取第二预设数量个第二数据段压缩比,得到目标第二数据段压缩比集pb=(pb1,pb2,...,pbz,...,pbβ);其中,z=1,2,...,β,pbz为排在第z位的目标第二数据段压缩比,β为目标第二数据段压缩比的数量。
47.步骤s351,依次基于pb中的目标第二数据段压缩比对应的每段非结构化数据的第二哈希值,遍历预设非结构化数据段部分哈希值集l=(l1,l2,...,lt,...,lu);其中,t=1,2,...,u,lt为第t个预设非结构化数据段部分哈希值,u为预设非结构化数据段部分哈希值的数量。
48.步骤s361,若pbz对应的非结构化数据的第二哈希值与lt相同,则停止遍历,确定pbz对应的非结构化数据为目标非结构化数据;目标非结构化数据为嵌入恶意代码的非结构化数据。
49.需要说明的是,本实施例是上一实施例(步骤s310-步骤s360)的进一步优选,仅利用非结构化数据的前128字节进行压缩和后续处理,相较于上一实施例,需要的计算机资源更少,更节约时间,且经过多次检验,利用非结构化数据前128字节对应的第二哈希值确定待检测文件中的某段非结构化数据是否嵌入恶意代码的准确率大于90%。其具体实施及相关原理同上,此处不再赘述。
50.在一些实施例的一些可选的实现方式中,在步骤s500之后,本技术还包括以下步骤s510-步骤s560:步骤s510,分别获取若干段非结构化数据中每一段非结构化数据的第一数据段信息熵,得到第一数据段信息熵集r=(r1,r2,...,rγ,...,rg);其中,γ=1,2,...,g,rγ为第γ段非结构化数据的第一数据段信息熵,g为非结构化数据的段数。
51.这里,第一数据段信息熵为非结构化数据的信息中排除了冗余后的平均信息量,第一数据段信息熵的获取方法可以为现有的,本领域技术人员能够根据实际情况确定具体的获取方法。由于用于增大文件大小的非结构化数据,基本为重复且无意义的数据,但是,有些黑客会在非结构化数据中嵌入恶意代码,增大检测难度。而恶意代码是有意义的数据,所以,嵌入恶意代码的某段非结构化数据的信息熵大于未嵌入恶意代码的某段非结构化数据。即第一数据段信息熵越大则说明对应的非结构化数据中嵌入恶意代码的可能性越大。
52.步骤s520,根据r,获取第一信息熵波动值rs;rs=(∑
gγ=1
(rγ-avg(r))2)/g;其中:avg()为预设的平均值确定函数。
53.具体的,rs越大,表示r中的第一数据段信息熵与r中所有第一数据段信息熵的平均值之间的偏离程度越大,即r中可能存在至少一段嵌入恶意代码的非结构化数据和至少一段未嵌入恶意代码的非结构化数据;反之,rs越小,表示r中的第一数据段信息熵与r中所有第一数据段信息熵的平均值之间的偏离程度小,rs如果趋近于0,则说明每段非结构化数据的信息熵均基本维持在一个较小的范围内波动,即r中可能不存在嵌入恶意代码的非结构化数据。
54.步骤s530,若rs大于第一预设信息熵波动值,将r中的所有第一数据段信息熵按照从大到小的顺序排列,得到第一有序数据段信息熵集ra=(ra1,ra2,...,raδ,...,rag);其中,δ=1,2,...,g,raδ为ra中排在第δ位的第一数据段信息熵,g为非结构化数据的段数。
55.设置第一预设信息熵波动值,若rs大于第一预设压缩比波动值,则说明待检测文件中的非结构化数据段中嵌入恶意代码的可能性较大。
56.步骤s540,根据第一数据段信息熵从大到小的顺序从ra中提取第三预设数量个第一数据段信息熵,得到目标第一数据段信息熵集rb=(rb1,rb2,...,rbε,...,rbτ);其中,ε=1,2,...,τ,rbε为排在第ε位的目标第一数据段信息熵,τ为目标第一数据段信息熵的数量。
57.具体的,按照ra中从大到小的顺序提取第一数据段信息熵,即按照某段非结构化数据中嵌入恶意代码的可能性从大到小提取y个第一数据段信息熵。
58.步骤s550,依次基于rb中的目标第一数据段信息熵对应的每段非结构化数据的第一哈希值,遍历预设非结构化数据段整体哈希值集j=(j1,j2,...,jp,...,jq);其中,p=1,2,...,q,jp为第p个预设非结构化数据段整体哈希值,q为预设非结构化数据段整体哈希值的数量。
59.步骤s560,若rbε对应的非结构化数据的第一哈希值与jp相同,则停止遍历,确定rbε对应的非结构化数据为目标非结构化数据;目标非结构化数据为嵌入恶意代码的非结构化数据。
60.具体的,现有的遍历方法是直接利用每段非结构化数据的第一哈希值遍历j,需要耗费的计算机资源较多,效率较低。而本技术中,设置了第一哈希值遍历j的顺序,先利用嵌入恶意代码可能性高的非结构化数据的第一哈希值遍历j,如果rbε对应的非结构化数据的第一哈希值与jp相同,则停止遍历,相较于直接利用每段非结构化数据的第一哈希值遍历j,有可能更快的完成遍历,节约计算机资源,提高遍历的效率。
61.本实施例中,首先确定第一信息熵波动值rs,由于嵌入恶意代码的某段非结构化数据的信息熵大于未嵌入恶意代码的某段非结构化数据,所以若rs大于第一预设信息熵波动值,说明r中存在至少一段嵌入恶意代码的非结构化数据和至少一段未嵌入恶意代码的
非结构化数据的可能性较大。进而对r中的第一数据段信息熵进行排序并提取第一预设数量个第一数据段信息熵,得到目标第一数据段信息熵集,基于目标第一数据段信息熵集依次遍历预设非结构化数据段整体哈希值集,这里,设置了遍历的顺序,从嵌入恶意代码的可能性最高的非结构化数据的第一哈希值(即第一数据段信息熵最小的非结构化数据的第一哈希值)开始,依次遍历j,如果rbε对应的非结构化数据的第一哈希值与jp相同,则停止遍历,确定rbε对应的非结构化数据为目标非结构化数据;目标非结构化数据为嵌入恶意代码的非结构化数据,即定位嵌入恶意代码的非结构化数据的位置。相较于直接利用每段非结构化数据的第一哈希值遍历j,可更快的完成遍历,节约计算机资源;反之,若rs小于第一预设信息熵波动值,则确定r中不存在嵌入恶意代码的非结构化数据,则不进行后面的步骤,同样节约了计算机资源。
62.另外,在步骤s500之后,本技术还包括以下步骤s511-步骤s561:步骤s511,分别获取若干段非结构化数据中每一段非结构化数据的前128字节的第二数据段信息熵,得到第二数据段信息熵集t=(t1,t2,...,tζ,...,tg);其中,ζ=1,2,...,g,tζ为第ζ段非结构化数据的第二数据段信息熵,g为非结构化数据的段数。
63.步骤s521,根据t,获取第二信息熵波动值ts;ts=(∑
gζ=1
(tζ-avg(t))2)/g;其中:avg()为预设的平均值确定函数。
64.步骤s531,若ts大于第二预设信息熵波动值,将t中的所有第二数据段信息熵按照从大到小的顺序排列,得到第二有序数据段信息熵集ta=(ta1,ta2,...,ta,...,tag);其中,=1,2,...,g,ta为ta中排在第位的第二数据段信息熵,g为非结构化数据的段数。
65.步骤s541,根据第二数据段信息熵从大到小的顺序从ta中提取第四预设数量个第二数据段信息熵,得到目标第二数据段信息熵集tb=(tb1,tb2,...,tbη,...,tbθ);其中,η=1,2,...,θ,tbη为tb中排在第η位的目标第二数据段信息熵,θ为目标第二数据段信息熵的数量。
66.步骤s551,依次基于tb中的目标第二数据段信息熵对应的每段非结构化数据的第二哈希值,遍历预设非结构化数据段部分哈希值集l=(l1,l2,...,lt,...,lu);其中,t=1,2,...,u,lt为第t个预设非结构化数据段部分哈希值,u为预设非结构化数据段部分哈希值的数量。
67.步骤s561,若tbη对应的非结构化数据的第二哈希值与lt相同,则停止遍历,确定tbη对应的非结构化数据为目标非结构化数据;目标非结构化数据为嵌入恶意代码的非结构化数据。
68.需要说明的是,本实施例是上一实施例(步骤s510-步骤s560)的进一步优选,仅利用非结构化数据的前128字节获取信息熵和后续处理,需要的计算机资源更少,更节约时间,且经过多次检验,利用非结构化数据前128字节对应的第二哈希值确定待检测文件中的某段非结构化数据是否嵌入恶意代码的准确率大于90%。其具体实施和原理同上,此处不再赘述。
69.在一些实施例中,在步骤s300之后,本技术的方法还包括步骤s600-步骤s800:步骤s600,根据若干段结构化数据,获取待检测文件对应的结构化轮廓特征信息;结构化轮廓特征信息包括若干段结构化数据的段数,以及每一段结构化数据的起始地址和
长度。
70.具体的,获取待检测文件中若干段结构化数据的结构化轮廓特征信息。这里,结构化轮廓特征信息包括若干段结构化数据的段数,以及每一段结构化数据的起始地址和长度。本实施例中,以每两段非结构化数据之间的结构化数据为一段,或文件头最近的非结构化数据与文件头之间的结构化数据为一段,或文件尾最近的非结构化数据与文件尾中间的结构化数据为一段,以上所有段数的和为结构化数据的段数。
71.结构化轮廓特征信息为a=(a,da1,la1,da2,la2,...,dab,lab,...,daa,laa),b=1,2,...,a;其中,a为结构化数据的段数,dab为第b段结构化数据的起始地址,lab为第b段结构化数据的长度。具体的,对待检测文件中的结构化数据进行结构解析,然后,基于numberofsections确定结构化数据的段数;在每段结构化数据的image_section_header结构中获取每个节的信息,包括每段结构化数据的起始地址和每段结构化数据的长度。
72.这里,将每一段结构化数据的起始地址和长度以相邻放置的方式排列,可以更清晰的记录每段结构化数据的轮廓信息。
73.步骤s700,根据结构化轮廓特征信息和第一预设检测方法,确定待检测文件为恶意文件的概率是否大于预设概率阈值。
74.这里,本技术可以通过以下步骤710-步骤720确定待检测文件为恶意文件的概率是否大于预设概率阈值:步骤s710,根据预设结构化轮廓特征信息集b=(b1,b2,...,bc,...,bd),获取结构化轮廓匹配度集c=(c1,c2,...,cc,...,cd),c=1,2,...,d;其中,d为预设结构化轮廓特征信息的数量;bc为第c个预设结构化轮廓特征信息;cc为a与bc的匹配度。
75.具体的,b中包括d个预设结构化轮廓特征信息,预设轮廓特征信息为恶意文件的结构化轮廓特征信息。利用a遍历b,分别获取a与b中每一个预设轮廓特征信息的匹配度,得到若干个匹配度,即为结构化轮廓匹配度集c。
76.步骤s720,若cc大于预设匹配度阈值,则确定待检测文件为恶意文件的概率大于预设概率阈值。
77.具体的,设置预设匹配度阈值,若cc大于预设匹配度阈值,则说明a与bc的匹配度较高,且bc是根据历史的恶意文件获取到的结构化轮廓特征信息,所以能够说明a对应的待检测文件为恶意文件的概率大于预设概率阈值,即a对应的待检测文件为恶意文件的可能性较高,为了进一步确定a对应的待检测文件是否为恶意文件,进而需要对a对应的待检测文件的内容进行进一步检测。反之,若cc小于预设匹配度阈值,则说明a与bc的匹配度较低,所以,a对应的待检测文件为恶意文件的概率小于预设概率阈值,此时,确定a不为恶意文件,所以不对a进行进一步的内容检测。
78.本实施例通过获取待检测文件的结构化轮廓特征信息,利用待检测文件的结构化轮廓特征信息和预设结构化轮廓特征信息集进行匹配,基于匹配度和预设匹配度阈值的大小关系初步判定待检测文件为恶意文件的概率,进而确定是否需要进行更高算力的处理,对于小于预设概率阈值的待检测文件,不进行进一步的检测,从而,本实施例不必对所有待检测文件都进行高算力的处理,减少检测时间,节约计算机资源。
79.另外,本技术还可以通过以下步骤730-步骤740确定待检测文件为恶意文件的概率是否大于预设概率阈值:
步骤s730,获取a的哈希值ad。
80.步骤s740,若ad和预设结构化轮廓特征哈希值集d=(d1,d2,...,de,...,df)中的de相同,则确定待检测文件为恶意文件的概率大于预设概率阈值;其中,e=1,2,...,f,f为预设结构化轮廓特征哈希值的数量,de为第e个预设结构化轮廓特征哈希值。
81.具体的,本实施例获取a的哈希值ad后,利用ad遍历d中的每一个预设结构化轮廓特征哈希值,de是根据历史的恶意文件获取到的结构化轮廓特征信息的哈希值,若ad和de相同,则确定a对应的待检测文件为恶意文件的概率大于预设概率阈值,此时,需要对a对应的待检测文件的内容进行更高算力的检测。反之,若ad和de不同,则确定a对应的待检测文件为恶意文件的概率小于预设概率阈值,此时,确定a不为恶意文件,所以不对a进行进一步的内容检测。
82.本实施例通过获取待检测文件的结构化轮廓特征信息的哈希值,进而确定待检测文件的结构化轮廓特征信息的哈希值是否与预设结构化轮廓特征哈希值集中的任一哈希值相同,若相同,则确定待检测文件为恶意文件的概率大于预设概率阈值,则需要对待检测文件进行更高算力检测,反之,若不同,则确定待检测文件为恶意文件的概率小于预设概率阈值,此时,对待检测文件不进一步进行检测,从而,本实施例不必对所有待检测文件都进行高算力的处理,减少检测时间,节约计算机资源。
83.步骤s800,若是,则基于第二预设检测方法,对若干段结构化数据的内容进行处理,以确定待检测文件是否为恶意文件;其中,实施第二预设检测方法所需要的计算机资源大于实施第一预设检测方法所需要的计算机资源。
84.具体的,确定需要进行进一步检测的概率大于预设概率阈值的待检测文件后,基于第二预设检测方法针对待检测文件的若干段结构化数据的内容进行处理,进一步确定待检测文件是否为恶意文件。
85.需要说明的是,实施第二预设检测方法所需要的计算机资源大于实施第一预设检测方法所需要的计算机资源,因此,以第一检测方法作为初步的恶意文件的概率筛选,再基于算力更高,实施时需要的计算机资源更大的第二预设方法对待检测文件的数据内容进行进一步的检测,以进一步确定待检测文件是否为恶意文件。这里,第二预设检测方法可以为现有的,本领域技术人员能够根据实际情况确定具体的检测方法。
86.在获取待检测文件之后,本技术的方法还包括步骤s900-步骤s1100,具体如下:步骤s900,根据若干段非结构化数据,获取待检测文件对应的非结构化轮廓特征信息;非结构化轮廓特征信息包括若干段非结构化数据的段数,以及每一段非结构化数据的起始地址和长度。
87.具体的,非结构化轮廓特征信息为e=(g,de1,le1,de2,le2,...,deh,leh,...,deg,leg),h=1,2,...,g;其中,g为非结构化数据的段数;g=a或g=a-1或g=a+1;deh为第h段非结构化数据的起始地址,leh为第h段非结构化数据的长度。本实施例中,以每两段结构化数据之间的非结构化数据为一段,或文件头最近的结构化数据与文件头之间的非结构化数据为一段,或文件尾最近的结构化数据与文件尾中间的非结构化数据为一段,以上所有段数的和为结构化数据的段数。对于每两段结构化数据之间的非结构化数据为一段时,基于每段结构化数据的起始地址和结构化数据的长度确定每段结构化数据的终止地址,同时确定每段非结构化数据的起始地址,进而基于两段相邻结构化数据的起始地址和和终止地址
确定非结构化数据的长度;对于文件头最近的结构化数据与文件头之间的非结构化数据为一段时,第一节数据则为非结构化数据的起始地址,离文件头最近的结构化数据的起始地址的上一节则为该段非结构化数据的终止地址,进而确定非结构化数据的长度;对于离文件尾最近的结构化数据与文件尾中间的非结构化数据为一段时,离文件尾最近的结构化数据的终止地址的下一节则为该段非结构化数据的起始地址,从该段非结构化数据的起始地址至文件尾则为该段非结构化数据的长度。
88.步骤s1000,根据非结构化轮廓特征信息和第三预设检测方法,确定待检测文件为恶意文件的概率是否大于预设概率阈值。
89.这里,本技术可以通过以下步骤s1010-步骤s1020确定待检测文件为恶意文件的概率是否大于预设概率阈值:步骤s1010,根据预设非结构化轮廓特征信息集f=(f1,f2,...,fi,...,fj),获取非结构化轮廓匹配度集g=(g1,g2,...,gi,...,gj),i=1,2,...,j;其中,j为预设非结构化轮廓特征信息的数量;fi为第i个预设非结构化轮廓特征信息;gi为e与fi的匹配度。
90.具体的,f中包括j个预设非结构化轮廓特征信息,预设非轮廓特征信息为恶意文件的非结构化轮廓特征信息。利用e遍历f,分别获取e与f中每一个预设非轮廓特征信息的匹配度,得到若干个匹配度,即为非结构化轮廓匹配度集g。
91.步骤s1020,若gi大于预设匹配度阈值,则确定待检测文件为恶意文件的概率大于预设概率阈值。
92.具体的,设置预设匹配度阈值,若gi大于预设匹配度阈值,则说明e与fi的匹配度较高,且fi是根据历史的恶意文件获取到的非结构化轮廓特征信息,所以能够说明e对应的待检测文件为恶意文件的概率大于预设概率阈值,即e对应的待检测文件为恶意文件的可能性较高,为了进一步确定e对应的待检测文件是否为恶意文件,进而需要对e对应的待检测文件的内容进行进一步检测。反之,若gi小于预设匹配度阈值,则说明e与fi的匹配度较低。所以,e对应的待检测文件为恶意文件的概率小于预设概率阈值,此时,确定e不为恶意文件,不对e进行进一步的内容检测。
93.本实施例通过获取待检测文件的非结构化轮廓特征信息,利用待检测文件的非结构化轮廓特征信息和预设非结构化轮廓特征信息集进行匹配,基于匹配度和预设匹配度阈值的大小关系初步判定待检测文件为恶意文件的概率,进而确定是否需要进行更高算力的处理,对于小于预设概率阈值的待检测文件,不进行进一步的检测,从而,本实施例不必对所有待检测文件都进行高算力的处理,减少检测时间,节约计算机资源。
94.另外,本技术还可以通过以下步骤s1030-步骤s1040确定待检测文件为恶意文件的概率是否大于预设概率阈值:步骤s1030,获取e的哈希值eh。
95.步骤s1040,若eh和预设非结构化轮廓特征哈希值集h=(h1,h2,...,hk,...,hm)中的hk相同,则确定待检测文件为恶意文件的概率大于预设概率阈值;其中,k=1,2,...,m,m为预设非结构化轮廓特征哈希值的数量,hk为第k个预设非结构化轮廓特征哈希值。
96.具体的,本实施例获取e的哈希值eh后,利用eh遍历h中的每一个预设非结构化轮廓特征,hk是根据历史的恶意文件获取到的非结构化轮廓特征信息的哈希值,若eh与hk相同,则确定e对应的待检测文件为恶意文件的概率大于预设概率阈值,则需要对e对应的待
检测文件的内容进行更高算力的检测。反之,若eh与hk不同,则确定e对应的待检测文件为恶意文件的概率小于预设概率阈值,此时,确定e不为恶意文件,所以不对e进行进一步的内容检测。
97.本实施例通过获取待检测文件的非结构化轮廓特征信息的哈希值,进而确定待检测文件的非结构化轮廓特征信息的哈希值是否与预设非结构化轮廓特征哈希值集中的任一哈希值相同,若相同,则确定待检测文件为恶意文件的概率大于预设概率阈值,则需要对待检测文件进行更高算力检测,反之,若不同,则确定待检测文件为恶意文件的概率小于预设概率阈值,此时,对待检测文件不进一步进行检测,从而,本实施例不必对所有待检测文件都进行高算力的处理,减少检测时间,节约计算机资源。
98.步骤s1100,若是,则基于第四预设检测方法,对若干段非结构化数据的内容进行处理,以确定待检测文件是否为恶意文件;其中,实施第四预设检测方法所需要的计算机资源大于实施第三预设检测方法所需要的计算机资源。
99.可以通过以下步骤s1110-步骤s1120确定待检测文件是否为恶意文件:步骤s1110,获取每一段非结构化数据的第一哈希值以获取第一哈希值集i=(i1,i2,...,ih,...,ig);其中,ih为第h段非结构化数据的第一哈希值。
100.具体的,若待检测文件为恶意文件的概率大于预设概率阈值,则需要对待检测文件进行进一步检测,在本实施例中,是基于非结构化轮廓特征信息或非结构化轮廓特征信息哈希值确定待检测文件为恶意文件的概率大于预设概率阈值的,进而,获取待检测文件中所有非结构化数据中每段非结构化数据的第一哈希值,得到第一哈希值集。
101.步骤s1120,若ih与预设非结构化数据段整体哈希值集j=(j1,j2,...,jp,...,jq)中的jp相同,则确定待检测文件是恶意文件;其中,p=1,2,...,q,jp为第p个预设非结构化数据段整体哈希值,q为预设非结构化数据段整体哈希值的数量。
102.具体的,预设非结构化数据段整体哈希值集中包括多个恶意文件的每段非结构化数据的哈希值,本实施例获取全部的非结构化数据的i后,基于i中的每一个第一哈希值遍历j,若i中的任一第一哈希值与j中的任一预设非结构化数据段整体哈希值相同,则确定待检测文件是恶意文件。
103.本实施例在基于非结构化数据确定待检测文件是否为恶意文件时,首先基于非结构化轮廓特征信息或非结构化轮廓特征信息哈希值,确定待检测文件是否有可能为恶意文件,待检测文件为恶意文件的概率小于预设概率阈值时,则不进行进一步处理,待检测文件为恶意文件的概率大于预设概率阈值时,则利用算力更高,需要的计算机资源更多的第四预设检测算法,即利用每段非结构化数据的内容获取每个第一哈希值,由于对于数据内容的检测比对于轮廓信息的检测更为精准,所以如果在非结构化数据段整体哈希值集中存在与任一第一哈希值相同的预设整体哈希值时,进一步确定了待检测文件为恶意文件。相较于对于全部的非结构化数据均进行内容哈希值的计算,节约了计算机资源,减少了检测时间。
104.进一步的,本技术还可以通过以下步骤s1130-步骤s1140确定待检测文件是否为恶意文件:步骤s1130,获取每一段非结构化数据前128字节的第二哈希值以获取第二哈希值集k=(k1,k2,...,kh,...,kg);其中,kh为第h段非结构化数据前128字节数据对应的第二哈
希值。
105.具体的,若待检测文件为恶意文件的概率大于预设概率阈值,则需要对待检测文件进行进一步检测,在本实施例中,是基于非结构化轮廓特征信息或非结构化轮廓特征信息哈希值确定待检测文件为恶意文件的概率大于预设概率阈值的,进而,获取待检测文件中所有非结构化数据中每段非结构化数据的前128字节的第二哈希值,得到第二哈希值集。
106.步骤s1140,若kh与预设非结构化数据段部分哈希值集l=(l1,l2,...,lt,...,lu)中的lt相同,则确定待检测文件是恶意文件;其中,t=1,2,...,u,lt为第t个预设非结构化数据段部分哈希值,u为预设非结构化数据段部分哈希值的数量。
107.具体的,本实施例获取每一段非结构化数据前128字节的第二哈希值以获取第二哈希值集k后,利用kh遍历l,lt是根据历史的恶意文件获取到的非结构化数据段部分哈希值,若kh与lt相同,则确定待检测文件是恶意文件。
108.本实施例是对上一实施例的进一步改进,上一实施例是获取每一段非结构化数据的第一哈希值以获取第一哈希值集,本实施例是获取每一段非结构化数据中每段非结构化数据的前128字节的第二哈希值集,相较于上一实施例,所需要的计算机资源和时间更少,且经过多次检验,本实施例确定待检测文件是否为恶意文件的准确率大于90%。
109.更进一步的,本技术还可以通过以下步骤s1150-步骤s1160确定待检测文件是否为恶意文件:步骤s1150,获取第一段非结构化数据前128字节的第二哈希值k1。
110.具体的,若待检测文件为恶意文件的概率大于预设概率阈值,则需要对待检测文件进行进一步检测,在本实施例中,是基于非结构化轮廓特征信息或非结构化轮廓特征信息哈希值确定待检测文件为恶意文件的概率大于预设概率阈值的,进而,获取待检测文件中第一段非结构化数据前128字节的第二哈希值k1。
111.步骤s1160,若k1与预设非结构化数据段部分哈希值集l=(l1,l2,...,lt,...,lu)中的lt相同,则确定待检测文件是恶意文件;其中,t=1,2,...,u,lt为第t个预设非结构化数据段部分哈希值,u为预设非结构化数据段部分哈希值的数量。
112.具体的,本实施例获取待检测文件中第一段非结构化数据前128字节的第二哈希值k1后,利用k1遍历l,lt是根据历史的恶意文件获取到的非结构化数据段部分哈希值,若k1与lt相同,则确定待检测文件是恶意文件。
113.本实施例是对上一实施例的更进一步改进,上一实施例是获取每一段非结构化数据前128字节的第二哈希值以获取第二哈希值集,本实施例是获取第一段非结构化数据前128字节的第二哈希值,相较于上一实施例,所需要的计算机资源和时间更少,且经过多次检验,利用第一段非结构化数据前128字节的第二哈希值集确定待检测文件是否为恶意文件的准确率大于90%。
114.综上,本实施例提供的文件检测方法,对于同时包含结构化数据和非结构化数据,且结构化数据和非结构化数据交替排列的待检测文件,首先获取结构化数据和非结构化数据各自对应的结构化轮廓特征信息和非结构化轮廓特征,其次,基于结构化轮廓特征信息(或结构化轮廓特征信息哈希值)与预设结构化轮廓特征信息库(预设结构化轮廓特征信息哈希值库)进行匹配,同时基于非结构化轮廓特征信息(或非结构化轮廓特征信息哈希值)与预设结非构化轮廓特征信息库(预设非结构化轮廓特征信息哈希值库)做比对,初步确定
待检测文件是否有可能为恶意文件,这里,还有一个目的是,基于上述匹配结果初步确定恶意代码是存在于结构化数据和/或非结构化数据中,从而,当恶意代码有可能存在于结构化数据中时,对结构化数据的内容进行更高算力的分析,以确定待检测文件是否为恶意文件;当恶意代码有可能存在于非结构化数据中时,对非结构化数据的内容进行更高算力的分析,以确定待检测文件是否为恶意文件。这里,通过设置初步判断待检测文件是否有可能为恶意文件的步骤,后续可能不需要对结构化数据和非结构化数据的内容全部进行检测,节约计算机资源,效率更高。
115.本技术的实施例还提供一种计算机程序产品,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使该电子设备执行本说明书上述描述的根据本技术各种示例性实施方式的方法中的步骤。
116.此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
117.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
118.在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
119.所属技术领域的技术人员能够理解,本技术的各个方面可以实现为系统、方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
120.根据本技术的这种实施方式的电子设备。电子设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
121.电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:上述至少一个处理器、上述至少一个储存器、连接不同系统组件(包括储存器和处理器)的总线。
122.其中,储存器存储有程序代码,程序代码可以被处理器执行,使得处理器执行本说明书上述“示例性方法”部分中描述的根据本技术各种示例性实施方式的步骤。
123.储存器可以包括易失性储存器形式的可读介质,例如随机存取储存器(ram)和/或高速缓存储存器,还可以进一步包括只读储存器(rom)。
124.储存器还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
125.总线可以为表示几类总线结构中的一种或多种,包括储存器总线或者储存器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
126.电子设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器通过总线与电子设备的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
127.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
128.在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本技术的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本技术各种示例性实施方式的步骤。
129.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
130.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
131.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
132.可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商
来通过因特网连接)。
133.此外,上述附图仅是根据本技术示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
134.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
135.以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。

技术特征:
1.一种文件检测方法,其特征在于,包括:获取待检测文件;所述待检测文件的文件大小大于预设文件大小;对所述待检测文件进行压缩,得到所述待检测文件的文件压缩比ys;ys=y0/y1;其中,y0为待检测文件压缩前的文件大小,y1为待检测文件压缩后的文件大小;若ys大于预设文件压缩比,发出警报。2.如权利要求1所述的文件检测方法,其特征在于,在所述获取待检测文件之后,所述方法还包括:获取所述待检测文件的文件信息熵;若所述文件信息熵小于目标信息熵阈值,发出警报。3.如权利要求2所述的文件检测方法,其特征在于,所述目标信息熵阈值根据所述待检测文件的文件大小确定。4.如权利要求1所述的文件检测方法,其特征在于,所述待检测文件中包括若干段结构化数据和若干段非结构化数据;所述结构化数据和所述非结构化数据交替排列。5.如权利要求4所述的文件检测方法,其特征在于,在所述若ys大于预设文件压缩比,发出警报之后,所述方法还包括:分别对若干段非结构化数据中每一段非结构化数据进行压缩,得到第一数据段压缩比集m=(m1,m2,...,mv,...,mg);其中,v=1,2,...,g,mv为第v段非结构化数据的第一数据段压缩比,且mv为第v段非结构化数据压缩前的数据大小与第v段非结构化数据压缩后的数据大小的比,g为非结构化数据的段数;根据m,获取第一压缩比波动值mn;mn=(∑
gv=1
(mv-avg(m))2)/g;其中:avg()为预设的平均值确定函数;若mn大于第一预设压缩比波动值,将m中的所有第一数据段压缩比按照从小到大的顺序排列,得到第一有序数据段压缩比集ma=(ma1,ma2,...,maw,...,mag);其中,w=1,2,...,g,maw为ma中排在第w位的第一数据段压缩比;根据第一数据段压缩比从小到大的顺序从ma中提取第一预设数量个第一数据段压缩比,得到目标第一数据段压缩比集mb=(mb1,mb2,...,mbx,...,mby);其中,x=1,2,...,y,mbx为mb中排在第x位的目标第一数据段压缩比,y为目标第一数据段压缩比的数量;依次基于mb中的目标第一数据段压缩比对应的每段非结构化数据的第一哈希值,遍历预设非结构化数据段整体哈希值集j=(j1,j2,...,jp,...,jq);其中,p=1,2,...,q,jp为第p个预设非结构化数据段整体哈希值,q为预设非结构化数据段整体哈希值的数量;若mbx对应的非结构化数据的第一哈希值与jp相同,则停止遍历,确定mbx对应的非结构化数据为目标非结构化数据;所述目标非结构化数据为嵌入恶意代码的非结构化数据。6.如权利要求4所述的文件检测方法,其特征在于,在所述若ys大于预设文件压缩比,发出警报之后,所述方法还包括:分别对若干段非结构化数据中每一段非结构化数据的前128字节的数据进行压缩,得到第二数据段压缩比集p=(p1,p2,...,pv,...,pg);其中,v=1,2,...,g,pv为第v段非结构化数据的第二数据段压缩比,且pv为第v段非结构化数据的前128字节的数据压缩前的数据大小与第v段非结构化数据的前128字节的数据压缩后的数据大小的比,g为非结构化数据的段数;
根据p,获取第二压缩比波动值pn;pn=(∑
gv=1
(pv-avg(p))2)/g;其中:avg()为预设的平均值确定函数;若pn大于第二预设压缩比波动值,将p中的所有第二数据段压缩比按照从小到大的顺序排列,得到第二有序数据段压缩比集pa=(pa1,pa2,...,paσ,...,pag);其中,σ=1,2,...,g,paσ为pa中排在第σ位的第二数据段压缩比;根据第二数据段压缩比从小到大的顺序从pa中提取第二预设数量个第二数据段压缩比,得到目标第二数据段压缩比集pb=(pb1,pb2,...,pbz,...,pbβ);其中,z=1,2,...,β,pbz为pb中排在第z位的目标第二数据段压缩比,β为目标第二数据段压缩比的数量;依次基于pb中的目标第二数据段压缩比对应的每段非结构化数据的第二哈希值,遍历预设非结构化数据段部分哈希值集l=(l1,l2,...,lt,...,lu);其中,t=1,2,...,u,lt为第t个预设非结构化数据段部分哈希值,u为预设非结构化数据段部分哈希值的数量;若pbz对应的非结构化数据的第二哈希值与lt相同,则停止遍历,确定pbz对应的非结构化数据为目标非结构化数据;所述目标非结构化数据为嵌入恶意代码的非结构化数据。7.如权利要求4所述的文件检测方法,其特征在于,在所述若ys大于预设文件压缩比,发出警报之后,所述方法还包括:分别获取若干段非结构化数据中每一段非结构化数据的第一数据段信息熵,得到第一数据段信息熵集r=(r1,r2,...,rγ,...,rg);其中,γ=1,2,...,g,rγ为第γ段非结构化数据的第一数据段信息熵,g为非结构化数据的段数;根据r,获取第一信息熵波动值rs;rs=(∑
gγ=1
(rγ-avg(r))2)/g;其中:avg()为预设的平均值确定函数;若rs大于第一预设信息熵波动值,将r中的所有第一数据段信息熵按照从大到小的顺序排列,得到第一有序数据段信息熵集ra=(ra1,ra2,...,raδ,...,rag);其中,δ=1,2,...,g,raδ为ra中排在第δ位的第一数据段信息熵,g为非结构化数据的段数;根据第一数据段信息熵从大到小的顺序从ra中提取第三预设数量个第一数据段信息熵,得到目标第一数据段信息熵集rb=(rb1,rb2,...,rbε,...,rbτ);其中,ε=1,2,...,τ,rbε为rb中排在第ε位的目标第一数据段信息熵,τ为目标第一数据段信息熵的数量;依次基于rb中的目标第一数据段信息熵对应的每段非结构化数据的第一哈希值,遍历预设非结构化数据段整体哈希值集j=(j1,j2,...,jp,...,jq);其中,p=1,2,...,q,jp为第p个预设非结构化数据段整体哈希值,q为预设非结构化数据段整体哈希值的数量;若rbε对应的非结构化数据的第一哈希值与jp相同,则停止遍历,确定rbε对应的非结构化数据为目标非结构化数据;所述目标非结构化数据为嵌入恶意代码的非结构化数据。8.如权利要求4所述的文件检测方法,其特征在于,在所述若ys大于预设文件压缩比,发出警报之后,所述方法还包括:分别获取若干段非结构化数据中每一段非结构化数据的前128字节的第二数据段信息熵,得到第二数据段信息熵集t=(t1,t2,...,tζ,...,tg);其中,ζ=1,2,...,g,tζ为第ζ段非结构化数据的第二数据段信息熵,g为非结构化数据的段数;根据t,获取第二信息熵波动值ts;ts=(∑
gζ=1
(tζ-avg(t))2)/g;其中:avg()为预设的平均值确定函数;若ts大于第二预设信息熵波动值,将t中的所有第二数据段信息熵按照从大到小的顺
序排列,得到第二有序数据段信息熵集ta=(ta1,ta2,...,ta,...,tag);其中,=1,2,...,g,ta 为ta中排在第位的第二数据段信息熵,g为非结构化数据的段数;根据第二数据段信息熵从大到小的顺序从ta中提取第四预设数量个第二数据段信息熵,得到目标第二数据段信息熵集tb=(tb1,tb2,...,tbη,...,tbθ);其中,η=1,2,...,θ,tbη为tb中排在第η位的目标第二数据段信息熵,θ为目标第二数据段信息熵的数量;依次基于tb中的目标第二数据段信息熵对应的每段非结构化数据的第二哈希值,遍历预设非结构化数据段部分哈希值集l=(l1,l2,...,lt,...,lu);其中,t=1,2,...,u,lt为第t个预设非结构化数据段部分哈希值,u为预设非结构化数据段部分哈希值的数量;若tbη对应的非结构化数据的第二哈希值与lt相同,则停止遍历,确定tbη对应的非结构化数据为目标非结构化数据;所述目标非结构化数据为嵌入恶意代码的非结构化数据。9.一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,其特征在于,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-8中任意一项的所述方法。10.一种电子设备,其特征在于,包括处理器和权利要求9中所述的非瞬时性计算机可读存储介质。

技术总结
本申请提供了一种文件检测方法、可读存储介质及电子设备,该方法包括:获取待检测文件;待检测文件的文件大小大于预设文件大小;对待检测文件进行压缩,得到待检测文件的文件压缩比YS;YS=Y0/Y1;其中,Y0为待检测文件压缩前的文件大小,Y1为待检测文件压缩后的文件大小;若YS大于预设文件压缩比,发出警报。本申请提供的技术方案,可以在不过量占用计算机资源的情况下,快速完成对大文件的安全检测。快速完成对大文件的安全检测。快速完成对大文件的安全检测。


技术研发人员:吕经祥 李石磊 肖新光
受保护的技术使用者:北京安天网络安全技术有限公司
技术研发日:2023.07.12
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐