MyException - 我的异常网
当前位置:我的异常网» 计算机图书 » 论文相干笔记2

论文相干笔记2

www.MyException.Cn  网友分享于:2015-01-21  浏览:0次
论文相关笔记2

二、Android安全机制分析(2011《第26次全国计算机安全学术交流会论文集》)

1.综述

2007年11月5日,Google牵头的开放手机联盟(Open Handset Alliance)发布第一款完全开源的移动设备综合平台——Android。

2008年9月22日,T-Mobile USA发布第一款基于Android平台的智能手机——T-Mobile G1。

2010年11月,业界首次公开了一种针对Android自带浏览器的攻击代码。

2.Android系统架构

(1)Android为移动设备而生,基于Linux内核,由操作系统、中间件、应用程序运行时和核心应用程序组成。

(2)Android系统架构图如下:

图中看出Android分为4层,从高到低分别为应用程序层、应用程序框架层、Android本地库及运行环境层和Linux内核层。

3.Android安全机制

在Android安全机制中,既有传统的Linux安全机制,也有Delvik虚拟机的相关安全机制。同时,Google还设计了Android特有的安全机制。如下图:

(1)POSIX User

每个应用程序(.apk)安装时,Android会赋予该应用程序唯一的ID。因此,每个应用程序都运行于不同的进程。这样,系统为每个程序建立一个沙箱,不管应用程序是被激发或调用,它始终运行在属于自己的进程中,拥有固定的权限。

(2)文件访问控制

Android中的文件访问控制来源于Linux权限控制机制。每个文件访问权限都与其拥有者、所属组号和读写执行三个向量组共同控制。文件在创建时将被赋予不同应用程序ID,从而不能被其他应用程序访问,除非它们拥有相同ID或文件被设置为全局可读写。

另一个增强安全的设计——将系统镜像挂载为只读。所有重要的可执行程序和配置文件位于固件(Firmware),只有在系统初始化中加载。所有的用户和程序数据都存储在数据分区。数据分区有别于系统分区,是在系统运行中有效的存储和加载用户数据。而且,党Android系统处于“安全模式”时,数据分区的数据不会加载,从而可以对系统进行有效的恢复管理。

(3)内存管理单元

一个现代操作系统的必要条件,是内存管理单元——对进程分配不同的虚拟内存空间的硬件设备。进程只能访问自身分配的内存空间,而不能访问其他进程所占用的内存空间。因此,进程的权限提升的可能性受到限制,因为其不能运行在系统特权级内存空间。

(4)强制类型安全

类型安全是编程语言的一个特性,它强制变量在赋值时必须符合其声明的类型,从而阻止变量被错误或不恰当地使用。

缓冲区溢出攻击通常由类型转化错误或缺少边界检查而造成。

Android使用强制类型Java语言,Java语言依靠三种机制达到类型安全:编译期间的类型检查、自动的存储管理和数组的边界检查。

(5)移动设备安全

Android安全机制中引用AAA原则——认证(Authentication)、授权(Authorization)和审计(Accounting)。

Android借鉴智能手机典型安全特性,认证和授权过程由SIM卡及其协议完成,SIM卡中通常保存使用者的密钥。

(6)应用程序权限控制

Android应用程序安全的核心机制是权限控制。应用程序必须在系统给予的权限中运行,不得访问未被赋予权限的其他任何内容。

程序安装时由包管理器赋予权限,运行时由应用程序框架层执行权限控制。Android大约有一百多种行为或服务的权限控制(打电话、发短信、访问互联网等)。

(7)组件封装

通过组件封装,应用程序的内容能被其他程序访问。

(8)签名机制

Android中每个程序都被打包成apk格式以便安装。Android要求所有应用程序都经过数字签名认证。签名文件通常是Android确认不同应用程序是否来自同源开发者的依据。

4.Android安全隐患分析

对Android移动设备的攻击进行分类:基于硬件的攻击、基于Linux内核的攻击、基于系统核心程序的攻击和基于应用程序的攻击。

(1)基于硬件的攻击

由于硬件的通用性和拥有系统最高权限,且在使用过程中难以被升级和维护,是的基于硬件的攻击危害更大。

移动设备中,SD卡和SIM卡均能脱离移动设备而单独使用。在安全机制设计中,辨识这些卡的正常使用和丢失状态下的恶意使用,从而不导致隐私泄露。

(2)基于Linux内核的攻击

Linux每年都有近百个漏洞被CVE收录。网络攻击中利用内核漏洞,将获得系统最高权限。由于Linux内核是高可配置性,而移动设备资源有限,往往会禁用一些内核选项用以降低内存资源消耗,这其中就包括了安全配置选项。如G1手机中禁用审计模块支持、禁用SYN cookie支持(可降低SYN洪泛攻击)等。在不同的移动设备上使用的内核配置可以定制,如为了增强安全性可以使用SELinux模块。

(3)基于系统核心程序的攻击

系统核心程序包括系统本地库、Dalvik Java虚拟机和基础的Java类库。系统库主要包括各种底层函数和复杂计算函数等,被系统进程或Dalvik通过JNI(Java Native Interface)调用。这些函数用C/C++编写,而缺少强制类型安全机制。同时,Dalvik进程在通过JNI调用系统函数发生错误时会导致Dalvik进程的崩溃,从而可导致内存空间呗侵占或恶意代码被执行。Dalvik是所有应用程序的运行环境,其安全性将影响所有应用程序。

现金被发现的Android系统库的漏洞主要集中于定制的SQLight、WebKit和新加入的库。由于能获取较高权限,且核心程序为开源代码,这将使得该类攻击获得更多攻击者的青睐。

(4)基于应用程序的攻击

应用程序包括Android系统自带和用户自行安装的应用程序。用户自行安装的应用程序来源多样,无法验证可靠性,使得针对应用程序的攻击时最容易的攻击手段。恶意程序通过伪造签名,获得更高的权限。现在互联网中流行的针对浏览器的攻击,如跨站脚本、URL编码、社会工程等,还有针对SQLight数据库的SQL注入攻击,必将在移动互联网中被利用。该类方法的多样性和简易性,使应用程序成为黑客光顾的重灾区。同时,由于黑色产业链的存在,也使得基于应用程序的攻击更具有商业价值,如恶意扣费、流量访问等。

5.总结

曾经流行的Windows Mobile、Symbian等都在应用中爆发大量的安全漏洞和被发现众多恶意软件。攻防演绎是个呈双螺旋增长的过程,Android在快速发展中,也将不可避免出现大量针对其的攻击行为和恶意软件。

文章评论

如何成为一名黑客
如何成为一名黑客
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
我的丈夫是个程序员
我的丈夫是个程序员
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
为什么程序员都是夜猫子
为什么程序员都是夜猫子
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员必看的十大电影
程序员必看的十大电影
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
程序员应该关注的一些事儿
程序员应该关注的一些事儿
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
中美印日四国程序员比较
中美印日四国程序员比较
漫画:程序员的工作
漫画:程序员的工作
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员都该阅读的书
程序员都该阅读的书
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
我是如何打败拖延症的
我是如何打败拖延症的
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
老程序员的下场
老程序员的下场
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员的鄙视链
程序员的鄙视链
程序员和编码员之间的区别
程序员和编码员之间的区别
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
鲜为人知的编程真相
鲜为人知的编程真相
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
一个程序员的时间管理
一个程序员的时间管理
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
Java程序员必看电影
Java程序员必看电影
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
旅行,写作,编程
旅行,写作,编程
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
10个调试和排错的小建议
10个调试和排错的小建议
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
那些争议最大的编程观点
那些争议最大的编程观点
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有