当 SecRuleUpdateActionById 与原始规则发生改变时,哪些操作会被保留?

当 SecRuleUpdateActionById 与原始规则发生改变时,哪些操作会被保留?

所以,更新操作 需要重新列出操作标志。至少这是我对“只能出现一次的操作被覆盖”的理解。这对于大多数操作来说相当明显,但对于 ctl: 或专业参数来说则不那么明显。

我目前正在建造这个编辑器图形用户界面,所以我想知道原始 SecRule 中的哪些标志值得在 SecRuleUpdate 中重复。

在此处输入图片描述

除了“只能出现一次”之外,手册对标志类型的提示相对较少。例如,“操作组”(元数据、非/破坏性、流程、数据)没有完全传达哪些选项是重复/列表参数。所以现在我只是将所有可能的操作分类如下:

  • 固定参数(无法更改):

    • ID
    • 阶段
    • 链 (有点,因为它不应该被改变
  • 元数据(无需保留 IMO):

    • 准确性、成熟度
    • 修订版
    • 严重性,标签
  • 实际行动(布尔标志)

    • 允许、阻止、通过、暂停、拒绝、删除、状态
    • auditlog、noauditlog、nolog、日志、捕获
    • skip、skipAfter、multiMatch、xmlns
    • 信息
  • 列出操作(→每个 SecRuleUpdateAction 不会添加两次):

    • t:***仅当存在 t:none 时才需要复制
    • deprecatevar、expirevar、initcol、setenv、setvar、
  • 不清楚:

    • 日志数据
    • setuid:、setrsc:、setsid: → 看起来像变量设置选项,因此可能会出现多次
    • sanitise***
    • append:、prepend:、exec:、proxy:、redirect: → 不过我假设这些是单动作标志
    • ctl:***

所以logdata实际上只是msg选项的一个变体。但我不确定它是否不能出现多次(因此需要从 SecRuleUpdate 中省略…)。也许我只是被收集多个“匹配数据:…”条目的日志条目误导了,并且没有任何规则具有多个日志数据:…选项。

exec:以及append:诸如此类的东西我还没有真正在 CRS 规则 ( egrep 'setuid|setsid|prepend|exec:|proxy|redirect' /usr/share/modsecurity-crs/rules/*.conf) 中看到使用过。而且我认为它们不是迭代的,而是单数的。另一方面,手册上说的是“无中断的”,所以严格来说,“exec”、“append”和“prepend”不是像 block/deny/etc 这样的独占操作。与“redirect”和“proxy”看起来非常不同。

但 sanitiseArgs/Matched/… 或 setuid:/setsid:/setrsc: 的作用范围似乎与 setvar: 类似。然而,它们是否会被继承或被 SecRuleUpdateActionById 覆盖仍不太清楚。

这些ctl:*标志似乎不太重要,因为它们主要是布尔标志,所以它们肯定不受 SecRuleUpdates 的影响。

答案1

事实证明这exec是一个重复选项,但例如append/prepend不是。其余的都是你所期望的。
v2/re_actions.c

行动 类别 精氨酸 基数
ID 元数据 1,1
标记 元数据 1,1
转速 元数据 1,1
信息 元数据 1,1
日志数据 元数据 1,1
准确性 元数据 1,1
到期 元数据 1,1
版本 元数据 1,1
严重程度 元数据 1,1
流动 0,0
日志 无中断 0,0
不记录 无中断 0,0
审计日志 无中断 0,0
无审计日志 无中断 0,0
堵塞 颠覆性 0,0
否定 颠覆性 0,0
地位 颠覆性 1,1
降低 颠覆性 0,0
暂停 颠覆性 1,1
重定向 颠覆性 1,1
代理人 颠覆性 1,1
经过 颠覆性 0,0
跳过 颠覆性 1,1
跳过 颠覆性 1,1
允许 颠覆性 0、1
阶段 颠覆性 1,1
无中断 1,1 许多
控制 无中断 1,1 许多
xmlns 无中断 1,1 许多
捕获 无中断 0,0
净化精氨酸 无中断 1,1 许多
sanitiseMatchedBytes 无中断 0、1 许多
sanitizeMatchedBytes 无中断 0、1 许多
消毒精氨酸 无中断 1,1 许多
消毒匹配 无中断 0,0 许多
消毒匹配 无中断 0,0 许多
sanitiseRequestHeader 无中断 1,1 许多
sanitizeRequestHeader 无中断 1,1 许多
sanitiseResponseHeader 无中断 1,1 许多
sanitizeResponseHeader 无中断 1,1 许多
设置环境变量 无中断 1,1 许多
设定变量 无中断 1,1 许多
到期日 无中断 1,1 许多
贬低变量 无中断 1,1 许多
初始值 无中断 1,1 许多
设置 无中断 1,1
设定 无中断 1,1
设置用户标识 无中断 1,1
执行 无中断 1,1 许多
多重匹配 无中断 0,0
标签 元数据 1,1 许多
前置 无中断 1,1
附加 无中断 1,1

相关内容