您的位置:SKY网络电话 >> 行业信息>> 安卓软件应用安全漏洞挖掘国内外研究现状

安卓软件应用安全漏洞挖掘国内外研究现状

来源:网络转载-安卓软件应用  发布时间:2014-08-28 11:55:42

安卓软件应用安全漏洞挖掘方法有静态分析和动态分析两种方法。本节首先对这两种漏洞挖掘技术的研究现状进行综述,分析它们基本原理以及优缺点。然后,对Android的安全研究现状以及取得的成果进行介绍。

安卓软件应用安全问题,特别是安卓软件应用安全漏洞的发掘和分析,己引起包括我国在内的世界各国的重视。安卓软件应用安全问题,特别是安卓软件应用安全漏洞的发掘和分析,已引起包括我国在内的世界各国的重视。为了保证信息安全,在软件发布前预先发现软件中潜在的安全漏洞,软件漏洞挖掘技术相当重要。安卓软件应用安全漏洞挖掘研究成果不仅可以帮助分析人员快速发现、分析具有针对性的安全漏洞,而且可以使开发者在开发程序时管理和使用挖掘技术,防止漏洞的产生。软件漏洞挖掘主要技术主要可以分为静态分析和动态分析。

 

安卓软件应用静态分析国内外研究现状

静态分析方法是不需要运行程序直接对程序源码进行静态分析来发现安全漏洞的方法。依赖于制定好的规则或者缺陷模型。静态分析的主要优点在于可以实现代码的全面覆盖、挖掘具有自动化、高效等优点。但同时存在针对性不强、结果集庞大并且误报率高等局限性。另一挖掘方法是动态分析,动态分析不需要获得源码,通过运行应用程序来检测漏洞。动态分析通过输入半有效数据触发并挖掘漏洞。动态分析具有针对性强、准确率高。但由于它没有获得源码,代码覆盖率低,存在漏报。

静态分析一般是将源码转换为某种中间数据结构并采用相应算法进行分析。约束分析、模型匹配分析、类型推断和词法语法分析是静态分析常用的分析方法。另外MECA安全属静态分析方法是杨军峰提出的,写入程序编译扩展方法是美国斯坦福大学DaWson Engler和KenAshcrm提出的。因为静态分析的快速高效、代码覆盖率高等特点容易实现自动化。其中基于词法分析检查的的静态分析工具有ITS4、FLA、VFINDER、等。基于java的漏洞扫描工具,其中FindBugs是一个分析静态JaVa源代码的工具,能够检测出许多潜在的Bug和不推荐的代码编写方式。FindBugs虽然可以检测代码质量问题,但对安全问题效果不明显。Checkstyle也是一款Java程序源码样式的工具,同FindBugs一样,它也不能检测出软件存在的相关安全问题。可以针对安全问题的检测工具是Foni句Source Code Analysis Suite,它是在全球范围普遍使用的软件分析、源码安全挖掘的管理软件,是基于安全代码规则来识别和修复源码中的安全漏洞。Fonify是基于源码功能强大的安全检测软件,并且提供了集成开发插件Foni知SCA IDE,允许开发者在编码阶段进行安全漏洞扫描。但是FonifI,是国外开发的商业软件,对检测具有机密和敏感的程序让国内使用者很担心。因此,有必要研究自己的安全软件工具。

静态分析虽具有一些优点,但是它需要获得源码和安全规则和模式库,并且静态挖掘效果的好坏往往决定于模式库和安全规则。静态分析在挖掘漏洞的时候不能考虑程序实际运行情况,因此需要分析所有路径,误报率较高,会产生大量虚假漏洞导致结果集很庞大,分析困难。高效、快速、准确挖掘安全漏洞是性能系安全领域重要的研究方向。

 

安卓软件应用动态分析国内外研究现状

