IOS系统应用安全性研究
ios系统介绍

iOS系统一、Ios系统概述(网际操作系统)iOS是由苹果公司为iPhone等设备开发的操作系统,它主要给iPhone、iPod touch以及 iPad设备使用,它管理设备硬件并为手机本地应用程序的实现提供基础技术。
根据设备不同,操作系统具有不同的系统应用程序,例如Phone、Mail以及Safari,这些应用程序可以为用户提供标准系统服务。
二、ios系统优点1.ios系统与硬件的整合度高,使其分化大大的降低,远远的胜于android。
2.华丽的界面。
无论你是否喜欢apple的硬件还是软件,有一点你不得不曾任,ios的界面做的非常的漂亮。
苹果向界面中投入了很多精力,从外观到易用性,ios拥有最直观的用户体验。
3.数据的安全性。
想必每个人都不想自己的隐私被侵犯,而ios有着强大的防护能力,用户的信息不回被泄露。
4.众多的应用,图形处理强大。
App store有着35万的海量应用供用户选择。
Ios应用开发者可以通过开发应用赚到钱,这也是为什么开发者要选择ios的最重要的原因。
App store甚至吸引了一些大牌开发商。
Ios虽然有些封闭,但却拥有最佳的应用。
5.强大的兼容性。
三、ios开发应遵循的原则1、操控便捷iOS应用的控制设计应该具有圆润的轮廓和程式化的梯度,操作便捷。
2、结构清晰、导航方便充分利用iOS导航栏。
尽量将所有的导航都安排在一个分层格式中,方便显示应用内的当前位置。
3、微妙清晰的用户反馈使用动画显示用户的操作结果。
一个经典的例子是:当用户长按进入“重新排列模式”时,应用会抖动。
4、确保外观和功能协调如果是生产力类型的应用,可在背景中加入与之协调的装饰,注重最大限度地发挥功能效益;如果是游戏类应用,则应充分利用全屏,创造身临其境的体验。
确保应用的外观能很好地为其功能服务,苹果称之为“审美的完整性(aesthetic integrity)”。
5、突出首要任务不要在屏幕上添加任何冗余的东西,尽量做到简洁,突出首要功能。
移动应用开发技术研究

移动应用开发技术研究随着移动设备的普及,移动应用的开发已经成为了互联网行业的一个重要方向。
因此,研究移动应用开发技术可以提高开发者的技术水平,更好地满足用户需求,进而推动移动应用的发展。
本文将就当前移动应用开发技术的现状和未来发展进行探究。
一、移动应用的基础技术1.1 移动应用的基础语言:Java、Objective-C和Swift目前最常用的移动应用开发语言是Java和Objective-C。
Java是安卓系统的官方语言,而Objective-C则是iOS系统的主要语言。
值得注意的是,自2014年开始,苹果公司推出了Swift语言,其被誉为是Objective-C语言的替代品。
Swift语言不仅继承了Objective-C的特性,还有许多新特性,如更快的编译速度、更容易的语法、更安全的编程体验等。
因此,Swift已经逐渐成为了iOS应用开发的主流语言。
1.2 移动应用的基础框架:iOS和Android系统框架iOS和Android系统框架是移动应用开发的基础框架。
两者之间的差异主要在于UI设计和API接口的不同。
iOS系统框架采用了MVC架构,而Android系统则采用了MVP架构。
值得一提的是,由于苹果公司对iOS系统的封闭性较强,因此iOS的应用开发和测试相对更容易控制。
而安卓系统的开放性则为开发者提供了更大的灵活性和创造性。
1.3 移动应用的基础组件:Cocoa Touch和Android SDKCocoa Touch是iOS移动应用程序开发的基础组件,包括UI控件、事件处理、绘制图形等功能。
Android SDK则是安卓系统的开发工具包,包括了用于开发应用程序的基础组件库和开发工具,同时也支持应用程序的测试和调试。
两者的基础组件都为应用程序开发提供了一个良好的基础。
二、移动应用的开发技术2.1 移动应用的开发工具目前最为常用的移动应用开发工具是Xcode、Android Studio和Unity 3D。
安卓系统与苹果IOS系统的对比探析

