クイックウィンの「AWS WAF とマネージドルールの活用 」で確認したとおり、AWS WAF のマネージドルールを活用して、一般的なアプリケーションの保護ルールを素早く簡単に実装できます。しかし、各アプリケーション固有の保護もあります。例えば、単一 IP アドレスからの 5 分ごとの許可リクエスト数の制限(レート制限)や、検出された脆弱性に関連する特定の保護などです。
AWS WAF では、インターフェースまたは JSON を使用して構築できるカスタムルールを組み込むことができます。インターフェースで作成したルールは、JSON としてエクスポートしてバージョン管理システムに送ることができます。
アプリケーションで脆弱性が検出された場合、コードで修正する必要があります。それが不可能な場合や時間がかかる場合は、これらのエラーが修正されるまでの間、脆弱なアプリケーションを保護するためにカスタムルールを実装することをお勧めします。
例えば、コードのサニタイズ不足により SQL インジェクション攻撃が可能であることが検出された場合、アポストロフィ(’)が見つかったフォーム送信 (POST) を拒否することができます。
さらに、アプリケーションで予想されるリクエスト数に応じてレート制限を設定することをお勧めします。これにより、HTTP フラッドのようなレイヤー7 DDoS 攻撃、クレデンシャルスタッフィングのようなボット攻撃、偵察活動など、多くの潜在的な攻撃の可能性を減らすことができます。
モニタリングに基づいて量を設定するか、初期段階で「カウント」モードで固定制限を設定し、アプリケーションの通常の使用がそれらのしきい値を超えないことを評価することをお勧めします。通常の使用でルールがトリガーされないように調整した後、ブロックモードに切り替えます:
トラフィックが予想されない国からのリクエストに対して、特定のレート制限を設定することも可能です:
または、攻撃が観察されている国や、トラフィックが予想されない国に対して特定の制限を設けることができます。
AWS WAF は、アプリケーションの登録フォームを保護するためのオプション機能を提供しています。これは悪意のあるボットによる登録や、アプリケーションの無料利用枠や無料トライアルの悪用を防ぐためのものです。これは AWS WAF Account Creation Protection (ACP) と呼ばれています。
AWS WAF は、アプリケーションのログインフォームを保護するためのオプション機能を提供しています。これはクレデンシャルスタッフィングやパスワードスプレー攻撃を防ぐためのものです。これは AWS WAF Account Takeover Protection (ATP) と呼ばれています。
このフェーズでは、アプリケーションのセキュリティニーズを評価し、ユースケースが AWS WAF の機能に適合するか、またはサードパーティのソリューションが必要かを分析する必要があります。
クラウドアプリケーションを保護するために、Imperva 、F5 、Fortinet など、パートナーから多くのソリューションが提供されています。
サードパーティの WAF を実装することを決めた場合、Firewall as a Service (FWaaS - SaaS) を実装するか、または複数のアベイラビリティーゾーンに WAF の仮想アプライアンスを含むスケーリンググループとアプリケーションロードバランサーを持つイングレス用の Virtual Private Cloud (VPC) をデプロイし、トラフィックがアプリケーションに到達する前にこの VPC を通過するようにすることができます。