常见的动态分析方法有故障注入分析法、输入追踪法和堆栈比较法等,Fuzzing是一种基于动态分析的自动化的安全漏洞挖掘技术,它使用大量半有效的数据或者文件作为应用程序的输入,试图发现应用程序中存在的安全漏洞。最早提出Fuzzing概念是在1989年,当时威斯康星大学的Banon Miller教授开发了一个原始的Fuzzing工具,用来测试UNIX应用程序的健壮性。当时的Fuzzing测试是向目标程序中随机输入数据和字符串,观察系统是否产生异常或崩溃,来判断系统的健壮性。属于完全的黑盒暴力方式。1999年是Fuzzing发展的关键一年,是因为针对Fuzzing测试数据的生成结合了白盒测试。这种测试用例生成是Oulu大学使用硬编码方式生成PROTOS网络测试集时使用的。随后一系列Fuzzing工具开使出现,如2002年,开源Fuzzing工具SPIKE是DaVe Aitel发布的。2005年,微软发布了针对JPEG文件引擎的缓冲区漏洞Fuzzing工具。2006年,H.D.Moore和DaVid Zimmer发布了针对ActiveX控件测试的Fuzzing工具AxMall与COMRaider。

Fuzzing技术目前主要应用于安全方面,在国内,研究还处于起步阶段。Fuzzing技术面临的一个很大的挑战就是没有足够的代码覆盖率,未来的发展趋势是结合其他多种漏洞挖掘分析方法。动态分析的优点是准确率高,针对性强,但是存在漏报及自动化程度不高等缺点。

 

安卓软件应用

 

安卓软件应用研究现状

移动互联网是科技发展的趋势,智能手机的性能和功能逐渐逼近计算机,Android做为最流行的智能终端操作系统,将会成为社交网络的连接设备。企业、军队和政府的管理系统等由于Android的接入增加许多安全问题。Android移动终端的安全对以后的信息安全以及用户隐私安全至关重要。目前国内对Android基于源代码的静态分析还刚起步,主要是针对恶意行为的检测方向。由于Android的巨大潜力和开放性以及Android存在的安全问题,安全研究分析人员对增强—州roid的安全进行了多方面的研究,取得了一定成果。主要是对Android系统的硬件、操作系统内核、虚拟机、框架及应用程序层等方面进行了研究。

硬件层:体现在对硬件的改造和扩充安全机制来增强整个系统的安全性。通过设计出的硬件可信设备监测控制系统的行为和系统最底层。AI洲TmstZone是DaVid Kleidemlacher提出的用来增强Android的设备安全性。1’mstZone是将硬件形式的系统进行虚拟化,分为安全和可信的两种分区。安全区内运行的是涉及用户隐私安全的安全软件,它可以访问运行在普通区的其他软件,但普通区的其他软件不能访问安全软件。因为TmstZone技术已经成熟,并不会因为分区而产生额外的执行负载。智能终端的ARM一般都支持TmstZone技术,那么移动终端的安全输入、安全显示以及安全支付可以采用该技术。

内核层:Android操作系统是基于Linux内核开发的,山1droid继承了Linux的安全机制,因此增强Linux内核的方案的机制也就是对Android内核安全机制的增强。Linux包括安全模块LSM(Linux Securitv Module)模块,这个模块是用来保障Linux的安全。LSM在进程间通信、socket类操作和文件类等关键路径上插入许多钩子,以此作为安全机制实施点让各种安全模块挂接相应的钩子。这种安全增强实现可以分为路径名安全增强(如TOMOYO Linux Android)和标签安全增强(SELinuX)。

