常见安全设备 waf

1

Posted by tahano on March 1, 2023

WAF防禦示意圖

WAF

​ WAF(Web Application Firewall)是一种专门用于保护Web应用程序安全的防火墙设备或软件。它位于Web应用程序和客户端之间,可以监控、过滤和阻止通过Web应用程序的恶意数据流量。

​ WAF旨在保护 Web 应用免受各类应用层攻击(HTTP/HTTPS) 主要作用是保护Web应用程序免受各种网络攻击,如SQL注入、跨站脚本(XSS)、跨站请求伪造(CSRF)等。通过检测和防御这些攻击,WAF可以有效减少Web应用程序被攻击的风险,保障数据安全和用户隐私。

​ 与传统防火墙相比,WAF更加专注于应用层面的安全防护。

​ 传统防火墙主要用于网络层面的安全防护,侧重于控制网络流量和连接状态,而WAF则能够深入理解和检测Web应用程序的内容和数据流,对HTTP协议进行深度分析,从而更准确地辨别恶意流量。

主流厂商和设备

主流应用防火墙

  1. Cloudflare WAF
  2. Fortinet FortiWeb
  3. Imperva Incapsula
  4. Nginx NAXSI
  5. Palo Alto Networks Cortex XSOAR
  6. Radware DefensePro
  7. SecureWorks CounterACT
  8. SIGILOR Web Application Firewall
  9. Sucuri WP Security Scanner
  10. Trend Micro Deep Security

开源免费waf

雷池 WAF 社区版

​ 长亭科技的产品 有语义引擎检测技术,作为反向代理接入 优势在于性能好、防护能力强,缺点是控制台不适配手机端,出门在外做管理不太方便。 社区版复用了企业版的防护能力,安全能力有保障

ModSecurity

​ ModSecurity 是经典 WAF 开源项目,多年来一直很受欢迎。准确来说 ModSecurity 并不是一款 “WAF”,而是一个 “WAF 规则集”,ModSecurity 是绝大部分 WAF 的底层基石,它并不包含其他 WAF 常见的网站管理、日志管理等功能,甚至完全没有界面,ModSecurity 有的只是防护规则。ModSecurity 不适合直接使用,需要配合二次开发做一定的定制才能用起来,上手门槛高。

南墙 WAF

​ 一款社区驱动的免费、高性能、高扩展顶级Web应用和API安全防护产品。南墙 WEB 应用防火墙是有安科技推出的一款全方位网站防护产品。通过有安科技专有的 WEB 入侵异常检测等技术,结合有安科技团队多年应用安全的攻防理论和应急响应实践经验积累的基础上自主研发而成。目前南墙和飞致云有合作,可以通过 1panel 一键部署,用起来比较方便,最大的问题是目前不支持升级,每次更新都要铲掉重装一遍。

HTTPWAF

​ HTTPWAF 是一种基于 HTTP 协议的 WAF,它可以识别和阻止 HTTP 流量中的恶意请求。HTTPWAF 是一款软件,可以安装在 Web 服务器之前,对 Web 应用程序的流量进行拦截和检查。它使用规则引擎来识别恶意请求并阻止它们,这些规则可以根据不同的应用程序和安全需求进行定制化。

​ HTTPWAF 比较封闭,公开的资料不多,也没有开放源码,根据仅有的资料和在线 Demo 来看,功能相对完善,但产品质量不高。

宝塔 WAF

​ 宝塔 WAF 的前身是宝塔面板中的 Nginx 防火墙,主打上手简单,适合不太懂技术的小白用户使用,能起到一个比较基础的防护效果,缺点在于功能过于繁杂,每个点都做的不够深入。

​ 宝塔 WAF 整体项目质量其实还可以,能达到中上水平,但是小白用户和 GitHub 开发者群体几乎不重叠,因此在 GitHub 上仅仅只有几十个标星。

Coraza

​ Coraza 是一个开源、高性能的 WAF 引擎,使用 Go 语言编写,支持 ModSecurity SecLang 规则集,并且与 OWASP 核心规则集完全兼容,与 ModSecurity 一样不提供界面,只作为检测引擎,需要二次开发才能试用,有机会成为 ModSecurity 的替代品。

JANUSEC

​ JANUSEC 是一个开源的 Web 应用安全网关软件,优势在于功能丰富,同时具备负载均衡、WAF、身份认证、证书管理、堡垒机等功能,缺点是 WAF 的安全防护能力比较弱,只能防护一些简单的攻击,适合对安全防护要求不高的站长。

NGX_WAF

​ NGX_WAF 是一款国产的 Nginx 扩展类型的 WAF 引擎项目。它不提供控制台,使用起来比 ModSecurity 方便些,但相比一体化 WAF 项目使用成本仍较高。其核心能力基于 LibInjection 和 ModSecurity,和其他引用第三方开源规则库的 WAF 项目一样,海外规则库对国内互联网环境适应性差,容易误报,且缺少针对非通用性漏洞的规则。

分类

​ WAF分为非嵌入型WAF和嵌入型WAF: ​ 非嵌入型指的是硬WAF、云WAF、虚拟机WAF之类的; ​ 嵌入型指的是web容器模块类型WAF、代码层WAF。 WAF规则引擎原理 ​ WAF无非就是拦截有害请求和伪装响应,拦截有害请求又分为两个层面,由网络层拦截和由应用层拦截,且任何请求应该先在网络层过滤再到应用层过滤。也就是说,规则引擎分为两块,对请求过滤和对响应过滤,而对请求过滤分为两大步,网络层过滤和应用层过滤。

