有色Petri网的Android恶意代码建模方法研究
- 格式:docx
- 大小:455.17 KB
- 文档页数:6
Paper NO1 (注:满分为五星) 论文分类 完成时间 2019-8-13
英文题目 Research on Modeling Method of Android Malware Based on Colored-Petri Nets 中文题目 有色Petri网的Android恶意代码建模方法研究
期刊时间 计算机科学与探索 2017
中文摘要 针对Android平台的恶意代码分析建模一直是目前移动终端安全的研究重点,对目前常见的恶意代码进行归纳、分类和行为抽取,在对行为进行形式化描述的基础上,提出了一种基于有色Petri网(colored-Petri net, CPN)的恶意代码建模方法,使用该方法能够描述恶意代码从安装、加载到恶意执行的整个过程。最后对恶意软件 BeanBot进行建模,并利用 CPN Tools仿真工具分析了模型的可达性和有界性等性质。实验表明该方法可以准确地刻画恶意代码的运行过程,有助于对恶意代码的机制进行深入分析。
关键词 安卓系统;恶意代码;颜色Petri网(CPN);行为建模
概括主旨 本文利用颜色 Petri 网对 Android 恶意软件的行为进行了形式化描述,同时针对一个具体的恶意样本BeanBot进行了实例建模,并利用针对颜色Petri网的自动验证工具 CPN Tools 对所建立的模型进行了验证。通过颜色 Petri 网,描述了恶意行为的整体性和个体性,描述了 BeanBot 恶意软件的工作流程,并能够对其进行正确性分析。在本文的工作基础上,尚需对实例模型中的各个流程进行更进一步的细化分析;另外对Android恶意软件的行为分析及建模也可尝试去更加贴近实际的应用。
笔记部分 1.Android恶意软件的行为分析 安 卓 恶 意 软 件 目 前 的 主 要 类 型 有 资 费 消 耗 (74.3%)、隐私窃取(10.8%)、恶意扣费(10.6%)、诈骗和其他(4%)。为保证模型的通用性,本文主要针对前三类(95.7%)的恶意软件进行分析。它们的基本行为过程可从安装方式、功能触发和恶意负载这三方面来描述:伪装成热门软件,吸引用户下载;通过监听特定系统事件或诱导用户点击等方式,触发恶意服务的运行;其中安装方式和功能触发是以上所提及的恶意软件所共有的执行环节,而恶意负载,则根据不同的目的会有不同的实现方式。 Android 恶意软件安装方式主要有重打包、自身升级、路过式下载。Android恶意软件从安装到执行涉及到多个环节,图 1给出了流程框架。一个 Android 恶意行为(Android malware behavior)可分为三部分:安装恶意软件(install malware)、启动恶意服务(boot malware service)、执行恶意行为(execute mal ware behavior)。 这三部分各自作为一个独立的子行为又可分别进行细化。其中,安装恶意软件可分为重打包(repackage)、更新(update);启动恶意服务可划分为用户 操作(user operation)、广播(boardcast)。而在执行恶意行为这个子行为中根据恶意负载的不同,可划分为消耗资费行为、恶意扣费行为、窃取隐私行为。消耗资费行为的一般流程:在后台侦听特定的短信或是特定事件,若侦听到则进行短信回复或发送短信到特定号码。同时,还可能存在恶意服务在后台连接网络进行流量窃取。因此,这里的行为活动划分为侦听(listen)、传输(transform)。恶意扣费行为的一般流程:在后台发送特定短信给服务提供商来定制付费服务,同时会拦截服务提供商的回复短信。因此,这里的行为活动可细分为传输(translation)、拦截(intercept)。窃取隐私行为的一 般流程:为了访问特定的文件以获取用户机器、电话簿、短信等内容,首先要进行提权操作。然后读取相关信息,并对这些信息进行加密,并通过网络传输到远程主机。因此,这里的行为活动可细分为提权 (right)、访问(access)、加密(encryption)、传输(translation)。经过分析,可以将执行恶意行为归纳为6个基本行为:侦听、拦截、提权、访问、加密、传输。
2.基于Petri网的形式化模型 Petri网的概念是1962年由Petri在其博士论文中提出的,Petri 网是用于描述分布式系统的一种模型,特别适用于对具有同步、并发、冲突的离散事件 系统进行建模和分析,具有较为完善的数学表达。Jensen 于上世纪 80 年代,在经典 Petri 网的基础上提出并发展了具有层次特征的颜色 Petri网。其实质是对网系统中的托肯(token)分类,以实现对网系统的折叠。库所中的托肯由于值的不同而具有不同的颜色,一个库所中可以包含几个不同颜色的托肯。在对 Android 恶意软件行为进行建模时,使用CPN Tools 作为颜色 Petri 网的建模和分析工具。首先,定义颜色集与变量,其基本元素由上一节的活 动行为中的要素所得,具体内容如表2。 根据上一节中分析得到的基本行为构造 Petri网模型的库所如表 3。库所 Malware 中有两类托肯:重打包(rePackage)和更新(upDate),即两种不同的植入恶意负载的方式。AppModified代表恶意软件。库所Event中有两类托肯:用户特定操作事件(userOp)、系统特定事件(sysEvent)。库所 DataSent 用来指示系统最终的运行结果,其中的托肯数量代表了系统所传输数据的次数。
同时,通过分析构造出Petri网模型的变迁,其说明如表4。 当系统监听到特定事件时,通过变迁 Start 来开启恶意服务,并进入库所 Service。变迁 Root 代表恶意服务为达到提升权限的目的对系统特定位置及文件所做的修改。这里库所 Data 中有两种托肯:记录文件(prof)、数据文件(data)。通过变迁 Root进入库所 Right,表明获得所需权限。变迁 Access 代表恶意服务以获取到的权限访问特定位置的特定文件,并进入库所DataAccessed中,表明所访问到的数据。变迁 Encrypt 代表恶意服务将访问到的数据根据库所Enkey中的密钥进行加密,并进入库所DataEncrypted中。变迁 Transfer 表示将经过加密后的数据传输到特定位置。变迁 Listen 代表恶意服务对特定事件的侦听并输出特定的数据。变迁 Intercept 代表拦截服 务提供商发回的确认短信。
实例 Bean-Bot 是在 2011 年发现的一款恶意软件,它受远端C&C 服务器控制,不仅传输用户的私人信息到 C&C服务器,而且在后台通过偷偷发送短信以达到窃取费用的目的。在模型中发送短信的过程可以看作是传输信息的一个子过程。 1 建模 下面给出基于颜色 Petri 网的 BeanBot 恶意样本模型,所使用的建模工具为CPN Tools,模型如图2所示。建立的模型中,初始状态从库所 App 及库所 Malware 开始,库所 App 中的托肯代表正常的 Bean-Bot软件,库所Malware中的托肯代表恶意负载,变迁Implanted被触发后,进入到库所AppModified中的托肯代表被植入恶意负载的BeanBot软件。库所Event代表相关系统事件,通过变迁 Start,启动恶意负载以服务的形式在后台运行。传输用户私人信息的流程是:库所Data中的托肯代表能够访问到的数据,库所Place 中的托肯代表能够访问的系统路径,当库所Data、库所 Place 和库所 Service 中存在相应托肯时,变迁 Access 被触发,并进入到库所 DataAccessed 中,代表恶意负载获取到相应数据。这些数据将会经过变迁Encrypt和变迁Transfer最终到达库所DataSent,这样就完成了一次针对用户数据传输的操作。接收 C&C 控制服务器的流程是:库所 Event 中如果存在C&C 控制服务器发送来的数据,则经过 Listen变迁,恶意服务将会存储相应数据到库所Data中。 2 模型性能分析 利用CPN Tools对BeanBot恶意样本进行建模和仿真,以此来验证针对 Android恶意软件所定义的模型的广泛适用性以及对 BeanBot 本身行为的一个模拟。同时对所建立的模型进行结构分析,得到标准的状态空间报告,从而确定是否存在死锁。对CPN Tools得出的标准状态空间进行活性分析、有界性分析。表 5 列举了 BeanBot 恶意样本模型仿真得到的活性分析结果。Dead Markings 指的是死标识状态,即此变迁是不能发生的。Dead Transition 指的是死的变迁,即此变迁在任何情况下都不能发生。由仿真结果可以看出本实验中的模型是不存在死变迁的。Live Transition 指的是活的变迁,即一定会发生的变迁。表5中显示本仿真中不存在活的变迁,这是因为有死标识存在。而这些死标识状态是数据发送完结状态。这也说明了该仿真模型中不存在死锁状态。 通过活性分析可以看出 BeanBot 的恶意行为在运行过程中不存在资源互锁导致的挂起等情况。表 6 给出了每个库所拥有的托肯的数量区间。如库所 Malware最多有 2 个托肯,代表初始情况下对恶意负载的植入有两种情况。而库所 Service 最少,可以没有托肯,代表目前还没有服务启动。从表6中的结果可以看出,仿真模型中的库所是符合实际应用要求的。
总结 本文通过对目前已知 Android 恶意代码的行为 进行分析归类,建立恶意代码