(通信与信息系统专业论文)基于web服务器的ddos防御方法的研究.pdf_第1页
(通信与信息系统专业论文)基于web服务器的ddos防御方法的研究.pdf_第2页
(通信与信息系统专业论文)基于web服务器的ddos防御方法的研究.pdf_第3页
(通信与信息系统专业论文)基于web服务器的ddos防御方法的研究.pdf_第4页
(通信与信息系统专业论文)基于web服务器的ddos防御方法的研究.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(通信与信息系统专业论文)基于web服务器的ddos防御方法的研究.pdf.pdf 免费下载

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

文档简介

中国民用航空学院学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所 知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果, 也不包含为获得中国民用航空学院或其它教育机构的学位或证书而使用过的材料。与我一同工作的 同志对本研究所做的任何贡献均已在论文中作了明确的说明井表示了谢意。 研究生签名日期;翌厶f 中国民用航空学院学位论文使用授权声明 中国民用航空学院、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复 印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文 的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文 的全部或部分内容。论文的公布( 包括刊登) 授权中国民用航空学院研究生部办理。 啾躲畔一名:婵一丝矿 中国民用航空学院硕士学位论文 他城市发起,攻击者的傀儡机位置可以分布在更大的范围,选择起来更灵活了。 1 9 9 9 年8 月,首次d d o s 攻击使用一个典型d d o s 攻击工具1 h n o o 攻击了美国明尼苏达 大学,该工具集中了至少2 2 7 台主机的控制权,其中有1 1 4 台是i n t e n 玲t 主机。攻击包从这 些主机源源不断发往明尼苏达大学的服务器,造成其网络严重瘫痪【2 】。 2 0 0 0 年网络上发生了大量的d d o s 攻击事件。在2 月份,y a h o o 、e b a y 等大型网站遭 到d d o s 攻击,这样仅次于a o l 的第二大搜索引擎站点,注册用户1 亿个,平均日 浏览页次4 6 5 亿,月访问量4 2 0 0 万次的大网站,在d d o s 入侵面前瘫痪三个多个小时【3 1 。 从2 0 0 0 年开始,几乎每年都有大量的拒绝服务攻击事件发生。特别是2 0 0 3 年1 月 的s q ls l 撇m e r 蠕虫病毒【4 】和8 月份的冲击波病毒【5 1 ,均造成了全球范围内的大面积的 拒绝服务现象。 当前各种小规模的d d o s 攻击事件仍在频繁发生。攻击者出于政治目的、商业竞争、 打击报复和网络敲诈等多种因素,导致很多政府网站、i s p 提供商、商业站点、游戏服 务器、聊天网络等网络服务商长期以来一直被d d o s 攻击所困扰,随之而来的是数据库 无法正常使用、服务器被入侵、机密资料丢失、客户投诉、法律纠纷、商业损失等一系 列问题。在信息战中,d d o s 攻击可被用于使重要的商业,政府,公共设施,甚至军事 站点瘫痪【6 】。因此,解决d d o s 攻击问题成为网络安全界必须考虑的头等大事。 如何防范d d o s 攻击已经成为亟待解决的问题。目前国际上许多专家学者对d d o s 攻 击展开了深入研究,提出了各种防御方法,然而这些方法不是部署困难就是效率不高, 真正有效全面地防范机制还有待提出【6 】。 1 2 国内外研究现状 从1 9 9 9 年8 月的第一起d d o s 攻击发生以来,人们就对d d o s 攻击及其对策展开了深 入的研究j 。 由c e r l ,c c 发起的d i s m b u t e ds y s t e m si n n u d c rt o o l sw b r k s h o p 于1 9 9 9 年1 1 月份发表 了一份报剖引,最早对d d o s 问题做了全面的阐述,详细分析了分布式系统攻击的原理, 并分别针对系统管理员、i s p 、以及事件响应小组,从预防、检测、响应三方面依次给 出了即时、短期、长期的解决方案。紧接着几个著名的安全组织( 如s a n s ) 和公司( 如c i s c o s y s t e m s ) 也给出了防御d d o s 攻击的建议【9 】。一些研究个人也非常活跃,华盛顿大学的 d a v ed i t 廿i c h 很早就开始对d d o s 攻击开展了研究,并提供了最新的d d o s 攻击及防御的 研究资料。 在攻击研究方面,我们可以看到每种典型的d d o s 攻击工具( t r 如0 0 ,t f n , s t a c h e l d r a h t ,t f n x 中国民用航空学院硕士学位论文 会造成网络拥塞;只能用于d o s 攻击的追踪。而无法适用于d d o s 攻击。 338中继防火墙 防火墙l j 副是用来在私有网络( 可信任网络) 和外部不可信任网络之间安全连接的一个设备或一组设例倦希鲞曙舔 蹩冀菲盟省瓣蹦嚣栉懋筵嚣譬主骑鞫墓铂堑硒:址及菘蔼型瑶塔毽莲珲诗坦巢据鹫,矍捌嚣张琵酯溜雏嚣篓羹间歪断= 州凰毛盈蠢晷;弼瞪渭强型酗g 崩型塑孽l 斋必萤塞霎渤遵簿睁藿! 霎耐;i i ;营璺 波雕掣出穗琢甥囊瓠骡翁哩疆坷婴趸戛髻攫匿蠢委萱墓翦i 瞧唠翘睐浏礤磐这些主 机的。一些安全措施较差的小型站点以及单位中的服务器往往是攻击者的首选目标。这 些主机上的系统或服务程序往往得不到及时更新,从而将系统暴露在攻击者面前。在成 功侵入后,攻击者照例要安装一些特殊的后门程序,以便自己以后可 以轻易进入系统,随着越来越多的主机被侵入,攻击者也就有了更大的舞台。他们可以 通过网络蟪听等蚕食的方法进一步扩充被侵入的主机群。 攻击者所作的第二步是在所侵入的主机上安装攻击软件。这里,攻击软件包括攻击 服务器和攻击执行器。其中攻击服务器仅占总数的很小一部分,一般只有几台到几十台 左右。设置攻击服 步扩充被侵入的主机群。 攻击者所作的第二步是在所侵入的主机上安装攻击软件。这里,攻击软件包括攻击 左右。设置攻击服务器的目的是隔离网络联系,保护攻击者,使其不会在攻击迸行时受 中国民用航空学院硕士学位论文 第三章d d o s 防御机制的研究 近年来,由于d d o s 攻击的频繁发生,给全球造成了巨大的经济损失。d d o s 攻击已 经成为严重制约网络发展,特别是商业应用的主要问题,并直接威胁着国家和社会的安 全。针对这种情况,国内外的专家学者已经提出很多d d o s 防御机制,虽在一定程度上 缓解了d d o s 攻击的影响,但是还不能从根本上杜绝d d o s 攻击。 3 1d d o s 防御机制概述 d d o s 攻击借助其攻击网络具备了分布式的特点,由此其攻击强度比d o s 攻击有了质 的增加,一些攻击特性也发生了根本变化,从而给防范措施添加了更多的困难。防御方 必须面对来自各个方向的攻击流,同时面对多种攻击手段的同时进攻。 以下是由编写d d o s 攻击工具t f n 和t f n 2 k ( 这些工具曾被用于攻击y 如o o 等大型网 站) 的德国著名黑客m i x t e “年仅2 0 岁) 对防范d d 日s 攻击的一些建议。 对于面临拒绝服务攻击的目标或潜在目标,应该采取的重要措施有: ( 1 ) 消除f u d 心态。f u d 的意思是f e a r ( 恐惧) ,u n c e :盹a 妇y ( 猜钡4 ) 和d o u m 怀疑) 。大 多数人大可不必因为害怕成为攻击目标而整天担惊受怕,成为d d o s 攻击目标的公司或 主机只是极少数,而且多数是一些著名站点。 ( 2 ) 要求与i s p 协助和合作。d d o s 攻击主要是耗用带宽,单凭受害网络是无法对付 这些攻击的。因此应与i s p 协商,确保他们同意帮助实施正确的路由访问控制策略以保 护带宽和内部网络 ( 3 ) 优化路由和网络结构。如果管理的不仅仅是一台主机,而是网络,就需要调整 路由表以将拒绝服务攻击的影响减到最小。 ( 4 ) 优化对外开放访问的主机。禁止所有不必要的服务,另外多m 主机也会增加攻 击者的难度。建议在多台主机中使用多i p 地址技术,而这些主机的首页只会自动转向真 正的w 曲服务器。 ( 5 1 正在受到攻击时,必须立刻应用对应策略。应尽可能迅速地阻止攻击数据包, 同时如果发现这些数据包来自某些i s p 时应尽快和他们取得联系。千万不要依赖数据包 中的源地址,因为它们在d o s 攻击中往往都是随机选择的。是否能迅速准确地确定伪造 来源将取决于你的响应动作是否迅速,因为路由器中的记录可能会在攻击中止后很快就 被清除。 对于已被或可能被入侵和安装d d o s 攻击程序的主机,应该采取的重要措施: r 1 ) 确保主机不被入侵且是安全的。现在互联网上有许多旧的和新的漏洞攻击程序。 系统管理员应检查漏洞数据库,以确保你的服务器版本不受这些漏洞影响。入侵者总是 利用己存在的漏洞进入系统和安装攻击程序。系统管理员应该经常检查服务器配置和安 1 7 中国民用航空学院硕士学位论文 全问题,运行最新升级的软件版本,最重要的一点就是只运行必要的服务。如果能够完 全按照以上思路,系统就可以被认为是足够安全,而且不会被入侵控制。 ( 2 ) 定期的审核系统。必须意识到你要对自己管理的系统负责。应该充分了解系统 和服务器软件是如何工作的,经常检查系统配置和安全策略。另外还要时刻留意安全站 点公布的与自发管理的操作系统及软件有关的最新安全漏洞和问题。 ( 3 ) 检查文件的完整性。当确定系统未被入侵时,应该尽快把所有二进制程序和其 它重要的系统文件产生文件签名,并且周期性地与这些文件比较以确保不被非法修改。 ( 4 ) 发现正在实施攻击时,必须立刻关闭系统并进行调查。如果监测到( 或被通知) 网络或主机正实施攻击,应该立刻关闭系统,或者至少切断与网络的连接。因为这些攻 击同时也意味着入侵者己几乎完全控制了该主机,所以应研究分析和重新安装系统。 完全做到以上这些,需要很高的安全意识,而且更熏要的是这些措施需要的具体的 防御机制来支持。 3 2d d o s 防御机制的分类 d d o s 问题的严重性和d d o s 攻击频率的增加,致使出现了很多的d d o s 防御机制。 一些防御机制是针对特殊的种类的d d o s 攻击的,例如w 曲服务器的攻击和身份验证服 务器的攻击。另外的一些方法试图完全解决d d o s 攻击问题。大多数提出的方法都要了 解某些的特征而得到阙值性能,当在不满足这些特征的环境中使用的时候,效果将不是 很明显。 至今没有一种有效的方法来抵御d d o s 攻击,因此不仅要了解现有的d d o s 防御方 法,而且还要考虑怎样将他们组合在一起来有效,彻底的解决这个问题。 按着d d o s 防御机制的行为层次可以分为预防机制和反应机制幽j 。 3 2 1 预防机制 预防机制的目标是消除d d o s 攻击的可能性或者是使潜在的目标可以承受一定的攻 击,保证对合法的客户端不会拒绝服务。通过这些目标我们将其分为攻击预防和拒绝服 务预防机制。图3 1 是d d o s 防御机制的分类。 ( 1 ) 攻击预防机制 攻击预防机制修改系统的配置来消除一个d d o s 攻击的可能性。基于安全的目标, 可以进一步分为系统安全和协议安全机制。 ( 幻系统安全机制:含对机器的访问监控,下载安装安全补丁、防火墙系统、病毒扫 描、入侵检测系统、临界资源的访问列表、基于权限的系统与基于客户端合法性的系统 的应用程序。这种方法并不能绝对有效,但能在一定程度上降低d d o s 攻击的影响与发 生次数。 中国民用航空学院硕士学位论文 时,难以区分攻击流量和正常流量。 3 3 5 基于概率的数据包标记算法胛m 基于概率的数据包标记算法p p m r o b a b i l i s t i cp 叫( e tm 溅n g ) 的主要原理如下: 路由器以一定的概率p ( 通常是1 2 5 ) ,用其i p 地址或i p 地址的一部分随机标记经过它的数 据包。当发生d o s 攻击时,受害者根据其收到的攻击数据包中的标记信息,重建攻击路 径。使用p p m 算法,路由器负担较小。采用标记边压缩和分片技术大大降低了额外的网 络流量。而且,该方法可以在攻击结束以后对攻击源进行追踪。p p m 对单源d o s 攻击, 有较好的追踪效果。 但是,由于其自身缺陷,p p m 算法无法很好地返回跟踪d d o s 攻击。首先,由于路 由器以概率p 随机标记数据包,就给攻击者以可乘之机,将伪造的标记信息写入攻击数 据包的报头中( 一般是i d e n t i f i e r 字段) ,只要该数据包一直不被其经过的路由器标记,直 至日标主机,就能在攻击路径中伪造一条边路径,阻止受害者跟踪真正的攻击源。其次, 为了节省存储空间。减小网络负担,p p m 采用了边标记压缩和分片存储技术。但是,分 片存储可能导致受害者将本不属于同一数据包的分片组合在一起,生成错误的边路径。 3 3 6 输入调试法 多数路由器都具有调试功能,允许管理员查看转发包的信息,如i p 地址、端口等。 当发生d o s 攻击时,网络管理员根据攻击报文的特征,在被攻击网络的边界路由器上 调试、跟踪网络报文,查找出攻击报文的输入接口,再调试、跟踪与此接口直接相连的 路由器,依此类推,直至0 找到攻击的源头。为了能够提高分析的效率,s t o n e 等人开发 了一个工具c e n t e r t r a c k 【3 2 l ,它通过改变路由信息,可以使位于管理域内的路由器将所有 的攻击包转发到一个特定的路由器,从而可以在此路由器上获得攻击路径的信息。 输入调试法只能在同一个管理域内使用 x 中国民用航空学院硕士学位论文 会造成网络拥塞;只能用于d o s 攻击的追踪。而无法适用于d d o s 攻击。 338中继防火墙 防火墙l j 副是用来在私有网络( 可信任网络) 和外部不可信任网络之间安全连接的一个设备或一组设例倦希鲞曙舔 蹩冀菲盟省瓣蹦嚣栉懋筵嚣譬主骑鞫墓铂堑硒:址及菘蔼型瑶塔毽莲珲诗坦巢据鹫,矍捌嚣张琵酯溜雏嚣篓羹间歪断= 州凰毛盈蠢晷;弼瞪渭强型酗g 崩型塑孽l 斋必萤塞霎渤遵簿睁藿! 霎耐;i i ;营璺 波雕掣出穗琢甥囊瓠骡翁哩疆坷婴趸戛髻攫匿蠢委萱墓翦i 瞧唠翘睐浏礤磐这些主 机的。一些安全措施较差的小型站点以及单位中的服务器往往是攻击者的首选目标。这 些主机上的系统或服务程序往往得不到及时更新,从而将系统暴露在攻击者面前。在成 功侵入后,攻击者照例要安装一些特殊的后门程序,以便自己以后可 以轻易进入系统,随着越来越多的主机被侵入,攻击者也就有了更大的舞台。他们可以 通过网络蟪听等蚕食的方法进一步扩充被侵入的主机群。 攻击者所作的第二步是在所侵入的主机上安装攻击软件。这里,攻击软件包括攻击 服务器和攻击执行器。其中攻击服务器仅占总数的很小一部分,一般只有几台到几十台 左右。设置攻击服 步扩充被侵入的主机群。 攻击者所作的第二步是在所侵入的主机上安装攻击软件。这里,攻击软件包括攻击 左右。设置攻击服务器的目的是隔离网络联系,保护攻击者,使其不会在攻击迸行时受 中国民用航空学院硕士学位论文 第四章基于w e b 服务器的d d o s 三层防御机制 在现有的d d o s 防御机制中,很少有专门针对w 曲服务器的,而且很多机制都或多 或少的存在着一定缺陷。根据d d o s 攻击的方式,现有防御机制的不足,以及w 曲服务 器自身的特点并参考t c p i p 的分层结构,本文提出了一种专门针对w 曲服务器的d d o s 防御机制。 4 1t c p i p 分层模型 因为整个防御机制以t c p ,i p 的网络分层结构为基础,在给出具体的防御机制之前, 简单的介绍一下t c p 脾的分层模型。t c p 佃分层模型( t c p i pl a y 雠i n gm o d e l ) 被称作因 特网分层模型( i i l t e m e tl a y e 血gm o d e l ) 、因特网参考模型( i n t c m e tr e f 打c n c em o d e l ) 。图 4 1 表示了t c p i p 分层模型的四层。 广_ 1 广广 广_ 1 1 _ r _ r _ r t t i ld fwfihigtisul i iil nii i hltitio l elrimisi 其i 第四层,应用层 snoipitplcltie iii g l i ii p i hini i pin i lje sieie i ei 它i iiri| riti ii ti i 1 _ jl 1 j l j l l i i j j j j - j 广 广_ r l 第三层,传输层il tcp i udp i l jl 。j l 、_ j 广 广1 厂 ll ic m pl i 第二层,网络层ll l 一 l ii ip j 1 。,_ j i 。,_ j r 广_ r i 第一层,网络接口il arp r a r p l其它i t ,_ jl j l _ j 图4 1 t c m p 分层模型 t c p i p 协议被组织成四个概念层,其中有三层对应于i s o 参考模型中的相应层。 t c p n p 协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统 的功能,必须与许多其他的协议协同工作。 t c p 佃分层模型的四个协议层分别完成以下的功能: 第一层网络接口层 网络接口层包括用于协作i p 数据在已有网络介质上传输的协议。实际上t c p 肿标准 并不定义与i s o 数据链路层和物理层相对应的功能。相反,它定义像地址解析协议 ( a d d r e s sr 船o l u t i o np r o t o c o l ,触冲) 这样的协议,提供t c m p 协议的数据结构和实际物理 中国民用航空学院硕士学位论文 硬件之间的接口。 第二层网络层 网络层对应于o s i 七层参考模型的网络层。本层包含i p 协议、p 协议( r o u t i l l g i n f 0 珊a t i o np r 0 1 0 c o l ,路由信息协议) ,负责数据的包装、寻址和路由。同时还包含网间 控制报文协议( i n t e m c tc o l 心o lm e s s a g ep m t o c o l ,i c m p ) 用来提供网络诊断信息。 第三层传输层 传输层对应于o s i 七层参考模型的传输层,它提供两种端到端的通信服务。其中t c p 协议( ,r r a i l 轼n i s s i o nc o n 拄o lp r o t o c 0 1 ) 提供可靠的数据流运输服务,u 协议( u s ed a t a 擘锄 p r o t o c 0 1 ) 提供不可靠的用户数据报服务。 第四层应用层 应用层对应于o s i 七层参考模型的应用层和表达层。因特网的应用层协议包括 f i n g e r 、h o i s 、f t p ( 文件传输协议) 、h t t p ( 超文本传输协议) 、t e l e 联远程终端协议) 、 s m t p ( 简单邮件传送协议) 、瓜c ( 因特网中继会话) 、n n r p ( 网络新闻传输协议) 等。 4 2 基于w e b 服务器的d d o s 三层防御机制 根据d d o s 攻击的方式,现有防御机制的不足,w 曲服务器的特点以及t c p i p 的分 层结构:提出了基于w 曲服务器的d d o s 攻击三层防御机制( 图4 2 ) :具体就是基于网络 层的防御,基于传输层的防御以及基于应用层的防御。在网络层采用了s h c f 技术滤出 大量的非法流量,保证尽可能多的合法用户通过;在传输层采用了s y nc o o b ef i r e w a l l 技 术滤出网络层未过滤掉的非法流量;在应用层针对采用合法i p 进行的攻击,采用了流量 限制策略,最大限度的减低攻击的影响。三层协同工作,通过互补的原则来保证w 曲服 务器在d d o s 攻击下丢弃非法用户的流量,缓解攻击的影响,可以持续的为合法用户提 供服务。 图4 - 2d i ) 0 s 三层防御机制 2 8 混合流量 正常流量 中国民用航空学院硕士学位论文 4 3 基于网络层的防御 基于网络层的防御,其主要目标是在保证合法的流量尽可能完全的通过本层的前提 下,而非法流量尽可能少的通过。这里,我们采用了s h c f 算法,选取i p 地址的前2 4 位 地址前缀。在最后判定的时候,也没有进行严格的跳数匹配,只要得到的跳数与表中的 跳数之差小于等于2 ,我们就认为该数据包为合法的。这样做的目的就是保证尽可能多 的合法用户通过。 s h c f 算法主要应用在网络层防御上,主要是根据历史i p 地址纪录以及对应i p 地址的 t t l 字段,在d d o s 攻击发生过程中通过相应方法判断出非法流量并将其过滤掉,本方 法因为是三层防御机制中的第一层,所以要尽可能的保证合法流量的最大限度的通过, 可以允许一部分非法流量通过,进而对通过的非法流量在第二层和第三层进行进一步的 过滤,三层防御协同工作,保证了w 曲服务器可以持续的为合法用户提供服务。 4 3 1s h c f 算法的理论基础 s h c f 算法主要是基于历史i p 地址和对应的跳数,因此我们从i p 地址和跳数两个方面 阐述算法的理论基础。 所谓的历史i p 地址,指的是所有访问过w 曲服务器的i p 地址。w 曲服务器的日志模 块会纪录所有访问过自身的全部的i p 地址。至今为止,已经提出了使用历史i p 地址进行 防御d d o s 攻击的方法,如基于历史i p 的d d o s 防御算法h i p 。该方法预先建立的一个历 史i p 地址库i a d ( i pa d d r e s sd 啦出s e ) ,通过与i a d 中的i p 地址进行比较来决定流量的合法 性,也就是说通过i p 地址的比较过滤掉伪造的源i p 地址,从而缓解了d d o s 的攻击。 j a e y e o nj 1 l i l g 等i ”】通过研究证实,在对一个w 曲服务器进行访问的过程中,其访问的用 户是相对稳定的。在一次访问中,有8 2 9 的i p 地址是曾经访问过该w 曲服务器的。同时 文章中也给出了在一次红色代码攻击过程中,只有o 6 1 4 的i p 地址在以前出现过。通 过对m a 、1 工作组采集的数据,我们统计了得出表4 1 的结果。表明了对一个w 曲站点, 访问用户具有相对的稳定性。 表4 1m a w i 采集数据的历史i p 统计 日期百分率 2 0 0 5 年l o 月0 1 日 8 8 9 2 0 0 5 年l o 月0 2 日 8 9 2 2 0 0 5 年1 0 月0 3 日 9 0 3 2 0 0 5 年1 0 月0 4 日8 9 9 2 0 0 5 年1 0 月0 5 日 9 0 8 2 0 0 5 年1 0 月0 6 日 8 9 7 中国民用航空学院硕士学位论文 在口数据格式中( 图4 3 ) ,有一个生存时间t t l ( t i m et ol i n m m e ) 字段,这个字段表示 数据包在网络上的生存时间。t t l 值由源主机设置和决定( 通常为3 2 或6 4 ) ,一旦经过一 个处理该数据包的路由器。它的值就减去1 。当该字段的值为o 时,数据包就被丢弃。而 跳数则指的是数据包到达目的主机时的r r r l 值和源主机的初始1 凡值之差。由此可知, 跳数的值是由数据包经过的路由器数目唯一决定的,是不可能伪造的,所以检查到达数 据包的t t l 字段,通过目的主机的r r l 值就可以推断源主机的r r l 值,进而得到了该数 据包的从源主机到目的主机之间的跳数。根据i p 地址及对应的跳数就可以区分开合法流 量与非法流量,进而抵御了d d o s 的攻击。 4 位版本4 位首部长度8 位服务类型( t 0 s )1 6 位总长度( 字节) 1 6 位标识3 位标忐1 3 位片偏移 8 位生存时间( t t l 08 位协议1 啦曾部校验和 3 2 位源i p 地址 3 2 位目的 p 地址 3 2 位选项( 若有) 数制 图4 - 3 i p 首部格式 4 3 2s h c f 算法的跳数计算和检测规则 因为跳数信息并不是直接的反应在i p 首部之中,因此要计算出正确的跳数,主要取 决于通过到达目标主机的”r l 字段得到正确的源主机t t l 字段。t t l 是i p 首部中的一个 8 b i t 字段,主要用来表示每个数据包在网络中的生存时间。每经过一个路由器,其数据 包中的t 1 1 值就减少l ,用源主机中的初始t t l 值减去到达目标主机数据包中的最终t t l 值就是该数据包的跳数值。跳数的计算入下式: 。= z 一0( 1 ) 上式中皿表示跳数,互表示初始t 1 l 值,0 表示最终的r r l 值。 对于跳数计算来说,主要的难点就是在数据包中,我们只能得到最终的t r l 值。如 果所有的操作系统中初始t t l 值都是一样的,那么跳数的计算就变的非常的简单。实际 上,大多数的操作系统的初始t 1 l 值不尽相同。虽然如此,但现代的操作系统中使用的 初始t t l 值基本都限制在集合t = 3 0 ,3 2 ,6 0 ,6 4 ,1 2 8 ,2 5 5 ) 中1 3 6 】。这些值涵盖了m i c r o s o 矗 w i n d o w s ,l i n u x ,各种b s d ,以及许多商用的u n i x 等流行的操作系统。从这个集合中可 以看到,除了 3 0 ,3 2 ) , 6 0 ,6 4 , 3 2 ,6 0 ) 比较接近以外,其他的”几值之差都比较大。 而在i n t e m e t 中,任意两个主机之间的跳数不超过3 0 【3 7 】1 3 8 】,这一点使我们很容易的就可 3 0 中国民用航空学院硕士学位论文 以通过最终的t t l 值估计出初始的t t l 值,进而得到了源主机与目的主机之间的跳数。 因此,我们使用下式来估计初始的t t l 值: 互= m i n 0 ( 2 ) 例如,当我们得到的最终t t l 值乃为1 1 2 时,由集合t 可知,大于l 的t t l 值只有1 2 8 和2 5 5 ,取两个值之中最小的值,可以得到初始的t t l 值z 为1 2 8 ,所以此时的跳数也就 是日。写i 一0 = 1 2 8 1 1 2 = 1 6 。对于 3 0 ,3 2 ) , 6 0 ,6 4 , 3 2 ,6 0 这三组相近的t t l 值, 我们计算每一种可能的跳数,只要有一种情况匹配,就认为该数据包为合法流量,否则 均看作非法流量。 对于跳数的检测,可以按照以下的流程进行。首先从每个m 数据包中抽取出源i p 地 址和最终的t t l 值0 ,根据最终的订l 值0 用上面的规则得到初始t t l 值z ,这样就可 以得出跳数日。= i 一0 。再根据源1 p 地址查找存在表中的跳数值日,通过比较日。与日, 就可以判断出数据包是否合法。具体的流程如图4 - 4 : 4 4 基于传输层的防御 图4 4 跳数检测流程图 基于传输层的防御,其主要目标是滤除网络层未过滤掉的非法流量。在这一层采用 中国民用航空学院硕士学位论文 在i n t e m e t 上,h ,丌p 通信通常发生在t c p i p 连接之上。缺省端口是8 0 ,但其它的端 口也是可用的。但这并不预示着 r n p 协议在i m e m e t 或其它网络的其它协议之上才能完 成。h t t p 只预示着一个可靠的传输。 以上简要介绍了h r r p 协议的宏观运作方式,下面介绍一下h 1 1 印协议的内部操作过 程。 首墙i 堑r 嘲耕囊盆堡更明军全奶i 篱瓣眢篓及盈铠璺强璺昙舄i 髂臻喜,弱翳j 巧涮 墨瓣醐吁= 瓣醐融鞘;朝髓嫂到琵浒;断她甜坎驰鼬,建堇那骤。 翼i ,l 蓟墨爵珏登别啊= j ( 1 酐酎船蛐酗、 托船掣誊毒暑 匦黝荨晕1 1 哺蓬謇囊荔嚣露采i x ,薛动“管i # 钔;。蓐一癸豁违酾甄棘;酶舔菲醴媸 副漪霸嗣黜研毛二圃币姒彰杉墓琴颂豳羹秘强野鼬摧姐其中流叁稷狍;群附秘翱鳍 醐聪篱始。一苫弄i 臀誊 转业黜醒吩嘲本内核提供的防火墙内核级框架 ,i p v 4 协议栈为了实现对e t 矗l 衙架构 的支持,在i pp a c k e t 在i p v 4 协议栈上的游历路线之中,仔细选择了五个参考点。在这 五个参考点上,各引入了一行对n fh o o k ( ) 宏函数的一个相应的调用。n e t f i l t e r 根据 网络数据的流向,在以下几个参考点瀚子点) 插入处理过程: n fi pp i 也r o u t i n g ,数据包进入路由之前; n fi pf o r 、,数据包转发到另一个网卡; n f 口p o s tr 0 u t i n g ,最后一个钩予点,数据包流出重新进入网络之前: n fi pl o c a li n ,流入本地的数据包; n fi pl 0 c a lo u t ,流出本地的数据包( 本地路由之前) 。 一个数据包通过n e 伍l t c r 框架时,它将经过见图5 4 所示流程。 数据包从左边进入系统,校检i p ,由n fi pp r er o u t i n g 钩子函数进行处理。 然后路由判断,看数据包是转发还是进入本机。如是转发,则进入n fi pp o 刖铲久r d 钩子处理,否则进入n fi pl 0 c a li n 钩子处理,并在处理后传给上层协议。本地产 生的数据包先经过n f i pl o c a l0 u t 钩子处理,再进行路由判断,决定是否发至外 网。所有外发包都要经过n fi pp o s tr d u t i n g 处理,然后再发至外网。 内核模块可以对一个或多个这样的钩子函数进行注册挂接,并在数据包经过这些钩 子函数是被调用。这样模块就可以修改数据包,并向n e 伍l t e r 返回如下值: 中国民用航空学院硕士学位论文 5 2 网卡驱动程序分析 l i u x 网卡驱动程序是l i n u x 操作系统网络应用中的一个重要的组成部分,我们可 以在网卡驱动程序的基础上拦截网络数据包,继而对其进行分析和处理。在系统的实现中,采用了目前广泛使用的网卡r c a l t e k 8 1 3 9 ,将第一层的防御模块加载到该网卡的驱 动程序中,起到了第一层防御的作用。在网卡驱动中加载此模块,使非法流量不能进入 上层,免除了上层对非法流量也进行复杂的处理,提高了数据包的处理效率。 5 2 1 网卡驱动的体系结构 l i n u x 网络驱动程序的体系结构可以划分为四层,从上到酱黼配籀篓妊翼鲤? 耍 鹱塑习时囊巍j 萎堑墓醴翮詈覆援事妻囊萋囊躺州崮i 荔两滚诺椽缡呙连湃嘴曼瑚: s e r v e r 认为后续发来的数据包的序列号值从c 4 + 1 开始,c 是c o o k i e ,c “是t c ps e r v e r 随机 产生的。c 和c 8 几乎不可能相等,也就是说在完成上面的 两个“三次握手”后,如果不进行其他操作,后续从t c pc l i e n t 到t c p server的数据 包都将被认为顺序号不对而被丢掉。一 工一o;eg蠹警;j 种补救方法就是在防火墙本地保存一个值6 , 酣誓奏霪兰聊剥l “螽爱吲吨囊嚣鲞霉彩童魁 6 = i c 一l (3)利用这个差值,在每个数据包经过防火墙时,将其序列号值修改一下,这样,后续 的数据流量可 数据包的c p 列e r v e r 和t c p c l i e m 之间传输了。 次“三次握手”后,t c p 4 5 基于应 用层的防御 基于应用层的防御,其主要目标是抵御使用合法i p 地址进行的攻击。在这一层采用 了流量限制的策略。随着各种d d o s 防御机制的出现,为了避开防御系统或者试图探测 防御系统的漏洞,一些攻击者通过使用合法的i p 地址对w 曲服务器进行攻击。其主要手 段是以合法用户的身份向w 曲服务器发送h r r p 连接请求,来消耗w 曲服务器的资源,最 终导致其他的合法用户无法访问w 曲服务器。之前,我们提出的方法都是针对使用伪造 i p 的,因此在这种情况下,前面的防御方法变得无能为力。 针对攻击者使用合法i p 地址进行攻击的这种情况,通过分析h r r p 协议的运作方式 和w 曲服务器的普通记录格式,我们在这层提出了一种流量限制策略。 4 5 1 肼p 协议的运作方式 h r r p 协议【4 川是基于请求响应模式的。一个客户机与服务器建立连接后,发送一个 请求给服务器,请求方式的格式为,统一资源标识符、协议版本号,后边是m i m e 信息 中国民用航空学院硕士学位论文 在i n t e m e t 上,h ,丌p 通信通常发生在t c p i p 连接之上。缺省端口是8 0 ,但其它的端 口也是可用的。但这并不预示着 r n p 协议在i m e m e t 或其它网络的其它协议之上才能完 成。h t t p 只预示着一个可靠的传输。 以上简要介绍了h r r p 协议的宏观运作方式,下面介绍一下h 1 1 印协议的内部操作过 程。 首墙i 堑r 嘲耕囊盆堡更明军全奶i 篱瓣眢篓及盈铠璺强璺昙舄i 髂臻喜,弱翳j 巧涮 墨瓣醐吁= 瓣醐融鞘;朝髓嫂到琵浒;断她甜坎驰鼬,建堇那骤。 翼i ,l 蓟墨爵珏登别啊= j ( 1 酐酎船蛐酗、 托船掣誊毒暑 匦黝荨晕1 1 哺蓬謇囊荔嚣露采i x ,薛动“管i # 钔;。蓐一癸豁违酾甄棘;酶舔菲醴媸 副漪霸嗣黜研毛二圃币姒彰杉墓琴颂豳羹秘强野鼬摧姐其中流叁稷狍;群附秘翱鳍 醐聪篱始。一苫弄i 臀誊 转业黜醒吩嘲本内核提供的防火墙内核级框架 ,i p v 4 协议栈为了实现对e t 矗l 衙架构 的支持,在i pp a c k e t 在i p v 4 协议栈上的游历路线之中,仔细选择了五个参考点。在这 五个参考点上,各引入了一行对n fh o o k ( ) 宏函数的一个相应的调用。n e t f i l t e r 根据 网络数据的流向,在以下几个参考点瀚子点) 插入处理过程: n fi pp i 也r o u t i n g ,数据包进入路由之前; n fi pf o r 、,数据包转发到另一个网卡; n f 口p o s tr 0 u t i n g ,最后一个钩予点,数据包流出重新进入网络之前: n fi pl o c a li n ,流入本地的数据包; n fi pl 0 c a lo u t ,流出本地的数据包( 本地路由之前) 。 一个数据包通过n e 伍l t c r 框架时,它将经过见图5 4 所示流程。 数据包从左边进入系统,校检i p ,由n fi pp r er o u t i n g 钩子函数进行处理。 然后路由判断,看数据包是转发还是进入本机。如是转发,则进入n fi pp o 刖铲久r d 钩子处理,否则进入n fi pl 0 c a li n 钩子处理,并在处理后传给上层协议。本地产 生的数据包先经过n f i pl o c a l0 u t 钩子处理,再进行路由判断,决定是否发至外 网。所有外发包都要经过n fi pp o s tr d u t i n g 处理,然后再发至外网。 内核模块可以对一个或多个这样的钩子函数进行注册挂接,并在数据包经过这些钩 子函数是被调用。这样模块就可以修改数据包,并向n e 伍l t e r 返回如下值: n fa c c e p t :继续正常的报文处理; n fd r o p :将报文丢弃: n fs t o l e n :由钩子函数处理了该报文,不要再继续传送; n fq u e u e :将报文入队,通常交由用户程序处理; n f 砌强e a t :再次调用该钩子函数。 4 l 中国民用航空学院硕士学位论文 5 3 2n e t f i 茎i i 掣猷蝌别 鬟r 啦i 鋈一! 叫塑翼蔷荔蠢秀 ,;纵夏f 爱掣型黑剥削 剥争b 型;童毫蠹i i 骄烈雌 l ¥浩罩l i i 耋露i 可;型i = 5 妻m 孽j ; 溢摩盘辚崔j ;k 莩薹! i ;i 委! 瞄! i 霎熟;i 宇嚣萋薹嚣i 嚣茎蓄蟹艘l 馑琵鹱薹下,_ il 帮嚣;一牮t 震腥翁;懿剞那鞔秘卦幽鍪匿荔蕈翰i 嚷烫叶漆谊翊增灌灌 诉f 以2 开头) ,或者被重定向了( 以3 开头) ,或者出错了( 以4 开头) , 或者产生了服务器端错误( 以5 开头) 。完整的状态码列表参见h r r ps p e c i f i c a t i o n ( 1 u c 2 6 1 6s e c t i o n1 0 ) a ( 6 ) 23 2 6 这项是返回给客户端的不包括响应头的字节数。如无信息返回,则此项应该是”。 4 5 3流量限制策略 通过对hr r r p 协议运作方式和w 曲服务器普通记录格式的分析可知,进行一次w 曲 交互也是建立在t c p 连接之上,而且从w 曲服务器的记录格式中可以得到很多我们需要 的信息,其中包括:客户端的源i p 地址,该位置存取的次数,第一次存取时间,最后一 次存取时间,平均存取的时间与传输的文件的大小。另外表4 2 给出了一次w 曲交互过程 中客户端发送的数据包个数。 表4 2一次w 曲交互中客户端发送的数据包个数 访问网站访问内容 中国民用航空学院硕士学位论文 s k _ b u 圩结构体 它是l i m 内核处理网络数据包所用的缓冲区。数据包从网卡接收到后,被散到此 缓冲区中并传到协议堆栈。 ( 2 ) n e t f i l t e r 原理 数据包都要经过n f h 0 0 k 宏处理。n f h 0 0 k 宏是这样的: 捍d c f i n en f _ h o o k ( p h o o k ,s k b ,i n d e v ,o u t d e v o k 如) ( 1 i s t 呐( & n h o o k s 【0 f ) 】) 【o l ( ) 】) ? ( 0 k 丘1 ) ( s k _ b ) :n f _ h o o k - s l o w f ) ,o k ) ,( s k b ) ,i n d e v ) ,( o u t d e v ) ,( o k 矗1 ) ) ) 使用n e t f i l t e r 的用户首先需要将自己的处理函数在n fh 0 0 k s 链表数组上注册,即把 相应n fh o o ko p s 结构插入到i l fh o o k s 链表中。 然后n f _ - h o o k 宏根据n - h o o k s 链表二维数组的p f 、h o o k 值找到相应链表,如果 链表为空则调用o k 血指针所指函数处理s k b 指针所指数据包,否则调用n fh o o ks l a w ( ) 函数处理此数据包。n f - h o o k _ ;l o w ( ) 函数又调用n j t e r a i e ( ) 函数遍历此链表。n f _ i t e r a t 文) 遍历过程中,根据链表各元素( n - h o o k r o p s 结构体) 所含处理函数指针对s k b 所指数据包 进行处理,并返回处理结果。n - h o o k s l o 州) 函数根据处理结果,选择对数据包接收还 是丢弃。 n e t f i i t e r 上的钩子函数都将去执行一个重要函数i p td 0t a b l e ( ) 函数。此函数的几个 输入参数解释如下: s m l c ts kb u f r “p s k b :传入的待处理网络报; 吼s i 驴e di n th o o k :处理此网络报的钩子点; s t r l l c ti p tt a b l e t a b l e :用户定义的规则表。 i p td ot a b l e ( ) 函数就是根据传入的规则表来处理网络数据包。此函数前半部分主要 是从传入的待处理网络协议包中取出相应的字段,并将其整理成和新定义的数据结构。 首先取出如下数据:i p 头、对应协议地址、数据长度、输入输出设备、分片偏移量、规 则表的入口指针、相应钩子点i p t _ e i n r y 入口指针及下溢指针。然后调用函数 j p _ p a c k e c _ m a t c h ( ) 。根据待处理的网络协议包的i p 头、输入输出设备、分片偏移量与规 则所定义的i p 头信息进行匹配。匹配规则完成后,返回有标准目标和非标准目标。非 标准目标的处理通过函数指针t 一 u k e m e l t a r g e t 一 乜曜e t ( ) 调用相应处理函数进行。 5

温馨提示

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

评论

0/150

提交评论