背景技术
随着计算机技术的发展,智能终端变得越来越普及。但是智能终端恶意软件出现的也越来越多。2004年,在智能终端快速发展之前,Dagon和Guo 等人就讨论了随着网络和计算功能的发展,终端所面临的安全问题。智能终端恶意软件主要包含Trojans,目的在于泄露用户信息。目前已经有一些有效的和被提倡的方法用于防止用户安装恶意软件或灰色软件。
目前对安全方面的研究分为两类:有保护的系统和应用分析。
第一种:有保护的系统
1) 规则驱动策略的方法
Ion等人是最早提出为智能终端定义扩展安全策略框架的研究者。他们提出了一个基于J2ME延伸的xJ2ME,它是基于移动设备提供细粒度的运行执法。之后Enck等人提出了Kirin安装时认证的体系方法,这是第一个Android安全策略的延伸。Bugiel等人提出了XManDroid系统,以减轻在Android许可权限提升的攻击。XManDroid旨在防止两者混淆副攻击的应用程序(不能进行Kirin检测)之间相互勾结。
2) 高层次策略方法
Android的基于权限的保护系统是由规则驱动的,因此,人们必须先了解单个权限的意义来理解全局策略。Android的权限不具有可比性,因此不能被安排在一个网格里,也不能够传递。正因为如此,完全基于Android权限的高层次的策略方法,将必然会产生很多策略异常。如果牢记了权限的语义和它的限制,权限提供优秀的安全提示。第三方应用引入了越来越多的敏感信息,所以也可以说敏感信息跟特定程序越来越相关。因此,全局保护策略需要应用程序开发人员的支持。
3) 平台硬件化方法
大多数智能终端的功能出现在中间件层。这简化了底层平台,并支持传统的应用程序平台硬件化技术。因此,强制访问策略能够变得更简单。设备安全性依赖于它的可信计算基础(TCB),因此平台硬化是一个智能终端安全的重要组成部分。Muthukumaran等人设计了一个自定义的SELinux策略,用于Openmoko来区分可信的和不可信的软件。
4) 伪装敏感信息方法
研究确定,许多智能终端应用程序泄露电话标识符和服务器的位置。Beresford等人建议为应用提供伪装或“模拟”的信息。他们的MockDroid系统,为位置和终端标识符这些信息返回伪装的固定值。Zhou等人提出了TISSA,它允许用户为位置、终端标识符、联系人、通话记录等信息自己选择返回值,这个返回值可以是空的,变形的,或伪装的。
第二种:应用程序分析
1) 权限分析
权限关联保护政策,但还描述了一旦一个应用程序安装了,它能够做什么。Enck等人首先使用Android权限来识别危险的功能。如果一个应用程序没有必要的权限,攻击就不会发生--不包括利用漏洞。很多学者将大量应用程序做了研究,他们发现大多数应用程序只需要很少的权限。
2) 动态分析
研究者从事权限分析是因为这些应用程序源代码不可用。研究应用程序的下一步就是动态分析。动态分析能够解决权限不清晰的问题。它还能够解决配置相关性的问题。动态分析识别一个应用程序在运行的时候真正进行的动作,而静态分析不能够获取所有的运行配置信息和输入数据。但是,动态分析在可扩展性方面有所局限。
3) 静态分析
静态分析程序可以依赖或不依赖于源代码。Enck等人提出ded来推导Android应用程序到它们原始的Java组成,常用的较好的静态程序分析工具已经存在。研究者使用源代码分析来模拟Android的组件交互。
但是,直接在严重资源约束的智能终端上实行安全机制可能会有问题。比如说,在Android系统的某终端上运行一个简单的文件扫描工具ClamAV,应用大约需要30分钟,耗费电量2%。其他的文件扫描工具需要的时间同样比在PC机的虚拟机上运行需要的时间长。由于终端不同于PC机,很多PC机上可用的安全机制不能在终端上使用。因此,需要一种不同的安全机制检测模型完成对智能终端上的应用程序检测及文件扫描。
发明内容
本发明要解决的技术问题在于克服上述现有技术的不足,而提出一种Android智能终端应用程序安全检测的方法及系统,可有效解决终端端资源紧缺、安全检查不够全面的问题。
本发明解决上述技术问题采用的技术方案包括,提出一种Android智能终端应用程序安全检测的方法,包括:
在Android智能终端启动跟踪记录程序,该跟踪记录程序能够记录用户
空间程序通过系统调用与内核交互的所有数据并将记录数据暂存;
以松同步的方式将该记录数据上传至远程服务器,该远程服务器的模拟器中保存有该Android智能终端的系统复制品,该系统复制品能够对会对该记录数据进行重放以完成安全检测。
该远程服务器能够通过加密渠道向用户发送警告信息。
在检测到被攻击以后,该远程服务器能够将该系统复制品发送给该Android智能终端而使其能够恢复到先前的状态。
该跟踪记录程序能够只记录不确定的系统调用。本发明中,不确定的系统调用指,外来不确定事件,例如键盘输入引起的系统调用,用以区分应用程序调用时固定进行的系统调用,例如打开串口,读取本地文件等。
该松同步的方式是指只在该Android智能终端是活动的并且联网时传输该记录数据;或者,该松同步的方式是指只在该Android智能终端充电时才进行同步。
在进行同步前,对该记录数据进行压缩,具体包括:对系统调用返回的时间相关的数据使用增量编码方式编码以取代实际数据的不连续的值;对频繁出现的数据采用Huffman码来表示;对其他数据采用通用的DEFLATE压缩算法。
采用代理服务器存储网络来源的数据,该远程服务器可以直接访问该代理服务器。
在进行同步前,采用一个以应用程序信用度和上传消耗功率为二维因素的风险评估算法对该记录数据进行评估;并将该信用指数和上传消耗功率做线性求值,并根据所得值的大小决定被跟踪的应用程序的记录数据是否需要上传;该应用程序信用度是以后台的应用程序下载量和用户评价作为衡量标准所得到的被跟踪的应用程序的信用指数;该上传消耗功率表示将被跟踪的应用程序的记录数据进行上传所需消耗的Android智能终端资源。
该信用指数以10为最大值,0为最小值,值越高的信用度及可信赖程度越高;该上传消耗功率越大,所需消耗的Android智能终端资源越多。
本发明解决上述技术问题采用的技术方案还包括,提出一种Android智能终端应用程序安全检测的系统,包括:
端记录单元,设置在该Android智能终端中,其能够记录用户空间程序通过系统调用与内核交互的所有数据并将记录数据暂存;
数据同步单元,设置在该Android智能终端中,其能够以松同步的方式将该记录数据上传;以及
远程服务器,其能够接收该数据同步单元上传的该记录数据,其上运行有与该Android智能终端同步的系统复制品,该系统复制品能够对会对该记录数据进行重放以完成安全检测。
与现有技术相比,本发明的Android智能终端应用程序安全检测的方法及系统,通过记录下终端的执行踪迹以及在远程服务器上运行与终端同步的副本,可有效解决终端端资源紧缺、安全检查不够全面的问题。
具体实施方式
以下结合附图所示之最佳实施例作进一步详述。
本发明维持一个记录和重放的模型,能在服务器上同时进行多种安全检测,而不受限于终端的资源紧缩。该方法包括:在终端上启动一跟踪记录程序收集应用程序的执行记录,通过终端网络同步到远程的服务器上,在远程的虚拟环境中有一终端系统复制品在模拟器中运行,可重放收集的跟踪记录,可选取多种方法对终端安全进行检测分析。
本发明采用在云里的复制品上进行安全检测的方法,不受限于终端的资源紧缩,有足够的资源进行多个安全检测方法的组合,进行有效的更全面的终端检测,保证了终端的安全性。
参见图1,本发明的Android智能终端应用程序安全检测的系统的结构图,其大致包括:端记录单元,设置在该Android智能终端中,其能够记录用户空间程序通过系统调用与内核交互的所有数据并将记录数据暂存;
数据同步单元,设置在该Android智能终端中,其能够以松同步的方式将该记录数据上传;以及
远程服务器,其能够接收该数据同步单元上传的该记录数据,其上运行有与该Android智能终端同步的系统复制品,该系统复制品能够对会对该记录数据进行重放以完成安全检测。
本发明的Android智能终端应用程序安全检测的方法,包括:
在Android智能终端启动跟踪记录程序,该跟踪记录程序能够记录用户
空间程序通过系统调用与内核交互的所有数据并将记录数据暂存;
以松同步的方式将该记录数据上传至远程服务器,该远程服务器的模拟器中保存有该Android智能终端的系统复制品,该系统复制品能够对会对该记录数据进行重放以完成安全检测。
本发明的方法,进一步包括:
终端android系统启动时,使用init进程来启动tracer跟踪程序,并且在所有要记录的程序启动前启动。Init进程使用一个execution stub来启动所有要记录的进程。
tracer启动以后,它初始化一个FIFO队列来与需要记录的进程进行联系。当execution stub启动所有要记录的进程时,它会将进程的进程号(pid)写到tracer的FIFO队列里。一旦读到一个pid,tracer就会附在进程上记录它。
Tracer记录的数据包括应用程序执行时所有不确定的系统调用及通信机制。
在上传服务器之前,tracer会将所有数据缓存在一个安全存储中。存储前,为了数据安全及减少数据量,会使用三种算法对不同的数据进行压缩。
压缩方法包括:首先,对系统调用返回的时间相关的数据使用增量编码方式编码,取代实际数据的不连续的值。第二,采用Huffman码来编码表示频繁出现的跟踪值。最后,数据采用通用的DEFLATE压缩算法。
数据压缩以后,使用一个安全存储来抵御可能的对数据的攻击。该方法使得每一块写入安全存储的数据都与一个HMAC码(Hash Message Authentication Code,哈希信息验证码)有关联。通过使用HMAC码不断滚动密钥的方式来达到防篡改的目的。
当终端设备活动并且联网时,向服务器传输跟踪记录。对于更极端的松同步方式,本发明还支持只有在终端充电时才同步数据。
对于从网络中获得的数据,本发明设置一个网络代理服务器,接收从网络中获得的数据并缓存,服务器可直接从代理中获取网络数据。
对于应用程序记录的数据,可以用评估算法进行评估判断数据是否需要上传。该评估算法以应用程序信用度和上传消耗的功率作为二维因素,根据实际因素得到一个线性表达式。对每一个应用程序数据可计算一个表达式结果,以这个结果作为上传的判断标准。
对于上传到服务器的数据,服务器上的终端复制品中将对这些数据进行重放,检测应用程序的安全性。
对于服务器上的检测方式,按根据用户环境的实际需要,选取几种适合的安全检测方法进行组合分析。以及
如果服务器中检测到终端安全有威胁,将会通过一个特殊的加密通道将反馈信息返回给用户,用户可以请求服务器传回最近的终端安全状态数据,以恢复终端的安全状态。
在本发明中,通过搭建以上所述的记录重放系统,配以同步上传机制,从而实现将终端安全检测转移到资源更为丰富的云端服务器中的进行。举例而言,
当用户终端使用本发明的记录重放机制系统时,用户终端内下载的应用程序将会被tracer跟踪。
终端用户开启自己的终端时,tracer首先运行起来。本例以跟踪终端里的应用程序“QQ for pad”(后台下载)和“7歌播放器”(后台下载)。
当开始运行这两个应用程序时,tracer会把它们加载到自己的队列里面去。应用程序运行过程中,tracer会记录下所有不确定的系统调用及通讯机制等数据。
这些数据上传前,先把它们存储到终端的安全存储中。为了节约终端的存储空间,存储前先将它们进行压缩。首先,对系统调用返回的时间相关的数据使用增量编码方式编码,取代实际数据的不连续的值。第二,采用Huffman码来编码表示频繁出现的跟踪值。最后,数据采用通用的DEFLATE压缩算法。
数据压缩以后,使用一个安全存储来抵御可能的对数据的攻击。这个方法使得每一块写入安全存储的数据都与一个HMAC码有关联。通过使用HMAC码不断滚动密钥的方式来达到防篡改的目的。
当终端设备活动并且联网时,向服务器传输跟踪记录。对于更极端的松同步方式,还可以只在终端充电时才同步数据。
对于“QQ”应用程序从网络中获得的数据,采用一个网络代理服务器,接收从网络中获得的数据并缓存,服务器在需要这些数据时直接从代理中获取网络数据。
这两个应用程序记录的数据,在上传前先用本发明的评估算法进行评估判断数据是否需要上传。评估算法以应用程序信用度和上传消耗的功率作为二维因素,得到一个线性表达式为Z=100(X-10)+Y。
经过对后台里对“QQ for pad”应用程序的用户评价和这个应用程序的下载量来看,“终端QQ”应用程序的信用度为10。而“7歌播放器”的相比起同类型的软件明显下载量较低,综合其用户评价,得到它的信用度为4。
经过tracer的跟踪监测,“终端QQ”在同步上传前所产生的数据消耗功率是500P,而“7歌播放器”所产生的数据的消耗功率为550P。
将以上数据带到线性表示式中,得到两个应用程序的值分别为:QQ的 Z=500, 7歌播放器的Z=-50。
对应用程序的判断标准可以是:当应用程序信用度大于等于9时,应用程序记录数据可以不用上传;当应用程序信用度在6到9之间时,根据计算出来的Z值来判断,Z值大于100可以不用上传,Z值小于等于100时要上传;当应用程序信用度在4到6之间时,根据计算出来的Z值来判断,Z值大于10可以不用上传,Z值小于等于10时要上传;当应用程序信用度小于4时,应用程序数据必须上传。
根据以上判断标准,“终端QQ”应用程序属于用户信赖应用,产生的数据可以不用上传;“7歌播放器”属于用户不太信赖的应用,产生的Z值小于10,应该要上传。
对于上传到服务器的数据,服务器上的终端复制品中将对这些数据进行重放,采用动态安全检测方法检测应用程序的安全性。
对于服务器上的检测方式,按根据用户环境的实际需要,可以选取静态安全检测,动态安全检测相结合的安全检测方法进行组合分析。以及
如果服务器中检测到“7歌播放器”对终端安全有威胁,将会通过一个特殊的加密通道将反馈信息返回给用户。用户接到反馈后,可以将该应用程序卸载掉,并请求服务器传回最近的终端安全状态数据,以恢复终端的安全状态。
以上,仅为本发明之较佳实施例,意在进一步说明本发明,而非对其进行限定。凡根据上述之文字和附图所公开的内容进行的简单的替换,都在本专利的权利保护范围之列。