我有一个问题是这个问题的延伸:哪些 AWS 安全组不足以充当防火墙?。最初,这个问题的答案对我来说是有意义的,并且我假设作为 AWS 安全组的防火墙目前对我的应用程序基础设施(具有公共/私有子网的 AWS VPC + Internet 网关 + NAT 设备 + 弹性负载均衡器)来说已经足够好了。
然而,今天早上我醒来检查服务器日志时,发现我一夜之间收到了大约一千个垃圾 GET 请求,这些请求的路径并不存在,导致我的服务器出现 404 响应。请求不断涌来,没有停止的迹象。请求的 IP 地址不同,但在特定范围内。因此,我更新了 Elastic Load Balancer 上的网络 ACL 入站规则,并添加了一条拒绝访问该范围内 IP 地址的规则。此时,请求不再到达我的应用服务器。
我不知道攻击者是想对我实施 DOS 攻击,还是这只是标准的垃圾邮件。自从我的系统上线以来,过去几周我每隔几个小时就会收到类似的请求,但这些请求的数量/频率是我从未见过的。我对服务器操作还比较陌生。我很高兴能够阻止攻击继续加载我的应用服务器,但我想知道如果我安装了 Web 应用程序防火墙(以 WAF 三明治的形式实现:负载均衡器-WAF-负载均衡器),整个情况是否会得到解决。
由于我是这个领域的新手,当我阅读这里不同 WAF 产品的产品营销细节时,我并不清楚答案:https://aws.amazon.com/marketplace/search/results/ref=srh_navgno_search_box?page=1&searchTerms=web+application+firewall。我真的在寻求实用建议,关于我是否需要在我的基础设施中使用 WAF(即我实际上不能依赖 AWS 安全组来保护我的系统免受垃圾邮件/DDOS 攻击)以及我需要产品中的哪些基本功能。提前致谢!
PS 我的应用程序不是基于 SQL 构建的,所以我不担心 SQL 注入攻击。
答案1
如果你需要检查内容HTTP 请求并据此做出推断,决定是否阻止请求(可能基于一段时间内的请求),那么是的,您需要除 AWS 安全组之外的其他东西。安全组实际上只是 iptables 类型的防火墙规则,仅根据源/目标 IP 地址 + 端口来允许/拒绝单个连接。
选择哪种 WAF 合适是一个更大的问题。你可以使用直接安装在 Web 服务器上的东西(例如 Apache 上的 mod_security),也可以使用单独的设备。决定使用什么将完全取决于你想要保护自己免受的威胁的性质。