AWS - Firewall Manager Enum

Support HackTricks

Firewall Manager

AWS Firewall Managerは、AWS WAF、AWS Shield Advanced、Amazon VPCセキュリティグループおよびネットワークアクセス制御リスト(ACL)、AWS Network Firewall、AWS Route 53 Resolver DNS Firewall、およびサードパーティのファイアウォールの管理と保守を簡素化します。これにより、ファイアウォールルール、Shield Advanced保護、VPCセキュリティグループ、およびNetwork Firewall設定を一度だけ構成し、サービスがこれらのルールと保護を自動的にアカウントおよびリソース全体に適用します。

このサービスは、共通のタグを共有するリソースやすべてのCloudFrontディストリビューションなど、特定のリソースをグループ化して保護する機能を提供します。Firewall Managerの大きな利点は、新しく追加されたリソースに自動的に保護を拡張する能力です。

ルールグループ(WAFルールのコレクション)は、AWS Firewall Managerポリシーに組み込まれ、CloudFrontディストリビューションやアプリケーションロードバランサーなどの特定のAWSリソースにリンクされます。

AWS Firewall Managerは、セキュリティグループポリシーの構成と管理を簡素化するために管理されたアプリケーションおよびプロトコルリストを提供します。これらのリストを使用して、ポリシーによって許可または拒否されるプロトコルおよびアプリケーションを定義できます。管理されたリストには2種類あります:

  • Firewall Manager管理リスト:これらのリストには、FMS-Default-Public-Access-Apps-AllowedFMS-Default-Protocols-Allowed、およびFMS-Default-Protocols-Allowedが含まれます。これらはFirewall Managerによって管理され、一般公開に許可または拒否されるべき一般的に使用されるアプリケーションおよびプロトコルが含まれます。これらを編集または削除することはできませんが、バージョンを選択することはできます。

  • カスタム管理リスト:これらのリストは自分で管理します。組織のニーズに合わせたカスタムアプリケーションおよびプロトコルリストを作成できます。Firewall Manager管理リストとは異なり、これらのリストにはバージョンがありませんが、カスタムリストを完全に制御でき、必要に応じて作成、編集、および削除できます。

Firewall Managerポリシーは、ルールグループに対して「ブロック」または「カウント」アクションのみを許可し、「許可」オプションはありません

前提条件

Firewall Managerを構成して組織のリソースを効果的に保護する前に、次の前提条件ステップを完了する必要があります。これらのステップは、Firewall Managerがセキュリティポリシーを強制し、AWS環境全体でコンプライアンスを確保するために必要な基盤設定を提供します:

  1. AWS Organizationsに参加して構成する:AWSアカウントがAWS Firewall Managerポリシーを実装する予定のAWS Organizations組織の一部であることを確認します。これにより、組織内の複数のAWSアカウントにわたるリソースとポリシーの集中管理が可能になります。

  2. AWS Firewall Managerデフォルト管理者アカウントを作成する:Firewall Managerセキュリティポリシーを管理するためのデフォルト管理者アカウントを作成します。このアカウントは、組織全体でセキュリティポリシーを構成および強制する責任を負います。組織の管理アカウントのみがFirewall Managerデフォルト管理者アカウントを作成できます。

  3. AWS Configを有効にする:AWS Configを有効にして、Firewall Managerにセキュリティポリシーを効果的に強制するために必要な構成データとインサイトを提供します。AWS Configは、リソースの構成と変更を分析、監査、監視、および監査するのに役立ち、より良いセキュリティ管理を促進します。

  4. サードパーティポリシーの場合、AWS Marketplaceでサブスクライブしてサードパーティ設定を構成する:サードパーティのファイアウォールポリシーを利用する予定がある場合、AWS Marketplaceでサブスクライブし、必要な設定を構成します。このステップにより、Firewall Managerが信頼できるサードパーティベンダーからのポリシーを統合して強制できるようになります。

  5. Network FirewallおよびDNS Firewallポリシーの場合、リソース共有を有効にする:Network FirewallおよびDNS Firewallポリシー専用にリソース共有を有効にします。これにより、Firewall Managerが組織のVPCおよびDNS解決にファイアウォール保護を適用し、ネットワークセキュリティを強化します。

  6. デフォルトで無効になっているリージョンでAWS Firewall Managerを使用する場合:デフォルトで無効になっているAWSリージョンでFirewall Managerを使用する予定がある場合、そのリージョンでの機能を有効にするために必要な手順を実行してください。これにより、組織が運営するすべてのリージョンで一貫したセキュリティ強制が確保されます。

