AWS - Firewall Manager Enum

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

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

ファイアウォールマネージャ

AWSファイアウォールマネージャは、複数のアカウントとリソース全体でのAWS WAF、AWS Shield Advanced、Amazon VPCセキュリティグループおよびネットワークアクセス制御リスト(ACL)、AWSネットワークファイアウォール、AWS Route 53リゾルバDNSファイアウォールおよびサードパーティのファイアウォールの管理とメンテナンスを効率化します。これにより、ファイアウォールルール、Shield Advanced保護、VPCセキュリティグループ、およびネットワークファイアウォール設定を一度だけ構成でき、サービスがこれらのルールと保護をアカウントとリソース全体に自動的に強制し、新たに追加されたリソースも含まれます。

このサービスは、共通のタグを共有するリソースやすべてのCloudFrontディストリビューションなど、特定のリソースをグループ化して保護する機能を提供します。ファイアウォールマネージャの重要な利点の1つは、アカウントに新しく追加されたリソースに保護を自動的に拡張できる能力です。

ルールグループ(WAFルールのコレクション)は、AWSファイアウォールマネージャポリシーに組み込まれ、それがCloudFrontディストリビューションやアプリケーションロードバランサーなどの特定のAWSリソースにリンクされます。

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

  • ファイアウォールマネージャ管理リスト:これらのリストには、FMS-Default-Public-Access-Apps-AllowedFMS-Default-Protocols-AllowedFMS-Default-Protocols-Allowedが含まれます。これらはファイアウォールマネージャによって管理され、一般の人々に許可または拒否されるべき一般的に使用されるアプリケーションとプロトコルが含まれています。これらを編集または削除することはできませんが、そのバージョンを選択できます。

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

重要な点として、ファイアウォールマネージャポリシーでは、ルールグループに対して「ブロック」または「カウント」アクションのみが許可され、"許可"オプションはありません。

前提条件

組織のリソースを効果的に保護するために、ファイアウォールマネージャを構成する前に次の前提条件を満たす必要があります。これらの手順は、ファイアウォールマネージャがセキュリティポリシーを強制し、AWS環境全体でコンプライアンスを確保するために必要な基本的なセットアップを提供します:

  1. AWS Organizationsに参加して構成する: AWSアカウントがAWS Organizations組織の一部であることを確認し、AWSファイアウォールマネージャポリシーが実装される予定のAWS Organizations組織内の複数のAWSアカウントでのリソースとポリシーの中央管理を可能にします。

  2. AWSファイアウォールマネージャデフォルト管理者アカウントを作成する: ファイアウォールマネージャセキュリティポリシーを管理するためのデフォルト管理者アカウントを設定します。このアカウントは、組織全体でセキュリティポリシーを構成および強制する責任があります。組織の管理アカウントだけがファイアウォールマネージャのデフォルト管理者アカウントを作成できます。

  3. AWS Configを有効にする: AWS Configを有効にして、ファイアウォールマネージャにセキュリティポリシーを効果的に強制するために必要な構成データと洞察を提供します。 AWS Configは、リソースの構成と変更を分析、監査、監視し、より良いセキュリティ管理を容易にします。

  4. サードパーティポリシーの場合、AWS Marketplaceに登録してサードパーティの設定を構成する: サードパーティのファイアウォールポリシーを利用する場合は、AWS Marketplaceでそれらに登録し、必要な設定を構成します。この手順により、ファイアウォールマネージャが信頼されたサードパーティベンダーからのポリシーを統合して強制できるようになります。

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

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

詳細については、AWS WAFポリシーを使用したAWSファイアウォールマネージャの開始を参照してください。

保護ポリシーの種類

AWSファイアウォールマネージャは、組織のインフラストラクチャのさまざまな側面にセキュリティコントロールを強制するためのさまざまなタイプのポリシーを管理します:

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

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

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

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

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

  6. Amazon Route 53リゾルバDNSファイアウォールポリシー: このポリシーは、組織のVPCにDNSファイアウォール保護を適用し、悪意のあるドメイン解決試行をブロックし、DNSトラフィックのセキュリティポリシーを強制します。

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

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

  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つの異なるタイプの管理者アカウントがあります:

  • デフォルト管理者:

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

  • このアカウントには、サードパーティのファイアウォールを管理する機能があり、完全な管理スコープを持っています。

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

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

  • Firewall Manager管理者:

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

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

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

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

重要な点として、組織内で1つのアカウントのみがFirewall Managerのデフォルト管理者として機能し、"最初に入ったものが最後に出る"原則に従うことを強調します。新しいデフォルト管理者を指定するには、次の手順を実行する必要があります:

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

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

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

列挙

# 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>

ポストエクスプロイテーション / 検知回避

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 権限を持っている場合、それぞれファイアウォールマネージャーリソースセットからリソースを関連付けたり関連付けを解除したりできます。さらに、fms:PutResourceSet および fms:DeleteResourceSet 権限を持っている場合、攻撃者はこれらのリソースセットを作成、変更、または削除することができます。

# 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 アクセスポリシーの構成に関する情報:

urlhttps://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を介して中央管理されるサードパーティファイアウォールを関連付けたり関連付けを解除したりすることができます。

サードパーティファイアウォールの作成と管理はデフォルトの管理者のみが行えます。

```bash 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>

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

参考文献

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

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

最終更新