安卓系统与苹果IOS系统的对比探析随着智能手机的普及,安卓系统和苹果iOS系统成为了市场上主要的操作系统之一。
这两个系统在功能、用户体验、开放程度等方面存在着一些差异。
本文将对安卓系统和苹果iOS系统进行对比,探析其优劣势。
一、功能对比1.1 安卓系统功能安卓系统是由谷歌公司开发的开源操作系统,其功能非常丰富。
用户可以定制手机界面、安装第三方应用,且能够自由切换不同厂商的手机。
安卓系统支持多任务处理,用户可以同时运行多个应用程序。
安卓系统还提供了各种实用功能,如文件管理器、闹钟、备忘录等。
1.2 苹果iOS系统功能苹果iOS系统由苹果公司开发,相对于安卓系统来说,其功能较为简洁。
苹果iOS系统注重用户体验,其界面简洁、操作流畅。
苹果iOS系统对硬件和软件的优化非常出色,使得iPhone的性能得到最大的发挥。
苹果iOS系统还提供了一些实用功能,如Siri语音助手、AirDrop无线传输等。
二、用户体验对比2.1 安卓系统用户体验安卓系统的用户体验相对较为灵活,用户可以根据自己的需求自定义手机界面、安装第三方应用,且能够自由切换不同厂商的手机。
安卓系统在功能上的多样性也导致了一些不稳定性和安全性的问题。
由于不同厂商对于安卓系统的定制不同,用户在使用上可能会有一些兼容性问题。
三、开放程度对比3.1 安卓系统开放程度安卓系统的开放程度非常高,用户可以自由定制手机界面、安装第三方应用。
安卓系统的开源性质也促进了应用程序的快速发展。
开发者可以通过谷歌提供的开发者工具自行开发应用并发布到应用商店。
安卓系统的开放程度也导致了一些安全性问题,有些第三方应用可能存在恶意软件或广告弹窗。
3.2 苹果iOS系统开放程度相较于安卓系统来说,苹果iOS系统的开放程度较低。
苹果公司对于应用的审核比较严格,只有经过审核的应用才能上架。
用户不能够自由定制手机界面和安装第三方应用。
这种保守的开放程度虽然提升了系统的安全性,但也削弱了用户的个性化需求。
iOS与安卓的区别是什么

iOS与安卓的区别是什么1、应用的设备不同:iOS和安卓最大的区别在于本身所应用的设备不同。
iOS系统主要是应用在iPhone、IPad、itouch设备上的操作系统,安卓系统主要是应用在安卓智能手机上的操作系统。
2、面向人群不同,iOS系统面向的是中高层收入的人群,有人称它为“高富帅”系统,而安卓系统则是面试中低层的大众人群,有人称它为“屌丝系统”。
3、系统的开放性区别:系统的开放性主要体现在两个方面:源代码和应用接口。
安卓拥有自己的开源计划AOSP(Android Open Source Project),只要遵循GPL和Apache Licence 2.0开源协议,那么你就可以使用安卓源代码进行二次开发。
而安卓由于源代码开放,自然可玩性也比iOS高。
此外,安卓比iOS开放了更多的应用接口API,我们可以很自然地利用安卓实现很多在iOS上不折腾就没法做的功能。
在安卓,你可以随心随意地更换输入法,随意用任何浏览器打开链接,随意从任何途经安装程序,随意调用第三方程序分享文件——这些在iOS上不越狱都做不到,即使越狱也未必比安卓做得更好。
4、系统的安全性区别:iOS系统是一款比较强大的操作系统,在iOS系统运行的程序不管程序多大都不会造成死机,玩起来非常的流程,而且系统的安全性比较高。
安卓系统是属于代码系统,如果所有的应用程序需要下载下来之后才能玩,系统用久之后会经常出现卡机或者是死机的现象,而且安卓系统还存在恶意的插件在系统上自动运行,系统漏洞多,导致个人资料被盗、系统耗电大,流量消耗大等,系统安全性相对来说比较低。
5、开发难度不同:苹果提供完整高效xcode,sdk等开发环境,iOS系统一脉相承,iOS版本之间的软件通用,即开发一款产品苹果所有设备都能运行。
其硬件的强大也让开发变的更加容易。
Android工程师们一直都在抱怨,开发环境的不完善与品牌型号系统的不兼容等原因,造成开发者需要做许多繁重无谓工作。
手机应用开发毕业论文

