防火墙入侵与检测 day01

day1

  • OSI 7层模型
  • TCP/IP模型
    • 数据链路层
      • ARP
    • 网络层
      • 1.报文结构
      • 2.IPv4数据报的封装与解封转
    • 传输层
      • TCP连接
        • 三次握手
        • 四次挥手
  • TCP/IP协议栈-IPV4安全隐患
    • 物理层
    • 网络层
    • 传输层

了解OSI模型
理解TCP/IP协议原理
了解TCP/IP协议存在的安全隐患
理解针对TCP/IP各层常见攻击的技术原理

OSI 7层模型

OSI 7层模型: 开放系统互连参考模型

应用层 message 报文 HTTP DNS FTP 应用层协议
表示层 PPDU
会话层 SODU
传输层 segment 报文段 端口:16bit
网络层 package 包/分组 路由器 IP:32bit
数据链路层 frame 帧 交换机 MAC 物理地址长度:48bit
物理层 bit 比特 集线器

各层功能:
应用层功能:提供方便的接口和运行程序。(提供应用程序间通信)
表示层功能:加密,处理用户信息的表示问题,如编码、数据格式转换和加密解密。(处理数据格式、数据加密)
会话层功能:向两个实体的表示层提供建立和使用连接的方法(单工,半双工,全双工)。(建立、维护和管理会话)
传输层功能:完成端到端差错检测和流量控制
网络层功能:确定数据包从源端到目的端如何选择路由,即使用逻辑地址进行选址。(寻址和路由选择)
数据链路层:定义了在单个链路上如何传输数据,传输的数据单元称为数据帧。(提供介质访问、链路管理等)
物理层功能;为数据通信提供传输设备及互连设备,传输的数据单元称为比特流。(比特流传输)

TCP/IP模型

TCP/IP模型包含以下4个层次:
应用层:直接为用户的应用进程提供服务。
运输层:负责向两个主机进程之间的通信提供服务。
网际层:负责提供基本的数据封包传送功能,让每块数据包都能到达目的主机。
网络接口层:接收IP数据包并进行传输,从网络上接收物理帧,抽取IP数据包转交给下一层,对实际的网络媒体的管理。

防火墙入侵与检测 day01_第1张图片

数据链路层

以太网帧:目的地址(6字节)、源地址(6字节)、类型(2字节)、数据(46~1500字节)、FCS(4字节)

类型:0x0800,代表IP
类型:0x0806,代表ARP
类型:0x8035,代表RARP

MAC:物理地址 48bit

48位中
单播MAC:xxxxxxx0,
组播MAC:xxxxxxx1,01-00-5E-
广播MAC:111…,FF-FF-FF-

源地址是单播MAC,目的地址是 (单播、组播、广播)
防火墙入侵与检测 day01_第2张图片

ARP

解析过程:
ARP 用于把一个已知的 IP 地址解析成 MAC 地址,以便在 MAC 层通信。为了确定目标 的 MAC 地址,首先查找 ARP 缓存表。如果要查找的 MAC 地址不在表中,ARP 会发送一个广 播,从而发现目的地的 MAC 地址,并记录到 ARP 缓存表中以便下次查找。

ARP协议: 4种典型情况

  • 主机A 发一个IP数据报给 主机B —— 同一网络
    主机HOST-A先在自己的ARP高速缓存中查看有无主机HOST-B的IP地址对应的MAC地址。
    如果有,就将此MAC地址写到封装IP数据报的MAC帧的目的MAC地址字段,发出该MAC帧。
    如果没有,就先找到主机B的MAC地址。 ARP广播请求request(包内包含发送端主机IP和MAC和接收端主机IP),主机B在ARP请求分组中见到自己的IP地址,一方面将主机A的IP地址和主机A对应的MAC地址存入自己ARP高速缓存中,另一方面主机B向主机A发送ARP响应response分组,接着主机A收到主机B的IP地址和对应的MAC地址存入其ARP表中。 其他主机看到不是自己的IP地址就会丢弃。

  • 跨网络 A网段的主机A,发到B网络的主机B
    发送方是主机A,用ARP找到路由器的硬件地址,剩下工作由这个路由器完成

  • 发送方是路由器,用ARP找到本网络上的一个路由器的硬件地址,剩下工作由这个路由器完成

  • 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址

网络层

防火墙入侵与检测 day01_第3张图片

三层设备会丢掉 TTL=0的

