还剩6页未读,继续阅读
文本内容:
android手机与计算机的连接0智能手机安全随着网络和通信技术的发展,智能手机逐渐成为人们日常生活中的必需品,智能手机用户日益增多除了基本的通话功能以外,智能手机还具备PDA personaldigital assistant的主要功能,尤其包括个人信息管理以及无线接入互联网的功能,智能手机已经成为互联网中新型的终端节点目前智能手机的主流操作系统主要有Symbian.Windows Mobile和Android恶意程序威胁着计算机系统的安全,攻击者利用计算系统的漏洞在目标计算机上安装恶意程序,籍此来窃取被攻击者的敏感信息智能手机通过在无线接入设备进入互联网的同时,也成为恶意程序新的攻击对象智能手机的计算能力和存储空间有限,难以布署诸如防火墙、入侵检测系统等安全工具,智能手机中的用户隐私信息以及手机用户的合法权益成为攻击者新的攻击目标针对上述问题,本文以Android手机为平台,在手机的操作系统中增加轻量级访问控制模块,控制计算机对Android手机的文件访问1android总结
1.1AndroidAndroid是Google于2007年底发布的基于Linux内核的开源手机操作系统
1.2android应用程序简介Android debugbridge ADBadb push newapp.apk/data/app/newapp.apk该命令将计算机上的文件newapp.apk复制到Android模拟器或手机的目录/data/app下,如果/data/app/newapp.apk已经存在,ADBD将覆盖原文件adb installnewapp.apk该命令在Android模拟器或Android手机上安装应用软件newapp.apk,默认的安装路径是/data/appo
1.3执行对应用程序或系统有害行为Android为每个应用软件和该软件创建的数据文件分配一个Linux ID,并为之创建一个沙箱(sandbox)来防止其他应用软件的干扰在默认情况下,应用软件的活动范围仅限于自己的沙箱,没有权限执行对其他应用程序或操作系统有害的行为,如替换原来的程序文件等例如Android仅允许应用软件/system/app/Contacts.apk访问数据文件/data/data/com.android,providers,contacts/databases/contacts,db,并且拒绝其他应用软件对该数据文件的读写操作由此可见,Android采用了进程隔离策略来保障应用软件及其数据文件的完整性和机密性Android的这种安全策略仅限于Android手机的内部范围,当Android手机通过ADB与计算机建立连接后,驻留在计算机上的恶意程序便会对Android应用软件和数据文件构成新的安全威胁
2.android的安装法Android手机采用了进程隔离的安全策略来保障手机的应用程序和数据安全,即使手机用户无意中下载并执行了恶意程序,该恶意程序也没有足够的权限替换手机的程序文件但是这种保护措施局限于Android手机内部,也就是说,Android手机的可信计算基(trustedcomputing base,TCB)手机用户通过USB接口将Android手机连接到计算机,此时手机的TCB应该扩展到所连接的计算机然而Android手机所连接的计算机不一定是可信的,如图1所示恶意程序不是运行在Android手机上,而是运行在计算机(如公共场所的计算机)上攻击者首先在计算机上安装恶意程序,利用ADB探测Android手机并与之建立起连接,最后利用ADB向Android手机发布命令在Google提供的Android SDK
2.0中,ADB是以root身份登录Android的操作系统,因此具有操纵Android手机文件的所有权限,给攻击者提供了植入木马程序和窃取手机用户隐私数据的机会例如,攻击者在手机用户不知情的情况下,通过ADB向Android手机发布如下命令来替换原来的手机应用程序,将木马程序伪装成合法的应用程序adb pushnewapp.apk/data/app/newapp.apk还可以发布如下命令来下载手机用户的数据库文件adb pull/data/data/com.android,providers,contacts/databases/contacts.dbcontacts,dbAndroid手机的数据库文件是以明文方式保存,攻击者下载了手机用户的数据文件之后便可以得到手机用户的隐私信息3访问质量分析的方法
3.1android手机访问策略本文的Android手机轻量级访问控制方法的框架由四部分构成,如图2所示策略文件存储在Android手机的存储器中,该文件列出了Android手机的文件访问策略,由手机用户根据自己的需要加以定制,例如允许ADB daemon读程序文件,禁止写程序文件访问策略是位于Linux内核的存储空间,Android手机启动时从存储器中读取策略文件来设置访问策略策略决策层位于Linux内核的系统调用层与存储器之间当发生与文件或文件系统操作相关的系统调用时,策略决策层根据访问策略来控制ADB daemon对文件及文件系统的访问策略开关是一个在Android手机上新增的应用软件当打开策略开关时,策略决策层根据访问策略来控制Android手机的文件访问;关闭开关时,策略决策层停止工作手机用户在相对安全的场所(如家用计算机)关闭策略开关,备份Android手机的数据文件或者升级应用程序;接入公共场所的计算机时,打开策略开关,控制计算机对手机文件的访问在缺省情况下,策略开关处于打开状态
3.2文件访问权限访问策略描述了手机用户授予ADB daemon对Android手机文件的访问权限手机用户对每个Android手机的文件建立一个访问策略,表示如下〈rights」ist,filepath)其中filepath表示文件的路径及其名称;rights」ist表示ADB daemon访问文件的权限列表,是单个或多个权限的组合,表示为rights」ist二read|write|unlink|rename create|nulloADB daemon对文件的访问权限表示如下read为读文件权限;write为写文件权限;unlink为删除文件权限;rename为重命名文件权限;create为新建文件权限;null为禁止访问在Android手机中,目录/system/app通常存放经Google认证的应用程序,目录/data/data存放应用程序的数据库文件,目录/system/bin和/sbin存放少量Linux常用的命令行程序,目录/system/etc存放Linux配置文件,目录/data/app存放第三方应用程序相对而言,这些文件比较固定,升级或更新的可能性较小,可以为这些文件设置如下的缺省文件访问策略read,/system/app/*〉read,/system/bin/*〉read,/sbin/*〉〈read,/data/app/*〉null,/data/data/*〉Android手机的目录/sdcard通常存放手机用户的数据文件,目录/cache存放临时文件这些文件的更新比较大,可以设置如下这些文件的缺省访问策略read|write|rename|create,/sdcard/*〉read|write|unlink|create,/cache/*〉除了上述缺省的文件访问策略之外,手机用户通过图2中的策略开关定制文件访问策略
3.3android手机文件访问策略Linux内核通过系统调用system call向用户态进程提供服务接口sys_read为读文件的系统调用;sys_write为写文件的系统调用;sys_unlink为删除文件的系统调用;sys_rename为修改文件名的系统调用;sys_create为新建文件的系统调用;sys_open为打开文件的系统调用本文将上述系统调用称为Android手机文件访问系统调用,图2的策略决策层的访问控制流程如图3所示当发生系统调用时,首先检查当前系统调用是否属于Android手机文件访问系统调用如果不是,则说明当前系统调用没有访问文件,执行流程按原来的顺序进行如果发生了文件访问系统调用,则检查当前访问文件的主体是否是ADB daemon如果不是,则说明当前文件访问系统调用是由Android手机内部的应用程序产生的,仍然按照原来的顺序执行如果ADB daemon产生了文件访问系统调用,则说明ADB daemon已经与计算机建立了连接此时根据当前系统调用的参数(主要是访问方式和文件路径)与事先定义的访问策略进行匹配如果匹配,则说明当前文件访问符合手机用户定制的访问策略,执行该文件访问操作;否则终止当前系统调用并返回4模拟实验
4.1android系统内核实验仿真实验以Android SDK
2.0提供的Android模拟器为手机平台,Android的Linux内核版本是根据第3章所述的访问控制方法,本文在Android的Linux内核中增加文件访问控制模块,并定制缺省的文件访问控制策略为了与Google提供的Linux内核相区别,将Android原内核仿真实验由两部分组成,即功能测试和性能测试功能测试的目标是在以ELK为内核的Android手机中ADB对手机文件的访问是否满足手机用户定制的访问策略;性能测试的目标是测试ELK的性能消耗
4.2android手机文件访问模块以ELK为内核启动Android模拟器,通过ADB向Android模拟器发布如下命令命令1adb pushmyphone.apk/system/app/Phone.apk命令2adb pull/data/data/com.android.providers,contacts/databases/contacts,db contacts,db命令1试图以应用程序myphone.apk伪装成原来的应用程序Phone,apk,命令2试图下载手机用户的数据库文件contacts,db上述命令对Android手机的文件访问都违反了缺省的访问策略执行结果如图4所示
4.3性能试验
4.
3.1基于elk的性能分析缺省的策略文件定义了Android模拟器中大部分文件的访问策略,共计4535个访问策略在Android模拟器启动时,ELK将该访问策略加载到Linux的内核空间本文对比了0LK和ELK的内存消耗,如表1所示从表1可以看出,增加访问控制模块之后,Linux内核的内存消耗增加了672KB,相对于OLK的内存消耗而言,仅增加了
0.81%这说明本文的访问控制方法对Android模拟器的内存额外开销很小实验4基于adb的劳动研究采用以下两种方案测试本文的Android手机访问控制方法的CPU开销1计算机通过ADB每隔1s向Android模拟器发布命令:adb pushmyphone.apk/system/app/Phone.apk,测试OLK和ELK的CPU占用率2计算机通过ADB每隔10s向Android模拟器发布命令adbpushmyphone.apk/system/app/Phone.apk,测试OLK和ELK的CPU占用率统计两种实验方案在10min的时间范围内Linux内核对CPU的占用率,如图5和6所示从总体上来看,ELK和0LK的CPU占用率没有显著的差别在方案2的实验数据中,ELK和OLK的最大CPU占用率相差
1.36%,其他的CPU额外开销不超过
0.5%,这说明本文的访问控制方法不会给Android模拟器造成明显的性能消耗5手机文件访问控制智能手机的计算能力和存储空间有限,常用的安全保障措施难以适用于智能手机,手机用户的隐私信息容易受到攻击者的窃取和破坏本文以Android智能手机为平台,提出了一种轻量级的手机文件访问控制方法,该方法解决了Android手机与计算机建立连接时存在的安全隐患手机用户利用该方法定制手机文件访问策略,能够较好地保护手机应用程序的完整性和隐私信息的机密性此外,基于Windows Mobile的智能手机采用Microsoft ActiveSync同步软件,基于Symbian的智能手机通常采用PC Suite同步软件,这些同步软件与Android的ADB存在类似的安全问题,将本文方法应用于其他类型的智能手机是下一步的研究工作。