詳細については、Getting started with AWS Firewall Manager AWS WAF policiesを参照してください。

保護ポリシーの種類

AWS Firewall Managerは、組織のインフラストラクチャのさまざまな側面にわたってセキュリティコントロールを強制するために、いくつかの種類のポリシーを管理します:

  1. AWS WAFポリシー:このポリシータイプは、AWS WAFおよびAWS WAF Classicの両方をサポートします。ポリシーによって保護されるリソースを定義できます。AWS WAFポリシーの場合、Web ACLで最初と最後に実行するルールグループのセットを指定できます。さらに、アカウント所有者はこれらのセットの間に実行するルールおよびルールグループを追加できます。

  2. Shield Advancedポリシー:このポリシーは、指定されたリソースタイプに対して組織全体でShield Advanced保護を適用します。DDoS攻撃やその他の脅威から保護するのに役立ちます。

  3. Amazon VPCセキュリティグループポリシー:このポリシーを使用して、組織全体で使用されるセキュリティグループを管理し、AWS環境全体でネットワークアクセスを制御するための基本的なルールセットを強制します。

  4. Amazon VPCネットワークアクセス制御リスト(ACL)ポリシー:このポリシータイプは、組織で使用されるネットワークACLを制御し、AWS環境全体で基本的なネットワークACLを強制することができます。

  5. Network Firewallポリシー:このポリシーは、組織のVPCにAWS Network Firewall保護を適用し、事前定義されたルールに基づいてトラフィックをフィルタリングすることでネットワークセキュリティを強化します。

  6. Amazon Route 53 Resolver DNS Firewallポリシー:このポリシーは、組織のVPCにDNS Firewall保護を適用し、悪意のあるドメイン解決の試みをブロックし、DNSトラフィックのセキュリティポリシーを強制するのに役立ちます。

  7. サードパーティファイアウォールポリシー:このポリシータイプは、AWS Marketplaceコンソールを通じてサブスクリプションで利用可能なサードパーティのファイアウォールからの保護を適用します。これにより、信頼できるベンダーからの追加のセキュリティ対策をAWS環境に統合できます。

  8. Palo Alto Networks Cloud NGFWポリシー:このポリシーは、組織のVPCにPalo Alto Networks Cloud Next Generation Firewall(NGFW)保護およびルールスタックを適用し、高度な脅威防止およびアプリケーションレベルのセキュリティコントロールを提供します。

  9. Fortigate Cloud Native Firewall(CNF)as a Serviceポリシー:このポリシーは、Fortigate Cloud Native Firewall(CNF)as a Service保護を適用し、クラウドインフラストラクチャに特化した業界トップクラスの脅威防止、Webアプリケーションファイアウォール(WAF)、およびAPI保護を提供します。

管理者アカウント

AWS Firewall Managerは、管理スコープと2種類の管理者アカウントを通じて、組織内のファイアウォールリソースの管理に柔軟性を提供します。

管理スコープは、Firewall Manager管理者が管理できるリソースを定義します。AWS Organizations管理アカウントがFirewall Managerに組織をオンボードした後、異なる管理スコープを持つ追加の管理者を作成できます。これらのスコープには以下が含まれます:

  • 管理者がポリシーを適用できるアカウントまたは組織単位(OU)。

  • 管理者がアクションを実行できるリージョン。

  • 管理者が管理できるFirewall Managerポリシータイプ。

管理スコープはフルまたは制限付きのいずれかです。フルスコープは、管理者にすべての指定されたリソースタイプ、リージョン、およびポリシータイプへのアクセスを許可します。対照的に、制限付きスコープは、リソース、リージョン、またはポリシータイプのサブセットに対してのみ管理権限を提供します。管理者には、役割を効果的に果たすために必要な権限のみを付与することが推奨されます。これらの管理スコープ条件の任意の組み合わせを管理者に適用し、最小権限の原則を遵守します。

特定の役割と責任を果たす2種類の管理者アカウントがあります:

  • デフォルト管理者

    • デフォルト管理者アカウントは、Firewall Managerへのオンボーディングプロセス中にAWS Organizations組織の管理アカウントによって作成されます。

    • このアカウントは、サードパーティのファイアウォールを管理する能力を持ち、完全な管理スコープを持ちます。

    • これは、組織全体でセキュリティポリシーを構成および強制するための主要な管理者アカウントとして機能します。

    • デフォルト管理者は、すべてのリソースタイプおよび管理機能へのフルアクセスを持ちながら、組織内で複数の管理者が利用される場合、他の管理者と同じレベルで動作します。

  • Firewall Manager管理者

    • これらの管理者は、AWS Organizations管理アカウントによって定義された管理スコープに基づいてリソースを管理できます。

    • Firewall Manager管理者は、組織内で特定の役割を果たすために作成され、責任の委任を可能にしながら、セキュリティおよびコンプライアンス基準を維持します。

    • 作成時に、Firewall ManagerはAWS Organizationsに確認して、アカウントが既に委任された管理者であるかどうかを確認します。そうでない場合、Firewall ManagerはOrganizationsに呼び出して、アカウントをFirewall Managerの委任された管理者として指定します。

