36
TCP/IP七层模型的详解,攻击与防护的专家技巧分

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 ,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如路由器,交换机。OSI 七层模型是一种框架性的设计方法 ,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要的功能使就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

TCP/IP七层模型的详解,攻击与防护的专家技巧分享

模型优点

建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题。它的最大优点是将服务、接口和协议这三个概念明确地区分开来:服务说明某一层为上一层提供一些什么功能,接口说明上一层如何使用下层的服务,而协议涉及如何实现本层的服务;这样各层之间具有很强的独立性,互连网络中各实体采用什么样的协议是没有限制的,只要向上提供相同的服务并且不改变相邻层的接口就可以了。

网络七层的划分也是为了使网络的不同功能模块(不同层次)分担起不同的职责,从而带来如下好处:

● 减轻问题的复杂程度,一旦网络发生故障,可迅速定位故障所处层次,便于查找和纠错;

● 在各层分别定义标准接口,使具备相同对等层的不同网络设备能实现互操作,各层之间则相对独立,一种高层协议可放在多种低层协议上运行;

● 能有效刺激网络技术革新,因为每次更新都可以在小范围内进行,不需对整个网络动大手术;

● 便于研究和教学。

TCP/IP七层模型的详解,攻击与防护的专家技巧分享

一.物理层(Physical Layer)

O S I 模型的最低层或第一层,该层包括物理连网媒介,如电缆连线连接器。物理层的协议产生并检测电压以便发送和接收携带数据的信号。在你的桌面P C 上插入网络接口卡,你就建立了计算机连网的基础。换言之,你提供了一个物理层。尽管物理层不提供纠错服务,但它能够设定数据传输速率并监测数据出错率。网络物理问题,如电线断开,将影响物理层。   用户要传递信息就要利用一些物理媒体,如双绞线、同轴电缆等,但具体的物理媒体并不在OSI的7层之内,有人把物理媒体当做第0层,物理层的任务就是为它的上一层提供一个物理连接,以及它们的机械、电气、功能和过程特性。如规定使用电缆和接头的类型、传送信号的电压等。在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是bit比特。

二.数据链路层(Datalink Layer)

OSI模型的第二层,它控制网络层与物理层之间的通信。它的主要功能是如何在不可靠的物理线路上进行数据的可靠传递。为了保证传输,从网络层接收到的数据被分割成特定的可被物理层传输的帧。帧是用来移动数据的结构包,它不仅包括原始数据,还包括发送方和接收方的物理地址以及检错和控制信息。其中的地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错到达。 如果在传送数据时,接收点检测到所传数据中有差错,就要通知发送方重发这一帧。   数据链路层的功能独立于网络和它的节点和所采用的物理层类型,它也不关心是否正在运行 Wo r d 、E x c e l 或使用I n t e r n e t 。有一些连接设备,如交换机,由于它们要对帧解码并使用帧信息将数据发送到正确的接收方,所以它们是工作在数据链路层的。   数据链路层(DataLinkLayer):在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。   数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。   数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。

TCP/IP七层模型的详解,攻击与防护的专家技巧分享

三.网络层(Network Layer)

O S I 模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A 到另一个网络中节点B 的最佳路径。由于网络层处理,并智能指导数据传送,路由器连接网络各段,所以路由器属于网络层。在网络中,“路由”是基于编址方案、使用模式以及可达性来指引数据的发送。   网络层负责在源机器和目标机器之间建立它们所使用的路由。这一层本身没有任何错误检测和修正机制,因此,网络层必须依赖于端端之间的由D L L提供的可靠传输服务。   网络层用于本地L A N网段之上的计算机系统建立通信,它之所以可以这样做,是因为它有自己的路由地址结构,这种结构与第二层机器地址是分开的、独立的。这种协议称为路由或可路由协议。路由协议包括I P、N o v e l l公司的I P X以及A p p l e Ta l k协议。   网络层是可选的,它只用于当两个计算机系统处于不同的由路由器分割开的网段这种情况,或者当通信应用要求某种网络层或传输层提供的服务、特性或者能力时。例如,当两台主机处于同一个L A N网段的直接相连这种情况,它们之间的通信只使用L A N的通信机制就可以了(即OSI 参考模型的一二层)。

