CN107729754B - 基于API特征的Android恶意软件检测方法 - Google Patents

基于API特征的Android恶意软件检测方法 Download PDF

Info

Publication number
CN107729754B
CN107729754B CN201710871516.7A CN201710871516A CN107729754B CN 107729754 B CN107729754 B CN 107729754B CN 201710871516 A CN201710871516 A CN 201710871516A CN 107729754 B CN107729754 B CN 107729754B
Authority
CN
China
Prior art keywords
api
packet
value
training sample
various
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.)
Active
Application number
CN201710871516.7A
Other languages
English (en)
Other versions
CN107729754A (zh
Inventor
孙玉霞
赵晶晶
刘明
翁健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinan University
Original Assignee
Jinan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jinan University filed Critical Jinan University
Priority to CN201710871516.7A priority Critical patent/CN107729754B/zh
Publication of CN107729754A publication Critical patent/CN107729754A/zh
Application granted granted Critical
Publication of CN107729754B publication Critical patent/CN107729754B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Display Devices Of Pinball Game Machines (AREA)

Abstract

本发明公开了一种基于API特征的Android恶意软件检测方法,步骤:构建第一训练样本集和第二训练样本集,提取各训练样本API特征向量;由根据d值挑选出各种API特征构成第一API集合;构建API特征的层次结构模型,生成第二层和第三层对应的第一成对比较矩阵和各API包的第二成对比较矩阵,针对各成对比较矩阵计算权向量;计算第一API集合中各种API特征的权值:根据测试样本API特征向量和第一API集合中各种API特征的权值计算测试样本所调用API特征的权重η;最后将η与判断因子k作比较,根据比较结果判断出测试样本是否为Android恶意软件,大大提高了Android恶意软件的检测准确率。

Description

基于API特征的Android恶意软件检测方法
技术领域
本发明涉及恶意软件的检测方法,特别涉及一种基于API(ApplicationProgramming Interface,应用程序接口)的Android恶意软件检测方法。
背景技术
移动互联网的火热已经引领了新的互联网的浪潮,Android已成为了移动互联网时代最流行的移动操作系统。Android流行的同时其本身的安全问题也日益凸显,比如安全漏洞被频频利用、恶意应用数量呈爆炸式增长,用户隐私和财产面临着严重的安全威胁。因此研究Android应用的安全性问题具有重要的学术和应用价值。Android恶意软件给用户的日常使用带来了很大影响,常见问题有:骚扰电话和短信、手机运行慢或死机、无故消耗流量、通知栏和弹窗广告、恶意扣费、手机内文件及数据被破坏、通讯录短信等个人信息泄露、手机中毒或木马和账号信息被窃取等等。这些问题都是由于恶意软件的恶意行为导致,其主要包括:a)通过劫持系统的短信和拨号,在后台自动拨打扣费号码或者发送扣费短信恶意吸费;b)后台默默获取隐私信息,将隐私信息经由网络或短信外泄给诈骗团伙诱骗欺诈;c)通过消耗系统资源、锁定手机等方式影响用户使用,并通过破坏系统的权益来为恶意App牟利;d)窃取隐私信息导致账号被盗及后续并发问题。
目前,典型的Android恶意代码检测技术主要有基于特征码的检测方式和基于行为的检测方式,基于行为的检测方式主要有静态检测和动态检测两种方式。静态检测技术主要通过反编译应用程序获得软件的组件,申请的权限,调用的API等信息,然后选择其中的一种或几种作为特征,与恶意样本库中的样本进行对比从而判断该应用程序是否是恶意的,但由于恶意样本的变种速度之快使得这种检测方式识别准确率不尽如人意。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种基于API特征的Android恶意软件检测方法,该方法大大提高了Android恶意软件的检测准确率。
本发明的目的通过下述技术方案实现:一种基于API特征的Android恶意软件检测方法,步骤如下:
步骤S1、获取一定数量的Android恶意软件训练样本构造第一训练样本集,获取一定数量的Android非恶意软件训练样本构造第二训练样本集;
步骤S2、针对于第一训练样本集和第二训练样本集中的各训练样本,分析出各APK文件中所调用的API特征,从而生成各训练样本的API特征向量;其中各训练样本的API特征向量由多个元素组成,其中一个元素对应记录一种API特征被训练样本调用的次数;
步骤S3、根据第一训练样本集和第二训练样本集中各训练样本的API特征向量,计算各种API特征在第一训练样本集的d值以及计算各种API特征在第二训练样本集的d值;然后针对每一API特征,比较该API特征在第一训练样本集的d值以及在第二训练样本集的d值;最后从中选取出在第一训练样本集的d值大于在第二训练样本集的d值的API特征,由上述选取出来的各种API特征构成第一API集合;
其中各种API特征在第一训练样本集的d值为:第一训练样本集中所有训练样本调用该API特征的总次数除以第一训练样本集所有训练样本的总数;
其中各种API特征在第二训练样本集的d值为:第二训练样本集中所有训练样本调用该API特征的总次数除以第二训练样本集所有训练样本的总数;
步骤S4、构建步骤S3选取出来的API特征的层次结构模型,具体为:将步骤S3选取出来的各种API特征所加入的第一API集合作为第一层目标层,将步骤S3选取出来的API特征所属的API包作为第二层,将步骤S3选取出来的各种API特征作为第三层;其中同一API包包括一种或多种API特征,即一种或多种API特征同属于一个API包;
步骤S5、针对于第二层中的API包,建立API包的成对比较矩阵,其中API包的成对比较矩阵中各元素表达的是各API包之间的相对权值;将API包的成对比较矩阵定义为第一成对比较矩阵;
同时,针对于第三层中的各种API特征,建立同属于一个API包的API特征的成对比较矩阵,其中将每个API包对应的API特征的成对比较矩阵定义为该API包的第二成对比较矩阵;其中每个API包的第二成对比较矩阵中各元素记录的是同属于该API包的各API特征之间的相对权值;
步骤S6、计算第一成对比较矩阵以及各API包的第二成对比较矩阵的权向量并作一致性检验;其中对于第二层来说,第一成对比较矩阵的权向量的每一项即为每个API包的权值,对于第三层来说,各API包的第二成对比较矩阵的权向量的每一项即为每种API特征相对于其所属的API包即该API包的权重系数;
步骤S7、计算第一API集合中各种API特征的权值:
针对于仅包括1种API特征的API包,则该API包的这种API特征的权值即为该API包的权值;
针对于包括多种API特征的API包,则该API包中各种API特征的权值为该API包的权值乘以该种API特征相对于该API包的权重系数;
步骤S8、将需要检测其是否为恶意软件的Android软件作为测试样本,针对于测试样本,分析出其APK文件中所调用的API特征,得到测试样本的API特征向量,其中测试样本的API特征向量由多个元素组成,其中一个元素对应表达第一API集合中其中一种API特征被测试样本调用的次数;然后根据测试样本的API特征向量以及步骤S7中获取到的第一API集合中各种API特征的权值,通过以下公式计算得到测试样本所调用API特征的权重η:
Y=[PV1,PV2,…,PVE];
其中T为测试样本的API特征向量,Y为第一API集合中各种API特征的权值构成的向量;PV1至PVE分别对应为第一API集合中第1种API特征至第E种API特征的权值,PVe为第一API集合中第e种API特征的权值;
步骤S9、将步骤S8得到的测试样本所调用API特征的权重η与判断因子k进行比较,若测试样本所调用的API特征的权重η大于判断因子k,则将测试样本判断为Android恶意软件。
优选的,所述步骤S5中构建第二层API包的成对比较矩阵即第一成对比较矩阵的具体过程:
步骤S51、计算各API包在第一训练样本集中的d值以及各API包在第二训练样本集中的d值,其中各API包在第一训练样本集中的d值为:第一训练样本集中所有训练样本调用该API包中各种API特征的次数和除以第一训练样本集所有训练样本的总数;其中各API包在第二训练样本集中的d值为:第二训练样本集中所有训练样本调用该API包中各种API特征的次数和除以第二训练样本集所有训练样本的总数;
步骤S52、计算各API包的m值;其中各API包的m值为:该API包在第一训练样本集中的d值除以该API包在第二训练样本集中的d值;
步骤S53、根据各API包的m值计算各API包之间的n值,其中各API包之间的n值为各API包的m值的比值;
步骤S54、根据各API包之间的n值获取到各API包之间的相对权值,然后将各API包之间的相对权值对应放入至API包的成对比较矩阵中的对应元素中;其中各API包之间的相对权值指的是各API包与其他API包的相对权值或各API包与本身之间的相对权值;即API包的成对比较矩阵中某一元素对应记录的是某一API包与其他API包之间的相对权值或某一API包与本身之间的相对权值。
更进一步的,所述步骤S54中根据各API包之间的n值获取到各API包之间的相对权值的过程如下:
当各API包之间的n值为大于等于1小于2时,则对应各API包之间的相对权值为1;
当各API包之间的n值为大于等于2小于4时,则对应各API包之间的相对权值为2;
当各API包之间的n值为大于等于4小于10时,则对应各API包之间的相对权值为3;
当各API包之间的n值为大于等于10小于20时,则对应各API包之间的相对权值为4;
当各API包之间的n值为大于等于20小于40时,则对应各API包之间的相对权值为5;
当各API包之间的n值为大于等于40小于100时,则对应各API包之间的相对权值为6;
当各API包之间的n值为大于等于100小于500时,则对应各API包之间的相对权值为7;
当各API包之间的n值为大于等于500小于1000时,则对应各API包之间的相对权值为8;
当各API包之间的n值为大于等于1000时,则对应各API包之间的相对权值为9。
更进一步的,当某API包在第一训练样本集中的d值为0时,则将该API包在第一训练样本集中的d值改为0.0001;当某API包在第二训练样本集中的d值为0时,则将该API包在第二训练样本集中的d值修改为0.0001。
优选的,所述步骤S5中,针对于各API包,建立各API包的第二成对比较矩阵的具体过程如下:
步骤S55、获取该API包中各种API特征在第一训练样本集中的d值以及该API包中各种API特征在第二训练样本集中的d值;
步骤S56、计算该API包中各种API特征的m值;其中该API包中各种API特征的m值为:该种API特征在第一训练样本集中的d值除以该种API特征在第二训练样本集中的d值;
步骤S57、根据该API包中各种API特征的m值计算该API包中各种API特征之间的n值,其中该API包中各种API特征之间的n值对应为该API包中各种API特征的m值的比值;
步骤S58、根据该API包中各种API特征之间的n值获取到该API包中各种API特征之间的相对权值,然后将该API包中各种API特征之间的相对权值对应放入至该API包的第二成对比较矩阵中的对应元素中;其中该API包中各种API特征之间的相对权值指的是该API包中各种API特征与其他种API特征的相对权值或各种API特征与本身之间的相对权值;即该API包的第二成对比较矩阵中某一元素对应记录的是该API包中某一种API特征与其他种API特征之间的相对权值或某一种API特征与本身之间的相对权值。
更进一步的,所述步骤S58中根据各种API特征之间的n值获取到各种API特征之间的相对权值的具体过程如下:
当各种API特征之间的n值为大于等于1小于2时,则对应各种API特征之间的相对权值为1;
当各种API特征之间的n值为大于等于2小于4时,则对应各种API特征之间的相对权值为2;
当各种API特征之间的n值为大于等于4小于10时,则对应各种API特征之间的相对权值为3;
当各种API特征之间的n值为大于等于10小于20时,则对应各种API特征之间的相对权值为4;
当各种API特征之间的n值为大于等于20小于40时,则对应各种API特征之间的相对权值为5;
当各种API特征之间的n值为大于等于40小于100时,则对应各种API特征之间的相对权值为6;
当各种API特征之间的n值为大于等于100小于500时,则对应各种API特征之间的相对权值为7;
当各种API特征之间的n值为大于等于500小于1000时,则对应各种API特征之间的相对权值为8;
当各种API特征之间的n值为大于等于1000时,则对应各种API特征之间的相对权值为9。
更进一步的,当某种API特征在第一训练样本集中的d值为0时,则将该种API特征在第一训练样本集中的d值修改为0.0001;当某种API特征在第二训练样本集中的d值为0时,则将该种API特征在第二训练样本集中的d值修改为0.0001。
优选的,所述步骤S6中计算第一成对比较矩阵的权向量并作一致性检验的具体过程如下:
S61、首先计算第一成对比较矩阵的最大特征根和对应的特征向量;
S62、其次是利用第一成对比较矩阵的最大特征根对第一成对比较矩阵做一致性检验;具体为:根据第一成对比较矩阵的最大特征根以及维数求取第一成对比较矩阵的随机一致性比率CR,当CR<0.1时,则表示第一成对比较矩阵满足一致性,第一成对比较矩阵的特征向量即为第一成对比较矩阵的权向量,否则重构第一成对比较矩阵;其中
CR=CI/RI;
CI=(B-N)/(N-1);
其中CI为衡量第一成对比较矩阵不一致程度的指标,B为第一成对比较矩阵的最大特征根,N为第一成对比较矩阵的维数,对应为API包的总个数;RI为第一成对比较矩阵的平均随机一致性指标;
所述步骤S6中计算各API包的第二成对比较矩阵的权向量并作一致性检验的具体过程如下:
S63、首先计算该API包的第二成对比较矩阵的最大特征根和对应的特征向量;
S64、其次是利用该API包的第二成对比较矩阵的最大特征根对该API包的第二成对比较矩阵做一致性检验;具体为:根据该API包的第二成对比较矩阵的最大特征根以及维数求取该API包的第二成对比较矩阵的随机一致性比率CRi,当CRi<0.1时,则表示该API包的第二成对比较矩阵满足一致性,第二成对比较矩阵的特征向量即为第二成对比较矩阵的权向量,否则重新构建该API包的第二成对比较矩阵;其中
CRi=CIi/RIi;
CIi=(Bi-Ni)/(Ni-1);
其中CIi为衡量API包i的第二成对比较矩阵不一致程度的指标;Bi为API包i的第二成对比较矩阵的最大特征根,Ni为API包i的第二成对比较矩阵的维数;RIi为API包i的第二成对比较矩阵的平均随机一致性指标。
更进一步的,RI的值根据第一成对比较矩阵的维数N进行选取:当第一成对比较矩阵的维数N分别为1,2,…,9时,则RI的值对应分别取0、0、0.58、0.9、1.12、1.32、1.41和1.45;
RIi的值根据API包i的第二成对比较矩阵的维数Ni进行选取:当API包i的第二成对比较矩阵的维数Ni分别为1,2,…,9时,则RIi的值对应分别取0、0、0.58、0.9、1.12、1.32、1.41和1.45。
优选的,其特征在于,所述步骤S9中判断因子k为0.01~0.05中的其中一个值。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明Android恶意软件检测方法首先构建训练样本集,包括由Android恶意软件训练样本构造的第一训练样本集以及由Android非恶意软件训练样本构造的第二训练样本集;然后提取出第一训练样本集和第二训练样本集中各训练样本的API特征向量;计算各种API特征在第一训练样本集和第二训练样本集的d值,将在第一训练样本集的d值大于在第二训练样本集的d值的API特征挑选出来构成第一API集合;构建步骤S3选取出来的API特征的层次结构模型,然后针对于第二层中的API包建立API包的成对比较矩阵,针对于第三层中的各种API特征,建立同属于一个API包的API特征的成对比较矩阵;针对上述获取到的成对比较矩阵计算权向量并作一致性检验;通过上述计算得到的权向量获取到第一API集合中各种API特征的权值:获取待检测的Android软件作为测试样本,然后根据第一API集合获取到测试样本的API特征向量;根据测试样本的API特征向量以及第一API集合中各种API特征的权值计算测试样本所调用API特征的权重η;最后将η与判断因子k进行比较,根据比较结果判断出测试样本是否为Android恶意软件。由上述可知,本发明通过建立API包的成对比较矩阵以及各API包的API特征的成对比较矩阵计算出第一API集合中各种API特征的权值,进而获取到测试样本所调用API特征的权重η,可见本发明在计算第一API集合中各种API特征的权值过程将各API包之间的关联以及同属于一个API包的各种API特征的关联考虑了进去,因此能够获取到更为准确的测试样本所调用API特征的权重η,大大提高了Android恶意软件的检测准确率。
(2)本发明Android恶意软件检测方法中,根据各种API特征在第一训练样本集和第二训练样本集的d值,将在第一训练样本集的d值大于在第二训练样本集的d值的API特征挑选出来加入到第一API集合中,由于某API特征在某一训练样本集的d值指的是:第一训练样本集中所有训练样本调用该API特征的总次数除以第一训练样本集所有训练样本的总数;故d值反映的是各种API特征被训练样本集各训练样本调用的总次数,因此上述挑选的第一API集合中的各种API特征,其被Android恶意软件训练样本调用的总次数大于被Android非恶意软件训练样本调用的总次数,故第一API集合中的各种API特征更能够反应Android恶意软件的特点;另外,本发明方法是根据第一API集合中的各种API特征建立API包的成对比较矩阵以及属于一个API包的API特征的成对比较矩阵;相比未挑选之前,第一API集合中的API特征种类大大减少,因此能够更加快速获取到更加合适的成对比较矩阵。另外针对于测试样本,根据第一API集合获取到测试样本的API特征向量,该API特征向量仅仅包括记录第一API集合中的各种API特征被测试样本调用次数的各元素,因此大大降低了测试样本API特征向量的维度,加快了测试样本API特征的提取速度。
附图说明
图1是本发明方法流程图。
图2是本发明中API特征选取的流程图。
图3是本发明中两个API包之间的相对权值计算流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本发明公开了一种基于API特征的Android恶意软件检测方法,如图1所示,步骤如下:
步骤S1、获取一定数量的Android恶意软件训练样本构造第一训练样本集,获取一定数量的Android非恶意软件训练样本构造第二训练样本集;在本实施例中,第一训练样本集中的Android恶意软件训练样本的数量大于第二训练样本集中的Android非恶意软件训练样本的数量,在本实施例中获取944个Android恶意软件训练样本构造第一训练样本集,在本实施例中,获取171个Android非恶意软件训练样本。
步骤S2、针对于第一训练样本集和第二训练样本集中的各训练样本,分析出各APK文件中所调用的API特征,从而生成各训练样本的API特征向量;其中各训练样本的API特征向量由多个元素组成,其中一个元素对应记录一种API特征被训练样本调用的次数;
在本实施例中,针对于各训练样本,获取到其API特征向量的具体过程如下:
S21、通过开源Android静态分析工具Androguard分析该训练样本的安装包APK:首先将APK文件解析成一个对象,接着生成APK文件申请的API列表,然后将对应API列表写入到其初步分析文本中;其中在本实施例中,通过Python程序批量化分析第一训练样本集和第二训练样本集中各训练样本对应的各APK文件;
S22、针对于该训练样本,通过Java程序工具逐行扫描其初步分析文件,每扫描到某个API特征一次,则将该训练样本的API特征向量中表达该API特征被该训练样本调用次数的元素加1;即在扫描完成后,API特征向量中某元素记录的是某API特征被训练样本总共调用的次数;针对于没有在该训练样本的初步分析文件中扫描到到的API特征,则将训练样本的特征向量中表达该API特征被该训练样本调用次数的对应元素置为0,表达该API特征未被该训练样本申请。
步骤S3、扫描第一训练样本集中各训练样本的API特征向量,计算各种API特征在第一训练样本集的d值;扫描第二训练样本集中各训练样本的API特征向量,计算各种API特征在第二训练样本集的d值;然后针对每一API特征,比较该API特征在第一训练样本集的d值以及在第二训练样本集的d值;最后从中选取出在第一训练样本集的d值大于在第二训练样本集的d值的API特征,由上述选取出来的各种API特征构成第一API集合;如图2所示。
其中各种API特征在第一训练样本集的d值为:第一训练样本集中所有训练样本调用该API特征的总次数除以第一训练样本集所有训练样本的总数;
其中各种API特征在第二训练样本集的d值为:第二训练样本集中所有训练样本调用该API特征的总次数除以第二训练样本集所有训练样本的总数;
步骤S4、构建步骤S3选取出来的API特征的层次结构模型,具体为:将步骤S3选取出来的各种API特征所加入的第一API集合作为第一层目标层,将步骤S3选取出来的API特征所属的API包作为第二层,将步骤S3选取出来的各种API特征作为第三层;其中同一API包包括一种或多种API特征,即一种或多种API特征同属于一个API包;
假设步骤S3选取出来14种API特征加入到第一API集合中,其中14种API特征中,第1和2种API特征属于第一API包,第3种API特征属于第二API包,第4和5种API特征属于第三API包,第6种API特征属于第四API包,第7种API特征属于第五API包,第8至10种API特征属于第六API包,第11到12种API特征属于第七API包,第13至14种API特征属于第八API包。则在本步骤S4中,第一API集合作为第一层目标层,第一API包至第八API包作为第二层,14种API特征作为第三层。
步骤S5、针对于第二层中的API包,建立API包的成对比较矩阵,其中API包的成对比较矩阵中各元素表达的是各API包之间的相对权值;其中将API包的成对比较矩阵定义为第一成对比较矩阵;
同时,针对于第三层中的各种API特征,建立同属于一个API包的API特征的成对比较矩阵,其中将每个API包对应的API特征的成对比较矩阵定义为该API包的第二成对比较矩阵;其中每个API包的第二成对比较矩阵中各元素记录的是同属于该API包的各API特征之间的相对权值;
在本步骤中构建第二层API包的成对比较矩阵即第一成对比较矩阵的具体过程:
步骤S51、计算各API包在第一训练样本集中的d值以及各API包在第二训练样本集中的d值,其中各API包在第一训练样本集中的d值为:第一训练样本集中所有训练样本调用该API包中各种API特征的次数和除以第一训练样本集所有训练样本的总数;其中各API包在第二训练样本集中的d值为:第二训练样本集中所有训练样本调用该API包中各种API特征的次数和除以第二训练样本集所有训练样本的总数;例如某API包中包括API特征x和API特征y,若API特征x被第一训练样本集中所有训练样本调用的次数为x1次,API特征y被第一训练样本集中所有训练样本调用的次数为y1次,那么该API包在第一训练样本集中的d值为:(x1+y1)/第一训练样本集所有训练样本的总数。在本实施例中,当API特征仅被第一训练样本集中训练样本调用一次时,其在第一训练样本集的d值约为0.0011,所以为了在后面计算m值时除数不为0,我们取数位相同的最小值0.0001当做0,而且在本实施例中恶意样本多于非恶意样本,所以API特征仅被第二训练样本集中训练样本调用一次时,其在第二训练样本集的d值肯定是大于0.0001的,因此在本实施例中,当计算出某API包在第一训练样本集中的d值为0时,则将该值修改为0.0001;当计算出某API包在第二训练样本集中的d值为0时,则将该值修改为0.0001。
步骤S52、计算各API包的m值;其中各API包的m值为:该API包在第一训练样本集中的d值除以该API包在第二训练样本集中的d值;
步骤S53、根据各API包的m值计算各API包之间的n值,其中各API包之间的n值为各API包的m值的比值;
步骤S54、根据各API包之间的n值获取到各API包之间的相对权值,然后将各API包之间的相对权值对应放入至API包的成对比较矩阵中的对应元素中;其中各API包之间的相对权值指的是各API包与其他API包的相对权值或各API包与本身之间的相对权值;即API包的成对比较矩阵中某一元素对应记录的是某一API包与其他API包之间的相对权值或某一API包与本身之间的相对权值。其中各API包与本身之间的相对权值为1。
如图3所示为获取到API包i与API包j之间的相对权值W(i,j)的过程,在本实施例中,将API包i与API包j之间的相对权值W(i,j)放入第一成对比较矩阵的第i行第j列中,其中i=1,2,...,N,j=1,2,...,N;N为第二层中API包的总数。如下即为获取到的第一成对比较矩阵的一个示例:
Figure BDA0001417182350000121
其中N=8,即包括8个API包,上述第一成对比较矩阵中第1行的第1至8列中的8个元素分别对应记录的是第1个API包与第1至8个API包之间的相对权值。依此类推其他各行各列元素中记录的值。其中第一成对比较矩阵中各元素记录的相对权值保留3位小数。
在本实施例中,某一API包与其他API包之间的相对权值为其他API包与该API包相对权值的倒数;即W(j,i)=1/W(i,j),W(i,j)即为API包i与API包j之间的相对权值,W(j,i)为API包j与API包i之间的相对权值。
本实施例在上述步骤S54中根据各API包之间的n值获取到各API包之间的相对权值的过程如下:
当各API包之间的n值为大于等于1小于2时,则对应各API包之间的相对权值为1;
当各API包之间的n值为大于等于2小于4时,则对应各API包之间的相对权值为2;
当各API包之间的n值为大于等于4小于10时,则对应各API包之间的相对权值为3;
当各API包之间的n值为大于等于10小于20时,则对应各API包之间的相对权值为4;
当各API包之间的n值为大于等于20小于40时,则对应各API包之间的相对权值为5;
当各API包之间的n值为大于等于40小于100时,则对应各API包之间的相对权值为6;
当各API包之间的n值为大于等于100小于500时,则对应各API包之间的相对权值为7;
当各API包之间的n值为大于等于500小于1000时,则对应各API包之间的相对权值为8;
当各API包之间的n值为大于等于1000时,则对应各API包之间的相对权值为9。
例如API包i与API包j之间的n值为n(i,j),则API包i与API包j之间的相对权值W(i,j)为:
当1<=n(i,j)<2时,W(i,j)=1;
当2<=n(i,j)<4时,W(i,j)=2;
当4<=n(i,j)<10时,W(i,j)=3;
当10<=n(i,j)<20时,W(i,j)=4;
当20<=n(i,j)<40时,W(i,j)=5;
当40<=n(i,j)<100时,W(i,j)=6;
当100<=n(i,j)<500时,W(i,j)=7;
当500<=n(i,j)<1000时,W(i,j)=8;
当n(i,j)>=1000时,W(i,j)=9。
在本步骤中建立各API包的第二成对比较矩阵的具体过程如下:
步骤S55、获取该API包中各种API特征在第一训练样本集中的d值以及该API包中各种API特征在第二训练样本集中的d值;在本实施例中,当API特征仅被第一训练样本集中训练样本调用一次时,其在第一训练样本集的d值约为0.0011,所以为了在后面计算m值时除数不为0,我们取数位相同的最小值0.0001当做0,而且在本实施例中恶意样本多于非恶意样本,所以API特征仅被第二训练样本集中训练样本调用一次时,其在第二训练样本集的d值肯定是大于0.0001的。因此,在本实施例中,当计算出某种API特征在第一训练样本集中的d值为0时,则将该种API特征在第一训练样本集中的d值修改为0.0001;当计算出某种API特征在第二训练样本集中的d值为0时,则将该种API特征在第二训练样本集中的d值修改为0.0001。
步骤S56、计算该API包中各种API特征的m值;其中该API包中各种API特征的m值为:该种API特征在第一训练样本集中的d值除以该种API特征在第二训练样本集中的d值;
步骤S57、根据该API包中各种API特征的m值计算该API包中各种API特征之间的n值,其中该API包中各种API特征之间的n值对应该API包中各种API特征的m值的比值;例如该API包中API特征x的m值为mx,API特征y的m值为my,则该API包中API特征x和特征y之间的n值为:n(x,y)=mx/my。
步骤S58、根据该API包中各种API特征之间的n值获取到该API包中各种API特征之间的相对权值,然后将该API包中各种API特征之间的相对权值对应放入至该API包的第二成对比较矩阵中的对应元素中;其中该API包中各种API特征之间的相对权值指的是该API包中各种API特征与其他种API特征的相对权值或各种API特征与本身之间的相对权值;即该API包的第二成对比较矩阵中某一元素对应记录的是该API包中某一种API特征与其他种API特征之间的相对权值或某一种API特征与本身之间的相对权值。其中各种API特征与本身之间的相对权值为1。
上述步骤S58中,将该API包中API特征x与API特征y之间的相对权值W(x,y)放入该API包的第二成对比较矩阵的第x行第y列中,其中x,y=1,2,...,M;M为该API包API特征的总数。针对于只有一个API特征的API包无需构造该API包的第二成对比较矩阵。例如步骤S4中提到的第二API包、第四API包和第五API包。例如:
下述为步骤S4中提到的包含两种API特征的第一API包的第二成对比较矩阵:
Figure BDA0001417182350000141
其中第一API包的第二成对比较矩阵的第1行的第1、2列的元素分别对应记录第一API包中第1种API特征与第1、2种API特征之间的相对权值,其中第1种API特征与第1种API特征之间的相对权值为1;第一API包的第二成对比较矩阵的第2行的第1、2列的元素分别对应记录第一API包中第2种API特征与第1、2种API特征之间的相对权值,其中第2种API特征与第2种API特征之间的相对权值为1;其中第1种API特征与第2种API特征之间的相对权值为第2种API特征与第1种API特征之间的相对权值的倒数。
下述为步骤S4中提到的包含两种API特征的第三API包的第二成对比较矩阵:
Figure BDA0001417182350000142
其中第三API包的第二成对比较矩阵的第1行的第1、2列的元素分别对应记录第三API包中第4种API特征与第4、5种API特征之间的相对权值,第三API包的第二成对比较矩阵的第2行的第1、2列的元素分别对应记录第三API包中第5种API特征与第4、5种API特征之间的相对权值,
下述为步骤S4中提到的包含三种API特征的第六API包的第二成对比较矩阵:
Figure BDA0001417182350000151
其中第六API包的第二成对比较矩阵的第1行的第1至3列的元素分别对应记录第六API包中第8种API特征与第8至10种API特征之间的相对权值,第六API包的第二成对比较矩阵的第2行的第1至3列的元素分别对应记录第六API包中第9种API特征与第8至10种API特征之间的相对权值,第六API包的第二成对比较矩阵的第3行的第1至3列的元素分别对应记录第六API包中第10种API特征与第8至10种API特征之间的相对权值。
下述为步骤S4中提到的包含两种API特征的第七API包的第二成对比较矩阵:
Figure BDA0001417182350000152
其中第七API包的第二成对比较矩阵的第1行的第1、2列的元素分别对应记录第七API包中第11种API特征与第11、12种API特征之间的相对权值,第七API包的第二成对比较矩阵的第2行的第1、2列的元素分别对应记录第七API包中第12种API特征与第11、12种API特征之间的相对权值。
下述为步骤S4中提到的包含两种API特征的第八API包的第二成对比较矩阵:
Figure BDA0001417182350000153
其中第八API包的第二成对比较矩阵的第1行的第1、2列的元素分别对应记录第八API包中第13种API特征与第13、14种API特征之间的相对权值,第八API包的第二成对比较矩阵的第2行的第1、2列的元素分别对应记录第八API包中第14种API特征与第13、14种API特征之间的相对权值。
在本实施例上述步骤S64中,根据各种API特征之间的n值获取到各种API特征之间的相对权值的具体过程如下:
当各种API特征之间的n值为大于等于1小于2时,则对应各种API特征之间的相对权值为1;
当各种API特征之间的n值为大于等于2小于4时,则对应各种API特征之间的相对权值为2;
当各种API特征之间的n值为大于等于4小于10时,则对应各种API特征之间的相对权值为3;
当各种API特征之间的n值为大于等于10小于20时,则对应各种API特征之间的相对权值为4;
当各种API特征之间的n值为大于等于20小于40时,则对应各种API特征之间的相对权值为5;
当各种API特征之间的n值为大于等于40小于100时,则对应各种API特征之间的相对权值为6;
当各种API特征之间的n值为大于等于100小于500时,则对应各种API特征之间的相对权值为7;
当各种API特征之间的n值为大于等于500小于1000时,则对应各种API特征之间的相对权值为8;
当各种API特征之间的n值为大于等于1000时,则对应各种API特征之间的相对权值为9。
例如该API包中API特征x与API特征y之间的n值为n(x,y),则API特征x与API特征y之间的相对权值W(x,y)为:
当1<=n(x,y)<2时,W(x,y)=1;
当2<=n(x,y)<4时,W(x,y)=2;
当4<=n(x,y)<10时,W(x,y)=3;
当10<=n(x,y)<20时,W(x,y)=4;
当20<=n(x,y)<40时,W(x,y)=5;
当40<=n(x,y)<100时,W(x,y)=6;
当100<=n(x,y)<500时,W(x,y)=7;
当500<=n(x,y)<1000时,W(x,y)=8;
当n(x,y)>=1000时,W(x,y)=9。
步骤S6、计算第一成对比较矩阵以及各API包的第二成对比较矩阵的权向量并作一致性检验;其中对于第二层来说,第一成对比较矩阵的权向量的每一项即为每个API包的权值,对于第三层来说,各API包的第二成对比较矩阵的权向量的每一项即为每种API特征相对于其所属的API包即该API包的权重系数;
本步骤中计算第一成对比较矩阵的权向量并作一致性检验的具体过程如下:
S61、首先通过matlab软件计算第一成对比较矩阵的最大特征根和对应的特征向量;
S62、其次是利用第一成对比较矩阵的最大特征根对第一成对比较矩阵做一致性检验;具体为:根据第一成对比较矩阵的最大特征根以及维数求取第一成对比较矩阵的随机一致性比率CR,当CR<0.1时,则表示第一成对比较矩阵满足一致性,第一成对比较矩阵的特征向量即为第一成对比较矩阵的权向量,否则重构第一成对比较矩阵,例如通过改变前面n值和W(x,y)之间的对应规则来重构第一成对比较矩阵,其中
CR=CI/RI;
CI=(B-N)/(N-1);
其中CI为衡量第一成对比较矩阵不一致程度的指标,B为第一成对比较矩阵的最大特征根,N为第一成对比较矩阵的维数,对应为API包的总个数;RI为第一成对比较矩阵的平均随机一致性指标。
在本实施例中RI的值根据第一成对比较矩阵的维数N进行选取:如表1所示:
表1
N 1 2 3 4 5 6 7 8 9
RI 0 0 0.58 0.9 1.12 1.24 1.32 1.41 1.45
本步骤中计算各API包的第二成对比较矩阵的权向量并作一致性检验的具体过程如下:
S63、首先计算该API包的第二成对比较矩阵的最大特征根和对应的特征向量;
S64、其次是利用该API包的第二成对比较矩阵的最大特征根对该API包的第二成对比较矩阵做一致性检验;具体为:根据该API包的第二成对比较矩阵的最大特征根以及维数求取该API包的第二成对比较矩阵的随机一致性比率CRi,当CRi<0.1时,则表示该API包的第二成对比较矩阵满足一致性,第二成对比较矩阵的特征向量即为第二成对比较矩阵的权向量,否则重新构建该API包的第二成对比较矩阵;其中
CRi=CIi/RIi;
CIi=(Bi-Ni)/(Ni-1);
其中CIi为衡量API包i的第二成对比较矩阵不一致程度的指标;Bi为API包i的第二成对比较矩阵的最大特征根,Ni为API包i的第二成对比较矩阵的维数;RIi为API包i的第二成对比较矩阵的平均随机一致性指标。
在本实施例中,RIi的值根据API包i的第二成对比较矩阵的维数Ni进行选取,如表2所示:
表2
Bi 1 2 3 4 5 6 7 8 9
RIi 0 0 0.58 0.9 1.12 1.24 1.32 1.41 1.45
步骤S7、计算第一API集合中各种API特征的权值:
针对于仅包括1种API特征的API包,则该API包的这种API特征的权值即为该API包的权值;即wapz=wi
例如步骤S4中所述的第二API包、第四API包和第五API包,第二API包、第四API包和第五API包中均仅包括1种API特征,所以第二API包、第四API包和第五API中的API特征的权值对应为第二API包、第四API包和第五API的权值。第二API包、第四API包和第五API的权值通过第一成对比较矩阵的权向量获取到。
针对于包括多种API特征的API包,则该API包中各种API特征的权值为该API包的权值乘以该种API特征相对于该API包的权重系数;即wapz=wi*wi,apz
其中wi为API包i的权值,wapz为第一API集合中API特征z的权值,wi,apz为第一API集合中API特征z相对于其所属的API包i的权重系数。
例如步骤S4中所述的第一API包,包括第1和2种API特征,因此第一API包中第1种API特征为第一API包的权值乘以第1种API特征相对于第一API包的权重系数。
步骤S8、将需要检测其是否为恶意软件的Android软件作为测试样本,针对于测试样本,分析出其APK文件中所调用的API特征,得到测试样本的API特征向量,其中测试样本的API特征向量由多个元素组成,其中一个元素对应表达第一API集合中其中一种API特征被测试样本调用的次数;然后根据测试样本的API特征向量以及步骤S7中获取到的第一API集合中各种API特征的权值,通过以下公式计算得到测试样本所调用API特征的权重η:
Figure BDA0001417182350000181
Y=[PV1,PV2,…,PVE];
其中T为测试样本的API特征向量,Y为第一API集合中各种API特征的权值构成的向量;PV1至PVE分别对应为第一API集合中第1种API特征至第E种API特征的权值,PVe为第一API集合中第e种API特征的权值;
步骤S9、将步骤S8得到的测试样本所调用API特征的权重η与判断因子k进行比较,若测试样本所调用的API特征的权重η大于判断因子k,则将测试样本判断为Android恶意软件。在本实施例中判断因子k可以选取0.01~0.05中的一个值。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (7)