WAF核心技术解析

WAF的核心技术主要包括流量监控与过滤、请求分析与检测、安全规则与策略等。这些技术共同构成了WAF的强大防护能力。

1. 流量监控与过滤

​ WAF通过监控进入和离开Web服务器的HTTP/HTTPS流量,识别和过滤出恶意请求。

​ WAF会对每个请求进行分析,根据预定义的安全规则和策略来判断请求的合法性。一旦发现恶意请求,WAF会立即进行拦截或阻断,从而防止恶意流量到达Web服务器。

2. 请求分析与检测

WAF使用多种检测技术来识别恶意请求。这些技术包括签名检测、行为分析和学习模型等。

  • 签名检测:通过已知攻击模式的签名数据库,WAF能够识别常见的攻击,如SQL注入、跨站脚本攻击(XSS)等。这种方法基于模式匹配,能够快速准确地识别出已知的攻击手段。
  • 行为分析:通过分析用户行为和请求模式,WAF可以检测异常行为和潜在威胁。例如,WAF可以监控用户请求的频率、请求的参数变化等,一旦发现异常行为,如频繁尝试访问不存在的页面或发送大量异常请求,WAF会立即进行预警或阻断。
  • 学习模型:一些高级WAF使用机器学习和人工智能技术,自动学习正常流量模式,识别和阻止异常和恶意流量。这种方法能够自动适应网络环境的变化,提高WAF的防护效果和准确性。
3. 安全规则与策略

WAF依赖于一系列预定义的安全规则和策略来保护Web应用。这些规则和策略可以是通用的,也可以是针对特定应用的定制规则。管理员可以根据需要更新和调整这些规则,以应对新的威胁。例如,WAF可以配置SQL注入、XSS等安全规则,当检测到这些攻击时,WAF会立即进行阻断或采取其他防护措施。

工作原理

​ WAF 通过过滤、监控和拦截恶意 HTTP 或 HTTPS 流量保护 Web 应用,并能够阻止未经授权的数据离开应用。

​ WAF 需要遵守一套策略,帮助其确定哪些流量是恶意的,哪些流量是安全的。

​ WAF 的操作方式与代理服务器类似,虽然同为“中介”,但后者旨在保护客户端身份,前者却被称为反向代理,因为其使命在于保护 Web 应用服务器免受潜在恶意客户端的影响。

​ WAF串联和旁路都可以,看业务需求,旁路无法阻断攻击。

WAF工作方式

​ 对接收到的数据包进行正则匹配过滤,如果正则匹配到与现有漏洞知识库的攻击代码相同,则认为是恶意代码,从而对于进行阻断。所以,对于基于规则匹配的WAF,需要每天都及时更新最新的漏洞库

Waf工作过程

​ 解析HTTP请求 ​ 对接收到数据请求流量时会先判断是否为HTTP/HTTPS请求,之后会查看此URL请求是否在白名单之内,如果 该URL请求在白名单列表里,直接交给后端Web服务器进行响应处理,对于不在白名单之内的对数据包解析后进 入到规则检测部分。 ​ 匹配规则 ​ 解析后的数据包会进入到检测体系中进行规则匹配,检查该数据请求是否符合规则,识别出恶意攻击行为。 ​ 防御动作 ​ 如果符合规则则交给后端Web服务器进行响应处理,对于不符合规则的请求会执行相关的阻断、记录、告警处 理。 ​ 不同的WAF产品会自定义不同的拦截警告页面,在日常渗透中我们也可以根据不同的拦截页面来辨别出网站使 用了哪款WAF产品,从而有目的性的进行WAF绕过。 ​ 记录日志

WAF选型要点

​ 在选择WAF产品时,开发工程师需要考虑多个关键因素,以确保选择到最适合自身业务需求的解决方案。以下是一些关键的选型要点:

1. 防护能力

WAF的防护能力是选型时最重要的考虑因素之一。开发工程师需要评估WAF对常见Web攻击的防护效果,如SQL注入、XSS、CSRF等。同时,还需要考虑WAF对新型威胁的应对能力,如零日漏洞攻击等。在选择WAF产品时,可以参考权威的安全测试报告和用户评价,以了解WAF的实际防护效果。

2. 性能与稳定性

WAF的性能和稳定性对于保障Web应用的正常运行至关重要。开发工程师需要评估WAF的吞吐量、延迟等性能指标,以确保WAF能够在高并发场景下稳定运行。同时,还需要考虑WAF的故障恢复能力和容错机制,以确保在WAF出现故障时能够迅速恢复服务。

3. 部署与集成

WAF的部署方式和集成难度也是选型时需要考虑的重要因素。

开发工程师需要根据自身的技术架构和业务需求选择合适的WAF部署方式,如物理设备部署、虚拟设备部署或云端部署等。同时,还需要考虑WAF与现有系统的集成难度,以确保WAF能够顺利接入并与其他安全设备协同工作。

4. 管理与维护

WAF的管理和维护也是选型时需要考虑的因素之一。开发工程师需要评估WAF的管理界面是否友好易用,是否支持远程管理和自动化配置等功能。同时,还需要考虑WAF的规则更新和维护成本,以确保WAF能够持续有效地防御新型威胁。

5. 安全性与合规性

WAF的安全性和合规性也是选型时需要考虑的重要因素。开发工程师需要评估WAF是否通过了权威的安全认证和测试,是否符合国家和行业的相关安全标准和规定。同时,还需要考虑WAF是否提供了详细的安全日志和审计功能,以便于后续的安全事件分析和合规性审计。