基于Android平台手机应用程序的安全检测系统及方法

文档序号:6368910阅读:664来源:国知局
专利名称:基于Android平台手机应用程序的安全检测系统及方法
技术领域
本发明设计软件安全测试技术领域,特别是涉及手机应用程序的安全检测方法。
背景技术
随着移动技术的蓬勃发展,以及用户对移动设备需求的提高,以手机为代表的移动设备逐渐向智能化、多元化、高性能等方向发展。智能手机像个人电脑一样,具有独立的操作系统,能够提供较强的运算能力和网络连接功能,同时可以由用户自行安装第三方服务商提供的应用程序,这大大增强了用户体验,与此同时也使得手机安全形式变得严峻手机病毒及恶意软件进入空前活跃期,已经形成一条黑色产业链。Andoird是基于Linux开放性内核的操作系统,是Google公司在2011年11月5日公布的手机操作系统。其构架主要包括Linux Kernel :Android基于Linux 2. 6提供核 心系统服务;Android Runtime Android包含的一个核心库集合,提供大部分在Java编程语言核心类库中可用的功能;Library, Android包含一个C/C++库的集合,供Android系统的各个组件使用;Application Framework,通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序!Application, Android装配一个核心应用程序集合。由于Android操作系统具有PC机的性能和开放性,传统PC机和因特网的安全威胁也转移到Android平台上。近年来,专门针对Android平台的恶意软件和间谍软件急剧增多。因此,开发一套行之有效的专门针对第三方应用程序的安全缺陷检测方法十分必要。

发明内容
基于上述现有技术存在的问题,本发明提出了一种基于Android平台手机应用程序的安全检测方法,以Android平台作为分析源,首先在Android操作系统的框架层设计一个新框架,其次通过在应用层开发自定义的应用程序截获到针对Android平台下安装的应用程序的恶意行为,分析和处理所截获到的恶意行为,并给出分析报告,从而保证手机应用程序的安全性。本发明提出了一种基于Android平台手机应用程序的安全检测系统,基于Android平台的框架设计来实现第三方应用程序安装/执行的安全检测,该系统包括安全框架模块、应用程序行为监测模块、应用程序信息分析模块、应用程序信息抽取模块以及安全信息反馈模块,其中安全框架模块,在Android操作的框架层建立所需的实现框架,包括确定被检测应用程序分析所需的接口和类,以及建立和导入相应的钩子;应用程序行为监测模块,获取被检测应用程序行为及非法及威胁行为监测分析;应用程序信息分析模块,分析被检测应用程序安装时的申请权限信息;应用程序信息抽取模块,借助预先设置的钩子实现被检测应用程序相关的基本信息钩取;安全信息反馈模块,通过图形用户界面GUI,让用户根据安全信息进行安全的应用程序安装方式的选择。该安全检测系统为学习型系统,所述应用程序行为监测模块的被检测应用程序行为及非法及威胁行为监测分析,借助先前保存的处理恶意行为的应用程序的实例对象的比对来确定检测结果。本发明还提出了一种基于Android平台的手机应用程序的安全检测方法,该方法包括以下流程步骤一,在Android框架层的源代码中找到被检测应用程序安装执行中需要插入钩子的类和接口,这些类和接口为涉及到用户隐私信息的类和接口 ;步骤二、获取应用程序的行为,在Android源码中需要插入钩子的类和接口分别调用对应的钩子,实现被检测应用程序的安装行为截获;步骤三,在被测应用程序安装过程中,获取被检测应用程序的信息,并进行安全分 析,将分析结果反馈给用户,同时监测应用程序是否有非法及威胁行为,将监测结果及时的传输给用户,该分析又包括以下步骤获取被检测应用程序的信息当某一个被检测应用程序安装时,获取该应用程序的信息,包括应用程序的名字、申请的权限、其本身定制的权限、包名、组件等,并保存到数据库;针对信息进行安全分析,分析处理功能需要根据所抽取的信息进行分析,判断应用程序是否存在威胁,根据分析结果生成一个安全分析报告。步骤四、进行被检测应用程序的行为监测,对所获取的被检测应用程序安装过程中的行为,分析是否对用户的隐私信息进行了泄露,并根据分析的结果为用户提示警告,保证用户隐私信息的安全性;步骤五、通过图形用户界面CTI进行被检测应用程序的安全信息反馈,根据反馈由用户进行选择类型选择,包括不同意该应用程序安装,用户进行有选择性的安装,同意应用程序的完全安装。所述检测应用程序是否有非法及威胁行为的步骤,还包括以下具体操作借助先前保存的处理恶意行为的应用程序的实例对象的比对来确定检测结果。与现有技术相比,本发明结合Android手机平台,通过分析和扩展系统框架来进行第三方应用程序安全检测的方法,很好的解决了应用程序在安装过程中,由于Android安全机制本身的局限性导致的第三方应用程序对用户造成的危害。一方面完善了 Android平台安装过程中其授权机制,解决了应用程序的功能性与安全性的矛盾。另一方面通过对安装过程中,应用程序对用户手机隐私信息的泄露等行为的监测和处理,保证用户及时的发现和处理第三方应用程序对用户信息所造成的威胁。