1.一种基于API特征的Android恶意软件检测方法,其特征在于,步骤如下:
步骤S1、获取一定数量的Android恶意软件训练样本构造第一训练样本集,获取一定数量的Android非恶意软件训练样本构造第二训练样本集;
步骤S2、针对于第一训练样本集和第二训练样本集中的各训练样本,分析出各APK文件中所调用的API特征,从而生成各训练样本的API特征向量;其中各训练样本的API特征向量由多个元素组成,其中一个元素对应记录一种API特征被训练样本调用的次数;
步骤S3、根据第一训练样本集和第二训练样本集中各训练样本的API特征向量,计算各种API特征在第一训练样本集的d值以及计算各种API特征在第二训练样本集的d值;然后针对每一API特征,比较该API特征在第一训练样本集的d值以及在第二训练样本集的d值;最后从中选取出在第一训练样本集的d值大于在第二训练样本集的d值的API特征,由上述选取出来的各种API特征构成第一API集合;
其中各种API特征在第一训练样本集的d值为:第一训练样本集中所有训练样本调用该API特征的总次数除以第一训练样本集所有训练样本的总数;
其中各种API特征在第二训练样本集的d值为:第二训练样本集中所有训练样本调用该API特征的总次数除以第二训练样本集所有训练样本的总数;
步骤S4、构建步骤S3选取出来的API特征的层次结构模型,具体为:将步骤S3选取出来的各种API特征所加入的第一API集合作为第一层目标层,将步骤S3选取出来的API特征所属的API包作为第二层,将步骤S3选取出来的各种API特征作为第三层;其中同一API包包括一种或多种API特征,即一种或多种API特征同属于一个API包;
步骤S5、针对于第二层中的API包,建立API包的成对比较矩阵,其中API包的成对比较矩阵中各元素表达的是各API包之间的相对权值;将API包的成对比较矩阵定义为第一成对比较矩阵;
同时,针对于第三层中的各种API特征,建立同属于一个API包的API特征的成对比较矩阵,其中将每个API包对应的API特征的成对比较矩阵定义为该API包的第二成对比较矩阵;其中每个API包的第二成对比较矩阵中各元素记录的是同属于该API包的各API特征之间的相对权值;
步骤S6、计算第一成对比较矩阵以及各API包的第二成对比较矩阵的权向量并作一致性检验;其中对于第二层来说,第一成对比较矩阵的权向量的每一项即为每个API包的权值,对于第三层来说,各API包的第二成对比较矩阵的权向量的每一项即为每种API特征相对于其所属的API包即该API包的权重系数;
步骤S7、计算第一API集合中各种API特征的权值:
针对于仅包括1种API特征的API包,则该API包的这种API特征的权值即为该API包的权值;
针对于包括多种API特征的API包,则该API包中各种API特征的权值为该API包的权值乘以该种API特征相对于该API包的权重系数;
步骤S8、将需要检测其是否为恶意软件的Android软件作为测试样本,针对于测试样本,分析出其APK文件中所调用的API特征,得到测试样本的API特征向量,其中测试样本的API特征向量由多个元素组成,其中一个元素对应表达第一API集合中其中一种API特征被测试样本调用的次数;然后根据测试样本的API特征向量以及步骤S7中获取到的第一API集合中各种API特征的权值,通过以下公式计算得到测试样本所调用API特征的权重η:
Figure FDA0002183607820000021
Y=[PV1,PV2,...,PVE];
其中T为测试样本的API特征向量,Y为第一API集合中各种API特征的权值构成的向量;PV1至PVE分别对应为第一API集合中第1种API特征至第E种API特征的权值,PVe为第一API集合中第e种API特征的权值;
步骤S9、将步骤S8得到的测试样本所调用API特征的权重η与判断因子k进行比较,若测试样本所调用的API特征的权重η大于判断因子k,则将测试样本判断为Android恶意软件;
所述步骤S5中构建第二层API包的成对比较矩阵即第一成对比较矩阵的具体过程:
步骤S51、计算各API包在第一训练样本集中的d值以及各API包在第二训练样本集中的d值,其中各API包在第一训练样本集中的d值为:第一训练样本集中所有训练样本调用该API包中各种API特征的次数和除以第一训练样本集所有训练样本的总数;其中各API包在第二训练样本集中的d值为:第二训练样本集中所有训练样本调用该API包中各种API特征的次数和除以第二训练样本集所有训练样本的总数;
步骤S52、计算各API包的m值;其中各API包的m值为:该API包在第一训练样本集中的d值除以该API包在第二训练样本集中的d值;
步骤S53、根据各API包的m值计算各API包之间的n值,其中各API包之间的n值为各API包的m值的比值;
步骤S54、根据各API包之间的n值获取到各API包之间的相对权值,然后将各API包之间的相对权值对应放入至API包的成对比较矩阵中的对应元素中;其中各API包之间的相对权值指的是各API包与其他API包的相对权值或各API包与本身之间的相对权值;即API包的成对比较矩阵中某一元素对应记录的是某一API包与其他API包之间的相对权值或某一API包与本身之间的相对权值;
所述步骤S5中,针对于各API包,建立各API包的第二成对比较矩阵的具体过程如下:
步骤S55、获取该API包中各种API特征在第一训练样本集中的d值以及该API包中各种API特征在第二训练样本集中的d值;
步骤S56、计算该API包中各种API特征的m值;其中该API包中各种API特征的m值为:该种API特征在第一训练样本集中的d值除以该种API特征在第二训练样本集中的d值;
步骤S57、根据该API包中各种API特征的m值计算该API包中各种API特征之间的n值,其中该API包中各种API特征之间的n值对应为该API包中各种API特征的m值的比值;
步骤S58、根据该API包中各种API特征之间的n值获取到该API包中各种API特征之间的相对权值,然后将该API包中各种API特征之间的相对权值对应放入至该API包的第二成对比较矩阵中的对应元素中;其中该API包中各种API特征之间的相对权值指的是该API包中各种API特征与其他种API特征的相对权值或各种API特征与本身之间的相对权值;即该API包的第二成对比较矩阵中某一元素对应记录的是该API包中某一种API特征与其他种API特征之间的相对权值或某一种API特征与本身之间的相对权值;
所述步骤S6中计算第一成对比较矩阵的权向量并作一致性检验的具体过程如下:
S61、首先计算第一成对比较矩阵的最大特征根和对应的特征向量;
S62、其次是利用第一成对比较矩阵的最大特征根对第一成对比较矩阵做一致性检验;具体为:根据第一成对比较矩阵的最大特征根以及维数求取第一成对比较矩阵的随机一致性比率CR,当CR<0.1时,则表示第一成对比较矩阵满足一致性,第一成对比较矩阵的特征向量即为第一成对比较矩阵的权向量,否则重构第一成对比较矩阵;其中
CR=CI/RI;
CI=(B-N)/(N-1);
其中CI为衡量第一成对比较矩阵不一致程度的指标,B为第一成对比较矩阵的最大特征根,N为第一成对比较矩阵的维数,对应为API包的总个数;RI为第一成对比较矩阵的平均随机一致性指标;
所述步骤S6中计算各API包的第二成对比较矩阵的权向量并作一致性检验的具体过程如下:
S63、首先计算该API包的第二成对比较矩阵的最大特征根和对应的特征向量;
S64、其次是利用该API包的第二成对比较矩阵的最大特征根对该API包的第二成对比较矩阵做一致性检验;具体为:根据该API包的第二成对比较矩阵的最大特征根以及维数求取该API包的第二成对比较矩阵的随机一致性比率CRi,当CRi<0.1时,则表示该API包的第二成对比较矩阵满足一致性,第二成对比较矩阵的特征向量即为第二成对比较矩阵的权向量,否则重新构建该API包的第二成对比较矩阵;其中
CRi=CIi/RIi;
CIi=(Bi-Ni)/(Ni-1);
其中CIi为衡量API包i的第二成对比较矩阵不一致程度的指标;Bi为API包i的第二成对比较矩阵的最大特征根,Ni为API包i的第二成对比较矩阵的维数;RIi为API包i的第二成对比较矩阵的平均随机一致性指标。
2.根据权利要求1所述的基于API特征的Android恶意软件检测方法,其特征在于,所述步骤S54中根据各API包之间的n值获取到各API包之间的相对权值的过程如下:
当各API包之间的n值为大于等于1小于2时,则对应各API包之间的相对权值为1;
当各API包之间的n值为大于等于2小于4时,则对应各API包之间的相对权值为2;
当各API包之间的n值为大于等于4小于10时,则对应各API包之间的相对权值为3;
当各API包之间的n值为大于等于10小于20时,则对应各API包之间的相对权值为4;
当各API包之间的n值为大于等于20小于40时,则对应各API包之间的相对权值为5;
当各API包之间的n值为大于等于40小于100时,则对应各API包之间的相对权值为6;
当各API包之间的n值为大于等于100小于500时,则对应各API包之间的相对权值为7;
当各API包之间的n值为大于等于500小于1000时,则对应各API包之间的相对权值为8;
当各API包之间的n值为大于等于1000时,则对应各API包之间的相对权值为9。
3.根据权利要求1所述的基于API特征的Android恶意软件检测方法,其特征在于,当某API包在第一训练样本集中的d值为0时,则将该API包在第一训练样本集中的d值改为0.0001;当某API包在第二训练样本集中的d值为0时,则将该API包在第二训练样本集中的d值修改为0.0001。
4.根据权利要求1所述的基于API特征的Android恶意软件检测方法,其特征在于,所述步骤S58中根据各种API特征之间的n值获取到各种API特征之间的相对权值的具体过程如下:
当各种API特征之间的n值为大于等于1小于2时,则对应各种API特征之间的相对权值为1;
当各种API特征之间的n值为大于等于2小于4时,则对应各种API特征之间的相对权值为2;
当各种API特征之间的n值为大于等于4小于10时,则对应各种API特征之间的相对权值为3;
当各种API特征之间的n值为大于等于10小于20时,则对应各种API特征之间的相对权值为4;
当各种API特征之间的n值为大于等于20小于40时,则对应各种API特征之间的相对权值为5;
当各种API特征之间的n值为大于等于40小于100时,则对应各种API特征之间的相对权值为6;
当各种API特征之间的n值为大于等于100小于500时,则对应各种API特征之间的相对权值为7;
当各种API特征之间的n值为大于等于500小于1000时,则对应各种API特征之间的相对权值为8;
当各种API特征之间的n值为大于等于1000时,则对应各种API特征之间的相对权值为9。
5.根据权利要求1所述的基于API特征的Android恶意软件检测方法,其特征在于,当某种API特征在第一训练样本集中的d值为0时,则将该种API特征在第一训练样本集中的d值修改为0.0001;当某种API特征在第二训练样本集中的d值为0时,则将该种API特征在第二训练样本集中的d值修改为0.0001。
6.根据权利要求1所述的基于API特征的Android恶意软件检测方法,其特征在于,RI的值根据第一成对比较矩阵的维数N进行选取:当第一成对比较矩阵的维数N分别为1,2,...,9时,则RI的值对应分别取0、0、0.58、0.9、1.12、1.32、1.41和1.45;
RIi的值根据API包i的第二成对比较矩阵的维数Ni进行选取:当API包i的第二成对比较矩阵的维数Ni分别为1,2,...,9时,则RIi的值对应分别取0、0、0.58、0.9、1.12、1.32、1.41和1.45。
7.根据权利要求1至6中任一项所述的基于API特征的Android恶意软件检测方法,其特征在于,所述步骤S9中判断因子k为0.01~0.05中的其中一个值。
CN201710871516.7A 2017-09-25 2017-09-25 基于API特征的Android恶意软件检测方法 Active CN107729754B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710871516.7A CN107729754B (zh) 2017-09-25 2017-09-25 基于API特征的Android恶意软件检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710871516.7A CN107729754B (zh) 2017-09-25 2017-09-25 基于API特征的Android恶意软件检测方法

