AWS WAFでWordPressサイトを保護する設定を紹介 – 誤検知の対処法も解説します-

目次

AWS WAFとは?

AWS WAF(Web Application Firewall)は、Webアプリケーションを不正アクセスや攻撃から保護するためのサービスです。AWS WAFを利用することで、SQLインジェクションやクロスサイトスクリプティング(XSS)などの一般的なWeb攻撃を防ぐことができます。AWS WAFは、Amazon CloudFrontやALBと統合でき、世界中どこからのアクセスであっても効果的に保護することができます。

AWS WAFにはマネージドルールと呼ばれる事前に構築されたセキュリティルールのセットがあります。これらのルールは、一般的な攻撃に対応するためにAWSから提供されています。

マネージドルールを利用することで、ユーザーは複雑な脅威対策を自身で一から設計する必要がなく、セキュリティの専門知識がないユーザーでも容易に高度な保護を実現できます。これらのルールは自動的更新されるため、新たに発見された脅威や攻撃手法に対しても、ユーザーがWAFを管理することなく、最新の脅威保護を行うことができます。

WAF全般についての詳細は次の記事で解説しています。

あわせて読みたい
基礎から理解するWAF入門: 第1回 WAF(Web Application Firewall)とは  WAF(Web Application Firewall)は、不正なトラヒックや攻撃からWebアプリケーションを守るために使用され、セキュリティにおいて重要な役割を果たします。 WAFのデプロ...

WordPressを保護する設定

前述した通り、AWS WAFにはマネージドルールがあり、細かな設定をしなくても一般的な攻撃に対応できます。

嬉しいことにWordPressについてはAWSから個別でマネージドルールが提供されています。

WordPressサイトを保護するために有効にした方が良いルールは4つあります。

AWSManagedRulesCommonRuleSet

OWASP Top 10 などのリスクが高い脆弱性を保護するルールです。全てのWAFのユースケースで有効にすることが推奨されています

AWSManagedRulesPHPRuleSet

PHPに関連する脆弱性から保護をするルールです。 WordPressはPHPで実装されているため、有効にします。

AWSManagedRulesSQLiRuleSet

SQLインジェクション攻撃などのデータベースの悪用に関連する攻撃から保護するルールです。 WordPressでは、記事内容の保存などでMySQLが利用されるため、有効にします。

AWSManagedRulesWordPressRuleSet

WordPress固有の脆弱性から保護します。 AWSManagedRulesPHPRuleSetとAWSManagedRulesSQLiRuleSetも同時に有効化することが推奨されています

上記の4つのルールよりは優先度が落ちますが、Torなどの匿名IPからのアクセスをブロックするAWSManagedRulesAnonymousIpListなども有効にしておくとより安心でしょう。 AWS WAFは、1ルール有効にするごとに+1ドル/月追加でコストがかかります。

料金については、詳しくはAWS公式ページをご覧ください。

誤検知が発生するルール

上述したルールを単純に有効化すると、管理者が記事の投稿や下書き保存をする時にAWS WAFがブロックするため、エラーが発生してしまいます。

主に次のルールで引っ掛かることになります。

SizeRestrictions_BODY (AWSManagedRulesCommonRuleSet)

リクエストのサイズが8KBを超えることで発生します。 WordPressでの記事投稿時には、記事の内容がPOSTで送られるため、8KBを超過してしまいブロックされます。

CrossSiteScripting_BODY (AWSManagedRulesCommonRuleSet)

こちらも記事投稿時にリクエストの中にHTMLのタグが入っていること発生します。

対処方法

対処方法はいくつかありますが、最も良い方法は自社のIPアドレスからのアクセスをWAFの対象から外すことです。

AWS WAFには、スコープダウンステートメントと呼ばれる機能があり、ルールの適用範囲を限定することができます。スコープダウンステートメントを使い、自社のIPアドレスではない時だけ、WAFのルールを適用させます。

この時、IPv6も使える環境の場合はIPv6も除外設定をする必要があります。 多くのクライアントでは、IPv6が優先されるため、IPv4だけ除外してもWAFにブロックされてしまいます。

まとめ

WprdPressをAWS WAFで保護する方法について解説しました。AWS WAFは、インフラ管理が不要でCloudFrontなどに手軽に導入できるセキュリティサービスです。

AWS WAFは手軽なサービスではあるものの、WAFを運用する際には、常に誤検知の可能性があることを理解しておくことが重要です。 本記事では、WordPressの管理者もブロックされてしまう誤検知の対処方法についても解説しました。

本記事のWAFの設定をCDKでTypescriptのコードに落とし込んだ例は次の記事で見ることができます。

あわせて読みたい
AWS CDK(Typescript)でWordPress用のWAFの設定を行う この記事では、IaCツールであるAWS CDKを使って、AWS WAFを設定する方法を解説します。 AWS WAFは比較的設定項目が多いため、CDKでコード化することで設定全体の見通し...

また、WAFについて基礎から学びたい方はWAF入門記事をご覧ください。

ブルームブロック合同会社
基礎から理解するWAF入門 記事一覧 | ブルームブロック合同会社 近年、WAF(Web Application Firewall)の需要は着実に増加しています。Webアプリケーション攻撃の頻度や複雑さは年々増しており、攻撃からウェブアプリケーションを保護す...
よかったらシェアしてね!

CD

目次