WAF与防火墙的区别
网络防火墙作为访问控制设备,主要工作在OSI模型三、四层,基于IP报文进行检测。只是对端口做限制,
对TCP协议做封堵。其产品设计无需理解HTTP会话,也就决定了无法理解Web应用程序语言如HTML、SQL语言。因此,它不可能对HTTP通讯进行输入验证或攻击规则分析。
针对Web网站的恶意攻击绝大部分都将封装为HTTP请求,从80或443端口顺利通过防火墙检测。
根据TCP会话异常性及攻击特征阻止网络层的攻击,通过IP分拆和组合也能判断是否有攻击隐藏在多个数据包中,但从根本上说他仍然无法理解HTTP会话,难以应对如SQL注入、跨站脚本、cookie窃取、网页篡改等应用层攻击。
web应用防火墙能在应用层理解分析HTTP会话,因此能有效的防止各类应用层攻击,同时他向下兼容,具备网络防火墙的功能。
WAF的工作过程:
解析HTTP请求==》匹配规则==》防御动作==》记录日志
具体实现如下:
1.解析http请求:协议解析模块
2.匹配规则:规则检测模块,匹配规则库
3.防御动作:return 403 或者跳转到自定义界面
4.日志记录:记录到elk中
也就是说:WAF的流程就是监控链接,根据链接的请求去规则库匹配,若是匹配成功就有漏洞风险,记录日志。
整改方法
1、先判断该告警是否是误报,可通过正常的访问方式是否会触发告警和查看告警详细信息来进行判断
2、再判断该规则告警是否可以通过修复完善代码来解决
3、若不能修改代码可以把waf阻断功能开启,避免该漏洞被人组合利用
如果正常访问方式都有报警就表明是误报,若是没有报警就表明有用户执行了异常请求(拼接参数等操作)才会导致报警,此时检查该异常请求我们代码层逻辑有没有处理,若是已处理则表明该漏洞不用处理,处理不了则开启waf阻断功能,该阻断功能阻断的是异常链接。