これらの管理者アカウントの管理には、Firewall Manager内での作成と、組織のセキュリティ要件および最小権限の原則に従った管理スコープの定義が含まれます。適切な管理役割を割り当てることで、組織は効果的なセキュリティ管理を確保し、機密リソースへのアクセスを細かく制御できます。

組織内でFirewall Managerデフォルト管理者として機能できるアカウントは1つだけであり、「最初に入って、最後に出る」の原則に従います。新しいデフォルト管理者を指定するには、一連の手順を実行する必要があります:

  • まず、各Firewall Administrator管理者アカウントは自分のアカウントを取り消す必要があります。

  • 次に、既存のデフォルト管理者は自分のアカウントを取り消し、組織をFirewall Managerからオフボードします。このプロセスにより、取り消されたアカウントによって作成されたすべてのFirewall Managerポリシーが削除されます。

  • 最後に、AWS Organizations管理アカウントがFirewall Managerデフォルト管理者を指定する必要があります。

Enumeration

# Users/Administrators

## Get the AWS Organizations account that is associated with AWS Firewall Manager as the AWS Firewall Manager default administrator
aws fms get-admin-account

## List of Firewall Manager administrators within the organization
aws fms list-admin-accounts-for-organization # ReadOnlyAccess policy is not enough for this

## Return a list of the member accounts in the FM administrator's AWS organization
aws fms list-member-accounts # Only a Firewall Manager administrator or the Organization's management account can make this request

## List the accounts that are managing the specified AWS Organizations member account
aws fms list-admins-managing-account # ReadOnlyAccess policy is not enough for this

# Resources

## Get the resources that a Firewall Manager administrator can manage
aws fms get-admin-scope --admin-account <value> # ReadOnlyAccess policy is not enough for this

## Returns the summary of the resource sets used
aws fms list-resource-sets # ReadOnlyAccess policy is not enough for this

## Get information about a specific resource set
aws fms get-resource-set --identifier <value>  # ReadOnlyAccess policy is not enough for this

## Retrieve the list of tags for a given resource
aws fms list-tags-for-resource --resource-arn <value>

## List of the resources in the AWS Organization's accounts that are available to be associated with a FM resource set. Only one account is supported per request.
aws fms list-compliance-status --member-account-ids <value> --resource-type <value> # ReadOnlyAccess policy is not enough for this

## List the resources that are currently associated to a resource set
aws fms list-resource-set-resources --identifier <value> # ReadOnlyAccess policy is not enough for this

# Policies

## Returns the list of policies
aws fms list-policies

## Get information about the specified AWS Firewall Manager policy
aws fms get-policy --policy-id <value>

## List all of the third-party firewall policies that are associated with the third-party firewall administrator's account
aws fms list-third-party-firewall-firewall-policies --third-party-firewall <PALO_ALTO_NETWORKS_CLOUD_NGFW|FORTIGATE_CLOUD_NATIVE_FIREWALL> # ReadOnlyAccess policy is not enough for this

# AppsList

## Return a list of apps list
aws fms list-apps-lists --max-results [1-100]

## Get information about the specified AWS Firewall Manager applications list
aws fms get-apps-list --list-id <value>

# Protocols

## Get the details of the Firewall Manager protocols list.
aws fms list-protocols-lists

## Get information about the specified AWS Firewall Manager Protocols list
aws fms get-protocols-list --list-id <value>

# Compliance

## Return a summary of which member accounts are protected by the specified policy
aws fms list-compliance-status --policy-id <policy-id>

## Get detailed compliance information about the specified member account (resources that are in and out of compliance with the specified policy)
aws fms get-compliance-detail --policy-id <value> --member-account <value>

# Other useful info

## Get information about the SNS topic that is used to record AWS Firewall Manager SNS logs (if any)
aws fms get-notification-channel

## Get policy-level attack summary information in the event of a potential DDoS attack
aws fms get-protection-status --policy-id <value> # Just for Shield Advanced policy

