AWS - WAF Enum

AWS - WAF Enum

ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

AWS WAF

AWS WAFは、WebアプリケーションやAPIをさまざまなWeb脅威から保護するために設計されたWebアプリケーションファイアウォールです。これにより、ユーザーはSQLインジェクションやクロスサイトスクリプティングなどの典型的な攻撃ベクトルを緩和するセキュリティルールを設定したり、カスタムフィルタリングルールを定義したりして、着信トラフィックを制御できます。

モニタリング基準(条件)

条件は、AWS WAFが監視する着信HTTP/HTTPSリクエストの要素を指定します。これにはXSS、地理的位置(GEO)、IPアドレス、サイズ制約、SQLインジェクション、パターン(文字列と正規表現の一致)が含まれます。国に基づいてCloudFrontレベルで制限されたリクエストはWAFに到達しないことに注意することが重要です。

各AWSアカウントは次のように構成できます:

  • 各タイプごとに100の条件(ただし、正規表現の場合は10の条件のみ許可されますが、この制限は増やすことができます)。

  • 100のルール50のWeb ACL

  • 最大5つのレートベースのルール

  • WAFがアプリケーションロードバランサーと実装された場合の1秒あたりのリクエスト数は10,000件

ルールの構成

ルールは指定された条件を使用して作成されます。たとえば、ルールは、特定の2つの条件を満たす場合にリクエストをブロックするかもしれません。2つのタイプのルールがあります:

  1. 通常のルール:指定された条件に基づく標準ルール。

  2. レートベースのルール:特定のIPアドレスからのリクエストを5分間でカウントします。ここでは、ユーザーがしきい値を定義し、IPからのリクエスト数がこの制限を5分以内に超えると、そのIPからの後続のリクエストはしきい値を下回るまでブロックされます。レートベースのルールの最小しきい値は2000件のリクエストです。

アクション

アクションは各ルールに割り当てられ、許可ブロック、またはカウントのオプションがあります:

  • 許可:リクエストは適切なCloudFrontディストリビューションまたはアプリケーションロードバランサーに転送されます。

  • ブロック:リクエストは即座に終了します。

  • カウント:ルールの条件を満たすリクエストを集計します。これは、ルールを許可またはブロックに設定する前に、ルールの正確性を確認するために役立ちます。

Web ACL内のいずれのルールにも一致しないリクエストは、デフォルトアクション(許可またはブロック)を実行します。Web ACL内で定義されたルールの実行順序は重要であり、通常、次のシーケンスに従います:

  1. ホワイトリストされたIPを許可します。

  2. ブラックリストされたIPをブロックします。

  3. 有害な署名に一致するリクエストをブロックします。

CloudWatch統合

AWS WAFは、監視のためにCloudWatchと統合されており、AllowedRequests、BlockedRequests、CountedRequests、PassedRequestsなどのメトリクスを提供します。これらのメトリクスはデフォルトで1分ごとに報告され、2週間の期間保持されます。

列挙

スコープはCLOUDFRONTにも適用できますが、CLOUDFRONTに関連しないWAFをチェックする場合はREGIONALを使用する必要があります。

# Get web acls
aws wafv2 list-web-acls --scope REGIONAL
aws wafv2 get-web-acl --scope REGIONAL --name <name> --id <id>
aws wafv2 list-resources-for-web-acl --web-acl-arn <web-acl-arn> #Resources associated with the ACL
aws wafv2 get-web-acl-for-resource --resource-arn <arn> # Get web acl of the resource

# Rule groups
aws wafv2 list-rule-groups --scope REGIONAL
aws wafv2 get-rule-group --scope REGIONAL --name <name> --id <id>

# Get IP sets
aws wafv2 list-ip-sets --scope=REGIONAL
aws wafv2 get-ip-set --scope=REGIONAL --name <name> --id <id>

# Get regex patterns
aws wafv2 list-regex-pattern-sets --scope REGIONAL

# Get logging config (buckets storing the logs)
aws wafv2 list-logging-configurations --scope=REGIONAL

ポストエクスプロイテーション / バイパス

攻撃者の視点から、このサービスは攻撃者がWAF保護やネットワーク露出を特定し、他のWebを侵害するのに役立つ可能性があります。

ただし、攻撃者はこのサービスを妨害して、WebがWAFによって保護されないようにすることにも興味を持つかもしれません。

TODO: PRs are welcome

参考文献

  • https://www.citrusconsulting.com/aws-web-application-firewall-waf/#:~:text=Conditions%20allow%20you%20to%20specify,user%20via%20a%20web%20application.

htARTE(HackTricks AWS Red Team Expert) を使って、ゼロからヒーローまでAWSハッキングを学ぶ

HackTricks をサポートする他の方法:

最終更新