WAF防护规则之挂马 漏洞 ODAY

针对挂马的检测策略同理,我们可以根据设定检测HTTP请求体中的特征,发现PHP挂马程序,代码如下所示:req-body contains "<?php", req-body contains "eval";

outputo-20210606-152448-567-zqzm.png

如果网站中存在木马或病毒文件,ModSecurity就不能拦截它们,除非它们在网络数据交互期间触发ModSecurity的保护规则。

对WAF防火墙保护规则的编写进行了探讨。

一、Security公司的角色。

Mod_security可以防止下列错误:

SQLInjection(SQLi):防止SQL注入。

交叉站点脚本:防止跨站点脚本攻击(XSS)。

局部文件包含(LFI):通过利用局部文件包含的漏洞防止攻击。

Remote文件包含:利用远程文件包含防止攻击的漏洞。

RCE:利用远程命令的执行漏洞来阻止攻击的发生。

PHP代码注入:避免了PHP代码的注入。

破坏协议:防止恶意访问破坏协议。

恶毒:利用远程代理感染漏洞阻止攻击。

Shellshock:使用Shellshock漏洞来阻止攻击。

SessionSecurities:防止使用会话来识别恒定漏洞。

扫描检测:阻止黑客扫描站点。

Metadata/Errors:防止源代码/Errors泄漏。

“蜜罐计划”的黑名单:“蜜罐计划”的黑名单,也就是“入侵保存”的黑名单。

IP国别:IP国别根据确定的IP地址属性而定。

二、保护模型规则的格式。

SecRuleARGS"@rx攻击"阶段:1,记录,拒绝,状态:406,ID:1,Message:"Rulemsg",t:小写。

再次,ModSecurity检测变量。

侦测变数或设定侦测位置。使用105个Mod_security检测变量,其中仅列出一些常用变量:

REQUEST_URI:被请求站点的URL,包括GET请求的参数,但是没有域名,例如/index.php?P=X

包含GET请求参数和域名的完整网址,如http://www.example.com/index.php?p=x

ServerName:服务器的域名或IP地址。

Remote_ADDR:客户端的IP地址。

Request体:Request体,包含所有请求参数和请求值。

多个检测变量可以同时设置,并以“|”分隔。

谓词(verb的缩写词)阶段。

Mod_security分为以下五个处理阶段:

要求标题阶段,与编号1对应。

申请主体阶段,对应2号。

响应标题阶段的编号为3。

响应阶段,对应4号。

与编号5对应的日志记录阶段。

不能任意定义处理阶段,并且需要与检测变量所在的阶段匹配。例如,REQUEST_BODY是请求体,而处理阶段需要设置为2,但是不能设置为1,这是因为1是不包含请求数据的请求头阶段,不能被截获。

动词ModSecurity不及日志设置。

有五个参数用于日志设置:

记录:记录日志,将日志内容保存到错误日志站点。

请勿登录。

审计日志:作为审核日志记录下来,并且日志内容保存在配置的审计日志文件/文件夹中。

Noauditlog:审核日志不被记录。

记录资料:设定记录内容。

七.安全运行模式。

动作关键词共47个,常见行为如下:

Discovery:阻止此访问并向客户端返回错误消息。

状况:在访问被拦截时,设置HTTP状态码并返回给客户机,它只能用来拒绝和重定向。

Discovery:立即中断并删除TCP链接。这时,客户机接收到的响应超时。

许可:允许这种访问。

Pass:允许这样的访问,但是它会被丢弃,然后通过其他规则进行过滤。

链接:将当前规则与另一个规则关联,从而创建规则链。规则链中的所有规则均已成功匹配,才能执行规则中设置的操作。

Ctl:暂时更改Mod_security的默认配置,只有当前配置才是有效的。

分享: