(计算机应用技术专业论文)基于程序切片的web服务安全分析工具设计及实现.pdf_第1页
(计算机应用技术专业论文)基于程序切片的web服务安全分析工具设计及实现.pdf_第2页
(计算机应用技术专业论文)基于程序切片的web服务安全分析工具设计及实现.pdf_第3页
(计算机应用技术专业论文)基于程序切片的web服务安全分析工具设计及实现.pdf_第4页
(计算机应用技术专业论文)基于程序切片的web服务安全分析工具设计及实现.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(计算机应用技术专业论文)基于程序切片的web服务安全分析工具设计及实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 w e b 服务以易用性、后台代码透明性、平台无关性等优势获得了更多普及度, 也使得更多攻击者将注意力放在针对w e b 服务的攻击方面。为了给w e b 服务提 供信息安全保证,本文研究设计一个安全分析工具,以用于检测w e b 服务网络 中的潜在安全漏洞,并根据用户需求制定相应的缓和方案。 基于代码分析( 代码审核) 技术,提出一种基于程序切片的w e b 服务安全分 析方法。通过解析w e b 服务协议,将外部接 j 转化为j a v a 语句形式,对源程序 执行切片获得接口信息流:根据用户指定的关键信息生成关键信息语句集合,匹 配获得的接口信息流,若两者发生重合,判定存在潜在的安全漏洞。 研究w e b 服务网络中安全漏洞的扩散问题。根据接口调用关系和切片结果, 判断关键信息是否在两个w e b 服务i 日j 被传递泄露。从添加外部安全措施和消除 安全漏洞两种角度,针对潜在的安全漏洞生成相应的缓和方案。 以此为理论基础,在e c l i p s e 开发平台上设计并实现了一个包括切片器模块、 w e b 服务分析器模块和安全报告功能的安全分析工具。 从安全性需求角度出发,该安全分析工具用于发现w e b 服务中潜在的信息泄 露安全漏洞,为w e b 服务开发人员提供了相对自动化的工具支持。通过提高对 关键信息或敏感数据的保护力度,降低对开发人员在安全知识方面的要求,有利 于开发速度的改善和产品中安全漏洞的减少,为构建安全可靠的软件起到了良好 作用。 关键词:程序切片w e b 服务安全静态分析安全漏洞扩散 a b s t r a c t w 曲s e r v i c eg a i n si t sp o p u l a r i t yb ya d v a n t a g e ss u c ha se a s eo fu s e ,s o b r c ec o d e t r a n s p a r e n c y a n dp l a t f o r m i n d e p e n d e n t h o w e v e r , w h i c hm a k e sm o r ea n dm o r e a n a c k e r sf b c u s0 na t t a c k i n gw e bs e r v i c e i no r d e rt op r o v i d ew e bs e r v i c e w l t n i n f b 胁a t i o ns e c u d 以as e c u r i t ya n a l y s i st o o li sp r o v i d e di nt h i sp a p e r , w h i c h c a l lb e u s e dt oe x p l o r ep o t e n t i a lv u l n e r a b i l i t i e si naw e b s e r v i c en e t w o r k ,a n dg e i l e r a t e c o r r e s p o n d i n gs o l u t i o n s o i lu s e r s d e m a n d b a s e do nc o d ea n a l y s i s ( c o d er e v i e w ) t e c h n o l o g y , am e t h o do fw e bs e r v l c e s e c u r i t ya n a l y s i sb a s e do np r o g r a ms f i c i n gi sp r o v i d e d t h r o u g hp a l s m gw e b s e 1 c e p r o t o c o l sa n dt r a n s f o r m i n ge x t e r n a li n t e r f a c e si n t oj a v as t a t e m e n t s ,s o u r c ec o d e s a r e s l i c e dt oo b t a i ni n t e r f a c ei n f o r m a t i o nf l o w s ;as e to fc r i t i c a li n f o r m a t i o ns t a t e m e n t s g e n e r a t e db yc r i t i c a li n f o r m a t i o np r o v i d e db yu s e r si su s e dt o m a t c ht h ei n t e r f a c e i i l f o 衄a t i o nf l o w s ,a n dap o t e n t i a lv u l n e r a b i l i t y i sd e t e r m i n e di fo n em a t c h o c c u i s ap r o b l e mo fv u l n e r a b i l i t yp r o l i f e r a t i o ni na w e b - s e r v i c en e t w o r ki sa l s os t u d i e d a c c o r d i n gt o i n t e r f a c e c a l lr e l a t i o n s h i p s a n ds l i c i n gr e s u l t s , w h e t h e rc n t l c a l i n 南n n a t i o ni st r a n s f e r r e da n dl e a k e db e t w e e nt w ow e bs e r v i c e si sd e t e r m i n e d r o m a s p e c t so fa d d i n ge x t e r n a ls e c u r i t ym e a s u r e sa n dr e d u c i n gi n t e r n a l v u l n e r a b i l i t i e s , c o r r e s p o n d i n gs o l u t i o n sf o rp o t e n t i a lv u l n e r a b i l i t i e s a leg e n e r a t e d b a s e do nt h et h e o r i e sa b o v e ,aw e bs e r v i c es e c u r i t ya n a l y s i st o o li n c l u d i n ga s l i c i n gm o d u l e ,aw e bs e r v i c ea n a l y z e rm o d u l ea n das e c u r i t y r e p o r tm o d u l el s d e s i g n e da n di m p l e m e n t e d o nap l a t f o r mo fe c l i p s e f r o ma na s p e c to fs e c u r i t yr e q u i r e m e n t s ,t h es e c u r i t ya n a l y s i st o o lc a l lb e u s e dt o r e v e a lp o t e n t i a li n f o r m a t i o nl e a k i n gv u l n e r a b i l i t i e s ,w h i c hp r o v i d e sah a l f - a u t o m a t e d t o o ls u p p o r tt o w e bs e r v i c ed e v e l o p e r s b ye n h a n c i n gp r o t e c t i o n f o rc r i l a c a l i n f o r m a t i o na n dl o w e r i n gr e q u i r e m e n t s o nd e v e l o p e r s s e c u r i t yk n o w l e d g e , d e v e l o p i n ge f f i c i e n c yc a nb ei m p r o v e da n dv u l n e r a b i l i f i e s c a nb er e d u c e d ,w h i c h p l a y sag o o dr o l ei nb u i l d i n gs a f ea n d r e l i a b l es o f t w a r e k e yw o r d s :p r o g r a ms l i c i n g ,w e b , 鲫d r i c es e c u r i t y , s t a t i ca n a l y s i s ,v u l n e r a b i l i t y p r o l i f e r a t i o n 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得叁鲞叁鲎或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名: 割然 j签字日期:7 年石月牛日 学位论文版权使用授权书 本学位论文作者完全了解苤奎盘堂有关保留、使用学位论文的规定。 特授权苤鲞盘堂可以将学位论文的全部或部分内容编入有关知识库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:彳沙 签字嗍叫年名月午日 导师签名:秘肛 导师签名:抄 裤醐:1 引眦日 第一章绪论 1 1 课题背景及意义 第一章绪论 作为信息安全( i n f o r m a t i o ns e c u r i t y ) 的一个分支,计算机安全( c o m p u t e r s e c u r i t y ) 的范围十分广泛。国际标准组织( i s o ) 给出计算机安全的定义【1 1 ,将其 划分为硬件安全,软件安全,数据安全,运行安全等四个部分:w i k i p e d i a t m 从物 理存取,硬件机制,操作系统机制以及编程策略四个角度区分增强计算机安全的 方法。随着时代的发展,新的概念被陆续提出。m i c r o s o f t 提出的“t r u s t w o r t h y c o m p u t i n g ”【3 】以构架可信计算平台的方法来解决计算机安全问题:t r u s t s o f t 研 究院提出可信软件系统( t r u s t w o r t h ys o f t w a r es y s t e m ) 【4 】从正确性,安全性, 服务质量,安全特性和隐私性等方面研究软件系统的可信性。而这些定义、划分 和架构都具有_ 个共同点,防止信息窃取和信息崩溃,保证系统依照安全策略的 规定运行。本课题以信息安全作为背景,从如何降低应用程序中的安全漏涧角度 出发,对提高应用程序的安全性进行研究和探索。 1 1 1 课题背景 自从1 9 8 8 年m o r r i s 病毒袭击应用程序以来,应用程序中的安全漏洞呈几何级 数增长,尤其近年来,随着互联网的普及与w e b 2 0 的流行,互联网应用中的安 全漏洞所带来的损失也日益巨大。在2 0 0 8 中国软件安全峰会的“国内外软件漏 洞处理概况”1 5 主题报告中指出,目前安全漏洞的发展趋势为漏洞数量日益增多, 且危害日益严重;漏洞存在的范围日益扩大。根据美 亘c a r n e g i em e l l o n 大学计算 机应急小组( c o m p u t e r e m e r g e n c yr e s p o n s e t e a m ,c e r t ) 统计,截至到2 0 0 8 年第三季度,所收到的安全漏洞报告总数已经达到4 4 ,0 7 4 个,如图1 1 所示 ( h t t p :w w w c e r t o r g s t a t s ) 。 第辛绪论 国1 1c e r t c c 安全漏洞报告数目统计图 对于机构或者企业来说,黄注应用程序的安全问题并采取积极的应对措施, 将会带来巨夫的经济回报。i tp o l i c y c o m p l i a n c e g r o u p 在萁发布的报告 m a n a g i n gs p e n do b i n f o r m a t i o ns e c u r i t ya n d a u d i l f o r b e i t e r r e s u l t s ) ) ”1 中指出 公刮在信息安争与审计管理最佳实践方面持续增加的资产投几可使公司在经济 上获得超过2 0 0 的回报。经过对全球2 6 0 0 多家企业进行的调查发现敏感信息 保密被并公司列为虽关键的业暑风险之。其。 | 有1 9 的公司每年经历了超过 1 5 次的数据丢失、被盗事件,造成的损失相当于全年收八的96 :只有1 3 的 公司遭遇的数据丢失次数较少( 3 次以下) ,这些公司对应的经济回报为2 2 至 3 0 0 0 ,由此可见加强信息安全在实际的询业操作流程中具有巨大的经济效 益。 从经济角度和社会角度考虑,如何消除应用程序中的安全漏洞,已经威为业 界关注的重要课题。微软通过改善传统软件开发模型“瀑布模型”,提出了软件 安全开发周期( s e c u r i t y d e v d o p m e n t l i f e c y c l e ,s d l ) 【“针对软件开投过程的 不同阶段,包括需求分忻,设计,编码测试维护等阶段,添加安全措施、活 动及交付结果来减少软件中的安争漏洞,此过程有助于能抵御外部恶意攻击的软 件开发。h o w a r d 和l e b l a n c 提m 了一种结构化的方法一威胁建模f 8 ,用束帮助开发 人员存软件设计阶段对产品潜在的安全漏a q 进行评估,确定需要缓和的成胁种类 以及针对这些威胁的缓和方案。文献【9 提出了统一威胁模型,用来表示、分析 与评估软件内部和外部的安全成胁。c e r t 在其年度工作报告1 中描述了工作目 标和成果,包括消除系统中的安全缺陷和漏洞防止入侵的发生,识别已发生的 入侵,当系统被入侵时保存关键服务,以及为决策青提供网络防御所需的信息等。 另外,从漏洞挖掘技术的角度考虑一些常用的技术包括代码混淆( c o d e f u z z i n g ) 和代码审核技术,以及一些较为冷门的技术+ 如补丁对比技术等。 第一章绪论 不同类犁的应用程序具有不同类型的安全关注点。w e b 服务以易用性、后台 代码透明性、平台无关性等优势获得了更多的使用,i t 领域对于如何消除其安 全漏洞从而提高w e b 服务的安全性也展开了研究和探索。在w e b 服务安全方面, i e t f w 3 c 以及o a s i s 等结构和组织出台了大量相关规范和过程。这些规范和 过程的缺点在于需要系统的进行学习,无论是对开发人员本身的安全素质,还是 对开发机构的经济、时间投入,都有较高的要求的。因此在实际开发过程中,较 难得到彻底的贯彻实施。 1 1 2 课题意义 随着w e b 服务普及度的增加,越来越多的攻击者将注意力放在对w e b 服务及 服务器的攻击方面,其中一个主要的威胁就是,攻击者试图恶意访问数据或服务。 为了给w e b 服务提供信息安全保证,从w e b 服务的不同阶段出发,有两种保护 措施。对于已经发布的w e b 服务,考虑外部用户的攻击,设计侵入侦测系统对 外部用户身份进行验证;对于尚未发布的w e b 服务,考虑分析w e b 服务的源码, 寻找安全漏洞并采取相应的缓和方案,达到增强其安全性质的目的。本课题从第 二种角度出发,通过代码分析( 代码审核) 技术,发现w e b 服务源码中潜在的 安全漏洞。 通常,一个w e b t l 艮务可能具备一些并不想被外部用户知晓的机密数据或关键 信息。在这种情况下,攻击者能通过各种直接或者间接的方式接触甚至修改这些 关键数据,就形成了一个具有高度危害性的信息泄露安全漏洞。常见攻击模式枚 举和分类组织( c o m m o na t t a c kp a t t e r ne n u m e r a t i o na n dc l a s s i f i c a t i o i l ,c a p e c ) 在攻击模式w s d ls c a n n i n g m 中描述了攻击者针对该项安全漏洞所实施的攻击 过程,并将其归入危害程度“高”的类别。这种安全漏洞被攻击的根本原因是描 述w - e b 服务功能接口的w s d l 协议( w e bs e r v i c e sd e s c r i p t i o nl a n g u a g e w s d l ) 将一些敏感操作不加保留的暴露给外部用户。利用w s d l 文件,攻击者可以获取 公有或者私有服务的内部信息。通过这种方式产生的安全漏洞,往往很难被察觉。 实际开发过程中,w e b 服务开发人员通过自动化的工具生成w s d l 文件。一 个机构需要将早先应用程序的功能转换为一个w e b 服务框架,可能会发生不小心 把并非设计为公众使用的接口传递给一个w s d l 生成工具的情况,造成私有方法 被存取的s o a p 接口。另外,当攻击者使用命名惯例技术来猜测未发布的,但服 务器上可得的方法名称时,会有更多的w s d l 攻击发生。对于一个提供股票报价 和交易的服务,可能会在其w s d l 3 件中发布一个名r e q u e s t s t o c k q u o t e 的方法。 尽管如此,一些类似的未被发布( 不存在于w s d l 文件列表中) 的方法可能在服 务器上可得,例如e x e c u t e s t o c k q u o t e 等。攻击者可利用单词表或句子表,结合常 第。章绪论 见的命名规则( 女l u p d a t e ,m o d i f y ,g e t ,s e t 等) 进行猜测,寻找到未发布的应用 程序编程接口,造成“后门”被打开,机密数据或者私有功能【l3 】被存取、调用 的严重后果。 由于通过这种方式产生的安伞漏洞,往往很难被察觉,因此对于一个达到功 能需求的w e b 服务来说,有很大可能并没有达到可靠性需求的要求。为了解决 这个问题,本文研究了通过分析w e b 服务源码,实现对信息流的跟踪,判断关 键信息是否被泄露,扩散。针对已发现的潜在安全漏洞,从外部添加保护“包装” 和从内部消除安全漏洞两个角度研究缓和方案的内容。本安全分析工具一方面可 用于对一个已经完成功能性需求的w e b 服务执行安全分析,发掘潜在的信息泄 露安全漏洞:另一方面可用于对w e b 服务网络中的安全漏洞扩散问题进行分析。 通过分析w e b 服务源码中关键信息的流动过程,发现w e b 服务中潜在的安全漏 洞,有利于提高w e b 服务的安全性。 1 2 课题内容及创新点 通过分析程序切片在信息流追踪方面的优势,研究了基于程序切片来发现 w e b 服务中信息泄露漏洞的方法:通过分析w e b 服务网络模型中关键信息流动过 程,研究了依据接口调用关系和切片结果,判断关键信息在w e b 服务间的传递 泄露。本课题的创新点如下: 1 基于程序切片,研究w e b 服务中关键信息通过外部接口被泄露的过程, 从而在一个w e b 服务发布之前,发现内部潜在的安全漏洞; 2 。根据接口调用关系和切片结果,研究w e b 服务网络中信息流动过程,研 究该过程是否导致关键信息的泄露 3 从添加外部安全“包装”和修改源码两个角度,讨论生成缓和方案来缓和 威胁。 1 3 论文结构安排 第一章介绍课题的背景和意义,提出本课题的研究目标及创新点。 第二章论述领域研究现状,包括w e b 服务的安全问题,程序切片技术的相 关介绍。 第三章阐述安全分析工具的架构设计,内容包括对安全分析工具的理论依 据、所提供安全分析功能的重点特征,以及两个主要组成模块( 即切片器模块和 w e b 服务协议分析器模块) 的设计介绍。 4 第一章绪论 第四章阐述安全分析工具的实现过程。基于所给出的工具架构设计,首先 分别实现各模块的功能,之后通过个统一的u i 界面,整合模块成为一个完整 的工具以供用户使用。 第五章设计测试场景。本章的主要目的包括,通过设计一个适当的w e b 服 务应用场景,以提供w e b 服务的源码作为输入,测试所得到输出结果是否有效; 同时对本工具进行时间复杂度的分析,最终完成对本安全分析工具的验证。 第六章结论与展望。总结本文所完成的工作,并对未来的工作所提出的设 想。 第:章相关文献练述 2 1w e b 服务安全 2 1 1w e b 服务简介 第二章相关文献综述 w e b 服务1 是一个通过u k i 表示的软件程序,能够支持网络上不同机器之间 的交互动作n 求、提供服务) 它的接口( i n t e r f a c e s 】和绑定( b i n d i n g s ) 都是 基于x m l 酐 j 表示从而能够被详细地定义、描述和麓现、通过利用i n t 帅d 网络抽 i 义交换基十x m l 的消息,、v e b 服务支持与其它的软件代理ls o l t w a r ea g t m t s ) 直 接交互,由于不同w 曲服务都仳用相同标准的基于x i v l l 浯言的协议来描述w e b 服 务需要执行的操作和需要_ 芷抉的数据,因此服务问交互变得容易一十典型的 毗b 服务发布流程包括服务提供者发布( p u b l i s h ) 服务请求者在代理者处查找 f f i n dj 一 服务请求者绑定( b i n d ,过秤1 图2 - 1 所示 9 1 。 i 。乞二jj , 图2 - 1w e b 眠务的体系结构 从图2 1 中看出w e b 服务的运行流程:按照发布 查找- 绑定这个周期,服 务提供者创建w e b 服务,井将使用w s d l 描述的w e b 服务靛布 u 服务代理老。 服务请求者在服务代理着处查找、定位所需的服务。找到日标后,服务请求者根 据w s d l 专项服务提供者与该w e b 服务绑定 w e b 服务是一个分布式应用程序的通过其协议栈定义操作和调用方泣,组成 通信交互层从而使应用程序在啊络上实现互操作性。圈2 - 2 是w e b 服务的标准 协议栈”。 第_ _ j 章相关文献综述 w s f s e r v i c e “叶 l 一( 薹 w s d l轴n n c ed e 删胛 s o a p x m l b a s e d m e 蛳9 | n g i 器鬻0 警一一 雨f 目2 2 分层w e b 服务协议投 协议饯的主要成员包括 w e b 服务描述语言f w e bs e r v i c e s d e s c r i p t i o nl a n g u a g e w s d l ) :w s d l 文件是一个x m l 文档,用十说叫一组s o a p 消息以及如何交换这些消息,大 多数情况下由软什自动生成和使用。 简单对象存取协议( s i m p l e o b j e c t a c c e s s p r o t o c o l ,s o a p ) :是w e b 服务 指定的消息格式标准。客户端通过u d d i 搜索并读取w s d l 描述文档后,通过 s o a p 调用w e b 服务中的操作服务端收到s o a p 请求后将响应消息通过s o a p 封装后返回给客户端。s o a p 是x m l 文档形式的调用方法的规范,它可以支持 不同的底层接口( 如h t t p ,h t t p s 和s m t p ) u d d i ( u n i v e r s a l d e s c d 口n o n , d i s c o v e r y , a n d i n t e g r a t i o n ) :基于因特网, 发布和描述w e b 服务,根据描述文档来帮助用户统查找所需服务 扩展型可标记语言( e x t e n s i b l e m a r k u p l a n g u a g e x m l ) :跨平台的标记 语言,是多种w e b 服务协议的基础。 一个标准的w e b 服务搜索与执行过程中土要涉及的两个协议是w e b 服务描 述语言( w s d l ) 和s o a p 消息,这两个协议本质上都是个x m l 文档。前者能 够提供用户使用一十w e b 服务时所篙要的信息( 包括对操作的抽象定义,绑定 到这些操作的具体协议,绑定的一个网络端点规范以投进行操作的嘲络端点) ; 而客户端与服务端之问的请求和响应吡0 要依靠绑定到h 郇的s o a p 消息进行传 输。通常情况r ,客户端获取并分析w s d l 文件按照s o a p 协议的标准,将 自己的输入转换成s o a p 请求消息发送军服务端服务端收到该s o a p 信息后, 通过内部工作逻辑得到计算结果转换成s o a p 响应消息发送至客户端,由此完 s$bi 第= 章相关文献综述 成一个w e b 服务的调用过程。 2 1 2w e b 服务安全简介 由于w e b n 务在屏蔽系统的复杂性、异构、f ,台交换信息方面的独特优势,使 之得到了广。泛应用。相应的,研究w e b 艮务安全的课题也逐渐展开,比如:g u t i e r r e z 等人研究了将三个安全相关的步骤一即w e b 服务安全需求( w e bs e r v i c e ss e c u r i t y r e q u i r e m e n t s ,w s s e c r e q ) ,w e b j 艮务安全架构( w e bs e r v i c e ss e c u r i t y a r c h i t e c t u r e , w s s e c a r c h ) 以及w e b 服务安全技术( w e bs e r v i c e ss e c u r i t yt e c h n o l o g i e s , w s s e c t e c h ) 一与基于w e b 服务的传统软件开发过程相结合,形成一个w e b 服务 安全开发过型1 6 】。i b m 和微软联合发布了w e b j 艮务安全规范( w e bs e r v i c e s e c u r i t y ,w s s e c u r i t y ) 【l7 1 ,在其巾提出了一套标准的s o a p 扩展,提供了三种 机制( 安全性令牌传播、消息完整性和消息机密性) ,用于构建安全w e b 服务 以实现完整性和机密性。在此基础上,文献 1 8 】从利用s o a p 安全令牌实现对用 户认证和授权角度,讨论了在w s s e c u r i t y 框架内进行消息交换的过程;文献 1 9 】 总结了在消息传输过程中,从身份验证、授权、机密性、完整性等角度考虑的 w e b 服务安全机制。 在辅助工具方面,由m c a f e e 所属的f o u n d s t o n e 公司提供的漏洞测试工具 w s d i g g e rv 1 0 执行w s d l 扫描,这是一种针对w e b 服务安全的自动化黑盒测试 ( 即渗透测试) 框架,包含s q l 注入攻击,跨站点脚本攻击以及x p a t h 注入攻 击的示例攻击插件。 2 2 程序切片 2 2 1 切片技术的定义 w e i s e r 教授在上个世纪八十年代提出了程序切片的概念【2 0 1 ,并将其用于在进 行调试时的提取出程序抽象。程序切片【2 1 】【2 2 】【2 3 1 在本质上是一种程序分析和转换 技术,关注程序点之间的数据依赖和控制依赖等影响关系,简单的说,程序切片 的定义就是通过对一个程序实行切片获得一个程序切片,该切片包含了可能对位 于一个特定程序点的变量的值有影响的全部语句。执行程序切片的第一步是指定 一个感兴趣的程序点即被切片程序里的一条语句,用n 表示,以及一个变量集合 ( 通常为一个单一集合) ,用v 表示,因此,s 沁v ) 可以作为程序切片的基本形式, 如( 1 1 , x ) ) ,其他的切片形式可以通过对这个基本形式进行扩展得到。一个切片 8 第_ 二章相关文献综述 实例如图2 3 所示。 1 :f ( i n ta ) 2 : 【 3 :i n tx - a : 4 :i n ty = 2 5 : 5 : s t r i n g z - - : 6 :f o ri i n ti = o :i x :i + + , 7 : 8 : z - z + “蚵: 9 : y = 一2 1 : 1 0 : 】 1 1 : s y s t e m o u t p r i n t i n t x + “:“+ z r “+ y ) 1 2 :) 图2 3 切片实例代码片段 选择第1 1 行的变量y 作为切片准则即s ( 1 l , y ) ,选择切片类型为向后切片。 依据向后切片的定义,可以发现:语句5 与y 的值无关,不属于切片:语句8 虽 然使用了变量y ,但没有改变( 影响) y 的值,不属于切片;语句6 中变量x 的 值影响y 的计算,属于切片;语句3 影响语句6 ,属于切片。最后得到的切片结 果如图2 - 4 所示。 l :fe :i n ta j 2 : 3 :i n tx - - a t : 4 :i n ty = 2 5 : 6 :f o r ( i n ti = o :i 其中, 尺俐:与语句i 的相关变量的集合; s :程序中相关语句的集合: 召:程序中相关分支语句的集合; c :切片准则,即c = ( 以,矿) ; i n f l ( b ) :分支语句b 所能影响范围内( 即执行情况受到分支语句b 的结果 影响) 的所有语句集合。 算法首先为每个语句找到直接相关变量集合r o ( f ) ( 一条语句没有直接相关 变量,该集合可能为空) 。基于这些集合,将所有对c f g 图中后继语句中相关的 变量进行定义的语句组合成一个直接相关语句集合,。然后从这个相关语句集合 中,计算出一个( 间接) 相关的分支语句的集合群。之后,算法迭代执行,也 就是说通过上一次的迭代中的r 得到新r ,类似可以得到与分支语句相关的变量, s 和b ( 但s 包含上一次迭代中的b ) 。s 是源程序一个非递减的语句子集。当s 到达迭代过程的固定点时( 例如,两次迭代的s 不再增加) ,那么这个集合s 就 是所需的程序切片。 第_ 幸相关文献综述 这种基于数据流公式计算切片的算法的时间复杂度是d ( v 木( r i + p ) ) ,其中v 是程序中变量的数目,刀是c f g 中节点的数量,e 是c f g 中边的数量。 2 2 4 将切片技术用于w 曲服务安全分析的原因 经过对程序切片的分析,本课题考虑将其应用于w e b 服务的安全分析领域, 主要有两方面的原因: 一、切片技术在源码分析效率方面的优势:在具体w e b 服务中,实现功能逻 辑的源码数量巨大,可能存在未被发现的安全漏洞。这些安全漏洞在w e b 服务 被发布到互联网上后,将町能被攻击者攻击,从而形成巨大的经济、社会损失。 一般情况下,为了找到这些安全漏洞,相关功能的开发人员和测试人员会进行代 码复查,手工挑选出那些可能存在安全问题的源码,并采取相应的缓和措施。这 个过程耗时巨大,并且随着开发人员安全方而经验、素质的不同,产生的结果参 差不齐。当安全分析过程能够被自动执行时,由于减少了手动参与的误差,将有 效提高速度和精确度( 由于减少了人类错误的范围) ,因此对发现安全漏洞,提 高w e b 服务安全性有重要的意义。 二、切片技术在追溯数据流方面的优势: 根据定义,切片是与一个特定程序点具有依赖关系的所有程序点集合,包括 能影响该特定程序点以及被其影响的程序点。在程序切片的传统应用方式上,通 过删除无关的,不受影响的程序点部分,可以缩小程序规模,提取程序抽象。在 本课题中,考虑到在一个程序点a 处的一个数据b ,当其在另一个程序点c 处 被修改时,从a 到c 具有数据依赖的关系;同时根据切片定义,b 也就是属于 a 的切片。换句话说,基于程序切片技术,经过合适的处理步骤,能够完成追溯 数据流动过程的功能。由于目标是对关键数据或信息的保护,从这个角度考虑, 选择使用切片技术来发现在w e b 服务内部以及服务网络之间的信息传递过程。 1 2 第三章安全丹析工具总作设计 3 1 3 ,l 图3 - 1w e b 服务协议栈的黄注模块 图3 - 1 显示了在甫众多协议构成的w e b 服务结构中从安垒角度出发需要 关注的模块( 安全模块s e c u r i t y ) ,以及本课题具体考虑的模块( 服务描述模块 w s d l ) 。从开笈安全的w e b 服务f f j 度出发,以s e c u r i t y 模块作为研究对象,甘 前业界的成果集中于从f 面几个方面来考虑w e b 服务的安全性: 1 制定安全规范保证信息在网络传递过程中的安全。w s s e c u r i t y 规范扩展了 s o a p 铷议,加入了x m l s i g n a t u r e 和x m l e n c r y p t i o n 标准,从而在消息层 引入了安全机制。 2 制定一个安全开发流程。与安全软件工程( s e c u r es o i o - v a r ee n g i n e e r i n g ) 类 似,由g u t i e r r e z 等人提出的p w s s e c ( p r o c e s s f o r w e bs e r v i c es c c u r i t y ) ,将 安全步骤加 到传统的软件开发过程的三个不同阶段。 3 引入各种编程技巧,包括提高对软件测试小组的要求,对开发人员和测试人 员进行安全方而的培训,提高代码复查的粒度等, 虽然开发人员遵循j 面的各种规范、实施相应的安全措施来进行应用程序开 发,对减少安全漏洞,增加产品的簧争性质有积极的效果,但足,这些规范和措 施对与开发人员、团队在安全方商的素质和条件都有较高的要求。在实际开发过 程中,由于受到人力、财力以及时间方面的限制开发人员往往不能够完伞将这 些安全规范、标准肄应用于开发过程因此,从实用性角度出发,构造一个更加 第三章安全分析工具总体设计 易于使用的流程或者工具,将会对开发人员构造一个具有安全特性的w e b 服务 有较大的帮助。 从w e b 服务本身的安全性出发,本课题以w e b 协议模块的安全问题为研究对 象,分析其安伞性质。对于一个单一的w e b 服务而言,考虑其组成结构包括两 部分,即协议栈( w e b 服务描述语言,w s d l 和简单对象存取协议,s o a p ) 和 内部实现代码。前者为外部用户提供了该w e b 服务所能完成的功能描述以及在 网络传输的数据格式,后者完成在w s d l 中描述的接口功能逻辑并且对外部用 户是透明的。对前者在传输过程中添加各种保护措施( 如数字签名) 和加密机制, 虽然对于保证所有的w e b 服务安全性具有普遍意义,但是在本质上是采取从外 部为其添加“包装”的形式增强其安全性,而非从内部出发,研究w e b 服务本 身在实现过程中的工作逻辑的安全问题,发现并消除其安全漏洞,从而杜绝攻击 者实施攻击的可能性。同时这种对w e b 服务相关信息在传输过程巾进行安全保 护的形式也缺乏针对性。也就是说,对于两个不同的w e b 服务来说,可能需要 的安全措施并不相同。因此,从w e b 服务本身的安全性角度出发,考虑并非添 加“包装”来抵御攻击,而是从内部出发,分析并消除潜在的安全漏洞,对于增 强w e b 服务本身的健壮性和安全性有积极的意义。j 对于多个w e b 服务构成的互联网络而言,每一个w e b 服务都是网络中的一个 节点,通过将功能接口发布为外部接口,供更多用户使用,就是节点之间的交互 过程。这些用户可能是真人,也可能是另一个w e b 服务。一个典型的交互形式 为一个w e b 服务a 通过网络调用另一个w e b 服务b 所提供的功能接口供自己使 用,完成一个新的功能,然后再将其发布到嘲络中。在这样一个w e b 服务的网 络模型中,服务b 中的消息通过服务a 得到了扩散,其影响范围也随之扩大。 相应的,当b 中存在安全漏洞时,这种影响范围的扩散,意味着安全漏洞的扩 散。其后果为,攻击者实行攻击时,区别于之前只能针对节点b 实行攻击,此 时攻击者可以选择整个网络中所有相关节点进行攻击,这意味着b 被攻击的范 围被扩大,该安全漏洞对b 造成的负面影响也增加了。尽管可以在安全漏洞被 扩散后的网络模型中每个节点添加一些普遍性的安全措施,但是这种方式所需要 的时间代价和金钱代价都将大大高于在产生安全漏洞的根源节点上进行安全保 护措施,同时,前者的有效性也低于后者。也就是说,在w e b 服务组成的网络 模型中发现根源节点b 中的安全漏洞并在这个节点上采取缓和措施,具有实用 性和高效性。 因此,本课题研究了针对w e b 服务网络模型中单个节点( 即一个具体的w e b 服务) 执行安全分析,发现潜在的安全漏洞,以及跟踪该漏洞在两个节点间的扩 散过程。在此基础上,给出相应的缓和方案缓和威胁,改善整个网络模型的安全 1 4 第三章安全分析丁具总体设计 性质。具体包括:1 、分析程序切片和w e b 服务结构,对w e b 服务中信息泄露的 安全漏洞展开研究,提出了通过信息流跟踪的方法,发现在一个标准的w e b 服 务中存在的安全漏洞。2 、分析由多个w e b 服务通过对彼此的接u 调用关系组成 的服务网络中的信息流动过程。当w e b 服务a 提供的外部接口存在信息泄露安 全漏洞时,研究w e b 服务b 是否通过调用该接口,导致该安全漏洞被扩散。3 、 在安全报告中,给出相应的缓和措施缓和威胁。4 、提供一个应用场景,将一个 已经满足功能性需求的w e b 服务作为应用对象,通过本课题的安全分析工具, 将会减少其信息泄露的漏洞,提高安全性,从而更高程度的满足其可靠性需求。 图3 2 为安全分析的序列图: 田叵囤匡国e 晕 l r _ 叫r i t i e a ll n f o r m a t i o l _ _ 叫 图3 - 2 安全分析流程图 从图3 - 2 中可以看出,为了在一个w e b 服务作为节点组成的网络模型中发现 并消除一个信息泄露的安全漏洞,第一个阶段便是需要由用户明确的指定这个系 统中需要保护的关键信息或者数据,也就是说,在一个系统中可能包含若干不同 的信息或者数据,但是并非所有的信息或者数据都应该对外部用户屏蔽。事实上, 一个w e b 服务通常情况下都会把为用户提供特定的信息或者数据服务作为主要 的功能。因此,若存在信息泄露这个安全漏洞,所泄露出的信息应该是系统中需 要保护的关键信息或者数据。依据指定的关键信息,通过正则表达式匹配,在 w e b 服务的源代码中获取能够影响到关键信息取值的关键语句集合,供后续使 用。 第二个阶段,通过对该w e b 服务协议进行解析,获得该w e b 服务的各种具体 信息,例如暴露给外部用户使用的接口集合( 即该w e b 服务通过网络提供给外 部用户使用的功能) 。将这些接口处理成切片准则,对整个源程序执行切片。 第三个阶段,处理切片结果。根据定义,所得的切片是由与此切片准则有依 第三章安全分析工具总体设计 赖关系的,能够影响和被影响的语句所组成一个语句集合。在切片结果处理模块 和安全报告生成模块中,将获得的切片结果处理成可识别的j a v a 语句集合,将 其与前一阶段得到的关键语句集合匹配,根据匹配结果,判断安全漏洞是否存在。 也就是说,若匹配成功,说明该接口具有对关键信息的影响能力,即外部用户能 够执行对本来应该受到保护的关键信息的各种操作,意味着这有可能是一个信息 泄露的安全漏洞。 当外部用户进行恶意操作时,将给这些关键数据带来损害,并给整个系统的 正常运行带来威胁。 第四个阶段,研究服务网络中的安全问题。考虑到这些存在安全漏洞的接口 有可能被其他的w e b 服务调用,被包装成一个新的同样存在安全漏洞的接口发 布给更多用户,意味着这种安全漏洞有可能被扩散至整个w e b 服务网络模型中, 使其带来的危害更加严重。, w e b 服务a 通过调用w e b 服务b 提供的接口来实现一个新的功能并对外部 用户发布,这个过程体现了b 中相关接口作用范围和影响能力的扩散。当b 提 供的外部接口中存在安全漏洞的时候,b 将面临更多的攻击者,其被攻击范围扩 大,这就是一个安全漏洞扩散的问题。为了判断在w s l 中是否调用w s 2 中的接 口,这可以通过分析w s l 的源代码来进行判断,从而达到判断安全漏洞扩散程 度的问题,可以通过两种方式来实现: 第一种方式:先使用切片器在w s 2 中判断出存在安全漏洞的接口,再判 断w s l 中是否使用了该接口; 第二种方式:现在w s l 中取出可疑接口,再用切片器判断该接口是否存 在安全漏洞: 考虑到在实际情况中,一个w e bs e r v i c e 提供的接口和服务,往往是供若干个 不同的客户端进行调用,因此采

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论