网站防火墙查询
上周帮一个做外贸的网站朋友看服务器日志,发现有人用脚本在批量扫他的防火后台登录接口。每秒三十多次请求,墙查IP来自三个不同国家。网站他问我:“我装了ModSecurity,防火怎么没拦住?墙查”我看了眼规则库,版本还停在去年。网站防火墙不是防火装完就完事的东西——你得会查,查规则、墙查查日志、网站查拦截效果。防火查不明白,墙查等于没装。网站 查网站防火墙,防火第一个要搞清楚的墙查是它到底在哪一层干活。云WAF像Cloudflare、阿里云盾,流量先绕到它们节点再回源,你在服务器上抓包看不到攻击IP,得去云控制台看事件。主机层防火墙比如iptables、nftables,管的是系统级包过滤,跟HTTP层攻击不是一回事。应用层WAF像ModSecurity、雷池、南墙,才真正解析HTTP请求体、URL参数、Cookie。三层各查各的,混在一起查就是浪费时间。我见过有人拿nftables的规则去对SQL注入,查了半天说没日志——那玩意根本不看SQL语句。 查规则集是第二步。ModSecurity用CRS(核心规则集),默认安装后很多规则是DetectionOnly模式,只记日志不拦截。你得去 日志才是查防火墙的主战场。ModSecurity的审计日志在 查拦截效果得做对比测试。拿 我自己的习惯是每周扫一遍日志里的/etc/modsecurity/modsecurity.conf把SecRuleEngine改成On。CRS的规则文件在/usr/share/modsecurity-crs/rules/下面,按攻击类型分:REQUEST-942是SQL注入,REQUEST-941是XSS,REQUEST-930是路径遍历。想看某条规则具体匹配什么,直接grep -r "ruleid"搜。我习惯用SecRuleRemoveById关掉误报严重的规则,比如某些老CMS的上传接口总触发932系列。/var/log/modsec_audit.log,格式分A、B、C、D、E、F、H、I、J、K、Z段。A段是请求头,B段是请求体,H段是命中规则详情,Z段是最终处理动作。重点看H段里的id和msg。有次客户说后台传图总失败,我翻日志看到id "949110",msg写着“Inbound Anomaly Score Exceeded”,意思是多个规则累计扣分超阈值被拦了。把阈值从5调到10,问题解决。云WAF的日志更直观,Cloudflare的防火墙事件里直接标出“SQLi”“XSS”“Bot Fight Mode”,还能看JA3指纹。sqlmap对测试环境跑一遍,看WAF返回403还是200。更土的办法是用curl手动发带union select的请求:curl -v "http://test.com/?id=1+union+select+1,2,3"。如果返回正常页面,说明规则没生效或者被绕过了。绕过手法太多了:大小写混写、内联注释/*!50000union*/、URL二次编码。查的时候别只看拦没拦,要看拦得对不对——误杀正常业务比漏杀更烦人。id分布,看哪些规则触发最多。如果某条规则天天触发但全是误报,直接加白名单。如果某条攻击规则一次都没触发过,反而要怀疑是不是攻击者用了编码绕过。防火墙查询不是一次性任务,是持续调优的过程。你不动它,它就是个摆设;你查得细,它才真能挡事。
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-