あなたは、Web要求に応じて、AWS WAF制御APIゲートウェイ、またはどのようにアマゾンCloudFrontのアプリケーションのロードバランサを使用することができます。最初の条件、ルールやWebアクセス制御リスト(ACLウェブ)を作成する必要があります。あなたはウェブACLにマージ合併ルールの条件、ルールや条件を定義する必要があります。
- 条件
-
あなたはAWS WAF監視要求のWebの基本的な機能の条件を定義します:
-
これは、悪意のあるスクリプトかもしれません。攻撃者は、Webアプリケーションの脆弱性を埋め込まれたスクリプトを使用することができます。これが呼び出され、クロスサイトスクリプティング。
-
派生アドレスのIPアドレスまたは範囲を要求します。
-
発祥の国/地域または地理を要求します。
-
(そのようなクエリ文字列として)要求の部分の長さを指定します。
-
これは、悪質なSQLのコードであってもよいです。攻撃者は、データベースからデータを抽出するために、Web要求に悪意のあるSQLコードを埋め込むことでしようとします。これは、呼び出された SQLインジェクション。
-
要求に現れる文字列は、例えば、
User-Agent
値がヘッダまたはクエリ文字列の文字列に表示されるテキストに現れます。また、これらの文字列を指定する正規表現(正規表現)を使用することができます。
使用される特定の条件の複数の値。たとえば、IP条件で万のIPアドレスまたはIPアドレス範囲を指定できます。
-
- ルール
-
あなたは、ブロックまたはカウント要求を許可するように特定するために、ルールの条件を組み合わせることができます。AWS WAFは、ルールの2種類が用意されています。
- 一般的なルール
-
従来のルール要求は、特定の条件をロックします。たとえば、あなたが見つける攻撃者からの最近の要求に応じて、次の条件を含むルールを作成することができます。
-
192.0.2.44からのリクエスト。
-
要求は、
User-Agent
ヘッダ値を含みますBadBot
。 -
クエリ文字列に同様の性能のSQLコードを含むように要求します。
ルールは、複数の条件を含む場合、この例のように、AWS WAFは、すべての条件にマッチ要求を見つける-すなわち、それによって、ある
AND
組み合わせ条件。 -
- ルールベースのレート
-
従来のルールベースのレートと同様のルールが、制限速度を増加させます。ルールベースのレート統計5分ごとのIPアドレスからのリクエスト。要求はレート制限を超えた場合は、ルールがアクションをトリガーします。
あなたはレート制限の条件を組み合わせることができます。すべての条件が要求に合致し、要求が15分の任意の周期でレート制限を超えた場合にこのように、ルールは、指定されたWeb ACLの操作をトリガーします。
たとえば、攻撃者のあなたは、あなたがルールベースのレートを作成できますから、最近の要求に基づいて、以下の条件が含まれています。
-
192.0.2.44からのリクエスト。
-
要求は、
User-Agent
ヘッダ値を含みますBadBot
。
レートベースのルールは、あなたはまた、レート制限を定義することができます。この例では、あなたが15,000をレート制限を作成するとします。要求は、上記の二つの条件ごとに5分、15,000以上の要求されたレート制限と一致している場合、ルールは、Web ACL(ブロックまたはカウント)で定義されたアクションをトリガします。
カウントレート制限されていない上記の二つの条件を満たしていない要求は、このルールはブロックされません。
別の例では、サイト上で特定のページを要求するための要求を制限するとします。これを行うには、ルールベースのレートの条件に一致するように次の文字列を追加することができます。
-
上でフィルタリングする要求の一部 是
URI
。 -
タイプ一致 市を
Starts with
。 -
値が一致する 是
login
。
また、
RateLimit
15,000を指定します。ウェブACLにこのレートベースのルールを追加することで、サイトの他の部分に影響を与えることなく、ログインページに制限を要求することができます。
-
重要
少なくとも、通常のルールに条件を追加する必要があります。従来のルールは、任意の要求(許可、カウント停止)、従って、条件のいずれにも一致しないルールの動作をトリガすることはありませんが含まれていません。
しかし、レートベースのルールのため、条件はオプションです。あなたはレートベースのルールのいずれかの条件を追加しない場合AWS WAFが想定され、すべてのこと の要求がルールに一致します、したがって、ときに、同じIPアドレスからの要求は、レート制限に含まれます。同じIPアドレスからの要求の数は、レート制限を超えた場合、規則(またはブロック数)の動作がトリガされます。
- ウェブACL
-
あなたはルールの合併条件の後には、Web ACLのためのルールをマージすることができます。ここで、各ルールが動作して定義することができ - 、許可防止またはカウントするように - と、デフォルトのアクション:
- 各ルールの操作
-
Webリクエストのすべてがルールの条件と一致した場合、AWS WAFは、リクエストをブロックする、またはAPIゲートウェイAPI、CloudFrontの分布やアプリケーションロードバランサを可能にするために要求を転送することができます。あなたは各実行の動作のためのAWS WAFのルールをしたいことを指定することができます。
要求にリストされた順序でAWS WAFルールは、Web ACLルールと比較されます。AWS WAFマッチングを実行するための要求に関連付けられた最初のルールの後続の動作を制御します。例えば、別のルールルールのWebリクエストは、要求を許可し、要求がAWS WAFは、最初にリストの規則に従って、要求を許可またはブロックする一致ブロック。
あなたがそれを使用して開始する前に、まず新しいルールをテストする場合は、ルールのすべての条件がカウントされ満たすためにAWS WAF要求を設定することができます。そして、許可または同じルールの要求を防止し、要求カウントルールは、WebでのACLルールのリスト内の位置に影響を与えました。Web要求が許可ルールマッチングを要求する場合、別のマッチングルールが要求をカウントしながらルールが最初に表示されている場合、例えば、その要求は、要求がカウントされない、許可されています。
- デフォルトのアクション
-
この決定AWS WAFの既定のアクションができるようにするか、ブロックのWeb ACLが要求のすべての条件のいずれかのルールに一致しないです。たとえば、あなたがウェブACLを作成すると、あなたが前に定義するルールのみを追加します:
-
192.0.2.44からのリクエスト。
-
要求は、
User-Agent
ヘッダ値を含みますBadBot
。 -
クエリ文字列に悪意のあるSQLコードを含むように提示する要求。
要求がルールのすべての3つの条件を満たしていない、とデフォルトのアクションがある場合は
ALLOW
、AWS WAFは、APIゲートウェイに要求を転送、またはCloudFrontのアプリケーションのロードバランサ、オブジェクトは、対応するサービス要求を使用しています。あなたがウェブACLへの2つの以上のルールを追加した場合、すべての条件があるが、要求のルールのいずれかを満たしていない場合にのみ、その後、AWS WAFは、デフォルトのアクションを実行します。例えば、ルールはあなたが別のものを追加1つの条件のみが含まれているとします。
-
User-Agent
値ヘッダー含まBIGBadBot
要求を。
すべての3つの条件が満たされた場合にのみ、要求はありませんどちらも最初のルールは、二番目のルールは、AWS WAFのみデフォルトのアクション、条件が満たされているではありません。
-
いくつかのケースでは、AWS WAFは、内部エラーが発生する場合があり、エラーがAPIゲートウェイ、CloudFrontの又は許可または要求に応答しないようにするかどうかについて、アプリケーション・ロード・バランサのために遅延されます。これらのケースでは、CloudFrontのは、通常、要求を許可またはコンテンツを提供します。APIゲートウェイおよびアプリケーションのロードバランサは、通常は要求を拒否し、それがコンテンツを提供していません。
次の図は、AWS WAFルールをチェックし、これらのルールに基づいて動作を実行する方法を示しています。