modsecurity3:将规则替换为针对特定 URI 的自定义规则

modsecurity3:将规则替换为针对特定 URI 的自定义规则

在 crs 3.2 中,有一条 ID=941320 的规则,它阻止 CKEditor 在 drupal 中工作。

CKEditor 是一个所见即所得的编辑器,它生成 html 并尝试将其上传到服务器。带有 crs 的 Modsecurity 3 会阻止此类请求。

为了减少误报,我确实克隆了原始规则 941320 并修改了 html 标签列表。现在我的自定义规则保存在 RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf 文件中,并使用专用的唯一规则 ID。新的自定义规则对仍然被禁止的 html 标签的减少子集进行操作。一些常见的 html 标签已从黑名单中删除,应该可以通过。

对于像“/private-message/create”这样的 URI,如何用我的规则 9001121 替换规则 941320?

答案1

首先,您必须创建一个排除项,以避免941320在 URI 是您给出的时候激活规则:

SecRule REQUEST_URI "@streq /private-message/create" \
    "id:9001120,\
    phase:1,\
    pass,\
    nolog,\
    ctl:ruleRemoveById=941320"

然后如果您想控制该端点的请求,您可以创建一个链式规则:

SecRule REQUEST_URI "@streq /private-message/create" \
    "id:9001121,
    phase:2,
    block,\
    capture,\
    t:none,t:urlDecodeUni,t:jsDecode,t:lowercase,\
    msg:'Possible XSS Attack Detected - HTML Tag Handler',\
    logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}',\
    tag:'application-multi',\
    tag:'language-multi',\
    tag:'platform-multi',\
    tag:'attack-xss',\
    tag:'OWASP_CRS',\
    tag:'capec/1000/152/242/63',\
    tag:'PCI/6.5.1',\
    tag:'paranoia-level/2',\
    ver:'OWASP_CRS/3.3.0',\
    severity:'CRITICAL',\
    chain"
    SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "@rx <your-modified-pattern...\W" \
        setvar:'tx.xss_score=+%{tx.critical_anomaly_score}',\
        setvar:'tx.anomaly_score_pl2=+%{tx.critical_anomaly_score}'"

或类似的东西...您可以看到最后一个链式规则的第二部分与原始规则相同。不要忘记将您自己的模式放入论证中。

您必须将其放入您的自定义排除规则集中,例如REQUEST-903.9010-custom-exclusions.conf,并将其包含到您的服务器中(*.conf就足够了)

相关内容