1.报文结构

  • 版本,指定IP数据报中使用的IP协议版本,占4位。IPv4对应值为4(0100)
  • 首部长度,指示IP数据报头部的总长度,占4位。IP数据报头部的总长度以4字节为单位(即4字节的整数倍)
  • 区分服务,用于表示数据报的优先级和服务类型,占8位。包括一个3位长度的优先级,4位长度的标志位,最高位未用
  • 总长度,标识整个IP数据报的总长度,包括报头和数据部分,占16位,由此可知IPv4的最大长度为65535(64KB)
  • 标识,用于表示IP数据报的标识符,占16位,每个IP数据报有一个唯一的标识(不是序号)。当数据报分段时,这个标识的值就被复制到所有分段的标识字段中,相同的标识字段值使分段后的数据报分段最后能正确地重组成为原来的数据报。
  • 标志,指出该IP数据报后面是否还有分段,为分段标志,占3位,仅最低位有意义
  • 片偏移,指出该分段在数据报中的相对位置。相对于用户数据字段的起点,该字段从何处开始,占13位
  • 生存时间,标识IP数据报在网络中传输的有效期,以秒来计数,占8位。现在通常认为这个数值是指数据报允许经过的路由器数,当值为0时,就丢弃这个数据报。设定生存时间是为了防止数据报在网络中无限制地循环转发。
  • 协议,用来标识此IP数据报在传输层所采用的协议类型(如TCP、UDP或ICMP等),以便使目的主机的IP层知道应将数据部分上交给哪个处理过程,占8位
  • 首部校验和,用来检验IP数据报的包头部分(不含“数据”部分)在传输到接收端后是否发生了变化,占16位。因为数据报每经过一个路由器,路由器都要重新计算一下报头校验和
  • 源地址/目的地址,分别表示该IP数据报发送者和接收者的IP地址,各站32位
  • 选项,用来支持各种选项,提供扩展余地,后面的填充字段就是为了保证IP数据报的报头是32位的整数倍。

2.IPv4数据报的封装与解封转

发送端网络层生成的IP数据报还要继续向下传输,到达数据链路层就要封装成数据帧了。IP数据报的“帧封装”只需把来自网络层的整个IP数据报(报头和数据部分)当做数据链路层帧的数据部分,然后在前面加上与数据链路层对应的协议头即可。
这里补充前篇数据链路层中没有说到的一点:在以太局域网中,由于数据链路层分成了LLC子层和MAC子层这两层,所以来自网络层的IP数据报在到达数据链路层后先要经过LLC子层和MAC子层的协议头封装,最终形成数据链路层的以太网MAC帧。
防火墙入侵与检测 day01_第4张图片
数据帧格式参见数据链路层
(经过路由器)解封装则是去掉帧头和帧尾(如果有帧尾)。
可以得知,IP数据报无论经过了多少个网络,整个数据报内容都不会变,包括报头部分的源和目的地址信息。变化的只是在不同网络数据链路上传输的帧头信息。

 

传输层

防火墙入侵与检测 day01_第5张图片
比较重要的字段有:

(1)序号(sequence number):Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。

(2)确认号(acknowledgement number):Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。

(3)标志位(Flags):共6个,即URG、ACK、PSH、RST、SYN、FIN等。具体含义如下:

URG:紧急指针(urgent pointer)有效。
ACK:确认序号有效。
PSH:接收方应该尽快将这个报文交给应用层。RST:重置连接。
SYN:发起一个新连接。FIN:释放一个连接。

 

TCP连接

三次握手

防火墙入侵与检测 day01_第6张图片

首先A的TCP客户进程向B发出连接请求报文段,这时首部中的同步位SYN=1,同时选择一个初始序号seq=x,表明传送数据时的第一个数据字节的序号是 x。 TCP规定,SYN报文段(即SYN=1的报文段)不能携带数据,但要消耗掉一个序号。这时,A的客户进程就进入SYN-SENT(同步已发送)状态。
  B收到连接请求报文段后,向A发送确认。在确认报文段中把SYN和ACK位都置为1 ,确认号是ack=x+1,同时也为自己选择一个初始序号seq=y。请注意,这个报文段也不能携带数据,但同样要消耗掉一个序号。这时B的TCP服务器进程就进入SYN-RCVD(同步已收到)状态。
  A的TCP客户进程收到B的确认后,还要向B给出确认。确认报文段的ACK置为1 ,确认号ack=y+1,而自己的序号seq=x+1。这时,TCP连接已经建立,A进入ESTABLISHED(已建立连接)状态,
  当B收到A的确认后,也会进入ESTABLISHED状态。

 

四次挥手

防火墙入侵与检测 day01_第7张图片
为什么连接的时候是三次握手,关闭的时候却是四次挥手?
因为在握手过程中,当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。

四次握手因为是双方彼此都建立了连接,因此双方都要释放自己的连接,A向B发出一个释放连接请求,他要释放链接表明不再向B发送数据了,此时B收到了A发送的释放链接请求之后,给A发送一个确认,A不能再向B发送数据了,它处于FIN-WAIT-2的状态,但是此时B还可以向A进行数据的传送。此时B向A 发送一个断开连接的请求,A收到之后给B发送一个确认。此时B关闭连接。A也关闭连接。

 

TCP/IP协议栈-IPV4安全隐患

1、缺乏数据源验证机制
2、缺乏完整性验证机制
3、缺乏机密性保障机制

防火墙入侵与检测 day01_第8张图片

物理层

对于MAC攻击的防范措施

  • 在交换机上配置静态条目,将特点的MAC地址始终与特定的端口绑定

防火墙入侵与检测 day01_第9张图片
1.MAC欺骗
攻击原理:攻击者将自己的MAC地址更改位受信任系统的地址(伪装)
造成影响:仿冒用户,截取数据帧

防范策略:在交换机上配置静态条目,将特定的MAC地址始终与特定的端口绑定
防火墙入侵与检测 day01_第10张图片

