一种基于局部熵的恶意代码可视化分析方法与流程

文档序号:15159445发布日期:2018-08-14 09:59阅读:574来源:国知局

本发明涉及恶意代码可视化分析技术领域,特别是涉及一种基于局部熵的恶意代码可视化分析方法。



背景技术:

恶意代码的编写者通常采用自动化的手段开发恶意代码变种,使其数量迅猛增长,极大的危害信息系统安全。自动化开发的方式往往会重复利用同族恶意代码的核心功能模块,且这些模块的相似性可以通过局部熵的形式反映出来,这为辨识恶意代码族提供了有利的依据。

2015年,韩国汉阳大学的kyongsoohan等人提出了熵图的方法,该方法计算恶意代码中每256字节块的熵值,从而生成关于局部熵的直方图,之后运用直方图比较算法(strelkovvv.anewsimilaritymeasureforhistogramcomparisonanditsapplicationintimeseriesanalysis[j].patternrecognitionletters,2008,29(13):1768-1774.)来检测和分类恶意代码。如图1所示,恶意代码经局部熵计算生成熵直方图。在实施恶意代码分类的过程中,该方法将待比较的熵图以最大熵值作为熵图长度截取的对齐标准,同时兼顾两直方图间对应熵值相似度期望k1和对应最近局部极值相似度期望k2对整体相似度的影响,分别给予t1=0.7和t2=0.3的权重,以s=t1*k1+t2*k2计算两直方图之间的相似度。

虽然hanks,limjh,kangb,etal.malwareanalysisusingvisualizedimagesandentropygraphs[j].internationaljournalofinformationsecurity,2015,14(1):1-14.的方法可以在视觉上呈现同族恶意代码拥有相似的熵图区域,但该方法在实施分类时存在以下问题。1、因熵图的长度受恶意代码文件大小的影响存在着差异,只能截取部分等长区域计算相似度,这使得用于分类的特征不完整;2、以最大熵值作为截取依据的直方图相似度算法无法将比较范围准确定位于相似功能模块所形成的局部熵区域,因此无法满足该方法的分类前提,即相似模块可以用于检测恶意变种。这些因素影响了该方法在恶意代码分类应用上的准确性。



技术实现要素:

本发明所要解决的技术问题是提供一种基于局部熵的恶意代码可视化分析方法,可用于恶意代码检测及分类。

本发明解决其技术问题所采用的技术方案是:提供一种基于局部熵的恶意代码可视化分析方法,包括以下步骤:

(1)计算恶意代码局部熵,生成的熵值序列长度记为l,之后补充个0熵值;

(2)计算局部熵的djb2哈希值;

(3)将djb2哈希值转换成rgb值;

(4)基于rgb值序列生成关于局部熵的方图;

(5)提取局部熵方图的gist特征,并运用knn分类算法实施分类验证。

所述步骤(2)具体为:将所得的长度为的熵值序列,以字符形式分别计算每个熵值的djb2哈希值。

所述步骤(3)中djb2哈希值为24个bit位,每8位一组计算,分别得到rgb三色通道的颜色值。

所述步骤(4)具体为:将所得的rgb值序列按每行个像素点的自然顺序依次排列,生成的关于局部熵方图。

有益效果

由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:

在视觉分析方面,本发明能从视觉感知上使所生成的同族恶意样本相似,而异族样本之间明显可区分;在演进分析方面,能通过局部熵反映出相似功能模块在熵方图上的位置变化,为待测样本是否归属某一族提供了依据;在交互分析方面,本发明不仅构建了安全分析人员与恶意样本之间的视觉通信,降低了人工分析的难度,还能以程序自动化的方式操作,进一步降低了对相关人员专业技术的要求;在检测分类方面,本发明提取图片的纹理特征作为分类依据,充分利用每个熵值,可使分类特征更全面、分类判定更准确;在时效性方面,本发明应用降维映射的方法能减少图片生成的时间开销,提高识别分类的效率。

附图说明

图1是现有技术中熵图方法示意图;

图2是trojan-downloader.win32.qqhelper类样本.gfk可视化后的示例图;

图3是trojan-spy.win32.winspy类样本.fq可视化后的示例图;

