

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Azure Function アプリケーションの露出の修正
<a name="exposure-azure-function"></a>

AWS Security Hub は、Azure Function アプリケーションの公開結果を生成できます。

Security Hub コンソールでは、露出検出結果に関連する Azure Function アプリとその識別情報が、検出結果の詳細の**リソース**セクションに一覧表示されます。プログラムにより、Security Hub CSPM API の [GetFindingsV2](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_GetFindingsV2.html)オペレーションを使用してリソースの詳細を取得できます。

露出の検出結果に関連するリソースを特定したら、不要なリソースを削除できます。不要なリソースを削除すると、露出プロファイルと AWS コストを削減できます。リソースが不可欠な場合は、以下の推奨される修復手順に従ってリスクを軽減します。修復トピックは、特性のタイプに基づいて分割されます。

1 つの露出の検出結果には、複数の修復トピックで特定された問題が含まれます。逆に、1 つの修復トピックだけに対処することで、露出の検出結果に対処し、その重要度レベルを下げることができます。リスク修復へのアプローチは、組織の要件とワークロードによって異なります。

**注記**  
 このトピックで提供される修復ガイダンスでは、他の Microsoft Azure リソースで追加の相談が必要になる場合があります。

**Contents**
+ [Azure Function アプリの設定ミス特性](#azure-functions-misconfiguration)
  + [Azure Function アプリが VNet の外部にデプロイされる](#deployed-outside-vnet)
  + [Azure Function アプリに関連付けられたロールには、管理アクセスロールの割り当てがあります](#administrative-access-policy)
+ [Azure Function アプリの到達可能性特性](#azure-functions-reachability)
  + [Azure Function アプリは匿名の HTTP トリガー呼び出しを許可します](#publicly-invocable)
+ [Azure Function アプリケーションの脆弱性特性](#vulnerability)
  + [Azure Function アプリには、悪用の可能性が高いネットワークで悪用可能なソフトウェアの脆弱性があります。](#high-priority-vulnerability)
  + [Azure Function アプリにソフトウェアの脆弱性がある](#low-priority-vulnerability)
  + [Azure Function アプリに悪意のあるソフトウェアパッケージがある](#malicious-package)

## Azure Function アプリの設定ミス特性
<a name="azure-functions-misconfiguration"></a>

Azure Function アプリの設定ミスの特徴と推奨される修復手順は次のとおりです。

### Azure Function アプリが VNet の外部にデプロイされる
<a name="deployed-outside-vnet"></a>

 Function アプリが仮想ネットワークと統合されていない場合、そのエンドポイントとアウトバウンドトラフィックは、プライベートネットワーク境界ではなくパブリックネットワークを通過します。Function アプリが仮想ネットワークと統合されていない場合、プライベートエンドポイント、ネットワークセキュリティグループ、制限されたアウトバウンドアクセスなどのネットワークレベルのコントロールを適用することはできません。このギャップにより、アプリの露出が増加します。標準のセキュリティ原則に従って、 Function アプリを仮想ネットワークと統合し、ホスティングプランがサポートするプライベートエンドポイントを使用します。

**修正**  
この露出に対処するには、次の 1 つ以上のアクションを実行します。

**Function アプリを仮想ネットワークと統合する**  
 Function アプリの仮想ネットワーク統合を有効にします。ホスティングプラン (Flex Consumption、Elastic Premium、Dedicated) でサポートされている場合は、プライベートエンドポイントを使用して、アプリにネットワーク内からのみアクセスできるようにします。詳細については、Microsoft [Azure ドキュメントの「Azure Functions ネットワークオプション](https://learn.microsoft.com/en-us/azure/azure-functions/functions-networking-options)」を参照してください。

**インバウンドアクセスの制限**  
 プライベートエンドポイントをサポートしないホスティングプランでは、アクセス制限を使用して、信頼できる IP アドレス範囲からのインバウンドトラフィックのみを許可し、不要な場合はパブリックネットワークアクセスを無効にします。詳細については、Microsoft Azure ドキュメントの[「アクセス制限の設定](https://learn.microsoft.com/en-us/azure/app-service/app-service-ip-restrictions)」を参照してください。

### Azure Function アプリに関連付けられたロールには、管理アクセスロールの割り当てがあります
<a name="administrative-access-policy"></a>

 マネージド ID を Azure Function アプリに割り当て、他の Azure リソースにアクセスするための Azure ロールベースのアクセスコントロール (Azure RBAC) ロール割り当てを付与できます。関連付けられた ID に広範な管理ロールの割り当て ( `Owner`や など`Contributor`) がある場合、通常、アプリが必要とする以上のアクセス許可を付与します。Function アプリケーションが侵害された場合、攻撃者はこれらの過剰なアクセス許可を使用して、環境を横切って移動したり、データにアクセスしたり、リソースを操作したりする可能性があります。標準のセキュリティ原則に従い、アプリに必要なアクセス許可のみを割り当てることで、最小権限を付与します。

**修正**  
この露出に対処するには、次の 1 つ以上のアクションを実行します。

**管理ロールの割り当てを確認して特定する**  
 Azure ポータルで、関数アプリに関連付けられた ID のロール割り当てを確認します。`Owner`、、 `Contributor`などの特権管理者ロールを探し`User Access Administrator`、 でワイルドカード (`*`) を使用するカスタムロールを探します`Actions`。詳細については、Microsoft [Azure ドキュメントの「Azure ロールの割り当てを一覧表示](https://learn.microsoft.com/en-us/azure/role-based-access-control/role-assignments-list-portal)する」を参照してください。

**最小特権アクセスの実装**  
 管理ロールの割り当てを、アプリに必要なアクセス許可のみを付与する最小特権の組み込みロールに置き換え、ニーズに合った最も狭い範囲に割り当てます。他の Azure サービスへの接続には、保存されたシークレットの代わりにマネージド ID を使用します。詳細については、Microsoft [Azure ドキュメントの「Azure RBAC のベストプラクティス](https://learn.microsoft.com/en-us/azure/role-based-access-control/best-practices)」を参照してください。

## Azure Function アプリの到達可能性特性
<a name="azure-functions-reachability"></a>

Azure Function アプリの到達可能性特性と推奨される修復手順は次のとおりです。

### Azure Function アプリは匿名の HTTP トリガー呼び出しを許可します
<a name="publicly-invocable"></a>

 認可レベルが に設定されている HTTP トリガー関数は、アクセスキーや認証なしでインターネット経由で呼び出す`anonymous`ことができます。匿名の HTTP トリガーは、関数ロジックを認証されていない発信者に公開し、制御されていない呼び出しによって不正使用、データ漏洩、denial-of-walletにつながる可能性があります。標準のセキュリティ原則に従い、匿名アクセスが明示的に必要でない限り、HTTP によってトリガーされる関数には認証キーまたはアクセスキーが必要です。

**修正**  
この露出に対処するには、次の 1 つ以上のアクションを実行します。

**HTTP トリガーの認可を要求する**  
 HTTP トリガー認可レベルを から `function`または `anonymous`に引き上げ`admin`て、リクエストに有効なアクセスキーが含まれ、HTTPS が要求されるようにします。保護を強化するには、アプリサービス認証/認可を有効にするか、Azure API Management を使用してアプリを前面に配置します。詳細については、Microsoft [Azure ドキュメントの「Azure 関数の保護](https://learn.microsoft.com/en-us/azure/azure-functions/security-concepts)」を参照してください。

**マネージド ID プロバイダーによる認証を要求する**  
 アクセスキーは認証ではなく認可コントロールであるため、呼び出し元が有効な ID を提示できるように、Microsoft Entra ID で App Service Authentication (Easy Auth) を有効にします。また、不要な管理エンドポイント (`/admin`ルート) も無効にします。詳細については、Microsoft [Azure ドキュメントの「Azure 関数の保護](https://learn.microsoft.com/en-us/azure/azure-functions/security-concepts)」を参照してください。

## Azure Function アプリケーションの脆弱性特性
<a name="vulnerability"></a>

Azure Function アプリケーションの脆弱性特性と推奨される修復手順は次のとおりです。

### Azure Function アプリには、悪用の可能性が高いネットワークで悪用可能なソフトウェアの脆弱性があります。
<a name="high-priority-vulnerability"></a>

 Common Vulnerabilities and Exposures (CVEsは、 Function アプリのソフトウェアパッケージと依存関係に影響を与える可能性があります。優先度の高い脆弱性は、悪用の可能性が高く、ネットワークを悪用する可能性があります。これは、悪用コードが既に公開され、攻撃者によってアクティブに使用されている可能性があるため、即時のセキュリティ脅威を表します。これらの脆弱性に迅速にパッチを適用して、 Function アプリを保護します。

**修正**  
この露出に対処するには、次の 1 つ以上のアクションを実行します。

**影響を受ける依存関係を更新する**  
 検出結果で影響を受ける CVEs を確認し、脆弱なパッケージと依存関係を最新の安全なバージョンに更新して、アプリを再デプロイします。プラットフォームのセキュリティ更新が引き続き適用されるように、サポートされているランタイムに Function アプリを維持します。詳細については、[Microsoft Azure ドキュメントの「Microsoft Defender for App Service](https://learn.microsoft.com/en-us/azure/defender-for-cloud/defender-for-app-service-introduction)」を参照してください。

**今後の考慮事項**  
 将来の発生を防ぐには、依存関係と脆弱性スキャンをビルドおよびデプロイパイプラインに統合し、Microsoft Defender for Cloud を使用して、設定と脆弱性の検出結果をアプリケーションにモニタリングします。詳細については、[Microsoft Azure ドキュメントの「Microsoft Defender for App Service](https://learn.microsoft.com/en-us/azure/defender-for-cloud/defender-for-app-service-introduction)」を参照してください。

### Azure Function アプリにソフトウェアの脆弱性がある
<a name="low-priority-vulnerability"></a>

 Common Vulnerabilities and Exposures (CVEsは、 Function アプリのソフトウェアパッケージと依存関係に影響を与える可能性があります。重要でない脆弱性は、優先度の高い脆弱性よりも重要度や脆弱性が低いセキュリティの弱点を表します。リスクはすぐには発生しませんが、攻撃者はパッチが適用されていない脆弱性を悪用してデータの機密性、完全性、可用性を侵害したり、他のシステムにアクセスしたりできます。セキュリティのベストプラクティスに従って、これらの脆弱性にパッチを適用して Function アプリケーションを保護します。

**修復: 影響を受ける依存関係を更新する**  
 脆弱なパッケージと依存関係を最新の安全なバージョンに更新し、アプリを再デプロイします。更新が利用できない場合は、パッチがリリースされるまで、脆弱なコンポーネントを削除または無効化することを検討してください。詳細については、[Microsoft Azure ドキュメントの「Microsoft Defender for App Service](https://learn.microsoft.com/en-us/azure/defender-for-cloud/defender-for-app-service-introduction)」を参照してください。

### Azure Function アプリに悪意のあるソフトウェアパッケージがある
<a name="malicious-package"></a>

 悪意のあるパッケージは、システムとデータの機密性、完全性、可用性を侵害するように設計された有害なコードを含むソフトウェアコンポーネントです。攻撃者は別の脆弱性を悪用することなく悪意のあるコードを自動的に実行できるため、悪意のあるパッケージは Function アプリにアクティブで重大な脅威をもたらします。セキュリティのベストプラクティスに従って、悪意のあるパッケージを削除して Function アプリを潜在的な攻撃から保護します。

**修復: 悪意のあるパッケージの調査と削除**  
 検出結果の詳細を確認して、影響を受けるパッケージを特定し、プロジェクトの依存関係から削除し、信頼できるソースから再構築して、アプリを再デプロイします。修復後、依存関係サプライチェーンを監査して、関連する悪意のあるコンポーネントが残っていないことを確認します。詳細については、[Microsoft Azure ドキュメントの「Microsoft Defender for App Service](https://learn.microsoft.com/en-us/azure/defender-for-cloud/defender-for-app-service-introduction)」を参照してください。