2.MAC泛洪
MAC泛洪攻击利用了:

  • 交换机的MAC学习机制(根据SMAC)
  • MAC表项的数目限制
  • 交换机的转发机制

MAC泛洪攻击的预防

  • 配置静态的MAC转发表
  • 配置端口的MAC学习数目限制

攻击原理:因为交换机的MAC学习机制,MAC表项的数目限制,交换机的转发机制,攻击者向交换机发酥大量的二层数据帧,以快速填满交换机的MAC表,MAC表填满之后,开始将后续的帧进行泛洪,导致整个网络系统中的链路还有交换机处于拥塞的状态,直至崩溃

造成影响:(1)试交换机无法正常工作(MAC表满)(2)网络中流量增大

防范策略:配置静态的MAC转发表,配置端口的MAC学习数目限制

3.ARP欺骗
攻击原理:攻击者抢先合法主机发出的ARP请求作出应答,这样要发送给合法主机的数据就会发送到伪装主机处

造成影响:截获数据

防范策略:主机手动配置MAC表
防火墙入侵与检测 day01_第11张图片

网络层

1.IP欺骗
攻击原理:攻击者使用相同的IP地址可以模仿网络上的合法主机,来访问关键信息

造成影响:伪装成某一合法用户

攻击步骤:
(1)首先使被信任主机的网络暂时瘫痪,以免对攻击造成干扰(攻陷要伪装的主机)
(2)连接到目标机的某个端口来猜测序列号和增加的规律
(3)接下来把源地址伪装成被信任的主机,发送带有SYN标志的数据段来请求连接
(4)等待目标机发送SYN+ACK包给已经瘫痪的主机
(5)最后再此伪装成被信任主机向目标发送ACK,此时发送的数据段带有预测的目标机的序列号+1
(6)连接建立,发送命令请求

2.Smurf攻击(DDOS攻击的一种)
攻击原理:攻击者发送ICMP请求,请求包的目标地址设置为受害网络的广播地址,这样该网络中的所有主机对此ICMP请求作出答复,导致网络阻塞,高级的Smurf攻击,主要使用来攻击目标主机,方法是将上述ICMP请求包的源地址改为被迫害的主机,最终导致受害主机雪崩,网络中的主机越多,攻击效果越明显

造成影响:(1)被攻击网络内流量增大(2)接受ICMP应答包的主机可能会宕机

防范策略:检查ICMP请求包的目的地址是否为子网广播地址或子网的网络地址,如果是则直接拒绝

3.ICMP重定向和不可达攻击
攻击原理:ICMP重定向报文是ICMP控制报文中的一种,在某些情况下,当路由器检测到一台机器上使用非优化路由的时候,他会向该主机发送一个ICMP重定向报文,请求主机改变路由。ICMP协议虽然不是路由协议,但是他可以指导数据包的流向。攻击者通过向主机发送ICMP重定向数据包,使受害人主机数据包发送不到正确的网关,以达到攻击目的

造成影响:使用户的数据不按正常的路径转发,造成网络断开

防范策略:修改注册表关闭主机的ICMP重定向报文处理

4.IP地址扫描攻击
攻击原理:攻击者运用ICMP报文探测目标地址,或者使用TCP/UDP报文对一定地址发起连接,通过判断是否有应答报文,以确定哪些目标系统存活并连接在目标网络上

造成影响:使攻击者获悉存在的网络主机,对后续进攻作准备

防范策略:设置主机使其不对ping请求作出应答

传输层

1.TCP欺骗
描述:利用主机之间某种网络服务的信任关系建立虚拟的TCP连接,可能模拟受害者从服务器端获取信息,具体过程类似于IP欺骗攻击

攻击原理:
(1)攻击者先将要伪装的主机攻克
(2)攻击者用被攻克的主机的地址作为源地址给目的主机发送TCP SYN报文
(3)目标主机回应TCP SYN/ACK报文,携带序列码S
(4)C收不到序列码,但为了完成握手必须使用S+1作为序列码进行应答,这时C可以通过监听SYN/ACK报文,根据得到的值进行计算或者根据操作系统的特新进行猜测
(5)攻击者使用得出的序列码S回应给目标主机,握手完成,虚假连接建立

2.TCP拒绝服务攻击—SYN Flood攻击
攻击原理:SYN报文是TCP连接的第一个报文,攻击者通过大量发送SYN报文,造成大量未完全建立的TCP连接,占用被攻击者的资源

解决方法:关闭处于Half Open状态的连接

3.端口扫描攻击
攻击原理:攻击者通常使用一些软件,先大范围的主机的一系列TCP/UDP端口发起连接,根据应答报文判断主机是否使用这些端口提供服务

防范策略:配置端口扫描攻击防范参数后,设备对进入的TCP,UDP,ICMP报文进行检测,并以每个源地址作为索引,判断该源地址发送报文的目的端口与前一报文的目的端口是否不同,如果是则异常数加1,当异常频率到达阈值时,则认为该源IP地址的报文为端口扫描攻击,并将该源ip地址加入黑名单

你可能感兴趣的:(#,防火墙)