为什么要在 WAF 上使用白名单?

信息安全 Web应用程序 应用安全 华夫
2021-08-10 19:00:54

我正在研究不同的 WAF,从开源(如 ModSecurity 和 NAXSI)到商业解决方案(Imperva、Citrix、Fortinet 等)。许多人表示,拥有基于白名单的 WAF 比黑名单更有效。

我基本上理解为什么黑名单会过时(即使在机器人的情况下它可能非常好),以及白名单如何解决这些问题。但是很难找到为什么应该使用白名单而不是黑名单的详细解释。

问题:为什么我应该在 WAF 中使用白名单而不是黑名单?

解释和/或论文链接将是最受欢迎的。

4个回答

如果您对单个产品可能存在的每个漏洞都有全知的了解,那么将其列入黑名单是很好的选择。我假设您没有无限的知识,因此您将不断争取将下一个威胁列入黑名单。

如果您有产品的预期行为和输入,白名单是很好的。例如。您希望用户访问该站点并在文本框中输入数字。您将文本框输入仅限于数字,因此所有可能的涉及字母和符号的攻击都被明确禁止。

白名单可以保护您免受未来的影响。黑名单可以保护您免受过去的影响。

如果您能够设计维护一个白名单,准确描述所有托管应用程序可能收到的所有合法输入,那么它将为您带来补充安全性,因为它将具有更好的阻止未知攻击的能力。

如果您不满足上述先决条件,黑名单可能是更好的选择:

  • 该列表已经可用,您可以更快地部署,
  • 该列表将由上游供应商/社区维护,您只需要确保定期更新它以确保它可以按预期工作并受益于大公司/社区的经验和知识(参与的人越多,机会越少列表中包含错误),
  • 包含所有已知至少被自动化工具使用的模式的黑名单将为您带来比过于宽松的白名单更高的安全性,其中一些输入通道被遗漏或过于宽松以避免阻止复杂数据(谷歌分析 cookie 似乎是一个经典的例子)。

总而言之,一个做得好的和正确维护的白名单确实会带来更好的安全性。但是,由于它是特定的,所有的工作都只取决于你。当您没有能力或没有信心做和维护黑名单时,由上游公司/社区做和维护的一般黑名单可能是更好的选择。

我们博客上的这篇客座文章中,John Stauffacher是世界知名的 Web 应用程序安全专家,也是 Web 应用程序防火墙的作者:一种实用的方法......约翰推荐......

确保 Web 应用程序安全的最佳方法是将好的应用列入白名单,而不是将坏的列入黑名单。

为什么?列举应用程序中的所有优点要比不断更新可能抛出应用程序的所有缺点要简单得多。您的路线、cookie、参数(及其值)都为您的组织所知。使用此信息,您可以为您的应用程序创建所有正确入口点、cookie、参数和值的建议“白名单”。此白名单可以成为您的应用程序基线,任何偏离此基线的流量都可能被视为不良流量。

白名单方法比不断列举 Web 流量中的“坏”要安全和有效得多。坏处每天都在变化。依赖黑名单的网络团队发现自己落后于八球,追逐最新的零日威胁并花费无数小时列出人类已知的每个攻击媒介,在他们的 WAF 中编写和更新规则并将自己逼疯。最后,他们的 WAF 变成了一个攻击签名列表,这些攻击签名查看过去并无法阻止新的威胁。

因此,虽然建立白名单的初始过程比黑名单需要更多的前期时间,但您可以获得更主动和强大的 WAF 安全立场,而不必赶上每一个出现的零日威胁。

将白名单作为标准 Web 应用程序安全实践的一部分,并确保定期更新您的列表。你会很高兴你做到了。

白名单不是会提供更好的性能吗?任何给定 WAF 的白名单都非常短,而互联网上所有威胁的黑名单则非常长。因此,检查白名单中是否存在输入所花费的时间和 CPU 将大大减少,WAF 上的负载将更小,应用程序的性能将更高。