## Get the onboarding status of a Firewall Manager admin account to third-party firewall vendor tenant.
aws fms get-third-party-firewall-association-status --third-party-firewall <PALO_ALTO_NETWORKS_CLOUD_NGFW|FORTIGATE_CLOUD_NATIVE_FIREWALL> # ReadOnlyAccess policy is not enough for this

## Get violations' details for a resource based on the specified AWS Firewall Manager policy and AWS account.
aws fms get-violation-details --policy-id <value> --member-account <value> --resource-id <value> --resource-type <value>

Post Exploitation / Bypass Detection

organizations:DescribeOrganization & (fms:AssociateAdminAccount, fms:DisassociateAdminAccount, fms:PutAdminAccount)

攻撃者が fms:AssociateAdminAccount 権限を持っている場合、Firewall Manager のデフォルト管理者アカウントを設定することができます。fms:PutAdminAccount 権限を持っている場合、攻撃者は Firewall Manager 管理者アカウントを作成または更新することができ、fms:DisassociateAdminAccount 権限を持っている場合、潜在的な攻撃者は現在の Firewall Manager 管理者アカウントの関連付けを解除することができます。

  • Firewall Manager デフォルト管理者の関連付け解除は、先入れ後出しポリシーに従います。すべての Firewall Manager 管理者は、Firewall Manager デフォルト管理者がアカウントの関連付けを解除する前に関連付けを解除する必要があります。

  • PutAdminAccount によって Firewall Manager 管理者を作成するには、アカウントは以前に AssociateAdminAccount を使用して Firewall Manager にオンボードされた組織に属している必要があります。

  • Firewall Manager 管理者アカウントの作成は、組織の管理アカウントによってのみ行うことができます。

aws fms associate-admin-account --admin-account <value>
aws fms disassociate-admin-account
aws fms put-admin-account --admin-account <value>

潜在的な影響: 中央管理の喪失、ポリシー回避、コンプライアンス違反、および環境内のセキュリティコントロールの混乱。

fms:PutPolicy, fms:DeletePolicy

fms:PutPolicyfms:DeletePolicy の権限を持つ攻撃者は、AWS Firewall Manager ポリシーを作成、変更、または永久に削除することができます。

aws fms put-policy --policy <value> | --cli-input-json file://<policy.json> [--tag-list <value>]
aws fms delete-policy --policy-id <value> [--delete-all-policy-resources | --no-delete-all-policy-resources]

検出を回避するための許可ポリシーの例として、許可セキュリティグループを通じて次のようなものがあります:

{
"Policy": {
"PolicyName": "permisive_policy",
"SecurityServicePolicyData": {
"Type": "SECURITY_GROUPS_COMMON",
"ManagedServiceData": "{\"type\":\"SECURITY_GROUPS_COMMON\",\"securityGroups\":[{\"id\":\"<permisive_security_group_id>\"}], \"applyToAllEC2InstanceENIs\":\"true\",\"IncludeSharedVPC\":\"true\"}"
},
"ResourceTypeList": ["AWS::EC2::Instance", "AWS::EC2::NetworkInterface", "AWS::EC2::SecurityGroup", "AWS::ElasticLoadBalancingV2::LoadBalancer", "AWS::ElasticLoadBalancing::LoadBalancer"],
"ResourceType": "AWS::EC2::SecurityGroup",
"ExcludeResourceTags": false,
"ResourceTags": [],
"RemediationEnabled": true
},
"TagList": []
}

潜在的影響: セキュリティコントロールの解体、ポリシー回避、コンプライアンス違反、運用の中断、環境内の潜在的なデータ漏洩。

fms:BatchAssociateResource, fms:BatchDisassociateResource, fms:PutResourceSet, fms:DeleteResourceSet

fms:BatchAssociateResource および fms:BatchDisassociateResource 権限を持つ攻撃者は、それぞれFirewall Managerリソースセットからリソースを関連付けたり、関連解除したりすることができます。さらに、fms:PutResourceSet および fms:DeleteResourceSet 権限を持つ攻撃者は、AWS Firewall Managerからこれらのリソースセットを作成、変更、または削除することができます。

# Associate/Disassociate resources from a resource set
aws fms batch-associate-resource --resource-set-identifier <value> --items <value>
aws fms batch-disassociate-resource --resource-set-identifier <value> --items <value>

# Create, modify or delete a resource set
aws fms put-resource-set --resource-set <value> [--tag-list <value>]
aws fms delete-resource-set --identifier <value>

