您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 6Android操作系统安全
北京邮电大学网络空间安全学院Android安全模型2Android内核安全3Android系统安全4Android应用程序安全5用户级别安全6背景介绍11第六讲Android系统安全北京邮电大学网络空间安全学院一、背景—移动操作系统国内主流操作系统GoogleAndroidAppleiOSMicrosoftWindowsPhone其他操作系统SymbianOSRIMBlackberryPalmwebOS北京邮电大学网络空间安全学院一、背景—Android发展趋势(一)Android操作系统占有率急速上升2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。截止到2013年第二季度,Android的全球市场份额已接近80%。2013年09月24日,谷歌宣布全世界采用android的设备数量已经达到10亿台。MicrosoftWindows桌面操作系统用户数破10亿用了11年。Facebook2004年开始上线,用户破10亿用了近9年;Android操作系统完成这一目标,仅用5年。北京邮电大学网络空间安全学院一、背景(二)Android高市场占有率和开放性,引发诸多安全问题2013年Q1安管云开放平台检测新增手机病毒样本超过12万个,新增手机病毒数为2012年全年病毒数的73.1%。在总体检测样本中,手机病毒数占到了6.4%,其中,每1000次的软件安装行为就会发现7.8次手机病毒。在主要的安卓手机病毒分布中,危害用户隐私安全的病毒占比最高。其中,读取并上传用户隐私资料的病毒占比31.2%,私自修改用户设置的病毒占比21.4%,用户手机隐私安全受到严峻挑战。北京邮电大学网络空间安全学院一、背景安全事件举例木马病毒:2011年初,代号为给你米(Geinimi)的木马病毒在全球爆发。手机下载了含有该病毒的应用程序后便会中毒。据统计,接近十万Android用户不幸中招。被植入这个木马程序后会将用户的个人信息发送至远程服务器。这个病毒也是第一款Android平台曝光的僵尸网络病毒。安全公司Lookout表示,该病毒会藏在第三方Android软件的APK文件包中,并且通过目前市场上流行的第三方Android软件商店进行传播。这些含有病毒的软件包都和正常安装包不同,会要求用户授予更多隐私权限。漏洞利用:2012年12月,XDA开发者论坛上就有人发现了搭载三星Exynos处理器的设备的一个重大漏洞。GalaxyS3和NoteII等设备将受到基于应用(app-based)的攻击。北京邮电大学网络空间安全学院一、背景安卓系统的安全隐患四宗罪手机中毒。国内不少不法水货商家基于商业目的,往往会在水货手机中植入各种恶意软件或病毒,进而通过与第三方ROM制作商、恶意软件开发者等合作牟取暴利。秘密扣费。腾讯手机管家2月共截获恶意扣费类病毒包31938个。恶意扣费类病毒往往通过后台联网获取扣费配置,暗中吸取用户的手机话费。或者误导用户授予最高权限,私自在后台发送扣费短信,定制SP业务并自动屏蔽运营商确认短信,让用户不知不觉中被扣费。个人隐私被窃取。目前有近四成的手机游戏存在调用过多权限的情况,导致通讯录、短信等用户敏感的数据被随意读取。在2012年Android病毒行为类型比例统计中,隐私窃取类病毒占比17.53%。偷流量。在2013年2月,偷流量类病毒依旧延续了这种发展势头,排名前十的偷跑流量类病毒感染手机用户数超过78.7万。而捕鱼人生、3D卡丁车、植物大战僵尸OL、易购、盛付通、掌上1号店、二维码扫描及生成器、极速狂飙等热门软件纷纷被偷跑流量类病毒感染。北京邮电大学网络空间安全学院一、背景1.Android内核存在大量漏洞,已有许多漏洞利用工具。2.Android缺乏功能强大的病毒防护软件或者防火墙。虽然有较为完善的安全机制,然而目前安卓系统的安全现状不容乐观3.Android应用软件缺乏安全审核及监管保护机制。4.Android软件开发工具包(SDK)存在较多安全隐患。进程沙箱、签名验证、权限控制等等北京邮电大学网络空间安全学院一、背景-主要威胁1恶意代码植入Android平台的开源策略使得开发者能够自行制作并深度修改系统ROM。木马作者,一方面制作含有恶意程序的系统ROM,通过一条灰色产业链,将这些ROM刷写进手机再卖给毫不知情消费者;另一方面,基于Android软件的封装形式,木马开发者可以比较容易地将大量时下流行的软件和游戏进行反编译,植入扣费代码再重新封装软件包并散布在各大论坛和国内第三方Android市场。2应用商店带来的威胁由于目前国内众多Android应用商店缺乏软件上传安全审核以及监管等机制,应用商店已经成为Android安全隐患的高发区。北京邮电大学网络空间安全学院二、Android安全模型在深入理解Android系统结构的前提下,针对目前常见攻击,开始分析其安全体系,可以从以下几个方面进行分析和研究:linux内核安全:对Linux下的常见安全机制进行了解和分析,如用户权限,进程与内存空间。Android系统安全:Android系统在linux基础上,构建自己的安全体系,如进程沙箱,权限管理,签名验证,内存管理应用程序安全:传统的软件应用层安全,如病毒查杀,恶意应用检测北京邮电大学网络空间安全学院二、Android安全模型硬件数据加密恶意行为检测杀毒软件用户权限进程与内存空间内存管理强类型语言安全权限控制签名机制应用程序层应用程序框架层本地库与运行环境Linux内核基于应用程序的攻击基于系统核心的攻击基于内核的攻击基于硬件的攻击Android安全模型分析北京邮电大学网络空间安全学院三、Android内核安全Android系统以Linux内核为基础,主要继承了来自linux的文件系统安全机制和进程沙箱安全机制。理解Android的安全架构首先要理清linux安全模型的主要概念:用户与权限、进程与内存空间。进程与内存空间文件系统安全机制Linux安全模型北京邮电大学网络空间安全学院三、Android内核安全-文件系统安全机制Linux用户超级用户系统伪用户普通用户具有最高的系统权限,UID为0出于管理需要,将某些关键系统权限赋予伪用户,UID范围1-499具备有限的访问权限,UID为500-6000Linux文件系统安全机制Linux安全模型的基础是用户(UID)与用户组(GID)每个用户由用户名和用户标识(UID)组成,每个用户同时可参与多个用户组在Android系统中,对于一些重要的或者涉及到系统安全的操作,如删除系统文件和卸载系统应用程序等,都必须要取得手机的Root权限后才可以,类似于IOS系统的越狱。Android通过采用Root权限,可以防止用户和应用程序修改操作系统、内核和其他的应用程序。北京邮电大学网络空间安全学院三、Android内核安全Linux的系统资源,包括各种硬件设备和接口,以及内核数据资源,通常是以文件的形式表示,通过文件所属的权限、组ID和RWX组合来控制应用程序对文件的访问。-rwxrw-r-x2rootroot1024Oct2020:18Test.txt文件属性-rwxrw-r-x连接数文件拥有者文件所属用户组文件大小文件最新修改时间文件名称表示文件属主可读、可写、可执行,文件所归属的用户组可读可写,其它用户可读可执行;北京邮电大学网络空间安全学院三、Android内核安全Linux是一个多用户多进程的操作系统,多个用户同时运行在各自隔离的进程虚拟内存空间中。进程的虚拟内存空间如下图所示:每个进程都有4G的虚拟内存空间所有进程共享1G的内核空间每个进程私有3G的用户空间bss数据区初始化数据区代码段(elf)栈(stack)堆(heap)命令行参数/环境变量参数用户空间(userspace)内核空间(kernelspace)独立进程的虚拟内存空间进程与内存空间北京邮电大学网络空间安全学院三、Android内核安全用户、进程与内核设备之间关系图多个用户同时存在运行不同进程每个进程运行于独立的虚拟内存空间用户空间进程通过系统调用进入内核内核通过设备驱动程序实现设备的控制北京邮电大学网络空间安全学院四、Android架构安全Android系统不仅继承了linux的安全机制,同时结合移动终端的具体应用特点,构建了自己的安全机制。内存管理进程沙箱权限管理签名验证权限控制进程沙箱Android系统安全签名验证内存管理北京邮电大学网络空间安全学院四、Android架构安全-内存管理Ashmem匿名内存共享(AnonymousSharedMemory)Android的Ashmem是一种共享内存的机制,它基于mmap系统调用,不同进程可以将同一段物理内存映射到各自的虚拟地址控制,从而实现共享。Ashmem与mmap的区别mmap通过映射同一个普通文件实现进程间共享内存,普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再调用read,write等操作。进程在映射空间对共享内存的改变并不直接写回到磁盘文件中,在调用munmap后才执行此操作。可以通过调用msync实现磁盘上文件内存与共享内存区的内容一致。Ashmem与mmap的区别在于Ashmem与cacheshrinker关联起来,可以控制cacheshrinker在适当时机回收这些共享内存。北京邮电大学网络空间安全学院四、Android架构安全-内存管理Ashmem以内核驱动的形式管理/dev/ashmem设备文件在文件系统中创建辅助内存管理系统来有效地管理内存的特点应用匿名共享请求ContentProviderC++interfaceMemoryBase()内核AshmemDriver/dev/ashmemJavainterfaceMemoryFile()RuntimeLibaryKernel调用JNI调用中断进入内核Apk北京邮电大学网络空间安全学院四、Android架构安全-内存管理Ashmem辅助系统内存管理原理Ashmem驱动程序实现在kernel/common/mm/ashmem.c文件中,它的模块初始化函数定义为ashmem_initstaticint__initashmem_init(void){intret;......register_shrinker(&ashmem_shrinker);printk(KERN_INFOashmem:initialized\n);return0;}这里通过调用register_shrinker函数向内存管理系统注册一个内存回收算法函数。在Linux内核中,当系统内存紧张时,内存管理系统就会进行内存回收算法,因此,当内存管理系统进行内存回收时,就会调用到这里的ashmem_shrink函数,让Ashmem驱动程序执行内存回收操作。北京邮电大学网络空间安全学院Ashmem的实现•Ashmem的源代码在mm/ashmem.c中•它通过注册CacheShrinker回收内存,通过注册misc设备提供open,mmap等接口,mmap则通过tmpfs创建文件来分配内存,tmpfs将一块内存虚拟为一个文件,这样操作共享内存就相当于操作一个文件。•Ashmem用两个结构体ashmem_area和ashmem_range来维护分配的内存,ashmem_area代表共享的内存区域,ashmem_range则将这段区域以页为单位分为多个range。•ashmem_area有个unpinned_list成员,挂在这个list上的range可以被回收。ashmem_range有一个LRU链表,在cacheshrink回收一个ashmem_area的某段内存时候,是根据LRU的原则来选择哪些页面优先被回收的。北京邮电大学网络空间安全学院主要函数功能简单分析ashmem_init这是mo
本文标题:6Android操作系统安全
链接地址:https://www.777doc.com/doc-1248259 .html