AWS WAF的AWSManagedRulesCommonRuleSet未拦截RFI请求问题咨询
问题原因及解决方案
核心原因
- Common Rule Set不覆盖RFI检测:AWSManagedRulesCommonRuleSet聚焦通用Web攻击(如XSS、SQL注入、路径遍历),远程文件包含(RFI)属于PHP特定攻击场景,不在其检测范围内。
- PHP规则组的RFI规则默认仅计数:你启用的AWSManagedRulesPHPRuleSet虽包含RFI检测规则,但默认配置下这类规则的动作是**COUNT(计数)**而非BLOCK(拦截),所以日志里无匹配拦截记录。
- 样本特征未命中规则库:测试请求的编码格式或特定URL特征,可能未触发现有托管规则的匹配逻辑。
解决步骤
- 修改PHP规则组的规则动作:登录WAF控制台,找到AWSManagedRulesPHPRuleSet,将其中
PHP_RFI相关规则的动作改为BLOCK;也可直接将整个规则组的默认动作设为BLOCK(注意:先在测试环境验证,避免误拦截正常请求)。 - 调整KnownBadInputsRuleSet的动作:AWSManagedRulesKnownBadInputsRuleSet包含已知恶意输入检测,将其规则动作改为
BLOCK,可补充覆盖部分RFI攻击。 - 更新托管规则组版本:AWS定期更新规则特征库,确保使用最新版本的托管规则组,提升攻击样本覆盖率。
- 添加自定义规则兜底:如果托管规则仍未覆盖测试样本,可创建自定义规则:
条件:请求参数中包含远程URL特征(如raw.githubusercontent.com)且带有.php后缀 动作:BLOCK
验证方法
调整规则后重新发起测试请求,查看WAF日志是否显示匹配到对应规则并触发BLOCK动作。
内容的提问来源于stack exchange,提问作者Simon B
相关产品推荐
相关产品推荐

