基于权限分类的Android静态检测

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Abstract: Android has a strict management mechanism of permissions. If an application wants to run on Android, it must have some suitable permissions. In this paper, a permission-based algorithm of static analysis is presented, which is applied to detect malcode of Android apps. In order to deal with so many permissions, these permissions are divided into four groups. And set the permissions, which can interact with internet or smartphones, as sink function. Use grey function to describe other permissions. Then use block and function analyzer to construct variables’ associating table of block and function. At last use static taint propagation and other static methods to analyze the variables’ associating table. The result of experiment proves that the algorithm is efficient, also can help analyst-programmer reduce the difficulty and intensity of work.
Asaf Shabtai 等[5]对 Android 系统安全进行全面 的评价。通过分析 Android 系统的安全机制,他们认 为,在一般情况下 Android 设备是很安全的,因为 系统核心组件和内核不可能被攻击者或非法用户所 替换。不过在可以直接操作设备的情况下例外,但 是这种情况很难有实施条件。但是权限机制却给了 攻击者这样的机会,没有安全意识的用户可能授予 恶意应用不该有的权限。加之 Android 系统可以通过 adb 命令行下安装应用,在这种情况下安装应用, 是与用户没有任何交换的,所以这样也可能导致不 该有的权限授权。
Keywords: malware来自百度文库 software analysis; static analysis; Android
随着科学技术的进步和生产力水平的不断提高 以智能手机为代表的便携式智能终端便在时下流行 起来。与以前的个人计算机的发展所面临的问题一 样,智能手机上的安全问题日益凸显出来。智能手 机不但有丰富的功能,而且还可以添加各种扩充功 能的软件,这就为恶意软件提供生存环境,且智能 手机可以保存用户各种帐号及密码等涉及用户隐私 的信息,从而给智能手机用户带来巨大经济损失和 精神上伤害。
收稿日期: 2011-05-31 基金项目: 中央高校基本科研业务费专项资金资助 (WK0110000007) 作者简介: 吴俊昌(1986-),男(汉),安徽,硕士研究生 通讯作者: 程绍银,讲师,E-mail: sycheng@ustc.edu.cn
是常用的分析技术,是一种路径敏感的分析策略, 需综合考虑路径调度、约束求解等问题。
安全的沙盒,系统根据其 UID 为之分配一个独立的 统中所有预定义的权限根据作用的不同,分别属于
虚拟机,其他程序不可以访问该程序中所使用的各 不同的级别。其中普通级别和危险级别属于比较低
种数据,但是如果其他程序拥有该应用程序的共享 的级别,申请即可授予;而签名级别和系统/签名级
的 UID,即设置自己的 sharedUserID 为该应用程序 别需要使用者的应用程序和系统使用同一个数字证
恶意软件虽然是在智能手机上运行的,但是其 在各种特征上与在计算机上运行的软件并无很大差 异,所以完全可以借鉴传统的软件分析技术对其进 行分析。随着软件业的发展,计算机软件分析技术
也得到了迅速的发展[1]。静态分析是一种不需运行软 件就可以对软件进行分析的过程,常见的有:数据 流分析、控制流分析、类型分析等;符号执行[2,3]也
基于 Android 权限分类的静态分析方法,用于检测 Android 应用程序的恶意代码。为了便于处理 Android 中的大量权限,将其权 限划分成四个等级,并将能与外界进行信息交互的权限视为锚点,引入灰函数来描述其他权限所对应的函数,然后利用块与 函数变量关联表生成引擎构建块和函数变量关联表,采用静态污点传播和其他静态分析技术相结合的方法对变量关联表进行 分析。实验结果表明该方法在分析 Android 应用程序时是有效的,能够大大减少人为的分析难度和强度。
基于权限分类的 Android 应用程序的静态分析
吴俊昌 1,骆培杰 1,程绍银 1,王嘉捷 2,蒋凡 1
(1. 中国科学技术大学信息安全测评中心,合肥 230027;2. 中国信息安全测评中心,北京 100085)
摘 要:Android 系统有着严格的权限管理机制,应用程序需要获得相应的权限才可以在 Android 系统上运行。本文提出了一种
(1. Information Technology Security Evaluation Center, University of Science and Technology of China, Hefei 230027, China; 2. China Information Technology Security Evaluation Center, Beijing 100085, China)
Android 安全机制中最主要的三个成分是:用 户 ID ( UID ) 、 权 限 ( Permission ) 和 签 名 (Signature)。
用户ID 在Android系统中,一个应用程序就是 一个用户,每一个用户拥有一个独立的UID。UID是
应用程序
Home
联系人
电话
浏览器
...
Acti vi ty管 理器
关 键 字 : 恶意应用;软件分析;静态分析;Android
中图分类号:TP302.1 文献标识码:A
Static Analysis of Android Apps Based on Permission classification
WU Junchang1, LUO Peijie1, CHENG Shaoyin1, WANG Jiajie2, JIANG Fan1
Avik Chaudhuri [6]设计了一种核心形式化语言, 用其来描述和抽象的推理 Android 应用的安全。该语 言主要有两个方面的功能:其一,语言的操作语义; 其二,针对安全的类型系统。操作语义主要是揭示 Android 基础结构的复杂控制流,这样可以有助于 了解 Android。类型系统利用 Android 自身提供的接 入控制机制,以此来巩固开发安全应用的开发行为。
Android 系统有着严格的权限管理机制,应用 软件如果想在系统中运行就必须要有相应的运行权
限。本文针对 Android 系统关于权限的特点,根据 其权限等级及其对系统的危害性进行分类,将使用 权限的函数做相应的分类,并采用污点传播的静态 算法分析应用,提出了一种基于权限分类的静态分 析方法,用于检测可能出现的发送用户隐私和后台 扣费的程序代码,并给出可疑的函数调用路径。
2 Android 安全机制
Android是Google为智能手机专门设计的操作系 统,分成四层:操作系统层、运行时库和各种程序 库层、应用程序框架层以及应用程序层,如图1所示。 Android的软件栈建立在Linux2.6内核上,完成设备 驱动、内存管理、进程管理以及网络管理等功能。在 Linux内核上面就是运行时库和各种程序库,运行时 库就是Google为Android设计的Java虚拟机,每个应 用运行时都有一个自己独立的虚拟机,虚拟机间相 互没有影响。各种程序库间接提供给应用开发者开 发应用使用,它包含图形框架、媒体功能库、Webkit、 及SQLite数据库等。再此之上就是应用程序框架层, 该层为应用程序开发提供所需要的各种API。在开发 过程中,开发人员通过充分使用应用框架提供的 API,对各种组件、服务进行重用。最上面一层是应 用程序层,用户可以根据自己的需要安装相应功能 的应用,Google为Android提供了一些自带的应用程 序。
1 研究背景
由于 Android 系统是开源的智能手机系统,对 其安全性的研究从其诞生之日其就未曾间断过。为 了提高其安全性,对 Android 系统本身的安全机制 必须有深入的了解。与此同时,很多学者针对 Android 系统的安全问题提出了自己的看法以及解 决方案。
William Enck 等[4]描述了一个基于权限申请的 Android 安全框架的设计和实现,其可以检测潜在 的恶意应用。该框架在应用安装时,读取其申请的 权限列表,并与已有规则集进行匹配,匹配成功则 说明该应用呈现出危险的行为。该框架在安装时自 动完成对申请危险权限的检测,从而推迟用户为安 装的应用授予权限。
安装时检测应用程序的申请权限列表,并已有 模式匹配。对 Android 系统安全进行全面的评价。设 计核心形式化语言,用其来描述和抽象的推理 Android 应用的安全。扩展 Android 系统框架。所有上 面的工作都是为了保证应用及其权限申请的正当合 法。权限条目在 Android 系统中甚多,要确定一个权 限申请的合法正当,就必须对整个应用进行分析。 本文采取对整个应用进行静态分析的方法,首先将 Android 的权限在其原有的权限组上进行分类,再 对应用程序的字节码文件使用静态分析算法进行分 析,算法主要包括块与函数变量关联表生成引擎和 静态污点传播引擎两大引擎。通过该算法可以确定 一个应用申请权限的正当合法性。
应用程序框架
Wi ndow管理 器
内容提供者
Vi ew系统
包管理器
电话管理器
资源管理器
定位管理器
消息管理器
核心库
显示系统管理
媒体框架
SQLi te数据库
Androi d运行时 运行时核心库
OpenGL| ES
FreeType
WebKi t
Dal vi k虚拟机
SGL 显示驱动
SSL
C库
Li nux内核
限制措施是在进程级实施的。在默认的情况下,应 protectionLevel 来 标 识 保 护 级 别 : 普 通 级 别
用程序不可以执行任何对其他应用程序以及系统带 (Normal) , 危 险 级 别 (Dangerous) , 签 名 级 别
来负面影响的操作。一个应用程序的进程就是一个 (Signature)和系统/签名级别(Signature or System)。系
Mohammad Nauman 等 [7]提 出一 种 Android 系 统的扩展框架(Apex)。该框架是针对 Android 平台 设计的一个综合的加强安全策略,并向后兼容当前 的安全机制。这个框架的特色是允许用户在安装某
个软件时只授予该软件申请的部分权限,从而改变 了软件在安装时必须获得全部申请权限的限制。用 户在软件运行时可以限制软件对资源的使用。Apex 有其语义描述策略来实施这种限制,但是一般用户 可以不用知道这种策略就可以对软件进行限制操作。
摄像头驱动
内存驱动
绑定(进程间 通讯)驱动
键盘驱动
Wi f i 驱动
音频驱动
电源管理
图 1 Android 系统结构
在应用程序安装时,Android 系统为之分配的,并 ermission.PROCESS_OUTGOING_CALLS 等与接入
在该设备上一直保持同一个值。Android 系统的安全 和 修 改 电 话 状 态 有 关 的 权 限 。 每 一 个 权 限 通 过
相关文档
最新文档