虚拟机层:鉴于对硬件层安全增强的难度大,研究人员提出让虚拟机具有更高的权限来管控和检测平台行为的基于虚拟化的安全增强方案。文献[26】提出移动Rootkit、硬件抽象层、用于近距离通信的SIM卡等应用,基于虚拟机技术的虚拟产品主要有Xen、OKL4、L4Android和vm眦鹏等,其中L4Android是一个支持虚拟机上同时运行多个Android实例的开源项目。

Android应用框架层:应用程序框架为应用程序的开发提供各种组件,其中包括活动管理器、包管理器、引用监视器等对应用程序的授权、权限检查各种信息进行管理和检测。这层的安全机制增强主要在于对安全权限进行管理和控制,提高可信性及安全性。主要成果有APEX、Saint、Kirin等。其次在动态运行权限加强方面,主要采用Quire、IPC Inspection、XMAndroid等来防止权限提升。另外在隐私数据方面有TISSA、AppFenceMockDroid是在保护用户隐私数据不被窃取而提供一些虚假数据。TaintDro是用来对隐私数据做污点,然后对这些污点数据的流向进行记录来保护用户隐私。(5)应用程序层:Android源码程序中存在的漏洞是Android受到攻击的主要原因,目前主要研究在程序中是否存在危险权限组合、最小特权原则方面。Ded是Enck设计实现的反编译工具,其中采用了Fonify SCA组件对应用程序进行语义分析、结构、数据流、控制流的一个静态分析。SCANDROID是针对开源应用程序,从MaIlifest文件中提取权限等安全信息,检测程序源码中的数据流向是否安全的基于WALA Java框架实现的自动推理工具。ComDroid是对程序字节码进行分析的工具,用来检测恶意服务启动、服务劫持、窃取等。W60dpecke在balsmali反汇编程序基础上采用数据流分析技术对程序进行非授权访问和权限泄露等问题的分析。基于Android的静态分析主要隐集中在私泄露及开放特权接口。

国内对安卓软件应用的应用层进行的研究包括,发明了Android平台安卓软件应用安全漏洞挖掘方法,提出先提取漏洞规则库,然后对Android的字节码文件进行数据流分析,根据漏洞规则库进行漏洞检测。提出为解决Android平台的软件的恶意软件杀毒速度慢、误报率高问题,发明了Andmid应用程序安全检测方法。该方法基于对安装包的扫描过程,在安全识别库中匹配扫描特征。发明了对Android手机的安全检测方法,采用对应用程序的接口或类进行插钩来获得程序行为的安全检测方法。提出了采用静态信息流分析技术来挖掘Android应用日志中的信息泄露。文献中针对Android内核代码,采用控制流的挖掘方法进行了分析检测,对多个Android系统版本问进行横向分析对比。可以发现系统中存在的弱点。但在挖掘新错误类型方面有限,并且不能降低误报和进行精确验证等问题。文献【46]中分析了Android商城中程序获取用户隐私的行为,采用了对Android二进制格式文件进行函数调用图的构建,用静态分析方法获取隐私泄露的路径,然后通过人工动态验证,对隐私泄露路径进行验证。采用了动态污点跟踪技术来实现%ntChaser自动化检测系统,进行细粒度的跟踪用户隐私泄露行为。中提出一种基于数据流分析的Android应用权限检测方法,设计并实现了静态检测工具Brox,实现对过多的权限进行检测,但是分析比较耗时。对Android隐私泄露作为一种缺陷模式,依据缺陷规则,对Android应用程序的源代码进行静态分析,对规范Andmid软件市场起到规范作用,防范窃取用户隐私行为。南京邮电大学研究出一种Android平台恶意软件行为的方法。该方法采用静态行为检测,利用可执行可链接(ELF)文件符号信息,利用逆向工程来抽取程序特征的手段检测恶意软件。

国外对A安卓软件应用研究非常重视,Kirin系统是宾州大学帕克分校的安全实验室以及计算机学院研究出的。该系统用于Android应用程序的安装阶段对其进行分析,属于动态分析领域。堪萨斯州立大学采用Indus对Android应用源代码进行程序切片的方法来分析应用程序中可能存在的资源信息泄露问题,前提是先对Android应用程序反编译得到源代码。“Indus”是由他们学校开发的JaVa静态分析工具,indus在检测的时间上存在一定的局限性,即使代码量很小,检测时间也非常长。意法的两所大学共同研究出一种对Android应用程序源码的静态分析系统,该系统主要是为开发人员用来检测代码中的缺陷来完善代码,在应用隐私泄露等安全问题没有涉及到。

目前,软件漏洞挖掘技术大多是基于静态或动态一种技术,如何结合多种挖掘方法的优点,研究出一款快速、高效、准确的混合型挖掘方法是研究的热点。现在智能手机功能越来越强大,手机不单纯是通讯工具,更成为了用户的个人信息中心,Android占智能手机的绝大部分市场,而且发展迅猛。由于Android操作系统的开源性,使其很容易遭到攻击,消除安全漏洞是减少被攻击的一个重要方面,目前,针对安卓软件应用安全挖掘技术还很少,为保障用户的隐私及移动互联网安全, 针对Android平台的安全研究将会是一项长期而艰巨的任务。

上一条:理解什么是SIP对话
下一条:“亲情号码组合” 惹出风波