我看到许多 Web 应用程序防火墙,例如带有 OWASP 扩展的 mod_security
如果我在我的服务器中使用它,我能确定 99% 没有人可以用 PHP 代码入侵我的网站吗?喜欢 XSS ...
我看到许多 Web 应用程序防火墙,例如带有 OWASP 扩展的 mod_security
如果我在我的服务器中使用它,我能确定 99% 没有人可以用 PHP 代码入侵我的网站吗?喜欢 XSS ...
一句话——不。
正如 Bruce Schneier 所说,安全是一个过程,而不是一个产品。Web 应用程序防火墙是个好主意——它就像在前门上放了一把锁。但是,如果后门是敞开的,那么攻击者就会尝试访问您的系统。
它不会保护您免受基础设施漏洞(操作系统、PHP 等)的影响。它不会保护您免受错误的密码选择或应用程序级错误的影响。它不会(可能)保护您免受 SQL 注入攻击,并且可能仍然存在 XSS 机会。
没有 99% 的确定,唯一的 99% 确定的方法是“拔下以太网电缆”(形象地说,我意识到这都是虚拟的),即使这样也不是 100%。
我建议运行PCI 合规性扫描,它相对便宜,它会让您了解您的服务器/应用程序容易受到哪些已知漏洞的影响。你也可以做渗透测试,有很多服务可以提供更多的洞察力。
没有自动检测或纠正漏洞的方法,包括 XSS。试图阻止“坏”的传入请求本质上是不可靠的,因为如果没有深入了解应用程序,就无法判断应用程序会错误地解释哪种请求。
默认情况下,WAF 不了解应用程序,只能做出愚蠢的猜测。这意味着您将同时阻止(允许通过有害请求)和过度阻止(妨碍合法用户)。常见的规则集(例如 mod_security CRS)有许多有问题的规则,这些规则会导致多种应用程序出现操作问题;像这样幼稚的部署会给你带来比它解决的问题更多的问题。
要使 WAF 做任何有用的事情,您必须对其进行配置以匹配应用程序,这需要深入了解哪些类型的输入是预期的或不预期的。如果您是应用程序的开发人员,您可能会发现在应用程序层进行输入验证比尝试配置 WAF 更简单。
WAF 很有用:
但是,您可以在不考虑安全性的情况下开发应用程序,然后通过在前面放置 WAF 神奇地解决所有问题的想法是荒谬的。
如果使用带有白名单策略的 WAF 并配置您的个人访问策略,这是可能的。
安全基础设施是必要的,例如 Janusec 应用程序网关:
Internet <---> 应用程序网关(带 WAF)<---> 应用程序前端服务器 <---> 应用程序业务逻辑 <---> 应用程序数据访问层 <---> 数据库服务器
安全基础设施可能有助于降低私钥泄漏、CC 攻击、Web 漏洞等风险,但它们不能 100% 阻止。
良好的应用架构、SDL 流程(技术审查、代码审查、扫描)、缓存机制可能有助于构建健壮的系统。
答案是不。没有任何 WAF 的完整证明。这是因为 WAF 在签名上工作,如果有任何新漏洞,WAF 无法调查。
此外,还有其他一些问题,例如多重编码、更长的 POST 正文、BOT 活动等,这些问题的识别要复杂得多。
还有像 Akamai 这样的 WAF 提供商,他们拥有更多的威胁情报和复杂的机器人管理。同样,这不是 99% 的证据,但像这样的公司多年来一直从事 WAF 业务,他们可能有更好的洞察力。
我希望这能回答你的问题!