分享

Flash运行时注入分析查找工具的设计与实现

 quasiceo 2014-10-05
版权声明 任何收存和保管本碱文各种版本的单位和个人,未经本论文作者同意,不得将本论文转借他人,亦不得随意复制、抄录、拍照或以任何方式传播。否则,引起有碍作者著作权之问题,将可能承担法律责任。 北京^学颈E学位论立 摘要 Adobe Flash运行时包含了Flash Player和AIR(Adobe IntegratedRuntime)。众所周知的Flash Player在如今互联网飞速发展的阶段,应用于备类桌面操作系统和手机、Pad等手持终端,并给用户带来了图形、视频、游戏等瓦联网极限的体验。同时Flash Player与AIR也广泛应用于搜索引擎、社会性网络服务、电子商务、商业广告和数据系统等。 然而,随着功能性和安全性新特性的添加给Flash PIayer和AIR的buil d带了和很多问题,其中由于代码改动导致其他特性失效的注入相关问题尤为突出以往的手工查找注入以及较早自动查找工具…已经不能满足现今的大规模测试的需要,所以需要一个自动的,智能的,适应性和扩展性良好的查找工具来弥补这个空缺。 本文在之前注入查找技术”1的基础上,重新设计了一个自动化查找注入的工具。该工具的前端查找程序整合了路径查找、运行进程和查找算法策略等模块,可以跨平台运行同时.该前端查找程序可灵活的运用优化策略进行查找,具有良好的适应性和扩展性。 该工具的后端分析程序可根据实际测试环境情况来计算从而选择最优算法作为查找策略,并且可对导致注入的源头信息分析.进一步缩小查找范围,结合选取的算法提出更为优化的查找策略。该后端分析程序还包括了校验注入和计算build的置信水平…用于整个测试的反馈。 随后,介绍丁一些针对F1ash Player的攻击案{列举{剜,说明安全性是广大用户、合作商投Adobe关注的问题,也正是出于Adobe对Flash运行时安全性的代码引入和修改较为频繁是造成注入产生的重要原因之一。 最后,本文对该工具的进一步完善提出设想,并对不足之处提出修改方窠。 关键字:注入查找、二分查找、安全机制、置信水平 北京^学砸i=学位论立 Abstract Adobe Flash Runtime contains Flash Player and AIR(Adobe Integrated)As is known to a11,with the rapid development of the Internet FIash Playeris now used i n a儿kinds of desktop operating system and mobile phones,such as Pad and other handheld terminal devices.It brings the graphics,videos,games.and the interaction of 1imit the Internet experfence tothe users At the same time Flash Player as well as AIR are also widelyused in search engines,social network service,e—commerce,thecommercial adverti sing and data system,etc However,as the functional and security of new features to add F1ashP1ayer and AIR,caused the software build the with a 10t of problems,i ncluding code changes due to the failure of the other characteri sticsinjection related problelllS are particularly acute.PreyiOUS manual searchinjection and earlier search tool automatically carl’t meet the needs oftoday’s large—scale testing,SO need an automatic,intelligent,adaptability and expansibility injection finding tool to make up for thevacancy Thi s paper i s based on previous injection searching technology,anddesigns a new automatioR tool for injection fi nding This tool to the frontof the searching program integrates path searching,operation of processlaunchi ng and algorithms searching strategy modules and it can run oncross platform At the same time,the front end I inding programs can beapplled flexibly optimization strategy to undertake searching,goodadaptabiiity and expansibility. Accordi ng to actual test environment,the after end analysis programof tools cal culotes to seIect the optimal algorithm as search strategyIt can explore and analyse the source of the injection of i nformation.further narrow search range.combined with the selection of the 北京人学顾1学位论ioptimization of the algorithm is put forward more search strategy.Theafter end analysi s program includes the injection and calculation ofcalibration build confidence level for the entire test of feedback Then,this paper introduces some Flash Player attack cases,to explai nthat safety i s the one of the most concerning issues of the masses of users,the cooperative dealers and Adobe System No other than the reason thatimporting and modification of security code to Adobe Flash Runtime sofrequently,i s one of the most important reasons of injection generation Finally.this paper puts forward the idea further improvement of tool s,and the deficiency put forward revision plans. Key word:Injection finding,Binary search,security mechanism.Confidence Level 目 录摘要 1Abstract 11目录 Iv第一章绪论 1 I 1背景意义 … l l 2本文的主要工作 3 I 3本文的组织结构4第二章注入查找相关理论及技术介绍 6 2 1 Flash运行时测试发展介绍… 6 211总体测试框架介绍 6 21 2手动测试框架现状 6 2l 3 Ij动测试框架现状 7 Player安全性现状及处理 2.2 Adobe Flash 8 2 21安全性现状8 2.2 2安全性介绍 8 2 2 3Adobe处理安全类问题的流程 … 10 2.3本章小节 10第三章Flash运行时注入查找工具的需求分析与结构设计 12 31运行环境 12 3l】前端查找程序运行环境 】2 3 l 2后端综合分析程序运行环境 15 3 2用例图及说明 15 3.2 1前端查找用例图及说明 15 3.2 2后端分析用例圈及说明 】7 3 3框架结构图及说明 l 8 3.4总体流程图及说明 20 3.41查找前蘸略讣算 22 3 4 2查找过程及策略使用 22 3 4.3查找后校验及信息反馈 23 3 5本章小节 23第四章注入前端查找模块设计与实现 24 4 1 Flash 24 Player及AIR注入查找模块的设计 二8 4 2主要类圈殛说明 4.3前端查找模块关键技术分析 31 4 31对路径的查找 31 43 2二分查找与changelist列表查找结台方式 34 4 4本章小节 34第f1章后端综合分析符模块的设计 36 5 1 Flash PlayerCrash相关注入校验 36 5 1 1 Flash PlayerCrash … 36 51 2Crashlog dump及注入校验 36 5.2置信水平计算 … 39 5 21置信水平简介 39 5.2 2置信水平的计算方法及计算工具实现 40 5.3查找算法优化 42 5.4 Changelist分析 46 5.4 l Changelist分析的出发点 46 5.4 2 Changelist分析实现 46 5.5本章小结 48第六章Flash Player安全捆关注入案例分析 50 6 1 Flash Player安全相关注入 50 6.2 Flash Player全屏劫持攻击 … 50 6 3沙箱攻击 52 6.3】沙箱类型及区别 52 6.2 2旁路方式沙箱攻击 54 6.4本章小结 55第七章实验结果及数据分析 56 71实验环境 56 7.2实验步骤 57 7.3实验结果及结论 57 7 3l实验一:算法实验比较 57 7.3 2实验二:采用Changelist分析与否的二分查找算法比较 59 7.4误差分析 60 7 5本章小节 61第八章总结与展望 62 8l回顾和总结 62 8 2下一步工作的展望 63参考文献 65北京大学学位,^文原创性声明和使用授权说明 68致谢 69 图目录 图表i图2 1 Adobe Fj ash运行时王体测试框架图 6 图表2囤2-3 Adobe处理安全类问题的流程图 10 图表3固3-1全球互联网中个浏览器的占有车和变化趋势t截止到20t2年1月) 13 图表4囡3 2全球互联网中个操作系统的占有率和变化趋势(截止到201 2年1月) 图表5图3-3前端查找用模块倒图 图表6图3 4后端综合分析模块用例图 图表7国3 5系统的结构图 北京大学顿士学位论义图表8图3-6总体框架查找流程图表9图4-1 FIash PIayer&^JR;f入查找工具的总体运行流程图 24图表10图4-2 FIash PI ayer注入查找运行示意图 27图表1f图4-3程序运行相关类图 2R图表12图4-4查找算法实现相关类图 30图表13图4-5^IR buI}d文件夹组织结构图 3l图表14图4 6^IR的bulI d路径查找流程图 33图表15图5-l置信水平计算对话框界面图表1 6图5-2 ChangeIi st分析流程图图表1 7图6 PIayer全屏劫持攻击流程图 51 o四I 1 FIash图表18图6-2 Ith—fI Iesystem沙箱 53图表19图6-3 ocaI叫lth—networkl ng沙箱 53图表20图7—1手动和自动采用算法运行时间开销 58图表21图7—2采用ChangeI st分析与否的运行时间开销比对 60 表目录表格1表2-1手动测试框架分类厦侧重点表格2表3-1 Adobe王流测试Matti x表格3表3-2测试配置举例表格4表3-5有关特性^的OhangeIl st项 22表格5表4-I有关特性A的ChangeII st项 25表格6表4-2 FIash PIayer注入Fi nder运行步骤 25表格7表4 3 FIash Pl ayer注^FI nder配置信息举例 25表格8表4-4 AI R的buiId路径命名特征 32 st举倒 34表格9表4_5 Changeli表格10表5 1置信水平计算结果 41表格11表5-2查找算法分类殛说明 43表格12表5-3查找算法的分类及复杂度说明 43 44表格13表5-4注入手动查找步骤及说明 46表梧14表5-5 m分查找相对于二分查找的时间节省量表格1 5表7-1实验环境机器分类及说明 56表格16表7—2选用算法和方式时间平均开销 58表格17表7—3采用ChangeI st与否二分查找时间开销 59 st特l生A列表 60表格18表7 4 ChangeIi表格19表7 4 ChangeII st特性^、B列表 61 北京大学坝I.学位论文 第一章绪论1.1背景意义 随着计算机互联网的不断发展,以及人们对互联网的使用的普及和要求的提高,作为Adobe Flash运行时“1的核心成员的Flash Player和AIR越来越广泛的应用于互联网的各类形式。 Adobe Flash Player是一种广泛使用的、专有的多媒体程序播放器,起源于1997年Macromedia公司,直到2005年Macromedia FIash PIayer 8是Macromedia出的最后一个版本,此时已较广泛的应用于当时的互联网。随后Macromedia被Adobe收购,Adobe开始为Flash Player继续锦上添花,从FlashPlayer 9到目前的Flash P1ayer 11 3从其功能性和安全稳定性添加了很多新的特性,其中包括:Stage 3D加速图形演算61、原生6d位元支援、相机的H264/AVC”1软件编码、支援行动装置的内容保护、受保护的HTTP动态串流(IITTP Dynami cStream)、安全随机编号产生器””…、TLS安全通讯端支援、适用于电话的G 71l音讯压缩、三次贝兹曲线、增强高分辨率位图支援、异步位图解码、原生JSON(JavaScript物件表示法)、废弃项目收集建议、通讯端进度事件、JPEG XR支援、高效率SWF压缩支援、全新的Remove Chlldren API、全新的MovieCli P属性。 正是由于Flash Player体积小而功能强大,能够在能够跨平台和兼容个浏览器。如今,超过8 2亿台的连接Internet的桌面计算机和移动设备上都安装了Flash Player,它使公司和个人能够构建并带给最终用户美妙的数字体验。能够在将交互式、丰富内容与视频、图形和动面组合到一起的Web上享受最富表现力的、引人八胜的体验。 -Adobe Integrayed Runtime(简称AIR/.它允许丌发人员用现有的web”发技术(包括Flash,Flex。。,HTML,JavaScript,Ajax)优势建立和配置跨平台的桌面RIA应用程序。 AIR支持现有的Web技术,如It’rML,JavaScript,Flash,F1 ex和AJAX。一个AIR程序可以使用如下一种或多种组合技术构建: Flash/Flex/ 北京人学碗j学位论史ActionScript HTML/JavaScript/CSS/Ajax PDF可嵌入任何应用程序中作为结果,AIR应用程序可以是: 基于F1ash或F1ex:应用程序根内容为Flash/F1ex基于F1ash或Flex的tITML或PDF。 由于互联网的飞速发展和用户的需要,FIash运行时下面的}:lash Player和AIR的build引入了很多新特性的代码。同时,在不断地修复bug的过程也会造成代码的频繁改动。这一改动对F1ash运行时产品的稳定性、健壮性很有可能就造成了负面的影响。 我们把这种由于新特性加入和bug修复而改动代码造成了以往工作正常的特性失效叫做注入(Injection)。这种所谓的注入有别于信息安全的概念中所表述的注入。这种注入的现象是:在一个连续的Flash player版本的序列中,出某个版本的Flash player开始,某个特性失效,而之前的版本的这个特性工作『F常,那么我们把这个开始失效的版本叫做注入版本/Injection bui ld),或者注入点(Injection poi nt)。如果失效的版本表示为…1’。而未失效的版本表示为“0”,那么这个按时间从较早到现在的排序为“00…001l…ll”。 Adobe内部把测试Flash player或AIR的予版本统称为build。下文所描述的huild就是指子版本的F1ash player或AIR的安装文件或者安装包。 注入存在是不可避免的,而且其产生的数量与其本身架构有关,一般来税架构较为优化的产品出现注入的几率较小。当然注入的出现次数多少还决定于源代码改动的幅度、源代码改动频率以及源代码的总体代码量,且与返三者成正向关系。如果某个软件产品的代码一次性改动较多、修改较为频繁和该软件总体代码量较大,这就很容易产生注入。”1。然而对于有着卜五年历史的Flash Player米说当时先进的体系构架与当今的庞大代码量乙不是完全适应。在重新设计FlashPlayer的架构之前,为保证用户能正常的使用互联网的备类资源。Adobe致力于修复此类注入。这对Adobe的开发团队(Dev Team)和质量保证团队(QE Team)提出较高的要求。 在0E Team的日常测试工作巾.注入被定义为高等级的Bug,需要赴刻去找出注入buil d(或注入Point),然后交付Dev Team及时修复。这个修复的过程又是一种代码改动,会有一定几率的产生新的注入的可能。 注入的查找是一个对软件稳定性有效性和代码健壮性根必要的过程,然而这 北京大学碰:E学啦蹬立种查找是很耗费测试人员的劳动力。之前的方法是手动查找,虽然以采用二分法““。也需要是耗费一个下午或者跟多的时间。 针对Flash Player build的注入查找,迄今为止Adobe有一个Java编写的工具。该工具命名为Flash Player注入Finder。其包含用户界面窗口,专门用来解决查找Plash Player的注入buiid的问题。当一个可稳定重复出现的问题——即我们所谓的Bug发现时,测试人员可以使用陔工具来安装FlashPlayer并且运行那个出问题的测试案例从而快速和有效的判定该问题是哪个build或者说哪一天的build开始首次出现的。在起初的测试工作中,平均需要8个Flash Player安装过程来鉴定一个注入bui id。根据所花费在运行测试案例鉴定该问题的时间的长度,来计算总体时间开销,大部分的注入buiId可以在一分钟内判断出来。 这个工具是2009前为测试为了测试Flash Player 10而编写的。与现在的Flash Player相比,当时的Flash Player体积小很多,安装速度也快很多,并且当时的测试案例相对简单。所以这个工具适用于当时的测试环境,而现今的Flash Player随着互.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多