CN107832609A - 基于权限特征的Android恶意软件检测方法及系统 - Google Patents
基于权限特征的Android恶意软件检测方法及系统 Download PDFInfo
- Publication number
- CN107832609A CN107832609A CN201710871649.4A CN201710871649A CN107832609A CN 107832609 A CN107832609 A CN 107832609A CN 201710871649 A CN201710871649 A CN 201710871649A CN 107832609 A CN107832609 A CN 107832609A
- Authority
- CN
- China
- Prior art keywords
- authority
- training sample
- feature
- sample
- features
- 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.)
- Granted
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
本发明公开了一种基于权限特征的Android恶意软件检测方法和系统,步骤:构建第一训练样本集和第二训练样本集,提取各训练样本第一权限特征向量,根据d值挑选出权限特征构造第一权限特征集合,生成第一训练样本集中各训练样本第二权限特征向量,并构建关联系数矩阵;将第一训练样本集中各训练样本关联矩阵求和输入PPR算法,得到第一权限特征集合中每种权限特征的权限值;根据第一权限特征集合生成测试样本权限特征向量,利用第一权限特征集合中每种权限特征的权限值计算出测试样本所申请的权限特征权重η,将η与判断因子进行比较,判断出测试样本是否为Android恶意软件;该方法大大提高了Android恶意软件的检测准确率。
Description
技术领域
本发明涉及恶意软件的检测方法,特别涉及一种基于权限特征的Android恶意软件检测方法及系统。
背景技术
移动互联网的火热已经引领了新的互联网的浪潮,Android已成为了移动互联网时代最流行的移动操作系统。Android流行的同时其本身的安全问题也日益凸显,比如安全漏洞被频频利用、恶意应用数量呈爆炸式增长,用户隐私和财产面临着严重的安全威胁。因此研究Android应用的安全性问题具有重要的学术和应用价值。Android恶意软件给用户的日常使用带来了很大影响,常见问题有:骚扰电话和短信、手机运行慢或死机、无故消耗流量、通知栏和弹窗广告、恶意扣费、手机内文件及数据被破坏、通讯录短信等个人信息泄露、手机中毒或木马和账号信息被窃取等等。这些问题都是由于恶意软件的恶意行为导致,其主要包括:a)通过劫持系统的短信和拨号,在后台自动拨打扣费号码或者发送扣费短信恶意吸费;b)后台默默获取隐私信息,将隐私信息经由网络或短信外泄给诈骗团伙诱骗欺诈;c)通过消耗系统资源、锁定手机等方式影响用户使用,并通过破坏系统的权益来为恶意App牟利;d)窃取隐私信息导致账号被盗及后续并发问题。
目前,典型的Android恶意代码检测技术主要有基于特征码的检测方式和基于行为的检测方式,基于行为的检测方式主要有静态检测和动态检测两种方式。静态检测技术主要通过反编译应用程序获得软件的组件,申请的权限,调用的API等信息,然后选择其中的一种或几种作为特征,与恶意样本库中的样本进行对比从而判断该应用程序是否是恶意的,但由于恶意样本的变种速度之快使得这种检测方式识别准确率不尽如人意
发明内容
本发明的第一目的在于克服现有技术的缺点与不足,提供一种基于权限特征的Android恶意软件检测方法,该方法大大提高了Android恶意软件的检测准确率。
本发明的第二目的在于提供一种基于权限特征的Android恶意软件检测系统。
本发明的第一目的通过下述技术方案实现:一种基于权限特征的Android恶意软件检测方法,步骤如下:
步骤S1、获取一定数量的Android恶意软件训练样本构造第一训练样本集,获取一定数量的Android非恶意软件训练样本构造第二训练样本集;
步骤S2、针对于第一训练样本集和第二训练样本集中的各训练样本,分析出对应各APK文件中所申请的权限,从而生成训练样本的第一权限特征向量;其中各训练样本的第一权限特征向量由多个元素组成,其中一个元素对应表达一种权限特征是否被该训练样本申请;
步骤S3、扫描第一训练样本集和第二训练样本集中各训练样本的第一权限特征向量,计算各种权限特征在第一训练样本集的d值以及计算各种权限特征在第二训练样本集的d值;然后针对每一权限特征,比较该权限特征在第一训练样本集的d值以及在第二训练样本集的d值;最后从中选取出在第一训练样本集的d值大于在第二训练样本集的d值的权限特征,由上述选取出来的各种权限特征构成第一权限特征集合;
其中各种权限特征在第一训练样本集的d值为:第一训练样本集中申请该权限特征的训练样本总数除以第一训练样本集所有训练样本的总数;
其中各种权限特征在第二训练样本集的d值为:第二训练样本集中申请该权限特征的训练样本总数除以第二训练样本集所有训练样本的总数;
步骤S4、针对于第一权限特征集合中的各种权限特征,计算出各种权限特征在第一训练样本集的d值和在第二训练样本集的d值之比,取整后作为对应各种权限特征的初始权值;
同时,针对于第一训练样本集的各训练样本,分析出其APK文件中所申请的权限,然后根据第一权限特征集合得到该训练样本的第二权限特征向量,其中该训练样本的第二权限特征向量的各元素对应表达的是第一权限特征集合中的各种权限特征是否被该训练样本申请;
步骤S5、针对于第一训练样本集的各训练样本,扫描其第二权限特征向量,获取到各训练样本针对于第一权限特征集合中各种权限特征的申请情况,从而对应生成各训练样本的关联矩阵;其中各训练样本的关联矩阵中各元素对应记录第一权限特征集合中各种权限特征之间的关联系数,包括各种权限特征与其他另一种权限特征之间的关联系数以及各种权限特征与本身之间的关联系数;其中按照以下规则生成关联矩阵:针对第一权限特征集合中各种权值特征与其他另一种权限特征,若训练样本同时申请该种权限特征和其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值与其他另一种权限特征的初始权值相加之和,若训练样本只申请到该种权限或其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值或其他另一种权限特征的初始权值,若训练样本既未申请该种权限也未申请其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一权限特征之间的关联系数为零;针对于各种权限特征与本身之间的关联系数,关联矩阵中对应元素记录该种权限特征与本身之间的关联系数为该种权限特征的初始权值;
步骤S6、将步骤S5中获取到的第一训练样本集中各训练样本的关联矩阵相加得到矩阵和X,把矩阵和X经过PPR算法后得到第一权限特征集合中每种权限特征的权限值:
Y=[PV1,PV2,…,PVn];
Y=[PV1,PV2,…,PVn]=[PPR(X)];
其中PV1至PVn分别对应为第一权限特征集合中第1种权限特征至第n种权限特征的权限值,n为第一权限特征集合中权限特征的种类数;Y为第一权限特征集合中第1种权限特征至第n种权限特征的权限值构成的矩阵;
步骤S7、将需要检测其是否为恶意软件的Android软件作为测试样本,针对于测试样本,分析出其APK文件中所申请的权限,得到测试样本的权限特征向量,其中测试样本的权限特征向量由多个元素组成,其中一个元素对应表达第一权限特征集合中其中一种权限特征是否被测试样本申请;然后根据测试样本的权限特征向量以及步骤S6中获取到的第一权限特征集合中每种权限特征的权限值,通过以下公式计算得到测试样本所申请的权限特征的权重η:
其中T为测试样本的权限特征向量,PVm为第一权限特征集合中第m种权限特征的权限值;
步骤S8、将步骤S7得到的测试样本所申请的权限特征的权重η与判断因子k进行比较,若测试样本所申请的权限特征的权重η大于判断因子k,则将测试样本判断为Android恶意软件。
优选的,所述步骤S8中判断因子k为0.25~0.35中的其中一个值。
优选的,所述步骤S2中,获取到训练样本的第一权限特征向量的具体过程如下:
步骤S21、通过开源Android静态分析工具Androguard分析训练样本的安装包APK:首先将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入到其初步分析文本中;
步骤S22、针对于各训练样本,逐行扫描其初步分析文件,若扫描到某种权限特征,则将该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素置为一个值,表达该种权限特征被该训练样本申请;针对于没有在该训练样本的初步分析文件中扫描到的权限特征,将该训练样本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为另一个值,表达该种权限特征未被该训练样本申请。
更进一步的,所述步骤S22中,针对于各训练样本,逐行扫描其初步分析文件,若扫描到某种权限特征,则将该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素置为二进制0,表达该种权限特征被该训练样本申请;针对于没有在该训练样本的初步分析文件中扫描到的权限特征,将该训练样本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为二进制0,表达该种权限特征未被该训练样本申请。
更进一步的,所述步骤S21中,通过Python程序批量化分析第一训练样本集和第二训练样本集中各训练样本对应的各APK文件;所述步骤S22中,针对于各训练样本,通过Java程序工具对其初步分析文本进行逐行扫描。
优选的,所述步骤S7中,得到测试样本的权限特征向量的具体过程如下:
步骤S71、通过开源Android静态分析工具Androguard分析测试样本的安装包APK:首先将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入到其初步分析文本中;
步骤S72、针对于测试样本,逐行扫描其初步分析文件,若扫描到第一权限特征集合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否被测试样本申请的对应元素置为一个值,表达第一权限特征集合中的该种权限特征被测试样本申请;针对于没有在测试样本的初步分析文件中扫描到的权限特征,将测试样本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为另一个值,表达该种权限特征未被测试样本申请。
更进一步的,所述步骤S72、针对于测试样本,逐行扫描其初步分析文件,若扫描到第一权限特征集合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否被测试样本申请的对应元素置为二进制1,表达第一权限特征集合中的该种权限特征被测试样本申请;针对于没有在测试样本的初步分析文件中扫描到的权限特征,将测试样本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为二进制0,表达该种权限特征未被测试样本申请。
本发明的第二目的通过下述技术方案实现:一种基于权限特征的Android恶意软件检测系统,包括
训练样本集采集模块,用于获取一定数量的Android恶意软件训练样本构造第一训练样本集;用于获取一定数量的Android非恶意软件训练样本构造第二训练样本集;
训练样本的第一权限特征向量提取模块,用于提取第一训练样本集和第二训练样本集中的各训练样本的第一权限特征向量,具体为:针对于第一训练样本集和第二训练样本集中的各训练样本,分析出各APK文件中所申请的权限,从而生成训练样本的第一权限特征向量;其中第一权限特征向量由多个元素组成,其中一个元素对应表达一种权限特征是否被训练样本申请;
权限特征选取模块,用于比较各种权限在第一训练样本集的d值以及在第二训练样本集的d值,用于根据上述比较结果选取出在第一训练样本集的d值大于在第二训练样本集的d值的权限特征,由上述选取出来的各种权限特征构成第一权限特征集合;其中各种权限特征在第一训练样本集的d值为:第一训练样本集中申请该权限特征的训练样本总数除以第一训练样本集所有训练样本的总数;其中各种权限特征在第二训练样本集的d值为:第二训练样本集中申请该权限特征的训练样本总数除以第二训练样本集所有训练样本的总数;
权限特征初始值计算模块,用于计算各种权限特征的初始权值,具体为:针对于第一权限特征集合中的各种权限特征,计算出各种权限特征在第一训练样本集的d值和在第二训练样本集的d值之比,作为对应各种权限特征的初始权值;
训练样本的第二权限特征向量提取模块,用于提取第一训练样本集各训练样本的第二特征向量,具体为:针对于第一训练样本集的各训练样本,分析出其APK文件中所申请的权限,然后根据第一权限特征集合得到该训练样本的第二权限特征向量,其中该训练样本的第二权限特征向量的各元素对应表达的是第一权限特征集合中的各种权限特征是否被该训练样本申请;
关联矩阵生成模块,用于生成第一训练样本集的各训练样本的关联矩阵,具体过程如下:针对于第一训练样本集的各训练样本,通过扫描其第二权限特征向量获取到训练样本针对于第一权限特征集合中各种权限特征的申请情况,从而生成各训练样本的关联矩阵;其中各训练样本的关联矩阵中各元素对应记录第一权限特征集合中各种权限特征之间的关联系数,包括各种权限特征与其他另一种权限特征之间的关联系数以及各种权限特征与本身之间的关联系数;其中针对第一权限特征集合中各种权值特征与其他另一种权限特征,若训练样本同时申请该种权限特征和其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值与其他另一种权限特征的初始权值相加之和,若训练样本只申请到该种权限或其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值或其他另一种权限特征的初始权值,若训练样本既未申请该种权限也未申请其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一权限特征之间的关联系数为零;针对于各种权限特征与本身之间的关联系数,关联矩阵中对应元素记录该种权限特征与本身之间的关联系数为该种权限特征的初始权值;
权限特征的权限值计算模块,用于计算第一权限特征集合中每种权限特征的权限值,具体为:将第一训练样本集中各训练样本的关联矩阵相加得到矩阵和X,然后将矩阵和X经过PPR算法后得到第一权限特征集合中每种权限特征的权限值:
Y=[PV1,PV2,…,PVn];
Y=[PV1,PV2,…,PVn]=[PPR(X)];
其中PV1至PVn分别对应为第一权限特征集合中第1种权限特征至第n种权限特征的权限值,n为第一权限特征集合中权限特征的种类数;Y为第一权限特征集合中第1种权限特征至第n种权限特征的权限值构成的矩阵;
测试样本的权限特征向量提取模块,用于提取测试样本的权限特征向量,具体为针对于测试样本分析出其APK文件中所申请的权限,从而得到测试样本的权限特征向量,其中测试样本的权限特征向量由多个元素组成,其中一个元素对应表达第一权限特征集合中其中一种权限特征是否被测试样本申请;
测试样本检测判据生成模块,用于根据测试样本的权限特征向量以及步骤S7中获取到的第一权限特征集合中每种权限特征的权限值,通过以下公式计算得到测试样本所申请的权限特征的权重η:
其中T为测试样本的权限特征向量,PVm为第一权限特征集合中第m种权限特征的权限值;
测试样本检测模块,用于将测试样本检测判据生成模块生成的测试样本所申请的权限特征的权重η与判断因子k进行比较,若测试样本所申请的权限特征的权重η大于判断因子k,则将测试样本判断为Android恶意软件。
优选的,所述训练样本的第一权限特征向量提取模块包括训练样本的初步分析文本生成模块和训练样本的权限特征向量形成模块,其中:
训练样本的初步分析文本生成模块,用于通过开源Android静态分析工具Androguard分析训练样本的安装包APK,将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入到其初步分析文本中;
训练样本的权限特征向量生成模块,用于根据各训练样本的初步分析文件生成对应各训练样本的第一权限特征向量,具体为,针对于各训练样本,逐行扫描其初步分析文件,若扫描到某种权限特征,则将该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素置为二进制0,表达该种权限特征被该训练样本申请;针对于没有在该训练样本的初步分析文件中扫描到的权限特征,将该训练样本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为二进制0,表达该种权限特征未被该训练样本申请。
优选的,所述测试样本的特征向量提取模块包括测试样本的初步分析文本生成模块和测试样本的权限特征向量形成模块,其中:
测试样本的初步分析文本生成模块,用于通过开源Android静态分析工具Androguard分析测试样本的安装包APK,将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入到其初步分析文本中;
测试的权限特征向量生成模块,用于根据测试样本的初步分析文件生成对应测试样本的权限特征向量,具体为,针对于测试样本,逐行扫描其初步分析文件,若扫描到第一权限特征集合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否被测试样本申请的对应元素置为一个值,表达第一权限特征集合中的该种权限特征被测试样本申请;针对于没有在测试样本的初步分析文件中扫描到的权限特征,将测试样本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为另一个值,表达该种权限特征未被测试样本申请。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明Android恶意软件检测方法首先构建训练样本集,包括由Android恶意软件训练样本构造的第一训练样本集以及由Android非恶意软件训练样本构造的第二训练样本集;然后提取出第一训练样本集和第二训练样本集中各训练样本的第一权限特征向量;计算各种权限特征在第一训练样本集和第二训练样本集的d值,将在第一训练样本集的d值大于在第二训练样本集的d值的权限特征挑选出来作为第一权限特征集合中的各种权限特征;根据第一权限特征集合,生成第一训练样本集中各训练样本的第二权限特征向量,并制定规则建立第一训练样本集中各训练样本的关联系数矩阵,其中各训练样本的关联系数矩阵中各元素分别记录的是该训练样本中各特征权限之间的关联系数;接着将第一训练样本集中各训练样本的关联矩阵求和后输入PPR算法,通过PPR算法获取到第一权限特征集合中每种权限特征的权限值;获取待检测的Android软件作为测试样本,然后根据第一权限特征集合,生成测试样本的权限特征向量,接着利用第一权限特征集合中每种权限特征的权限值计算出测试样本所申请的权限特征的权重η,最后将η与判断因子k进行比较,根据比较结果判断出测试样本是否为Android恶意软件。由上述可知,本发明制定规则建立每个训练样本的关联矩阵,并且通过把各训练样本的关联矩阵相加得到的和输入PPR算法获取到第一权限特征集合中各权限特征的权限值,从而获取到测试样本所申请的权限特征的权重η,最后通过测试样本所申请的权限特征的权重η判断出测试样本是否为Android恶意软件,大大提高了Android恶意软件的检测准确率。
(2)本发明Android恶意软件检测方法中,根据各种权限特征在第一训练样本集和第二训练样本集的d值,将在第一训练样本集的d值大于在第二训练样本集的d值的权限特征挑选出来作为第一权限特征集合,由于某种权限特征在某一训练样本集的d值指的是:某一训练样本集中申请该权限特征的训练样本总数除以某一训练样本集所有训练样本的总数,故d值反映的是各种权限特征被训练样本集各训练样本申请的概率,因此上述挑选的第一权限特征集合中的各种权限特征,其被Android恶意软件训练样本申请的概率大于被Android非恶意软件训练样本申请的概率,故第一权限特征集合中的各种权限特征更能够反应Android恶意软件的特点;针对于第一训练样本集的各训练样本,根据第一权限特征集合得到维度更低的第二权限特征向量,进而通过扫描第一训练样本集中各训练样本的第二权限特征向量得到各训练样本的关联矩阵,相比未挑选之前,第一权限特征集合中的权限特征种类大大减少并且更加能够反应Android恶意软件的特点,因此通过挑选出的第一权限特征集合形成训练样本的第二权限特征向量能够更加快速的获取到更加合适的关联矩阵,另外针对于测试样本,通过第一权限特征集合提取出测试的权限特征向量,该权限特征向量仅仅包括表达第一权限特征集合中各种权限特征是否被申请的各元素,因此大大降低了测试样本的权限特征向量的维度,加快了测试样本特征向量的提取。
(3)本发明Android恶意软件检测方法中,在获取训练样本的第一权限特征向量时,针对于各训练样本,逐行扫描其初步分析文件,若扫描到某种权限特征,则将该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素置为1,通过1表达该种权限特征被该训练样本申请;针对于没有被训练样本申请的权限特征,将第一权限特征向量中表达该种权限特征是否被申请的对应元素置为0,通过0表达该种权限特征未被对应训练样本申请;可见通过本发明上述方法获取到的训练样本的第一权限特征向量各元素为1或0,因此训练样本的第一权限特征向量非常简单,更便于后期使用。同样的,针对于测试样本的权限特征向量,本发明方法获取到测试样本的权限特征向量中各元素也是为1或0,大大简化了测试样本的权限特征向量。
附图说明
图1是本发明Android恶意软件检测方法的流程图。
图2是本发明Android恶意软件检测方法权限特征选取的流程图。
图3是本发明Android恶意软件检测系统的结构框图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本实施例公开了一种基于权限特征的Android恶意软件检测方法,如图1所示,步骤如下:
步骤S1、获取一定数量的Android恶意软件训练样本构造第一训练样本集,获取一定数量的Android非恶意软件训练样本构造第二训练样本集;
步骤S2、针对于第一训练样本集和第二训练样本集中的各训练样本,分析出对应各APK文件中所申请的权限,从而生成各训练样本的第一权限特征向量;其中各训练样本的第一权限特征向量由多个元素组成,其中一个元素对应表达一种权限特征是否被训练样本申请;
在本实施例中,上述获取到训练样本的第一权限特征向量的具体过程如下:
步骤S21、通过开源Android静态分析工具Androguard分析训练样本的安装包APK:首先将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入到其初步分析文本中;其中在本实施例中,通过Python程序批量化分析第一训练样本集和第二训练样本集中各训练样本对应的各APK文件;
步骤S22、针对于各训练样本,通过Java程序工具逐行扫描其初步分析文件,若扫描到某种权限特征,则将该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素置为一个值,在本实施例中,该值可以为二进制1,表达该种权限特征被该训练样本申请;对于没有在该训练样本的初步分析文件中扫描到的权限特征,将将该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素置为另一个值,在本实施例中,该值可以为二进制0,表达该种权限特征未被该申请。例如训练样本第一权限特征向量中总共包括51个元素,51个元素分别对应表达51种权限特征是否被训练样本申请,若某训练样本申请了51种权限特征中的第1至5、8至11、16、18、19、26、33、34、40、43、46、49至51种权限特征,则得到该训练样本的第一权限特征向量如下:
111110011110000101100000010000001100000100100100111;
步骤S3、扫描第一训练样本集中各训练样本的第一权限特征向量,计算各种权限特征在第一训练样本集的d值;扫描第二训练样本集中各训练样本的第一权限特征向量,计算各种权限特征在第二训练样本集的d值;然后针对每一权限特征,比较该权限特征在第一训练样本集的d值以及在第二训练样本集的d值;最后从中选取出在第一训练样本集的d值大于在第二训练样本集的d值的权限特征,如图2所示,由上述选取出的各种权限特征构成第一权限特征集合;例如某种权限特征在第一训练样本集的d值为0.992,在第二训练样本集的d值为0.949,则该权限特征将被选取出来。
其中各种权限特征在第一训练样本集的d值为:第一训练样本集中申请该权限特征的训练样本总数除以第一训练样本集所有训练样本的总数,在本实施例中,上述除法得到的值保留3位小数。比如第一训练样本集总共包括1000个训练样本,即1000个Android恶意软件,针对于某种权限特征,若第一训练样本集中有900个训练样本申请该种权限特征,则该种权限特征在第一训练样本集的d值为910除以1000,即为0.91。其中在本实施例中,通过扫描各训练样本的第一权限特征向量获取到其是否申请某种权限特征,若某训练样本Z的第一权限特征向量中表达某种权限特征z是否被申请的元素为1,则表示该训练样本Z申请了该种权限特征z。
其中各种权限特征在第二训练样本集的d值为:第二训练样本集中申请该权限特征的训练样本总数除以第二训练样本集所有训练样本的总数,在本实施例中,上述除法得到的值保留3位小数。其中第二训练样本集中申请某种权限特征的训练样本总数的获取方法和上述第一训练样本集中申请某种权限特征的训练样本总数的获取方法相同。
步骤S4、针对第一权限特征集合中的各种权限特征,即本步骤S3中选取出来的各种权限特征,计算出各种权限特征在第一训练样本集的d值和在第二训练样本集的d值之比,取整后作为对应各种权限特征的初始权值;例如第一权限特征集合中的某种权限特征在第一训练样本集的d值为0.992,在第二训练样本集的d值为0.949,那么该权限特征的初始权值为1。
同时,针对于第一训练样本集的各训练样本,分析出其APK文件中所申请的权限,然后根据第一权限特征集合得到该训练样本的第二权限特征向量,其中该训练样本的第二权限特征向量的各元素对应表达的是第一权限特征集合中的各种权限特征是否被该训练样本申请;
步骤S5、针对于第一训练样本集的各训练样本,扫描其第二权限特征向量,获取到训练样本针对于第一权限特征集合中各种权限特征的申请情况,从而对应生成各训练样本的关联矩阵;其中各训练样本的关联矩阵中各元素对应记录第一权限特征集合中各种权限特征之间的关联系数,包括各种权限特征与其他另一种权限特征之间的关联系数以及各种权限特征与本身之间的关联系数;其中按照以下规则生成关联矩阵:针对第一权限特征集合中各种权值特征与其他另一种权限特征,若训练样本同时申请该种权限特征和其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值与其他另一种权限特征的初始权值相加之和,若训练样本只申请到该种权限或其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值或其他另一种权限特征的初始权值,若训练样本既未申请该种权限也未申请其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一权限特征之间的关联系数为零;针对于各种权限特征与本身之间的关联系数,关联矩阵中对应元素记录该种权限特征与本身之间的关联系数为该种权限特征的初始权值;
假设本实施中步骤S3中选取出来13种权限特征为第一权限特征集合,即第一权限特征集合中包括13种权限特征,假如第1至13种权限特征分别为A至M,步骤S4中计算得到第1至13种权限特征的初始权值分别为WA~WM;本实施例上述步骤在构建第一训练样本集的某训练样本的关联矩阵时,扫描该训练样本的第二权限特征向量,获取到该训练样本针对于第一权限特征集合中13种权限特征的申请情况,通过这13种权限特征的申请情况构建得到关联矩阵,其中关联矩阵中各元素对应记录第一权限特征集合中各种权限特征之间的关联系数;比如针对于第x种权限特征和第y种权限特征,将第x种权限特征和第y种权限特征的关联系数置于该训练样本的关联矩阵第x行第y列,x∈[A~B],y∈[A~B];其中针对于第x种权限和第y种权限特征,如果训练样本同时申请第x种权限特征和第y种权限特征,则训练样本中第x种权限特征和第y种权限特征的关联系数为Wx+Wy,关联矩阵中对应元素即第x行第y列元素为Wx+Wy;若训练样本只申请第x种权限特征或第y种权限特征,则训练样本中第x种权限特征和第y种权限特征的关联系数对应为Wx或Wy,关联矩阵中对应元素即第x行第y列元素为Wx或Wy;若训练样本既未申请第x种权限特征也未申请第y种权限特征,则训练样本中第x种权限特征和第y种权限特征的关联系数为0,关联矩阵中对应元素即第x行第y列元素为0;其中关联矩阵中第x行第x列的元素为第x种权限特征的初始权值Wx。例如本实施例中,步骤S4中计算得到第1至13种权限特征的初始权值WA~WM如下:
{WA,WB,WC,WD,WE,WF,WG,WH,WI,WJ,WK,WL,WM}={1,1,3,3,5,2,16,16,3,2,1,3,1},则扫描某一训练样本第二权限特征向量后,构建得到某一训练样本的关联矩阵如下:
步骤S6、将步骤S5中获取到的第一训练样本集中各训练样本的关联矩阵相加得到矩阵和X,把矩阵和X经过PPR算法后得到第一权限特征集合中每种权限特征的权限值:
Y=[PV1,PV2,…,PVn];
Y=[PV1,PV2,…,PVn]=[PPR(X)];
其中PV1至PVn分别对应为第一权限特征集合中第1种权限特征至第n种权限特征的权限值,n为第一权限特征集合中权限特征的种类数;Y为第一权限特征集合中第1种权限特征至第n种权限特征的权限值构成的矩阵;如果步骤S3中选取出来13种权限特征,那么本实施例中此次n即为13。
步骤S7、将需要检测其是否为恶意软件的Android软件作为测试样本,针对于测试样本,分析出其APK文件中所申请的权限,得到测试样本的权限特征向量,其中测试样本的权限特征向量由多个元素组成,其中一个元素对应表达第一权限特征集合中其中一种权限特征是否被测试样本申请;然后根据测试样本的权限特征向量以及步骤S6中获取到的第一权限特征集合中每种权限特征的权限值,通过以下公式计算得到测试样本所申请的权限特征的权重η:
其中T为测试样本的权限特征向量,PVm为第一权限特征集合中第m种权限特征的权限值;
其中在本步骤中,得到测试样本的权限特征向量的具体过程如下:
步骤S71、通过开源Android静态分析工具Androguard分析测试样本的安装包APK:首先将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入到其初步分析文本中;
步骤S72、针对于测试样本,逐行扫描其初步分析文件,若扫描到第一权限特征集合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否被测试样本申请的对应元素置为一个值,在本实施例中该值为二进制1,表达第一权限特征集合中的该种权限特征被测试样本申请;针对于没有在测试样本的初步分析文件中扫描到的权限特征,将测试样本的权限特征向量中表达该种权限特征是否被申请的对应元素置为另一个值,在本实施例中该值为二进制0,表达该种权限特征未被对应测试样本申请。
步骤S8、将步骤S7得到的测试样本所申请的权限特征的权重η与判断因子k进行比较,若测试样本所申请的权限特征的权重η大于判断因子k,则将测试样本判断为Android恶意软件。在本实施例中,判断因子k可选择0.25~0.35中的其中一个值。
本实施例还公开了一种用于实现上述方法的基于权限特征的Android恶意软件检测系统,如图3所示,包括
训练样本集采集模块,用于获取一定数量的Android恶意软件训练样本构造第一训练样本集;用于获取一定数量的Android非恶意软件训练样本构造第二训练样本集;
训练样本的第一权限特征向量提取模块,用于提取第一训练样本集和第二训练样本集中的各训练样本的第一权限特征向量,具体为:针对于第一训练样本集和第二训练样本集中的各训练样本,分析出各APK文件中所申请的权限,从而生成训练样本的第一权限特征向量;其中第一权限特征向量由多个元素组成,其中一个元素对应表达一种权限特征是否被训练样本申请;
权限特征选取模块,用于比较各种权限在第一训练样本集的d值以及在第二训练样本集的d值,用于根据上述比较结果选取出在第一训练样本集的d值大于在第二训练样本集的d值的权限特征,由上述选取出来的各种权限特征构成第一权限特征集合;其中各种权限特征在第一训练样本集的d值为:第一训练样本集中申请该权限特征的训练样本总数除以第一训练样本集所有训练样本的总数;其中各种权限特征在第二训练样本集的d值为:第二训练样本集中申请该权限特征的训练样本总数除以第二训练样本集所有训练样本的总数;
权限特征初始值计算模块,用于计算各种权限特征的初始权值,具体为:针对于第一权限特征集合中的各种权限特征,计算出各种权限特征在第一训练样本集的d值和在第二训练样本集的d值之比,作为对应各种权限特征的初始权值;
训练样本的第二权限特征向量提取模块,用于提取第一训练样本集各训练样本的第二特征向量,具体为:针对于第一训练样本集的各训练样本,分析出其APK文件中所申请的权限,然后根据第一权限特征集合得到该训练样本的第二权限特征向量,其中该训练样本的第二权限特征向量的各元素对应表达的是第一权限特征集合中的各种权限特征是否被该训练样本申请;
关联矩阵生成模块,用于生成第一训练样本集的各训练样本的关联矩阵,具体过程如下:针对于第一训练样本集的各训练样本,通过扫描其第二权限特征向量获取到训练样本针对于第一权限特征集合中各种权限特征的申请情况,从而生成各训练样本的关联矩阵;其中各训练样本的关联矩阵中各元素对应记录第一权限特征集合中各种权限特征之间的关联系数,包括各种权限特征与其他另一种权限特征之间的关联系数以及各种权限特征与本身之间的关联系数;其中针对第一权限特征集合中各种权值特征与其他另一种权限特征,若训练样本同时申请该种权限特征和其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值与其他另一种权限特征的初始权值相加之和,若训练样本只申请到该种权限或其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值或其他另一种权限特征的初始权值,若训练样本既未申请该种权限也未申请其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一权限特征之间的关联系数为零;针对于各种权限特征与本身之间的关联系数,关联矩阵中对应元素记录该种权限特征与本身之间的关联系数为该种权限特征的初始权值;
权限特征的权限值计算模块,用于计算第一权限特征集合中每种权限特征的权限值,具体为:将第一训练样本集中各训练样本的关联矩阵相加得到矩阵和X,然后将矩阵和X经过PPR算法后得到第一权限特征集合中每种权限特征的权限值:
Y=[PV1,PV2,…,PVn];
Y=[PV1,PV2,…,PVn]=[PPR(X)];
其中PV1至PVn分别对应为第一权限特征集合中第1种权限特征至第n种权限特征的权限值,n为第一权限特征集合中权限特征的种类数;Y为第一权限特征集合中第1种权限特征至第n种权限特征的权限值构成的矩阵;
测试样本的权限特征向量提取模块,用于提取测试样本的权限特征向量,具体为针对于测试样本分析出其APK文件中所申请的权限,从而得到测试样本的权限特征向量,其中测试样本的权限特征向量由多个元素组成,其中一个元素对应表达第一权限特征集合中其中一种权限特征是否被测试样本申请;
测试样本检测判据生成模块,用于根据测试样本的权限特征向量以及步骤S7中获取到的第一权限特征集合中每种权限特征的权限值,通过以下公式计算得到测试样本检测判据,即测试样本所申请的权限特征的权重η:
其中T为测试样本的权限特征向量,PVm为第一权限特征集合中第m种权限特征的权限值;
测试样本检测模块,用于将测试样本检测判据生成模块生成的测试样本所申请的权限特征的权重η与判断因子k进行比较,若测试样本所申请的权限特征的权重η大于因子k,则将测试样本判断为Android恶意软件。
在本实施例中,上述训练样本的第一权限特征向量提取模块包括训练样本的初步分析文本生成模块和训练样本的权限特征向量形成模块,其中:
训练样本的初步分析文本生成模块,用于通过开源Android静态分析工具Androguard分析训练样本的安装包APK,将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入到其初步分析文本中;
训练样本的权限特征向量生成模块,用于根据各训练样本的初步分析文件生成对应各训练样本的第一权限特征向量,具体为,针对于第一训练样本集和第二训练样本集中的各训练样本,逐行扫描其初步分析文件,若扫描到某种权限特征,则将该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素置为一个值,在本实施例中该值可以为二进制1,表达该种权限特征被该训练样本申请;针对于没有在训练样本的初步分析文件中扫描到的权限特征,将训练样本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为另一个值,在本实施例中该值可以为二进制0,表达该种权限特征未被对应训练样本申请。
本实施例上述测试样本的特征向量提取模块包括测试样本的初步分析文本生成模块和测试样本的权限特征向量形成模块,其中:
测试样本的初步分析文本生成模块,用于通过开源Android静态分析工具Androguard分析测试样本的安装包APK,将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入到其初步分析文本中;
测试样本的权限特征向量生成模块,用于根据测试样本的初步分析文件生成对应测试样本的权限特征向量,具体为,针对于测试样本,逐行扫描其初步分析文件,若扫描到第一权限特征集合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否被测试样本申请的对应元素置为一个值,在本实施例中,该值可以为二进制1,表达第一权限特征集合中的该种权限特征被测试样本申请;针对于没有在测试样本的初步分析文件中扫描到的权限特征,将测试样本的权限特征向量中表达该种权限特征是否被申请的对应元素置为另一个值,在本实施例中,该值可以为二进制0,表达该种权限特征未被测试样本申请。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (10)
1.一种基于权限特征的Android恶意软件检测方法,其特征在于,步骤如下:
步骤S1、获取一定数量的Android恶意软件训练样本构造第一训练样本集,获取一定数量的Android非恶意软件训练样本构造第二训练样本集;
步骤S2、针对于第一训练样本集和第二训练样本集中的各训练样本,分析出对应各APK文件中所申请的权限,从而生成训练样本的第一权限特征向量;其中各训练样本的第一权限特征向量由多个元素组成,其中一个元素对应表达一种权限特征是否被该训练样本申请;
步骤S3、扫描第一训练样本集和第二训练样本集中各训练样本的第一权限特征向量,计算各种权限特征在第一训练样本集的d值以及计算各种权限特征在第二训练样本集的d值;然后针对每一权限特征,比较该权限特征在第一训练样本集的d值以及在第二训练样本集的d值;最后从中选取出在第一训练样本集的d值大于在第二训练样本集的d值的权限特征,由上述选取出来的各种权限特征构成第一权限特征集合;
其中各种权限特征在第一训练样本集的d值为:第一训练样本集中申请该权限特征的训练样本总数除以第一训练样本集所有训练样本的总数;
其中各种权限特征在第二训练样本集的d值为:第二训练样本集中申请该权限特征的训练样本总数除以第二训练样本集所有训练样本的总数;
步骤S4、针对于第一权限特征集合中的各种权限特征,计算出各种权限特征在第一训练样本集的d值和在第二训练样本集的d值之比,取整后作为对应各种权限特征的初始权值;
同时,针对于第一训练样本集的各训练样本,分析出其APK文件中所申请的权限,然后根据第一权限特征集合得到该训练样本的第二权限特征向量,其中该训练样本的第二权限特征向量的各元素对应表达的是第一权限特征集合中的各种权限特征是否被该训练样本申请;
步骤S5、针对于第一训练样本集的各训练样本,扫描其第二权限特征向量,获取到各训练样本针对于第一权限特征集合中各种权限特征的申请情况,从而对应生成各训练样本的关联矩阵;其中各训练样本的关联矩阵中各元素对应记录第一权限特征集合中各种权限特征之间的关联系数,包括各种权限特征与其他另一种权限特征之间的关联系数以及各种权限特征与本身之间的关联系数;其中按照以下规则生成关联矩阵:针对第一权限特征集合中各种权值特征与其他另一种权限特征,若训练样本同时申请该种权限特征和其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值与其他另一种权限特征的初始权值相加之和,若训练样本只申请到该种权限或其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值或其他另一种权限特征的初始权值,若训练样本既未申请该种权限也未申请其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一权限特征之间的关联系数为零;针对于各种权限特征与本身之间的关联系数,关联矩阵中对应元素记录该种权限特征与本身之间的关联系数为该种权限特征的初始权值;
步骤S6、将步骤S5中获取到的第一训练样本集中各训练样本的关联矩阵相加得到矩阵和X,把矩阵和X经过PPR算法后得到第一权限特征集合中每种权限特征的权限值:
Y=[PV1,PV2,…,PVn];
Y=[PV1,PV2,…,PVn]=[PPR(X)];
其中PV1至PVn分别对应为第一权限特征集合中第1种权限特征至第n种权限特征的权限值,n为第一权限特征集合中权限特征的种类数;Y为第一权限特征集合中第1种权限特征至第n种权限特征的权限值构成的矩阵;
步骤S7、将需要检测其是否为恶意软件的Android软件作为测试样本,针对于测试样本,分析出其APK文件中所申请的权限,得到测试样本的权限特征向量,其中测试样本的权限特征向量由多个元素组成,其中一个元素对应表达第一权限特征集合中其中一种权限特征是否被测试样本申请;然后根据测试样本的权限特征向量以及步骤S6中获取到的第一权限特征集合中每种权限特征的权限值,通过以下公式计算得到测试样本所申请的权限特征的权重η:
<mrow>
<mi>&eta;</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mi>T</mi>
<mo>*</mo>
<mi>Y</mi>
</mrow>
<mrow>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mi>m</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</msubsup>
<msub>
<mi>PV</mi>
<mi>m</mi>
</msub>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中T为测试样本的权限特征向量,PVm为第一权限特征集合中第m种权限特征的权限值;
步骤S8、将步骤S7得到的测试样本所申请的权限特征的权重η与判断因子k进行比较,若测试样本所申请的权限特征的权重η大于判断因子k,则将测试样本判断为Android恶意软件。
2.根据权利要求1所述的基于权限特征的Android恶意软件检测方法,其特征在于,所述步骤S8中判断因子k为0.25~0.35中的其中一个值。
3.根据权利要求1所述的基于权限特征的Android恶意软件检测方法,其特征在于,所述步骤S2中,获取到训练样本的第一权限特征向量的具体过程如下:
步骤S21、通过开源Android静态分析工具Androguard分析训练样本的安装包APK:首先将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入到其初步分析文本中;
步骤S22、针对于各训练样本,逐行扫描其初步分析文件,若扫描到某种权限特征,则将该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素置为一个值,表达该种权限特征被该训练样本申请;针对于没有在该训练样本的初步分析文件中扫描到的权限特征,将该训练样本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为另一个值,表达该种权限特征未被该训练样本申请。
4.根据权利要求3所述的基于权限特征的Android恶意软件检测方法,其特征在于,所述步骤S22中,针对于各训练样本,逐行扫描其初步分析文件,若扫描到某种权限特征,则将该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素置为二进制0,表达该种权限特征被该训练样本申请;针对于没有在该训练样本的初步分析文件中扫描到的权限特征,将该训练样本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为二进制0,表达该种权限特征未被该训练样本申请。
5.根据权利要求3所述的基于权限特征的Android恶意软件检测方法,其特征在于,所述步骤S21中,通过Python程序批量化分析第一训练样本集和第二训练样本集中各训练样本对应的各APK文件;所述步骤S22中,针对于各训练样本,通过Java程序工具对其初步分析文本进行逐行扫描。
6.根据权利要求1所述的基于权限特征的Android恶意软件检测方法,其特征在于,所述步骤S7中,得到测试样本的权限特征向量的具体过程如下:
步骤S71、通过开源Android静态分析工具Androguard分析测试样本的安装包APK:首先将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入到其初步分析文本中;
步骤S72、针对于测试样本,逐行扫描其初步分析文件,若扫描到第一权限特征集合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否被测试样本申请的对应元素置为一个值,表达第一权限特征集合中的该种权限特征被测试样本申请;针对于没有在测试样本的初步分析文件中扫描到的权限特征,将测试样本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为另一个值,表达该种权限特征未被测试样本申请。
7.根据权利要求6所述的基于权限特征的Android恶意软件检测方法,其特征在于,所述步骤S72、针对于测试样本,逐行扫描其初步分析文件,若扫描到第一权限特征集合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否被测试样本申请的对应元素置为二进制1,表达第一权限特征集合中的该种权限特征被测试样本申请;针对于没有在测试样本的初步分析文件中扫描到的权限特征,将测试样本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为二进制0,表达该种权限特征未被测试样本申请。
8.一种基于权限特征的Android恶意软件检测系统,其特征在于,包括
训练样本集采集模块,用于获取一定数量的Android恶意软件训练样本构造第一训练样本集;用于获取一定数量的Android非恶意软件训练样本构造第二训练样本集;
训练样本的第一权限特征向量提取模块,用于提取第一训练样本集和第二训练样本集中的各训练样本的第一权限特征向量,具体为:针对于第一训练样本集和第二训练样本集中的各训练样本,分析出各APK文件中所申请的权限,从而生成训练样本的第一权限特征向量;其中第一权限特征向量由多个元素组成,其中一个元素对应表达一种权限特征是否被训练样本申请;
权限特征选取模块,用于比较各种权限在第一训练样本集的d值以及在第二训练样本集的d值,用于根据上述比较结果选取出在第一训练样本集的d值大于在第二训练样本集的d值的权限特征,由上述选取出来的各种权限特征构成第一权限特征集合;其中各种权限特征在第一训练样本集的d值为:第一训练样本集中申请该权限特征的训练样本总数除以第一训练样本集所有训练样本的总数;其中各种权限特征在第二训练样本集的d值为:第二训练样本集中申请该权限特征的训练样本总数除以第二训练样本集所有训练样本的总数;
权限特征初始值计算模块,用于计算各种权限特征的初始权值,具体为:针对于第一权限特征集合中的各种权限特征,计算出各种权限特征在第一训练样本集的d值和在第二训练样本集的d值之比,作为对应各种权限特征的初始权值;
训练样本的第二权限特征向量提取模块,用于提取第一训练样本集各训练样本的第二特征向量,具体为:针对于第一训练样本集的各训练样本,分析出其APK文件中所申请的权限,然后根据第一权限特征集合得到该训练样本的第二权限特征向量,其中该训练样本的第二权限特征向量的各元素对应表达的是第一权限特征集合中的各种权限特征是否被该训练样本申请;
关联矩阵生成模块,用于生成第一训练样本集的各训练样本的关联矩阵,具体过程如下:针对于第一训练样本集的各训练样本,通过扫描其第二权限特征向量获取到训练样本针对于第一权限特征集合中各种权限特征的申请情况,从而生成各训练样本的关联矩阵;其中各训练样本的关联矩阵中各元素对应记录第一权限特征集合中各种权限特征之间的关联系数,包括各种权限特征与其他另一种权限特征之间的关联系数以及各种权限特征与本身之间的关联系数;其中针对第一权限特征集合中各种权值特征与其他另一种权限特征,若训练样本同时申请该种权限特征和其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值与其他另一种权限特征的初始权值相加之和,若训练样本只申请到该种权限或其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值或其他另一种权限特征的初始权值,若训练样本既未申请该种权限也未申请其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一权限特征之间的关联系数为零;针对于各种权限特征与本身之间的关联系数,关联矩阵中对应元素记录该种权限特征与本身之间的关联系数为该种权限特征的初始权值;
权限特征的权限值计算模块,用于计算第一权限特征集合中每种权限特征的权限值,具体为:将第一训练样本集中各训练样本的关联矩阵相加得到矩阵和X,然后将矩阵和X经过PPR算法后得到第一权限特征集合中每种权限特征的权限值:
Y=[PV1,PV2,…,PVn];
Y=[PV1,PV2,…,PVn]=[PPR(X)];
其中PV1至PVn分别对应为第一权限特征集合中第1种权限特征至第n种权限特征的权限值,n为第一权限特征集合中权限特征的种类数;Y为第一权限特征集合中第1种权限特征至第n种权限特征的权限值构成的矩阵;
测试样本的权限特征向量提取模块,用于提取测试样本的权限特征向量,具体为针对于测试样本分析出其APK文件中所申请的权限,从而得到测试样本的权限特征向量,其中测试样本的权限特征向量由多个元素组成,其中一个元素对应表达第一权限特征集合中其中一种权限特征是否被测试样本申请;
测试样本检测判据生成模块,用于根据测试样本的权限特征向量以及步骤S7中获取到的第一权限特征集合中每种权限特征的权限值,通过以下公式计算得到测试样本所申请的权限特征的权重η:
<mrow>
<mi>&eta;</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mi>T</mi>
<mo>*</mo>
<mi>Y</mi>
</mrow>
<mrow>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mi>m</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</msubsup>
<msub>
<mi>PV</mi>
<mi>m</mi>
</msub>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中T为测试样本的权限特征向量,PVm为第一权限特征集合中第m种权限特征的权限值;
测试样本检测模块,用于将测试样本检测判据生成模块生成的测试样本所申请的权限特征的权重η与判断因子k进行比较,若测试样本所申请的权限特征的权重η大于判断因子k,则将测试样本判断为Android恶意软件。
9.根据权利要求8所述的基于权限特征的Android恶意软件检测系统,其特征在于,所述训练样本的第一权限特征向量提取模块包括训练样本的初步分析文本生成模块和训练样本的权限特征向量形成模块,其中:
训练样本的初步分析文本生成模块,用于通过开源Android静态分析工具Androguard分析训练样本的安装包APK,将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入到其初步分析文本中;
训练样本的权限特征向量生成模块,用于根据各训练样本的初步分析文件生成对应各训练样本的第一权限特征向量,具体为,针对于各训练样本,逐行扫描其初步分析文件,若扫描到某种权限特征,则将该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素置为二进制0,表达该种权限特征被该训练样本申请;针对于没有在该训练样本的初步分析文件中扫描到的权限特征,将该训练样本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为二进制0,表达该种权限特征未被该训练样本申请。
10.根据权利要求8所述的基于权限特征的Android恶意软件检测系统,其特征在于,所述测试样本的特征向量提取模块包括测试样本的初步分析文本生成模块和测试样本的权限特征向量形成模块,其中:
测试样本的初步分析文本生成模块,用于通过开源Android静态分析工具Androguard分析测试样本的安装包APK,将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入到其初步分析文本中;
测试的权限特征向量生成模块,用于根据测试样本的初步分析文件生成对应测试样本的权限特征向量,具体为,针对于测试样本,逐行扫描其初步分析文件,若扫描到第一权限特征集合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否被测试样本申请的对应元素置为一个值,表达第一权限特征集合中的该种权限特征被测试样本申请;针对于没有在测试样本的初步分析文件中扫描到的权限特征,将测试样本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为另一个值,表达该种权限特征未被测试样本申请。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710871649.4A CN107832609B (zh) | 2017-09-25 | 2017-09-25 | 基于权限特征的Android恶意软件检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710871649.4A CN107832609B (zh) | 2017-09-25 | 2017-09-25 | 基于权限特征的Android恶意软件检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107832609A true CN107832609A (zh) | 2018-03-23 |
CN107832609B CN107832609B (zh) | 2020-11-13 |
Family
ID=61644012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710871649.4A Active CN107832609B (zh) | 2017-09-25 | 2017-09-25 | 基于权限特征的Android恶意软件检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107832609B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008701A (zh) * | 2019-03-20 | 2019-07-12 | 北京大学 | 基于elf文件特征的静态检测规则提取方法及检测方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120272329A1 (en) * | 2007-11-15 | 2012-10-25 | International Business Machines Corporation | Obfuscating sensitive data while preserving data usability |
CN103078864A (zh) * | 2010-08-18 | 2013-05-01 | 北京奇虎科技有限公司 | 一种基于云安全的主动防御文件修复方法 |
CN103473506A (zh) * | 2013-08-30 | 2013-12-25 | 北京奇虎科技有限公司 | 用于识别恶意apk文件的方法和装置 |
CN104376258A (zh) * | 2014-11-20 | 2015-02-25 | 工业和信息化部电信研究院 | 安卓应用程序的安全风险检测方法及装置 |
CN104794051A (zh) * | 2014-01-21 | 2015-07-22 | 中国科学院声学研究所 | 一种Android平台恶意软件自动化检测方法 |
CN104809395A (zh) * | 2015-04-23 | 2015-07-29 | 天津大学 | 一种轻量级安卓恶意软件快速判断方法 |
CN104915600A (zh) * | 2015-04-28 | 2015-09-16 | 北京邮电大学 | 一种Android应用程序安全风险评估方法与装置 |
CN105426762A (zh) * | 2015-12-28 | 2016-03-23 | 重庆邮电大学 | 一种android应用程序恶意性的静态检测方法 |
CN105426760A (zh) * | 2015-11-05 | 2016-03-23 | 工业和信息化部电信研究院 | 一种安卓恶意应用的检测方法及装置 |
CN105844425A (zh) * | 2016-04-11 | 2016-08-10 | 全球能源互联网研究院 | 一种用于电力信息物理系统的安全威胁态势综合评判方法 |
-
2017
- 2017-09-25 CN CN201710871649.4A patent/CN107832609B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120272329A1 (en) * | 2007-11-15 | 2012-10-25 | International Business Machines Corporation | Obfuscating sensitive data while preserving data usability |
CN103078864A (zh) * | 2010-08-18 | 2013-05-01 | 北京奇虎科技有限公司 | 一种基于云安全的主动防御文件修复方法 |
CN103473506A (zh) * | 2013-08-30 | 2013-12-25 | 北京奇虎科技有限公司 | 用于识别恶意apk文件的方法和装置 |
CN104794051A (zh) * | 2014-01-21 | 2015-07-22 | 中国科学院声学研究所 | 一种Android平台恶意软件自动化检测方法 |
CN104376258A (zh) * | 2014-11-20 | 2015-02-25 | 工业和信息化部电信研究院 | 安卓应用程序的安全风险检测方法及装置 |
CN104809395A (zh) * | 2015-04-23 | 2015-07-29 | 天津大学 | 一种轻量级安卓恶意软件快速判断方法 |
CN104915600A (zh) * | 2015-04-28 | 2015-09-16 | 北京邮电大学 | 一种Android应用程序安全风险评估方法与装置 |
CN105426760A (zh) * | 2015-11-05 | 2016-03-23 | 工业和信息化部电信研究院 | 一种安卓恶意应用的检测方法及装置 |
CN105426762A (zh) * | 2015-12-28 | 2016-03-23 | 重庆邮电大学 | 一种android应用程序恶意性的静态检测方法 |
CN105844425A (zh) * | 2016-04-11 | 2016-08-10 | 全球能源互联网研究院 | 一种用于电力信息物理系统的安全威胁态势综合评判方法 |
Non-Patent Citations (1)
Title |
---|
赵幸: "Android平台恶意应用程序行为分析与研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008701A (zh) * | 2019-03-20 | 2019-07-12 | 北京大学 | 基于elf文件特征的静态检测规则提取方法及检测方法 |
CN110008701B (zh) * | 2019-03-20 | 2020-11-03 | 北京大学 | 基于elf文件特征的静态检测规则提取方法及检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107832609B (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Arp et al. | Dos and don'ts of machine learning in computer security | |
CN110378749B (zh) | 客户端相似性的评估方法、装置、终端设备及存储介质 | |
CN111639337B (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及系统 | |
Tu et al. | Webshell detection techniques in web applications | |
CN109753800A (zh) | 融合频繁项集与随机森林算法的Android恶意应用检测方法及系统 | |
CN103324697B (zh) | 一种基于图标对比的android应用搜索山寨应用剔除方法 | |
WO2017124884A1 (zh) | 一种针对新增域名自动检测网络钓鱼的方法与系统 | |
CN110795732A (zh) | 基于SVM的Android移动网络终端恶意代码的动静结合检测方法 | |
CN104123501B (zh) | 一种基于多鉴定器集合的病毒在线检测方法 | |
CN107944274A (zh) | 一种基于宽度学习的Android平台恶意应用离线检测方法 | |
CN108280348A (zh) | 基于rgb图像映射的安卓恶意软件识别方法 | |
CN106230772A (zh) | 工业互联网异常行为挖掘方案 | |
CN113468524B (zh) | 基于rasp的机器学习模型安全检测方法 | |
CN106845220A (zh) | 一种Android恶意软件检测系统及方法 | |
CN107463847B (zh) | 一种Android系统下的权限共谋攻击检测方法 | |
Srivastava et al. | Android malware detection amid COVID-19 | |
Baxter et al. | On statistical approaches to the study of ceramic artefacts using geochemical and petrographic data | |
CN115827610A (zh) | 一种有效负荷的检测方法及装置 | |
Torres et al. | Malicious PDF documents detection using machine learning techniques | |
CN106503552A (zh) | 基于签名与数据流模式挖掘的Android恶意软件检测系统及方法 | |
CN115292674A (zh) | 一种基于用户评论数据的欺诈应用检测方法及系统 | |
Khalid et al. | Web vulnerability finder (WVF): automated black-box web vulnerability scanner | |
Dubey et al. | Digital forensics techniques and trends: a review. | |
CN107832609A (zh) | 基于权限特征的Android恶意软件检测方法及系统 | |
Gennissen et al. | Gamut: sifting through images to detect android malware |
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 |