缓解 AWS 上的 HTTP 洪水攻击:Nginx 配置与 AWS Shield Advanced 和 Web 应用程序防火墙

问题描述 投票:0回答:1

我目前正在研究在 AWS 上托管基础设施时减轻和避免 HTTP 洪水攻击的最佳选择。

这是 cloudflare.com 最近发表的一篇文章讨论了这个问题

https://blog.cloudflare.com/cloudflare-mitigates-record-breaking-71-million-request-per-second-ddos-attack/

根据我的理解,AWS Shield 标准可能不涵盖 Web 应用程序上的 HTTP 洪水攻击之类的内容。对于初创公司来说,使用 AWS Shield Advanced 是一种成本高昂的选择,因为它每年的费用为 36,000 美元,并且需要一年的承诺。使用防火墙和实施速率限制机制是一种选择,但即使通过 AWS Web 应用程序防火墙阻止 IP 地址,仍然会按每个请求产生费用,即使对于来自被阻止 IP 的请求也是如此。

建议在网络级别使用Nginx,可以有效地将已知恶意IP的速率限制为每分钟零请求。以下是 nginx.conf 文件中的示例配置:

    # Define a rate limiting zone for the IP address.
    limit_req_zone $binary_remote_addr zone=blocked:1m rate=1r/m;

    server {
        listen 80;
        server_name yourdomain.com;

        # Rate limit requests from the specified IP address.
        location / {
            limit_req zone=blocked burst=1 nodelay;
            # Add other Nginx configuration directives here.
        }

        # Block requests from the specific IP address.
        location /block-ip {
            deny all;
            return 403;
        }

        # Add other server configuration here.
    }
}

有人可以确认一下,在发生 HTTP 洪水攻击时,这是否确实能让我的账单在 EC2 实例正常每月费用之外降至零美元?

我正在运行一个具有静态 IP 地址的 EC2 实例,并使用 Express.js 运行 Node.js 应用程序。该应用程序充当反向代理,并针对每个请求使用 Prisma 与无服务器数据库进行通信。可能值得注意的是,Express 应用程序被手动配置为在端口 443 上通过 HTTPS 运行。

此外,我有兴趣了解这种方法相对于使用 AWS Web 应用程序防火墙的权衡。具体来说,我很好奇在使用 Nginx 方法进行攻击时服务器性能会受到怎样的影响。是否会增加延迟或其他性能下降?我正在努力找出未知数!我缺少更好的选择吗?

非常感谢任何建议或见解!预先感谢您的宝贵时间。

amazon-web-services nginx amazon-ec2 ddos amazon-waf
1个回答
0
投票

您说得对,Shield Advanced 不在所有 AWS 客户的预算之内,但是运行暴露在互联网上的单个实例并不具备 DDoS 弹性。为了获得足够的第 7 层保护,您必须拥有 CloudFront 或 ALB(建议使用后者,因为您对成本敏感)以及关联的 AWS WAF WebACL。如果您的内容可缓存,则通过 VPC 端点从 S3 获取内容。

如果没有带有 WAF 的 ALB(或 CF),Shield Standard 第 3/4 层缓解措施最终将启动,这可能会完成攻击者开始的工作。 ALB/CF规模满足需求。您的 AWS WAF WebACL 应(至少):

  • “阻止”模式下的一个或多个基于速率的规则
  • AWSManagedIPReputation 规则组 - 最好将 IPDDoSList 规则移至“阻止”模式,或者基于速率并使用 IPDDosList 标签作为聚合键的后续规则。
© www.soinside.com 2019 - 2024. All rights reserved.