图4是trojan-spy.win32.winspy类样本.ou可视化后的示例图;

图5是trojan-spy.win32.winspy类样本.tz可视化后的示例图;

图6是本发明的流程图。

具体实施方式

下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

本发明的实施方式涉及一种基于局部熵的恶意代码可视化分析方法,如图6所示,先计算恶意代码的局部熵值,补充0熵值至整个熵值序列长度为某最小整数乘方;在此基础上,以字符形式计算各熵值的djb2哈希值;再将所得24位djb2哈希值转化为rgb颜色值,按自然顺序排列像素点以生成关于局部熵的方图。该方法将恶意代码降维至其熵值表示,大幅度减少了分析文件时的运算开销;同时,相似功能模块所形成的局部熵图案,便于研究同族恶意代码的演变规律;此外,该方法借助纹理分析方法,提取这些方图的gist特征,并运用k-nearestneighbor(knn)分类算法实施分类验证,再次以降维的方式减少了分析时间成本,提高了判定分类的效率。

下面通过具体的实施例对本发明进行详细说明。用于验证本发明分类正确率的样本是从vxheavens官方网站下载的24类共计7162个以卡巴斯基命名规则命名的恶意样本。

实施例1

一种基于局部熵的恶意代码可视化分析方法,具体为:

步骤1:与kyongsoohan等人提出的熵图方法一样,本发明也需计算恶意代码中每256字节块的熵值。不同的是,为后续步骤能生成局部熵方图,本发明需在生成的熵值序列后填充0熵值,以使最终的熵值序列长度可被开平方。以trojan-downloader.win32.qqhelper类样本.gfk为例,该恶意代码文件大小为636471字节,熵序列依次为1.23619305365、0.730780826873、3.61392762918、……,长度为2487,补充13个0熵值,补充后长度为2500;

步骤2:将上一步骤所得的熵值序列,以字符形式分别计算每个熵值的djb2哈希值,其十进制表示依次为2620223、9919006、12915980、……;

步骤3:将上一步骤所得djb2哈希值序列转换为rgb颜色值,由于djb2哈希值为24个bit位,因此每8位一组计算,分别得到rgb三色通道的颜色值,依次为(39,251,63)、(151,90,30)、(197,21,12)、……;

步骤4:上一步骤所得的颜色序列按每行50个像素点的自然顺序排列,生成50*50的方图,如图2所示。

将全部7162个恶意样本转化成图片后,提取这些图片的gist特征,应用knn分类算法,对本发明所提的可视化方法进行了10次交叉验证,结果分别为0.9655、0.9571、0.9584、0.9597、0.9499、0.9665、0.9565、0.9761、0.9548、0.9773,因此本发明针对该样本集的平均分类正确率为0.9622。同时,本发明又将这7162个恶意样本与9175个正常的可执行文件进行10次交叉验证,结果分别为0.9615、0.9719、0.9682、0.9700、0.9602、0.9682、0.9675、0.9682、0.9694、0.9657,因此本发明针对上述样本集的平均识别正确率为0.9671。

本发明中,恶意代码转化为基于局部熵的方图,其平均生成时间为0.8993秒;完成全部7162个样本的特征提取总用时为1分22.19秒,分类总用时为2.0006秒。而将hanks,limjh,kangb,etal.malwareanalysisusingvisualizedimagesandentropygraphs[j].internationaljournalofinformationsecurity,2015,14(1):1-14.的方法应用于同一数据集,所花费的相似度比较总用时为437.42小时(即18.22天),平均分类正确率为0.3656,平均识别正确率为0.6042,由此说明kyongsoohan提出的熵图方法不适用于恶意样本分类及识别。通过以上实验数据的对比,说明本发明所提方法在恶意代码分类效果和用时成本方面均取得了较优的结果。

实施例2

采用实施例1所述的基于局部熵的恶意代码可视化分析方法,生成trojan-spy.win32.winspy类样本.fq、.ou、.tz的图像,如图3-5所示,本发明在进行同族恶意样本分析时,能通过局部熵方图发现其间的细微差异,为掌握该族变种发展变化的趋势提供了依据。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1