APP下载

防御单包攻击

2017-03-09

网络安全和信息化 2017年9期
关键词:表项黑名单报文

在防火墙对单包攻击,默认一般是没有开启的。单包攻击包括扫描探测攻击,畸形报文攻击和特殊报文攻击等。当黑客对目标主机进行攻击前,一般都是使用各种扫描工具对其进行扫描探测(例如IP地址扫描、端口扫描等),来发现该机安装的是什么操作系统,开放了哪些端口,运行了哪些服务等等。根据检测到信息,黑客就可以有针对性的发起攻击。

防御黑客的扫描探测

黑客的扫描行为是一种潜在的攻击行为,虽然不会造成直接的破坏效果,但是这通常是黑客发起真正攻击的前兆,因此管理员需要针锋相对的采取防范措施,让黑客碰壁而回。针对探测攻击,一般处理方法是预设一个阀值,在一定时间内防火墙收到大量数据包后,发现其源IP地址不变,但目标IP不断变化,因为正常的报文很少具有这种特点,就可以认为这是扫描攻击,即检测进入防火墙的ICMP、TCP和UDP报文,由该报文的源IP地址获取表项的索引,如果目标IP地址和前一报文的IP不同,就将表项的总报文数量累加。当在一定时间内报文的数量达到预设的阀值,则将其记录到日志中,同时将其该源IP加入到黑名单中。

例如在登录到华为USG6550防火墙命令窗口,输入“system-veiw”命令进入系统视图,执行“firewall blacklist enable”,“firewall defend ip-sweep enable”,“firewall defend ip-sweep max-rate 1000”,“firewall defend ip-sweep balcklist-time 20”命令,则可以黑名单功能,并开启地址扫描防御功能,当每秒接收到1000个数据包,即扫描速度的阀值为1000包/秒,就将数据包中的源IP加入黑名单,当超过20分钟后,将其从黑名单中释放。除了IP扫描外,黑客也会发起端口扫描探测。即向大范围的主机的一系列TCP/UDP端口进行连接,黑客根据应答报文,可以判断目标主机开启了哪些端口以及与之关联的服务信息。而处理方法是检测进入防火墙的ICMP、TCP和UDP报文,由该报文的源IP地址来获取表项的索引,如果目标端口和前一报文不同,就将表项的总报文数量累加。当在一定时间内报文的数量达到预设的阀值,则将其记录到日志中,同时将其该源IP加入到黑名单中。

例如 执 行“firewall blacklist enable”,“firewall defend portscan enable”,“firewall defend port-scan max-rate 1000”,“firewall defend port-scan balcklist-time 20”命令,开启端口扫描防御功能,当每秒接收到1000个数据包,即扫描速度的阀值为1000包/秒。就将数据包中的源IP加入黑名单,当超过20分钟后,将其从黑名单中释放。这里的1000为同一源地址向外发送报文的目标端口变化速率的阀值。当有攻击者进行端口扫描时,端口扫描攻击防范功能和动态黑名单功能即可生效。执行“display firewall blacklist item”命令,查看当前系统中的黑名单表项,其中包括已经添加的静态黑名单表项和系统自动添加的动态黑名单表项。

除了在命令行进行配置外,也可以登录到防火墙Web设置界面,点击工具栏上的“策略”项,在左侧点击“安全防护”、“攻击防范”项,在右侧的“单包攻击”面板中的“防范动作”栏中选择处理方式,包括警告和丢弃,在“配置扫描类攻击方法”栏中选择“地址扫描”项,可以设置最大扫描速率和黑名单老化时间。选择“端口扫描”项,开启端口扫描保护功能,设置最大扫描速率和黑名单老化时间。当超过该阀值,就将其发送到黑名单中。在左侧点击“黑名单”项,在右侧选择“启用”项激活该功能。之后可以随时查看黑名单信息,包括黑名单类型,用户/IP地址,剩余时间/超时时间,计入原因,加入时间等内容。点击“新建”按钮,可以手工添加黑名单项目,针对用户,源地址,目的地址设定锁定对象,设置合适的超时时间。

防御特殊报文攻击

特殊报文攻击是一种潜在的攻击行为,特殊报文其实是正常的报文,例如对于超大ICMP报文攻击来说,指的是黑客利用长度超大的ICMP报文对目标主机进行攻击,如果目标主机对此处理不当的话,就会造成系统宕机等情况。处理方法是可以根据使其情况,在防火墙上配置允许通过的ICMP报文的最大长度。如果违规,防火墙就会将其丢弃,执行“firewall defend largeicmp enable”,“firewall defend large-icmp maxlength xxxx”命令,开启防御超大ICMP报文攻击功能,并设置允许通过长度为指定值的ICMP报文,如果不指定的话,默认为4000字节。

黑客为了切断受害主机和目标网络的连接,会采取ICMP不可达报文攻击方式,因为不同的系统对于ICMP不可到达报文的处理是不同的,有的在处理时认为对于后继发往目标地址的报文是不可达的,从而切断受害主机和目标网络的连接。即当正常用户在访问目标主机时,黑客对其进行了拦截,并冒充目标主机给该用户发送ICMP不可达报文,让该用户主机误以为连接失败。处理方式是执行“firewall defend icmp-unreachable enable”命 令,启 动 针 对ICMP不可到达报文的防范功能,对该类报文进行丢去并记录日志。当然,这也会带来用户无法收到正常的不可到达ICMP报文。