四.传输层(Transport Layer)

O S I 模型中最重要的一层。传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率。除此之外,传输层按照网络能处理的最大尺寸将较长的数据包进行强制分割。例如,以太网无法接收大于1 5 0 0 字节的数据包。发送方节点的传输层将数据分割成较小的数据片,同时对每一数据片安排一序列号,以便数据到达接收方节点的传输层时,能以正确的顺序重组。该过程即被称为排序。   工作在传输层的一种服务是 T C P / I P 协议套中的T C P (传输控制协议),另一项传输层服务是I P X / S P X 协议集的S P X (序列包交换)。

五.会话层(Session Layer)

负责在网络中的两节点之间建立、维持和终止通信。 会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。   你可能常常听到有人把会话层称作网络通信的“交通警察”。当通过拨号向你的 ISP (因特网服务提供商)请求连接到因特网时,ISP 服务器上的会话层向你与你的 PC 客户机上的会话层进行协商连接。若你的电话线偶然从墙上插孔脱落时,你终端机上的会话层将检测到连接中断并重新发起连接。会话层通过决定节点通信的优先级和通信时间的长短来设置通信期限

TCP/IP七层模型的详解,攻击与防护的专家技巧分享

六.表示层(Presentation Layer)

应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。   表示层管理数据的解密与加密,如系统口令的处理。例如:在 Internet上查询你银行账户,使用的即是一种安全连接。你的账户数据在发送前被加密,在网络的另一端,表示层将对接收到的数据解密。除此之外,表示层协议还对图片和文件格式信息进行解码和编码。

七.应用层(Application Layer)

应用层也称为应用实体(AE),它由若干个特定应用服务元素(SASE)和一个或多个公用应用服务元素(CASE)组成。每个SASE提供特定的应用服务,例如文件运输访问和管理(FTAM)、电子文电处理(MHS)、虚拟终端协议(VAP)等。CASE提供一组公用的应用服务,例如联系控制服务元素(ACSE)、可靠运输服务元素(RTSE)和远程操作服务元素(ROSE)等。主要负责对软件提供接口以使程序能使用网络服务。术语“应用层”并不是指运行在网络上的某个特别应用程序 ,应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。

附言:

对于注重网络安全的大佬们一定关心如何对TCP/IP的防护,这里我们要指出,目前的防护是针对四层(传输层)和七层(应用层)。

这里腾达互联网络网络安全专家指出了目前的防护方式:

TCP/IP七层模型的详解,攻击与防护的专家技巧分享

首先是传输层详解:

1. 异常包

TCP/UDP:端口值为0的包;校验和错误的包

TCP标志位异常包:SYN只能单独存在或只能和ACK共存,和其他标志共存就是异常包;没有标志或标志全置的包;有ACK标志但Acknowledgment Number为0的包;有SYN标志但Sequence Number为0的包;有URG标志但Urgent Pointer为0,或没有URG标志但Urgent Pointer不为0的包;RST和除ACK标志之外的其他标志共存的包;

这种攻击标志很明显,防御也很容易,可以做到100%检测并阻断;

2. LAND攻击

TCP层的攻击了,不过在网络层就可以防护;攻击方发送源地址和目的地址相同的TCP SYN包,对老的某些操作系统就会发SYNACK包给自身,建立空连接,最终消耗尽自身资源,现在的操作系统已经不会那么傻了,这种攻击也可以做到100%检测并阻断;

3. Flood攻击

syn flood:是TCP协议的最大弱点了,对syn flood攻击的分析在另一篇文章中详细说明了,理论上是无法真正防御的,只能进行一定程度的缓解;