手机应用开发毕业论文近年来,随着智能手机的普及,手机应用程序的需求越来越大,无论是娱乐、社交、教育还是商业领域,都有大量的手机应用程序涌现。
因此,手机应用程序开发成为了一个非常具有前景的行业。
本文旨在探讨手机应用程序开发的相关技术、流程和市场趋势等方面,以此来提高开发者的技术水平、提高开发效率和实现应用的商业化运作。
一、手机应用程序开发技术1.1 操作系统及开发平台目前主流的手机操作系统有iOS、Android、Windows Phone、BlackBerry OS等。
不同的操作系统有不同的应用开发平台。
其中,iOS应用开发需要使用Objective-C或Swift 语言和Xcode IDE开发工具,Android应用开发则需要Java 语言和Eclipse或Android Studio开发工具。
1.2 接口开发应用程序的核心是接口设计和开发。
接口设计需要从应用的功能和用户体验出发,设计出易用、可访问、高可用的接口。
接口开发则需要考虑技术实现和效率,以达到快速响应和扩展的目的。
常用的接口开发技术有RESTful API、SOAP、XML-RPC等。
1.3 数据库开发应用程序需要使用数据库进行数据存储和访问。
常用的数据库包括MySQL、Oracle、SQL Server等。
数据库开发需要考虑数据可靠性和安全性两个方面。
1.4 安全性安全性是应用程序开发中必须考虑的问题,因为安全问题可能导致数据泄露、应用被攻击以及用户隐私泄露等问题。
常用的安全性技术包括SSL/TLS、AES/DES、HMAC、OAuth等。
二、手机应用程序开发流程2.1 需求分析需求分析是开发应用程序的第一步。
开发者需要了解用户的需求和目标,以及应用程序的核心功能、设计和开发的约束等问题。
同时,开发者需要考虑应用程序的商业模式和商业化运作。
2.2 设计设计是手机应用程序开发的重要环节,包括用户界面设计、功能选择和系统体系结构设计等。
安卓系统与苹果IOS系统的对比探析

安卓系统与苹果IOS系统的对比探析安卓系统和苹果iOS系统是目前手机操作系统市场上的两大主要竞争对手。
两个系统都有自己的优势和独特之处。
本文将对两者进行比较和探析,以帮助读者更好地了解两个系统的差异。
我们来看看安卓系统。
安卓是一个开源的操作系统,目前由谷歌开发和维护。
这意味着安卓系统是免费的,并且任何厂商都可以基于安卓开发自己的设备。
由于开放的生态系统,安卓在市场上的设备选择非常丰富,从便宜的入门级设备到高端旗舰机型都有。
安卓系统相对于iOS系统更加灵活,用户可以自定义界面、安装第三方应用程序以及进行更多个性化设置。
这也为开发者提供了更多的机会来创新和推出新的应用程序。
安卓系统也有一些缺点。
由于多样性和碎片化的存在,安卓系统在更新和维护方面不如iOS系统稳定。
安卓的安全性也相对较差,因为开放的生态系统使得恶意软件和病毒的传播更加容易。
由于不同的设备使用的硬件和软件规范也不同,安卓系统相对于iOS系统在性能和用户体验方面可能存在一些差异。
接下来,我们来看看苹果iOS系统。
苹果iOS系统是苹果公司自家开发和使用的操作系统。
与安卓不同,iOS系统是封闭的,它只能在苹果设备上运行。
这意味着苹果有更多的控制权和保证了系统的稳定性。
由于封闭的生态系统,iOS系统在更新和维护方面更加稳定和及时。
苹果公司对iOS系统的安全性非常重视,通过严格的应用审核和隐私保护措施来确保用户的数据和设备的安全。
封闭的生态系统也带来了一些问题。
苹果设备的价格相对较高,使得苹果产品不太适合一些预算有限的消费者。
苹果对于第三方应用和定制化设置的限制也较多,用户的个性化选择受到一定程度的限制。
安卓系统和苹果iOS系统都有各自的优势和劣势。
安卓系统具有开放性和灵活性的优势,而iOS系统则提供了更稳定、安全和一体化的用户体验。
选择哪个系统取决于个人的需求和偏好。
如果你想要更多选择和自定义功能,安卓是一个不错的选择;如果你看重系统稳定性和安全性,并且愿意为高品质和一体化的用户体验付出更多,那么iOS是一个值得考虑的选项。
苹果手机的优缺点分析

