こんにちは、@Manabu です。
CloudFront、ALB、EC2などの構成でサイトを構築している場合、WAFでセキュリティ対策を行うのが一般的かと思います。
WAFは、Webアプリケーションをさまざまな攻撃から守るための強力なツールであり、特にマネージドルールを利用することで簡単にセキュリティレベルを向上させることができます。
しかし、時にはWAFの設定によって、意図しない403エラーが発生することもあります。
今回は、その中の一例を紹介したいと思います。
事前知識
今回説明するための、事前知識になります。
※既に知っている方は、飛ばして下さい。
WAFとは?
AWS WAF(Web Application Firewall)は、Webアプリケーションを悪意のある攻撃から守るためのセキュリティサービスです。
受信するWebトラフィックを監視し、不正なリクエストや危険なパターンを検出してブロックします。
例えば、SQLインジェクションやクロスサイトスクリプティング(XSS)などの攻撃を防ぐことができ、サイトのセキュリティを大幅に強化します。
マネージドルールとは?
マネージドルールは、AWSがあらかじめ設定したルールセットで、ユーザーが自分で細かい設定を行わなくても、簡単に一般的な攻撃からWebアプリケーションを守ることができます。
AWSのセキュリティ専門家がメンテナンスを行うため、常に最新の脅威に対応することが可能です。
これにより、セキュリティの専門知識がない初心者でも手軽にWebアプリケーションの防御を強化できます。
マネージドルールの種類
マネージドルールにはさまざまな種類があります。
- コアルールセット (CRS) マネージドルールグループ
:Webアプリケーションを一般的な攻撃(例: SQLインジェクションやXSS)から守る基本的なセキュリティ対策のルールセット。 - WordPress アプリケーションマネージドルールグループ
:WordPressサイト特有の脆弱性や攻撃から保護するための専用ルールセット。 - Amazon IP 評価リストマネージドルールグループ
:悪意のあるIPアドレスからのアクセスをブロックするためのルールセット。
隠しファイルをブロックするルール
AWS WAFのマネージドルールには、隠しファイルやシステムファイルのアクセスを制限するルールが含まれています。
そのルールは、「AWSManagedRulesCommonRuleSet」の中の「RestrictedExtensions_URIPATH」というルールです。
.log や .ini などの読み取りや実行が安全でないシステムファイル拡張子が含まれているリクエストを検査し、ブロックしてくれるという内容です。
なぜブロックするのか?
隠しファイルやシステムファイルには、アプリケーションやサーバーの設定情報、ログ情報など、悪意のある第三者に漏れると危険な情報が含まれている場合があります。
これらのファイルにアクセスを許可してしまうと、セキュリティの脆弱性を突かれるリスクが高まります。
例えば、.log ファイルにはエラーログやアクセスログが記録されており、攻撃者にとってはシステムの動作や構成を理解するための有力な情報源になります。
意図しないブロックが発生している場合
こちらに関しては、マネージドルールでも個別でブロックを許可することができるので、個別対応をするようにしましょう。
マネージドルールを編集すると、以下のような画面から個別の指定ができるようになります。
まとめ
AWS WAFのマネージドルールについて、意図しない場合のブロックが発生する話について、紹介しました。
今回は、隠しファイルでしたが別のパターンもあれば紹介したいと思います。
また、マネージドルールは便利ですが、細かいルールまで確認しないと意図せずアクセスをブロックしてしまうということは、頭に入れておくのが良さそうですね。
いくつかあるので、調べてみてください。