通过自动分析modsecurity审核日志生成modsecurity异常规则的工具。

modsecurity-exception-factor的Python项目详细描述


modsecurity异常生成器是通过自动分析modsecurity审核日志生成modsecurity异常规则的工具。这对避免误报和拒绝合法客户非常有用,几乎是必不可少的。

安装

pip install modsecurity-exception-generator

用法

命令选项

-d

SQL URL of the data store where the ModSecurity audit log parsed data will be stored and loaded from.

Example: ‘sqlite:////tmp/modsecurity-exception-factory.db’.

-i[可选]

Path to the ModSecurity audit log file to parse.

One can use ‘-‘ as a value for this parameter to read the audit log data from standard input.

-c[可选]

Path of the optional configuration file.

基本示例

modsecurity-exception-generator \
    -i /path/to/modsec_audit.log \
    -d "sqlite:////tmp/service.db"\
> modsecurity_crs_15_exceptions.conf
zcat modsec_audit.log.*.gz \
| modsecurity-exception-generator \
    -i - \
    -d "sqlite:////tmp/service.db"\
> modsecurity_crs_15_exceptions.conf

警告

The produced exceptions must be loaded BEFORE the rules they are applied to.

删除多余的异常

简单地运行“modsecurity exception generator”程序生成异常,就像在基本示例中一样,可能会生成一些多余的异常规则。因此,我们需要一些先进的选择,以获得更聪明的结果。这就是使用-c选项给出的yaml配置文件的用处所在。

yaml配置文件支持以下指令:

忽略

指示异常生成器最容易忽略的日志。

示例

忽略由ID为981176的规则生成的任何日志消息。

ignore:
   rule_id: [981176]

这也可以应用于其他变量,如'host-name'(目标主机名),'request-filename'(目标url)或'payload-container'(与规则匹配的变量)

最小出现次数阈值

忽略影响小于minimum_occurrence_count_threshold的异常记录消息出现次数。

最大值,阈值

有时,异常规则可能具有具有太多值的条件,如以下示例所示。

SecRule REQUEST_FILENAME "@rx ^(/foo_bar|/blabla|/test_2/|...)$" ...

此条件可以通过设置^ {STR 1 } $Max MuxUnValueA.CurtTyPosith>而忽略,低于正则表达式中的值个数。

核心规则集

的配置示例
ignore:
    rule_id: [981174, 981176, 981203, 981200, 981201, 981202, 981203, 981204, 981205, 981220]

minimum_occurrence_count_threshold: 1000

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法填充ArrayList   java编辑右键单击约会JFXtras上的弹出窗口   Grails2.0.3中的java未关闭GSP表达式(尽管已关闭)   Java 1.8.0_162、Drools 6.5.0和多决策表(电子表格)   java禁止在Redis断开连接时重新连接Spring引导应用程序   java TCP聊天服务器   java如何使用paintComponent()而不调用多个“draw()”方法?   unix为什么找不到installshield Java包?   如何阻止java的使用。伊奥。文件   java Facebook SDK阻止向Firebase上传字符串   java如何下载Magnolia cms社区版?   java是否可以像JSP一样序列化Gson中方法返回的数据?   java如何在线程完成后使For循环继续?   java如何将数据从Angular 10表单传递到包含字符串和文件/图像的Spring Boot Rest API?   java如何识别SQLite数据库列中的一段数据?   java在无序列表中查找缺少的数字   线程“main”java中出现异常。unsatifiedLinkError:java中没有indri_jni。图书馆路径   日志如何在Java中登录到文件?   类强制转换异常java