Android 系统框架安全性评估及应对策略
Android 操作系统以开放性为主,无论是应用程序数字签名方式、权限控制、发布渠
道、应用程序审核等都为开放性设计, 这也在一定程度上带来了更多的风险, 主要风险存在
于“越狱”破解之后。
总的来说, Android 系统手机面临病毒、木马等恶意程序攻击的风险较高,更接近于
目前 PC 环境。通过其安全机制可知,对于短信软件、 WAP 浏览器等均可以进行替换或者
通过 manifest 机制为第三方应用程序授予资源访问权限, 因此需要采用更多的技术和管理措
施防范安全风险。
一、 Android 操作系统的框架:
Android 框架主要分为四层:应用层、应用程序框架层、系统运行库层、 Linux 核心层。
在这四个层次上可以进行安全性分析。
二、 android 系统安全机制分析
1 应用层:代码安全和接入权限
1)代码安全:
目前 Android 应用程序开发语言主要为 Java,也可以通过 Google 发布的 Android NDK
工具集移植或者开发 C/C++ 代码。与 iPhone 应用程序的主要语言 Object-C 不同, Java 属于
解释型语言,并不直接编译成二进制文件,这造成基于 Java 语言开发的应用程序较容易被
反编译。
应对方法:
在应用程序中增加代码混淆等防止反编译措施; 同时,对于核心代码, 建议开发 C/C++ 程序。
防止纯 JAVA 程序容易被第三方反编译风险。同时可以用混淆器,默认混淆器为 proguard。
2)接入权限:
权限是 Android 平台安全机制核心,旨在允许或限制应用程序访问受限的 API 和资
源。默认情况下, Android 应用程序没有被授予权限, 权限在安装期间通过 manifest 文件由
应用程序请求。 Android 系统中权限分为普通级别( normal)、危险级别( dangerous)、签名
级别( signature)和系统 /签名级别( signature or system)。系统中所有预定义的权限根据
作用的不同, 分别属于不同的级别。 也对应用的操作增加限制, 防止恶意应用进行非法操作
给用户造成敏感数据泄漏等。框架层可以自定义权限。
应对方法:权限主要用来权限定义位置:
frameworks/base/core/res/ AndroidManifest.xml 权限可用于整个应用、 Activity 、Service 等
这个是应用权限。
2 应用框架层:数字认证
所有 Android 应用程序都必须进行数字签名。 除了通过共用 User ID 进行数据共享的方
式,使用相同数字签名签署的两个应用程序可以相互授予权限来访问基于签名的 API 。
所有