CN108710802A - 一种特征优选的Android勒索软件检测方法 - Google Patents
一种特征优选的Android勒索软件检测方法 Download PDFInfo
- Publication number
- CN108710802A CN108710802A CN201810585511.2A CN201810585511A CN108710802A CN 108710802 A CN108710802 A CN 108710802A CN 201810585511 A CN201810585511 A CN 201810585511A CN 108710802 A CN108710802 A CN 108710802A
- Authority
- CN
- China
- Prior art keywords
- feature
- detection
- software
- sample
- initial
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000001514 detection method Methods 0.000 claims abstract description 140
- 238000012549 training Methods 0.000 claims abstract description 53
- 239000000284 extract Substances 0.000 claims abstract description 18
- 238000012360 testing method Methods 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 17
- 238000012706 support-vector machine Methods 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 10
- 238000010801 machine learning Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 6
- 230000003068 static effect Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 5
- 239000000203 mixture Substances 0.000 claims description 2
- 235000013399 edible fruits Nutrition 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种特征优选的Android勒索软件检测方法,根据初始特征集合,提取训练样本的特征,并形成初始样本特征库;计算初始样本特征库中每种特征的测量值,挑出测量值超过检测用特征阈值的特征,组成检测用特征集合;利用检测用特征集合训练勒索软件的分类器,得到检测用分类器。本发明解决了特征集合中特征较多、检测速度较慢和检测精度较低等技术问题。
Description
技术领域
本发明涉及一种勒索软件检测方法,特别是一种特征优选的Android勒索软件检测方法。
背景技术
随着智能手机的普及,智能手机遭受到的安全威胁也越来越多。手机勒索软件是指所有能够在智能手机或者平板计算机上执行恶意操作的应用程序,这种勒索软件通过锁定用户设备或加密数据,使得用户无法正常使用,并以此胁迫用户支付解锁或解密费用的恶意软件,给用户移动设备带来了巨大安全威胁。Android平台上勒索软件问题逐渐成为了一个必须关注的问题。基于机器学习检测勒索软件的检测方法已有很多,但是常见的Android勒索软件检测方法在特征选择还存在特征集合的规模较大、检测速度慢、分类精度不高等问题。因此,本发明提出一种基于特征优选的Android勒索软件的检测方法。
发明内容
本发明所要解决的技术问题是一种特征优选的Android勒索软件检测方法,其解决了特征集合中特征较多、检测速度较慢和检测精度较低等技术问题。
为解决上述技术问题,本发明所采用的技术方案是:一种特征优选的Android勒索软件检测方法,其特征在于包含以下步骤:
步骤一:样本特征提取操作:针对于训练用样本集合中的各个训练样本,分别提取出各个训练样本的permission特征、intent特征、api特征和package name特征,由上述提取出的特征组合生成初始样本特征库;
步骤二:样本特征选择操作:利用信息增益的方法对提取出的初始样本特征库进行处理,计算初始样本特征库中每个特征的测量值,并按测量值从大到小排序,选择重要的特征作为分类特征组成的检测用特征集合;
步骤三:分类器生成操作:选取出的检测用特征集合作为向量机接口的输入参数,调用python中支持向量机接口,得到检测用分类器;
步骤四:待测软件检测操作:读取待测软件并提取待测软件的特征,作为检测用分类器的输入,利用检测用分类器对待测软件进行检测,根据检测用分类器模型输出的布尔值,判断测试样本是勒索软件还是良性软件。
2、按照权利要求1所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤一具体为:将训练样本apk利用开源的Android静态分析工具androguard的androlyze.py对训练样本集合中的apk文件进行处理;通过命令反编译训练样本中classes.dex文件,从训练样本集合中提取出api特征和package name特征,并且通过命令反编译训练样本中manifest.xml的文件,从训练样本中提取出permission特征和intent特征;然后将对应api特征、package name特征、api特征和Intent特征分别写入初始样本特征库AnalysisFile中。
3、按照权利要求2所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤一中,输入为合格的训练集合中的样本apk,其具体过程为
1.1初始动作;
1.2初始化初始样本特征库AnalysisFile,初值为空;
1.3读取勒索训练样本集合Ranset和良性训练样本集合中的样本apk;
1.4利用android静态分析工具androguard对输入的apk文件进行反编译处理;
1.5获得androguard反编译后生成class.dex文件和manifest.xml文件;
1.6判断待处理的文件是否是class.dex文件,如果是class.dex文件,则转到1.7,如果不是class.dex文件,则转到1.8;
1.7读取class.dex字节码文件,并利用androgexf.py对字节码文件进行分析并标记;
1.8读取manifest.xml文件,并利用androapkinfo.py对manifest.xml文件进行分析并标记;
1.9从class.dex字节码文件中提取api特征和package name特征;
1.10从manifest.xml文件中提取permission特征和intent特征。
4、按照权利要求3所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤一中,输出为初始样本特征库AnalysisFile,其具体过程为
2.1将所提取的特征写入初始样本特征库AnalysisFile中;
2.2判断class.dex字节码文件和manifest.xml文件是否均被标记和处理,如果均被标记和处理,则转到2.4,如果未完全被标记和处理,则转到2.3;
2.3读取未被标记的的class.dex文件和manifest.xml文件;
2.4判断该样本是否来自勒索样本集合Ranset,如果来自勒索样本集合Ranset,则转到2.5,如果不是来自勒索样本集合Ranset,则转到步骤2.6;
2.5将初始样本特征库第一列数值设置为1;
2.6将初始样本特征库第一列数值设置为0;
2.7判断勒索样本集合Ranset和良性样本集合Benset遍历是否完成,如果遍历没有完成,则转到步骤1.1,如果遍历完成,则转到步骤2.8;
2.8该部分操作结束。
5、按照权利要求1所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤二具体为
首先计算出每种特征在勒索软件中的总数值和良性软件中的总数值,然后通过初始样本特征库AnalysisFile第一列的数值来判断该特征是勒索软件的特征还是良性软件的特征,对初始样本特征库AnalysisFile进行处理;计算统计出每种特征在勒索软件和良性软件中所占的比例;利用信息增益算法对训练样本的初始样本特征库AnalysisFile进行相应的处理,得到每个特征的信息增益的测量值,并按信息增益测量值的大小进行排序,得到检测用特征集合FeatureSet。
6、按照权利要求5所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述信息增益算法的公式为:
其中用Xi表示训练样本中的特征,i表示训练样本中的第i个特征,Cm主要分为两大类,m的取值为0表示为良性软件,m的取值为1表示为勒索软件,P(Xi)表示Xi特征出现的概率,则表示特征Xi没有出现的概率,条件概率P(Cm|Xi)表示在特征Xi出现的情况下属于类别Cm的概率。
7、按照权利要求5所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤二中输入为训练样本集合的初始样本特征库AnalysisFile,其具体过程为
3.1初始动作;
3.2读取初始样本分析文件AnalysisFile;
3.3调用计数函数,计算初始样本特征库AnalysisFile中勒索样本数量NumtotalR;
3.4调用计数函数,计算初始样本特征库AnalysisFile中良性样本数量NumtotalB;
3.5初始特征集合FeatureArray,初值为空;
3.6判断初始样本特征库AnalysisFile第一列数值是否为1,如果第一列数值为1,则转到3.7,如果第一列数值不为1,则转到3.8;
3.7计算初始样本特征库AnalysisFile中,每种特征在勒索软件中的数量numR[feature];
3.8计算初始样本特征库AnalysisFile中,每种特征在良性软件中的数量numB[feature];
3.9计算每种特征在勒索样本中的比例numR[feature]/NumTotalR;
3.10计算每种特征在良性样本中的比例numB[feature]/NumTotalB。
8、按照权利要求5所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤二中输出为检测用特征集合FeatureSet,其具体过程为
4.1将每种特征在勒索样本中占的比例写入特征矩阵FeatureArray中;
4.2将每种特征在良性样本中占的比例写入特征矩阵FeatureArray中;
4.3利用信息增益算法,计算每种特征的信息增益测量值Ig[feature];
4.4判断检测用特征矩阵FeatureArray中的信息增益测量值是否超过检测用阈值,如果超过检测用特征阈值,则转入4.6,如果没有超过检测用特征阈值,则转入4.5;
4.5丢弃该特征,不做处理,结束;
4.6将该特征写入初始样本特征库AnalysisFile中;
4.7判断检测用特征矩阵FeatureArray遍历是否完成,如果遍历完成,则转入步骤4.8,如果遍历没有完成,则转入4.4;
4.8输出并生成检测用特征集合FeatureSet;
4.9该部分操作结束。
9、按照权利要求1所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤三具体为
从经过信息增益处理后的检测用特征集合FeatureSet,进行再次处理,从检测用特征集合FeatureSet中挑选检测用特征集合子集FeatureSubset,并将该检测用特征集合子集FeatureSubset作为机器学习算法中支持向量机算法的输入,得到检测用分类器;
上述过程输入为检测用特征集合FeatureSet,输出为检测用分类器模型;具体的流程如下:
5.0初始动作;
5.1初始化检测用特征集合子集FeatureSubset,并设置初值为空;
5.2读取检测用特征集合FeatureSet;
5.3是判断检测用特征集合子集是否小于检测用特征集合阈值,如果达到检测用特征集合阈值,则转入5.6,如果没有达到检测用特征集合阈值,则转入5.4;
5.4在检测用特征集合FeatureSet中选择特征添加到检测用特征集合子集FeatureSubset中;
5.5将该特征从检测用特征集合FeatureSet中删除;
5.6生成检测用特征子集FeatureSubset;
5.7将检测用特征集合子集FeatureSubset作为支持向量机接口Svm()参数,调用Python机器学习库mlpy中支持向量机接口Svm(),;
5.8得到检测用分类器模型mysvm;
5.9该部分操作结束。
10、按照权利要求1所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤四具体为
提取待测软件的特征集合TestFeature,然后输入检测用分类器模型,根据检测用分类器模型的输出布尔值的结果,判定测试样本是Android勒索软件或者是Android良性软件;
上述过程输入为待检测软件的apk文件,输出为待测样本的类型;具体的流程如下:
6.0初始动作;
6.1读取待测软件的apk文件;
6.2根据检测用特征集合FeatureSet中所列的特征,提取待测软件apk相应特征TestFeature;
6.3将提取出的TestFeature写入待测特征集合TestFeatureSet;
6.4调用检测用分类器模型mysvm,将待测特征集合TestFeatureSet作为参数,利用mysvm.predict()接口,从而完成待测软件apk分类操作;
6.5根据检测用分类器输出布尔值的结果是否为1,如果输出结果为1,则转入6.6,如果输出结果不为1,则转入6.7;
6.6输出该待测软件是勒索软件的信息;
6.7输出该待测软件是良性软件的信息;
6.8该部分操作结束。
本发明与现有技术相比,具有以下优点和效果:本发明提供的Android勒索软件特征选择操作,根据信息增益特征选择技术,过滤了相关冗余的特征,优选出特征集合中高效的特征,可有效地减少特征集合中特征的数量,进而减少检测用分类器训练与识别的时间,检测速度较快;本发明的检测过程,采用了经过优选的与勒索软件直接相关、区分度较高的特征集合训练检测用分类器,因此对勒索软件的分类、识别精度较高。
附图说明
图1是本发明的一种特征优选的Android勒索软件检测方法的流程图。
图2是本发明的步骤一的流程图。
图3是本发明的步骤二的流程图。
图4是本发明的步骤三的流程图。
图5是本发明的步骤四的流程图。
具体实施方式
下面结合附图并通过实施例对本发明作进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
如图1所示,本发明的一种基于特征优选的Android勒索软件检测方法,主要操作过程包括样本特征提取操作、样本特征选择操作、分类器生成操作和待测软件检测操作等四个部分。
样本特征提取操作:针对于训练用样本集合中的各个训练样本,分别提取出各个训练样本的permission特征、intent特征、api特征和package name特征,由上述提取出的特征组合生成初始样本特征库。
样本特征选择操作:利用信息增益的方法对提取出的初始样本特征库进行处理,计算初始样本特征库中每个特征的测量值,并按测量值从大到小排序,选择重要的特征作为分类特征组成的检测用特征集合。
生成分类器操作:选取出的检测用特征集合作为向量机接口的输入参数,调用python中支持向量机接口,得到检测用分类器。
待测软件检测操作:读取待测软件并提取待测软件的特征,作为检测用分类器的输入,利用检测用分类器对待测软件进行检测,根据检测用分类器模型输出的布尔值,判断测试样本是勒索软件还是良性软件。
如图2所示,为特征提取操作流程图。该操作主要是将训练样本apk利用开源的Android静态分析工具androguard的androlyze.py对训练样本集合中的apk文件进行处理。通过命令反编译训练样本中classes.dex文件,从训练样本集合中提取出api特征和package name特征,并且通过命令反编译训练样本中manifest.xml的文件,从训练样本中提取出permission特征和intent特征。然后将对应api特征、package name特征、api特征和Intent特征分别写入初始样本特征库AnalysisFile中。
本过程的输入为合格的训练集合中的样本apk,输出为初始样本特征库AnalysisFile。具体的流程如下:步骤20是初始动作;步骤21初始化初始样本特征库AnalysisFile,初值为空;步骤22读取勒索训练样本集合Ranset和良性训练样本集合中的样本apk;步骤23利用android静态分析工具androguard对输入的apk文件进行反编译处理;步骤23获得androguard反编译后生成class.dex文件和manifest.xml文件;步骤25判断待处理的文件是否是class.dex文件,如果是class.dex文件,则转到步骤26,如果不是class.dex文件,则转到步骤27;步骤26读取class.dex字节码文件,并利用androgexf.py对字节码文件进行分析并标记;步骤27读取manifest.xml文件,并利用androapkinfo.py对manifest.xml文件进行分析并标记;步骤28从class.dex字节码文件中提取api特征和package name特征;步骤29从manifest.xml文件中提起permission特征和intent特征;步骤2A将所提取的特征写入初始样本特征库AnalysisFile中;步骤2B判断class.dex字节码文件和manifest.xml文件是否均被标记和处理,如果均被标记和处理,则转到步骤2D,如果未完全被标记和处理,则转到步骤2C;步骤2C读取未被标记的的class.dex文件和manifest.xml文件;步骤2D判断该样本是否来自勒索样本集合Ranset,如果来自勒索样本集合Ranset,则转到步骤2E,如果不是来自勒索样本集合Ranset,则转到步骤2F;步骤2E将初始样本特征库第一列数值设置为1;步骤2F将初始样本特征库第一列数值设置为0;步骤2G判断勒索样本集合Ranset和良性样本集合Benset遍历完成,如果遍历没有完成,则转到步骤21,如果遍历完成,则转到步骤2H;步骤2H该部分操作结束。
如图3所示,为特征选择操作流程图。该操作主要是将提取出来的初始样本特征库AnalysisFile进行处理。首先计算出每种特征在勒索软件中的总数值和良性软件中的总数值,然后通过初始样本特征库AnalysisFile第一列的数值来判断该特征是勒索软件的特征还是良性软件的特征,通过对初始样本特征库AnalysisFile进行处理。计算统计出每种特征在勒索软件和良性软件中所占的比例。最后,利用信息增益算法对训练样本的初始样本特征库AnalysisFile进行相应的处理,得到每个特征的信息增益的测量值,并按信息增益测量值的大小进行排序,得到检测用特征集合FeatureSet。
信息增益算法的公式为:
其中用Xi表示训练样本中的特征,i表示训练样本中的第i个特征,Cm主要分为两大类,m的取值为0表示为良性软件,m的取值为1表示为勒索软件,P(Xi)表示Xi特征出现的概率,则表示特征Xi没有出现的概率,条件概率P(Cm|Xi)表示在特征Xi出现的情况下属于类别Cm的概率。
本部分操作的输入为训练样本集合的初始样本特征库AnalysisFile,输出为检测用特征集合FeatureSet。具体的流程如下:步骤30初始动作,步骤31读取初始样本分析文件AnalysisFile;步骤32调用计数函数,计算初始样本特征库AnalysisFile中勒索样本数量NumtotalR;步骤33调用计数函数,计算初始样本特征库AnalysisFile中良性样本数量NumtotalB;步骤34初始特征集合FeatureArray,初值为空;步骤35判断初始样本特征库AnalysisFile第一列数值是否为1,如果第一列数值为1,则转到步骤36,如果第一列数值不为1,则转到步骤37;步骤36计算初始样本特征库AnalysisFile中,每种特征在勒索软件中的数量numR[feature];步骤37计算初始样本特征库AnalysisFile中,每种特征在良性软件中的数量numB[feature];步骤38计算每种特征在勒索样本中的比例numR[feature]/NumTotalR;步骤39计算每种特征在良性样本中的比例numB[feature]/NumTotalB;步骤3A将每种特征在勒索样本中占的比例写入特征矩阵FeatureArray中;步骤3B将每种特征在良性样本中占的比例写入特征矩阵FeatureArray中;步骤3C利用信息增益算法,计算每种特征的信息增益测量值Ig[feature];步骤3D判断检测用特征矩阵FeatureArray中的信息增益测量值是否超过检测用阈值(例如,将该检测用特征阈值设置为0.05—0.25之间),如果超过检测用特征阈值,则转入步骤3F,如果没有超过检测用特征阈值,则转入步骤3E;步骤3E丢弃该特征,不做处理,结束;步骤3F将该特征写入初始样本特征库AnalysisFile中;步骤3G判断检测用特征矩阵FeatureArray遍历是否完成,如果遍历完成,则转入步骤3H,如果遍历没有完成,则转入步骤3D;步骤3H输出并生成检测用特征集合FeatureSet;步骤3I该部分操作结束。
如图4所示,为生成分类器操作流程图。该操作主要是从经过信息增益处理后的检测用特征集合FeatureSet,进行再次处理,从检测用特征集合FeatureSet中挑选检测用特征集合子集FeatureSubset,并将该检测用特征集合子集FeatureSubset作为机器学习算法中支持向量机算法的输入,得到检测用分类器。
本过程的输入为检测用特征集合FeatureSet,输出为检测用分类器模型。具体的流程如下:步骤40是初始动作,步骤41初始化检测用特征集合子集FeatureSubset,并设置初值为空;步骤42读取检测用特征集合FeatureSet;步骤43是判断检测用特征集合子集是否小于检测用特征集合阈值(例如,将该检测用特征阈值设置为0.55—0.85之间),如果达到检测用特征集合阈值,则转入步骤46,如果没有达到检测用特征集合阈值,则转入步骤44;步骤44在检测用特征集合FeatureSet中选择特征添加到检测用特征集合子集FeatureSubset中;步骤45将该特征从检测用特征集合FeatureSet中删除;步骤46生成检测用特征子集FeatureSubset;步骤47将检测用特征集合子集FeatureSubset作为支持向量机接口Svm()参数,调用Python机器学习库mlpy中支持向量机接口Svm(),;步骤48得到检测用分类器模型mysvm;步骤49该部分操作结束。
如图5所示,为待测软件检测操作流程图。该操作主要是提取待测软件的特征集合TestFeature,然后输入检测用分类器模型,根据检测用分类器模型的输出布尔值的结果,判定测试样本是Android勒索软件或者是Android良性软件。
本过程的输入为待检测软件的apk文件,输出为待测样本的类型。具体的流程如下:步骤50是初始动作;步骤51是读取待测软件的apk文件;步骤52是根据检测用特征集合FeatureSet中所列的特征,提取待测软件apk相应特征TestFeature;步骤53是将提取出的TestFeature写入待测特征集合TestFeatureSet;步骤54是调用检测用分类器模型mysvm,将待测特征集合TestFeatureSet作为参数,利用mysvm.predict()接口,从而完成待测软件apk分类操作;步骤55是根据检测用分类器输出布尔值的结果是否为1,如果输出结果为1,则转入步骤56,如果输出结果不为1,则转入步骤57;步骤56输出该待测软件是勒索软件的信息;步骤57输出该待测软件是良性软件的信息;步骤58该部分操作结束。
本发明提供一种基于特征优选的Android勒索软件检测方法。根据初始特征集合,提取训练样本的特征,并形成初始样本特征库;计算初始样本特征库中每种特征的测量值,挑出测量值超过检测用特征阈值的特征,组成检测用特征集合。利用检测用特征集合训练勒索软件的分类器,得到检测用分类器。本发明提供的Android勒索软件特征选择操作,根据信息增益特征选择技术,过滤了相关冗余的特征,优选出特征集合中高效的特征,可有效地减少特征集合中特征的数量,进而减少检测用分类器训练与识别的时间,检测速度较快;本发明的检测过程,采用了经过优选的与勒索软件直接相关、区分度较高的特征集合训练检测用分类器,因此对勒索软件的分类、识别精度较高。
本说明书中所描述的以上内容仅仅是对本发明所作的举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种修改或补充或采用类似的方式替代,只要不偏离本发明说明书的内容或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
Claims (10)
1.一种特征优选的Android勒索软件检测方法,其特征在于包含以下步骤:
步骤一:样本特征提取操作:针对于训练用样本集合中的各个训练样本,分别提取出各个训练样本的permission特征、intent特征、api特征和package name特征,由上述提取出的特征组合生成初始样本特征库;
步骤二:样本特征选择操作:利用信息增益的方法对提取出的初始样本特征库进行处理,计算初始样本特征库中每个特征的测量值,并按测量值从大到小排序,选择重要的特征作为分类特征组成的检测用特征集合;
步骤三:分类器生成操作:选取出的检测用特征集合作为向量机接口的输入参数,调用python中支持向量机接口,得到检测用分类器;
步骤四:待测软件检测操作:读取待测软件并提取待测软件的特征,作为检测用分类器的输入,利用检测用分类器对待测软件进行检测,根据检测用分类器模型输出的布尔值,判断测试样本是勒索软件还是良性软件。
2.按照权利要求1所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤一具体为:将训练样本apk利用开源的Android静态分析工具androguard的androlyze.py对训练样本集合中的apk文件进行处理;通过命令反编译训练样本中classes.dex文件,从训练样本集合中提取出api特征和package name特征,并且通过命令反编译训练样本中manifest.xml的文件,从训练样本中提取出permission特征和intent特征;然后将对应api特征、package name特征、api特征和Intent特征分别写入初始样本特征库AnalysisFile中。
3.按照权利要求2所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤一中,输入为合格的训练集合中的样本apk,其具体过程为
1.1初始动作;
1.2初始化初始样本特征库AnalysisFile,初值为空;
1.3读取勒索训练样本集合Ranset和良性训练样本集合中的样本apk;
1.4利用android静态分析工具androguard对输入的apk文件进行反编译处理;
1.5获得androguard反编译后生成class.dex文件和manifest.xml文件;
1.6判断待处理的文件是否是class.dex文件,如果是class.dex文件,则转到1.7,如果不是class.dex文件,则转到1.8;
1.7读取class.dex字节码文件,并利用androgexf.py对字节码文件进行分析并标记;
1.8读取manifest.xml文件,并利用androapkinfo.py对manifest.xml文件进行分析并标记;
1.9从class.dex字节码文件中提取api特征和package name特征;
1.10从manifest.xml文件中提取permission特征和intent特征。
4.按照权利要求3所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤一中,输出为初始样本特征库AnalysisFile,其具体过程为
2.1将所提取的特征写入初始样本特征库AnalysisFile中;
2.2判断class.dex字节码文件和manifest.xml文件是否均被标记和处理,如果均被标记和处理,则转到2.4,如果未完全被标记和处理,则转到2.3;
2.3读取未被标记的的class.dex文件和manifest.xml文件;
2.4判断该样本是否来自勒索样本集合Ranset,如果来自勒索样本集合Ranset,则转到2.5,如果不是来自勒索样本集合Ranset,则转到步骤2.6;
2.5将初始样本特征库第一列数值设置为1;
2.6将初始样本特征库第一列数值设置为0;
2.7判断勒索样本集合Ranset和良性样本集合Benset遍历是否完成,如果遍历没有完成,则转到步骤1.1,如果遍历完成,则转到步骤2.8;
2.8该部分操作结束。
5.按照权利要求1所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤二具体为
首先计算出每种特征在勒索软件中的总数值和良性软件中的总数值,然后通过初始样本特征库AnalysisFile第一列的数值来判断该特征是勒索软件的特征还是良性软件的特征,对初始样本特征库AnalysisFile进行处理;计算统计出每种特征在勒索软件和良性软件中所占的比例;利用信息增益算法对训练样本的初始样本特征库AnalysisFile进行相应的处理,得到每个特征的信息增益的测量值,并按信息增益测量值的大小进行排序,得到检测用特征集合FeatureSet。
6.按照权利要求5所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述信息增益算法的公式为:
其中用Xi表示训练样本中的特征,i表示训练样本中的第i个特征,Cm主要分为两大类,m的取值为0表示为良性软件,m的取值为1表示为勒索软件,P(Xi)表示Xi特征出现的概率,则表示特征Xi没有出现的概率,条件概率P(Cm|Xi)表示在特征Xi出现的情况下属于类别Cm的概率。
7.按照权利要求5所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤二中输入为训练样本集合的初始样本特征库AnalysisFile,其具体过程为
3.1初始动作;
3.2读取初始样本分析文件AnalysisFile;
3.3调用计数函数,计算初始样本特征库AnalysisFile中勒索样本数量NumtotalR;
3.4调用计数函数,计算初始样本特征库AnalysisFile中良性样本数量NumtotalB;
3.5初始特征集合FeatureArray,初值为空;
3.6判断初始样本特征库AnalysisFile第一列数值是否为1,如果第一列数值为1,则转到3.7,如果第一列数值不为1,则转到3.8;
3.7计算初始样本特征库AnalysisFile中,每种特征在勒索软件中的数量numR[feature];
3.8计算初始样本特征库AnalysisFile中,每种特征在良性软件中的数量numB[feature];
3.9计算每种特征在勒索样本中的比例numR[feature]/NumTotalR;
3.10计算每种特征在良性样本中的比例numB[feature]/NumTotalB。
8.按照权利要求5所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤二中输出为检测用特征集合FeatureSet,其具体过程为
4.1将每种特征在勒索样本中占的比例写入特征矩阵FeatureArray中;
4.2将每种特征在良性样本中占的比例写入特征矩阵FeatureArray中;
4.3利用信息增益算法,计算每种特征的信息增益测量值Ig[feature];
4.4判断检测用特征矩阵FeatureArray中的信息增益测量值是否超过检测用阈值,如果超过检测用特征阈值,则转入4.6,如果没有超过检测用特征阈值,则转入4.5;
4.5丢弃该特征,不做处理,结束;
4.6将该特征写入初始样本特征库AnalysisFile中;
4.7判断检测用特征矩阵FeatureArray遍历是否完成,如果遍历完成,则转入步骤4.8,如果遍历没有完成,则转入4.4;
4.8输出并生成检测用特征集合FeatureSet;
4.9该部分操作结束。
9.按照权利要求1所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤三具体为
从经过信息增益处理后的检测用特征集合FeatureSet,进行再次处理,从检测用特征集合FeatureSet中挑选检测用特征集合子集FeatureSubset,并将该检测用特征集合子集FeatureSubset作为机器学习算法中支持向量机算法的输入,得到检测用分类器;
上述过程输入为检测用特征集合FeatureSet,输出为检测用分类器模型;具体的流程如下:
5.0初始动作;
5.1初始化检测用特征集合子集FeatureSubset,并设置初值为空;
5.2读取检测用特征集合FeatureSet;
5.3是判断检测用特征集合子集是否小于检测用特征集合阈值,如果达到检测用特征集合阈值,则转入5.6,如果没有达到检测用特征集合阈值,则转入5.4;
5.4在检测用特征集合FeatureSet中选择特征添加到检测用特征集合子集FeatureSubset中;
5.5将该特征从检测用特征集合FeatureSet中删除;
5.6生成检测用特征子集FeatureSubset;
5.7将检测用特征集合子集FeatureSubset作为支持向量机接口Svm()参数,调用Python机器学习库mlpy中支持向量机接口Svm(),;
5.8得到检测用分类器模型mysvm;
5.9该部分操作结束。
10.按照权利要求1所述的一种特征优选的Android勒索软件检测方法,其特征在于:所述步骤四具体为
提取待测软件的特征集合TestFeature,然后输入检测用分类器模型,根据检测用分类器模型的输出布尔值的结果,判定测试样本是Android勒索软件或者是Android良性软件;
上述过程输入为待检测软件的apk文件,输出为待测样本的类型;具体的流程如下:
6.0初始动作;
6.1读取待测软件的apk文件;
6.2根据检测用特征集合FeatureSet中所列的特征,提取待测软件apk相应特征TestFeature;
6.3将提取出的TestFeature写入待测特征集合TestFeatureSet;
6.4调用检测用分类器模型mysvm,将待测特征集合TestFeatureSet作为参数,利用mysvm.predict()接口,从而完成待测软件apk分类操作;
6.5根据检测用分类器输出布尔值的结果是否为1,如果输出结果为1,则转入6.6,如果输出结果不为1,则转入6.7;
6.6输出该待测软件是勒索软件的信息;
6.7输出该待测软件是良性软件的信息;
6.8该部分操作结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810585511.2A CN108710802A (zh) | 2018-06-08 | 2018-06-08 | 一种特征优选的Android勒索软件检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810585511.2A CN108710802A (zh) | 2018-06-08 | 2018-06-08 | 一种特征优选的Android勒索软件检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108710802A true CN108710802A (zh) | 2018-10-26 |
Family
ID=63872466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810585511.2A Pending CN108710802A (zh) | 2018-06-08 | 2018-06-08 | 一种特征优选的Android勒索软件检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108710802A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI682303B (zh) * | 2018-12-11 | 2020-01-11 | 中華電信股份有限公司 | 電腦系統及其勒索軟體判別方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740424A (zh) * | 2016-01-29 | 2016-07-06 | 湖南大学 | 一种基于 Spark 平台的高效率文本分类方法 |
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和*** |
CN107491531A (zh) * | 2017-08-18 | 2017-12-19 | 华南师范大学 | 基于集成学习框架的中文网络评论情感分类方法 |
CN107577942A (zh) * | 2017-08-22 | 2018-01-12 | 中国民航大学 | 一种用于Android恶意软件检测的混合特征筛选方法 |
-
2018
- 2018-06-08 CN CN201810585511.2A patent/CN108710802A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740424A (zh) * | 2016-01-29 | 2016-07-06 | 湖南大学 | 一种基于 Spark 平台的高效率文本分类方法 |
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和*** |
CN107491531A (zh) * | 2017-08-18 | 2017-12-19 | 华南师范大学 | 基于集成学习框架的中文网络评论情感分类方法 |
CN107577942A (zh) * | 2017-08-22 | 2018-01-12 | 中国民航大学 | 一种用于Android恶意软件检测的混合特征筛选方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI682303B (zh) * | 2018-12-11 | 2020-01-11 | 中華電信股份有限公司 | 電腦系統及其勒索軟體判別方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Barbedo et al. | Identifying multiple plant diseases using digital image processing | |
CN107609399A (zh) | 基于nin神经网络的恶意代码变种检测方法 | |
CN104331436B (zh) | 基于家族基因码的恶意代码快速归类方法 | |
CN106096411B (zh) | 一种基于字节码图像聚类的Android恶意代码家族分类方法 | |
CN104216349B (zh) | 利用制造设备的传感器数据的成品率分析***及方法 | |
CN110704840A (zh) | 一种基于卷积神经网络cnn的恶意软件检测方法 | |
CN109359439A (zh) | 软件检测方法、装置、设备及存储介质 | |
CN107315954A (zh) | 一种文件类型识别方法及服务器 | |
CN103106365B (zh) | 一种移动终端上的恶意应用软件的检测方法 | |
CN106709349B (zh) | 一种基于多维度行为特征的恶意代码分类方法 | |
CN109101469A (zh) | 从数字化文档提取可搜索的信息 | |
CN109598124A (zh) | 一种webshell检测方法以及装置 | |
CN106530200A (zh) | 一种基于深度学习模型的隐写图像检测方法及*** | |
Rad et al. | Classification of rice varieties using optimal color and texture features and BP neural networks | |
CN111915437A (zh) | 基于rnn的反洗钱模型的训练方法、装置、设备及介质 | |
CN110414277B (zh) | 基于多特征参数的门级硬件木马检测方法 | |
CN108022146A (zh) | 征信数据的特征项处理方法、装置、计算机设备 | |
CN106845220B (zh) | 一种Android恶意软件检测***及方法 | |
CN105893876A (zh) | 芯片硬件木马检测方法和*** | |
Singh et al. | Melford: Using neural networks to find spreadsheet errors | |
Cai et al. | Machine learning algorithms improve the power of phytolith analysis: A case study of the tribe Oryzeae (Poaceae) | |
CN109933851B (zh) | 台架耐久试验数据处理和分析方法 | |
CN107958154A (zh) | 一种恶意软件检测装置及方法 | |
Al‐Tahhan et al. | Accurate automatic detection of acute lymphatic leukemia using a refined simple classification | |
CN104156690A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181026 |
|
RJ01 | Rejection of invention patent application after publication |