通过自动分析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第三方库


热门话题
JavaFileUtils。资源目录上的listFiles()   如何在java安全中禁用日志记录?   列出如何在Java中对对象数组排序   堆栈帧采用的java大小   java在两个布局之间设置交叉淡入动画   java如何在SeleniumWebDriver中选择oiselect的值   java无法获取类型为org的对象的未知属性“实现”。格拉德尔。应用程序编程接口。内部的人工制品dsl。依赖关系。DefaultDependencyHandler   未找到java Android onClick内部片段   java CXF:无法创建加密类null   web服务java 1.6枚举问题com。国际商用机器公司ws。网络服务。发动机枚举。风格包裹   java将整行作为字符串数组从具有多列的树元素中获取   java在不调整窗口大小的情况下不显示所有元素   java如何在activemq中创建/预配置持久订户。xml,以便在ActiveMQ启动时准备好这些订阅?   java垃圾收集能保证程序不会耗尽内存吗?   如何从C++或PHP发送数据到java?   java Guava迭代器,并在列表对象中对列表进行迭代   java Android SQite数据库搜索和查找列错误   基于MySQL和Java的排序函数优化   具有持久性的java消息会卡在嵌入Tomcat的ActiveMQ中