Task: add WAF service to WP site
Implementation steps:
1. Create WebACL
2. Add rulesets:
AWS-AWSManagedRulesCommonRuleSet
AWS-AWSManagedRulesWordPressRuleSet
AWS-AWSManagedRulesSQLiRuleSet
AWS-AWSManagedRulesPHPRuleSet
AWS-AWSManagedRulesKnownBadInputsRuleSet3. Disable next rules in the AWS-AWSManagedRulesCommonRuleSet:
SizeRestrictions_BODY
GenericRFI_BODY
CrossSiteScripting_BODY
GenericRFI_QUERYARGUMENTS4. Done.
私が今回導入したルールは、こちらです。
- Wordpress application
AWS-AWSManagedRulesWordPressRuleSet- SQL database
AWS-AWSManagedRulesSQLiRuleSet- PHP application
AWS-AWSManagedRulesPHPRuleSet- Linux operating system
AWS-AWSManagedRulesLinuxRuleSet- Core rule set
AWS-AWSManagedRulesCommonRuleSet- Anonymous IP list
AWSManagedRulesAnonymousIpList- Amazon IP reputation list
AWS-AWSManagedRulesAmazonIpReputationList
AWS-AWSManagedRulesCommonRuleSet
サイト閲覧
NoUserAgent_HEADER
画像アップロード
CrossSiteScripting_BODY
SizeRestrictions_BODY
問い合わせフォーム
GenericRFI_BODY
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/aws-managed-rule-groups-baseline.html
WAFルールにおいてはブロックモードからカウントモードに変更する事によって、検知するが、ブロックはしない挙動に変更できます。
[AWS] WAFマネージドルールのカスタマイズ - Qiita 2022
- AWSManagedRulesCommonRuleSet
AWSマネージドの一般的な攻撃を防ぐルール(*)- AWSManagedRulesAmazonIpReputationList
AWSマネージドのボットやその他の脅威に関連するソースをブロックするルール- AWSManagedRulesAnonymousIpList
AWSマネージドのアプリケーションから身元を隠そうとする可能性のあるアクセスをブロックするルール- AWSManagedRulesWordPressRuleSet
AWSマネージドのWP特有の攻撃を防ぐルール- AWSManagedRulesSQLiRuleSet
AWSマネージドのSQL関連の攻撃を防ぐルール- AWSManagedRulesPHPRuleSet
AWSマネージドのPHP特有の攻撃を防ぐルールシーズ的WordPressサイトのAWS WAFルールのベストプラクティスを考えてみた | SEEDS Creators' Blog | 株式会社シーズ 2022
追加されるルールセット
AWS-AWSManagedRulesKnownBadInputsRuleSet
AWS-AWSManagedRulesAmazonIpReputationList
AWS-AWSManagedRulesLinuxRuleSet
AWS-AWSManagedRulesPHPRuleSet
AWS-AWSManagedRulesWordPressRuleSetAMIMOTO マネージドホスティングにてWAFバージョン2をリリースしました | 超高速 WordPress AMI Amimoto 2020