AWS WAFの基本情報
AWS WAFとは
AWS WAF は、保護されたウェブアプリケーションリソースに転送される HTTP(S) リクエストをモニタリングできるウェブアプリケーションファイアウォールです。以下のリソースタイプを保護できます。
ウェブアプリケーションへ送信されるリクエストの監視を行ってくれるサービス。
ウェブアクセスコントロールリスト(ウェブACL) を用い、保護対象となるアプリケーションのリソースと関連づけることで、受信リクエストがAWS WAFへ転送され、不正なアクセスの発見および対策を講じることが期待できる。
保護対象は下記のとおり。
- Amazon CloudFront ディストリビューション
- Amazon API Gateway REST API
- Application Load Balancer(ALB)
- AWS AppSync GraphQL API
- Amazon Cognito ユーザープール
- AWS App Runner のサービス
- AWS Verified Access インスタンス
ウェブアクセスコントロールリストでリクエスト内のトラフィックパターンを対象とした定義付けを行い、一致するリクエストが検出された際に実行するリクエストをルールによって指定する。
用語
ウェブアクセスコントロールリスト(ウェブACL)
ウェブアクセスコントロールリスト (ACL) を使用して、一連の AWS リソースを保護します。ウェブ ACL を作成し、ルールを追加してその保護戦略を定義します。ルールは、ウェブリクエストを検査する基準を定義し、条件に一致するリクエストに対して取る行動を指定します。また、ルールによってまだブロックまたは許可されていないすべてのリクエストをブロックするか、許可するかを示すウェブ ACL に対してデフォルトのアクションをセットします。
ウェブACLによってAWSリソースの保護を行うことができる。
リクエスト基準となる項目は下記のとおり。
- リクエストのIPアドレスの送信元
- リクエストの送信元の国
- リクエストの一部に含まれる文字列一致または正規表現 (regex) 一致
- リクエストの特定の部分のサイズ
- 悪意のあるSQLコードまたはスクリプトの検出
ルール
各ルールには、検査基準を定義するステートメントと、ウェブリクエストがその基準を満たす場合に実行するアクションが含まれます。ウェブリクエストが条件を満たしている場合、それは一致となります。CAPTCHA パズルまたはサイレントクライアントブラウザのチャレンジを使用する一致リクエストをブロック、許可、カウント、ボットコントロールを実行するルールを設定できます。
ルールは AWS WAF リソースではありません。ルールはウェブ ACL またはルールグループのコンテキストでのみ定義されます。
ルールを用いることで定義に一致したなかったリクエストに対するアクションを指定することができる。
ルールはAWS WAFではなくウェブACLの機能の一部である。
アクションの内容は下記の通り。
- 処理と応答のために、リクエストを保護されたリソースに送信することを許可(Allow)する。
- リクエストをブロックする。
- リクエストをカウントする。
- リクエストに対して CAPTCHA またはチャレンジチェックを実行して、人間のユーザーと標準的なブラウザの使用を確認します。
上記によって接続許可するIPアドレスのホワイトリストを定義したり、一定時間内に送信されてきた悪意のあるSQLコードやスクリプトをカウントすることができる。
Discussion