FortiGate DoS策略工作原理

DoS防护

  1. 拒绝服务(DoS)策略会检查到达FortiGate接口的网络流量是否存在异常模式,这通常表明存在攻击。当攻击者启动与目标的异常大量会话时(穿过或到达FortiGate),将发生拒绝服务。大量会话会减慢或禁用目标系统,从而阻止合法用户使用它。
  2. 在安全策略之前先检查DoS策略,以防止攻击触发更多的资源密集型安全保护并减慢FortiGate的速度。

DoS异常

FortiGate针对特定的异常流量设置了预定义的异常种类,用户无法添加自定义的DoS异常,以下是每个异常阈值的解释。

  1. L3异常:
    • ip_src_session(并发):如果来自一个源IP地址的并发IP连接数超过配置的阈值,则将执行配置的操作。建议值:5000。
    • ip_dst_session(并发):如果到一个目标IP地址的并发IP连接数超过配置的阈值,则将执行配置的操作。建议值:5000。
  2. L4异常
    • tcp_syn_flood(速率):如果到一个目标IP地址的新TCP连接(包括重传)的SYN数据包速率超过配置的阈值,则执行配置的操作。建议值:2000/s。
    • tcp_port_scan(速率):如果来自一个源IP地址的新TCP连接的SYN包速率(包括重传)超过了配置的阈值,则将执行配置的操作。建议值:1000/s。
    • tcp_src_session(并发):如果来自一个源IP地址的并发TCP连接数超过配置的阈值,则将执行配置的操作。建议值:5000。
    • tcp_dst_session(并发):如果到一个目标IP地址的并发TCP连接数超过配置的阈值,则将执行配置的操作。建议值:5000。
    • udp_flood(速率):如果到一个目标IP地址的UDP会话速率超过配置的阈值,则将执行配置的操作。建议值:2000/s。
    • udp_scan(速率):如果来自一个源IP地址的UDP会话速率超过配置的阈值,则将执行配置的操作。建议值:2000/s。
    • udp_src_session(并发):如果来自一个源IP地址的并发UDP连接数超过配置的阈值,则将执行配置的操作。建议值:5000。
    • udp_dst_session(并发):如果到一个目标IP地址的并发UDP连接数超过配置的阈值,则将执行配置的操作。建议值:5000。
    • icmp_flood(速率):如果发送到一个目标IP地址的ICMP数据包的速率超过配置的阈值,则将执行配置的操作。建议值:250/s。
    • icmp_sweep(速率):如果来自一个源IP地址的ICMP数据包的速率超过配置的阈值,则将执行配置的操作。建议值:100/s。
    • icmp_src_session(并发):如果来自一个源IP地址的并发ICMP连接数超过配置的阈值,则将执行配置的操作。建议值:300。
    • icmp_dst_session(并发):如果到一个目标IP地址的并发ICMP连接数超过配置的阈值,则将执行配置的操作。 建议值:1000。
    • sctp_flood(速率):如果发送到一个目标IP地址的SCTP数据包的速率超过配置的阈值,则将执行配置的操作。建议值:2000/s。
    • sctp_scan(速率):如果来自一个源IP地址的SCTP会话速率超过配置的阈值,则将执行配置的操作。建议值:1000/s。
    • sctp_src_session(并发):如果来自一个源IP地址的并发SCTP连接数超过配置的阈值,则将执行配置的操作。建议值:5000。
    • sctp_dst_session(并发):如果到一个目标IP地址的并发SCTP连接数超过配置的阈值,则执行配置的操作。 建议值:5000。

基于并发会话数的阈值

对于基于并发会话数的阈值,DoS策略会将超过设置阈值的连接阻断。这里举个例子:

  1. 在FortiGate的DoS策略中,将icmp_src_session的阈值设置为10,攻击者发送了10条匹配异常条件的连接通过FortiGate。
  2. 这10条连接将被放通,但第11条及以后匹配的连接将被阻断。此时,匹配异常条件的允许通过会话计数器变为10。
  3. 之后,这10条连接没有后续报文传输,FortiGate针对ICMP流量的的老化时间为60s,那么60s的计时器到期后,匹配异常条件的允许通过会话计数器被重置为0。
  4. 所以,如果在阻止之前允许进行10个会话,则在60秒后,将允许再进行10个会话。

基于速率的阈值

对于基于速率的阈值,其中阈值以每秒通过或到达的数据包为单位进行度量,“阻止”操作可通过两种方式防止异常流量瘫痪目标系统:

  1. continuous:检测到异常后立即阻止数据包,并在速率高于阈值时继续阻止数据包。此为默认配置。

  2. periodical:检测到异常后,允许每秒配置的数据包数量。

  3. 这里举个例子:

    • 在FortiGate的DoS策略中,将icmp_flood的阈值设置为10/s,攻击者以20pps的速率启动1000个数据包的连续ping通过FortiGate。

    • 在continuous模式下,如果前10个数据包触发了DoS策略,则前10个数据包通过,阻断剩余的990个数据包。

    • 在periodical模式下,每秒钟允许通过10个数据包,所以会有500个数据包被阻断。(注:由于发包速率可能会发生波动,因此通过和阻止的数据包的实际数量可能不准确,但数量应接近定义的阈值。)

    • periodical模式需要在CLI下启动:

         config ips global
             set anomaly-mode {continuous | periodical}
         end
      

Quarantine

  1. Quarantine用于阻止来自被认为是恶意行为者的源IP地址或对网络有害的流量源的任何其他流量。在隔离期间,将阻止来自源IP地址的流量,并将源IP地址添加到被禁止的用户列表中。禁止的用户列表保留在内核中,并由防病毒,数据泄漏防护(DLP),DoS和入侵防护系统(IPS)使用。使用任何这些功能的任何策略都将阻止来自攻击者IP地址的流量。该功能仅在CLI下可以配置,请参考“FortiGate DoS策略配置”。

  2. 查看Quarantine用户列表:

    # diagnose user quarantine list
    src-ip-addr       created                  expires                  cause            
    192.168.118.77     Fri Jan 15 18:47:54 2021 Fri Jan 15 18:57:54 2021 DOS
    

Copyright © 2024 Fortinet Inc. All rights reserved. Powered by Fortinet TAC Team.
📲扫描下方二维码分享此页面👇
该页面修订于: 2024-01-18 14:54:17

results matching ""

    No results matching ""