Publications (2)

Publication Number Publication Date
CN107729754A CN107729754A (zh) 2018-02-23
CN107729754B true CN107729754B (zh) 2020-04-14

Family

ID=61207899

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710871516.7A Active CN107729754B (zh) 2017-09-25 2017-09-25 基于API特征的Android恶意软件检测方法

Country Status (1)

Country Link
CN (1) CN107729754B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344614B (zh) * 2018-07-23 2021-04-20 厦门大学 一种Android恶意应用在线检测方法
CN110944332B (zh) * 2018-09-21 2023-05-02 武汉安天信息技术有限责任公司 短信拦截马检测方法及装置
CN109711163B (zh) * 2018-12-26 2021-07-27 西安电子科技大学 基于api调用序列的安卓恶意软件检测方法
CN110069927A (zh) * 2019-04-22 2019-07-30 中国民航大学 恶意apk检测方法、系统、数据存储设备和检测程序

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927483B (zh) * 2014-04-04 2016-11-16 西安电子科技大学 用于检测恶意程序的判定模型及恶意程序的检测方法
CN104361141A (zh) * 2014-12-11 2015-02-18 北京邮电大学 软件标识库的建立方法
CN104794399A (zh) * 2015-04-23 2015-07-22 北京北信源软件股份有限公司 一种基于海量程序行为数据的终端防护系统及方法
CN106845220B (zh) * 2015-12-07 2020-08-25 深圳先进技术研究院 一种Android恶意软件检测系统及方法