苹果手机的优缺点分析
苹果手机的优点
1、少了广告的打扰。
众所周知,有一部分国产安卓系统会在系统内自带一些系统广告,虽然可以通过各种途径关闭。
但这也改变不了,内置广告的事实,iOS相对就比较干净了,完全没有什幺广告。
并且因为推送机制的特殊,不但推送不会让应用在后台自启,还是通过云端服务器推送,更加省电高效。
2、强大的IOS系统。
苹果IOS系统是出了名的流畅度高、安全性好及稳定性好,虽然目前安卓系统也在不断得到提升,但对于IOS来说,还是输了一大截。
3、使用过苹果手的人都知道,无论是它的材质还是它的手感都十分不错,这也就是为什幺苹果手机的销量远大与国产手机销量的一重要原因。
4、长时间使用苹果手机不卡顿,由于苹果独特的IOS系统,禁止安装来源不明的软件,不仅保护了手机的安全,更是增强了手机的流畅度。
安卓系统与苹果IOS系统的对比探析

安卓系统与苹果IOS系统的对比探析当谈到移动操作系统时,Android和iOS往往是最常见的两种选择。
Android是由谷歌开发的开放源代码操作系统,而iOS则是由苹果开发的封闭源代码操作系统。
尽管两者都是为移动设备而设计的,但他们在许多方面有着明显的不同。
安卓系统在硬件和软件方面具有更大的适应性和自由度。
由于是开源系统,用户能够自定义和修改他们的设备,例如更换主题,自定义启动器等等。
更多的手机厂商选择使用Android作为他们的操作系统,这使得用户不仅有更多的品牌和型号选择,还能够从中选择适合自己需求的设备。
相比之下,苹果的iOS安装在苹果自家的设备上,用户没有自定义和修改的选项,只能按照苹果的设计和设置使用设备。
安卓系统在应用程序和软件方面也占据着优势。
Android系统上的应用程序可以通过Google Play商店以及其他第三方应用商店进行下载和安装。
用户可以选择从数百万的应用中找到适合自己的应用,包括免费和付费的应用。
而苹果的iOS系统只允许从苹果App Store下载应用,并且对应用的审核比较严格,一些应用可能需要经过苹果的审核才能上架。
虽然iOS的App Store提供了数量庞大的应用程序,并且质量也相对较高,但是用户的选择范围相对较小。
安卓系统在多任务处理方面也更加灵活。
用户可以在Android设备上同时运行多个应用程序,并且可以轻松地在应用间切换。
而对于iOS系统来说,多任务处理功能较为有限,用户只能在一段时间内集中在一个应用程序上,然后再切换到另一个应用程序。
iOS系统在安全性和稳定性方面更加出色。
苹果对其操作系统有更多的控制权,可以更好地控制应用程序的质量和安全性。
虽然Android系统在近年来在安全方面有了很多改进,但由于其开放性,很容易受到恶意软件和病毒的侵害。
两个系统在用户体验方面也有所不同。
iOS系统注重简洁、直观和一致的用户界面,使得用户使用起来更加流畅和便捷。
而Android系统则更加注重个性化和自定义,用户可以根据自己的喜好来调整界面和设置,但也会导致一些设备的使用体验差异较大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
龙源期刊网 http://www.qikan.com.cn IOS系统应用安全性研究 作者:韩玉会 来源:《电脑知识与技术》2017年第11期
摘要:信息时代,移动智能终端被广泛应用于处理各类重要的数据信息,与之紧密相连的各类移动安全问题也随之出现,例如个人隐私泄露,手机病毒泛滥,各类恶意攻击等。该文在深入分析IOS系统安全机制及IOS应用安全检测技术的基础上应,综合运用理论分析及实证研究等方法,提出针对IOS平台应用的以静态分析技术为基础,结合动态监测手段的综合分析检测方法,可有效提高IOS平台应用安全检测的准确度,降低报错率。
关键词:IOS系统;应用开发;安全性 1背景 信息时代,越来越多的人使用移动智能设备处理各类重要数据。当今主流的智能终端操作系统主要有谷歌的Android系统和苹果的IOS系统,IOS系统是运行在苹果系列产品如iPhone和iPod Touch等终端产品上的移动操作系统,它具有强大的无线网络功能,支持视频电话、GPS定位及安装第三方开发的应用程序等功能。随着苹果产品的不断推广和升级,随之而来的系统应用安全问题也愈显突出。2014年9月其中包括隐私泄漏、木马病毒、恶意程序、轰动一时的各类“窃听门”事件等智能终端安全事件的出现,标志着IOS平台应用安全问题已经日趋严重,用户的个人隐私面临严重的安全隐患。
2IOS系统安全机制分析 在研究影响IOS应用的各种安全情况之前,我们首先对IOS平台的安全特性做一个深刻剖析,以便于后续对应用安全分析的理解。lOS系统自身有严格的安全防范机制,这些安全特性对各种运行IOS系统的设备基本透明,很多安全特性设置都是默认开启和关闭,不需要用户人为的进行各种复杂配置的设置。IOS系统尤其对一些关键的安全特性不允许用户自行配置,以避免用户设置错误或操作失误导致这些重要的安全防护功能关闭,例如硬件设备的加密特性,就在生产时设定以后再不允许修改。IOS系统安全模型如如图1所示,这种安全模型旨在不影响用户基本使用的情况下保护系统数据的安全性。
图1中,与底层的硬件或固件相关的安全设置都与苹果公司的出厂设置密切相关,苹果根证书(Apple Root Certificate)在芯片制造时就已经植入,不可再次更改,这些安全特性都是为了防御恶意应用或病毒篡改设备的重要信息。上层操作系统的安全设置则是为了防御非法(未授权)使用破坏系统完整性,阻止攻击行为的运行。苹果公司把IOS系统的安全性作为软件更新和维护的核心,同时,在IOS系统的安全性能设计上使用了大量的密码学理论和计算机加密技术,修补系统漏洞,更新版本,提升系统功能。 龙源期刊网 http://www.qikan.com.cn IOS平台的核心安全特性可以归纳如下几点: 1)硬件安全一安全启动链策略 IOS设备硬件启动过程的安全性由其安全启动链来保证。安全启动链中所涉及的每个组件都由苹果公司加密签名以确保其可靠性和完整性。IOS设备开机后,苹果公司事先写人Boot ROM中的根数字认证密钥就会被CPU运行,根数字认证密钥一旦写人芯片,就不可更改,并会的系统的绝对信任。这个密钥是验证其他底层硬件引导或加载程序(LLB)的基础,所有启动程序都需要通过验证其是否已经经过苹果公司的签名,通过加载,否则拒绝。这种安全启动链的验证模式保证了每次启动时底层代码的安全性,确保其未被人为篡改。而且也保证了IOS系统只能运行在经过验证的、确认是合法授权的IOS硬件设备上。
2)应用安全一程序代码强制签名策略 IOS系统是一个封闭的系统,所有的硬件设备和软件应用都与苹果公司相关,苹果公司生产设备并开发的IOS系统,所有运行在苹果设备上的应用都需要经过苹果公司审核。为确保所有程序均已获批准,且此文件与批准时的文件完全相同,IOS系统要求所有可执行代码均使用苹果公司颁发的证书进行签名。硬件设备附带的应用程序由苹果公司签名。第三方应用由苹果公司颁发证书验证签名。这种程序代码强制签名规定,是安全启动链的信任关系从IOS系统延伸至应用程序,以防止陌生应用运行及各种代码篡改。
3)数据安全——文件数据保护技术 IOS系统的文件数据保护是以硬件设备加密技术为基础的。苹果公司在硬件设备中植入了一些与安全相关的技术和设备,硬件的安全设置为IOS系统安全提供最为基础的保护。这些硬件加密引擎是构建各类层次的应用密钥的关键,由于硬件中固化的密钥为唯一且永远不变,利用这个密钥进行所有后续安全设置的加密引擎,既可以保护数据安全,又可以保证加解密的效率。具体实施如下:所有IOS设备生产时就培植了专用的256AES加密引擎,放置在DMA中,由于DMA处于闪存与系统主存之间,方便高效的文件数据加解密。专属的硬件密钥由设备唯一ID(UID)和设备组ID组合而成,为防止篡改或绕过因此被固化在IOS设备的处理器中。并且苹果公司规定任何软件或固件都无法直接读取设备的硬件密钥,只能查看密钥参与加密或解密之后的执行结果。生成文件时,开发人员指定文件类别,由数据保护系统根据文件类别分配类密钥,从而实现文件数据安全控制。
4)执行安全一沙盒技术和地址空间布局随机化策略 沙盒技术把IOS系统应用的运行限制在一个独立、封闭的空间,这个独立的空间叫做沙盒(sandbox)。IOS系统的沙盒机制主要是为了实现安全隔离。首先进程隔离(process isola-tion):应用程序在运行过程中禁止读取其他进程数据,也就是说,在运行过程中进程之间的通信被完全限制,以防止运行过程中的遭遇感染或攻击的几率。其次文件系统隔离(file sys-龙源期刊网 http://www.qikan.com.cn temisolation):所有应用程序都只能在自己的目录下操作文件,这样应用之间就不会可能产生攻击行为。应用程序沙盒化后,其活动范围被限定在一个独立的沙盒中,对系统以及用户更加安全,并且加大了恶意程序入侵系统的难度。
地址空间布局随机化(Address Space Location Randomiza-tion,ASLR):是参与保护缓冲区溢出问题的一个计算机安全技术,防止攻击者在内存中能够可靠地跳转到特定函数。ASLR技术可以确保应用程序启动时随机安排所有内存区域,其中包括随机排列程序的关键数据区域,如可执行的部分、堆、栈及共享库的位置等。通过随机安排这些重要数据的内存地址,有效降低了遭到各种复杂攻击的可能性,防止黑客利用内存损坏错误对系统进行攻击。
3IOS应用静态分析研究 3.1应用程序的隐私泄露分析 IOS应用的隐私泄露问题已经成为影响苹果用户产品体验的重要因素之一。为了确定隐私泄露的源头及可疑点,监测工具需要从最近访问隐私数据的函数向上,一直追溯到发送数据的第一个函数。目前,这方面的研究比较多,其中Egde等人提出的PIOS就是一个具有代表性的静态检测分析工具。PIOS主要通过三个步骤来完成对隐私数据泄露的检查,第一步:重建控制流图,追溯函数的调用过程。在控制流图中包含许多基本块,基本块是根据函数跳转关系,或者函数调用指令进行分割而得到的。第二步可达性分析。深入分析控制流图,检查其中是否存在一条或多条从敏感信息到可能泄露信息的网络路径。第三步数据流分析,对于每一条可能泄露隐私的路径,再跟踪其中的数据流向。本人使用PIOS分析了100个IOS应用程序(其中苹果商店应用80个,Cydia资源库应用20个),实验结果表明:80%的IOS应用都会将一些用户信息泄露出去,同时对比发现,苹果商店中的IOS应用程序的安全性较Cydia资源库中的要差一些。
3.2应用程序的逆向分析 IOS系统构建的复杂、缜密的安全防范机制在防范恶意攻击的同时,也给应用程序安全监测的逆向工程带来了巨大阻碍。由于绝大部分应用程序都运行在普通的苹果设别上,运行权限均是用户权限,而不是系统(root)权限,如上所述,普通用户权限的应用程序,其可执行代码需要签名认证才能被处理器执行,由此,解密应用程序的可执行文件是应用逆向工程的首要任务。对于IOS系统而言,只能通过设备越狱,利用系统漏洞来解锁设备,进而获得系统(root)访问权限。其次,成功越狱提升权限后就可以修改系统加载策略,使所有签名的程序运行得到许可,这样在运行正常的通过苹果认证的应用程序的同时,就可以装载测试工具软件进行逆向分析,如调试器、反汇编工具等。最后,利用安装的调试器启动程序,在应用程序入口设置一个断点,一旦程序运行就会自动触发这个断点,转而加载系统验证签名,解密应用程序的可执行代码,然后分析、研究二进制地址空间所占的内存区域,获得解密后的应用程序代码。应用程序的逆向分析除过解密应用技术外,还需要直接分析汇编代码等工作。 龙源期刊网 http://www.qikan.com.cn 4IOS应用动态分析研究 4.1IOS应用动态分析探索 动态分析是指使用一组技术从不同方面来监控程序运行时的行为。通过真实设备或模拟机器实际运行应用程序执行过程,达到对未知恶意软件的检测目的。由于动态分析能够实时的跟踪程序的运行行为,因而检测效果较静态分析好一些,并且具有较强的直观性。常用的动态分析技术有:动态二进制重写、调试机制、信息流分析法等。动态二进制重写技术可以用来监控由应用程序或有动态链接库实现的函数调用关系。调试机制也可以被用来收集彼此之间的调用关系等信息,而且,具有调用机制分析功能的操作系统还可以提供有效的Hook机制,用于监控系统调用。这些技术都可用于动态监测IOS应用的运行行为,实现应用动态监测分析。
另外一种相对独立的监控函数调用称为信息流分析法。与前面几种方法不同的是,这种分析法不特别关注程序运行过程中函数调用的情况,而是专注于输入程序的数据的行为。例如程序可以为从网络接收数据包或者从移动设备上获取相关的信息,通过追踪这些数据在系统内部的路径,信息流分析工具会在敏感数据通过网络传输等危险行为发生之前,提前预警,以达到动态监控的目的。此外,还有Enck等人提出的TaintDroid系统,用污点分析技术跟踪数据流,从而判定应用是否存在数据泄露。
动态分析技术都是通过分析程序的实时运行情况,来推断应用程序的安全状态,能够比较准确的刻画程序的执行过程,得到相对准确的检测结果。目前,动态分析技术遇到的主要问题是如何预设不同的输入以测试应用程序有可能遭遇的各种不同场景,因此如何根据应用程序的不同应用环境,自动化的分析测试成为动态分析研究的重点。
4.2静一动态分析技术比较研究 目前,针对IOS应用安全性的静态分析技术较多,静态分析技术相对成熟,如著名的PiOS工具等,但是静态分析过程涵盖了应用程序运行过程中所有可能和不可能的执行路径,因此,所有静态分析技术都遇到了一个共同的问题——误报率比较高,无法控制分析结果的正确性,要获得更加准确的安全检测分析数据,就必须通过动态检测分析技术来实现。