计算机应用技术 硕士论文-基于linux防御拒绝服务系统的研究与实现.pdf_第1页
计算机应用技术 硕士论文-基于linux防御拒绝服务系统的研究与实现.pdf_第2页
计算机应用技术 硕士论文-基于linux防御拒绝服务系统的研究与实现.pdf_第3页
计算机应用技术 硕士论文-基于linux防御拒绝服务系统的研究与实现.pdf_第4页
计算机应用技术 硕士论文-基于linux防御拒绝服务系统的研究与实现.pdf_第5页
免费预览已结束,剩余61页可下载查看

计算机应用技术 硕士论文-基于linux防御拒绝服务系统的研究与实现.pdf.pdf 免费下载

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

文档简介

天津大学硕士学位论文 基于基于linux防御拒绝服务系统的研究与实现防御拒绝服务系统的研究与实现 research and implemention of system for protecting from denial of service attacks based on linux 学科专业:计算机应用技术 研 究 生:刘亚光 指导教师:张连芳 教授 天津大学电子信息工程学院 二零零五年十二月 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果, 也不包含为获得 天津大学天津大学 或其他教育机构的学位或证 书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名: 签字日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解 天津大学天津大学 有关保留、使用学位论文的规定。 特授权 天津大学天津大学 可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 (保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 导师签名: 签字日期: 年 月 日 签字日期: 年 月 日 摘要 摘要 防火墙主动防御技术体系作为网络安全领域的一个重要分支, 越来越受到业 界关注。目前,基于给予各种操作系统的防火墙大多采用被动防御技术,如特征 匹配、手动更新、流量控制、访问控制等。但是它们在抵御拒绝服务攻击方面, 有太多的不足之处。针对于此,本文进行了这方面的研究提出了基于 linux 主动 防御拒绝服务系统。 本文首先介绍了网络安全的基础知识及 tcp/ip 协议的相关问题,然后,深 入研究了 linux2.6 内核,提炼出重要数据结构、数据处理流程,掌握 linux 内 核框架的实现机制。研究了 syn flood 攻击原理,分析当前的防护拒绝服务攻击 算法不足之处,在此基础上,设计并实现了一种基于 linux 主动防御拒绝服务系 统。该系统在数据链路层分析数据帧,在系统底层通过转向代理握手的方式实现 中继防火墙代理服务程序的功能,并且通过流量检测机制启动转向代理握手模 块。一方面因为转向代理握手工作在操作系统的网络入口处,减少了系统消耗, 提高了工作效率,提高了受到拒绝服务攻击时为正常用户提供服务的能力;另一 方面,在没有受到攻击时,不必启动转向代理模块,从而避免了正常网络情况下 代理服务程序引起的 tcp 连接的延迟。 最后,在真实网络环境下进行了攻击测试,试验结果表明,基于 linux 主动 防御服务攻击系统达到了主动防御的效果,可以有效的抵御 ddos 攻击。 关键词:关键词: 主动防御系统,linux 网络安全,拒绝服务,网络安全,tcp/ip abstract as an important branch of network security, initiative defense firewall technologies attract more and more attention. at present, there are many types of firewall based on kinds of operation systems, which take on passive defense technologies, such as character matching, manual updating, flow control, access control, and so on. but they have many drawbacks to protect denial of service attack. so, in this thesis we introduce a system for initiatively protecting from denial of service attacks based on linux. at first, we introduces essential knowledge about network security and problems about tcp/ip, then analyzes linux 2.6 kernel, abstract important data structure and data stream, and introduces implement functions of linux kernel. we study the technique of syn flood attacks, and analyze the drawbacks of algorithms at present. based on these, we design and implement a bottom system for initiatively protecting from denial of service attacks based on linux. in the system we implement the proxy handshake function of agent service program in relay firewall through a handshake diversion module, which starts up along with the flow detecting function. on one hand the handshake diversion module work at the network entry part in operation system so that it reduces the consumption of system resources and increase work efficiency; on the other hand, it does not start up the handshake diversion module without attacks, as a result it avoid the time delay arose by agent service program. finally, we tests on this defense system in real network entironment, the test result show the system we implement can meet the requirement and protect against denial of service attacks effectively. key words:initiatively defense system,linux,denial of service, network security,tcp/ip 目目 录 录 第一章 绪论1 1.1 问题的提出 1 1.2 研究背景 1 1.3 研究工作 2 1.4 论文结构 4 第二章 网络安全与tcp/ip 6 2.1 网络安全 6 2.1.1 网络安全的定义 .6 2.1.2 网络安全特征 .7 2.1.3 网络安全的威胁 .7 2.2 tcp/ip协议及协议安全性8 2.2.1 tcp/ip基本原理8 2.2.2 tcp的连接的建立11 2.2.3 tcp/ip协议的安全缺陷15 2.2.4 对tcp/ip协议的攻击16 2.3 小结.17 第三章 linux内核防火墙分析.18 3.1 防火墙综述 18 3.1.1 防火墙的概念 .18 3.1.2 防火墙的功能 .18 3.1.3 防火墙的分类 .19 3.1.4 防火墙体系结构 .19 3.1.5 防火墙主要技术 .20 3.2 linux内核防火墙.21 3.2.1 什么是netfilter.21 3.2.2 netfilter的总体结构.22 3.2.3 netfilter原理分析.23 3.2.4 netfilter防火墙流程结构.25 3.2.5 什么是iptables.25 3.2.6 iptables与netfilter的关系 26 3.2.7 iptables关键数据结构.26 3.2.8 iptables命令.28 3.3 小结.30 第四章 主动防御拒绝服务系统的设计与实现.31 4.1 基于linux 2.6 内核的透明防火墙31 4.1.1 透明防火墙 .31 4.1.2 linux2.6 内核31 4.1.3 桥模式的建立 32 4.2 防御syn 洪水攻击模块 34 4.2.1 syn洪水攻击原理 .34 4.2.2 syn洪水攻击解决方案36 4.2.3 防御syn洪水攻击模块实现42 4.3 小结48 第五章 系统性能测试 49 5.1 测试用例说明 49 5.1.1 测试目标 .49 5.1.2 测试环境 .50 5.2 测试过程 50 5.2.1 系统抵御能力测试 .50 5.2.2 系统性能测试 .51 5.3 测试结果 54 第 6 章 结论56 参考文献57 发表论文和参加科研情况说明 59 致 谢60 第一章 绪论 第一章 绪论 第一章 绪论 1.1 问题的提出 随着人类社会生活对 internet 需求的日益增长,网络安全逐渐成为 internet 及各项网络服务和应用进一步发展的关键问题, 特别是 1993 年以后 internet 开始 商用化, 通过网络进行的各种电子政务、 商务业务日益增多, 加之 internet/intranet 技术日趋成熟,很多政府组织和企业都建立了自己的内部网络并将之与 internet 连接。 上述电子政务应用和企业网络中的商业秘密均成为攻击者的目标。 据统计, 目前网络攻击手段有数千种之多,使网络安全问题变得极其严峻,据美国商业杂 志信息周刊公布的一项调查报告称,黑客攻击和病毒等安全问题在 2000 年 造成了上万亿美元的经济损失,在全球范围内每数秒钟就发生一起网络攻击事 件。 随着 internet 的发展,网络安全技术也在与网络攻击的对抗中不断发展。从 总体上看,经历了从静态到动态、从被动防范到主动防范的发展过程,防范技术 分为如下几种:防火墙技术,数据加密技术,身份认证或认证技术。 本文详细分析并深入研究了网络安全技术的现状和黑客攻击的原理方法, 分 析当今主流网络层防火墙的技术实现模式,针对执行效率低防护效果有限等特 点,我们提出了防火墙的主动防御系统,该系统将黑客攻击防范在最底层,从网 络入口处解决了黑客攻击,实现了高效的新一代主动防御系统,解决了分布式拒 绝服务攻击、拒绝服务攻击攻击问题,从中提出了一套自己研究的算法经过测试 确实达到主动防御拒绝服务攻击的效果。 1.2 研究背景 2000 年网络上发生了大量的ddos(distributed denial of service)攻击事件, 比如:2000 年 2 月份、yahoo, ebay等大型网站遭到ddos攻击,yahoo这样仅次 于aol的第二大搜索引擎站点,注册用户 1 亿个,平均日浏览页次 4.65 亿,月 访问量 4200 万次的大网站,在ddos入侵面前瘫痪三个多个小时1 。 ddos2是英文distributed denial of service的缩写,意即“分布式拒绝服务” , 那么什么又是拒绝服务(denial of service)?可以这么理解,凡是能导致合法用 户不能够访问正常网络服务的行为都算是拒绝服务攻击。 也就是说拒绝服务攻击 1 第一章 绪论 的目的非常明确,就是要阻止合法用户对正常网络资源的访问,从而达成攻击者 不可告人的目的。虽然同样是拒绝服务攻击,但是ddos和dos3还是有所不同, ddos的攻击策略侧重于通过很多“傀儡主机” (被攻击者入侵过或可间接利用的 主机)向受害主机发送大量看似合法的网络包,从而造成网络阻塞或服务器资源 耗尽而导致拒绝服务,分布式拒绝服务攻击一旦被实施,攻击网络包就会犹如洪 水般涌向受害主机,从而把合法用户的网络包淹没,导致合法用户无法正常访问 服务器的网络资源,因此,分布式拒绝服务攻击又被称之为“洪水式攻击” 。常 见的ddos攻击手段4有syn flood、ack flood、udp flood、icmp flood、tcp flood、connections flood、script flood、proxy flood等,其中最典型也是最难防 御的分布式拒绝服务攻击是syn flood攻击,而其它几种攻击,攻击原理简单, 容易被防范,基本被解决,本文所提的ddos攻击指的就是syn flood攻击。而 dos则侧重于通过对主机特定漏洞的利用攻击导致网络栈失效、系统崩溃、主机 死机而无法提供正常的网络服务功能,从而造成拒绝服务,常见的dos攻击手段 5有teardrop、land、jolt、igmp nuker、boink、smurf、bonk、oob等。就这 两种拒绝服务攻击而言,危害较大的主要是ddos攻击,原因是很难防范,至于 dos攻击,通过给主机服务器打补丁或安装防火墙软件就可以很好地防范。 高速广泛连接的网络给大家带来了方便, 也为 ddos 攻击创造了极为有利的 条件。在低速网络时代时,黑客占领攻击用的傀儡机时,总是会优先考虑离目标 网络距离近的机器,因为经过路由器的跳数越少,效果越好。而现在电信骨干节 点之间的连接都是以 g 为级别的,大城市之间更可以达到 2.5g 的连接,这使得 攻击可以从更远的地方或者其他城市发起, 攻击者的傀儡机位置可以分布在更大 的范围,选择起来更灵活了。 随着internet互联网络带宽的增加和多种dos , ddos黑客工具的不断发布, ddos 拒绝服务攻击的实施越来越容易,ddos 攻击事件正在成上升趋势。出于 政治目的、 商业竞争、 打击报复和网络敲诈等多种因素, 导致很多政府网站、 isp 提供商、idc 托管机房、商业站点、游戏服务器、聊天网络等网络服务商长期以 来一直被 ddos 攻击所困扰, 随之而来的是数据库无法正常使用服务器被入侵机 密资料丢失、客户投诉、同虚拟主机用户受牵连、法律纠纷、商业损失等一系列 问题,因此,解决 ddos 攻击问题成为网络安全界必须考虑的头等大事。 1.3 研究工作 迄今为止,在网络攻击与网络安全防护的对抗过程中,网络攻击仍占据了上 风。 这其中的一个主要原因就是: 现在的网络安全防护产品基本上都是被动防护, 2 第一章 绪论 是在遭受攻击之后才发现问题,然后有针对性地解决问题,提高网络的安全防护 水平,而后茫然地等待下一次攻击的到来。也就是说,目前的网络安全防御行为 是一种被动式的反应行为。 被动防御5指的是在安全威胁发生或者到达目标系统后,安全防范系统对其 进行检查,进行事后的响应,如目前安全市场上的大部分的ids产品和桌面级防 病毒产品。以ids产品为例, “被动”的入侵检测系统只能“听取”流量,而不 能在适当时通过丢弃、修改、指引、延迟数据包或者拒绝它们自己的数据包进入 网络来控制流量。由于不能控制是否允许攻击到达其目标。因此,被动系统实际 上只能用于检测攻击而不能防止攻击。 主动防御技术6是指当网络安全威胁发生或者到达目标系统之前,安全防范 系统能够及时的检测,并且做出自动的防御,无需任何手动干预,即可获得安全 的防护。与被动防御相比,主动防御的好处在于可以保证安全威胁无法到达受保 护的网络,无法真正的起到破坏作用。从技术角度来说,目前对主动防御系统的 要求主要是防御的准确性和及时性。 准确性指的是主动防御系统只能阻断有安全 威胁的流量,对于正常的通讯不能影响;及时性指的是主动防御系统必须跟踪和 分析安全威胁,及时地作出阻挡。 本文提出的主动防御系统基于 ddos 攻击检测与防护作为一种积极主动的 安全防护技术,提供了对子网内部、外部和误操作产生的 ddos 的实时防护,在 网络及系统的正常服务受到危害之前拦截和防护。 它区别于传统基于主机的被动 式安全措施,比如特征匹配、手动更新、流量控制、访问控制等。结合了基于主 机和基于网络的入侵检测技术, 可以主动实时地检测非法使用、 误用、 恶意攻击, 并且对子网内部和外部的攻击均能及时反应。 现在主流的基于linux防火墙系统多采用网络层netfilter的构架进行编写的, 经测试, 基于网络层防护的防御系统在受到拒绝服务攻击时其系统资源消耗率为 以上,攻击强度大的情况甚至引起系统瘫痪,从而引起整个网络瘫痪,因 此无法适应新时期下的网络安全状态,这说明,网络层的防御消耗防火墙系统本 身资源大,处理攻击能力弱,本文通过分析传统防火墙的这一弱点,以 linux 为 开发环境,在数据链路层,基于独立内核模块开发了一个基于 linux 防御拒绝服 务系统,加载位置是所有数据包的必经之路,从网卡驱动过后,就经过该防御模 块,经过包过滤分析模块后只将正常的网络数据包提交给网络层,从而减少了 cpu 的负载,大大增加了防火墙的抗攻击性与处理能力。 本课题的研究成果共分如下结构: 基于桥接口的包过滤钩子框架, syn/ack 转向代理握手模块,以及网络层包过滤模块。 3 第一章 绪论 首先,修改 linux 内核源代码,在 linux 内核网络底层的桥接口处添加一个 包过滤钩子框架,重新编译内核后,可以通过该包过滤钩子把主动防御 ddos 攻 击的代码制作成独立的模块,实现透明主动防御型防护墙,从而达到主动防御 ddos 攻击的效果。采用基于桥接口的包过滤钩子框架,一方面,在每次添加或 修改防护算法时,避免了每次都要重新编译内核,只需要重新编译模块;另一方 面,因为模块工作在桥模块处理数据帧之前,从而减少了系统消耗,提高了防护 算法的工作效率。 然后,基于桥接口处的包过滤钩子框架做了一个转向代理握手模块,在内核 底层实现了主动防御黑客攻击, 解决了当今网络安全领域最难防御的分布式拒绝 服务攻击。模块随系统网络驱动程序的启动而启动,在数据包进入内核网络层之 前开始着手分析过滤所有数据包,识别出哪个是攻击包哪个是合法数据包,并且 阻止攻击包进入网络, 禁止攻击包在网络中传输, 大大降低了防御系统资源消耗, 从而提高了网络资源的利用率,达到百兆环境下纯线速的网络转发效果。 为解决拒绝服务攻击,作者研究了syn flood 7攻击原理,分析传统的三种 抵御算法(网关防火墙法、中继防火墙法和syn cookies)的不足,提出在数据链 路层分析数据帧,通过转向代理握手的方式实现中继防火墙代理服务程序的功 能,并且通过流量检测机制,启动转向代理握手。一方面因为转向代理握手工作 在操作系统的网络入口处,减少了系统消耗,提高了工作效率,提高了受到拒绝 服务攻击时为正常用户提供服务的能力;另一方面,在没有受到syn flood攻击 时,不再经过代理服务程序,从而避免了代理服务程序引起的tcp连接的延迟。 网络层包过滤模块,是通过网络层netfilter框架提供的iptables编写脚本 实现的,可以设置端口过滤,从而拒绝任何从因特网到非公共服务(如 squid 代 理缓存或 samba 服务器)的连接;也可以通过封锁某些ip地址,禁止某些非法 用户访问服务器。 1.4 论文结构 第一章 为绪论,主要介绍选题背景及意义,论文的主要结构和内容安排。 第二章 对网络安全与 tcp/ip 数据传输协议作了简单的介绍。 第三章 对防火墙技术给予阐述,介绍防火墙背景知识;然后深入研究 linux 内 核防火墙,研究其实现机制。 第四章 主要介绍了主动防御拒绝服务系统的设计与实现, 介绍了透明模式下包 过滤钩子框架的设计与实现方法,并分析了对 syn flood 攻击传统防护 4 第一章 绪论 算法的不足,提出了转向代理的概念与实现方法,其防护代码采用独立 模块的方式实现在数据链路层。 第五章 对主动防御拒绝服务系统进行真实网络环境的测试。 第六章 给出了全文的研究结论。 5 第二章 网络安全与 tcp/ip 第二章 网络安全与第二章 网络安全与tcp/ip 网络的快速发展使得信息交流的速度和方式发生了巨大的变化, 人们通过网 络可以享受到便捷服务和快乐。但是,目前的网络存在着很多不安因素。比如, 黑客入侵、信息泄漏等,但同时也带来了许多负面的影响,我们在尽情享受互联 网所带来的便利的同时,必须要清醒地认识到,网络存在着许多漏洞,网络安全 存在着许多威胁。计算机网络面临的各种威胁和攻击很多,所以需要我们认真研 究和分析问题,掌握网络安全技术,从而找出解决问题的方法,从而保护网络安 全。 2.1 网络安全 2.1.1 网络安全的定义 网络安全8从其基本性质上讲,就是网络上的信息安全。广义上说,凡是涉 及到网络上信息的保密性、完整性、可用性、真实性和可控制性的相关技术和理 论,都是网络安全所要研究的领域。 我们可以把网络安全通用定义为: 网络安全是指网络系统的硬件、软件以及其系统中的数据受到保护,不受偶 然的或者恶意的原因而遭到破坏、更改或者泄漏,系统持续可靠正常地运行,网 络的服务不中断。 它的具体含义则会随着“角度”的变化而变化。 从用户(个人、企业等)的角度来说,他们希望涉及个人隐私或商业利益的 信息在网络上传输时受到机密性、完整性和真实性的保护,避免其他人或对手利 用窃听、冒充、篡改、抵赖等手段侵犯用户的利益和隐私,同时也避免其它用户 的非授权访问和破坏。 从网络运行和管理者的角度说,他们希望对本地网络信息的访问、读写等操 作受到保护和控制,避免出现“陷阱”9、病毒、非法存取、拒绝服务和网络资 源非法占用和非法控制等威胁,制止和防御网络黑客的攻击。 对安全保密部门来说,他们希望对非法的、有害的或涉及国家机密的信息进 行过滤和防堵, 避免其通过网络泄露, 避免由于这类信息的泄密对社会产生危害, 对国家造成巨大的经济损失。 6 第二章 网络安全与 tcp/ip 从社会教育和意识形态角度来讲,网络上不健康的内容,会对社会的稳定和 人类的发展造成阻碍,必须对其进行控制。 2.1.2 网络安全特征 网络安全应具备以下四方面的特征: 保密性:信息不泄漏给非授权用户、实体或过程,或供其利用的特性。 完整性:数据未经授权不能进行改变的特性。即信息在存储或传输过程又保 持不被修改,不被破坏和丢失的特性。 可用性:可被授权实体访问并按需求使用的特性。即当需要时能否存取所需 的信息。例如网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对 可用性的攻击。 可控性:对信息的传播及内容具有控制能力。 2.1.3 网络安全的威胁 网络安全的威胁8可能来自许多方面, 如认为的恶意攻击、 网络的安全缺陷, 软件的漏洞和网络系统结构的隐患等等。 一旦网络上传输的信息遭到窃听, 截取, 篡改或毁坏,将给个人、企业甚至国家带来不可估量的损失。 在 rfc1244 中,指出了与网络的连通性相关的三种不同类型的威胁: 非授权访问(unauthorized access)非授权的人通过冒充合法用户或者 利用黑客技术侵入主机系统。 信息泄漏 (disclosure of information) 造成将由价值和高度机密的信息 泄漏给无权访问该信息的人的所有问题。 拒绝服务(denial of service)使得系统难以或不可能继续执行任务, 无法为合法用户进行服务的所有问题。 评估这些威胁将涉及到受到影响的用户数量和可能被泄漏的信息机密性。 例如,对信息泄漏威胁的评估取决于可能泄密的信息类型。具有严格分类的 信息系统不应该直接 inetrnet,而其他一些如私人信息,政府文件,公司计划或 信用记录等具有一定程度机密性的信息,则不足以禁止系统连接网路,在大多数 情况下,可以利用操作系统自身的文件安全管理机制给他们提供适当的保护。 虽然拒绝服务攻击本身不会引起信息泄漏,但一方面,他会使系统长时间无 7 第二章 网络安全与 tcp/ip 法正常工作和服务,导致网络阻塞和信息严重滞后;另一方面,许多其他类型的 攻击常常使用拒绝服务为一部分攻击手段,特别是那些大型攻击,总是以拒绝服 务攻击为先驱,然后再进一步窃取资料,破坏系统,造成严重的后果。 因此是否能正确评估一个系统可能受到的网络威胁,并及早地制定防范计 划,采取合理的方面策略,是保证一个系统及信息安全性的关键。 2.2 tcp/ip 协议及协议安全性 tcp/ip10是internet的基础, internet的安全性9和tcp/ip的安全性10是分不开 的,讨论网络安全问题,必须讨论tcp/ip的安全问题。本小节主要讨论与本课题 相关的tcp/ip协议内容,以及tcp / ip协议的安全问题和几种常见的网络攻击手 段。 2.2.1 tcp/ip 基本原理 1网络是分层的,每一层分别负责不同的通信功能。 tcp/ip通常被认为是一个四层协议族11, tcp/ip协议族是一组不同的协议组 合在一起构成的协议族。尽管通常称该协议族为tcp/ip,但tcp和ip只是其中的 两种协议而已,如图 2-1 所示。每一层负责不同的功能。 图 2-1tcp/ip 四层模型 分层的概念说起来非常简单,但在实际的应用中非常的重要,在进行网络设 8 第二章 网络安全与 tcp/ip 置和排除故障时对网络层次理解得很透,将对工作有很大的帮助。例如:设置路 由是网络层 ip 协议的事,要查找 mac 地址是链路层 arp 的事,常用的 ping 命 令由 icmp 协议来做的。图 2-2 显示了各层协议的关系。 图 2-2 各层协议关系 2数据发送时自上而下,层层加码;数据接收时自下而上,层层解码12。 当应用程序用 tcp 传送数据时,数据被送入协议栈中,然后逐个通过每一 层直到被当作一串比特流送入网络。 其中每一层对收到的数据都要增加一些首部 信息(有时还要增加尾部信息) ,该过程如图 2-4 所示。tcp 传给 ip 的数据单元 称作 tcp 报文段或简称为 tcp 段。i p 传给网络接口层的数据单元称作 ip 数据 报。通过以太网传输的比特流称作帧(frame)。 数据发送时是按照图 2-3 自上而下,层层加码;数据接收时是自下而上,层 层解码。 9 第二章 网络安全与 tcp/ip 图 2-3 数据发送加码解码图 3逻辑上通讯是在同级完成的 垂直方向的结构层次是当今普遍认可的数据处理的功能流程。 每一层都有与 其相邻层的接口。为了通信,两个系统必须在各层之间传递数据、指令、地址等 信息,通信的逻辑流程与真正的数据流的不同。虽然通信流程垂直通过各层次, 但每一层都在逻辑上能够直接与远程计算机系统的相应层直接通信。 从图 2-4 可以看出,通讯实际上是按垂直方向进行的,但在逻辑上通信是在 同级进行的。 图 2-4 通讯逻辑流程图 10 第二章 网络安全与 tcp/ip 2.2.2 tcp 的连接的建立 tcp是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在 双方之间建立一条连接。建立连接的过程就是三次握手的过程。下面来分析一下 建立一个tcp连接的三次握手过程13。 1)请求端 2 号机发送一个初始序号(seq)给 1 号机。 2)服务器 1 号机收到这个序号后, 将此序号加 1 后的值为作为应答信号 (ack) , 同时随机产生一个初始序号(seq) ,这两个信号同时发回到请求端 2 号机,意 思为: “消息已收到,让我们的数据流以(seq) 初始序号这个数开始。 ” 3)请求端 2 号机收到后将确认序号设置为服务器的初始序号(seq)加 1 为作 为应答信号。 以上三步完成了三次握手,双方建立了一条通道,接下来就可以进行数据传输 了。下面分析 tcp 头信息就可以看出,在握手过程中 tcp 头部的相关字段也发 生了变化。 4)头信息分析 我们利用 sniffer 抓取了一个 tcp 包,如图 2-5 所示,这个数据包包含了三 个头信息:以太网(ethernet)和 ip 和 tcp。 以太网的头信息与第 1、2 行不同的是帧类型为 0800,指明该帧类型为 ip。 图 2-5 头信息分析图 ip 是 tcp/ip 协议族中最为核心的协议。从图 2-2 可以看出所有的 tcp、 udp、icmp 及 igmp 数据都以 ip 数据报格式传输的,有个形象的比喻 ip 协议 就像运货的卡车,将一车车的货物运向目的地。主要的货物就是 tcp 或 udp 分配给它的。需要特别指出的是 ip 提供不可靠、无连接的数据报传送,也就是 说 ip 仅提供最好的传输服务但不保证 ip 数据报能成功地到达目的地。 看到这你 会不会担心你的 e_mail 会不会送到朋友那, 其实不用担心, 上文提过保证数据 正确到达目的地是 tcp 的工作,稍后我们将详细解释。 11 第二章 网络安全与 tcp/ip 图 2-6ip 协议头信息 图 2-5 中所宣布分 45007101 为 ip 的头信息。这些数是十六进制表示的。 一个数占 4 位,例如:4 的二进制是 0100 4 位版本:表示目前的协议版本号,数值是 4 表示版本为 4,因此 ip 有时也 称作 ipv4; 4 位首部长度:头部的是长度,它的单位是 32 位(4 个字节),数值为 5 表示 ip 头部长度为 20 字节。 8 位服务类型(tos):00,这个 8 位字段由 3 位的优先权子字段,现在已经 被忽略,4 位的 tos 子字段以及 1 位的未用字段(现在为 0)构成。4 位的 tos 子字段包含:最小延时、最大吞吐量、最高可靠性以及最小费用构成,这四个 1 位最多只能有一个为 1,本例中都为 0,表示是一般服务。 16 位总长度(字节数):总长度字段是指整个 ip 数据报的长度,以字节为单 位。数值为 00 30,换算为十进制为 48 字节,48 字节=20 字节的 ip 头+28 字节 的 tcp 头,这个数据报只是传送的控制信息,还没有传送真正的数据,所以目 前看到的总长度就是报头的长度。 16 位标识:标识字段唯一地标识主机发送的每一份数据报。通常每发送一 份报文它的值就会加 1, 第 3 行为数值为 30 21, 第 5 行为 30 22, 第 7 行为 30 23。 分片时涉及到标志字段和片偏移字段,本文不讨论这两个字段。 8 位生存时间(ttl) :ttl(time-to-live)生存时间字段设置了数据报可以 经过的最多路由器数。 它指定了数据报的生存时间。 ttl 的初始值由源主机设置, 一旦经过一个处理它的路由器, 它的值就减去 1。 可根据 ttl 值判断服务器是什 么系统和经过的路由器。本例为 80,换算成十进制为 128,windows 操作系 统 ttl 初始值一般为 128,unix 操作系统初始值为 255,本例表示两个机器在 同一网段且操作系统为 windows。 8 位协议:表示协议类型,6 表示传输层是 tcp 协议。 12 第二章 网络安全与 tcp/ip 16 位首部检验和:当收到一份 i p 数据报后,同样对首部中每个 16 位进行 二进制反码的求和。由于接收方在计算过程中包含了发送方首部中的检验和,因 此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全 1。如果结果不是全 1,即检验和错误,那么 ip 就丢弃收到的数据报。但是不生 成差错报文,由上层去发现丢失的数据报并进行重传,32 位源 ip 地址和 32 位目 的 ip 地址:实际这是 ip 协议中核心的部分。 32 位的 ip 地址由一个网络 id 和一个主机 id 组成。 图 2-7tcp 协议头信息 端口号:常说 ftp 占 21 端口、http 占 80 端口、telnet 占 23 端口等, 这里指的端口就是 tcp 或 udp 的端口,端口就像通道两端的门一样,当两机进 行通讯时门必须是打开的。 源端口和目的端口各占16位, 2的16次方等于65536, 这就是每台电脑与其它电脑联系所能开的“门” 。一般作为服务一方每项服务的 端口号是固定的。本例目的端口号为 00 50,换算成十进制为 80,这正是 http 的默认端口,需要指出的是这是 http 的控制端口,数据传送时用另一端口,第 三组的分析能看到这一点。 客户端与服务器联系时随机开一个大于 1024 的端口, 本例为 0428,换算成十进制为 1064。 32 位序号:也称为顺序号(sequence number) ,简写为 seq,从上面三次 握手的分析可以看出,当一方要与另一方联系时就发送一个初始序号给对方,意 思是: “让我们建立联系吧?” ,服务方收到后要发个独立的序号给发送方,意思 是“消息收到,数据流将以这个数开始。 ”由此可看出,tcp 连接完全是双向的, 即双方的数据流可同时传输。在传输过程中双方数据是独立的,因此每个 tcp 连接必须有两个顺序号分别对应不同方向的数据流。 32 位确认序号:也称为应答号(acknowledgment number) ,简写为 ack。 在握手阶段,确认序号将发送方的序号加 1 作为回答,在数据传输阶段,确认序 号将发送方的序号加发送的数据大小作为回答,表示确实收到这些数据。在第三 组的分析中将看到这一过程。 13 第二章 网络安全与 tcp/ip 4 位首部长度: 。这个字段占 4 位,它的单位时 32 位(4 个字节) 。本例值为 7, tcp 的头长度为 28 字节, 等于正常的长度 2 0 字节加上可选项 8 个字节。 tcp 的头长度最长可为 60 字节(二进制 1111 换算为十进制为 15,15*4 字节=60 字 节) 。 6 个标志位。 urg 紧急指针,告诉接收 tcp 模块紧要指针域指着紧要数据 ack 置 1 时表示确认号 (为合法, 为 0 的时候表示数据段不包含确认信息, 确认号被忽略。 psh 置 1 时请求的数据段在接收方得到后就可直接送到应用程序,而不必 等到缓冲区满时才传送。 rst 置 1 时重建连接。如果接收到 rst 位时候,通常发生了某些错误。 syn 置 1 时用来发起一个连接。 fin 置 1 时表示发端完成发送任务。 用来释放连接, 表明发送方已经没有数 据发送了。 tcp 协议的头信息, 这三行是三次握手的过程, 我们看看握手的过程标志位 发生了什么? 请求端 2 号机发送一个初始序号(seq)987694419 给 1 号机。标志位 syn 置为 1。 服务器 1 号机收到这个序号后,将应答信号(ack)和随机产生一个初始序 号(seq)1773195208 发回到请求端 2 号机,因为有应答信号和初始序号,所 以标志位 ack 和 syn 都置为 1。 请求端 2 号机收到 1 号机的信号后,发回信息给 1 号机。标志位 ack 置为 1,其它标志为都为 0。注意此时 syn 值为 0,syn 是标示发起连接的,上两部 连接已经完成。 16 位窗口大小:tcp 的流量控制由连接的每一端通过声明的窗口大小来提 供。窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端正期望 接收的字节。窗口大小是一个 16 字节字段,因而窗口大小最大为 65535 字节。 16 位检验和:检验和覆盖了整个的 tcp 报文段: tcp 首部和 tcp 数据。 这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。 14 第二章 网络安全与 tcp/ip 16 位紧急指针:只有当 u r g 标志置 1 时紧急指针才有效。紧急指针是一 个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。 图 2-8 三次握手整体示意- 2.2.3 tcp/ip 协议的安全缺陷 internet 是基于 tcp/ip 协议族的计算机网络。尽管 tcp/ip 技术获得巨大的 成功,但是也越来越暴露出它再安全上的不足之处。这是由于 tcp/ip 协议在涉 及初期基本没有考虑到安全性的问题。 tcp/ip协议的安全缺陷14主要表现在: 1 tcp/ip 协议数据流采用明文传输。 目前的 tcp/ip 协议主要建立在以太网上,以太网的一个基本特点是:当一 个网络设备发送一个数据包,同网段上的每个网络设备都会收到这个数据包,然 后检查其目的地址来决定接收或是丢弃这个数据包。因此,数据信息很容易被在 线窃听、篡改和伪造。特别是在使用 ftp 和 telnet 时,用户的帐号、口令是明文 传输,所以攻击者可以如 sniffer 程序、snoop 程序、网络分析仪等工具截取含有 用户帐号,口令的数据包,进行攻击。 2 源地之欺骗(source address spoofing)或 ip 欺骗(ip spoofing) 。 tcp/ip 协议采用 ip 地址来作为网络节点的唯一标识, 但是节点的 ip 地址又 不是固定的,是一个公共数据。攻击者可以直接修改自己节点的 ip 地址,然后 将自己伪装成某个可信的节点,冒充它来发动攻击。因此,ip 地址不能被当作 一种可信的认证方法。 3源路由选择欺骗 (source routing spoofing) 。 15 第二章 网络安全与 tcp/ip tcp/ip 协议中,为了测试的目的,ip 数据包设置了一个选项ip source routing,该选项可以直接指明到达节点的路由。攻击者可以利用这个选项进行欺 骗,进行非法连接。攻击者可以冒充某个可信节点的 ip 地址,构造一个通往某 个服务器的直接路径和返回路径, 利用可信用户做为通往服务器的路由中的最后 一站,就可以向服务器发送请求,从而对其进行攻击。tcp/ip 的两个传输协议 tcp/ip 和 udp 中,由于 udp 是面向非连接的,因而没有初始化的连接建立过 程,所以更容易被欺骗。 作为构架 internet 的基础, tcp/ip 协议中存在的安全缺陷直接导致了现今网 络的不安全性。 2.2.4 对 tcp/ip 协议的攻击 利用tcp/ip的安全缺陷而产生的针对tcp/ip协议的攻击15主要有以下三种 形式: 1使目标主机停滞 攻击方有目的性地向攻击目标主机发送一些序列的报文, 这些报文序列能够 使被攻击主机进入只能由用户进程命令触发状态转换的状态下, 然后因为一直等 待这些命令而停止;或者使被攻击主机进入能够接受并处理报文的状态,这时, 攻击者在短时间内向它发出大量的包,使其疲于处理,而最终造成一段时间内无 法响应任何报文。 2冒充合法主机 利用第一种方法使目标主机停滞后,攻击者就可以伪造自己的 ip 地址,然 后冒充停滞的主机的合法身份与其他主机建立连接和通信, 于是可以达到窃取主 机内的信息的目的。 3延迟连接 延迟连接使用原本应当结束的连接无法结束, 从而达到与第一种攻击方法同 样的效果。攻击者利用主机建立连接时的 time_wait 状态达到其目的。首先他 伪造身份请求与主机连接, 当主机返回响应报文(ack),等待三方握手后建立连接 时,攻击者却不回应,而是持续地伪造身份继续请求新的连接,这样,主机将等 待建立的 time_wait 状态下不断打开新的连接, 而最终被这些半开的连接占用 所有的网络资源。 syn flood(洪水)攻击是当前最流行的 dos(拒绝服务攻击)与 ddos(分 16 第二章 网络安全与 tcp/ip 布式拒绝服务攻击)的方式之一,这是一种利用 tcp 协议缺陷,发送大量伪造 的 tcp 连接请求,从而使得被攻击方资源耗尽(cpu 满负荷或内存不足)的攻 击方式。 攻击原理很简单, 因为服务器不会在每次接收到syn请求就立刻同客户端建 立连接,而是为连接请求分配内存空间,建立会话,并放到一个等待队列中。如 果这个等待的队列已经满了,那么,服务器就不在为新的连接分配任何东西,直 接丢弃新的请求。 如果到了这样的地步, 服务器就是拒绝服务了。 syn flood23攻 击就是利用tcp协议缺陷,通过发送大量的半连接请求,耗费cpu和内存资源。 要对 server 实施拒绝服务攻击,实质上的方式就是有两个: 1迫使服务器的缓冲区满,不接收新的请求。 2 使用 ip 欺骗, 迫使服务器把合法用户的连接复位, 影响合法用户的连接。 这就是拒绝服务攻击实施的基本思想。具体实现有这样的方法: 利用服务器的连接缓冲区(backlog queue) ,利用特殊的程序,设置 tcp 的 header,向服务器端不断地成倍发送只有 syn 标志的 tcp 连接请求。当服务器 接收的时候,都认为是没有建立起来的连接请求,于是为这些请求建立会话,排 到缓冲区队列中。 如果你的 syn 请求超过了服务器能容纳的限度,缓冲区队列满,那么服务 器就不再接收新的请求了。 其他合法用户的连接都被拒绝掉。 可以持续你的 syn 请求发送,直到缓冲区中都是只有 syn 标记的请求。 这种攻击, 虽然攻击原理简单, 但防范非常困难, 因为服务器收到的所 syn flood 攻击数据包无真实 ip 地址, 所以传统防火墙很难对其进行有效防范。 2.3 小结 本章主要介绍了网络安全的定义,以及网络安全的特性,根据有关资料将拒 绝服务攻击给予详细的定义, 另外分析了 tcp/ip 的基本原理, 数据通信的流程, 通过 sniffer 抓包分析了数据包的内部结构以及三次握手的方法,然后介绍了 tcp/ip 协议的安全缺陷,以及黑客利用安全缺陷对 tcp/ip 协议的攻击方法, 从而引出本课题需要解决的问题。 17 第三章 linux 内核防火墙分析 第三章 第三章 linux内核防火墙分析 内核防火墙分析 3.1 防火墙综述 3.1.1 防火墙的概念 防火墙16是用来在安全私有网络(可信任网络)和外部不可信任网络之间安 全连接的一个设备或一组设备,作为私有网络和外部网络之间连接的单点存在。 防火墙是设置在可信任的内部网络和不可信任的外部网络之间的一道屏障, 它可 以实施比较广泛的安全策略来控制信息流,防止不可预料的潜在的入侵破坏。 3.1.2 防火墙的功能 从逻辑上说,防火墙是一个分离器,是一个限制器,是一个分析器,建立防 火墙可以达到以下目的17: 1管理进、出网络的访问 防火墙允许网络管理员定义一个中心“扼制点”来防止非法用户进入内部网 络,禁止存在安全脆弱性的服务进出网络,并抗击来自各种路线的攻击。 2保护网络中脆弱的服务 防火墙通过过滤存在安全缺陷的网络服务来降低内部网遭受攻击的威胁, 因

温馨提示

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

评论

0/150

提交评论