Also Published As

Publication number Publication date
CN107729754A (zh) 2018-02-23

Similar Documents

Publication Publication Date Title
CN107729754B (zh) 基于API特征的Android恶意软件检测方法
US10303874B2 (en) Malicious code detection method based on community structure analysis
KR101702614B1 (ko) 온라인 사기 검출 동적 점수 합계 시스템 및 방법
US8549645B2 (en) System and method for detection of denial of service attacks
US20130007859A1 (en) Website authentication
US9442783B2 (en) Methods and systems for providing security for page framing
CN106055980A (zh) 一种基于规则的JavaScript安全性检测方法
CN107800686B (zh) 一种钓鱼网站识别方法和装置
AU2019101565A4 (en) User data sharing method and device
CN105095751A (zh) 一种面向Android平台的钓鱼恶意应用检测方法
CN109344614B (zh) 一种Android恶意应用在线检测方法
CN112149124A (zh) 一种基于异构信息网络的安卓恶意程序检测的方法和系统
CN106789837A (zh) 网络异常行为检测方法及检测装置
US10826927B1 (en) Systems and methods for data exfiltration detection
CN105243328A (zh) 一种基于行为特征的摆渡木马防御方法
CN110837646A (zh) 一种非结构化数据库的风险排查装置
CN109672678B (zh) 一种钓鱼网站识别方法及装置
KR20160016178A (ko) 악성코드 유포 네트워크 탐지 프로그램
CN117118661A (zh) 基于模糊测试的闭源攻击合约自动识别方法、系统及设备
CN107832609B (zh) 基于权限特征的Android恶意软件检测方法及系统
CN115987687A (zh) 网络攻击取证方法、装置、设备及存储介质
CN106778276B (zh) 一种检测无实体文件恶意代码的方法及系统
WO2022239030A1 (en) Method and system for anomaly detection in the banking system with graph neural networks (gnns)
Kumar et al. Generic security risk profile of e-governance applications—A case study
CN109840417B (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
GR01 Patent grant
GR01 Patent grant