在你的 Web 应用程序中嵌入 Honeypot 链接(可选) - AWS WAF 的安全自动化

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在你的 Web 应用程序中嵌入 Honeypot 链接(可选)

如果您在步骤 1 中选择了 yes “激活恶意机器人保护” 参数。启动堆栈, CloudFormation 模板为低交互生产蜜罐创建陷阱端点。此陷阱旨在检测和转移来自内容抓取器和恶意机器人的入站请求。有效用户不会尝试访问此端点。

除了 honeypot 机制外,该组件还通过监控与 Application Load Balancer (ALB) 或 Amazon CloudFront 的直接连接来增强恶意机器人检测。如果机器人绕过蜜罐并尝试与 ALB 或进行交互 CloudFront,则系统会分析请求模式和日志以识别恶意活动。当检测到恶意机器人时,系统会提取其 IP 地址并将其添加到 AWS WAF 阻止列表中,以防止进一步访问。恶意机器人检测通过结构化的逻辑链运行,确保全面的威胁覆盖:

  • HTTP Flood Protection Lambda 日志解析器 — 在洪水分析期间 IPs 从日志条目中收集恶意机器人。

  • Scanner & Probe Protection Lambda 日志解析器 — IPs 从与扫描仪相关的日志条目中识别不良机器人。

  • HTTP Flood Protection Athena 日志解析器 — 使用跨查询运行的分区 IPs 从 Athena 日志中提取恶意机器人。

  • Scanner & Probe Protection Athena 日志解析器 — 使用相同的分区策略 IPs 从与扫描仪相关的 Athena 日志中检索恶意机器人。

  • 回退检测-如果同时禁用 HTTP 洪水防护和扫描器和探测器保护,则系统将依赖日志 Lambda 解析器,该解析器基 WAF 标签筛选器记录机器人活动。

使用以下过程之一为来自任一 CloudFront 分配的请求嵌入 honeypot 链接。

为 Honeypot 端点创建 CloudFront 起源

对于使用 CloudFront 发行版部署的 Web 应用程序,请使用此过程。使用 CloudFront,您可以添加一个robots.txt文件来帮助识别忽略机器人排除标准的内容抓取者和机器人。完成以下步骤以嵌入隐藏链接,然后在您的robots.txt文件中明确禁止该链接。

  1. 登录 A WS CloudFormation 控制台

  2. 选择您在步骤 1 中构建的堆栈。启动堆栈

  3. 选择输出选项卡。

  4. BadBotHoneypotEndpoint密钥中复制终端节点 URL。

    • 行为路径 (/ProdStage)

  5. 在指向 honeypot 的内容中嵌入此端点链接。向您的人类用户隐藏此链接。举个例子,查看以下代码示例:<a href="/behavior_path" rel="nofollow" style="display: none" aria-hidden="true">honeypot link</a>

  6. 修改网站根目录中的robots.txt文件以明确禁止 honeypot 链接,如下所示:

User-agent: <*>
        Disallow: /<behavior_path>
重要

不需要在中注册路径,因为请求 CloudFront 是:被 WAF BadBotRuleFilter阻止。解决方案会自动收集到日志中。由日志解析器 lambda 处理。这种简化的方法直接使用 WAF 日志,无需进行额外的端点配置,从而通过日志分析提高了恶意机器人检测过程的效率

注意

您有责任验证哪些标签值在您的网站环境中起作用。rel="nofollow"如果您的环境没有观察到它,请不要使用。有关机器人元标记配置的更多信息,请参阅 Google 开发者指南。修改网站根目录中的robots.txt文件以明确禁止 honeypot 链接,如下所示:

注意

这些规则使用 Web 请求源中的源 IP 地址。如果您的流量通过了一个或多个代理或负载均衡器,则 Web 请求源将包含最后一个代理的地址,而不是客户端的源地址。

对于 Web 应用程序,请使用此程序。

  1. 登录 A WS CloudFormation 控制台

  2. 选择您在步骤 1 中构建的堆栈。Launch the stack

  3. 选择输出选项卡。

  4. BadBotHoneypotEndpoint密钥中复制终端节点 URL。

    <a href="<BadBotHoneypotEndpoint value>" rel="nofollow" style="display: none" aria-hidden="true"><honeypot link></a>
    注意

    此过程rel=nofollow用于指示机器人不要访问蜜罐 URL。但是,由于链接是在外部嵌入的,因此您不能包含明确禁止该链接的robots.txt文件。您有责任验证哪些标签在您的网站环境中起作用。rel="nofollow"如果您的环境没有观察到它,请不要使用。