

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 修復 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 成本。如果資源是必要的，請遵循這些建議的修補步驟，以協助降低風險。修復主題會根據特徵類型分割。

單一公開調查結果包含多個修復主題中識別的問題。相反地，您可以透過僅解決一個修補主題來解決暴露問題並降低其嚴重性。您的風險修補方法取決於您的組織需求和工作負載。

**注意**  
 本主題提供的修補指引可能需要在其他 Microsoft Azure 資源中進行額外諮詢。

**Contents**
+ [Azure Function 應用程式的錯誤組態特徵](#misconfiguration)
  + [Azure Function 應用程式部署在 VNet 之外](#deployed-outside-vnet)
  + [與 Azure Function 應用程式相關聯的角色具有管理存取角色指派](#administrative-access-policy)
+ [Azure Function 應用程式的連線能力特性](#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="misconfiguration"></a>

以下是 Azure Function 應用程式和建議修復步驟的錯誤組態特性。

### Azure Function 應用程式部署在 VNet 之外
<a name="deployed-outside-vnet"></a>

 當函數應用程式未與虛擬網路整合時，其端點和傳出流量會周遊公有網路，而不是您的私有網路邊界。當函數應用程式未與虛擬網路整合時，您無法套用網路層級控制，例如私有端點、網路安全群組和受限的傳出存取。此間隙會增加應用程式的暴露量。遵循標準安全原則，我們建議您將 函數應用程式與虛擬網路整合，並使用託管計劃支援的私有端點。

**將 函數應用程式與虛擬網路整合**  
 啟用 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>

 您可以將受管身分指派給 Azure Function 應用程式，並授予 Azure 角色型存取控制 (Azure RBAC) 角色指派以存取其他 Azure 資源。當關聯的身分具有範圍廣泛的管理角色指派 （例如 `Owner`或 `Contributor`) 時，通常會授予遠超過應用程式所需許可的許可。如果函數應用程式遭到入侵，攻擊者可以使用這些過多的許可，在您的環境中橫向移動、存取資料或操作資源。遵循標準安全原則，我們建議您只指派應用程式所需的許可，以授予最低權限。

**檢閱並識別管理角色指派**  
 在 Azure 入口網站中，檢閱與函數應用程式相關聯之身分的角色指派。尋找特殊權限管理員角色，例如 `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 服務。如需詳細資訊，請參閱 Microsoft [Azure 文件中的 Azure RBAC 最佳實務](https://learn.microsoft.com/en-us/azure/role-based-access-control/best-practices)。

## Azure Function 應用程式的連線能力特性
<a name="reachability"></a>

以下是 Azure Function 應用程式的可達性特性和建議的修復步驟。

### Azure Function 應用程式允許匿名 HTTP 觸發叫用
<a name="publicly-invocable"></a>

 HTTP 觸發的函數，其授權層級設定為 ，`anonymous`可以透過網際網路叫用，而不需要任何存取金鑰或身分驗證。匿名 HTTP 觸發會向未經驗證的發起人公開您的函數邏輯，這可能會導致濫用、資料暴露，或透過不受控制的調用denial-of-wallet。遵循標準安全原則，建議您為 HTTP 觸發的函數要求身分驗證或存取金鑰，除非明確需要匿名存取。

**需要 HTTP 觸發程序的授權**  
 將 HTTP 觸發授權層級從 提升`anonymous`為 `function`或 ，`admin`以便請求必須包含有效的存取金鑰，並且需要 HTTPS。若要獲得更強大的保護，請啟用 App Service Authentication/Authorization，或使用 Azure API Management 在應用程式前面。如需詳細資訊，請參閱 Microsoft [Azure 文件中的保護 Azure 函數](https://learn.microsoft.com/en-us/azure/azure-functions/security-concepts)。

**需要受管身分提供者進行身分驗證**  
 由於存取金鑰是授權控制而非身分驗證，請使用 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>

 常見的漏洞與暴露 (CVEs) 可能會影響函數應用程式中的軟體套件和相依性。高優先順序漏洞是網路可攻擊的，具有高利用可能性，這表示立即的安全威脅，因為攻擊者可能已經公開提供並主動使用入侵程式碼。我們建議您立即修補這些漏洞，以保護 Function 應用程式。

**更新受影響的相依性**  
 檢閱調查結果中受影響的 CVEs，然後將易受攻擊的套件和相依性更新為其最新的安全版本，並重新部署應用程式。將 函數應用程式保留在支援的執行時間，以便平台安全更新繼續套用。如需詳細資訊，請參閱 [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>

 常見的漏洞與暴露 (CVEs) 可能會影響函數應用程式中的軟體套件和相依性。非關鍵漏洞代表嚴重性或可利用性低於高優先順序漏洞的安全漏洞。雖然攻擊者造成的立即風險較低，但仍然可以利用未修補的漏洞來危害資料的機密性、完整性或可用性，或存取其他系統。遵循安全最佳實務，我們建議您修補這些漏洞，以保護函數應用程式。

**更新受影響的相依性**  
 將易受攻擊的套件和相依性更新為最新的安全版本，並重新部署應用程式。如果沒有可用的更新，請考慮移除或停用易受攻擊的元件，直到修補程式發行為止。如需詳細資訊，請參閱 [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 應用程式免受潛在攻擊。

**調查並移除惡意套件**  
 檢閱調查結果詳細資訊以識別受影響的套件、從專案相依性中移除它們、從信任的來源重建，以及重新部署應用程式。修復之後，請稽核您的相依性供應鏈，以確認沒有剩餘的相關惡意元件。如需詳細資訊，請參閱 [Microsoft Azure 文件中的 Microsoft Defender for App Service](https://learn.microsoft.com/en-us/azure/defender-for-cloud/defender-for-app-service-introduction)。