CN107341401B - 一种基于机器学习的恶意应用监测方法和设备 - Google Patents
一种基于机器学习的恶意应用监测方法和设备 Download PDFInfo
- Publication number
- CN107341401B CN107341401B CN201710475611.5A CN201710475611A CN107341401B CN 107341401 B CN107341401 B CN 107341401B CN 201710475611 A CN201710475611 A CN 201710475611A CN 107341401 B CN107341401 B CN 107341401B
- Authority
- CN
- China
- Prior art keywords
- application
- program
- decision model
- application program
- training
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000010801 machine learning Methods 0.000 title claims abstract description 25
- 238000012544 monitoring process Methods 0.000 title claims abstract description 8
- 238000012549 training Methods 0.000 claims abstract description 42
- 238000000605 extraction Methods 0.000 claims abstract description 8
- 238000001514 detection method Methods 0.000 claims description 19
- 238000012360 testing method Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000007637 random forest analysis Methods 0.000 claims description 6
- 230000009467 reduction Effects 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 230000035772 mutation Effects 0.000 abstract description 6
- 230000006399 behavior Effects 0.000 description 9
- 238000013507 mapping Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 238000012795 verification Methods 0.000 description 6
- 230000003542 behavioural effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009466 transformation Effects 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
-
- 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/561—Virus type analysis
-
- 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)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种基于机器学习的恶意应用监测方法和设备,用于解决恶意程序变种或更新后无法很好监测识别的问题。其中方法包括步骤:S101、提取样本集中应用程序的应用特征和恶意标记,样本集中包括恶意应用样本与非恶意应用样本;S102、将提取的应用特征和恶意标记映射至向量空间,获得与样本集中应用程序对应的向量集合;S103、基于机器学习训练决策模型,以及将上述向量集合用于训练决策模型;S104、将训练得到的决策模型用于检测应用程序是否为恶意应用。本发明的方法只需要不断更新样本集中的恶意程序,样本集的更新工作量相对特征码库是非常少的,也不需要构建完备的样本库,本方法即可适应恶意程序更新或者变种。
Description
技术领域
本发明涉及计算机技术,具体涉及一种基于机器学习的恶意应用 监测方法和设备。
背景技术
随着智能手机的快速发展,智能手机用户数量超过20亿,而作为 智能手机最受欢迎的操作***之一,安卓(android)***自2013年以 来一直在智能手机市场中排名第一。此外,在2016年,安卓智能机的 市场份额同比增长了3.2个百分点,达到了84.8%。
不幸的是,安卓***的普及性和开放性大大增加了被攻击的风险。 据报道,新的安卓恶意应用样本到2016年达到了1050万以上,相比 于2015年,恶意应用总数增长幅度高达151%。这种情况下,迫切需 要一种合适的解决方案来阻止安卓恶意软件的传播。
目前,针对恶意程序的检测主要包括基于特征码检测、行为检测 和文件完整性校验检测三种方法。基于特征码检测需要事先构建一个 恶意程序特征码库,该特征码库的构建需要事先捕获恶意程序样本, 然后进行分析提取出最具有代表性的一个或多个字符串,添加到恶意 程序特征码库。对待检测程序基于构建好的恶意程序特征码库进行扫 描匹配,如果成功匹配则说明检测到一个恶意程序,否则没有。因此, 基于特征码检测方法的一个前提是有一个完备的恶意程序特征码库, 如果特征码库不完备,则必然导致漏报。但在实际应用过程中,不可 能生成一个绝对完备的恶意程序特征码库,同时新的未知恶意程序的 特征码不可能提前生成,因此对新的未知恶意程序和已知恶意程序的 变种无能为力。
基于行为的检测方法利用恶意程序的特有行为特征来进行检测, 常见的恶意程序行为包括复制自身到指定目录、创建启动项、关闭安 全软件、删除文件等。通过对正在运行的程序的行为进行监测,如果 发现程序具有这些典型恶意程序行为的检测,则进行报警。基于行为 的检测方法依据是程序的行为特征,但恶意程序和合法程序存在一些 相同或相似的行为,如删除文件、复制文件,因此基于行为的检测方 法,存在很大的误报。
文件完整性校验检测方法首先计算正常文件内容的校验和,然后 将文件校验和保存起业,然后在文件使用时或定期不定期计算其现在 的校验和与原来保存的文件校验和是否一致,如果一致则说明文件没 有被感染,否则说明文件被感染。文件完整性校验方法可以检测已知 和未知恶意程序,但与基于行为的检测方法缺点一样,存在很大的误 报,因为文件内容发生改变并非文件是由于恶意程序感染的唯一原因, 文件内容的改变有可能是正常程序引起的,由于软件行为种类较为繁 杂、应用行为特性描述方法多变,因此在精确度方面效果不佳。而且 这种方法也会影响文件的运行速度。
因此本发明要解决的问题是提供应恶意应用的检测方法,解决对 新的未知恶意程序和已知恶意程序的变种进行自动检测的问题。
发明内容
鉴于上述问题,本发明提出了克服上述问题或者至少部分地解决 上述问题的一种基于机器学习的恶意应用监测方法和设备。
为此目的,第一方面,本发明提出一种基于机器学习的恶意应用 监测方法,包括以下步骤:
S101、提取样本集中应用程序的应用特征和恶意标记,样本集中 包括恶意应用样本与非恶意应用样本;
S102、将提取的应用特征和恶意标记映射至向量空间,获得与样 本集中应用程序对应的向量集合;
S103、基于机器学习训练决策模型,以及将上述向量集合用于训 练决策模型;
S104、将训练得到的决策模型用于检测应用程序是否为恶意应用。
可选的,在基于机器学习训练决策模型之前,还包括:
使用降为方法对向量集合进行降维。
可选的,所述应用特征包括应用程序声明的应用权限和调用的接 口。
可选的,所述应用程序为安卓应用程序,所述应用特征包括安卓 应用程序通过AndroidManifest.xml和/或classes.dex声明的应用权限和 调用的接口。
可选的,所述将提取的应用特征和恶意标记映射至向量空间,包 括:
将恶意标记映射至向量空间时,根据恶意标记的取值,设置向量 对应维度的值;
恶意标记的取值指示该应用程序是否是恶意程序,在该应用程序 是恶意程序时,恶意标记还指示该应用程序所属的恶意程序类型。
可选的,所述样本集包括训练集合测试集;
所述基于机器学习训练决策模型,以及将上述向量集合用于训练 决策模型,包括:
使用训练集对应的向量集合训练决策模型,使用测试集检测决策 模型的分类效果。
可选的,所述机器学习方法为随机森林方法,所述基于机器学习 训练决策模型包括训练决策模型直到随机森林算法产生的决策模型满 足预设条件。
可选的,所述S104、将训练得到的检测模型决策模型用于检测应 用程序是否为恶意应用,包括:
将训练模型用于检测应用程序的恶意应用类型。
第二方面,本发明提供一种计算机可读存储介质,其上存储有计 算机程序,该程序被处理器执行时实现如上任一所述方法的步骤。
第三方面,本发明提供一种计算机设备,包括存储器、处理器以 及存储在所述存储器上并可在所述处理器上执行的计算机程序,所述 处理器执行所述程序时实现如上任一所述方法的步骤。
由上述技术方案可知,本发明通过样本集(样本集中包括已知为 恶意程序的应用特征和恶意标记)训练决策模型,从而自动识别非恶 意程序的特征向量和恶意程序的特征向量。本发明的方法只需要不断 更新样本集中的恶意程序(这个更新的工作量相对特征码库是非常少 的,也不需要构建完备的样本库),本方法即可适应恶意程序更新或者 变种。
前面是提供对本发明一些方面的理解的简要发明内容。这个部分 既不是本发明及其各种实施例的详尽表述也不是穷举的表述。它既不 用于识别本发明的重要或关键特征也不限定本发明的范围,而是以一 种简化形式给出本发明的所选原理,作为对下面给出的更具体的描述 的简介。应当理解,单独地或者组合地利用上面阐述或下面具体描述 的一个或多个特征,本发明的其它实施例也是可能的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面 将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而 易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通 技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图 获得其他的附图。
图1为本发明的一个实施例中执行流程示意图;
图2为本发明的一个实施例中执行流程示意图2。
具体实施方式
下面将结合示例性的通信***描述本发明。
结合图1和图2,本发明提供一种基于机器学习的恶意应用监测方 法,包括以下步骤:
S101、提取样本集中应用程序的应用特征和恶意标记,样本集中 包括恶意应用样本与非恶意应用样本;
S102、将提取的应用特征和恶意标记映射至向量空间,获得与样 本集中应用程序对应的向量集合;
S103、基于机器学习训练决策模型,以及将上述向量集合用于训 练决策模型;
S104、将训练得到的决策模型用于检测应用程序是否为恶意应用。
对于不同的操作平台,其向应用程序开发者所开放的应用程序权 限、API、组件、组件或API的使用方式以及所提供的应用程序权限的 分类方式等可能是不同。基于操作平台对于向应用程序开发者所开放 的内容作为提取样本集中应用程序的应用特征的基础;例如本发明的 一个实施例中,其用本方法识别android应用程序是否为恶意程序;本 方法先根据android对应用开发者开放的权限和可供开发者调用的包 (供开发者调用的包也称为Android library(安卓***库,包括jar文 件和.so文件),通常通过import(java操作符,表示引用)操作符引 入应用程序代码中),获得android***中应用程序的全部应用特征。 将全部的应用特征分类,根据特征分类和恶意标记确定向量空间的维 度。
例如在本发明的一个实施例中,将android***的应用特征按访问 网络、访问地理信息位置、访问设备硬件分类,即再加上恶意标记, 本实施例中,向量空间是4维空间,该4维空间分别对应访问网络、 访问地理信息位置、访问设备硬件和恶意标记。根据一个android应用 具体使用的哪些访问网络的权限,再设置向量对应维度的值。例如若 一个android apk(android Application,安卓应用程序)声明需要访问 4G网络,则该androidapk对应向量的对应维度的值设置为1,若还声 明需要访问wifi网络,则该android apk对应向量的对应维度的值设置 为3。可以理解的是在不同的实施例中,应用特征的分类可以是不同的, 应用特征和向量空间的映射方式也是不同的。本领域技术人员根据本 实施例,可以尝试使用不同的应用特征分类和不同的映射方式,但其 都是根据本发明的原理作出的更具体的实施方式。
样本集中的样本集中的应用程序关联有恶意标记,在本发明的一 个实施例中,若应用程序为非恶意程序,则恶意标记的值为0,若为恶 意应用程序则恶意标记的值为1;在本发明的另一个实施例中,若应用 程序为非恶意程序,则恶意标记的值为0,若为恶意应用程序则恶意标 记的值为正整数,不同的值表示不同的恶意程序类型,例如2(即21) 表示,应用程序恶意访问网络,4(22)应用程序具有恶意访问网络和 访问存储器的恶意。
样本集中的应用程序和恶意标记的关联关系可以是存储于数据库 中,通过访问相关数据库,获取应用程序的恶意标记。数据库中的恶 意标记是根据已确认为恶意程序的设置的。
根据应用程序的应用特征和其对应的恶意标记,以及根据预设的 应用特征和特征分类之间的映射关系,还根据特征分类、恶意标记与 向量空间的映射关系,生成对应的特征向量。有样本集中所有的应用 程序的特征向量组成向量集合。可以理解的是特征向量中包含了恶意 标记信息、面向应用程序开发者的应用特征信息。
本发明通过样本集(样本集中包括已知为恶意程序的应用特征和 恶意标记)训练决策模型,从而自动识别非恶意程序的特征向量和恶 意程序的特征向量。本发明的方法只需要不断更新样本集中的恶意程 序(这个更新的工作量相对特征码库是非常少的,也不需要构建完备 的样本库),本方法即可适应恶意程序更新或者变种。
在本文的另一些实施例中,还自动结合应用特征和恶意标记对恶 意程序进行分类,从而自动生成对恶意程序的分类报告。从而在这一 些实施例中还可以进一步识别出恶意程序的类型。
在基于机器学习训练决策模型之前,还包括:
使用降维方法对向量集合进行降维。
可以理解的是一个android应用实例通常会声明使用一部分应用特 征。或者由于对应特征的分类不同,导致部分维度的信息是冗余的。 因此通过降维操作降低机器学习训练的复杂度,降低了训练时间;另 一方面,也降低决策模型的复杂度,从而缩短的检测应用程序是否为 恶意应用所消耗的时间。
所述应用特征包括应用程序声明的应用权限和调用的接口。
所述应用程序为安卓应用程序,所述应用特征包括安卓应用程序 通过AndroidManifest.xml和/或classes.dex声明的应用权限和调用的接 口。本实施例主要以android平台向开发者提供的应用权限和调用的结 构为例,进行说明。Android应用程序的AndroidManifest.xml和 classes.dex文件中记载了该应用程序所涉及的android SDK中提供的 类名、方法名和属性名,这些类和方法有些有具体的名称,例如activity 又称为活动、应用组件。有些并没有具体的名称。根据该应用程序所 涉及的类名、方法名和属性名,获得对应的特征向量。可以理解的是, 本发明是将android SDK中提供的所有类名、方法名和属性名,分类后, 根据不同类名、方法名和属性名预先建立映射关系,根据映射关系可以根据提供的所有类名、方法名和属性名获得对应特征向量的对应维 度的值。映射关系中分类分别与特征向量的一个维度一一对应。
例如表1所示,该将安卓应用程序包中的AndroidManifest.xml文 件中声明请求的权限和intent过滤事件分别映射表1中权限请求和过滤 目标。在本发明的一个实施例中,若AndroidManifest.xml中声明请求 android.permission.ACCOUNT_MANAGER的权限,则该应用程序包对 应的特征向量中,与权限请求分类对应的维的取值是1,而若AndroidManifest.xml中声明请求android.permission.CALL_PHONE,则 该应用程序包对应的特征向量中,与权限请求分类对应的维的取值是2。
应当说明的请求的权限可以多个,根据不同请求权限的组合,特 征向量中与权限请求分类对应的维的取值可以是不同的,即特征向量 中与权限请求分类对应的维的取值与不同请求权限的组合是一一对应。 在另一些实施例中,不同请求权限的组合与特征向量中与权限请求分 类对应的维的取值之间是多对1关系,即几个请求权限的组合对应一 个取值。而具体哪些请求权限的组合对应某一值,则是根据已知的恶 意程序确定的。
根据classes.dex和AndroidManifest.xml文件中声明的本安卓应用 程序包括的类,这些类都是android SDK提供的,根据类名称获得该安 卓应用程序映射到应用程序组件分类的值。
通过classes.dex文件,提取包括API接口等在内的特征;根据预 设的特征分类(例如表1中对API的分类),根据安卓应用程序中 classes.dex中声明的API,确定该安卓应用程序所对应的特征向量中对 应维的取值。如何根据classes.dex中声明的API确定该安卓应用程序 所对应的特征向量中对应维的取值。可以参考根据AndroidManifest.xml 文件中声明请求的权限确定对应的维的取值,本文不再赘述。
表1应用特征分类表
应理解,上述表1只是用于说明本发明的一个实施例中是如何将 应用特征映射到向量空间中的。随着android***的不断更新,其向开 发者提供的权限和API调用也是不同的,而这也可能导致在不同的时 期,对应用特征的分类方式不同。
在本文的一实施例中,所述样本集包括训练集合测试集;所述基 于机器学习训练决策模型,以及将上述向量集合用于训练决策模型, 包括:
使用训练集对应的向量集合训练决策模型,使用测试集检测决策 模型的分类效果。
所述机器学习方法为随机森林方法,所述基于机器学习训练决策 模型包括训练决策模型直到随机森林算法产生的决策模型满足预设条 件。
所述S104、将训练得到的检测模型决策模型用于检测应用程序是 否为恶意应用,包括:
将训练模型用于检测应用程序的恶意应用类型。即在本文的另一 些实施例中,还自动结合应用特征和恶意标记对恶意程序进行分类, 从而自动生成对恶意程序的分类报告。从而在这一些实施例中还可以 进一步识别出恶意程序的类型。可以理解的是在这些实施例中,可以 基于应用特征和bool型的恶意标记对恶意程序进行分类,也可以是基 于应用特征和恶意标记体现的恶意程序类型对恶意程序进行分类,还 可以是基于恶意标记体现的恶意程序类型对恶意程序进行分类。
本文还提供一种计算机可读存储介质,其上存储有计算机程序, 该程序被处理器执行时实现如上任一实施例或实施例结合的步骤。
本发明还提供一种计算机设备,包括存储器、处理器以及存储在 所述存储器上并可在所述处理器上执行的计算机程序,所述处理器执 行所述程序时实现如上任一实施例或实施例结合的步骤。
本文中使用的“至少一个”、“一个或多个”以及“和/或”是开放 式的表述,在使用时可以是联合的和分离的。例如,“A、B和C中的 至少一个”,“A、B或C中的至少一个”,“A、B和C中的一个或多个” 以及“A、B或C中的一个或多个”指仅有A、仅有B、仅有C、A和 B一起、A和C一起、B和C一起或A、B和C一起。
术语“一个”实体是指一个或多个所述实体。由此术语“一个”、 “一个或多个”和“至少一个”在本文中是可以互换使用的。还应注 意到术语“包括”、“包含”和“具有”也是可以互换使用的。
本文中使用的术语“自动的”及其变型是指在执行处理或操作时 没有实质的人为输入的情况下完成的任何处理或操作。然而,即使在 执行处理或操作时使用了执行所述处理或操作前接收到的实质的或非 实质的人为输入,所述处理或操作也可以是自动的。如果输入影响所 述处理或操作将怎样进行,则视该人为输入是实质的。不影响所述处 理或操作进行的人为输入不视为是实质的。
本文中使用的术语“计算机可读介质”是指参与将指令提供给处 理器执行的任何有形存储设备和/或传输介质。计算机可读介质可以是 在IP网络上的网络传输(如SOAP)中编码的串行指令集。这样的介质可 以采取很多形式,包括但不限于非易失性介质、易失性介质和传输介 质。非易失性介质包括例如NVRAM或者磁或光盘。易失性介质包括 诸如主存储器的动态存储器(如RAM)。计算机可读介质的常见形式包 括例如软盘、柔性盘、硬盘、磁带或任何其它磁介质、磁光介质、 CD-ROM、任何其它光介质、穿孔卡、纸带、任何其它具有孔形图案 的物理介质、RAM、PROM、EPROM、FLASH-EPROM、诸如存储卡 的固态介质、任何其它存储芯片或磁带盒、后面描述的载波、或计算 机可以读取的任何其它介质。电子邮件的数字文件附件或其它自含信 息档案或档案集被认为是相当于有形存储介质的分发介质。当计算机 可读介质被配置为数据库时,应该理解该数据库可以是任何类型的数 据库,例如关系数据库、层级数据库、面向对象的数据库等等。相应 地,认为本发明包括有形存储介质或分发介质和现有技术公知的等同 物以及未来开发的介质,在这些介质中存储本发明的软件实施。
本文中使用的术语“确定”、“运算”、“产生”和“计算”及其变 型可以互换使用,并且包括任何类型的方法、处理、数学运算或技术。 更具体地,这样的术语可以包括诸如BPEL的解释规则或规则语言, 其中逻辑不是硬编码的而是在可以被读、解释、编译和执行的规则文 件中表示。
本文中使用的术语“模块”或“工具”是指任何已知的或以后发 展的硬件、软件、固件、人工智能、模糊逻辑或能够执行与该元件相 关的功能的硬件和软件的组合。另外,虽然用示例性实施方式来描述 本发明,但应当理解本发明的各方面可以单独要求保护。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅 仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定 要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。 而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性 的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备 不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还 包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更 多限制的情况下,由语句“包括……”或“包含……”限定的要素, 并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在 另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不 包括本数;“以上”、“以下”、“以内”等理解为包括本数。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一 旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改, 所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护 范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程 变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发 明的专利保护范围之内。
Claims (10)
1.一种基于机器学习的恶意应用监测方法,其特征在于,包括以下步骤:
S101、提取样本集中应用程序的应用特征和恶意标记,样本集中包括恶意应用样本与非恶意应用样本;
S102、将提取的应用特征和恶意标记映射至向量空间,获得与样本集中应用程序对应的向量集合;
S103、基于机器学习训练决策模型,以及将上述向量集合用于训练决策模型;
S104、将训练得到的决策模型用于检测应用程序是否为恶意应用。
2.根据权利要求1所述的方法,其特征在于,在基于机器学习训练决策模型之前,还包括:
使用降维方法对向量集合进行降维。
3.根据权利要求1所述的方法,其特征在于,所述应用特征包括应用程序声明的应用权限和调用的接口。
4.根据权利要求1所述的方法,其特征在于,所述应用程序为安卓应用程序,所述应用特征包括安卓应用程序通过AndroidManifest.xml和/或classes.dex声明的应用权限和调用的接口。
5.根据权利要求1所述的方法,其特征在于,所述将提取的应用特征和恶意标记映射至向量空间,包括:
将恶意标记映射至向量空间时,根据恶意标记的取值,设置向量对应维度的值;
恶意标记的取值指示该应用程序是否是恶意程序,在该应用程序是恶意程序时,恶意标记还指示该应用程序所属的恶意程序类型。
6.根据权利要求1所述的方法,其特征在于,所述样本集包括训练集合测试集;
所述基于机器学习训练决策模型,以及将上述向量集合用于训练决策模型,包括:
使用训练集对应的向量集合训练决策模型,使用测试集检测决策模型的分类效果。
7.根据权利要求1所述的方法,其特征在于,所述机器学习方法为随机森林方法,所述基于机器学习训练决策模型包括训练决策模型直到随机森林算法产生的决策模型满足预设条件。
8.根据权利要求1所述的方法,其特征在于,所述S104、将训练得到的检测模型决策模型用于检测应用程序是否为恶意应用,包括:
将训练模型用于检测应用程序的恶意应用类型。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至8任一所述方法的步骤。
10.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上执行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710475611.5A CN107341401B (zh) | 2017-06-21 | 2017-06-21 | 一种基于机器学习的恶意应用监测方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710475611.5A CN107341401B (zh) | 2017-06-21 | 2017-06-21 | 一种基于机器学习的恶意应用监测方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107341401A CN107341401A (zh) | 2017-11-10 |
CN107341401B true CN107341401B (zh) | 2019-09-20 |
Family
ID=60219973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710475611.5A Active CN107341401B (zh) | 2017-06-21 | 2017-06-21 | 一种基于机器学习的恶意应用监测方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107341401B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107944259A (zh) * | 2017-11-21 | 2018-04-20 | 广东欧珀移动通信有限公司 | 应用启动的管控方法、装置及存储介质和移动终端 |
CN109840417B (zh) * | 2017-11-28 | 2020-12-01 | 清华大学 | 一种恶意软件检测方法及装置 |
CN107909414A (zh) * | 2017-12-13 | 2018-04-13 | 北京奇虎科技有限公司 | 应用程序的反作弊方法及装置 |
CN109960901B (zh) * | 2017-12-14 | 2022-06-07 | 北京京东尚科信息技术有限公司 | 桌面应用风险评价、控制的方法、***、设备和存储介质 |
CN108038378A (zh) * | 2017-12-28 | 2018-05-15 | 厦门服云信息科技有限公司 | 云端检测函数被恶意修改的方法、终端设备及存储介质 |
CN108804918B (zh) * | 2017-12-31 | 2020-07-31 | 北京安天网络安全技术有限公司 | 安全性防御方法、装置、电子设备及存储介质 |
RU2697955C2 (ru) * | 2018-02-06 | 2019-08-21 | Акционерное общество "Лаборатория Касперского" | Система и способ обучения модели обнаружения вредоносных контейнеров |
CN108491776B (zh) * | 2018-03-12 | 2020-05-19 | 青岛理工大学 | 基于像素分类的装配体零件识别方法、装置及监测*** |
CN108717511A (zh) * | 2018-05-14 | 2018-10-30 | 中国科学院信息工程研究所 | 一种Android应用威胁度评估模型建立方法、评估方法及*** |
CN110555305A (zh) * | 2018-05-31 | 2019-12-10 | 武汉安天信息技术有限责任公司 | 基于深度学习的恶意应用溯源方法及相关装置 |
CN108920958A (zh) * | 2018-07-13 | 2018-11-30 | 深圳市联软科技股份有限公司 | 检测pe文件异常行为的方法、装置、介质及设备 |
CN110858247A (zh) * | 2018-08-23 | 2020-03-03 | 北京京东尚科信息技术有限公司 | 安卓恶意应用检测方法、***、设备及存储介质 |
CN109167882A (zh) * | 2018-09-27 | 2019-01-08 | 努比亚技术有限公司 | 一种应用关联启动控制方法、终端及计算机可读存储介质 |
CN109522304B (zh) * | 2018-11-23 | 2021-05-18 | 中国联合网络通信集团有限公司 | 异常对象识别方法及装置、存储介质 |
CN109558735A (zh) * | 2018-12-03 | 2019-04-02 | 杭州安恒信息技术股份有限公司 | 一种基于机器学习的恶意程序样本聚类方法及相关装置 |
CN111460453B (zh) * | 2019-01-22 | 2023-12-12 | 百度在线网络技术(北京)有限公司 | 机器学习训练方法、控制器、装置、服务器、终端和介质 |
CN110543426A (zh) * | 2019-09-06 | 2019-12-06 | 中国工商银行股份有限公司 | 一种软件性能风险检测方法及装置 |
CN111191239B (zh) * | 2019-12-30 | 2022-04-29 | 北京邮电大学 | 一种用于应用程序的进程检测方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123500A (zh) * | 2014-07-22 | 2014-10-29 | 卢永强 | 一种基于深度学***台恶意应用检测方法及装置 |
CN105550583A (zh) * | 2015-12-22 | 2016-05-04 | 电子科技大学 | 基于随机森林分类方法的Android平台恶意应用检测方法 |
CN106557695A (zh) * | 2015-09-25 | 2017-04-05 | 卓望数码技术(深圳)有限公司 | 一种恶意应用检测方法和*** |
-
2017
- 2017-06-21 CN CN201710475611.5A patent/CN107341401B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123500A (zh) * | 2014-07-22 | 2014-10-29 | 卢永强 | 一种基于深度学***台恶意应用检测方法及装置 |
CN106557695A (zh) * | 2015-09-25 | 2017-04-05 | 卓望数码技术(深圳)有限公司 | 一种恶意应用检测方法和*** |
CN105550583A (zh) * | 2015-12-22 | 2016-05-04 | 电子科技大学 | 基于随机森林分类方法的Android平台恶意应用检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107341401A (zh) | 2017-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107341401B (zh) | 一种基于机器学习的恶意应用监测方法和设备 | |
Potharaju et al. | Plagiarizing smartphone applications: attack strategies and defense techniques | |
EP2807598B1 (en) | Identifying trojanized applications for mobile environments | |
Glanz et al. | CodeMatch: obfuscation won't conceal your repackaged app | |
CN105229661B (zh) | 基于信号标记确定恶意软件的方法、计算设备及存储介质 | |
CN101894225A (zh) | 聚集反病毒软件应用程序的知识库的***和方法 | |
CN114600420A (zh) | 修剪防篡改数据存储装置中的条目 | |
CN105787366A (zh) | 基于组件关系的安卓软件可视化安全分析方法 | |
CN104598825A (zh) | 一种基于改进贝叶斯算法的安卓恶意软件检测方法 | |
Lin et al. | Dimsum: Discovering semantic data of interest from un-mappable memory with confidence | |
Ullah et al. | Software plagiarism detection in multiprogramming languages using machine learning approach | |
US11275850B1 (en) | Multi-faceted security framework for unstructured storage objects | |
CN108090360A (zh) | 一种基于行为特征的安卓恶意应用分类方法及*** | |
CN106874760A (zh) | 一种基于层次式SimHash的Android恶意代码分类方法 | |
Liu et al. | Detecting Android Malwares with High‐Efficient Hybrid Analyzing Methods | |
CN115630404A (zh) | 一种数据安全治理服务方法 | |
CN105631336A (zh) | 检测移动装置上的恶意文件的***及方法 | |
Soud et al. | A fly in the ointment: an empirical study on the characteristics of Ethereum smart contract code weaknesses | |
CN117807602A (zh) | 智能合约的漏洞检测及模型构建方法、设备及存储介质 | |
Ganz et al. | Detecting backdoors in collaboration graphs of software repositories | |
CN112613072A (zh) | 基于档案大数据的信息管理方法、管理***及管理云平台 | |
CN112364022A (zh) | 信息推导管理方法、装置、计算机设备及可读存储介质 | |
CN111988327A (zh) | 威胁行为检测和模型建立方法、装置、电子设备及存储介质 | |
CN111539028B (zh) | 档案存储方法、装置、存储介质及电子设备 | |
Yao et al. | Android malware detection based on sensitive features combination |
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 |