14-攻击检测与防范配置
本章节下载: 14-攻击检测与防范配置 (234.39 KB)
目 录
本特性能够检测单包攻击、扫描攻击和泛洪攻击等多种类型的网络攻击,并能对各类型攻击采取合理的防范措施。
· 攻击者通过向目标系统发送带有攻击目的的IP报文,如分片重叠的IP报文、TCP标志位非法的报文,使得目标系统在处理这样的IP报文时出错、崩溃;
· 攻击者可以通过发送正常的报文,如ICMP报文、特殊类型的IP option报文,来干扰正常网络连接或探测网络结构,给目标系统带来损失;
· 攻击者还可通过发送大量无用报文占用网络带宽,造成拒绝服务攻击。
攻击者向用户发送ICMP重定向报文,更改用户主机的路由表,干扰用户主机正常的IP报文转发。 |
|
某些系统在收到不可达的ICMP报文后,对于后续发往此目的地的报文判断为不可达并切断对应的网络连接。攻击者通过发送ICMP不可达报文,达到切断目标主机网络连接的目的。 |
|
ICMP报文中,type值的表示不同含义的报文,接收者需要根据不同的类型进行响应,攻击者通过构造特定type类型的ICMP报文来达到影响系统正常处理报文等目的。 |
|
ICMPv6报文中,type值的表示不同含义的报文,接收者需要根据不同的类型进行响应,攻击者通过构造特定type类型的ICMPv6报文来达到影响系统正常处理报文等目的。 |
|
攻击者向目标主机发送大量源IP地址和目的IP地址都是目标主机自身的TCP SYN报文,使得目标主机的半连接资源耗尽,最终不能正常工作。 |
|
某些主机或设备收到超大的报文,会引起内存分配错误而导致协议栈崩溃。攻击者通过发送超大ICMP报文,让目标主机崩溃,达到攻击目的。 |
|
某些主机或设备收到超大的报文,会引起内存分配错误而导致协议栈崩溃。攻击者通过发送超大ICMPv6报文,让目标主机崩溃,达到攻击目的。 |
|
攻击者利用IP报文中的异常选项的设置,达到探测网络结构的目的,也可由于系统缺乏对错误报文的处理而造成系统崩溃。 |
|
攻击者通过向目标主机发送分片偏移小于5的分片报文,导致主机对分片报文进行重组时发生错误而造成系统崩溃。 |
|
攻击者通过向目标主机发送源IP地址和目的IP地址相同的报文,造成主机系统处理异常。 |
|
攻击者构造一种特殊的IP分片来进行微小分片的攻击,这种报文首片很小,未能包含完整的传输层信息,因此能够绕过某些包过滤防火墙的过滤规则,达到攻击目标网络的目的。 |
|
攻击者向目标网络发送ICMP应答请求,该请求包的目的地址设置为目标网络的广播地址,这样该网络中的所有主机都会对此ICMP应答请求作出答复,导致网络阻塞,从而达到令目标网络中主机拒绝服务的攻击目的。 |
|
不同操作系统对于非常规的TCP标志位有不同的处理。攻击者通过发送带有非常规TCP标志的报文探测目标主机的操作系统类型,若操作系统对这类报文处理不当,攻击者便可达到使目标主机系统崩溃的目的。 |
|
攻击者连续发送TTL从1开始递增的目的端口号较大的UDP报文,报文每经过一个路由器,其TTL都会减1,当报文的TTL为0时,路由器会给报文的源IP设备发送一个TTL超时的ICMP报文,攻击者借此来探测网络的拓扑结构。 |
|
攻击者向安装(或使用)Windows系统的特定目标的NetBIOS端口(139)发送OOB(Out-Of-Band,带外)数据包,这些攻击报文的指针字段与实际的位置不符,从而引起一个NetBIOS片断重叠,致使已与其他主机建立连接的目标主机在处理这些数据的时候系统崩溃。 |
|
攻击者发送畸形的UDP报文,其IP首部中的报文总长度大于IP首部长度与UDP首部中标识的UDP数据长度之和,可能造成收到此报文的系统处理数据时越界访问非法内存,导致系统异常。 |
|
攻击者向Windows系统发送目的端口为135(Windows定位服务)源端口为135、7或19(UDP Chargen服务)的报文,使被攻击系统不断应答报文,最终耗尽CPU资源。 |
|
攻击者通过向目标网络发送UDP端口为7的ECHO报文或者UDP端口为19的Chargen报文,令网络产生大量无用的应答报文,占满网络带宽,达到攻击目的。 |
|
攻击者构造标志位为最后一片且长度大于65535的ICMP报文发送给目标主机,可能导致系统处理数据时越界访问非法内存,造成系统错误甚至系统崩溃。 |
扫描攻击是指,攻击者运用扫描工具对网络进行主机地址或端口的扫描,通过准确定位潜在目标的位置,探测目标系统的网络拓扑结构和开放的服务端口,为进一步侵入目标系统做准备。
攻击者发送大量目的IP地址变化的探测报文,通过收到的回应报文来确定活跃的目标主机,以便针对这些主机进行下一步的攻击。
攻击者获取了活动目标主机的IP地址后,向目标主机发送大量目的端口变化的探测报文,通过收到的回应报文来确定目标主机开放的服务端口,然后针对活动目标主机开放的服务端口选择合适的攻击方式或攻击工具进行进一步的攻击。
· 分布式Port scan攻击
攻击者控制多台主机,分别向特定目标主机发送探测报文,通过收集所有被控制的主机的回应报文,确定目标主机开启的服务端口,以便进一步实施攻击。
泛洪攻击是指攻击者在短时间内向目标系统发送大量的虚假请求,导致目标系统疲于应付无用信息,从而无法为合法用户提供正常服务,即发生拒绝服务。
· SYN flood攻击
根据TCP协议,服务器收到SYN报文后需要建立半连接并回应SYN ACK报文,然后等待客户端的ACK报文来建立正式连接。由于资源的限制,操作系统的TCP/IP协议栈只能允许有限个TCP连接。攻击者向服务器发送大量伪造源地址的SYN报文后,由于攻击报文是伪造的,服务器不会收到客户端的ACK报文,从而导致服务器上遗留了大量无效的半连接,耗尽其系统资源,使正常的用户无法访问,直到半连接超时。
ACK报文为只有ACK标志位置位的TCP报文,服务器收到ACK报文时,需要查找对应的连接。若攻击者发送大量这样的报文,服务器需要进行大量的查询工作,消耗正常处理的系统资源,影响正常的报文处理。
由于SYN ACK报文为SYN报文的后续报文,服务器收到SYN ACK报文时,需要查找对应的SYN报文。若攻击者发送大量这样的报文,服务器需要进行大量的查询工作,消耗正常处理的系统资源,影响正常的报文处理。
FIN报文用于关闭TCP连接。若攻击者向服务器发送大量的伪造的FIN报文,可能会使服务器关闭掉正常的连接。同时,服务器收到FIN报文时,需要查找对应的连接,大量的无效查询操作会消耗系统资源,影响正常的报文处理。
RST报文为TCP连接的复位报文,用于在异常情况下关闭TCP连接。如果攻击者向服务器发送大量伪造的RST报文,可能会使服务器关闭正常的TCP连接。另外,服务器收到RST报文时,需要查找对应的连接,大量的无效查询操作会消耗系统资源,影响正常的报文处理。
DNS服务器收到任何DNS Query报文时都会试图进行域名解析并且回复该DNS报文。攻击者通过构造并向DNS服务器发送大量虚假DNS Query报文,占用DNS服务器的带宽或计算资源,使得正常的DNS Query得不到处理。
HTTP服务器收到HTTP GET命令时可能进行一系列复杂的操作,包括字符串搜索、数据库遍历、数据组装、格式化转换等等,这些操作会消耗大量系统资源,因此当HTTP请求的速率超过了服务器的处理能力时,服务器就无法正常提供服务。攻击者通过构造并发送大量虚假HTTP GET请求,使服务器崩溃,无法响应正常的用户请求。
ICMP flood攻击是指,攻击者在短时间内向特定目标发送大量的ICMP请求报文(例如ping报文),使其忙于回复这些请求,致使目标系统负担过重而不能处理正常的业务。
· ICMPv6 flood攻击
ICMPv6 flood攻击是指,攻击者在短时间内向特定目标发送大量的ICMPv6请求报文(例如ping报文),使其忙于回复这些请求,致使目标系统负担过重而不能处理正常的业务。
UDP flood攻击是指,攻击者在短时间内向特定目标发送大量的UDP报文,占用目标主机的带宽,致使目标主机不能处理正常的业务。
黑名单功能是根据报文的源IP地址进行报文过滤的一种攻击防范特性。同基于ACL(Access Control List,访问控制列表)的包过滤功能相比,黑名单进行报文匹配的方式更为简单,可以实现报文的高速过滤和有效屏蔽。
黑名单可以由设备动态或由用户手工进行添加、删除,具体机制如下:
· 动态添加黑名单是与扫描攻击防范功能配合实现的,动态生成的黑名单表项会在一定的时间之后老化。当设备根据报文的行为特征检测到某特定IP地址的扫描攻击企图之后,便将攻击者的IP地址自动加入黑名单,之后该IP地址发送的报文会被设备过滤掉。
· 手动配置的黑名单表项分为永久黑名单表项和非永久黑名单表项。永久黑名单表项建立后,一直存在,除非用户手工删除该表项。非永久黑名单表项的老化时间由用户指定,超出老化时间后,设备会自动将该黑名单表项删除。
必选 |
|||
配置单包攻击防范日志的非聚合输出功能 |
|||
在配置攻击防范之前,必须首先创建一个攻击防范策略,并进入该攻击防范策略视图。在该视图下,可以定义一个或多个用于检测攻击的特征项,以及对检测到的攻击报文所采取的防范措施。
在一个攻击防范策略中,可以根据实际的网络安全需求来配置策略中的具体内容,主要包括针对攻击类型指定检测条件及采取的防范措施。
不同类型的攻击防范策略在配置内容上有所不同,下面将按照攻击类型(单包攻击、扫描攻击、泛洪攻击)分别进行介绍。
单包攻击防范主要通过分析经过设备的报文特征来判断报文是否具有攻击性。若设备检测到某报文具有攻击性,则默认会输出告警日志,另外还可以根据配置将检测到的攻击报文做丢弃处理。
signature detect { fraggle | fragment | impossible | ip-option-abnormal | land | large-icmp | large-icmpv6 | ping-of-death | smurf | snork | tcp-all-flags | tcp-fin-only | tcp-invalid-flags | tcp-null-flag | tcp-syn-fin | teardrop | tiny-fragment | traceroute | udp-bomb | winnuke } [ action { { drop | logging } * | none } ] signature detect icmp-type { icmp-type-value | address-mask-reply | address-mask-request | destination-unreachable | echo-reply | echo-request | information-reply | information-request | parameter-problem | redirect | source-quench | time-exceeded | timestamp-reply | timestamp-request } [ action { { drop | logging } * | none } ] signature detect ip-option { option-code | internet-timestamp | loose-source-routing | record-route | route-alert | security | stream-id | strict-source-routing } [ action { { drop | logging } * | none } ] |
||
(可选)配置启动Large ICMP攻击防范的ICMP报文长度的最大值 |
缺省情况下,ICMP报文和ICMPv6报文长度的最大值均为4000字节 |
|
signature level { high | info | low | medium } action { { drop | logging } * | none } |
缺省情况下,对info和low级别的单包攻击的处理行为是发送日志;对medium和high级别的单包攻击的处理行为是发送日志并丢包 |
|
(可选)开启指定级别单包攻击报文的特征检测 |
缺省情况下,未开启任何级别的单包攻击报文的特征检测 |
扫描攻击防范主要通过监测网络使用者向目标系统发起连接的速率来检测其探测行为。若设备监测到某IP地址主动发起的连接速率达到或超过了一定阈值,则可以根据配置输出告警日志、丢弃来自该IP地址的后续报文,或者将检测到的攻击者的源IP地址加入黑名单。
若指定的扫描攻击的处理行为为加入黑名单,则需要开启全局上的黑名单过滤功能来配合。
泛洪攻击防范主要用于保护服务器,通过监测向服务器发起连接请求的速率来检测各类泛洪攻击,当它监测到向某服务器发送报文的速率持续达到或超过了指定的触发阈值时,即认为该服务器受到了攻击,则进入攻击防范状态,并根据配置启动相应的防范措施(输出告警日志、对后续新建连接的报文进行丢弃处理或者进行客户端验证)。此后,当设备检测到向该服务器发送报文的速率低于恢复阈值(触发阈值的3/4)时,即认为攻击结束,则由攻击防范状态恢复为攻击检测状态,并停止执行防范措施。
需要注意的是,当设备上安装了多块业务板时,每种泛洪攻击防范策略中配置的全局触发阈值为每块业务板上的全局触发阈值,因而整机的该类泛洪攻击的全局触发阈值即为每块业务板上的全局触发阈值与业务板数目的乘积。
为保护指定IP地址,攻击防范策略中支持基于IP地址的攻击防范配置。对于所有非受保护IP地址,可以统一开启攻击防范检测,并采用全局的参数设置来进行保护。
(1) 配置SYN flood攻击防范策略
表1-6 配置SYN flood攻击防范策略
对所有非受保护IP地址开启SYN flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启SYN flood攻击防范检测 |
|
配置SYN flood攻击防范的全局触发阈值 |
缺省情况下,SYN flood攻击防范的全局触发阈值为1000 |
|
配置SYN flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的SYN flood攻击采取任何措施 |
|
开启对指定IP地址的SYN flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置SYN flood攻击防范检测 |
(2) 配置ACK flood攻击防范策略
表1-7 配置ACK flood攻击防范策略
对所有非受保护IP地址开启ACK flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启ACK flood攻击防范检测 |
|
配置ACK flood攻击防范全局触发阈值 |
缺省情况下,ACK flood攻击防范的全局触发阈值为1000 |
|
配置ACK flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的ACK flood攻击采取任何措施 |
|
开启对指定IP地址的ACK flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置ACK flood攻击防范检测 |
(3) 配置SYN-ACK flood攻击防范策略
表1-8 配置SYN-ACK flood攻击防范策略
对所有非受保护IP地址开启SYN-ACK flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启SYN-ACK flood攻击防范检测 |
|
配置SYN-ACK flood攻击防范的全局触发阈值 |
缺省情况下,SYN-ACK flood攻击防范的全局触发阈值为1000 |
|
配置SYN-ACK flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的SYN-ACK flood攻击采取任何措施 |
|
开启对指定IP地址的SYN-ACK flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置SYN-ACK flood攻击防范检测 |
(4) 配置FIN flood攻击防范策略
表1-9 配置FIN flood攻击防范策略
对所有非受保护IP地址开启FIN flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启FIN flood攻击防范检测 |
|
配置FIN flood攻击防范的全局触发阈值 |
缺省情况下,FIN flood攻击防范的全局触发阈值为1000 |
|
配置FIN flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的FIN flood攻击采取任何措施 |
|
开启对指定IP地址的FIN flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置FIN flood攻击防范检测 |
(5) 配置RST flood攻击防范策略
表1-10 配置RST flood攻击防范策略
对所有非受保护IP地址开启RST flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启RST flood攻击防范检测 |
|
配置RST flood攻击防范的全局触发阈值 |
缺省情况下,RST flood攻击防范的全局触发阈值为1000 |
|
配置全局的RST flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的RST flood攻击采取任何措施 |
|
开启对指定IP地址的RST flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置RST flood攻击防范检测 |
(6) 配置ICMP flood攻击防范策略
表1-11 配置ICMP flood攻击防范策略
对所有非受保护IPv4地址开启ICMP flood攻击防范检测 |
缺省情况下,未对任何非受保护IPv4地址开启ICMP flood攻击防范检测 |
|
配置ICMP flood攻击防范的全局触发阈值 |
缺省情况下,ICMP flood攻击防范的全局触发阈值为1000 |
|
配置ICMP flood攻击防范的全局处理动作 |
缺省情况下,不对检测到的ICMP flood攻击采取任何措施 |
|
开启对指定IPv4地址的ICMP flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IPv4地址配置ICMP flood 攻击防范触发阈值 |
(7) 配置ICMPv6 flood攻击防范策略
表1-12 配置ICMP flood攻击防范策略
对所有非受保护IPv6地址开启ICMPv6 flood攻击防范检测 |
缺省情况下,未对任何非受保护IPv6地址开启ICMPv6 flood攻击防范检测 |
|
配置ICMPv6 flood攻击防范的全局触发阈值 |
缺省情况下,ICMPv6 flood攻击防范的全局触发阈值为1000 |
|
配置ICMPv6 flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的ICMPv6 flood攻击采取任何防范措施 |
|
开启对指定IPv6地址的ICMPv6 flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IPv6地址配置ICMPv6 flood攻击防范检测 |
(8) 配置UDP flood攻击防范策略
表1-13 配置UDP flood攻击防范策略
对所有非受保护IP地址开启UDP flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启UDP flood攻击防范检测 |
|
配置UDP flood攻击防范的全局触发阈值 |
缺省情况下,UDP flood攻击防范的全局触发阈值为1000 |
|
配置UDP flood攻击防范检测的全局处理行为 |
缺省情况下,不对检测到的UDP flood攻击进行任何处理 |
|
开启对指定IP地址的UDP flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置UDP flood攻击防范检测 |
(9) 配置DNS flood攻击防范策略
表1-14 配置DNS flood攻击防范策略
对所有非受保护IP地址开启DNS flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启DNS flood攻击防范检测 |
|
配置DNS flood攻击防范的全局触发阈值 |
缺省情况下,DNS flood攻击防范的全局触发阈值为1000 |
|
(可选)配置DNS flood攻击防范的全局检测端口号 |
缺省情况下,DNS flood攻击防范的全局检测端口号为53 |
|
配置对DNS flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的DNS flood攻击采取任何措施 |
|
开启对指定IP地址的DNS flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置DNS flood攻击防范检测 |
(10) 配置HTTP flood攻击防范策略
表1-15 配置HTTP flood攻击防范策略
对所有非受保护IP地址开启HTTP flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启HTTP flood攻击防范检测 |
|
配置HTTP flood攻击防范的全局触发阈值 |
缺省情况下,HTTP flood攻击防范的全局触发阈值为1000 |
|
(可选)配置HTTP flood攻击防范的全局检测端口号 |
缺省情况下,HTTP flood攻击防范的全局检测端口号为80 |
|
配置对HTTP flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的HTTP flood攻击采取任何措施 |
|
开启对指定IP地址的HTTP flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置HTTP flood攻击防范检测 |
攻击防范例外列表用于过滤不需要进行攻击防范检测的主机报文,与指定的ACL permit规则匹配的报文将不会受到任何类型的攻击防范检测。该配置用于过滤某些被信任的安全主机发送的报文,可以有效的减小误报率,并提高服务器处理效率。
需要注意的是,例外列表引用的ACL的permit规则中仅源地址、目的地址、源端口、目的端口、协议号、L3VPN和非首片分片标记参数用于匹配报文。
通过在本机应用攻击防范策略,使已配置的攻击防范策略对目的地址为本机的报文生效。
可以通过在本机上应用攻击防范策略提高对目的地址为本机的攻击报文的处理效率。
对日志进行聚合输出是指,在一定时间内,对在同一个接口上检测到的相同攻击类型、相同攻击防范动作、相同的源/目的地址以及属于相同VPN的单包攻击的所有日志聚合成一条日志输出。
通常不建议开启单包攻击防范的日志非聚合输出功能,因为在单包攻击较为频繁的情况下,它会导致大量日志信息输出,占用控制台的显示资源。
表1-18 配置单包攻击防范日志的非聚合输出功能
开启对单包攻击防范日志的非聚合输出功能 |
缺省情况下,单包攻击防范的日志信息经系统聚合后再输出 |
通过配置黑名单功能可以对来自指定IP地址的报文进行过滤。
黑名单表项除了可以手工添加之外,还可以通过扫描攻击防范自动添加。具体来讲就是,在黑名单功能使能的前提下,若配置了扫描攻击防范策略及相应的黑名单添加功能,则可以将检测到的扫描攻击方IP地址添加到黑名单中。扫描攻击防范添加的黑名单必定会老化,老化时间可配。关于扫描攻击防范的相关配置请参见“1.5.2 2. 配置扫描攻击防范策略”。
表1-19 配置黑名单
(可选)添加IPv4黑名单表项 |
缺省情况下,无IPv4黑名单表项 |
|
(可选)添加IPv6黑名单表项 |
blacklist ipv6 source-ipv6-address [ vpn-instance vpn-instance-name ] [ timeout minutes ] |
缺省情况下,无IPv6黑名单表项 |
(可选)使能黑名单日志功能 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后攻击检测及防范的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行reset命令可以清除攻击检测及防范的统计信息。
网络管理员通过流量分析发现外部网络中存在一个攻击者Host D,需要将来自Host D的报文在Router上永远过滤掉。另外,网络管理员为了暂时控制内部网络Host C的访问行为,需要将Router上收到的Host C的报文阻止50分钟。
# 配置各接口的IP地址,略。
# 开启全局黑名单过滤功能。
[Router] blacklist global enable
# 将Host D的IP地址5.5.5.5添加到黑名单列表中,老化时间使用缺省情况(永不老化)。
# 将Host C的IP地址192.168.1.4添加到黑名单列表中,老化时间为50分钟。
[Router] blacklist ip 192.168.1.4 timeout 50
完成以上配置后,可以通过display blacklist命令查看已添加的黑名单信息。
IP address VPN instance DS-Lite tunnel peer Type TTL(sec) Dropped
5.5.5.5 -- -- Manual Never 0
192.168.1.4 -- -- Manual 2989 0
配置生效后,Router对来自Host D的报文一律进行丢弃处理,除非管理员认为Host D不再是攻击者,通过undo blacklist ip 5.5.5.5将其从黑名单中删除;如果Router接收到来自Host C的报文,则在50分钟之内,一律对其进行丢弃处理,50分钟之后,才进行正常转发。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!