UDP flood:就是发送大量UDP包阻塞目的机通信,由于UDP是非连接协议,因此只能通过统计的方法来判断,很难通过状态检测来发现,只能通过流量限制和统计的方法缓解;对于有些协议,服务器部分的计算量会远大于客户端的计算量,如DNS,野蛮模式的IKE等,这些情况下flood攻击更容易形成DOS。

4. 端口扫描

端口扫描往往是网络入侵的前奏,通过端口扫描,可以了解目标机器上打开哪些服务,有的服务是本来就是公开的,但可能有些端口是管理不善误打开的或专门打开作为特殊控制使用但不想公开的,通过端口扫描可以找到这些端口,而且根据目标机返回包的信息,甚至可以进一步确定目标机的操作系统类型,从而展开下一步的入侵。

4.1 TCP扫描

按照RFC,当试图连接一个没有打开的TCP端口时,服务器会返回RST包;连接打开的TCP端口时,服务器会返回SYNACK包

合法连接扫描:

connect扫描:如果是打开的端口,攻击机调用connect函数完成三次握手后再主动断开;关闭的端口会连接识别

SYN扫描:攻击机只发送SYN包,如果打开的端口服务器会返回SYNACK,攻击机可能会再发送RST断开;关闭的端口返回RST;

异常包扫描:

FIN扫描:攻击机发送FIN标志包,Windows系统不论端口是否打开都回复RST;但UNIX系统端口关闭时会回复RST,打开时会忽略该包;可以用来区别Windows和UNIX系统;

ACK扫描:攻击机发送ACK标志包,目标系统虽然都会返回RST包,但两种RST包有差异;

对于合法连接扫描,如果SYN包确实正确的话,是可以通过防火墙的,防火墙只能根据一定的统计信息来判断,在服务器上可以通过netstat查看连接状态来判断是否有来自同一地址的TIME_WAIT或SYN_RECV状态来判断。

对于异常包扫描,如果没有安装防火墙,确实会得到相当好的扫描结果,在服务器上也看不到相应的连接状态;但如果安装了防火墙的话,由于这些包都不是合法连接的包,通过状态检测的方法很容易识别出来(注意:对于标准的Linux内核所带防火墙netfilter的TCP状态检测的实现,ACK和FIN扫描是可以通过的,需要修改才能防御)。

4.2 UDP扫描

当试图连接一个没有打开的UDP端口时,大部分类型的服务器可能会返回一个ICMP的端口不可达包,但也可能无任何回应,由系统具体实现决定;对于打开的端口,服务器可能会有包返回,如DNS,但也可能没有任何响应。

UDP扫描是可以越过防火墙的状态检测的,由于UDP是非连接的,防火墙会把UDP扫描包作为连接的第一个包而允许通过,所以防火墙只能通过统计的方式来判断是否有UDP扫描。

5. TCP紧急指针攻击

Winnuke:对老的Windows系统,对TCP139端口发送带URG标志的包,会造成系统的崩溃,特征明显,防火墙可以100%防御,但也可能误伤;

6. TCP选项攻击

相对IP选项,TCP选项利用率要高很多,很多正常包中都要用到,TCP选项攻击包括:

1) 非法类型选项:正常的选项类型值为0、1、2、3、8、11、23、13,其他类型的出现是可疑的(类型4,5,6,7虽然定义了但被类型8取代,正常情况下也是不用的);

2) 时间戳:用于搜集目的机的信息;

3) 选项长度不匹配:选项中的长度和TCP头中说明的TCP头长度计算出的选项长度不一致;

4) 选项长度为0:非0、1类型的选项长度为0,是非法的;

5) 选项缺失,一般SYN包中都要有MSS选项,没有的话反而不正常;

6. 总结

传输层的攻击也属于特征比较明显的类型,除syn flood外防护也比较容易,由于模式固定,也适合硬件实现。syn flood是TCP永远的痛,是TCP设计之初没有仔细考虑到的,在一些新的协议如SCTP(132),已经考虑到此因素,但由于TCP应用太广泛,要取代TCP基本不太可能。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!