潜在的影響: リソースセットに不要な項目を追加することは、サービス内のノイズレベルを増加させ、DoSを引き起こす可能性があります。さらに、リソースセットの変更は、リソースの中断、ポリシーの回避、コンプライアンス違反、および環境内のセキュリティコントロールの中断につながる可能性があります。

fms:PutAppsList, fms:DeleteAppsList

fms:PutAppsList および fms:DeleteAppsList の権限を持つ攻撃者は、AWS Firewall Managerからアプリケーションリストを作成、変更、または削除することができます。これは重大な問題となり得ます。なぜなら、許可されていないアプリケーションが一般公開されるか、許可されたアプリケーションへのアクセスが拒否され、DoSを引き起こす可能性があるからです。

aws fms put-apps-list --apps-list <value> [--tag-list <value>]
aws fms delete-apps-list --list-id <value>

潜在的な影響: これは、設定ミス、ポリシー回避、コンプライアンス違反、および環境内のセキュリティコントロールの中断を引き起こす可能性があります。

fms:PutProtocolsList, fms:DeleteProtocolsList

fms:PutProtocolsList および fms:DeleteProtocolsList の権限を持つ攻撃者は、AWS Firewall Manager からプロトコルリストを作成、変更、または削除することができます。アプリケーションリストと同様に、これは重大な問題となる可能性があります。なぜなら、許可されていないプロトコルが一般に使用されるか、許可されたプロトコルの使用が拒否され、DoSを引き起こす可能性があるからです。

aws fms put-protocols-list --apps-list <value> [--tag-list <value>]
aws fms delete-protocols-list --list-id <value>

潜在的影響: これは、環境内の誤設定、ポリシー回避、コンプライアンス違反、およびセキュリティ制御の中断を引き起こす可能性があります。

fms:PutNotificationChannel, fms:DeleteNotificationChannel

fms:PutNotificationChannel および fms:DeleteNotificationChannel の権限を持つ攻撃者は、Firewall Manager が SNS ログを記録するために使用する IAM ロールおよび Amazon Simple Notification Service (SNS) トピックを削除および指定することができます。

コンソール外で fms:PutNotificationChannel を使用するには、指定された SnsRoleName が SNS ログを公開できるように SNS トピックのアクセスポリシーを設定する必要があります。提供された SnsRoleNameAWSServiceRoleForFMS 以外のロールである場合、Firewall Manager サービスプリンシパル fms.amazonaws.com がこのロールを引き受けることを許可する信頼関係が構成されている必要があります。

SNS アクセスポリシーの設定に関する情報については、以下を参照してください:

https://github.com/HackTricks-wiki/hacktricks-cloud/blob/jp/pentesting-cloud/aws-security/aws-services/aws-services/aws-sns-enum.md
aws fms put-notification-channel --sns-topic-arn <value> --sns-role-name <value>
aws fms delete-notification-channel

潜在的影響: これはセキュリティアラートの見逃し、インシデント対応の遅延、潜在的なデータ漏洩および環境内の運用中断につながる可能性があります。

fms:AssociateThirdPartyFirewall, fms:DisssociateThirdPartyFirewall

fms:AssociateThirdPartyFirewallfms:DisssociateThirdPartyFirewall の権限を持つ攻撃者は、AWS Firewall Manager を通じてサードパーティのファイアウォールを中央管理に関連付けたり、関連解除したりすることができます。

デフォルトの管理者のみがサードパーティのファイアウォールを作成および管理できます。

aws fms associate-third-party-firewall --third-party-firewall [PALO_ALTO_NETWORKS_CLOUD_NGFW | FORTIGATE_CLOUD_NATIVE_FIREWALL]
aws fms disassociate-third-party-firewall --third-party-firewall [PALO_ALTO_NETWORKS_CLOUD_NGFW | FORTIGATE_CLOUD_NATIVE_FIREWALL]

潜在的影響: ディスアソシエーションは、ポリシー回避、コンプライアンス違反、および環境内のセキュリティコントロールの混乱を引き起こします。一方、アソシエーションはコストと予算配分の混乱を引き起こします。

fms:TagResource, fms:UntagResource

攻撃者はFirewall Managerリソースのタグを追加、変更、または削除することができ、組織のコスト配分、リソース追跡、およびタグに基づくアクセス制御ポリシーを混乱させる可能性があります。

aws fms tag-resource --resource-arn <value> --tag-list <value>
aws fms untag-resource --resource-arn <value> --tag-keys <value>

潜在的影響: コスト配分、リソース追跡、およびタグベースのアクセス制御ポリシーの混乱。

参考文献

HackTricksをサポートする

Last updated