# HTTP防御策略

针对HTTP服务的防御策略包括防御。

AntiDDoS对知名协议的识别是基于端口号判定的，对于80端口的非HTTP协议，可能会被误识别为HTTP业务而命中相应策略丢弃，请不要将知名端口号用于其他业务，以免命中防御策略，而影响正常业务。

- 防御

  - HTTP防御

    - 如果选中了“基于源IP统计”，则当到达防护对象中目的IP地址的HTTP报文速率大于“包速率阈值”或“请求速率阈值”时，启动基于源IP的统计，并向ATIC管理中心上报异常事件。当源IP地址到达防护对象的HTTP报文速率大于“包速率阈值”或“请求速率阈值”时，则针对这个源IP地址启动HTTP报文防御功能。

      针对源的防御有四种模式：“302重定向”、“验证码”、“cookie源认证”和“JavaScript重定向”。

    - 如果未选中“基于源IP统计”，则当到达防护对象中目的IP地址的HTTP报文速率大于“包速率阈值”或“请求速率阈值”时，立即向ATIC管理中心上报异常事件。

    如果防护对象的防御模式为自动，则系统自动启动防御；如果为手动，则需要管理员手工确认后启动防御。防御模式的配置请参见配置防御模式。

    建议通过基线学习配置“包速率阈值”或“请求速率阈值”，具体请参见配置基线学习任务。

    “包速率阈值”对HTTP交互的所有报文进行统计，包括建立TCP连接的SYN、SYN-ACK、ACK报文；“请求速率阈值”只对除SYN、SYN-ACK、ACK报文以外的其他HTTP报文进行统计，比如：GET、POST等报文。只要流量达到其中设置的一个阈值，则触发防御。

  - HTTP源认证防御

    参数请参见表1。

    表1 配置HTTP源认证防御
    参数 | 说明 | 取值建议
    --- | --- | ---
    防御模式 | 清洗设备对HTTP源的防御模式。 | 302重定向：当用户请求的页面与页面内嵌资源不在同一个服务器上，内嵌资源所在服务器发生异常时，对嵌套资源服务器启动302重定向防御，探测访问源是否为真实浏览器。此方式不影响客户体验。 验证码：通过探测HTTP访问是否由真实的用户发起的，需要输入验证码。因为僵尸网络攻击无法输入验证码，故可以有效得防御攻击，但会影响用户体验。 当HTTP服务的客户端是机顶盒时，由于机顶盒无法输入验证码，必须选择302防御模式。 cookie源认证：该模式可有效阻止来自非浏览器客户端的访问，当服务器请求发生异常时，利用真实浏览器可以记录cookie功能，探测是否为真实源。 JavaScript重定向：当用户请求的页面或者页面内嵌的资源所在的服务器发生异常时，利用JavaScript重定向功能，探测访问源是否真实。真实浏览器可以执行JavaScript，自动完成重定向，不会影响客户体验。
    验证码输入框标题设置 | “防御模式”为“验证码”时，防护设备向访问源自动推送验证码输入页面。此处可以设置验证码输入框的标题。 | -
    代理检测 | 检测HTTP请求是否为通过代理发出的请求。 如果是，则从HTTP报文中获取请求者的真实IP地址，对真实IP地址进行防御，保证正常请求不受影响，攻击流量被丢弃。 | 当网络中有HTTP代理时，建议开启代理检测。
    自定义HTTP代理关键字 | 用于配置自定义HTTP代理的关键字。 | -
    源认证终止条件 | 尝试时间、最大尝试次数 | 用于限制HTTP重定向的最大尝试次数。 | 启动HTTP源认证防御后，如果在“尝试时间”内，对同一源IP地址的认证次数大于“最大尝试次数”时，则将该源IP地址作为攻击源上报ATIC管理中心。如果防护对象的动态黑名单模式不是“关闭”，则系统自动将攻击源的IP地址加入动态黑名单。动态黑名单模式的配置请参见配置防御模式。 否则，将源IP地址加入白名单。
    syn报文限速 | 包速率阈值 | 当源认证通过的源IP地址的syn报文流量超过“包速率阈值”时采取限速。 用于限制连接数。 | -
    ack报文限速 | 包速率阈值 | 当源认证通过的源IP地址的ack报文流量超过“包速率阈值”时采取限速。 用于限制HTTP get速率。 | -

  - HTTP首包检查

    如果时间间隔低于设定的下限，或者高于设定的上限，则认为是首包，将其丢弃；如果时间间隔落在配置的上限和下限之间，则认为是后续包，将其放行。

  - HTTP指纹学习

    在“学习周期”内，同一个源IP地址的包含同一指纹的请求超过“匹配次数”时，则将该源IP地址作为攻击源上报ATIC管理中心。如果防护对象的动态黑名单模式不是“关闭”，则系统自动将攻击源的IP地址加入动态黑名单。动态黑名单模式的配置请参见配置防御模式。

  - HTTP慢速连接防御

    当每秒钟HTTP并发连接数超过设定值时，开始检查HTTP报文，检查出以下任意一种情况，都认定受到HTTP慢速连接攻击，则将该源IP地址作为攻击源上报ATIC管理中心。如果防护对象的动态黑名单模式不是“关闭”，则系统自动将攻击源的IP地址加入动态黑名单。并且断开此IP地址与HTTP服务器的连接。

    - 连续多个HTTP POST报文的总长度都很大，其HTTP载荷长度都很小。
    - 连续多个HTTP GET/POST报文的报文头都没有结束标识。

    参数请参见表2。

    表2 配置HTTP慢速连接防御
    参数 | 说明
    --- | ---
    并发连接数 | 检查每秒钟HTTP并发连接数，如果超过设定值，则开始检查每个HTTP报文。
    总报文长度 | 以下两种情况都认定发生攻击： 连续多个HTTP POST报文的总长度大于超过设定值，其HTTP载荷长度都小于设定值。 连续多个HTTP GET/POST报文的报文头都没有结束标识。
    检查报文个数
    载荷长度

  - 目的IP的URI行为监测

    参数请参见表3。

    表3 配置目的IP的URI行为监测
    参数 | 说明 | 取值建议
    --- | --- | ---
    目的IP的URI行为监测 | 监测阈值 | 在指定“时间间隔”内，对某一目的IP地址的所有HTTP访问中，当“重点监测URI”的访问数与总访问数的比例超过“监测阈值”时，启动源IP的URI行为监测。 | 建议通过基线学习配置“监测阈值”，具体请参见配置基线学习任务。
    源IP的URI行为监测 | 防御阈值 | 在指定“时间间隔”内，当某个源IP地址对“重点监测URI”的访问数与总访问数的比例超过“防御阈值”时，则将该源IP地址作为攻击源上报ATIC管理中心。如果防护对象的动态黑名单模式不是“关闭”，则系统自动将攻击源的IP地址加入动态黑名单。动态黑名单模式的配置请参见配置防御模式。 | –
    重点监测URI | 通过URI行为监测防御HTTP Flood攻击时，需要重点监测的URI。 | –

版权所有 © 华为技术有限公司