攻击者绕过 AWS WAF 直接攻击 EC2 实例

攻击者绕过 AWS WAF 直接攻击 EC2 实例

我的设置

我有 Elastic Beanstalk 应用程序,在 EC2 上具有公共 LoadBalancer 和公共 IP。该应用程序位于 CloudFront 后面,它受 AWS WAF 保护,可抵御我现在遇到的各种攻击。Route 53 将 DNS 查询转发到 CloudFront。

我的问题

WAF 仅在 CloudFront 上。还有 Elastic Beanstalk 公共 DNS 名称、弹性负载均衡器公共 DNS 名称和 EC2 实例公共 IP。攻击者正在攻击它们,并绕过 WAF。

我的请求

除了 CloudFront,我不需要任何其他东西暴露在互联网上。如何从所有或至少部分资源中删除所有公共 DNS 和 IP,同时仍使其正常运行。理想情况下,CloudFront 会通过内部 Amazon 域转发请求。

我尝试过

我尝试在 BeanStalk 网络配置选项卡中将 ELB 设置为私有,但失败了。将公共 IP 地址设置为 false 时,它​​就会停止工作并出现错误 502

答案1

您需要更改安全组,以便只有 CloudFront IP 可以联系服务器。您还可以将自己的 IP 地址列入白名单。关键是只允许选定的地址进入。

AWS 示例代码将在 CloudFront IP 地址发生变化时更新您的安全组。我怀疑一旦您部署该功能并创建所需的安全组,它就会为您进行初始设置。由于 CloudFront 拥有的 IP 范围数量,它使用四个安全组,这很好,您可以将它们全部与负载均衡器和/或 EC2 实例关联。

您可以下载此处的 AWS IP 地址如果您想手动执行此操作,请在 CLOUDFRONT 上过滤这些 IP。请注意 IP 地址范围会发生变化,如果您手动执行此操作,这会导致某些 CloudFront 节点无法联系您的服务器。

请注意,您不能使用 NACL,因为它们的限制太低。不过有趣的是,NACL 在实例硬件上运行(现在可能是 Nitro 卡),但如果您处于 DDOS 之下,NACL 会被推送到 CloudFront 以拒绝边缘流量。我相信安全组也在实例硬件或 nitro 卡上运行,但当然由 AWS 管理。

相关内容