图I为本发明的基于Android平台手机应用程序的安全检测系统的系统结构示意图;图2为本发明的基于Android平台手机应用程序的安全检测方法的流程示意图;图3为本发明的基于Android平台手机应用程序安装具体实施例流程示意图。
具体实施例方式以下结合附图及较佳实施例,对依据本发明提供的具体实施方式
、结构、特征及其功效,详细说明如下。本发明旨在通过对Android应用程序的整个生命周期中安装模块实时检测及控制,使得用户在应用程序安装过程中即能详细获取相关信息;并根据所获取信息进行安全分析,及时的对应用程序安装过程中暴露出的安全缺陷进行处理,从而保证应用程序的安全性。具体来讲,本发明的主要做法包括以下几个方面I.完善Android应用程序安装过程中的权限授权机制。应用程序在安装时需要用户对其授权,而这一过程,用户只有两种选择全部同意或者取消安装,这样的授权机制存在安全缺陷。因此,提出用户对应用程序的授权给出三种选择Deny、Custom、Complete。Deny表示不同意该应用程序安装,Custom表示用户可以进行有选择性的安装,Complete表示用户完全同意应用程序的安装,从而在应用程序的功能性得到保障的情况下保证权限分 配的安全性。2.针对手机恶意软件的威胁种类,制定安全策略。具体来讲,首先根据Android手机平台的资产性质,分析现在手机恶意软件的威胁方式。然后针对恶意软件的攻击目标和方式制定相应的安全策略,为应用程序的安全性分析提供依据。3.监控并实时处理应用程序安装过程中存在的安全问题。针对制定的安全策略,监测应用程序安装和运行中的行为,生成安全分析报告,为用户安全的安装和运行应用程序提供理论支持。本发明的具体实现是基于Android平台在框架层设计一个新的框架结构,该框架中包含了很多钩子的类,并定义了一个容器,这个容器保存了自己开发的处理恶意行为的应用程序的实例对象。容器的作用就是框架每次截获到恶意行为之后,可以通知安全监测程序来处理恶意行为的应用程序,这些应用程序继承了我们所设计的框架。这样这些应用程序就可以针对不同的恶意行为和数据信息进行分析和处理,还可以进行等级划分,得出一个分析报告。如图I所示,为本发明的基于Android平台的手机应用程序的安全检测系统的结构图,以基于Android平台以框架实现的该系统包括安全框架模块、应用程序行为监测模块、应用程序信息分析模块、应用程序信息抽取模块以及安全信息反馈模块;其中安全框架模块用于建立系统所需的实现框架,包括确定及分析系统所需接口和类,以及建立和导入钩子;应用程序行为监测模块用于获取应用程序行为及威胁行为监测分析;应用程序信息分析模块用于分析有关应用程序安装时的申请权限信息;应用程序信息抽取模块用于借助预先设置的钩子实现应用程序相关的基本信息钩取;安全信息反馈模块用于通过GUI (图形用户界面),让用户根据安全信息进行安全的应用程序安装方式的选择。如图2所示,为本发明的基于Android平台的手机应用程序的安全检测方法的具体流程。步骤一,获取应用程序的行为和信息。在新框架中,本发明通过钩子的设计来获取应用程序的行为和信息。具体来说就是,首先需要在Android框架层的源代码中找到需要插入钩子的类和接口,这些类和接口涉及到用户隐私信息(该隐私信息包括)。其次,因为截获不同的类和接口的信息是不一样的,同时这些类和接口构造也不一样,我们需要先分析这些类和接口的源代码,针对不同的类和接口,设计出不同的钩子。最后,分别在Android源码中需要插入钩子的类和接口分别调用对应的钩子,这样就可实现应用程序的行为截
-M-犾。步骤二,在第三方应用程序安装过程中,获取应用程序的信息,并进行安全分析,将分析结果反馈给用户,同时检测应用程序是否有非法及威胁行为(借助先前保存的处理
恶意行为的应用程序的实例对象),例如是否对用户的隐私信息进行了泄露等,将监测结果及时的传输给用户,帮助用户进行应用程序的安装,从而保证第三方应用程序的安全性。有关该步骤的具体实现通过一具体实施例的流程描述,该具体实施例的流程如图3所示,包括以下步骤I、获取应用程序的信息当某一个应用程序安装时,获取应用程序的信息,包括应用程序的名字、申请的权限、其本身定制的权限、包名、组件等,并保存到数据库;2、针对信息进行安全分析。分析处理功能需要根据所抽取的信息进行分析,判断应用程序是否存在威胁。例如是否申请的非法的权限,是否通过组件造成隐私信息的泄漏等,根据分析结果生成一个安全分析报告。步骤三、进行应用程序的行为监测,对所获取的应用程序安装过程中的行为,分析是否对用户的隐私信息进行了泄露,并根据分析的结果为用户提示警告,保证用户隐私信息的安全性;步骤四、进行安全信息反馈,通过GUI (图形用户界面),让用户进行选择,总共有三种选择Deny、Custom、Complete。Deny表示不同意该应用程序安装,Custom表示用户可以进行有选择性的安装,Complete表示用户完全同意应用程序的安装。以威胁短信信息的恶意软件的监测为例,来介绍本发明的应用。I、在Android框架层的源代码中找到涉及短信的类和接口,并设计钩子类。Android源码中找到涉及短信的类SmsManager,其所在的目录是/frameworks/base/telephone/java/Android/telephony/SmsManager。这个类专门负责发信息的方法sendTextMessage,这个方法有五个参数destinationAddress (即对方手机号)、scAddress (即服务中心的号码)、text (即短信内容)、sentlntent (如果该参数不为空,当消息成功发送或失败这个PendingIntent就广播)、deliverylntent (如果不为空,当消息成功传送到接收者这个PendingIntent就广播)。这个方法会调用Android源码编译后的一个类的方法,即类ISms的方法sendTextOnSubscription O。针对该类ISms,设计了一个钩子类,这个钩子的作用就是获取SmsManager这个类中sendTextMessage函数的两个参数即destinationAddress和text,并给出提示。然后把这个钩子类放在Android源码中,对源码和软件开发工具包SDK进行编译。利用编译后的软件开发工具包SDK编写一个应用程序,因为编译出来的SDK中预先设置的钩子类,这个应用程序利用该软件开发工具包的导入即可调用钩子类中方法和参数,从而实现利用该应用程序处理和分析钩子所获取的信息的目的。2、手机应用程序安装过程中应用程序信息的获取。
通过对应用程序安装过程的源代码分析得知源码中的PackageParser类是负责解析应用程序的 AndroidManifest. xml 文件的,PackageManagerService. scanPackageLI函数负责保存解析后的信息,因此获取该函数解析之后的信息即获取了安装过程中的应用程序信息。3、应用程序信息分析与权限分配信息反馈分析所抽取的应用程序信息,判断该应用程序是否安全。判断准则主要是根据应用程序所申请的权限,以及结合应用程序的功能,查看应用程序是否有越权的操作等。具体过程为首先新建一个SQLite数据库存储开发者自定义可分配的安全权限,然后根据抽取信息与数据库信息的比对,来生成安全报告。最后根据生成的安全报告来通过GUI反馈给用户,由用户请求来决定是否分配此权限。4、应用程序行为监测与威胁行为信息反馈
前述步骤中,由于针对框架层的短信信息的相关类设计了钩子,因而在应用程序的安装过程中,如果第三方应用程序自定义的组件或者通过申请其他应用程序的组件权限而对短信信息类进行调用来获取隐私信息时,我们通过钩子类可以监测到这个行为。然后通过唤醒对应的威胁处理程序,继而生成安全报告,并将报告的信息以GUI的形式显示给用户,帮助用户分析并做出判断,从而终止具有威胁的行为。本发明的框架设计过程完成了对第三方应用程序信息和行为的抽取、截获以及保存,为接下来的安全分析提供信息和资源。信息分析过程有利于用户根据应用程序的实际功能指定对应的权限,并在此基础上,完善Android平台的授权机制。同时,在第三方应用程序的安装过程中监测其行为,根据框架钩子钩取的信息来确保用户隐私信息的安全,并及时的向用户反馈信息。在第三方应用程序的安装过程中,结合定义的安全策略,最终生成两个安全产物权限分配信息反馈和威胁行为信息反馈。有了这两个产物,用户就可以更加形象的理解应用软件是否存在威胁。从而保证第三方应用程序的功能性和安全性的统一。在应用程序运行过程中,由于钩子是设置在隐私信息的相关类和接口中的,因此当应用程序在运行过程中对隐私信息进行窃取或修改时,是能够钩取这些非法行为序列的,并进行信息反馈,因此也能够在执行过程中进行检测。
权利要求
1.一种基于Android平台手机应用程序的安全检测系统,基于Android平台的框架设计来实现第三方应用程序安装/执行的安全检测,该系统包括安全框架模块、应用程序行为监测模块、应用程序信息分析模块、应用程序信息抽取模块以及安全信息反馈模块,其特征在于 安全框架模块,在Android操作的框架层建立所需的实现框架,包括确定被检测应用程序分析所需的接口和类,以及建立和导入相应的钩子; 应用程序行为监测模块,获取被检测应用程序行为及非法及威胁行为监测分析; 应用程序信息分析模块,分析被检测应用程序安装时的申请权限信息; 应用程序信息抽取模块,借助预先设置的钩子实现被检测应用程序相关的基本信息钩取; 安全信息反馈模块,通过图形用户界面GUI,让用户根据安全信息进行安全的应用程序安装方式的选择。
2.如权利要求I所述的基于Android平台手机应用程序的安全检测方法,其特征在于,该安全检测系统为学习型系统,所述应用程序行为监测模块的被检测应用程序行为及非法及威胁行为监测分析,借助先前保存的处理恶意行为的应用程序的实例对象的比对来确定检测结果。
3.一种基于Android平台手机应用程序的安全检测方法,该方法包括以下流程 步骤一,在Android框架层的源代码中找到被检测应用程序安装执行中需要插入钩子的类和接口,这些类和接口为涉及到用户隐私信息的类和接口 ; 步骤二、获取应用程序的行为,在Android源码中需要插入钩子的类和接口分别调用对应的钩子,实现被检测应用程序的安装行为截获; 步骤三,在被测应用程序安装过程中,获取被检测应用程序的信息,并进行安全分析,将分析结果反馈给用户,同时监测应用程序是否有非法及威胁行为,将监测结果及时的传输给用户,该分析又包括以下步骤 获取被检测应用程序的信息当某一个被检测应用程序安装时,获取该应用程序的信息,包括应用程序的名字、申请的权限、其本身定制的权限、包名、组件等,并保存到数据库; 针对信息进行安全分析,分析处理功能需要根据所抽取的信息进行分析,判断应用程序是否存在威胁,根据分析结果生成一个安全分析报告; 步骤四、进行被检测应用程序的行为监测,对所获取的被检测应用程序安装过程中的行为,分析是否对用户的隐私信息进行了泄露,并根据分析的结果为用户提示警告,保证用户隐私信息的安全性; 步骤五、通过图形用户界面GUI进行被检测应用程序的安全信息反馈,根据反馈由用户进行选择类型选择,包括不同意该应用程序安装,用户进行有选择性的安装,同意应用程序的完全安装。
4.如权利要求3所述的基于Android平台手机应用程序的安全检测方法,其特征在于,所述检测应用程序是否有非法及威胁行为的步骤,还包括以下具体操作 借助先前保存的处理恶意行为的应用程序的实例对象的比对来确定检测结果。
全文摘要
本发明公开了一种基于Android平台手机应用程序的安全检测系统及方法,基于Android框架层对被测应用程序安装需要插入钩子的类和接口;获取应用程序的行为,实现应用程序的安装行为截获;在被测应用程序安装过程中,获取应用程序的信息,并进行安全分析,将分析结果反馈给用户,检测应用程序是否有非法及威胁行为,将监测结果及时的传输给用户,进行应用程序的行为监测;通过图形用户界面GUI进行被测应用程序的安全信息反馈,根据反馈由用户进行选择类型选择,包括不同意该应用程序安装,用户进行有选择性的安装,同意应用程序的完全安装。与现有技术相比,很好的解决了应用程序在安装过程中,由于Android安全机制本身的局限性导致的第三方应用程序对用户造成的危害。
文档编号G06F9/445GK102810143SQ201210132730
公开日2012年12月5日 申请日期2012年4月28日 优先权日2012年4月28日
发明者刘月朋, 李晓红, 石红, 冯志勇, 张倩倩, 余小飞 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1