没有合适的资源?快使用搜索试试~ 我知道了~
沙特国王大学学报基于集成特征集的可Ajit Kumara,K.S.Kuppusamya,G.Aghilaba计算机科学系,本地治里大学,本地治里605014,印度b计算机科学与工程系,国家理工学院Puducherry,Karaikal 609605,印度阿提奇莱因福奥文章历史记录:2016年7月14日收到2017年1月5日修订2017年1月6日接受2017年1月31日在线提供保留字:恶意软件便携式可执行文件机器学习集成功能A B S T R A C T恶意软件是用户数字接受度扩展和增长的最大障碍之一。企业和普通用户都在努力保护自己免受网络空间中恶意软件的在这项工作中,我们提出了一种基于机器学习的解决方案,以高准确性和低计算开销将样本分类为良性或恶意软件。一个集成的功能集已合并为便携式可执行头字段原始值和派生值的组合。在恶意软件分类中采用了决策树、随机森林、kNN、Logistic回归、线性判别分析和朴素贝叶斯等多种机器学习算法。使用现有的原始特征集和建议的集成特征集,我们比较了每个分类器的性能。经验证据表明,在10倍交叉验证的建议集成功能集的分类准确率为98.4%。在对新的测试数据集进行的实验中,观察到集成特征集的准确率为89.23%还实验了仅具有前N个特征(N= 5,10,15,20,25)的分类准确度,并且观察到仅具有前15个特征,在集成特征和原始特征上分别可以实现98%和97%的准确度。©2017作者。制作和主办:Elsevier B.V.代表沙特国王大学这是一CC BY-NC-ND许可下的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。1. 介绍恶意程序或恶意软件是故意编写的程序,用于从事各种恶意活动,从用户恶意软件暴露的行为恶意软件攻击也随着数字设备和互联网使用的快速增长而在过去的五年中,新的恶意软件呈指数级增长,使得恶意软件检测成为一个具有挑战性的研究课题。1恶意软件检测是用于识别终端设备或网络中的恶意软件的技术。基于签名的检测和非*通讯作者。电子邮件地址:kskuppu@gmail.com(K.S. Kuppusamy)。1来源:http://www.av-test.org/en/statistics/malware/(最后访问日期:2016年10月)。沙特国王大学负责同行审查。制作和主办:Elsevier基于签名的检测是当今使用的两类主要恶意软件检测技术(Idika和Mathur,2007)。基于签名的检测技术扫描特定的字节序列(即签名)以检测恶意软件,而基于非签名的技术通过观察针对预定义简档的行为和模式来检测恶意软件。基于签名的检测具有较高的检测精度,但限于签名数据库,因此需要频繁更新。主要的缺点是它提供了一个攻击窗口时间(从漏洞发现到签名更新或修补之间的时间),等于检测时间、签名生成时间和更新时间的总和。基于非特征码的检测可能会导致误报或漏报,但它完全消除了攻击窗口时间。基于非签名的检测技术也可以检测未知的、零日的和现代的恶意软件,而这种恶意软件在基于签名的检测技术中完全无法检测到。本文提出了一种基于非签名的方法来检测恶意软件的基础上,通过处理便携式可执行(PE)文件在基于非签名的方法中存在各种方法,例如,遗传学、机器学习和混合技术(Treadwell和Zhou,2009; Firdausi等人,2010年; Qin等人,2010;Schultz等人,2001年)。基于机器学习的恶意软件分类http://dx.doi.org/10.1016/j.jksuci.2017.01.0031319-1578/©2017作者。制作和主办:Elsevier B.V.代表沙特国王大学这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表沙特国王大学学报杂志首页:www.sciencedirect.comA. Kumar等人/沙特国王大学学报253阳离子利用恶意软件和良性程序的结构和行为特征来构建分类模型以将给定样本程序识别为恶意软件或良性程序。字节-n-gram、操作码-n-gram、以二进制和PE报头字段值存在的字符串是用于训练和测试 恶 意 软 件 分 类 器 的 主 要 特 征 ( Schultz 等 人 , 2001 年 ;Abou-Assaleh等人,2004; Moskovitch等人,2008; Santos等人,2010;Bilar , 2007; Sami 等 人 , 2010;Shankarapani 等 人 , 2011;Shabtai等人,2009年)。PE头的各个字段用于区分恶意软件和良性 文 件 。 例 如 , 在 我 们 的 试 点 研 究 中 , 我 们 观 察 到NumberOfSections,SizeOfInitializedData,NumberOfSymbol等的值在恶意软件和良性文件之间有较大的偏差。在这项建议的工作中,一个集成的基于特征的模型合并PE报头的各个字段的原始值以及一组派生的功能。派生特征的值通过使用头字段、二进制文件数据和Pietrek(1994)中提出的准则来计算。衍生特征集包括熵、年份、包装信息、可疑部分的数量、非可疑部分的数量和5个其他布尔特征,这些特征将在第3.2.2节中进一步解释。上述综合特征是从预处理的恶意软件和良性样本中提取的。在原始特征集和综合特征集上训练了六种机器学习分类器:Logistic回归、线性判别分析、决策树、随机森林、K-近邻分类器和高斯朴素贝叶斯。使用训练-测试分割方法(70-30比率)、10倍交叉验证和具有来自不同类别的恶意软件的122个样本和未在训练中使用的30个良性样本的新型测试数据集,对所有六个训练模型进行各种分类度量的测试。为了验证分类准确性和其他度量的改进,将来自原始特征集和集成特征集的输出进行比较。所提出的方法还与现有模型(Bai等人,2014),其仅采用原始特征集。所提出的用于恶意软件检测的学习模型具有如下所列的四个主要目标:通过与为各个字段提供的指南进行比较,构建由十六个组件组成的功能集,这些组件的将衍生特征和原始特征融合为一个完整的特征集,提高PE文件恶意检测的准确性。使用集成特征集开发一个具有六个基于机器学习的分类器的分类模型。为了实证验证所提出的分类模型与六个阶段的实验设置,其目的是为了确认,使用已建立的分类指标的性能改善本文的其余部分组织如下。在第2节中,讨论了使用头信息的PE文件的恶意软件分类的背景信息和相关工作。第3节讨论了不同功能的方法和细节。实验装置、结果和分析在第4节中给出。从这项工作中得出的结论在第5节中给出。2. 相关作品恶意软件检测是区分恶意软件和良性程序的过程。恶意软件的复杂性和反恶意软件技术都在相互压制的军备竞赛中共同发展。恶意软件检测技术执行样本而动态分析在受控环境中执行样本(Egele等人,2012年)。基于非签名的技术使用这两种分析。所提出的工作是基于静态分析,所以这个相关的工作部分解释了一些值得注意的基于PE文件的静态分析的基于非签名的恶意软件检测以前的建议的工作已经考虑了PE文件的恶意检测。选择PE进行实验 的 原 因 有 两 个 。 首 先 , 它 是 最 常 用 的 文 件 格 式 之 一 , 由 于Windows操作系统的广泛使用,其次,围绕47:提交给Virustotal2的文件中有80%是PE文件。图1显示了提交给Virustotal的不同文件类型的百分比。从Virustotal获取的数据进行了分组,使可视化更加清晰和有意义。Schultz等人(2001)介绍了恶意软件和良性程序的静态特征与恶意软件分类的数据挖掘方法的使用。他们尝试了可执行文件的不同静态特性,例如使用动态链接库(DLL),DLL函数调用,应用程序编程接口(API)调用以及二进制文件中的字符串不同的数据挖掘分类器(RIPPER,朴素贝叶斯和多朴素贝叶斯)使用3265个恶意软件和1001个恶意软件良性程序他们声称Multi-naive分类器的准确率为97:6%,是基于签名的未知恶意软件检测的两倍。Shabtai等人(2009年)提出了基于从可执行文件中提取的静态特征的机器学习方法对恶意软件检测方法进行分类的分类法。他们解释了各种静态特征,其中PE特征分为六类,如来自PE头的数据和PE、可选PE头信息、导入节、导出节、资源目录和版本信息。Vinod等人(2011)使用了三种不同类型的特征-mne- monic n-gram、主指令操作码和PE报头条目。他们使用分散标准对两个数据集进行特征选择,这两个数据集是通过将混淆和打包的恶意软件与良性样本配对创建的TPR 0的最佳性能:968%和FPR基于实例的学习器(IBk)在打包的恶意软件数据集。Yeet al. (2008)使用PE文件的API调用序列(使用导入地址表(IAT)字段提取)和面向对象的关联(OOA)挖掘。通过上述方法,他们使用最大相关性特征选择实现了93:7%方法.Shafiq等人(2009)从PE文件头中提取了189个特征,使用三种不同的特征选择方法(冗余特征去除(RFR),主成分分析(PCA)和Haar小波变换(HWT))来降低特征集的维数,并训练了五个数据挖掘分类器(IBk,J48,NB,RIPPER SMO)。这种方法给出了99%的准确度和0:5%的假阳性(FP)。他们用大量的数据样本进行实验,超过一万个样本,并且所得到的分类器平均花费0: 244秒来扫描新文件。Wang等人(2009)提出了一种基于SVM的检测方法,用于检测看不见的PE恶意软件。使用静态分析,提取PE报头条目,并使用选定的特征训练SVM分类器。Wang等人(2009)提出的分类模型检测病毒和蠕虫具有相当高的准确性,但对木马和后门的检测准确性较低。Altaher等人(2012)使用DLL的API调用作为主要功能,并使用信息增益(IG)将功能总数减少到11个。他们采用了不断发展的聚类方法来建立基于规则(基于签名和非基于签名)分为静态和动态。静态分析不2https://virustotal.com/en/statistics/,(最后访问日期:2016年11月4日)●●●●254A. Kumar等人/沙特国王大学学报Fig. 1. 提交给Virustotal的文件类型百分比(2016年10月29日至11月4日)。分类器,并将其结果(99%的准确率和1%的FPR)与朴素贝叶斯,决策树和神经网络进行比较。Liao(2012)仅选择了PE报头的五个字段作为特征,并实现了一种手工制作的基于规则的分类算法。Liaos算法实现了99%的准确率和0:2%的未知恶意软件的FP。Yan等人(2013)使用PE报头的所有字段(字符和图像资源名称ID字段除外)作为数字特征。 每个特征位、DLL和系统调用信息都表示为布尔特征。两个独立的特征集(数值和布尔)被用来训练朴素贝叶斯,kNN,SVM和决策树分类器。分别采用Relief、Chi-Square、F-统计量和L1-正则化SVC四种不同的特征选择方法对决策树和布尔特征集进行了实验。Bai等人(2014)构建了一个包含197个特征的初始特征集,这些特征是从不同的PE头字段中提取的。他们使用过滤器和包装器特征选择方法将特征减少到19个分别为20。选择的特征用于训练基于树的分类器,例如决策树(DT),随机森林(RF),Bagged和Boosted决策树。这些方法的最佳结果被提及为99: 1%的准确度,0: 998的AUC,和1:4% FP。Baldangombo等人(2013年)使用了三个功能集DLL调用,API调用和PE头字段值作为单独和组合。信息增益和主成分分析用于特征选择,并实现了99:6%的检测率。Belaoued和Mazouzi(2015)提出了一种实时PE模型,ware检测系统,它是基于对存储在PE可选头字段中的信息的分析。采用卡方检验和Phi系数进行特征选择,并利用选择的特征对Rotationforest分类器进行训练和测试。Ahmadi等人(2016)提出了一种新的范式,将恶意软件变体分为不同的家族。在这项工作中,特征提取和选择方法比分类算法更重要。特征是从样本的内容和结构中提取的他们建议可以根据恶意软件行为的不同特征对特征进行分组,并根据每类加权范例进行融合。在Microsoft Malware Challenge数据集上对上述特征工程方法进行了实验,取得了99:77%的高准确率。表1介绍了以前的作品,其中只使用PE的细节头字段或存储在数据目录(DD)中的信息(DLL和API调用)或这两种功能的组合,以分类恶意软件和良性程序。关于使用PE报头信息作为特征的恶意软件检测的可用文献表明以下观察结果:1) 大多数作品只考虑PE头字段的原始值作为特征,并将它们与其他补充特征一起使用,如从数据目录中提取的DLL和API调用,或使用节头构建的特征所提出的工作使用一组特征,如熵、打包信息、可疑部分的计数等。这些值是根据标题字段值和指南文档中提供的规范计算的(Pietrek,1994)。2) 在以前的作品中使用的恶意软件样本要么由于各种原因不可用,要么数据集是公司私有的。如果样本可用,则可以避免消耗大量时间的预处理任务,例如重复删除、文件类型识别和标记。因此,拟议的工作,认真考虑了这个问题,并提供了一个标准的标记数据集和代码做进一步的研究主题。3) 以前的作品已经使用PE原始功能作为补充功能,并将它们与其他功能一起使用,这反过来又提高了性能,并处理了恶意软件的风险,这些恶意软件是精心创建的,具有良性的头部,但在主体中有恶意的有效载荷。在这项拟议的工作中,我们只进行了实验,从头部值构建的特征集。目的是了解PE头值为基础的特征集的区别限制,并研究所提出的综合特征集的性能的改善。由于PE头值的使用仅作为反恶意软件应用程序中的补充功能集有效,因此所提出的工作并不建议独立使用它。考虑到上述观察结果,我们通过将一组衍生特征与从PE样本的三个主要头(即DOS头、文件头和可选头)当使用单独的恶意软件和良性样本创建的测试数据集进行验证时,衍生特征与选定的原始特征的集成显示分类准确性提高了10%。3. 方法和功能集建议的工作分四个主要步骤进行:(1)原始样本收集,(2)预处理(包括标记),(3)特征提取和4)训练测试。图2显示了工作的所有四个步骤。在所提出的工作中,从各种来源收集原始恶意软件和良性样本(在子节4.1中解释),并单独存储以供进一步处理。必须处理原始样本以利用机器学习训练。预处理步骤中的任务是文件类型识别,重复删除和标记。标记是一项重要的任务,可以通过安装一个或多个基于签名的防病毒引擎在本地执行,也可以使用基于云的服务,其中可以并行执行多个基于防病毒引擎的扫描。我们通过基于云的服务Virustotal将每个样本标记为恶意软件和良性组。然后将标记的样本传递到特征提取步骤,其中提取PE报头字段使用原始和集成的特征集,在最后一步中训练和测试不同的机器学习算法(在第4即培训和测试)。特征生成是本文的一个重要任务,算法1给出了生成原始特征集和完整特征集的重要步骤。 所有标记的恶意软件和良性样本以及精心制作的标题A. Kumar等人/沙特国王大学学报2554←[]表1在以前的作品中使用的功能集。作品仅标题仅数据目录(DD)标题和DD算法FPR精度Ye et al. (二零零八年)没有是的没有基于OOA规则NA百分之九十三Shafiq等人(二零零九年)没有没有是的IBk,J48,NB,Ripper SMO0.50%百分之九十九Wang等人(二零零九年)是的没有没有SVMNA百分之九十八点八六Walenstein等人(二零一零年)没有没有是的NB、DT、SVM、RF、IB5.01498.90Vinod等人(2011年)没有没有是的SMO、IBk、J48、Adaboost1J48、RF百分之零点一三96.80%Altaher等人(2012年)没有是的没有NB、DT、NN与进化聚类方法百分之一百分之九十九Liao(2012)是的没有没有如果-否则-规则0.20%百分之九十九Baldangombo等人(二零一三年)没有没有是的J48、SVM、NBNA百分之九十九点六Bai等人(2014年)没有没有是的DT、NB、BoostedTree和BaggedDT百分之一点四百分之九十九点零一Ahmadi等人(2016年)没有没有是的XGBoostNA百分之九十九点七七面向对象关联(OOA);基于实例的学习器(IBk);决策树(DT)(J 48是WEKA中的DT实现);朴素贝叶斯(NB);顺序最小优化(SMO);支持向量机(SVM);随机森林(RF);神经网络(NN)。规则被输入到算法中。运行两个循环,一个用于良性样本,另一个用于恶意软件样本,以便逐个处理样本。通过调用FetchFielddsValue()过程,从PE示例文件的不同字段中提取所有值。原始特征集(即RawF)使用所有提取的值和附加的类标签进行更新。对于集成特征集(即IntF),CheckRules()程序通过传递提取的值(即RawValue ) 和 规 则 来 调 用 , 并 返 回 用 于 更 新 集 成 特 征 集 以 及FileValue和类标签的派生值。此CheckRules()过程将所有原始值作为输入,但仅针对选定字段检查规则(在第3.2.2节中解释),并返回其他字段值而不进行任何更改。ExtractFileFeatures()过程将样本作为输入其中DOS头7个,File头7个,Optional头29个。在训练过程中,e_res和e_res2字段从原始特征集中删除,因为它们是保留的(根据文档),并且没有样本值(包括恶意软件和良性样本)。因此,最终的原始特征集有53个用于训练和测试的特征。在Linux平台上,利用python模块pefile实现了PE文件的处理和字段详情见第4.1节和第4.2节。当量1显示了原始特征集的特征向量,其中RawF表示原始特征集,DH、FH和OH分别表示DOS头、文件头和可选头的头26DH1/4fDH1;· ··DH19g[37并返回其他派生值,如文件大小,与文件属性相关的文件熵(在第3.2.2节中解释)。算法1.特征集生成1:过程GENERATEFEATURESET W; X; URawF¼[001 pdf1st-31files]···3.2. 集成功能集5ð1Þ2:a←countWdW:恶意软件集3:b←countX dX:benign set4:RawF½ab]½]←05: IntF½ab]½]←06:forj2W dod从恶意软件中提取特征7:Class←08:RawValue←FetchFields值9:FileValue←ExtractFileF值10:forValue2RawValue do11:DerivedValue←CheckRules验证值;U验证dU:规则集12:RawF←UpdateRawFRawValue[Class13:IntF←UpdateIntF更新FileValue[DerivedValue[Class]14:forj2X dod从良性的中提取特征15:类←116:RawValue←FetchFields值17:FileValue←ExtractFileF值18:forValue2RawValue做19:DerivedValue←CheckRules验证值;U验证20:RawF←UpdateRawFRawValue[Class21:IntFUpdateIntF FileValueDerivedValue类22:return(RawF;IntF)3.1. 原始特征集原始功能集是通过从每个PE文件中存在的三个主要头(DOS头,文件头和可选头,包括标准和Windows特定字段)的所有字段中提取值来创建的原始要素集共有55个要素,其中19个要素集成特征集是通过组合一些选定的原始特征(在第3.2.1节中解释)和一组衍生特征(在第3.2.2节中解释)创建的。所提出的方法的目的是利用组合的原始和衍生功能的综合功能的好处。集成功能集共有68个功能,其中28个与原始功能集相同,26个布尔功能是通过从文件头和可选头窗口特定扩展特性和DLLCharacteristics的各个标志创建的,14个是派生功能(在第3.2.2节中进一步解释)。选择使用二进制特征来表示DLLCharacteristic和Characteristics的基本原理如下所示使用DLLCharacteristic和Characteristics的所有位作为单独的二进制特征将提供比数值更多的有关PE文件的信息布尔特征的处理将更加容易。我们可以看到,DLLCharacteristic和Characteristics中只有3个二进制特征在前10个特征中,因此其他字段可以忽略。表2总结了原始特征、扩展原始特征和集成特征集中存在的衍生特征特征是文件头下的重要字段之一,它包括指示文件属性的标志。Characteristics字段的Different- ent标志值存储不同的文件charac-teristic,例如IMAGE_FILE_DEBUG_STRIPPED标志,该标志告知是否使用单独的调试文件。大多数以前的工作已经使用了这个16位字段的整数值,而在所提出的工作中,所有15个标志(因为一位是为将来保留的●●●256A. Kumar等人/沙特国王大学学报4图二. 拟定系统的流程图。表2集成功能集。原始扩展衍生总计28 26 14 68use)用作特征字段的布尔特征,并编码为FH_char 0至FH_char 14。DLLCharacteristics是Optional header Windows特定字段下的一个重要字段,包含有关链接器和加载器使用的DLL对象的信息。各种信息被编码为由16位的开/关位表示的标志。 例如,此字段中的值0x0040(十六进制0x0040或十进制64)表示可以在加载时重新定位DLL早期的作品已经使用十进制值的字段作为功能,而在拟议的工作中,所有在使用的位被用作布尔功能。因此,DLLCharacteristics字段在建议的集成特征集中编码为OH_DLLchar0至OH_DLLchar10当量图2示出了用于集成特征集的特征向量,其中IntF表示集成特征集,并且Raw分别从DOS报头(DH1至DH6)、文件报头(FH1)和可 选 报 头 ( OH1 至 OH21 ) ExpandedRaw 表 示 通 过 扩 展 Char-characteristics(C1至C11)和DLLCharacteristics(DC1至DC15)中存在的标志创建的布尔特征。“导出”(Derived)表示建议的导出特征。26Raw¼ffDH1· ··DH6g [fFH1g [fOH1· ··OH21gg[373.2.1. 原始特征原始特征是直接从PE头字段中提取值以供使用的那些特征。该方法直接利用了部分头部由于DOS头,NT和Windows 3.1之后的版本不使用PE文件的DOS(磁盘操作系统)头,因此大多数字段都没有用。只有e_lfanew是重要的,它具有新PE头的第一个字节的偏移量,但拟议的工作使用了DOS头中总共19个字段中的6个字段,所有6个字段名称都列在A中。文件头是在DOS头之后提供的,它有关于整个文件的抽象信息NumberOfSections和Characteristics比其他字段更重要。要了解文件的总节数和类型,链接器使用这两个字段在所提出的工作中,仅将Characteristics字段的值用作原始特征,而在根据上述方法转换为布尔值之后使用Characteristics字段可选头有两组字段:标准字段和Windows特定字段。PE32中有8个标准字段,PE32+中有9个,这些字段类似于Linux系统的COFF头Windows特定字段总共有21个,并且具有窗口操作系统中的链接器和加载器所需的信息。除了Magic,所有其他标准字段都用作拟议工作中的原始特征,13个窗口特定字段用作原始特征,而DLLCharacteristics字段的值在转换为布尔值后使用,如上所有关拟议工作中使用的原始功能的完整列表,请参阅附录A。联系我们膨胀的原料¼ffC1· ··C1 1g [fD C1·· ·D C1 5gg[衍生品14D·· ·D14g5ð2Þ3.2.2. 导出特征衍生要素是从原始所提出的集成特征集的创建与说明,集成原始和派生的功能将提高检测精度。我们进行了严格的实验来验证我们的假设,并发现实验结果证明了假设。第3.2.1节和第3.2.2节进一步解释了用于创建拟议集成特征集的原始和衍生特征的详细信息。实验设置、结果和分析在第4节中解释。通过一组规则验证PE头的值。将该处理的结果作为特征值。根据PE标题字段的指导原则选择派生功能集。3根据指南,需要具有来自预定义值集合的值的那些字段随着3https://msdn.microsoft.com/en-us/library/windows/desktop/ms680198(v=vs.85).aspxA. Kumar等人/沙特国王大学学报257-这样,其值取决于另一字段的字段也被添加到导出特征集。在预处理期间,将根据规则检查这些字段的提取值该比较的二进制输出被视为最终值。由于这些字段的值由上述准则管理,因此篡改它们的值表示潜在的威胁。这种篡改值的行为很有可能是由恶意软件引起的派生要素不是直接从标题字段中提取的值;相反,这些值被合并为将原始值与逻辑值和记录值进行比较的结果表3图3.第三章。有效和无效TimeDateStamp值的示例规则它们可以是Boolean或Boolean。在所提出的工作中,PE文件的结构和逻辑规范是从一个广泛使用的文件解释 PE 文件的结构(Pietrek,1994年)和在线微软4例如,如果我们采用TimeDateStamp字段,则原始值将只是一个整数,表示自1969年以来的秒数,或者如果提取包使用编码,则它将采用日期格式。 我们可以在图中看到。 3,ValidFile.exe有一个有效 的日 期 , 而 InvalidFile.exe 没 有 一 个 有 效 的 日 期 , 现 在 使 用TimeDateStamp原始值,我们将不会有强大的功能,所以拟议的工作不使用这些值直接作为功能。在所提出的工作中,TimeDateStamp字段表3总结了所有考虑的推导值,其对应值为原始值。应该注意到,除了熵之外,所有其他导出的特征都具有二进制值。熵值的原因将在下面的章节中解释。熵可以被定义为信息存储效率的度量(Shannon,1948)。它与文件的打包直接相关,打包后的文件将具有高熵,从而导致信息存储的高效率(Yonts,2012)。pefile模块有一个名为get_entropy()的方法,用于计算给定截面数据的熵。这种方法的结果是以每个字节的比特数的形式,因此最大熵将是8: 0。熵具有度量压缩程度的内在属性,是检验打包器和恶意行为的一个非常可靠的特征。一些现代恶意软件或恶意打包程序试图通过在数据中插入零字节来减少熵。它避免了检测,因为许多AV软件只对高熵文件做出反应。 在所提出的工作中,熵的不同部分的PE和整个文件也被计算和处理的特征。由于恶意软件对于不同的部分具有许多不同的名称,因此只有标准的部分名称被认为是特征,并且如果部分的名称存在,则将它们各自的熵添加到特征集合,否则将“1”分配为熵值。基于熵值,总共使用三个特征(E_text、E_data、E_file)。(Markel,2015; Markel和Bilzor,2014)已经使用具有阈值7和1的区段如果相应PE文件的任何部分的熵大于7,则HighEntropy为设置为1。当熵小于1时,LowEntropy设置为1。(Markel,2015; Markel and Bilzor,2014)而我们的研究是在利用截面熵的方法上进行的。在早期的研究中,熵值没有附加特定的部分,文件熵没有使用,而在所提出的工作中,我们使用了三个特征的基础上熵。在三个中,两个熵值被附加到PE文件的两个最频繁的部分(.text,.data),并且一个使用文件熵值。文件创建年份或编译时间对于从良性程序中识别恶意软件非常有用。恶意软件4https://msdn.microsoft.com/en-us/library/windows/desktop/ms680198(v=vs. 85).aspx.原始和衍生特征。特征原始值衍生值类型值熵二进制值<$[-1,0段名字符串-Packer Info NA Boolean [0,1] FileSize文件大小FileInfo String Boolean [0,1]ImageBase布尔值[0,1]SectionAlignment Boolean [0,1]FileAlignment Boolean [0,1]SizeOfImage布尔值[0,1]SizeOfImage布尔值[0,1]通常具有非常可疑的创建年份,例如早于1980年的年份或当前年份之后的年份,而良性程序具有非常真实的创建年份。1980年被认为是一个开始的一年,因为第一个DOS操作系统在这一年推出。文件创建年份可以使用给定PE文件的文件头的TimeDateStamp字段值在建议的工作中,检查计算的文件创建年份是否在有效年份范围内,即1980可疑段名也是恶意文件的一个很好的指示器。一个标准的编译器给每个节定义良好的名称,如.data,.text,.rdata等。据观察,使用某些非标准工具构建的PE文件往往具有随机的节名。这些类型的部分被称为可疑。使用PE标题的节段字段值提取每个样本的节段名称,并将这些节段名称与一组标准节段名称(Pietrek,1994)进行比较,将匹配和不匹配节段的计数分配给两个不同的特征变量TotalSuspiciousSections和TotalNonSuspiciousSections。Perdisci等人(2008)还使用了一些可疑的部分名称作为检测打包和非打包文件的功能。Packer Info将是恶意软件和良性程序的潜在指标,因为在我们的分析中,发现近18%的恶意软件样本被打包,而良性样本只有13%良性和恶意软件都可以打包,但不同的目的良性程序被打包以保护版权和许可证密钥破坏企图,并阻止程序的逆向工程。攻击者将程序打包以绕过基于签名的检测,因为打包后的文件改变了程序的字节结构,从而很容易超越签名。在建议的实验中,打包器是一个布尔特征,如果文件没有打包,则为0,如果使用任何打包器打包,则为1。使用PEiD6签名数据库和yara7(用于签名匹配的Python模块)收集每个样本的包装信息。5http://windows.microsoft.com/en-IN/windows/history#T1=era0[2016年5月27日访问]。6http://www.aldeid.com/wiki/PEiD[2016年5月27日访问]。7http://plusvic.github.io/yara/[2016年5月27日访问]258A. Kumar等人/沙特国王大学学报文件大小也被用作一个功能。我们最初假设恶意软件文件和良性程序文件大小将有很大的差异。恶意软件作者试图保持文件大小最小化,这有助于他们通过网络将其隐藏在另一个程序中。由于避免图形用户界面(GUI),恶意软件样本的大小较小。良性程序没有这种大小要求,并根据需要具有真正的大小。所有库和外部资源都根据需要有效地运行程序。恶意软件编写者从恶意程序中截断未使用的函数和其他外部资源,在程序中留下选择性的API函数和DLL。在复杂的工作中,文件大小没有被认为是一个特征,但在拟议的工作中,我们已经将其作为一个整数类型的特征,该类型将具有以字节为单位的文件大小。FileInfo有一组字符串,其中包含有关PE 文件的元数据,如FileVersion、ProductVersion、XML、CompanyName等。良性程序包含丰富的元数据,而恶意软件作者避免将元数据。在所提出的工作中,试图提取所有样本的元数据信息,但发现许多恶意软件样本没有FileInfo字段或该字段的其他子部分。关于元数据的所有提取字符串的集合很大,因此将这些字符串视为特征是不可行的,而不是将FileInfo特征视为布尔值,如果样本具有FileInfo元数据,则分配1,否则分配0。可以考虑一个更全面的元数据信息功能集,但建议的工作仅限于FileInfo元数据的存在和不存在,除了它的值。ImageBase是可选标头中的字段,其具有前当加载到内存中时,图像的第一个字节的地址(Pietrek,1994)。应用于此字段的条件是它必须是64 k(641024)的倍数。DLL的默认值为0x10000000(十进制为268435456),Window CE exe为0x00010000 ( 十 进 制 为 65536 ) , 其 他 Windows 操 作 系 统 ( 如Windows XP)为0x00400000(十进制为4194304)。为了使这一领域更好地发挥作用,对样本进行了初步研究,发现94:55%的恶意软件样本已经指定了默认值,而只有77:84%的良性样本已经指定了默认值,并且来自两个类的所有值都遵循64 K的倍数的条件ImageBase字段的值非常特定于文件类型(DLL,exe等)因此,恶意软件作者不会经常篡改此字段,这从上述百分比中可以看出。与工头-根据所述结果,决定将该字段视为布尔型,并且针对默认值和64的倍数检查值。SectionAlignment是可选头中的另一个字段,它是节的对齐方式(以字节为单位),决定节何时加载到内存中。根据Microsoft规范(Pietrek,1994),它必须大于或等于FileAlignment,默认值为体系结构的页面大小。在拟议的工作中,这个字段被视为布尔型,并与规格进行比较。如果提取的值符合规范,则该字段的值为1,否则将被分配为0。可选标题的FileAlignment字段的值是用于对齐图像文件中各节的原始数据的因子(以字节为单位)Microsoft规范(Pietrek,1994)规定此值应为2的幂(介于512和65536之间)。默认值为512,如果SectionAlignment小于体系结构建议的工作遵循给定的规范,并认为这是布尔特征,如果提取的值匹配规范,则值为1,否则为0。SizeOfImage给出了图像的大小(以字节为单位),包括所有的头部,因为图像被加载到内存中(Pietrek,1994)。它必须是SectionAlignment的倍数。此字段对于隐藏嵌入的代码很重要为了验证此假设,检查指定条件中的恶意软件和良性样本。发现几乎所有良性样品均符合规格,但约4%(3:87%)恶意软件样本不符合规范。为了有利于分类过程,因为它占了很大的比例,这个字段也被认为是布尔型的,如果它与规范匹配,则分配值1,否则为0。SizeOfHeaders 的 值 等 于 MS-DOS stub 、 PE header 和 Sectionheader的组合大小,并四舍五入为FileAlignment的倍数。该规范也针对恶意软件和良性样本进行了验证。在良性样本中,没有遵循规范,而78%的恶意软件样本遵循了规范不遵循规范。在建议的工作中,这个字段被认为是布尔型的,如果提取的值遵循规范,则分配1,否则分配0。将数值转换为布尔值的基本原理是将语义合并到特征表示中。例如,特性parametationTime保存属于32位类型的TimeDateStamp。在所提出的工作中,而不是表示一个数值,最早的文件创建日期的语义被用作一个标记,以将值转换为布尔表示。虽然这看起来像丢失了原始字段中的一些内容,但它提供了正确识别合法和篡改值的优点。此外,二进制表示将导致更简单的处理并构建鲁棒的分类器。这种方法的核心思想是利用该字段相对于恶意软件识别上下文的值。所有其他衍生特征采用类似的逻辑。在第4.3节(结果分析)中
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功