针对TCP服务的防御策略包括阻断、限流和防御。
阻断
将TCP报文全部丢弃。
限流
TCP限流:将到目的IP地址的所有TCP报文的流量限制在“带宽阈值”之内。
TCP分片限流:将到目的IP地址的TCP分片报文的流量限制在“带宽阈值”之内。
TCP新建会话限速:将每秒到目的IP地址的所有新建TCP会话的速率限制在“限速阈值”之内。
“带宽阈值”根据网络实际带宽设置。
防御
TCP异常报文防御
检查TCP报文的各个标志位URG、ACK、PSH、RST、SYN、FIN,如果标志位异常,则认为是TCP异常报文。当TCP异常报文的速率大于“包速率阈值”时,将所有TCP异常报文全部丢弃。
TCP基本防御
采用源认证方式对TCP攻击流量进行防御,参数说明请参见表1。
对于报文来回路径一致组网中的SYN-ACK Flood攻击、ACK Flood攻击、TCP分片攻击、FIN/RST Flood攻击,建议在清洗设备上配置链路状态检测进行防御。
| 参数 | 说明 | 取值建议 | ||
|---|---|---|---|---|
SYN Flood防御 |
包速率阈值 |
当SYN报文的速率大于“包速率阈值”时,向ATIC管理中心上报异常事件,并启动防御。 |
建议通过基线学习进行配置,具体请参见配置基线学习任务。 |
|
SYN首包检查 |
支持配置首包丢弃时间间隔的上限和下限,如果时间间隔低于设定的下限,或者高于设定的上限,则认为是首包,将其丢弃;如果时间间隔落在配置的上限和下限之间,则认为是后续包,将其放行。 |
|||
认证模式 |
|
|||
时间间隔 |
首包丢弃时间间隔的上限和下限。 |
|||
源IP SYN报文比例异常限速 |
SYN-Ratio比例阈值、SYN报文数阈值、检查周期、SYN报文个数限速阈值、限速周期 |
如果在“检查周期”内,当源IP SYN报文占比的比例大于“SYN-Ratio比例阈值”,且当源IP SYN报文的个数大于“SYN报文数阈值”时,向ATIC管理中心上报异常事件,并启动防御。 启动防御后,在“限速周期”内,允许通过的最大SYN报文数为“SYN报文个数限速阈值”。 |
- |
|
源IP加入黑名单条件 |
异常次数 |
如果在“总的检查次数”内,当某源IP出现异常的次数大于“异常次数”时,该源IP将被加入黑名单。 | ||
总的检查次数 |
||||
SYN-ACK Flood防御 |
包速率阈值 |
当SYN-ACK报文的速率大于“包速率阈值”时,向ATIC管理中心上报异常事件,并启动防御。 |
建议通过基线学习进行配置,具体请参见配置基线学习任务。 |
|
SYN-ACK源认证防御 |
清洗设备对SYN-ACK源的防御模式。 |
|||
SYN-ACK首包检查 |
支持配置首包丢弃时间间隔的上限和下限,如果时间间隔低于设定的下限,或者高于设定的上限,则认为是首包,将其丢弃;如果时间间隔落在配置的上限和下限之间,则认为是后续包,将其放行。 |
|||
时间间隔 |
首包丢弃时间间隔的上限和下限。 |
|||
ACK Flood防御 |
包速率阈值 |
当ACK报文的速率大于“包速率阈值”时,向ATIC管理中心上报异常事件,并启动防御。 |
当受到ACK Flood攻击时,设备会先让报文通过,建立会话,然后对会话进行检查,确定是否丢弃报文。 建议通过基线学习进行配置,具体请参见配置基线学习任务。 |
|
| 防御模式 |
|
|||
TCP分片攻击防御 |
包速率阈值 |
当TCP分片报文的速率大于“包速率阈值”时,向ATIC管理中心上报异常事件,并启动防御。 |
建议通过基线学习进行配置,具体请参见配置基线学习任务。 |
|
FIN/RST Flood防御 |
包速率阈值 |
当FIN/RST报文的速率大于“包速率阈值”时,向ATIC管理中心上报异常事件,并启动防御。 |
建议通过基线学习进行配置,具体请参见配置基线学习任务。 |
|
TCP首包检查
支持配置首包丢弃时间间隔的上限和下限,如果时间间隔低于设定的下限,或者高于设定的上限,则认为是首包,将其丢弃;如果时间间隔落在配置的上限和下限之间,则认为是后续包,将其放行。
TCP连接耗尽攻击防御
参数说明请参见表2。
| 参数 | 说明 | 取值建议 | ||
|---|---|---|---|---|
目的IP并发连接数检查 |
连接数阈值 |
当目的IP地址的TCP并发连接数大于“连接数阈值”时,启动针对TCP连接耗尽攻击的防御。防御启动后,开始对源IP地址进行检查。 |
建议通过基线学习进行配置,具体请参见配置基线学习任务。 |
|
目的IP新建连接速率检查 |
连接速率阈值 |
当目的IP地址每秒新增加的TCP连接数大于“连接速率阈值”时,启动针对TCP连接耗尽攻击的防御。防御启动后,开始对源IP地址进行检查。 |
||
源IP地址新建连接速率检查 |
检查周期、连接数阈值 |
当针对TCP连接耗尽攻击的防御启动后,如果某个源IP地址在“检查周期”内发起的TCP连接数大于“连接数阈值”,则将该源IP地址作为攻击源上报ATIC管理中心。 |
- |
|
源IP地址连接数检查 |
连接数阈值 | 当针对TCP连接耗尽攻击的防御启动后,如果某个源IP地址的TCP并发连接数大于“连接数阈值”值,则将该源IP地址作为攻击源上报ATIC管理中心。 |
- |
|
异常会话检查 |
异常连接数阈值、检查周期 |
如果在“检查周期”内,某个源IP地址发起的TCP异常会话的连接数大于“异常连接数阈值”时,则将该源IP地址作为攻击源上报ATIC管理中心。 |
- |
|
空连接检查 |
每次连接最小报文数、检查周期 |
如果在“检查周期”内,在某条TCP连接上通过的报文数小于“每次连接最小报文数”,则判定该连接为异常连接。 |
- |
|
重传会话检查 |
重传报文阈值 |
当某条TCP连接上重传的报文大于“重传报文阈值”时,则判定该连接为异常连接。 |
- |
|
Sockstress |
TCP报文窗口大小阈值 |
当某条TCP连接上通过的报文窗口小于“TCP窗口大小阈值”时,则判定该连接为异常连接。 |
- |
|
会话行为分析 |
异常连接数阈值、检查周期 |
如果在“检查周期”内,某个源IP地址发起的TCP异常会话的连接数大于“异常连接数阈值”时,则将该源IP地址作为攻击源上报ATIC管理中心。 |
- |
|
ACK会话检查 |
每次连接最小报文数、大包报文长度、大包占比阈值 |
如果单个连接上的报文数超过“每次连接最小报文数”,并且在该连接上,长度大于“大包报文长度”的ACK报文个数与连接上总报文数的比值大于“大包占比阈值”,则判定该连接为异常连接。 |
- |
|
SYN会话检查 |
每次连接SYN报文数阈值 |
当某条TCP连接上SYN的报文数大于“每次连接SYN报文数阈值”时,则判定该连接为异常连接。 |
- |
|