AWS Security Academy · レッスン

AWS WAFがリクエストを検査する仕組み

WAFがアプリケーション層でHTTPトラフィックをフィルタリングする方法を理解します。

レッスン 1/413 ステップ

「AWS WAFがリクエストを検査する仕組み」はCoddyKit上の無料AWS Security Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAWS Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AWS Security Academyコースには全4レッスンが含まれています。

レイヤー7の保護

AWS WAF(Web Application Firewall)は、セキュリティグループやNACLsがレイヤー3および4で動作するのとは異なり、アプリケーション層(レイヤー7)でHTTPおよびHTTPSリクエストを検査します。URL、ヘッダー、クエリ文字列、ボディを読み取り、通常のネットワークトラフィックに見えても悪意のあるペイロードを含む攻撃をブロックできます。

防御対象

WAFは、SQLインジェクション、クロスサイトスクリプティング(XSS)、悪意のあるボット、アプリケーション層のフラッドなど、一般的なWebの脅威を対象にします。これらの攻撃は正規のポート80や443を使用するため、下位レイヤーのファイアウォールでは見分けられません。WAFはリクエストの内容を調べて、正常なものと悪意のあるものを判別します。

検査対象の構成要素

WAFは、URIパス、クエリ文字列、HTTPヘッダー、Cookie、HTTPメソッド、ボディなど、リクエストのさまざまな部分を検査できます。各ルールでどの構成要素を検査するかを選択します。たとえば、クエリ文字列でSQLキーワードをスキャンしたり、ヘッダーで既知の攻撃シグネチャを確認したりするルールを作成できます。

一致条件

ルールでは、文字列一致、正規表現一致、サイズ制約、IPセット、地理的一致などの一致ステートメントを使用します。一致判定の前に、URLデコードや小文字化などのテキスト変換を適用することもできます。これにより、エンコードの細工でペイロードを難読化する攻撃者への対策になります。

許可、ブロック、カウント、CAPTCHA

ルールに一致すると、WAFはアクションを実行します。アクションには、許可、ブロック、カウント、CAPTCHA、チャレンジがあります。カウントモードでは、一致したリクエストをブロックせずにログに記録できるため、適用前にルールを安全にテストできます。CAPTCHAとチャレンジのアクションは、クライアントが実際のブラウザであることを確認し、ボットを抑止します。

インライン検査

WAFはアプリケーションに到達する前に、リクエストをインラインかつ同期的に評価するため、追加されるレイテンシーは最小限です。ブロックされたリクエストがバックエンドに到達することはないため、アプリケーションを保護すると同時に負荷も軽減できます。このためWAFは、スタックのエッジに配置される門番として機能します。

ボディサイズの制限

WAFは、デフォルトのサイズ制限までリクエストボディを検査します(多くの統合では8 KBで、新しい統合ではさらに大きい場合があります)。制限を超えた内容を通過させるかブロックするかは、設定によって決まります。攻撃者が検査制限を超えた位置にペイロードを隠そうとする可能性があるため、この設定は調整する価値があります。

リクエストのログ記録

WAFは、検査したリクエストの詳細なログをCloudWatch Logs、S3バケット、またはKinesis Data Firehoseに送信できます。ログには一致したルールと実行されたアクションが記録されるため、ルールの調整、攻撃の調査、監査時のコンプライアンス証明に不可欠です。

デフォルトアクション

すべてのWAFポリシーには、どのルールにも一致しないリクエストに適用されるデフォルトアクションがあります。許可またはブロックのいずれかです。一般的な公開Webアプリケーションでは、デフォルトを許可にして、特定の悪意のあるパターンをブロックします。厳格に制限されたAPIでは、デフォルトをブロックにして、正常であることが確認されたリクエストだけを許可する場合があります。

WAFとShieldの違い

WAFはアプリケーション層の内容をフィルタリングし、AWS Shieldはレイヤー3および4で大規模なDDoSフラッドから防御します。両者は補完関係にあります。Shieldがフラッドを吸収し、WAFが通過したリクエストを検査します。試験では、どのツールがどの種類の攻撃に対応するかがよく問われます。

WAFの配置場所

WAFは単独でインラインに配置されるのではなく、CloudFront、Application Load Balancer、API Gateway、AppSyncなど、サポートされているリソースに関連付けます。リソースがリクエストをWAFに転送して検査させます。適切な関連付け先の選択については、このコースの後半で扱います。

クイックチェック

WAFの検査について理解度を確認しましょう。

まとめ

AWS WAFはレイヤー7でHTTP/HTTPSリクエストを検査し、URI、ヘッダー、クエリ文字列、ボディを読み取ってSQLインジェクション、XSS、悪意のあるボットを阻止します。ルールではテキスト変換を伴う一致ステートメントを使用し、許可、ブロック、カウント、CAPTCHA、チャレンジのアクションを実行します。検査はインラインで行われ、ログをCloudWatch、S3、Firehoseに出力できます。WAFはShieldを補完し、CloudFront、ALB、API Gateway、AppSyncに関連付けます。

無料で開始

AI チューターと学ぶ AWS Security Academy — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「AWS WAFがリクエストを検査する仕組み」レッスンは無料ですか?

はい。「AWS WAFがリクエストを検査する仕組み」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AWS Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AWS Security Academyコースには全4レッスンが含まれています。

「AWS WAFがリクエストを検査する仕組み」で何を学びますか?

WAFがアプリケーション層でHTTPトラフィックをフィルタリングする方法を理解します。 ブラウザで直接実行するハンズオンコードでAWS Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AWS Security Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAWS Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「AWS WAFがリクエストを検査する仕組み」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAWS Security Academyレッスンでコードを書いて実行できますか?

はい。すべてのAWS Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. AWS WAFがリクエストを検査する仕組み
  2. ルール、ルールグループ、Web ACL
  3. マネージドルールとレート制限
  4. CloudFrontとALBへのWAFの関連付け
← AWS Security Academyに戻る