• 网络攻击主要分为流量型攻击,扫描窥探攻击,畸形报文攻击和特殊报文攻击。其中扫描窥探攻击、畸形报文攻击以及特殊报文攻击属于单包攻击。
• 通常的网络攻击,一般是侵入或破坏网上的服务器(主机),盗取服务器的敏感数据或占用网络带宽,干扰破坏服务器对外提供的服务。也有直接破坏网络设备的网络攻击,这种破坏影响较大,会导致网络服务异常,甚至中断。
• 流量型攻击是指攻击者通过大量的无用数据占用过多的资源以达到服务器拒绝服务的目的。
• 这类攻击典型特征是通过发出海量数据包,造成设备负载过高,最终导致网络带宽或是设备资源耗尽。通常,被攻击的路由器、服务器和防火墙的处理资源都是有限的,攻击负载之下它们就无法处理正常的合法访问,导致正常服务被拒绝。流量型攻击最通常的形式是Flood方式,这种攻击把大量看似合法的TCP、UDP、ICMP包发送至目标主机,甚至,有些攻击者还利用源地址伪造技术来绕过检测系统的监控,以达到攻击的目的。
• DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。 DDos攻击是流量型攻击的一种典型方式,可以称为流量型攻击的另一种说法。
• 扫描窥探攻击是利用ping扫射(包括ICMP和TCP)来标识网络上存活着的系统,从而准确定位潜在的目标;利用TCP和UDP端口扫描,就能检测出操作系统和监听着的潜在服务。攻击者通过扫描窥探就能大致了解目标系统提供的服务种类和潜在的安全漏洞(识别目标弱点),为进一步侵入系统做好准备。
• 畸形报文攻击是指通过向目标系统发送有缺陷的IP报文,使得目标系统在处理这样的IP报文时发生错误,或者造成系统崩溃,影响目标系统的正常运行。主要的畸形报文攻击有Ping of Death、Teardrop等。
• 特殊报文攻击,是指攻击者利用一些合法的报文对网络进行侦察或者数据检测,这些报文都是合法的应用类型,只是正常网络很少用到。
• 最常见的DoS攻击就是我们常常提到的单包攻击,这类攻击一般都是以个人为单位的黑客发动的,攻击报文也比较单一,虽然破坏力强大,但是只要掌握了攻击的特征,防御起来还是比较容易的。
IP地址扫描攻击介绍:
• 运用ping程序探测目标地址,确定目标系统是否存活。也可使用TCP/UDP报文对目标系统发起探测(如TCP ping)。
处理方法:
• 检测进入防火墙的ICMP、TCP和UDP报文,根据源IP地址获取统计表项的索引,如果目的IP地址与前一报文的IP地址不同,则将表项中的总报文个数增加1。如果在一定时间内报文的个数达到设置的阈值,记录日志,并根据配置决定是否将源IP地址自动加入黑名单。
• 命令firewall defend ip-sweep { max-rate rate-number | blacklist-timeout interval | enable },主要参数意义如下:
• max-rate rate-number:设定从同一源地址向外发送报文的目的地址变化速率的阈值。rate-number 默认值为4000包/秒,取值范围为1包/秒~10000包/秒。
• blacklist-timeout interval:将攻击源IP加入黑名单并设定其在黑名单内的保持时间,interval 取值范围为1min~1000min,默认值为20min。
• enable:使能地址扫描攻击防范功能开关。
Port Scan攻击介绍
• Port Scan攻击通常使用一些软件,向大范围主机的各个TCP/UDP端口发起连接,根据应答报文判断主机是否使用这些端口提供服务。
处理方法:
• 检测进入防火墙的TCP报文或UDP报文,根据源IP地址获取统计表项的索引,如果目的端口与前一报文不同,将表项中的报文个数增1。如果报文的个数超过设置的阈值,记录日志,并根据配置决定是否将源IP地址加入黑名单。
• 命令firewall defend port-scan { max-rate rate-number | blacklist-timeout interval | enable },主要参数意义如下:
• max-rate rate-number:设定从同一源地址向外发送报文的目的端口变化速率的阈值。rate-number 默认值为4000次/秒,取值范围为1次/秒~10000次/秒。
• blacklist-timeout interval:将攻击源IP加入黑名单并设定其在黑名单内的保持时间,interval 取值范围为1min~1000min,默认值为20min。
• enable:使能端口扫描攻击防范功能开关。
• 都要开黑名单功能:firewall blacklist enable
• Smurf攻击方法是发送ICMP请求,该请求包的目标地址设置为受害网络的广播地址,源地址为服务器地址。该网络的所有主机都回应此ICMP请求,回应报文全部发往服务器,导致服务器不能正常提供服务。
• 路由器等三层设备本身就不会转发目的地址是广播地址的报文,因此SMURF攻击在网络上很难形成攻击。
处理方法:
• 检查ICMP应答请求包的目的地址是否为子网广播地址或子网的网络地址,如果是,则直接拒绝,并将攻击记录到日志。
• firewall defend smurf enable
把TCP 的源地址和目标地址都设置成某一个受害者的IP地址。这将导致受害者向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,占用系统资源或使目的主机崩溃。 许多UNIX主机将崩溃,NT主机(虚拟主机)会变的极其缓慢。
处理方法:
• 对每一个的IP报文进行检测,若其源地址与目的地址相同,或者源地址为环回地址(127.0.0.1),则直接拒绝,并将攻击记录到日志。
• firewall defend land enable
• Fraggle类似于Smurf攻击,只是使用UDP应答消息而非ICMP。UDP端口7(ECHO)和端口19(Chargen字符生成服务)在收到UDP报文后,都会产生回应。在UDP的7号端口收到报文后,会回应收到的内容,而UDP的19号端口在收到报文后,会产生一串字符流,会产生大量无用的应答报文,占满网络带宽。攻击者可以向子网广播地址发送源地址为受害网络或受害主机的UDP包,端口号用7或19。
• 子网络启用了此功能的每个系统都会向受害者的主机作出响应,从而引发大量的应答包,导致受害网络的阻塞或受害主机的崩溃;子网上没有启动这些功能的系统将产生一个ICMP不可达消息,因而仍然消耗带宽。也可将源端口改为Chargen,目的端口为ECHO,这样会自动不停地产生回应报文,其危害性更大。
处理方法:
• 检查进入防火墙的UDP报文,若目的端口号为7或19,则直接拒绝,并将攻击记录到日志,否则允许通过。
• firewall defend fraggle enable
• IP报文中有几个字段与分片有关:DF位、MF位、Fragment Offset 、Length 。如果上述字段的值出现矛盾,而设备处理不当,会对设备造成一定的影响,甚至瘫痪。通过不发送最后一个分片包占用设备资源导致资源不足,还有就是偏移重叠导致系统崩溃。
处理方法:
• 检查IP报文中与分片有关的字段(DF位、MF位、片偏置量、总长度)是否有以下矛盾,若发现含有以下矛盾,则丢弃。将攻击记录到日志:
o DF位为1,而MF位也为1或Fragment Offset不为0;
o DF位为0,而Fragment Offset + Length > 65535。
• firewall defend ip-fragment enable
• 为了获得访问权,或隐藏入侵者的身份信息,入侵者生成带有伪造源地址的报文,并使用该伪造源地址访问攻击目标,进行扫描、窥探等预备攻击。对于使用基于IP地址验证的应用来说,此攻击方法可以导致未被授权的用户可以访问目的系统,甚至是以root权限来访问。
处理方法:
• 检测每个接口流入的IP报文的源地址与目的地址,并对报文的源地址反查路由表,入接口与以该IP地址为目的地址的最佳出接口不相同的IP报文被视为IP Spoofing攻击,将被拒绝,并进行日志记录。
• firewall defend ip-spoofing enable
• IP报文的长度字段为16位,即IP报文的最大长度为65535 B。Ping of Death利用一些长度超大的ICMP报文对系统进行攻击。 对于有些路由器或系统,在接收到一个这样的报文后,由于处理不当,会造成系统崩溃、死机或重启。
处理方法:
• 检测ICMP请求报文长度是否超过65535 B,若超过,则丢弃报文并记录日志。
• firewall defend ping-of-death enable。
• TCP报文包含6个标志位:URG、ACK、PSH、RST、SYN、FIN ,不同的系统对这些标志位组合的应答是不同的,可用于操作系统探测。
• 不管端口是打开还是关闭,ACK与除RST外的其它任何一个状态位组合在一起,都会引起一个还没有发送请求的接收方的一个RST应答,这可用于探测主机的存在。不管端口是打开还是关闭,SYN | FIN | URG 会让接收方发送一个 RST | ACK 应答,这可用于探测主机的存在。
处理方法:
• 检查TCP报文的各个标志位,若出现以下任意一种情况,直接丢弃该报文并记录日志:
o 6个标志位全为1或6个标志位全为0;
o SYN和FIN位同时为1;SYN和RST同时为1;
o FIN和URG同时为1;RST和FIN同时为1;
• firewall defend tcp-flag enable
• 利用在TCP/IP堆栈中信任IP分片报文头所包含的信息实现。IP报文通过MF位、Offset字段、Length字段指示该分段所包含是原包哪一段信息,某些主机收到含有重叠偏移伪造分段时将崩溃。 已通过补丁修补。属于IP Fragment的一种。
处理方法:
• 缓存分片信息,每一个源地址、目的地址、分片ID相同的为一组,最大支持缓存10000组分片信息。防火墙上可以设置当出现重叠字段时所采用的规则。
• firewall defend teardrop enable
• WinNuke攻击通常向装有Windows系统的特定目标的NetBIOS端口(139)发送OOB (out-of-band)数据包,引起一个NetBIOS片断重叠,致使已与其他主机建立连接的目标主机崩溃。还有一种是IGMP分片报文,一般情况下,IGMP报文是不会分片的,所以,不少系统对IGMP分片报文的处理有问题。 软件开发过程中对某种特定类型的报文或请求没有处理,导致软件遇到这类型报文时运行出现异常,软件崩溃甚至系统崩溃。
处理方法:
• WinNuke攻击1:检测数据包目的端口是否为139,并且检查TCP-URG位是否被设置;
• WinNuke攻击2:检测进入的IGMP报文是否为分片报文,如果是分片报文,则直接丢弃。
• firewall defend winnuke enable
• 超大ICMP报文攻击是指利用长度超大的ICMP报文对目标系统进行攻击。对于有些系统,在接收到超大ICMP报文后,由于处理不当,会造成系统崩溃、死机或重启。
处理方法:
• 用户可以根据实际网络需要配置允许通过的ICMP报文的最大长度,当实际ICMP报文的长度超过该值时,防火墙认为发生了超大ICMP报文攻击,将丢弃该报文。
• 在用户视图下执行命令system-view,进入系统视图。
• 执行命令firewall defend large-icmp enable,开启超大ICMP报文攻击防范功能。
执行命令firewall defend large-icmp max-length [ length ],配置超大ICMP报文攻击防范参数。如果没有指定length参数,缺省值为4000字节。
• 不同的系统对ICMP不可达报文的处理方式不同,有的系统在收到网络或主机不可达的ICMP报文后,对后续发往此目的地址的报文直接认为不可达,从而切断了目的地与主机的连接。攻击者利用这一点,伪造不可达ICMP报文,切断受害者与目的地的连接,造成攻击。
处理方法:
• 启动ICMP不可达报文攻击防范功能,防火墙对ICMP不可达报文进行丢弃并记录攻击日志。
• firewall defend icmp-unreachable enable
• Tracert报文攻击是攻击者利用TTL为0时返回的ICMP超时报文,和达到目的地址时返回的ICMP端口不可达报文来发现报文到达目的地所经过的路径,它可以窥探网络的结构。
处理方法:
• 对于检测到的超时的ICMP报文或UDP报 文,或者目的端口不可达的报文,给予丢弃处理。
• firewall defend tracert enable
• URPF技术:单播逆向路径转发的简称,其主要功能是防止基于源地址欺骗的网络攻击行为。有两种模式:
严格模式:
• 建议在路由对称的环境下使用URPF严格模式,即:不仅要求在转发表中存在相应表项,还要求接口一定匹配才能通过URPF检查。
• 如果两个网络边界路由器(此处为USG)之间只有一条路径的话,路由能够保证是对称的,使用严格模式能够最大限度的保证网络的安全性。
• 对称/非对称路由的区别主要在于:网关设备在实现NAT时,对于内网某主机的若干个UDP连接请求,网关设备对应地在外网上所建立的UDP端口数量。对称NAT是一个请求对应一个端口,非对称NAT是多个请求对应一个端口(Cone NAT)。
松散模式:
• 在不能保证路由对称的环境下使用URPF的松散模式,即:不检查接口是否匹配,只要存在针对源地址的路由,报文就可以通过。
URPF的处理流程:
• 如果报文的源地址在USG的FIB表中存在。
o strict型(严格模式)检查,反向查找报文出接口,若只有一个出接口和报文的入接口一一匹配,则报文通过检查;否则报文将被拒绝。当有多个出接口和报文的入接口相匹配时,必须使用loose型检查。
o 对于loose型(松散模式)检查,当报文的源地址在USG的FIB表中存在(不管反向查找的出接口和报文的入接口是否一致),报文就通过检查;否则报文将被拒绝。
• 如果报文的源地址在USG的FIB表中不存在,则检查缺省路由及URPF的allow-default-route参数。
o 对于配置了缺省路由,但没有配置参数allow-default-route的情况。只要报文的源地址在USG的FIB表中不存在,该报文都将被拒绝。
o 对于配置了缺省路由,同时又配置了参数allow-default-route的情况。如果是strict检查,只要缺省路由的出接口与报文的入接口一致,则报文将通过URPF的检查,进行正常的转发。如果缺省路由的出接口和报文的入接口不一致,则报文将拒绝。如果是loose型检查,报文都将通过URPF的检查,进行正常的转发。
• 当且仅当报文被拒绝后,才去匹配ACL列表。如果被ACL允许通过,则报文继续进行正常的转发;如果被ACL拒绝,则报文被丢弃。