在工作或面试中,网安从业者经常遇到关于各类安全设备的问题。然而,初学者对于安全设备的工作原理,功能和作用大都没有很深入的了解。基于此背景,開山安全笔记将发表关于安全设备的系列文章。
本篇主要论述防火墙的概念、原理和作用、分类,且重点介绍Web应用防火墙(waf)的部署方式,适用场景等,同时对waf的高并发,waf与其他安全产品的区别等常见问题作总结。
以下内容为笔者搜集整合而来,若有纰漏,望读者指出,我们共同进步。
目录
1 防火墙简介
当今网络应用飞速发展,随之产生的网络攻击威胁促进网络安全防护的需求增加,而防火墙便是网络安全防护的首选,也是众多安全产品之首。
防火墙是作用于不同安全域之间,具备访问控制及安全防护功能的网络安全产品,根据安全目的、实现原理的不同,主要分为网络型防火墙、WEB应用防火墙、数据库防火墙、主机型防火墙或其组合。 GB/T 20281-2020 信息安全技术防火墙安全技术要求和测试评价方法
图1-防火墙工作示意图
-
防火墙的概念起源于1980年代。1988 年发布的莫里斯病毒是最早的互联网病毒之一,它产生了对虚拟防火墙的需求。 -
后续出现了防火墙的前身,Packet filter等包过滤型路由器,有隔离网络功能。20 世纪 90 年代初,人们开发出一种基于网络的防火墙,可以专门保护 FTP 流量。这是防火墙能够控制应用程序或服务访问的开端。
-
到 20 世纪 90 年代末,随着在线活动的增加,网络服务器被黑客攻击成为问题,人们开始关注网络应用程序防火墙(WAF)的开发。
图2-防火墙的起源和发展示意图
图3-防火墙技术革新示意图
1.3 防火墙的分类
-
第一代:包过滤防火墙(仅能实现简单的访问控制)
-
实现包过滤的核心技术是访问控制列表(五元组)
-
包过滤防火墙只根据设定好的静态规则来判断是否允许数据通过
-
第二代:代理防火墙(在应用层代理内部网络和外部网络之间的通信)
-
第三代:状态监测防火墙(发展史上的里程碑)
-
第四代:统一威胁管理(简称UTM)
-
第五代:下一代防火墙(简称NG)
图4-包过滤功能概述
-
网络型防火墙 -
WEB应用防火墙(硬件WAF、软件WAF和云WAF) -
数据库防火墙 -
主机型防火墙 -
以上组合
2 waf的原理及作用
2.1 waf的概念
2.2 waf是如何工作的?
为确保安全,waf通过配置DNS解析地址、软件部署、串联部署、透明部署、网桥部署、反向代理部署、旁路部署等(网关处)获取攻击流量,waf会拦截并检查所有 HTTP 请求,基于规则进行攻击特征匹配,或利用其他方式进行攻击检测及阻断。通过以上行为,最终确保外部攻击流量无法触达网站服务器。
接下来我们阐述waf的部署及检测引擎细节。
waf的部署
-
透明传输部署
-
不改动原有网络拓扑
-
不增加网络设备的接口
-
WAF关机不影响服务器的访问
-
旁路部署
-
反向代理部署
-
不希望把WEB服务器暴露在公网。
-
特点:客户端与服务器互相均不可见
-
只转发代理策略匹配的HTTP流
-
镜像部署
-
只需要检测是否被攻击,不需要防护
图7-部署方式优劣势比较
同时注意还存在分布式部署的waf。综上,waf或同时或优先接收客户端到服务端的流量进行分析。
waf是如何检测流量的?
其实这是核心问题,就是waf的检测引擎到底提供了哪些功能,我们看京东云团队的一篇技术文章“Web应用防火墙--规则防护 | 京东云技术团队”
1.规则过滤:WAF防火墙根据预先定义的规则集来过滤和阻止恶意请求。这些规则可以基于请求的特征、源IP地址、请求频率等因素进行配置。一旦WAF检测到与规则匹配的恶意流量,它会采取相应的阻止措施,如拦截、重定向或放行。
2.攻击签名检测:WAF防火墙利用已知的攻击签名来识别恶意流量。这些签名通常基于已知的攻击模式或恶意代码的特征。当WAF检测到与签名匹配的流量时,会采取相应的阻止措施,从而防止攻击成功执行。
3.行为分析:WAF防火墙还采用行为分析技术来识别异常流量。它通过分析请求的行为模式,如访问频率、连接数、用户行为等,来识别与正常用户行为不符的异常行为。如果请求的行为被判断为恶意,WAF会采取相应的阻止措施。
4.机器学习算法:现代的WAF防火墙利用机器学习算法来提高恶意流量识别的准确性,自动适应不断变化的攻击手法,并实时更新防御策略。
我们展开前面所提的规则过滤,提出一个问题:
安全策略和规则是如何匹配的?如何绕过?
-
正则匹配:例如匹配函数 concat(),而不会匹配字符 concat。而 MySQL里面concat函数调用的时候括号是可以被隔开的。例如
concat ()
,就可以绕过该正则。 -
语义分析:将输入的参数模拟为真实语句去运行,然后判断结果是否有问题。这种理念类似于一个 webshell检测引擎,在不考虑性能等情况下,将PHP的Zend引擎下执行命令的函数hook住,如果该函数被调用,会先进入自己的逻辑去判断。
对于语义分析的WAF,绕过理念会更加复杂和困难。因为你不再是对正则进行绕过。而是类似于对一个解析引擎进行黑盒测试的绕过,将其绕过后还要保证后端的真实解析引擎不出错。
类似于前面举例 concat的绕过,本质上是利用了前端语言引擎的解析和后端MySQL引擎解析的不一致达成绕过。而在基于语义分析绕过的情况下,再也无法使用等价替换的手段,只能通过WAF引擎与后端服务器引擎不一致来绕过。
长亭雷池waf开源了其语义分析引擎,并指出以下观点。
-
“基于规则匹配的攻击识别方法存在先天不足。“
-
“智能语义分析算法由词法分析、语法分析、语义分析和威胁模型匹配 4 个步骤组成。“
以 SQL 注入检测为例:
图8-语义分析与传统规则匹配区别示例图
2.3 waf的安全模型及局限性
waf的安全模型:
-
主动安全模型——根据允许的元素和操作列表过滤流量的白名单,任何不在列表中的内容都会被阻止。这种模型的优势在于它可以避免没有预料到的新的或未知的攻击。 -
被动安全模型——通过黑名单阻止特定的攻击来源对象。该模型更易于实施,但不能保证所有威胁都得到解决。可能需要维护一个可能庞大的恶意签名列表。同时安全级别取决于限制的具体数量。
-
不能防止源于内部的攻击,不提供对内部的保护; -
不能防病毒; -
不能根据网络被恶意使用和攻击的情况动态调整自己的策略; -
本身的防攻击能力不够,容易成为被攻击的首要目标。
3 waf产品
-
硬件Waf:绿盟、启明、安恒、知道创宇、天融信等
硬件Waf通常的安装方式是将Waf串行部署在Web服务器前端,用于检测、阻断异常流量。常规硬件Waf的实现方式是通过代理技术代理来自外部的流量,并对请求包进行解析,通过安全规则库的攻击规则进行匹配,如成功匹配规则库中的规则,则识别为异常并进行请求阻断。
-
软件Waf:安全狗、云锁、D盾等
软件Waf则是安装在需要防护的服务器上,实现方式通常是Waf监听端口或以Web容器扩展方式进行请求检测和阻断。
-
云WAF:阿里云、安全狗、安恒、知道创宇等
云WAF,也称WEB应用防火墙的云模式,它的主要实现方式是利用DNS技术,通过移交域名解析权来实现安全防护。用户的请求首先发送到云端节点进行检测,如存在异常请求则进行拦截否则将请求转发至真实服务器。
4 常见问题
-
路由器、交换机的本质是根据MAC地址表/路由表进行数据帧/数据包的转发/路由。 -
防火墙的本质是在一个已经连通的网络中对传输的数据进行控制,以达到防治网络病毒攻击的目的。
-
IDS:入侵检测系统。IDS更侧重于威胁检测和警报,而防火墙则侧重于实时的访问控制和阻止威胁。 -
IPS:入侵防御系统。能自动采取措施以防止检测到的攻击,是主动防御系统。
-
并发连接数控制:通过限制最大并发连接数来减轻防火墙的负担,使用负载均衡技术分散流量 -
防火墙高可用架构:主备、集群和分布式。主备方式即一台主防火墙负责处理业务,另一台备用防火墙在主防火墙出现故障时接管业务,保障系统正常运行。集群方式则是多台防火墙协同工作,共同处理业务,任一防火墙故障不影响整体性能。分布式架构通过将防火墙功能模块化,实现各模块独立部署和互不干扰,显著提升系统可靠性。
5 总结
相信大家在初学安全时,需要接触大量“不知所云”的安全设备,建议先建立有对这些安全设备的基础概念,知晓其简单原理,再结合业务进行深入的了解。
综上,本篇主要论述防火墙的概念、原理和作用、分类,且重点介绍Web应用防火墙(waf)的部署方式,适用场景等,同时对waf的高并发,waf与其他安全产品的区别等常见问题作总结。我们知道了:
-
waf通过软件部署、串联部署、透明部署、网桥部署、反向代理部署、旁路部署等(网关处)获取攻击流量,拦截并检查所有 HTTP 请求,基于规则进行攻击特征匹配,语义分析等进行攻击检测及阻断。 -
规则匹配通常为正则匹配,语义分析简单讲就是一个代码执行引擎。 -
waf能提供常见web漏洞防护,扫描防护,CC攻击防护,反爬,日志记录,精准访问控制,IP黑名单和区域封禁等功能。
本文为笔者搜集整合而来,若有纰漏,望读者指出。我们共同进步!
-
GB/T 20281-2020 信息安全技术防火墙安全技术要求和测试评价方法
-
Web Application Firewall 101 - Learn All About WAFs
-
信息安全-网安产品(WAF、蜜罐、漏洞扫描工具、安全事件系统) -
防火墙详解(发展史、概念、应用、包过滤技术、状态监测包过滤技术 -
waf从入门到Bypass | Wh0ale's Blog https://wh0ale.github.io/2019/12/04/waf%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0Bypass/ -
WAF那些事儿 (qq.com) -
WAF建设运营及AI应用实践 - 博客 - 腾讯安全应急响应中心 https://security.tencent.com/index.php/blog/msg/145 -
部署雷池WAF的避坑指南 -
Azure Web 应用程序防火墙的工作原理 - Training | Microsoft Learn https://learn.microsoft.com/zh-cn/training/modules/introduction-azure-web-application-firewall/3-how-azure-web-application-firewall-works -
Web应用防火墙--规则防护 | 京东云技术团队 - 掘金 (juejin.cn) https://juejin.cn/post/7275601196923633727 -
WAF防火墙到底有什么作用 - 掘金 https://juejin.cn/post/7332113324652249126 -
语义分析检测算法 | 雷池 WAF 社区版 (chaitin.cn) https://waf-ce.chaitin.cn/docs/about/syntaxanalysis -
盘点 2023 十大免费/开源 WAF - 知乎 (zhihu.com) https://zhuanlan.zhihu.com/p/638553359 -
好文赏析:一文读懂运行时应用程序自我保护(RASP) - 掘金 (juejin.cn) https://juejin.cn/post/7222833868503990331
https://www.cnblogs.com/yunjisuanchengzhanglu/p/16693852.html
公众号达到140+关注了
下一个目标是150个关注
欢迎点赞收藏转发
click:https://kitescat.github.io/
<開山之道,安全参照>
原文始发于微信公众号(打代码的猫):【開山安全笔记】WAF略知一二
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论