当前位置:首页 > 知识

web防火墙的作用

去年夏天,火墙我帮一个做跨境电商的火墙朋友看服务器日志。凌晨三点,火墙后台突然涌进来两千多条请求,火墙全部来自越南和印尼的火墙IP,目标出奇地一致——他的火墙用户登录接口。这不是火墙正常用户能干出来的事。后来查清楚了,火墙是火墙撞库攻击。有人拿了一批泄露的火墙账号密码,写了个脚本自动尝试登录。火墙如果没有Web防火墙挡在前面,火墙这波攻击至少能撞开几百个账户。火墙

Web防火墙,火墙英文叫WAF(Web Application Firewall),火墙干的活儿跟传统防火墙完全不是一回事。传统防火墙管的是网络层,看IP、看端口,像个小区保安,只认门牌号。WAF管的是应用层,它要看HTTP请求里到底装了什么内容——你提交的表单、你带的参数、你的Cookie,它全要拆开看一遍。说白了,传统防火墙管“谁能进小区”,WAF管“进了小区的人有没有在撬门”。

具体怎么管?举个最常见的例子。SQL注入,这是Web攻击里最老牌也最管用的手段之一。攻击者在输入框里填一段数据库查询语句,如果后端没做好过滤,这段语句就会被数据库执行,轻则泄露数据,重则整个库被删。WAF的做法是识别请求里的异常模式——比如参数里出现了SELECT * FROM这种典型SQL片段,或者UNION、--这类注释符,直接拦截。规则引擎跑得很快,正常用户根本感觉不到延迟。

但规则匹配只是基本功。我见过一些WAF产品,规则库几万条,照样被绕过。为什么?因为攻击者会用编码变形,把SQL关键字拆开、转义、大小写混写,甚至用Unicode字符替换。所以现在主流的WAF都在往机器学习方向走。它不只看单条请求长什么样,还看整个会话的行为轨迹。一个人正常浏览商品页面,突然在五秒内连续请求了二十次支付接口——这就不对劲。行为模型会把这个会话标记为可疑,触发二次验证或者直接阻断。

另一个容易被忽略的作用是CC攻击防护。CC攻击跟DDoS不一样,它不靠流量堆,靠的是“合法的密集请求”。比如你的商品搜索接口,每次查询都要读数据库。攻击者用代理池模拟正常用户,每秒查几百次,数据库连接池很快就被打满,正常用户反而搜不出东西。WAF在这里做的是频率控制——同一个IP、同一个Session,在时间窗口内超过阈值就限流。阈值设多少合适?得看业务。一个新闻网站的文章页,一分钟刷六十次不过分;但一个支付确认接口,一分钟请求三次都嫌多。

还有一层作用,很多人没太在意,就是日志审计和溯源。WAF拦下来的每一条请求,都带着完整的HTTP头、源IP、时间戳、匹配规则。这些日志平时看着烦,真出了事就是线索。我朋友那次撞库,WAF日志里清清楚楚记录了攻击源的地理分布、使用的User-Agent特征、尝试频率的变化曲线。拿着这些数据去报警,比空口说“我被黑了”有用得多。

当然,WAF不是银弹。它挡不住逻辑漏洞——比如你的优惠券接口没做次数校验,攻击者正常请求就能薅走一万张券。这种问题得靠代码审计和业务风控。WAF更像是一道筛子,把明显脏的东西滤掉,让后面的应用少受点罪。部署位置也有讲究,放在CDN边缘还是放在源站前面,效果不一样。边缘部署延迟低,但可能漏掉一些需要结合后端状态的攻击;源站部署看得全,但流量都打到源站了,带宽压力大。多数公司选混合模式,边缘做粗筛,源站做精筛。

说到底,Web防火墙的作用不是“保证安全”,而是“提高攻击成本”。攻击者发现你的WAF规则严、行为模型敏感、日志记录完整,他可能就换目标了。安全这件事,从来不是比谁更硬,是比谁更麻烦。你让攻击者觉得麻烦,他就去找软柿子了。

分享到: