(计算机科学与技术专业论文)基于进程迁移的入侵容忍技术的研究与实现.pdf_第1页
(计算机科学与技术专业论文)基于进程迁移的入侵容忍技术的研究与实现.pdf_第2页
(计算机科学与技术专业论文)基于进程迁移的入侵容忍技术的研究与实现.pdf_第3页
(计算机科学与技术专业论文)基于进程迁移的入侵容忍技术的研究与实现.pdf_第4页
(计算机科学与技术专业论文)基于进程迁移的入侵容忍技术的研究与实现.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机科学与技术专业论文)基于进程迁移的入侵容忍技术的研究与实现.pdf.pdf 免费下载

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

文档简介

国防科学技术大学研究生院学位论文 摘要 现代社会日益依赖于像因特网这样的大规模网络,而网络攻击事件却层出不穷,严重 威胁网络基础设施的安全。基于保护关键网络基础设施的需要,兴起了对网络生存能力的 研究。入侵容忍是应对恶意攻击的一种方法,也是增强网络服务生存能力的重要手段。但 是目前的入侵容忍体系结构本质上是一种单节点的体系结构,缺乏网络中各个节点间的协 同,因此本文提出了一个基于进程迁移的分布式体系结构,并对其关键技术进行了深入研 究。本文的主要工作为: 1 、提出了一个多节点协同的分布式体系结构基于进程迁移的入侵容忍体系结构, 其核心是网络服务器进程动态迁移( n e t w o r ks e r v e rp r o c e s sd y n a m i cm i g r a t i o n ,n s p d l v 0 技 术。这种体系结构无须前端代理的转发,从而避免了单点失效问题,而且采用进程迁移技 术,能够为用户提供不中断服务。 + 2 、对n s p d m 的关键技术进行了深入研究。通过设计和实现系统调用g e t p r o c i n f 0 0 和 s e t p r o c i n f 0 0 来简化进程状态的提取与再生过程;通过设计和实现s e n d e r 0 和r e c e i v e r 0 来发 送与接收进程状态信息;通过设计与实现m 地址改写功能与口分组转发功能,实现了迁 移进程的位置无关性。提出了解决迁移调度问题的方法:当待迁移进程数量较少时,最简 单的方法是将进程全部迁移到负载最轻的可用节点上;当待迁移进程数量较多时,使用高 效的分配算法可使被迁移进程分布得更合理。 3 、通过研究外部触发和内部触发两种机制来解决进程迁移的时机问题。研究结果表 明:它们各有所长,分别适应不同情况的需要。对内部触发,采用随机实现的方式,安全 性能够得到保障。 本文对基于进程迁移的入侵容忍技术的探讨对提高网络服务生存能力具有重要的实 际意义。 关键词:入侵容忍,进程迁移,迁移调度,生存能力 n 国防科学技术大学研究生院学位论文 a b s t r a c t m o d e ms o c i e t yi sg r o w i n gi n c r e a s i n g l yd e p e n d e n tu p o nl a r g e - s c a l e ,u n b o u n d e dn e t w o r k s y s t e m ss u c ha st h ei n t e r n e t , w h e r e a st h eo c c u r r e n c eo fa t t a c k so ri n c i d e n t si sm o r ea n dm o r e f r e q u e n t ,w h i c hg r e a t l yt h r e a t e n st h es e c u r i t yo fn e t w o r ki n f i a s t r u c t u r e s t h e r e f o r e , d u et on e e d f o rp r o t e c t i n gc r i t i c a ln e t w o r ki n f r a s t r u c t u r e s ,t h es u r v i v a b i l i t yo fn e t w o r ki n f r a s t r u c t u r e si s s t u d i e d i n t r u s i o nt o l e r a n c ei sa l la p p r o a c ht oh a n d l i n gm a l i c i o u sa t t a c k s ,a n di sa l s oa ni m p o r t a n t m e a n sf o re n h a n c i n gt h es u r v i v a b i l i t yo fn e t w o r ks e r v i c e b u tc u r r e n ti n t r u s i o n - t o l e r a n ts e r v e r a r c h i t e c t u r e sa r es u b s t a n t i a l l ya na r c h i t e c t u r eb a s e do nas i n g l en o d e ,a n dh a v en o tc o o p e r a t i o n b e t w e e nn e t w o r kn o d e s ,t h e r e f o r e , t h i st h e s i sp r e s e n t sad i s t r i b u t e da r c h i t e c t u r eb a s e do np r o c e s s m i g r a t i o n , a n dp r o f o u n d l ys t u d i e si t sk e yt e c h n i q u e s t h ep r i m a r yc o n t r i b u t i o n so ft h i st h e s i s i n c l u d et h ef o l l o w i n gt h r e ep a r t s f i r s t l y , ad i s t r i b u t e da r c h i t e c t u r eb a s e do nc o o p e r a t i o nb e t w e e nn e t w o r kn o d e si sp r e s e n t e d - ai n t r u s i o n t o l e r a n ts e r v e ra r c h i t e c t u r eb a s e do np r o c e s sm i g r a t i o n , a n di t sc o r ei st h en e t w o r k s e r v e rp r o c e s sd y n a m i cm i g r a t i o n ( n s p d m ) t e c h n i q u e t h i sa r c h i t e c t u r ed o e sn o tn e e daf r o n t e n dp r o x yt of o r w a r dr e q u e s t s ,t h e r e b ym a ya v o i dt oc a u s ean e ws e c u r i t yb o t t l e - n e c k , a n dt h a t u s e sp r o c e s sm i g r a t i o nt e c h n i q u e , t h e r e b yc a n p r o v i d ec o n t i n u a ls e r v i c e sf o ru s e r s s e c o n d l y , t h ek e yt e c h n i q u e so fn s p d m a r ep r o f o u n d l ys t u d i e d t h ep r o c e d u r ei nw h i c h p r o c e s ss t a t e sa r ef e t c h e da n dr e g e n e r a t e di ss i m p l i f i e dt h r o u g ht h ed e s i g n e da n di m p l e m e n t e d s y s t e mc a l l s :g e t p r o c i n f o oa n ds e t p r o c i n f o o ;t h ep r o c e s ss t a t ei n f o r m a t i o n sa r es e n ta n dr e c e i v e d t h r o u g ht h ed e s i g n e da n di m p l e m e n t e df u n c t i o n s :s e n d e r 0a n dr e e e i v e r o ;t h el o c a t i o n i n d e p e n d e n c eo fm i g r a t e dp r o c e s s e sa r ei m p l e m e n t e dt h r o u g ht h ed e s i g n e da n di m p l e m e n t e di p a d d r e s sr e w r i t i n gf u n c t i o na n d1 1 p a c k e tf o r w a r d i n gf u n c t i o n t h em e t h o d so fs o l v i n gm i g r a t i o n s c h e d u l i n gq u e s t i o n sa r ep r o p o s e d :w h e nn u m b e r so fm i g r a t e dp r o c e s sa r es m a l l , i ti st h e s i m p l e s tt om i g r a t ea l lp r o c e s s e st oa na v a i l a b l en o d ei nw h i c hl o a di st h el i g h t e s t ;w h e nn u m b e r s o fm i g r a t e dp r o c e s sa r el a r g e ,m i g r a t e dp r o c e s s e sm a yb em o r er e a s o n a b l yd i s t r i b u t e dt h r o u g h t h ee f f i c i e n td i s t r i b u t i n ga l g o r i t h m s f i n a l l y , t h ee x t e r n a lt r i g g e ra n di n t e r n a lt r i g g e ra r ep r o f o u n d l ys t u d i e dt os o l v et h eq u e s t i o n o ft i m ew h e nt h ep r o c e s s e sa r em i g r a t e d t h er e s e a r c hr e s u l t ss h o w :t h e yh a v et h e i ro w n a d v a n t a g e sr e s p e c t i v e l y , a n da d a p tt o d i f f e r e n tc i r c u m s t a n c e sr e s p c c t i v e l y f o rt h ei n t e m a l t r i g g e r ,f ft h em e t h o do fs t o c h a s t i ci m p l e m e n t a t i o ni sa d o p t e d s e c u r i t yc a nb ei n s u r e d t h ee x p l o r a t i o nt ot h ei n t r u s i o n - t o l e r a n tt e c h n i q u e sb a s e do np r o c e s sm i g r a t i o nh a st h e s i g n i f i c a n tp r a c t i c em e a n i n gf o ri m p r o v i n gt h es u r v i v a b i l i t yo fn e t w o r ks e r v i c e k e y w o r d s :i n t r u s i o nt o l e r a n c e ,p r o c e s sm i g r a t i o n , m i g r a t i o ns c h e d u l i n g , s u r v i v a b i l i t y ( , 国防科学技术大学研究生院学位论文 表目录 表1 1 四种体系结构的设计特征总结4 表2 1 组播的a p l 支持的套接口选项1 2 表3 1v 姒段的访问权限3 7 表3 2v m a 段的属性3 8 表5 1t c p 服务器进行连接时的地址绑定4 7 , 表5 2i p 转发表的形式5 1 表6 1 进程虚拟地址空间信息5 4 表6 2 进程虚拟内存段部分信息5 5 表6 3 进程系统堆栈的部分内容5 5 国防科学技术大学研究生院学位论文 图目录 图1 1s i t a r 的体系结构,2 图1 2w i t s 的逻辑视图3 图1 3m o s i x 进程迁移的一般过程示意图5 图2 1 基于进程迁移的入侵容忍系统体系结构示意图8 图2 2n s p d m 的功能模块间的通信示意图8 图2 3 进程迁移模块的流程图9 图2 4s y $ p r o c m i g 0 的流程图l o 图2 6 监听迁移模块的流程图1 l 图2 6 信息发布模块的流程图1 2 图2 7 信息更新模块的流程图1 3 图3 1 进程的组成1 7 图3 2 进程迁移过程示意图1 9 图3 3 进程状态提取的示意图2 2 图3 4 与进程已打开文件相关的数据结构之间的关系示意图2 3 图3 5g e t d e n f i l e 0 的流程图2 3 图3 6 目录项名在d e n a m e m a x l e n l 中的存放示意图2 4 图3 7 进程的最大虚存空间2 5 图3 8 进程的虚存地址分布示意图2 5 图3 9 与进程虚存管理相关的数据结构之间的关系示意图2 6 图3 1 0 与进程上下文相关的数据结构2 8 图3 1 l 进程控制块与系统堆栈分布示意图2 9 图3 1 2 进程用户空间堆栈内容的提取示意图3 0 图3 1 3 用户定义的信号处理函数的执行路线示意图3 l 图3 1 4 与信号处理函数相关的数据结构之间的关系示意图3 3 图3 1 56 e t p r o c i n f 0 0 的流程图3 4 图3 1 6 进程状态再生的示意图3 5 图3 1 7s e t p r o c i n f o ( ) 的流程图4 2 图4 1s e n d e r 0 和r e c e i v e r 0 的流程图4 5 图5 1 套接口对示意图4 7 图5 2 客户向服务器发出连接请求4 8 图5 3 服务器派生子进程处理客户请求4 8 图5 4i p 分组转发示意图4 8 图5 5i p 层数据包走向示意图4 9 图5 6 i pl o c a t e ( ) 的流程图5 3 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他入已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意 学位论文题日:基王进焦适整数厶堡窒墨拉丕煦噩堑盏塞理 学位论文作者签名:盘:! 堑茎!日期:z 卯乒年,月,z 日 学位论文版权使用授权书 本入完全了解国防科学技术大学有关保留、使用学位论文的规定本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印,缩印或扫描等复制手段保存汇编学位论文 ( 保密学位论文在解密后适用本授权书) 学位论文题目: 基王堂焦迁壁煎厶堡窒墨拉盔煎丑窥生塞狸 学位论文作者签名:缝垫盔竺日期:z 肿牛年,月,z 日 作者指导教师馘:叠l 至l 一日期:z ,乒年,月,。日 、 国防科学技术大学研究生院学位论文 第一章绪论 1 1 研究背景 以防火墙为典型的静态边界防卫技术虽然能阻挡大量网络入侵行为,但是却难以阻挡 智能敌手精心策划的攻击计划,也对网络内部人员作案无能为力。因此出现了入侵检测技 术,该技术基于入侵者的攻击行为与合法用户的正常行为存在明显的差别,实现对入侵行 为的检测和告警,以及对入侵者的跟踪定位和行为取证。目前较成熟的主要有基于特征的 入侵检测、基于异常的入侵检测以及两者的结合。基于特征的入侵检测必须了解所有攻击 的攻击特征,而基于异常的入侵检测则必须了解系统期望的所有正常的使用行为。在现实 中,这两者都是很难做到的。因为这两种方法所依赖的知识基础的不完整性,都可能产生 大量的误报和漏报事件。 对关键网络基础设施来说,仅仅采用上述两层防卫设施是不够的。目前尚不存在确保 关键网络基础设施能完全幸免于恶意攻击的强硬措施。对特定网络的攻击,攻击者是不惜 代价的。面对这样一个现实,从上世纪末开始,国外一些学者开始了对网络生存能力的研 究,并取得了可喜的成绩。文献【1 】是从方法学上进行研究。定义了生存性系统需求的框架 以及讨论了几个新的生存性策略。提出了可生存的网络系统的思想,即系统在面临攻击、 失效和偶发事件的情况下仍能按要求完成任务的能力。指出生存性系统必须区分基本服务 和非基本服务,并针对一定的攻击模式定义了抵抗、识别和恢复策略。强调基本服务是核 心,其安全性必须得到保证,是恢复非基本服务的基础。文献【2 】提出了一套系统的生存能 力研究方法。描述了一个双线索、三阶段的生存能力的研究和发展的方法。认为生存能力 研究必须从系统和环境两个方面来做。文献 3 】提出了利用异构技术获得网络生存能力的新 范例,指出异构网络框架的生存能力关键取决于每个功能组件级的网络元素的不同实例在 攻击下的弱点的差别上。网络元素面对攻击的弱点的差异性越大,异构网络框架的生存能 力越高。虽然给出了一种用现有技术构造异构网络的范例,但是未就如何实现展开讨论。 入侵容忍( i n t r u s i o nt o l e r a n c e ) 是应对恶意攻击的一种方法,也是增强网络服务生存 能力的重要手段。基于入侵容忍技术在构建抗攻击的网络服务器体系结构方面的潜力,无 论学术界还是工业界,都在对入侵容忍服务器体系结构进行研究。文献 5 】【6 】【7 】提出了一 个叫s i t a r ( a s e a l a b l ei n t r u s i o n - t o l e r a n t a r c h i t e c t u r ef o rd i s t r i b u t e ds e r v i c e s ) 的入侵容忍 系统。作为s i t a r 研究的第一步,文献【8 】开发了一个状态变迁模型来描述入侵容忍系统 的动态行为。这个模型提供了一个框架来定义系统的脆弱性和威胁集,以及通过注重其效果 而非特有的攻击过程,有助于对已知和未知的安全探测( s e c u r i t ye x p l o i t s ) 行为的描述。 s i t a r 的体系结构如图1 1 所示,它定义了五个关键组件:( 1 ) 代理服务器( p r o x y s e r v e r ) 实施由当前入侵容忍策略( s t r a t e g y ) 指定的服务政策( p o l i c y ) 以及由这些政策决定请求应该 第1 页 国防科学技术大学研究生院学位论文 转发到哪个c o t s 服务器和最终结果如何呈现( p r e s e n t e d ) 。( 2 ) 接收监视器( a c c e p t a n c e m o n i t o r ) 对响应结果进行有效性检查,并有选择地将携带检验结果的响应转发到表决监视 器( b a l l o tm o n i t o r ) 。接收监视器也检测c o t s 服务器上的危险信号并产生入侵触发 ( i n t r u s i o nt r i g g e r ) ( 3 ) 表决监视器充当各个c o t s 服务器的“代表”来解决冲突,或是 通过多数表决或是通过b y z a n t i n ea g r e e m e n tp r o c e s s 来决定最终的响应。选中的实际进程依 赖于当前被检测到的安全威胁级别。( 4 ) 自适应重配置模块( a d a p t i v er e e o n f i g u r a t i o n m o d u l e ) 从其它模块( 包括接收监视器) 接收入侵触发信息,并评估威胁、容忍目标、成本 性能影响,以及为系统产生新的配置。( 5 ) 审计控制( a u d i tc o n t r 0 1 ) 通过周期性的诊断 测试来验证审计记录以及鉴别组件中的异常行为。 图1 1s i t a r 的体系结构 s a r 的主要思想是:请求通过接收监视器转发到几个w e b 服务器,在接收监视器和 表决监视器中监视响应。当检测到攻击时,自适应重配置模块负责重新配置以适应新情况。 文献【9 】提出了一个自适应入侵容忍服务器体系结构。它与s i t a r 的不同之处是:前 者注重于i d s s 、内容一致( c o n t e n ta g r e e m e n t ) 、以及自适应策略( a d a p t i v e p o l i c i e s ) 之间的联 系,而后者侧重于使用容错技术( 例如b y z a n t i n ea g r e e m e n t p r o t o c o l s “”) 来协调( c o o r d i n a t e ) 各个代理器。 针对s i t a r 存在的如下问题:1 ) 模块缺乏详细的设计和实现的描述,不清楚配置模 块是如何工作的2 ) 既然一个请求被转发到几个w e b 服务器,那么就存在处理请求的性 能问题。文献i n 设计了一个入侵容忍系统并实现了一个原型。图1 2 显示了这个叫w i t s ( w e bs e r v e ri n t r u s i o nt o l e r a n ts y s t e m ) 的逻辑视图。一个入侵容忍服务器位于多个w e b 服务器前面。这些w e b 服务器共享一个数据库。每个服务器有多个相同服务构成冗余 ( r e d u n d a n c y ) 和多样性( d i v e r s i t y ) 。多个w e b 服务器同时运行。入侵容忍服务器充当代理服 务器,在客户和服务器之间传递请求和响应。 第2 页 国防科学技术大学研究生院学位论文 图1 2w i t s 的逻辑视图 除了上述提到的入侵容忍服务器体系结构以外,还有k a r m a “”,i t s i “”,i t u a “”, 和p b f r “”等,但是都无人对它们的性能和可依赖性做任何比较研究。因此,文献b 6 就做 了这个工作。在他们的工作中,基于如何处理请求、如何作出响应入侵的决定把入侵容忍 服务器体系结构分成四类以便于研究。他们认为评价入侵容忍系统的一种有吸引力的选择 是通过p r o b a b i l i s t i cm o d e l i n g “ ,并使用了s a n s “”( s t o c h a s t i ca c t i v i t yn e t w o r k s ) 来描述他 们的四种体系结构模型。通过改变模型的参数,他们获得了关于不同体系结构的性能和入 侵容忍特征,见表1 1 。 从以上的综述看,目前的入侵容忍体系结构仍存在不足之处:1 ) 如果客户的请求和 w e b 服务器的响应通过前端代理转发,则会导致单点失效问题。2 ) 如果客户的请求组播到 所有服务器,则可能出现多个服务器处理同一个客户请求的情况,从而造成资源浪费。3 ) 从本质上看,目前的体系结构是一个单节点的解决方案,缺乏网络系统的代偿互助功能。 这里的代偿互助是指当网络中任何一个节点上的服务器遭到攻击而丧失服务能力时,可基 于某种算法选择另一个合适节点上的服务器暂时接替其工作,直到受损服务器恢复工作为 止。 进程迁移是将一个进程从当前节点的处理器上移动到指定节点的处理器上,其基本思 想是在进程执行过程中移动它,使它在另一台计算机上继续运行。虽然进程迁移作为支持 负载平衡和高容错性的一种非常有效的手段,一直受到人们的重视,但是它在网络信息安 全方面的应用也非常值得探讨。当某节点受到攻击而即将不可用时,通过将进程迁移到其 它节点上继续恢复运行,会极大地提高系统的生存能力。因此,本文提出一种使用进程迁 第3 页 国防科学技术大学研究生院学位论文 移技术的入侵容忍体系结构,为增强网络服务生存能力提供一个无前端代理的实现手段 表1 1四种体系结构的设计特征总结 特征 c r c l i懈c ms m r 呶d m 处理请求的并发性 有有无 有 确保响应的正确性无无 有无 配置管理器集中集中分布分布 当f 个服务器受损, f + lf + l3 f + l3 f + 1 使服务不中断所需 要的服务器数 客户请求的转发 转发到随机选转发到所有转发到所有转发到随机选 择的服务器服务器服务器择的服务器 对请求的响应服务通过随机选择 基于源i p通过所有的通过随机选择 的服务器 服务器的服务器 可信任组件 21o0 从进程迁移实现的角度看,可将其分为用户级迁移、应用级迁移和内核级迁移“”:用 户级迁移实现较为简单,软件开发和维护也较为容易,因此,较为常见,如c o n d e r 嘲和 u t o p i a 。但由于在用户级无法获得内核的所有状态,因此不能对所有进程进行迁移。另外, 由于内核空间和用户空间之间存在着壁垒,打破这个边界获得内核提供的服务需要巨大的 开销。因此,用户级实现效率远远低于内核级实现。应用级迁移实现较为简单,可移植性 好。但要了解应用程序语义并可能需要对应用程序进行修改或重编译,透明性较差。这方 面的系统有f r e e d m a n 、s k o r d o s 等。基于内核的实现可以充分利用操作系统提供的功能, 全面地获取进程状态,所以实现效率较高,能够为用户提供很好的透明性。但是由于需要 对操作系统进行修改,实现较为复杂。这方面的典型系统有m o s i x 。”嘲和s p r i t e 嘲系统。 从应用环境看,又有同构环境下的进程迁移和异构环境下的进程迁移。在同构环境下提 取和恢复进程状态相对容易,而在异构环境下则要困难得多。 基于用户级进程迁移的典型是h i j a c k i n g 嘲。这种系统在进程代码上不需要任何改变。 进程启动后,变化是动态完成的。h i j a c k i n g 系统使用d y n i n s t 嘲( 一种修改运行进程内存 映像的体系结构无关a p i ) 。迁移时,首先停止被迁移进程,然后创建子进程,称作s h a d o w 。 它继承了父进程使用的所有资源。迁移后,进程通过s h a d o w 使用资源。这个解决方案透 明但十分昂贵,因为它使用创建进程的主机。 m o s i x 支持集群计算并在l i n u x 操作系统内核级实现。m o s i x 迁移机制能使得几乎任 何进程在任意时间迁移到任何可用的主机上1 。每一个运行的进程都有一个u h n ( u n i q u e 第4 页 国防科学技术大学研究生院学位论文 h o m e - n o d e ) ,它是进程被创建的节点迁移后,进程尽可能地使用来自新主机的资源, 但与环境的交互需要跟u h n 通信。许多系统调用需要新节点和u h n 之间的数据交换。因此, 在m o s i x 中,被迁移进程是不能直接与其它进程通信的,从而在进程迁移后,系统性能可 能下降。文献【2 8 】提出并实现了一种使被迁移进程能与其它进程直接通信的技术,从而可 以避免系统性能的下降。虽然在集群应用中,进程间的通信是必须考虑的,但是在本文涉 及的问题中。各个服务器进程各自接收客户请求并向客户发回响应,无须考虑进程间的通 信问题。因此,我们并不关心迁移进程的通信状态。 m o s i x 进程迁移的一般过程洲如图1 3 所示:( 1 ) 选择要迁移的进程和目标节点:m o s i x 中选择迁移进程有两种方式,一种是用户明确控制,通过m o s i x 附带的系统命令m i g r a t ep i d n o d e ,将进程标识符为p i d 的进程迁移到节点n o d e 上。另一种方式则是由负载平衡模块 进行自动调度,根据集群的负载情况和历史信息,按照特定的平衡算法,选择某个进程迁 移到比较空闲的节点上,以达到整个集群的最佳性能。每个进程都有一个m o s i x 控制块 ( m o s i x j a s k ) ,它的成员w h e r e t o 如果不为o ,则为该进程需要迁往的目的节点。( 2 ) 向 目标节点发送迁移请求并协商:当节点a 的调度函数s c h e d u l e ( ) 调度进程a 运行时,在 a 退出核心态之前,操作系统将会检查w h e r e t o 的值,发现进程a 要被迁移到节点b ,则会 向节点b 上的迁移守护进程m o s i x _ m i g _ d a e m o n 发出迁移请求。节点b 上的迁移守护进程 接收到该请求后,将会派生( f o r k ) 出一个新的进程b 来处理迁移请求,自己则继续在迁 移端口监听迁移请求信息。b 被标志为r e m o t e 进程。此时,进程h 和进程a 之间已经建立 一条t c p 的通信连接,用于相互间交换信息。进程b 则首先向b 的负载平衡模块询问, 是否要接受该请求。负载平衡模块根据平衡算法来决定接收或拒绝迁移请求( 3 ) 提取并 传送进程状态:当节点b 同意进程a 迁移到本节点后,将向节点a 发出同意应答。a 收到 同意应答后,则开始获取a 的进程状态,并通过a 与b 之问打开的连接将状态传送到进程 b 。进程b 则接收进程a 的状态,并据此修改自身的进程状态。( 4 ) 恢复进程的执行:a 的 进程状态迁移完后,a 将成为进程的d e p u t y 部分,一直处于核心态的d e p u t y _ m a r e _ l o o p 循 环中,直到进程死亡或被迁移回h o m e 节点。在节点b 上,进程b 被改为就绪状态,加入 运行队列中,等待被调度执行。当b 被调度后,返回到用户空间后,将从a 迁移前的用户 指令处继续往下执行。至此,整个迁移过程完毕。 医壁圈匡匠巫国 陟 l熏 程b lo ) 白身 嚣o 纂1 l ; , ( 煎垂互) t 凹连接 ,同意迁移 r c a o t e 1 ”状态 图1 3m o s i x 进程迁移的一般过程示意图 m o s i x 实现了迁移进程的位置无关性,用户和应用并不需要知道进程已被迁移走。这 第5 页 国防科学技术大学研究生院学位论文 个特点对我们实现本文目标具有很大吸引力。但是m o s i x 毕竟是为集群应用而开发的因 此,与我们需要解决的问题存在如下差异:第一,进程迁移的触发条件不同:在m o s i x 选 择迁移进程的两种方式中,其中由负载平衡模块进行自动调度这种方式是根据集群的负载 情况和历史信息,按照特定的平衡算法,选择某个进程迁移到比较空闲的节点上,以达到 整个集群的最佳性能。而本文要解决的问题是如何增强网络服务的生存能力。因此,针对 本文要解决的问题,应以入侵检测系统的告警和威胁评估系统的决策为前提,再兼顾负载 均衡要求,按照特定的调度算法,基于某种策略选择负载较轻的未受攻击的服务器节点, 将受攻击节点上的进程迁移过去。当受攻击节点恢复后,又将进程迁移回来。第二,对实 时性的要求不同:m o s i x 用于集群时,接受迁移的节点b 上的迁移守护进程接收到迁移请 求后,派生( f o r k ) 出的新进程b 会向节点b 的负载平衡模块询问,是否要接受该请求。 负载平衡模块根据平衡算法来决定接收或拒绝迁移请求。而在突发性安全事件爆发时,甚 至在部分网络瘫痪时,如何保证网络服务的及时、安全、可靠就具有很强的实时性,在集 群中基于询问协商的方式在这里不可取。在突发事件发生时,及时的进程迁移是确保网络 服务安全、可靠的有效手段。非协商式迁移显然比协商式迁移更适合实时性的要求第三, 对原节点依赖性的容忍度不同:在m o s i x 中,进程迁移后,许多系统调用需要新节点和 u h n 之间的数据交换,对原节点存在较大的依赖性这在解决网络安全问题时会导致安全 瓶颈,因而不可取。第四,对提取的进程状态数量的要求不同:在m o s i x 中,进程迁移时 需要迁移物理页面。这不仅很费时,而且会增大网络流量。虽然在集群应用中,问题不大 ( 集群是基于局域网的应用以及它是采取多次迁移的方法) ,但是在面临网络安全问题时, 问题就大了( 这时需要的是服务进程及时、快速地迁移) 。尽管如此,m o s i x 进程迁移的思 想还是非常有借鉴意义的。因此,我们从内核级迁移的角度,基于l i n u x 操作系统实现了 一种用于增强网络服务生存能力的进程迁移技术。这是本文研究的基于进程迁移的入侵容 忍技术的核心。 1 2 课题来源 本课题来源于项目编号为2 0 0 3 a a l 4 2 0 8 0 的8 6 3 课题“协作式应急响应服务与基于漂 移的可生存系统研究”。 1 3 课题目标 在全面分析已有的入侵容忍体系结构的不足,以及m o s i x 进程迁移的特点和实现过程 后,本文将提出基于进程迁移的分布式入侵容忍体系结构。在这种体系结构中,我们利用 网络中多节点的协同工作来消除采用前端代理方式而存在的单点失效问题,并且采用进程 迁移技术来保障正在进行的服务不至于中断而从头开始,以及采用有目的的迁移来避免采 用组播方式转发用户请求而可能导致的多个服务器同时提供服务的情况。 第6 页 国防科学技术大学研究生院学位论文 1 4 论文结构 在绪论中介绍本文的研究背景和意义后,第二章将提出采用进程迁移、迁移调度、口 地址改写以及口分组转发等技术的分布式网络服务器入侵容忍体系结构,并将详细论述主 ,要组件的设计与实现。此体系结构的核心是网络服务器进程动态迁移( n e t w o r ks e r v e r p r o c e s sd y n a m i cm i g r a t i o n ,n s p d m ) 技术。在第三章和第四章中,我们将分别对n s p d m 的关键技术中的进程状态的提取与再生以及发送与接收进行深入研究,并将详细论述其设 计与实现。在此基础上,第五章将分别深入研究n s p d m 的关键技术中的口地址改写机制 和迁移调度机制,并将提出与实现两种情况下的口改写方案以及迁移调度算法。然后将研 究触发机制来解决进程迁移的时机问题。在第六章中,我们将阐述实现平台与实现过程, 并将分析实现结果和给出分析结论。第七章将总结本文的研究成果,并展望未来的研究工 作。 1 5 本文的研究成果 本文在全面分析了已有的入侵容忍系统体系结构的不足,以及m o s i x 进程迁移的特点 和实现过程后,提出了一种基于进程迁移的分布式入侵容忍体系结构,在此基础上,深入 研究了实现网络入侵容忍和增强网络服务器生存能力的核心技术n s p d m ,并对 n s p d m 的关键技术一一进程状态的提取与再生以及发送与接收、口地址改写机制、迁移 调度机制等,进行了设计与实现,为增强网络服务生存能力提供了一种无前端代理的实现 手段。 第7 页 国防科学技术大学研究生院学位论文 第二章基于进程迁移的入侵容忍体系结构 2 1 体系结构 由前面的分析可知:当前的入侵容忍体系结构本质上采用单节点的体系结构,缺乏网 络中各个节点间的协同。而且,采用前端代理服务器的方式会存在单点失效问题,而采用 组播的方式又会造成资源浪费。本文提出的多节点协同的分布式体系结构,其核心是 n s p d m 。考虑不同网站的n 台服务器的协同工作,我们称之为代偿互助组。组中每台服 务器都有n 1 个副本位于其它不同的服务器上。在每个服务器上设置如下功能模块:进程 迁移模块、监听迁移模块、信息发布模块、信息更新模块、m 转发模块,灾难恢复及免疫 模块。其体系结构如图2 1 所示。 图2 1 基于进程迁移的入侵容忍系统体系结构示意图 其中n s p d m 的功能模块之间的通信示意如图2 2 所示。 进程迁移模块 叠i ;i i i 面压亟麴蛩 f i l e n a m e s k f j a o o s = c u r r e n t i n g - f i l e s - f d n - f _ o o s ; 其它已打开文件状态信息的提取与此类似。 图3 4 与进程已打开文件相关的数据结构之间的关系示意图 g e t d e n f i l e ( ) 开始 设置字符数组d e m n 】【l 矾1 来存放文件路径名 从目录项指针变量c - d 即t 玎指向的d e n t 玎结构中的成员d n 柚e ( q s t r 结构类型) 中提取指向此目录项名的指针n a m e 和名字的长度f e n 调用- 衄c p y ( ) 将指针n 蛆e 指向的目录项名拷贝到d e n n 强e 眦肼1 中已有字符串的前面:如果d e n n 柏e 姒) 矾1 中无字符串,则将其拷多j d e n n a m e g a x l e n i 】中最后一个长度为一个字节的区间的前面 在d e m m m e i i n 口l 】中的字符率前面添加分隔符。” c _ d e n t r y = c _ d e n t r y - d j a r e n t ! ! 多 是 调用m c m c p y 0 将d e n n a a e i i a 删i 中的路径名字符串拷贝到指定存储区 图3 5g e t d e n f i l e0 的流程图 图3 5 中的目录项名在d e 咖e 【m a e n l 】中的存放示意图见图3 6 ( 以全路径名 l i b i d - 2 3 2 s o 为例) 。全路径名前面无论有多少“”,系统都当成一个来处理,因此, l i b i d - 2 3 2 s o 和l i b i d 2 3 2 s o 对系统来说并无功能上的区别。 第2 3 页 国防科学技术大学研究生院学位论文 ( 1 ) d e f i 搬 i i l 哪j 讲l 】中无字符串 ( 2 ) 在d e 舶舯叫 x l e n l 】中存八目录项名1 d - 2 氛2 3 ) 在目隶碳名i d - 2 3 互s o 前面霸加分隔杼。 ( 4 ) 将目录项名1 i h 存放在l 批3 2 的前面 ( 5 ) 在目录项名l i b 前面添加分黼符。 ( 6 ) 在已有字符串之前添加根目录名。” 图3 6 目录项名在d e n a m e b i a x l e n l 中的存放示意图 3 2 2 进程连接信息的提取 从图3 4 可看到,d e n t r y 结构类型的指针d 指向结构。在结构中,当_ i n o d ei n o d e i n o d e i s o c k 域的值为真( 其值为1 ) 时,可以通过其u 域( 一个共同体) 的成员s o c k e t _ i 得到 s o c k e t 结构( i n c l u d e l i n u x n e t h ) 。由s o c k e t 结构的s k 域可获得s o c k 结构( i n c l u d e n e t s o c k h ) 类型的指针,从而可提取源口地址、源端口以及目的口地址、目的端口,它们分别在s o c k 结构中的s a d & 、s p o r t 、d a d d r 和d p

温馨提示

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

评论

0/150

提交评论