由此不难看出,黑客的攻击手法其实是很灵活的,不是一味的进行简单粗暴的破坏活动。例如让正常用户无法和目标主机正常连接,这样也达到了攻击的目的。大家知道,利用系统自带的“Tracert”命令,可以探测网络连接的接口,例如从本机到目标服务器之间经过了哪些网络设备。黑客会利用这一原理发起Tracert报文攻击,即利用TTL为0时返回的ICMP超时报文,和达到目标地址是返回的ICMP端口不可到达报文来发现报文到达目标主机的路径,进而窥视网络的机构。防御方法是在防火墙上执行“firewall defend tracert enable”命令,丢弃检测到的ICMP报文或者UDP报文以及端口不可达报文。

对于特殊报文攻击,除了在命令行进行配置外,也可以登录到防火墙Web设置界面,点击工具栏上的“策略”项,在左侧点击“安全防护”、“攻击防范”项,在右侧的“单包攻击”面板中的“配置特殊报文控制类攻击防范”栏中选择对应的防御项目,包括超大ICMP报文控制,ICMP不可到达报文控制,时间戳选项报文控制,路由记录选项 IP报 文、Tracert、ICMP重定向报文控制,源站选路选项IP报文控制等,即可防御对应的攻击方式。选择“启用非法访问攻击防范”项,可以设置非法访问数量的阀值、统计非法访问数量的时间间隔、非法访问的超时时间等参数。点击“应用”按钮,保存配置信息。

使用URPF机制,防御虚假地址欺骗

为了防止黑客使用基于源地址欺骗的网络攻击行为,可以使用单播逆向路径转发(URPF)技术加以应对。对于一般的路由器或者防火墙来说,当其在转发数据包时,一般都是只查看数据包的目的地址,而很少去查看其源地址。

但是,当黑客发起攻击时,经常会使用虚假的源地址,不仅可以进行攻击而且还可以逃避检测。对于支持URPF的路由器或者防火墙来说,不仅可以查看数据包的目的地址,在转发之前还会对其源地址进行检查。其中URPF支持严格模式和松散模式。

对于松散模式来说,当在防火墙的某端口上开启了URPF功能后,当在该段接口上接收到数据包后,会检测其源地址信息,并在自身的路由表中查看与其对应的端口信息,只要该端口存在就转发,如果该端口不存在就将其丢弃。该模式的特点是不检查端口是否匹配,只要在路由表中在针对源地址的路由信息,既可以进行数据包的转发。对于严格模式来说,当数据包达到该接口后,不仅会查看其源IP地址信息,以及其在本地路由表上是否存在明细路由,而且要查看该条路由信息是否从本接口学习到的。如果从路由表查到的和源地址对应的端口和本端口不一致的话,就将其丢弃。该模式的特点是不仅要求在路由表或者转发表中存在相应表项,而且要求端口必须匹配。

由此看出,严格模式比松散模式控制的更加严密。URPF处理流程是如果报文的源地址在防火墙中的FIB转发表中存在的话,对于严格模式来说,会反向查找报文出口,如果只有一个出口和报文的入口匹配,则检测通过否则将被拒绝(这里的拒绝还可以进行下面的ACL表匹配)。当有多个出接口和报文的入接口相匹配时,必须使用松散型检查。对于松散模式来说,当报文的源地址在FIB中存在,报文即可通过检测否则将被丢弃。如果报文的源地址在FIB表中不存在,则检查默认路由以及URPF的Allow-Default-Route参数,如果配置了默认路由,但是没有配置Allow-Default-Route参数,只要该报文的源地址在FIB表中不存在,将拒绝转发报文。

如果同时配置了Allow-Default-Route参数,对于严格模式来说,只要默认路由的出口和报文的入口一致,就可以通过检测。如果两者不一致将拒绝报文通过。对于松散模式来说,报文可以通过检查顺利转发。注意,对于默认路由来说,只有在明确知道默认路由指向哪里时,并且目标都是内部网络,才可以匹配默认路由。

上面谈到当报文被拒绝后,才可以去匹配ACL列表,如果ACL列表允许其通过,该报文可以正常被转发,如果遭到拒绝则报文被丢弃。例如在防火墙的命令行中执行“interface GigabitEthernet 0/0/1”命令,进 入GigabitEthernet 0/0/1接口视图。执行“ip urpf strict acl xxx”命令,在该接口上以严格模式启用URPF功能,这里的“xxx”为ACL表的编号。

猜你喜欢

表项黑名单报文
基于J1939 协议多包报文的时序研究及应用
防晒黑名单?第2款就翻车了!
一种改进的TCAM路由表项管理算法及实现
CTCS-2级报文数据管理需求分析和实现
基于ARMA模型预测的交换机流表更新算法
浅析反驳类报文要点
SDN数据中心网络基于流表项转换的流表调度优化
受惩黑名单
受惩黑名单
黑名单