什么是 DoS 攻击?拒绝服务攻击(DoS 攻击)或分布式拒绝服务攻击(DDoS 攻击)使目标用户无法使用受害者的资源,或阻碍目标用户与受害站点之间的通信媒体,以便他们可以不再充分沟通。DoS 攻击的实施者通常以网站或服务为目标,例如银行、信用卡支付网关和电子商务网站。
Application Security Manager™ (ASM) 有助于保护 Web 应用程序免受针对用于为应用程序提供服务的资源的 DoS 攻击:Web 服务器、Web 框架和应用程序逻辑。Advanced Firewall Manager™ (AFM) 有助于防止网络、SIP 和 DNS DoS 和 DDoS 攻击。
HTTP-GET 攻击和页面泛洪攻击是应用 DoS 攻击的典型例子。这些攻击是从单个用户(单个 IP 地址)或从数千台计算机(分布式 DoS 攻击)发起的,这会使目标系统不堪重负。在页面泛洪攻击中,攻击者会下载页面上的所有资源(图像、脚本等),而 HTTP-GET 泛洪会重复请求特定的 URL,而不管它们在应用程序中的位置。
关于识别 DoS 攻击
Application Security Manager™ 根据客户端(基于 TPS)的交易率或服务器端(基于压力)的延迟计算确定流量是 DoS 攻击。您可以指定希望系统使用的阈值,或者让系统根据检查流量模式自动检测合理的阈值。
您还可以让系统主动识别和防止网络机器人的自动攻击。此外,该系统还可以保护 Web 应用程序免受针对重 URL 的 DoS 攻击。重 URL 保护意味着在 DoS 攻击期间,系统会保护可能对服务器造成压力的重 URL。
您可以在事件日志和 DoS 报告中查看系统检测并记录的 DoS 攻击的详细信息。您还可以在创建日志记录配置文件时为 DoS 攻击配置远程日志记录支持。
何时使用不同的 DoS 保护
Application Security Manager™ 提供了几种不同类型的 DoS 保护,您可以设置这些保护来保护应用程序。此表描述了何时使用不同的保护最有利。您可以使用任何保护组合。
DoS 保护 | 何时使用 |
---|---|
主动机器人防御 | 在破坏系统之前阻止 DoS 攻击。提供强大的保护并在非人为流量到达 ASM 之前阻止它。 |
机器人签名 | 允许来自合法(良性)机器人的请求,并指示系统如何处理恶意机器人(您可以忽略、记录或阻止它们)。记录恶意机器人使它们在报告中可见。 |
基于 TPS 的检测 | 将保护重点放在客户端以立即检测攻击,主要是通过查看每秒请求阈值。 |
基于压力的检测 | 将保护重点放在发生服务器减速时检测到攻击的服务器端。此保护基于延迟和每秒请求阈值提供更准确的 DoS 检测。 |
行为检测 | 使用流量的行为分析和机器学习来自动发现和缓解 DoS 攻击。 |
重度 URL 保护 | 如果应用程序用户可以查询数据库或提交可能会减慢系统速度的复杂查询。 |
验证码挑战 | 通过向可疑用户提出字符识别挑战来阻止非人类攻击者。 |
关于主动机器人防御
Application Security Manager™ (ASM) 可以主动保护您的应用程序免受网络机器人(简称机器人)的自动攻击。这种防御方法称为主动僵尸防御,可以防止启动第 7 层 DoS 攻击、网络抓取和暴力攻击。通过阻止机器人访问网站,主动机器人防御也可以防止这些攻击。
与其他 DoS 保护一起使用,主动机器人防御有助于在攻击对站点造成损害之前识别和缓解攻击。此功能检查大多数流量,但比传统的网络抓取和蛮力保护需要更少的资源。除了 ASM 安全策略中提供的 Web 抓取和蛮力保护之外,您还可以使用主动机器人防御。主动机器人防御通过 DoS 配置文件强制执行,不需要安全策略。
当客户端第一次访问受保护的网站时,系统会向浏览器发送 JavaScript 质询。因此,如果您打算使用此功能,请务必让客户端使用允许 JavaScript 的浏览器。
如果客户端成功评估挑战并使用有效的 cookie 重新发送请求,则系统允许客户端访问服务器。不回答质询的请求仍然没有回答,也不会发送到服务器。发送到没有 cookie 的非 HTML URL 的请求将被丢弃并被视为机器人。
您可以配置 URL 列表以认为安全,以便系统不需要验证它们。这加快了访问网站的时间。如果您的应用程序访问许多跨域资源并且您拥有这些域的列表,您可能需要选择一个选项来验证对这些域的跨域请求。
主动机器人防御和 CORS
跨域资源共享 (CORS)是网站可以允许来自其他来源的资源访问您的站点(即域 + 协议 + 端口)的一种方式,例如在使用 AJAX、@font-face 和其他一些情况时. Proactive Bot Defense 甚至可以阻止合法用户的 CORS 请求。CORS 请求被阻止是因为浏览器在允许跨域请求时通常不包含所需的 cookie,以防止攻击者试图访问实时会话和来自其他域的敏感数据。
因此,如果您启用主动机器人防御并且您的网站使用 CORS,我们建议您将 CORS URL 添加到主动机器人 URL 白名单。这些 URL 不会主动防御机器人,但不会被阻止,并且仍会受到其他启用的 DoS 检测和缓解措施的保护。
一种常见的跨域请求类型是当 HTML 页面引用来自其他域的资源时,例如嵌入式图像、样式表 (CSS) 和 JavaScript。Proactive Bot Defense 支持这种类型的跨域请求,您可以在跨域请求设置中配置允许资源的特定域。
关于配置基于 TPS 的 DoS 保护
设置 DoS 保护时,您可以配置系统以防止基于事务速率的 DoS 攻击(基于 TPS 的异常检测)。如果您使用基于 TPS 的异常保护,系统会使用以下计算检测来自客户端的 DoS 攻击:
- 交易率检测区间
- 每 10 秒更新一次的每秒最近请求的短期平均值(针对特定 URL 或来自 IP 地址)。
- 交易率历史间隔
- 过去一小时计算的每秒请求数(针对特定 URL 或来自 IP 地址)的长期平均值,每 10 秒更新一次。
如果交易率检测区间与历史区间内的交易率的比值大于TPS中设置的增加百分比,则系统认为该网站受到攻击,或URL、IP地址或地理位置怀疑。此外,如果事务率检测间隔大于TPS 达到设置(无论历史间隔如何),那么相应的 URL、IP 地址或地理位置也是可疑的,或者该站点正在受到攻击。
请注意,基于 TPS 的保护可能会检测到 DoS 攻击,这仅仅是因为许多用户试图同时访问服务器,例如在繁忙时间或新产品推出时。在这种情况下,攻击可能是误报,因为用户是合法的。但基于 TPS 的 DoS 保护的优势在于,可以比使用基于压力的保护更早地检测到攻击。因此,在设置 DoS 保护时了解系统上的典型最大峰值负载并使用最适合您的应用程序的方法非常重要。
关于配置基于压力的 DoS 保护
在设置 DoS 保护时,可以配置系统以防止基于服务器端的 DoS 攻击(基于压力的检测)。在基于压力的检测中,需要延迟增加和至少一个可疑的 IP 地址、URL、重 URL、站点范围的条目或地理位置才能将活动视为攻击。
基于压力的 DoS 保护还包括行为 DoS。启用后,系统会检查流量行为以自动检测 DoS 攻击。行为 DoS 审查违规流量,并以最少的用户干预缓解攻击。
与基于 TPS 的保护相比,基于压力的保护更不容易出现误报,因为在 DoS 攻击中,服务器正在达到容量极限并且服务/响应时间很慢:这会影响所有用户。增加的延迟可用作检测 L7 攻击的触发步骤。在检测到延迟显着增加后,确定您是否需要采取进一步措施非常重要。在检查每秒请求的增加并将这些数字与过去的活动进行比较后,您可以识别出可疑的延迟增加与正常延迟增加。
关于行为 DoS 保护
行为 DoS (BADoS)通过使用机器学习和数据分析分析流量行为来提供针对 DDoS 攻击的自动保护。与其他 BIG-IP ® DoS 保护一起使用,行为 DoS 检查数据中心中客户端和应用程序服务器之间的流量,并自动为第 7 层 (HTTP) 和第 3 层和第 4 层建立基线流量/流量配置文件。
例如,在来自僵尸网络的 DDoS 攻击的情况下,每个请求可能是完全合法的,但同时许多请求可能会减慢或崩溃服务器。行为 DoS 可以通过减慢流量来减轻攻击,但前提是保持服务器处于良好状态。
行为 DoS 通过客户反馈循环持续监控服务器运行状况和负载,以确保实时关联,并验证服务器状况、攻击和缓解措施。任何后续异常都会受到关注,系统会根据需要应用缓解措施(减速或阻塞)。
这就是行为 DoS 的工作方式:
- 学习正常流量的典型行为
- 根据当前条件(服务器运行状况)检测攻击
- 发现行为异常(什么和谁改变导致拥堵?)
- 通过减慢可疑客户端的速度来缓解
- 随着经验的提高
您可以在基于压力的检测设置的 DoS 配置文件中启用行为 DoS,这需要最少的配置。由于系统正在跟踪交通数据,它会适应不断变化的条件,因此无需指定阈值。您可以设置希望发生的缓解级别,范围从无缓解(仅限学习)到积极保护(主动 DoS 保护)。该系统可以快速检测第 7 层 DoS 攻击,表征违规流量并缓解攻击。
您可以使用启用了行为 DoS 的 DoS 配置文件来保护一个或最多两个虚拟服务器。
关于 DoS 缓解方法
在设置基于事务或基于压力的 DoS 保护时,您可以指定确定系统如何识别和处理 DoS 攻击的缓解方法。您可以使用以下方法:
- JavaScript 挑战(也称为客户端完整性防御)
- 验证码挑战
- 请求阻塞(包括速率限制或全部阻塞)
您可以将系统配置为发出 JavaScript 质询,以在系统遇到可疑 IP 地址、URL、地理位置或站点范围的标准时分析客户端是否使用合法浏览器(可以响应质询)。如果客户端确实执行 JavaScript 以响应质询,系统会故意减慢交互速度。客户端完整性防御缓解措施仅在操作模式设置为阻止时实施。
基于相同的可疑标准,系统还可以发出 CAPTCHA(字符识别)质询,以确定客户端是人类还是非法脚本。根据您希望实施 DoS 保护的严格程度,您可以限制允许通过服务器的请求数量或阻止被视为可疑的请求。
您还可以在 DoS 配置文件中使用可以使用请求阻止来指定系统何时阻止请求的条件。请注意,当基于 TPS 或基于压力的检测的操作模式设置为阻止时,系统仅在 DoS 攻击期间阻止请求。您可以使用请求阻止来限制或阻止来自可疑 IP 地址、可疑国家或疑似受到攻击的 URL 的所有请求。站点范围的速率限制还阻止对怀疑受到攻击的网站的请求。如果您阻止所有请求,系统会阻止可疑 IP 地址和地理位置,但白名单上的除外。如果您使用速率限制,系统会根据 DoS 配置文件中设置的阈值检测标准阻止一些请求。
您选择的缓解方法按照它们在屏幕上出现的顺序使用。仅当先前的方法无法阻止攻击时,系统才会根据需要强制执行这些方法。
关于地理定位缓解
您可以通过检测来自发送可疑流量的国家/地区的流量来缓解基于地理位置的 DoS 攻击。这是 DoS 配置文件中针对基于压力和基于 TPS 的异常的缓解方法的一部分,此方法有助于防止异常活动,如下所示:
- 基于地理位置的客户端完整性:如果来自国家/地区的流量与 DoS 配置文件中配置的阈值匹配,系统会认为这些国家/地区可疑,并向每个可疑国家/地区发送 JavaScript 质询。
- 基于地理位置的 CAPTCHA 质询:如果来自国家/地区的流量与 DoS 配置文件中配置的阈值匹配,系统会认为这些国家/地区可疑,并向每个可疑国家/地区发出 CAPTCHA 质询。
- 基于地理位置的请求阻止:系统阻止来自可疑国家的所有或部分请求。
此外,您可以将国家添加到地理位置白名单(来自这些国家的流量永远不会被阻止)和黑名单(来自这些国家的流量在检测到 DoS 攻击时总是被阻止)。
关于重 URL 保护
重型 URL是每个请求可能会消耗大量服务器资源的 URL。大多数情况下,重度 URL 以低延迟响应,但在特定条件下(例如 DoS 攻击)很容易达到高延迟。重 URL 不一定总是很重,但往往会变得很重,尤其是在攻击期间。因此,对这些 URL 的低速率请求可能会导致严重的 DoS 攻击,并且难以与合法客户端区分开来。
通常,繁重的 URL 涉及复杂的数据库查询;例如,检索历史股票报价。在大多数情况下,用户以每周分辨率请求最近的报价,这些查询很快就会产生响应。但是,攻击可能涉及请求逐日解析的五年报价,这需要检索大量数据,并消耗大量资源。
Application Security Manager™ (ASM) 允许您在 DoS 配置文件中配置针对重型 URL 的保护。您可以为自动检测繁重的 URL 指定延迟阈值。如果网站的某些 URL 可能成为重 URL,您可以手动添加它们,以便系统关注它们,并且您可以添加应该被忽略且不被视为重的 URL。
ASM™ 测量每个 URL 和整个站点 24 小时的尾部延迟,以获得良好的请求行为样本。如果一个 URL的平均尾部延迟是 24 小时内站点延迟的两倍以上,则该URL 被认为是重度。
关于跨域请求
DoS 配置文件中的主动机器人防御允许您指定哪些跨域请求是合法的。跨域请求是对来自与发出请求的资源域不同的域的资源的 HTTP 请求。
如果您的应用程序访问许多跨域资源并且您拥有这些域的列表,则可以验证对这些域的跨域请求。
例如,您的网站使用两个域,site1.com(主站点)和site2.com(存储资源的地方)。您可以通过启用主动机器人防御、为跨域请求设置选择允许的已配置域选项之一并在相关站点域列表中指定这两个网站,在 DoS 配置文件中进行配置。当浏览器向 发出请求时,它会同时独立地获取 cookie ,并且允许来自to的跨域请求。site1.comsite1.comsite2.comsite1.comsite2.com
如果 onlysite1.com配置为相关站点域,当浏览器向 发出请求时site1.com,它会获取site1.comonly 的 cookie。如果浏览器发出跨域请求以从 获取图像site2.com,它会获取一个 cookie,并且只有当它已经有一个有效的site1.comcookie 时才被允许。
关于站点范围的 DoS 缓解
为了缓解高度分布式的 DoS 攻击,例如那些使用大规模僵尸网络攻击多个 URL 的攻击,您可以在 DoS 配置文件中指定何时使用站点范围的缓解。您可以为基于 TPS 或基于压力的 DoS 保护配置站点范围的缓解。在这种情况下,与特定 URL 或 IP 地址相比,整个站点都可能被视为可疑。当系统确定整个站点正在经历高流量但无法查明和处理问题时,站点范围的缓解措施就会生效。
系统实施站点范围的缓解方法仅作为最后的手段,因为它可能导致系统丢弃合法请求。然而,它至少部分地保持了网站的可用性,即使它受到攻击也是如此。当系统应用站点范围的缓解时,这是因为所有其他主动检测方法都无法阻止攻击。
当超过配置的阈值时,整个站点都被认为是可疑的,同时,特定的 IP 地址和 URL 也可能被发现是可疑的。缓解一直持续到最长持续时间过去或整个站点不再可疑为止。即没有可疑的URL,没有可疑的IP地址,整个站点不再可疑。
关于 DoS 检测中的 CAPTCHA 挑战
CAPTCHA(或视觉字符识别)质询显示字符供客户识别,然后才能访问网站或应用程序。客户端能否正确识别字符决定了客户端是人还是可能是非法脚本。您可以将 CAPTCHA 质询配置为基于 TPS 的 DoS 检测、基于压力的 DoS 检测的缓解策略的一部分,或作为主动机器人防御的一部分。如果您已配置它,系统会向可疑流量发起验证码挑战。
系统提供客户将看到的标准验证码响应。如果需要,您可以自定义响应。
关于 DoS 保护和 HTTP 缓存
HTTP 缓存使 BIG-IP ®系统能够将频繁请求的 Web 对象(或静态内容)存储在内存中,以节省带宽并减少 Web 服务器上的流量负载。Web 加速配置文件具有配置缓存的设置。
如果您将 HTTP 缓存与 DoS 保护一起使用,您需要了解缓存内容的 DoS 保护是如何工作的。在这种情况下,如果提供缓存内容的 URL 超过按百分比增加的相对 TPS(而不是明确的TPS 达到数) ,则将其视为 DoS 攻击。对静态或可缓存 URL 的请求总是通过速率限制来缓解。即使在使用客户端完整性或 CAPTCHA 进行缓解期间,并且当这些缓解不仅基于 URL 时也是如此。
概述:防止对应用程序的 DoS 攻击
您可以配置 Application Security Manager™ 以防止对 Web 应用程序的 DoS 攻击。根据您的配置,系统会根据客户端的每秒事务数 (TPS)、基于压力的服务器延迟、大量 URL、地理位置、可疑浏览器和失败的验证码响应来检测 DoS 攻击。行为 DoS (BADoS) 是基于压力的检测的一部分,使用行为数据自动发现和缓解 DoS 攻击。
您可以通过创建启用应用程序安全的 DoS 配置文件来为第 7 层配置 DoS 保护。然后,您将 DoS 配置文件与代表您要保护的应用程序的一个或多个虚拟服务器相关联。DoS 保护是一种不属于安全策略的系统保护。
制定预防政策的主要因素是:
- 攻击者:发起实际攻击的客户端。它们由它们的 IP 地址和它们来自的地理位置表示。
- 服务器:受到攻击的 Web 应用程序服务器。您可以将它们视为虚拟服务器和 DoS 配置文件的配对、通过 URL 或作为池成员在站点范围内查看。
- BIG-IP 系统:检测攻击和相关可疑实体的中间层,然后根据您在 DoS 配置文件中配置的选项缓解攻击、阻止或丢弃请求。
任务摘要
为应用程序配置 DoS 保护
创建 DoS 保护白名单
使用主动机器人防御
您可以配置 Application Security Manager™ (ASM) 以在攻击发生之前保护您的网站免受网络机器人(简称bots)的攻击。主动机器人防御检查所有进入网站的流量(白名单 URL 除外),而不仅仅是可疑流量。此 DoS 保护使用一组 JavaScript 评估和机器人签名来确保访问您网站的浏览器是合法的。
您现在已经配置了主动机器人防御,可以防止 DDoS、Web 抓取和暴力攻击(在使用此 DoS 配置文件的虚拟服务器上)。通过创建机器人防御日志配置文件,您可以在
查看机器人防御事件日志。系统向首次访问该站点的流量发送 JavaScript 质询。合法流量正确回答挑战,并使用有效 cookie 重新发送请求;然后它被允许访问服务器。系统会丢弃浏览器发送的未回答系统初始 JavaScript 质询的请求(将这些请求视为机器人)。该系统还自动启用机器人签名并阻止已知恶意的机器人。如果主动机器人检测一直在运行,ASM™ 会在它们设法对系统发起攻击并造成损害之前过滤掉它们。如果仅在攻击期间使用主动 bot 防御,则一旦 ASM 检测到 DoS 攻击,系统就会在攻击期间使用主动 bot 防御。
主动机器人防御与 TPS 和基于压力的检测中指定的主动缓解方法一起使用。任何未被主动缓解方法阻止的请求仍然必须通过主动机器人防御机制才能到达服务器(除非它在 URL 白名单上)。主动机器人防御阻止对不在 URL 白名单上的 CORS(跨源资源共享)URL 的请求。
配置机器人防御日志
配置机器人签名检查
如果您需要为您的应用程序创建自定义机器人签名和类别,您应该在配置机器人签名检查之前执行此操作。导航到
。否则,您可以使用系统提供的机器人签名和在同一位置列出的类别。由于此防御机制使用反向查找,因此您需要配置 DNS 服务器( )和 DNS 解析器( )才能工作。