1、课 程 名 称: 物联网信息安全管理 设 计 题 目: 基于 TCP合同网络袭击 学院(直属系): 计算机学院 年级/专业/班: 物联网工程 学 生 姓 名: 宋 涌 周礼佟 胡 坤 指 导 教 师: 魏正曦 老 师 完毕日期:.1.12 摘要本课程是物联网工程专业所开设一门重要实践课程,重要规定掌握网络安全原理和技术在实践中应用。本课程设计目是在理论学习基本上,动手实践网络安全有关理论,通过应用所学习知识,来解决某些实际网络安全应用问题。在此基本上,真正理解和掌握网络安全基本原理,具备网络安全面分析和动手能力。在网络攻防实验环境中完毕TCP/IP合同栈中TCP层重点合同袭击实验。涉及TCP
2、RST袭击、TCP会话劫持和TCP SYN Flood袭击。核心字:TCP RST袭击、TCP会话劫持和TCP SYN Flood袭击课题分工 宋 涌:TCP会话劫持,和编写课程设计 胡 坤:TCP RST袭击,和参照资料查询。周礼佟:TCP SYN Flood袭击,和课程设计分工摘要2一引言4二实验原理5三设计过程83.1 TCP RST袭击83.2 TCP会话劫持123.3 TCP SYN Flood袭击22四 总结与体会25参照文献26一引言 源于 Unix 网络合同 TC P/IP随着 Internet飞迅发 展 ,已被越来越多人所使用.然而由于 TCP/IP合同族在设 计时并没有过多
3、考虑网络安全问题 ,黑客事件不断发生 ,使 如电子商务等 Internet应用存在着许多不安全因素 .欲防网 络袭击 ,必应先知其袭击原理 ,才可正的确施安全方略. 下面是网络内部或外部人员惯用几种网络袭击方式: 密码猜测 ( Password Guessing):重要通过穷举办法 来试探被袭击系统密码 ,为下一步袭击做好准备 . 窥探 ( Sniffing):重要通过劫获网络上数据包来获 得被袭击系统认证信息或其他有价值信息. 电子欺骗 ( Spoofing):通过假冒合法顾客身份来进 行网络袭击 ,从而达到掩盖袭击者真实身份 ,嫁祸她人目 . 信息抄袭 ( Information Thef
4、t):这是网络袭击重要 目之一.袭击者通过获得访问被袭击主机允许权而窃取 主机上重要信息 . 让主机回绝服务 (Denial of Service):是网络袭击主 要目之一. 这种袭击使主机或网络不能为合法顾客提供服 务 .例如袭击者可以用 TC P SYN信号沉没办法来实现 这一袭击 . 信息破坏 ( Information Destruction):这也是网络袭击 重要目之一 .通过篡改或毁坏被袭击主机上信息达到 破坏目 . 以上这些袭击重要是运用 TCP /IP合同自身漏洞而对 TCP/IP合同进行袭击实现 ,下面分析了几种对 TC P/IP 袭击实现方式 将来高技术战争是信息网络战,以
5、网络中心信息为主联合伙战正在取代老式平台中心战。TCP/ IP 合同使得世界上不同体系构造计算机网络互连在 一起形成一种全球性广域网络 Internet,实现海、陆、空、天立体战埸信息共享。因而开展 TCP/IP 合同分析 和研究,谋求其簿弱环节,能否攻其一点,而瘫痪一片,即以小投入达到大产出,是有效实行计算机网络 对抗核心。 在以 TCP/IP 为合同通信计算机网络中,普通将 每台计算机称为主机,在 Internet 中每一台计算机可 以访问 Internet 上其他任意一台计算机,好像它们在 一种局域网内用双绞线或同轴电缆直接连接起来同样 (不同之处是速度比局域网慢)。TCP/IP 通信计
6、算机网 络构造如图所示。 图1.1 咱们把计算机网络之间相连设备称为路由器。 各主机之间可以通过数据链连接,也可以通过路由器 间接相连。 TCP/IP 合同使用“包” (packet)这个数据单位来发 送信息,图中用箭头指向描述了从主机 C 向主机 J 发送信息包途径。二实验原理 TCP是在IP网络层之上传播层合同,用于提供port到port面向连接可靠字节流传播。我来用土语解释下上面几种核心字:port到port:IP层只管数据包从一种IP到另一种IP传播,IP层之上TCP层加上端口后,就是面向进程了,每个port都可以相应到顾客进程。可靠:TCP会负责维护事实上子虚乌有连接概念,涉及收包后
7、确认包、丢包后重发等来保证可靠性。由于带宽和不同机器解决能力不同,TCP要能控制流量。字节流:TCP会把应用进程传来字节流数据切割成许各种数据包,在网络上发送。IP包是会失去顺序或者产生重复,TCP合同要能还原到字节流本来面目。TCP(Transmission Control Protocol 传播控制合同)是一种面向连接(连接导向)、可靠、基于IP传播层合同。TCP在IP报文合同号是6。TCP是一种超级麻烦合同,而它又是互联网基本,也是每个程序员必备基本功。一方面来看看OSI七层模型:图2.1 OSI七层模型咱们需要懂得TCP工作在网络OSI七层模型中第四层Transport层,IP在第三层
8、Network层,ARP 在第二层Data Link层;在第二层上数据,咱们把它叫Frame,在第三层上数据叫Packet,第四层数 据叫Segment。 同步,咱们需要简朴懂得,数据从应用层发下来,会在每一层都会加上头部信息,进行 封装,然后再发送到数据接受端。这个基本流程你需要懂得,就是每个数据都会通过数据封装和解封 装过程。 在OSI七层模型中,每一层作用和相应合同如下:图2.2 OSI七层模型中,每一层作用和相应合同 TCP是一种合同,那这个合同是如何定义,它数据格式是什么样子呢?要进行更深层次剖析,就 需要理解,甚至是熟记TCP合同中每个字段含义。图2.3 OSI含义上面就是TCP合
9、同头部格式,由于它太重要了,是理解其他内容基本,下面就将每个字段信息都详 细阐明一下。Source Port和Destination Port:分别占用16位,表达源端标语和目端标语;用于区别主机中不同进程, 而IP地址是用来区别不同主机,源端标语和目端标语配合上IP首部中源IP地址和目IP地址就能唯一 拟定一种TCP连接;Sequence Number:用来标记从TCP发端向TCP收端发送数据字节流,它表达在这个报文段中第一种数据 字节在数据流中序号;重要用来解决网络报乱序问题;Acknowledgment Number:32位确认序列号包括发送确认一端所盼望收到下一种序号,因而,确认序号应
10、 当是上次已成功收到数据字节序号加1。但是,只有当标志位中ACK标志(下面简介)为1时该确认序列号字 段才有效。重要用来解决不丢包问题;Offset:给出首部中32 bit字数目,需要这个值是由于任选字段长度是可变。这个字段占4bit(最多能 表达15个32bit字,即4*15=60个字节首部长度),因而TCP最多有60字节首部。然而,没有任选字段, 正常长度是20字节;TCP Flags:TCP首部中有6个标志比特,它们中各种可同步被设立为1,重要是用于操控TCP状态机,依次 为URG,ACK,PSH,RST,SYN,FIN。每个标志位意思如下:URG:此标志表达TCP包紧急指针域(背面立即
11、就要说到)有效,用来保证TCP连接不被中断,并且督促 中间层设备要尽快解决这些数据;ACK:此标志表达应答域有效,就是说前面所说TCP应答号将会包括在TCP数据包中;有两个取值:0和1, 为1时候表达应答域有效,反之为0;PSH:这个标志位表达Push操作。所谓Push操作就是指在数据包到达接受端后来,及时传送给应用程序, 而不是在缓冲区中排队;RST:这个标志表达连接复位祈求。用来复位那些产生错误连接,也被用来回绝错误和非法数据包;SYN:表达同步序号,用来建立连接。SYN标志位和ACK标志位搭配使用,当连接祈求时候,SYN=1, ACK=0;连接被响应时候,SYN=1,ACK=1;这个标志
12、数据包经常被用来进行端口扫描。扫描者发送 一种只有SYN数据包,如果对方主机响应了一种数据包回来 ,就表白这台主机存在这个端口;但是由于这 种扫描方式只是进行TCP三次握手第一次握手,因而这种扫描成功表达被扫描机器不很安全,一台安全 主机将会强制规定一种连接严格进行TCP三次握手;FIN: 表达发送端已经达到数据末尾,也就是说双方数据传送完毕,没有数据可以传送了,发送FIN标志 位TCP数据包后,连接将被断开。这个标志数据包也经常被用于进行端口扫描。Window:窗口大小,也就是有名滑动窗口,用来进行流量控制三设计过程3.1 TCP RST袭击 RST袭击原理: 图3.1从上面TCP合同图可以
13、看到,标志位共有六个,其中RST位就在TCP异常时浮现通过三次握手建立连接下面我通过A向B建立TCP连接来阐明三次握手怎么完毕。 图3.2为了可以说清晰下面RST袭击,需要结合上图说说:SYN标志位、序号、滑动窗口大小。建立连接祈求中,标志位SYN都要置为1,在这种祈求中会告知MSS段大小,就是本机但愿接受TCP包最大大小。发送数据TCP包均有一种序号。它是这样得来:最初发送SYN时,有一种初始序号,依照RFC定义,各个操作系统实现都是与系统时间有关。之后,序号值会不断增长,例如本来序号是100,如果这个TCP包数据有10个字节,那么下次TCP包序号会变成110。滑动窗口用于加速传播,例如发了
14、一种seq=100包,理应收到这个包确认ack=101后再继续发下一种包,但有了滑动窗口,只要新包seq与没有得到确认最小seq之差不大于滑动窗口大小,就可以继续发。滑动窗口毫无疑问是用来加速数据传播。TCP要保证“可靠”,就需要对一种数据包进行ack确认表达接受端收到。有了滑动窗口,接受端就可以等收到许多包后只发一种ack包,确认之前已经收到过各种数据包。有了滑动窗口,发送端在发送完一种数据包后不用等待它ack,在滑动窗口大小内可以继续发送其她数据包。 四次握手正常TCP连接关闭: 图3.3FIN标志位也看到了,它用来表达正常关闭连接。图左边是积极关闭连接方,右边是被动关闭连接方,用nets
15、tat命令可以看到标出连接状态。 FIN是正常关闭,它会依照缓冲区顺序来发,就是说缓冲区FIN之前包都发出去后再发FIN包,这与RST不同。 RST表达复位,用来异常关闭连接,在TCP设计中它是不可或缺。就像上面说同样,发送RST包关闭连接时,不必等缓冲区包都发出去(不像上面FIN包),直接就丢弃缓存区包发送RST包。而接受端收到RST包后,也不必发送ACK包来确认。 TCP解决程序会在自己以为异常时刻发送RST包。例如,A向B发起连接,但B之上并未监听相应端口,这时B操作系统上TCP解决程序会发RST包。 又例如,AB正常建立连接了,正在通讯时,A向B发送了FIN包规定关连接,B发送ACK后
16、,网断了,A通过若干因素放弃了这个连接(例如进程重启)。网通了后,B又开始发数据包,A收到后表达压力很大,不懂得这野连接哪来,就发了个RST包强制把连接关了,B收到后会浮现connect reset by peer错误。RST袭击 :A和服务器B之间建立了TCP连接,此时C伪造了一种TCP包发给B,使B异常断开了与A之间TCP连接,就是RST袭击了。事实上从上面RST标志位功能已经可以看出这种袭击如何达到效果了。 那么伪造什么样TCP包可以达到目呢?咱们至顶向下看。假定C伪装成A发过去包,这个包如果是RST包话,毫无疑问,B将会丢弃与A缓冲区上所有数据,强制关掉连接。如果发过去包是SYN包,那
17、么,B会表达A已经发疯了(与OS实既关于),正常连接时又来建新连接,B积极向A发个RST包,并在自己这端强制关掉连接。 这两种方式都可以达到复位袭击效果。似乎挺恐怖,然而核心是,如何能伪导致A发给B包呢?这里有两个核心因素,源端口和序列号。 一种TCP连接都是四元组,由源IP、源端口、目的IP、目的端口唯一拟定一种连接。因此,如果C要伪造A发给B包,要在上面提到IP头和TCP头,把源IP、源端口、目的IP、目的端口都填对。这里B作为服务器,IP和端口是公开,A是咱们要下手目的,IP固然懂得,但A源端口就不清晰了,由于这也许是A随机生成。固然,如果可以对常用OS如windows和linux找出生
18、成source port规律话,还是可以搞定。 序列号问题是与滑动窗口相应,伪造TCP包里需要填序列号,如果序列号值不在A之前向B发送时B滑动窗口内,B是会积极丢弃。因此咱们要找到能落到当时AB间滑动窗口序列号。这个可以暴力解决,由于一种sequence长度是32位,取值范畴0-,如果窗口大小像上图中我抓到windows下65535话,只需要相除,就懂得最多只需要发65537(/65535=65537)个包就能有一种序列号落到滑动窗口内。RST包是很小,IP头TCP头也才40字节,算算咱们带宽就懂得这实在只需要几秒钟就能搞定。 那么,序列号不是问题,源端口会麻烦点,如果各个操作系统不能完全随机
19、生成源端口,或者黑客们能通过其她方式获取到source port,RST袭击易如反掌,后果很严重 图 3.4防御:对付这种袭击也可以通过防火墙简朴设立就可以了。建议使用防火墙将进来包带RST位包丢弃就可以了。RST袭击只能针对tcp。对udp无效。RST用于复位因某种因素引起浮现错误连接,也用来回绝非法数据和祈求。如果接受到RST位时候,普通发生了某些错误。假设有一种合法顾客(1.1.1.1)已经同服务器建立了正常连接,袭击者构造袭击TCP数据,伪装自己IP为1.1.1.1,并向服务器发送一种带有RST位TCP数据段。服务器接受到这样数据后,以为从1.1.1.1发送连接有错误,就会清空缓冲区中
20、建立好连接。这时,如果合法顾客1.1.1.1再发送合法数据,服务器就已经没有这样连接了,该顾客就必要重新开始建立连接。对付这种袭击也可以通过防火墙简朴设立就可以了。 3.2 TCP会话劫持 会话劫持原理: 例如你Telnet到某台主机,这就是一次Telnet会话;你浏览某个网站,这就是一次HTTP会话。而会话劫持(Session Hijack),就是结合了嗅探以及欺骗技术在内袭击手段。例如,在一次正常会话过程当中,袭击者作为第三方参加到其中,她可以在正常数据包中插入恶意数据,也可以在双方会话当中进行监听,甚至可以是代替某一方主机接管会话。咱们可以把会话劫持袭击分为两种类型:1)中间人袭击(Ma
21、n In The Middle,简称MITM),2)注射式袭击(Injection);并且还可以把会话劫持袭击分为两种形式:1)被动劫持,2)积极劫持;被动劫持事实上就是在后台监视双方会话数据流,从中获得敏感数据;而积极劫持则是将会话当中某一台主机踢下线,然后由袭击者取代并接管会话,这种袭击办法危害非常大,袭击者可以做诸多事情,例如cat etc/master.passwd(FreeBSD下Shadow文献)。会话劫持运用了TCP/IP工作原理来设计袭击。TCP使用端到端连接,即TCP用(源IP,源TCP端标语,目IP,目TCP端号)来唯一标记每一条已经建立连接TCP链路。此外,TCP在进行数
22、据传播时,TCP报文首部两个字段序号(seq)和确认序号(ackseq)非常重要。序号(seq)和确认序号(ackseq)是与所携带TCP数据净荷(payload)多少有数值上关系:序号字段(seq)指出了本报文中传送数据在发送主机所要传送整个数据流中顺序号,而确认序号字段(ackseq)指出了发送本报文主机但愿接受对方主机中下一种八位组顺序号。因而,对于一台主机来说,其收发两个相临TCP报文之间序号和确认序号关系为:它所要发出报文中seq值应等于它所刚收到报文中ackseq值,而它所要发送报文中ackseq值应为它所收到报文中seq值加上该报文中所发送TCP净荷长度。TCP会话劫持袭击方式可
23、以对基于TCP任何应用发起袭击,如HTTP、FTP、Telnet等。对于袭击者来说,所必要要做就是窥探到正在进行TCP通信两台主机之间传送报文,这样袭击者就可以得知该报文源IP、源TCP端标语、目IP、目TCP端号,从而可以得知其中一台主机对将要收到下一种TCP报文段中seq和ackseq值规定。这样,在该合法主机收到另一台合法主机发送TCP报文前,袭击者依照所截获信息向该主机发出一种带有净荷TCP报文,如果该主机先收到袭击报文,就可以把合法TCP会话建立在袭击主机与被袭击主机之间。带有净荷袭击报文可以使被袭击主机对下一种要收到TCP报文中确认序号(ackseq)值规定发生变化,从而使另一台合
24、法主机向被袭击主机发出报文被被袭击主机回绝。TCP会话劫持袭击方式好处在于使袭击者避开了被袭击主机对访问者身份验证和安全认证,从而使袭击者直接进入对被袭击主机访问状态,因而对系统安全构成威胁比较严重。 袭击过程:1找到一种活动会话会话劫持第一步规定袭击者找到一种活动会话。这规定袭击者嗅探在子网上通讯。袭击者将寻找诸如FTP之类一种已经建立起来TCP会话。如果这个子网使用一种集线器,查找这种会话是很容易。一种互换网络需要袭击者破坏地址解析合同。2猜测对的序列号码下一步,袭击者必要可以猜测对的序列号码。请记住,一种基本TCP合同设计是传播数据每一种字节必要要有一种序列号码。这个序列号用来保持跟踪数
25、据和提供可靠性。最初序列号码是在TCP合同握手第一步生成。目地系统使用这个值确认发出字节。这个序列号字段长度有32个字节。这就意味着也许有大概4,294,967,295个序列号。一旦这个序列号一致,这个账户就会随着数据每一种字节逐渐增长。3把合法顾客断开一旦拟定了序列号,袭击者就可以把合法顾客断开。这个技术涉及回绝服务、源路由或者向顾客发送一种重置命令。无论使用哪一种技术,这个目都是要让顾客离开通讯途径并且让服务器相信袭击者就是合法客户机。如果这些环节获得成功,袭击者当前就可以控制这个会话。只要这个会话可以保持下去,袭击者就可以通过身份验证进行访问。这种访问可以用来在本地执行命令以便进一步运用
26、袭击者地位。 图3.5上机:TCP会话劫持数据分析:一方面用Ethereal打开telnet1_hijacked.cap文献。在分组1和分组2中可以看到SYN和SYNACK标志。分组1是从IP地址为192.168.1.103客户端发送到IP地址为192.168.1.101服务器。打开Ethernet可以看到客户端MAC地址为00:06:5b:d5:1e:e7,服务器端MAC地址为:00:00:c0:29:36:e8。在SYNACK分组中,源地址和目地址则正好相反。图3.6分析分组1和分组2数据这个TCP连接可用如下显示过滤器分离出来:(ip.addr eq 192.168.1.103 and
27、ip.addr eq 192.168.1.101) and (tcp.port eq 1073 and tcp.port eq 23)TCP连接中总共有98125个分组。当使用一下修改过滤规则后只有98123个分组。为了找到丢失两个分组。将过滤规则改为:!(eth.src eq 00:00:c0:29:36:e8)and !(eth.src eq 00:06:5b:d5:1e:e7)(如图) 图3.7 排除非客户端MAC数据可以发现,这两个分组发送方IP地址都为客户端(192.168.1.103)。但是以太网帧源地址为00:01:03:87:a8:eb,而客户端MAC地址00:06:5b:d5
28、:1e:e7。第一种伪造分组序号为233,具有10个字节数据。10个字节数据代表10个ASCII码字符,前8个ASCII码为0x08字符,背面2个ASCII为0x0a字符。ASCII码0x08代表退格符,ASCII码0x0a代表换行符。当这个分组加入TCP数据流后,服务器会以为顾客键入退格符8次,然后回车符两次。虽然看起来也许不会有太大危害,它目仅仅是清空合法顾客输入,然后显示一种空白命令行给顾客。但是,这个可以帮组保证袭击者构造下一组所能实现功能,不再是简朴地在合法顾客输入任何命令行末尾添加某些信息。如图所示图3.8 分组1数据信息第二个伪造分组序号为243,具有37个字节数据。重要涉及如下
29、命令:echo “echo HACKED” $HOME/.profile。这个命令后紧跟着一种ASCII码为0x0a字符,提示换行输入新命令。这个命令会把“echoHACKED”字符添加到顾客根目录下名为.profile文献中。在某些命令行shell中,顾客登录后一方面读取:profile文献并执行其中所有命令。顾客普通都依照需要为创立她们工作环境而执行某些列命令。将这些命令放置到.profile文献中意味着顾客在每次登录后都不用手动地执行这些设立命令。通过在.profile文献中添加“echoHACKED”命令,当顾客下次登录时,她会在屏幕上看见“HACKED”字符串。如图所示图3.9分组2
30、数据信息TCP会话终结数据分析:在telnet1_hijacked.cap文献中,袭击者成功地加入了实现其自身“hijack”会话,同步使合法客户端和服务器无法通信。在telnet2_fin.cap文献中,袭击者发送了具有它自己分组535。这次袭击者是伪装为服务器向客户端发送伪造分组。客户端用它自己分组538中FIN位作为响应。而对于真正服务器,它是第一次接受到客户端关闭连接分组,这样它会以为客户端但愿断开连接,并以一种分组540中FIN位作为响应。客户端接受到这个分组后,服务器和客户端连接已经断开,客户端会发送一种窗口位为0和RST位置分组。这样,就完全断开了客户端和服务器连接。如图所示 图
31、3.10 FIN袭击telnet3_rst.cap文献中,袭击者向客户段发送了一种RST位置位分组339。袭击者再次伪装服务器,并向客户端发送伪造分组。客户端会立即直接关闭与服务器连接,而不是按普通三次握手环节来关闭连接。而此时真正服务器并不懂得发生了这些,它会继续向客户端发送分组340。当分组到达客户端后,客户端会响应连接已经关闭信息。如图所示图3.11 RST袭击在attacker_ftp.cap文献,袭击者使用通过网络嗅探到顾客口令来与服务器建立一种FTP连接,并获取服务器文献。在这个连接中,袭击者不需要进行IP欺骗,它可以简朴使用自己IP地址:192.168.0.100。捕获口令可以完
32、全获得顾客账户访问权限,而不再仅仅是插入某些命令到数据流中。如图所示图3.12 ftp袭击成果分析:在TCP会话劫持中,只有袭击者发送是接受者所盼望序号分组,就可以成功地实现“会话窃用”。在“会话窃取”成功后,导致正常主机和服务器两边始终僵持状态。 在TCP会话终结中,袭击者发送了一种带FIN或RST位信息到目的主机,她会成功关闭这次连接。但是它没有获得非法途径访问资源,能制止合法顾客访问资源。然而袭击者通过网络嗅探到顾客口令与服务器建立一种FTP连接,并获取服务器文献。防止:解决会话劫持问题有两种机制:防止和检测。防止办法涉及限制入网连接和设立你网络回绝假冒本地地址从互联网上发来数据包。加密
33、也是有协助。如果你必要要容许来自可信赖主机外部连接,你可以使用Kerberos或者IPsec工具。使用更安全合同,FTP和Telnet合同是最容易受到袭击。SSH是一种较好代替办法。SSH在本地和远程主机之间建立一种加密频道。通过使用IDS或者IPS系统可以改进检测。互换机、SSH等合同和更随机初始序列号使用会让会话劫持更加困难。此外,网络管理员不应当麻痹大意,有一种安全感。虽然会话劫持不像此前那样容易了,但是,会话劫持仍是一种潜在威胁。容许某人以通过身份辨认身份连接到你一种系统网络袭击是需要认真对付。3.3 TCP SYN Flood袭击 袭击原理问题就出在TCP连接三次握手中,假设一种顾客
34、向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端ACK报文(第三次握手无法完毕),这种状况下服务器端普通会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完毕连接,这段时间长度咱们称为SYN Timeout,普通来说这个时间是分钟数量级(大概为30秒-2分钟);一种顾客浮现异常导致服务器一种线程等待1分钟并不是什么很大问题,但如果有一种恶意袭击者大量模仿这种状况,服务器端将为了维护一种非常大半连接列表而消耗非常多资源-数以万计半连接,虽然是简朴保存并遍历也会消耗非常多CPU时间和内存,何况还要不断对这个列表中IP进行SYN+AC
35、K重试。事实上如果服务器TCP/IP栈不够强大,最后成果往往是堆栈溢出崩溃-虽然服务器端系统足够强大,服务器端也将忙于解决袭击者伪造TCP连接祈求而无暇理睬客户正常祈求(毕竟客户端正常祈求比率非常之小),此时从正常客户角度看来,服务器失去响应,这种状况咱们称作:服务器端受到了SYN Flood袭击普通主机A与主机B每一次TP连接都要通过三次握手过程第一次握手主机A向主机B发送SYN祈求主机A将它随机产生初始序列号ISN传送给主机B祈求建立TP连接。第二次握手主机B向主机A回应SYN+AK主机B接受到来自主机A带有SYN标志ISN后将自己随机初始序列号ISN连同应答信息AK一同返回给主机A。第三
36、次握手主机A向主机B回应SYN十AK主机A再将主机B传送来ISN及应答信息AK返回给主机B。通过以上三次握手就建立了主机A与BTP连接在TcP三次握手中当主机B接受到主机A中SYN祈求时即第一次握手与第二次握手之间连接称为半开连接。如果计算机有限内存缓冲区中布满了虚假半开连接信息该计算机就会对接下来连接停止响应直到缓冲区里连接企图超时。依照TCP连接漏洞恶意主机A想袭击主机B,A可以使用发包软件在短时间用伪造不存在IP地址作为源地址不断地向防火墙发送具备SYN祈求TCP数据包。主机B在收到SYN祈求后会向祈求SYN数据包源地址发送一种SYN十ACK据包。由于源地址是一种伪造地址主机B不也许收到
37、伪造IP地址SYN+ACK回应数据包。主机B在短时间内有大量连接祈求等待确认。由于主机B内存缓冲区是有限当主机B中未释放连接祈求数量超过主机B限制时候主机B就无法再对新连接祈求进行响应就算是正常连接祈求也不会被主机B接受这时主机B受到了TCPSYNFlood袭击。SYN袭击实现起来非常简朴在互联网上有大量现成SYN袭击工具。如运营Windows系统下SYN工具synkill.exe选取随机源地址和源端口并填写目的机器地址和选取容许访问TP端口普通Windows系统开放TP139端口UNIX系统开放TCP7、21、23等端口激活运营不久就会发现目的系统运营缓慢。检测TCPSYNFlood袭击对于
38、受到TCPSYNFlood袭击计算机检测SYN袭击比较容易。当服务器上有大量半连接状态时特别是源IP地址是随机则可以断定这是一次TCPSYNFlood袭击。在Linux系统中使用netstat工具可显示网络连接、路由表和网络接口信息通过简朴分析可判断与否遭受了SYN袭击可以发现诸多连接处在SYN_RECV状态Windows系统中是SYN_RECEIVED状态源IP地址都是随机表白这是一带有IP欺骗TCPSYNFlood袭击。实验过程:测试平台网络拓扑构造如图所示。 图3.3.11用软件xdos.exe 对目的计算机进行回绝服务袭击并测试袭击效果。 在B机打开Sniffer Portable,配
39、备好捕获从任意主机发送给本机IP 数据包并启动捕获进程如图所示。图3.3.2未袭击前与B机连接主机数2在A机上访问。3在A机上访问。如图所示。 图3.3.3 xdos袭击端 4此时B机解决速度明显下降甚至瘫痪死机再访问。在Sniffer Portable“传播地图”中看到大量伪造IP 主机祈求与B机建立连接。如图所示。图3.3.4无法访问网站 图3.3.5袭击时与B机建立连接5 停止袭击后B机恢复迅速响应。打开捕获数据包可以看到有大量伪造IP 地址主机祈求与B机连接数据包且都是只祈求不应答。以至于B机保持有大量半开连接。如图所示。 图3.3.6 捕获到袭击数据包防御:从防御角度来说,有几种简朴
40、解决办法:第一种是缩短SYN Timeout时间,由于SYN Flood袭击效果取决于服务器上保持SYN半连接数,这个值=SYN袭击频度 x SYN Timeout,因此通过缩短从接受到SYN报文到拟定这个报文无效并丢弃改连接时间,例如设立为20秒如下(过低SYN Timeout设立也许会影响客户正常访问),可以成倍减少服务器负荷。第二种办法是设立SYN Cookie,就是给每一种祈求连接IP地址分派一种Cookie,如果短时间内持续受到某个IP重复SYN报文,就认定是受到了袭击,后来从这个IP地址来包会被丢弃。可是上述两种办法只能对付比较原始SYN Flood袭击,缩短SYN Timeout
41、时间仅在对方袭击频度不高状况下生效,SYN Cookie更依赖于对方使用真实IP地址,如果袭击者以数万/秒速度发送SYN报文,同步运用SOCK_RAW随机改写IP报文中源地址,以上办法将毫无用武之地。 四 总结与体会随着互联网飞速发展,网络安全逐渐成为一种潜在巨大问题。网络安全性是一种涉及面很广泛问题,其中也会涉及到与否构成犯罪行为问题。在其最简朴形式中,它重要关怀是保证无关人员不能读取,更不能修改传送给其她接受者信息。此时,它关怀对象是那些无权使用,但却试图获得远程服务人。安全性也解决合法消息被截获和重播问题,以及发送者与否曾发送过该条消息问题。咱们需要在理论学习基本上,动手实践网络安全有关
42、理论,通过应用所学习知识,来解决某些实际网络安全应用问题。在此基本上,真正理解和掌握网络安全基本原理,具备网络安全面分析和动手能力。在网络攻防实验环境中完毕TCP/IP合同栈中TCP层重点合同袭击实验。涉及TCP RST袭击、TCP会话劫持和TCP SYN Flood袭击。这次课程设计增强了咱们对核心理论知识分析理解和实际转化能力。培养了理论联系实际和初步独立工作能力。课程设计作为一次团队设计,通过度工协作,增强人们团队精神。同步,通过实践小构成员进一步理解掌握了tcp基本理论、办法、技术和基本知识,培养了方案设计与验证能力以及实践软件开发过程和环节,初步具备了中小型软件项目需求分析、设计、编码、测试和维护能力。参照文献1 段云所 魏仕民 唐礼用 陈钟 信息安全概论 高等教诲出版社 .52 韩松. 卫星 TCP/ IP 数据传播技术. 当代电信科技,;(2):11- 153 村山公保. TCP/ IP 网络工具篇.北京:科学出版社,4 贾铁军 网络安全技术及应用 机械工业出版社 .2