DevOps 資源的安全性建議
本文列出使用 [環境設定] 頁面連線 Azure DevOps、GitHub 或 GitLab 環境時,您可能會在 適用於雲端的 Microsoft Defender 中看到的建議。 您環境中顯示的建議是以您要保護的資源和自訂設定為基礎。
若要瞭解您可以採取以回應這些建議的動作,請參閱補救 適用於雲端的 Defender 中的建議。
深入瞭解 DevOps安全性 優點和功能。
DevOps 建議不會影響您的 安全分數。 若要先決定要解決的建議,請查看每個建議的嚴重性,以及其對安全分數的潛在影響。
Azure DevOps 建議
Azure DevOps 存放庫應已啟用適用於 Azure DevOps 的 GitHub 進階安全性 (GHAzDO)
描述:適用於雲端的 Defender 中的DevOps安全性會使用中央控制台,讓安全性小組能夠保護應用程式和資源,從程式代碼到跨 Azure DevOps 的雲端。 透過啟用適用於 Azure DevOps 的 GitHub 進階安全性 (GHAzDO) 存放庫,包括適用於 Azure DevOps 的 GitHub 進階安全性,您可以在 Azure DevOps 存放庫中取得秘密、相依性和程式代碼弱點的調查結果,這些弱點會顯示在 適用於雲端的 Microsoft Defender 中。
嚴重性:高
Azure DevOps 存放庫應該已解決秘密掃描結果
描述:在程式代碼存放庫中找到秘密。 立即補救以防止安全性缺口。 在存放庫中找到的秘密可能會洩漏,或由敵人探索,導致應用程式或服務遭到入侵。 Microsoft Security DevOps 認證掃描工具只會掃描其設定為執行所在的組建。 因此,結果可能不會反映存放庫中秘密的完整狀態。
嚴重性:高
Azure DevOps 存放庫應該已解決程式代碼掃描結果
描述:程序代碼存放庫中發現弱點。 若要改善存放庫的安全性狀態,強烈建議您補救這些弱點。
嚴重性:中
Azure DevOps 存放庫應該已解決相依性弱點掃描結果
描述:在程式代碼存放庫中找到的相依性弱點。 若要改善存放庫的安全性狀態,強烈建議您補救這些弱點。
嚴重性:中
Azure DevOps 存放庫應具有基礎結構,因為程式代碼掃描結果已解決
描述:在存放庫中發現基礎結構即程式代碼安全性設定問題。 範本檔案中偵測到問題。 若要改善相關雲端資源的安全性狀態,強烈建議您補救這些問題。
嚴重性:中
Azure DevOps 管線不應該有秘密可供組建分支使用
描述:在公用存放庫中,組織外部的人員可能會建立分叉,並在分支存放庫上執行組建。 在這種情況下,如果啟用此設定,外部人員就可以存取原本為內部的建置管線秘密。
嚴重性:高
Azure DevOps 服務連線不應授與所有管線的存取權
描述:服務連線可用來建立從 Azure Pipelines 到外部和遠端服務的連線,以在作業中執行工作。 管線許可權可控制哪些管線有權使用服務連線。 為了支援管線作業的安全性,不應將服務連線授與所有 YAML 管線的存取權。 這有助於維護最低許可權原則,因為攻擊者可以使用某個管線所使用的元件弱點來攻擊具有重要資源存取權的其他管線。
嚴重性:高
Azure DevOps 安全檔案不應授與所有管線的存取權
描述:安全檔案可讓開發人員儲存可跨管線共用的檔案。 這些檔案通常用來儲存秘密,例如簽署憑證和 SSH 金鑰。 如果安全檔案被授與所有 YAML 管線的存取權,未經授權的使用者可以藉由建置 YAML 管線並存取安全檔案,從安全檔案竊取資訊。
嚴重性:高
具有秘密變數的 Azure DevOps 變數群組不應授與所有管線的存取權
描述:變數群組會儲存您可能想要傳遞至 YAML 管線的值和秘密,或跨多個管線提供。 您可以在相同專案中的多個管線中共用和使用變數群組。 如果包含秘密的變數群組標示為可供所有 YAML 管線存取,則攻擊者可以藉由建立新的管線來利用涉及秘密變數的資產。
嚴重性:高
Azure DevOps 傳統 Azure 服務連線不應該用來存取訂用帳戶
描述:使用 Azure Resource Manager (ARM) 類型的服務連線,而不是使用 Azure 傳統服務連線來連線到 Azure 訂用帳戶。 ARM 模型提供多項安全性增強功能,包括更強大的訪問控制、改進的稽核、ARM 型部署/治理、對受控識別和密鑰保存庫的存取、秘密的存取、以 Entra 許可權為基礎的驗證,以及標籤和資源群組的支援,以簡化管理。
嚴重性:中
(預覽)Azure DevOps 存放庫應已解決 API 安全性測試結果
描述:在程式代碼存放庫中找到的 API 安全性弱點。 若要改善存放庫的安全性狀態,強烈建議您補救這些弱點。
嚴重性:中
(預覽)Azure DevOps 存放庫至少需要兩個檢閱者核准程式代碼推送
描述:若要防止直接認可非預期或惡意變更,請務必在 Azure DevOps 存放庫中實作預設分支的保護原則。 建議您在程式代碼與預設分支合併之前,至少需要兩個程式代碼檢閱者核准提取要求。 透過至少需要兩個檢閱者的核准,您可以降低未經授權的修改風險,這可能會導致系統不穩定或安全性弱點。
如果您已將 Azure DevOps 連線到 適用於雲端的 Defender,則此建議會以 適用於雲端的 Defender 基本安全性狀態提供。
嚴重性:高
(預覽)Azure DevOps 存放庫不應允許要求者核准自己的提取要求
描述:若要防止直接認可非預期或惡意變更,請務必在 Azure DevOps 存放庫中實作預設分支的保護原則。 我們建議禁止提取要求建立者核准自己的提交,以確保每個變更都經過作者以外的人員客觀審查。 如此一來,您可以降低未經授權的修改風險,這可能會導致系統不穩定或安全性弱點。
如果您已將 Azure DevOps 連線到 適用於雲端的 Defender,則此建議會以 適用於雲端的 Defender 基本安全性狀態提供。
嚴重性:高
(預覽)Azure DevOps 項目應該已停用建立傳統管線
描述:停用傳統組建和發行管線的建立,會防止來自 YAML 和傳統管線共用相同資源的安全性考慮,例如相同的服務連線。 潛在的攻擊者可以利用傳統管線來建立流程,以避開圍繞新式 YAML 管線設定的典型防禦機制。
嚴重性:高
GitHub 建議
GitHub 組織不應讓動作秘密供所有存放庫存取
描述:對於儲存在 GitHub 組織層級的 GitHub Action 工作流程中使用的秘密,您可以使用存取原則來控制哪些存放庫可以使用組織秘密。 組織層級的祕密可讓您在多個存放庫之間共用祕密。 這可減少建立重複秘密的需求。 不過,一旦讓存放庫存取秘密,任何具有存放庫寫入許可權的任何人都可以從工作流程中的任何分支存取秘密。 若要減少受攻擊面,請確定只能從選取的存放庫存取秘密。
如果您已將 Azure DevOps 連線到 適用於雲端的 Defender,則此建議會以 適用於雲端的 Defender 基礎安全性狀態提供。
嚴重性:高
GitHub 存放庫應該已啟用秘密掃描
描述:GitHub 會掃描存放庫是否有已知類型的秘密,以防止意外認可至存放庫的秘密遭到詐騙。 秘密掃描會在 GitHub 存放庫中所有分支上掃描整個 Git 歷程記錄,以取得任何秘密。 秘密的範例包括服務提供者可以簽發的令牌和私鑰來進行驗證。 如果秘密簽入存放庫,任何具有存放庫讀取許可權的人都可以使用秘密來存取具有這些許可權的外部服務。 秘密應該儲存在專案的存放庫外部的專用安全位置。
嚴重性:高
GitHub 存放庫應該已啟用程式代碼掃描
描述:GitHub 會使用程式代碼掃描來分析程序代碼,以尋找程式代碼中的安全性弱點和錯誤。 程式代碼掃描可用來尋找、分級和排定程式代碼中現有問題的修正程式。 程式代碼掃描也可以防止開發人員引入新的問題。 掃描可以排程特定天數和時間,或在存放庫中發生特定事件時觸發掃描,例如推送。 如果程式代碼掃描在程式代碼中發現潛在的弱點或錯誤,GitHub 會在存放庫中顯示警示。 弱點是專案程序代碼中可能會遭到惡意探索的問題,以損害專案的機密性、完整性或可用性。
嚴重性:中
GitHub 存放庫應該已啟用 Dependabot 掃描
描述:GitHub 會在偵測到影響存放庫的程式代碼相依性弱點時傳送 Dependabot 警示。 弱點是專案程序代碼中可能會遭到惡意探索的問題,以損害專案的機密性、完整性或可用性,或使用其程序代碼的其他專案。 弱點的類型、嚴重性和攻擊方法會有所不同。 當程式代碼相依於有安全性弱點的套件時,此易受攻擊的相依性可能會導致一系列問題。
嚴重性:中
GitHub 存放庫應該已解決秘密掃描結果
描述:在程式代碼存放庫中找到的秘密。 這應該立即補救,以避免發生安全性缺口。 在存放庫中發現的秘密可由敵人洩漏或探索,導致應用程式或服務遭到入侵。
嚴重性:高
GitHub 存放庫應該已解決程式代碼掃描結果
描述:在程式代碼存放庫中發現的弱點。 若要改善存放庫的安全性狀態,強烈建議您補救這些弱點。
嚴重性:中
GitHub 存放庫應該已解決相依性弱點掃描結果
描述:GitHub 存放庫應該已解決相依性弱點掃描結果。
嚴重性:中
GitHub 存放庫應具有基礎結構,因為程式代碼掃描結果已解決
描述:在存放庫中發現基礎結構即程式代碼安全性設定問題。 範本檔案中偵測到問題。 若要改善相關雲端資源的安全性狀態,強烈建議您補救這些問題。
嚴重性:中
GitHub 存放庫應啟用預設分支的保護原則
描述:存放庫的預設分支應該透過分支保護原則來保護,以防止非預期/惡意變更直接認可至存放庫。
嚴重性:高
GitHub 存放庫應強制推送至預設分支已停用
描述:由於預設分支通常用於部署和其他特殊許可權活動,因此應謹慎處理其任何變更。 啟用強制推送可能會對預設分支造成非預期或惡意的變更。
嚴重性:中
GitHub 組織應該已啟用秘密掃描推播保護
描述:推送保護會封鎖包含秘密的認可,因而防止意外暴露秘密。 為避免認證暴露的風險,應該為每個已啟用秘密掃描的存放庫自動啟用推播保護。
嚴重性:高
GitHub 存放庫不應該使用自我裝載的執行器
描述:GitHub 上的自我裝載執行器缺少暫時清除虛擬機中作業的保證,而且工作流程中不受信任的程式代碼可能會持續遭到入侵。 因此,自我裝載的執行器不應該用於動作工作流程。
嚴重性:高
GitHub 組織應該將動作工作流程許可權設定為唯讀
描述:根據預設,動作工作流程應授與只讀許可權,以防止惡意使用者利用過度許可權的工作流程來存取和竄改資源。
嚴重性:高
GitHub 組織應擁有多個具有系統管理員許可權的人員
描述:至少有兩個系統管理員可降低失去系統管理員存取權的風險。 在斷層帳戶案例中,這非常有用。
嚴重性:高
GitHub 組織應將基底許可權設定為沒有許可權或讀取
描述:基礎許可權應設定為無,或為組織讀取,以遵循最低許可權原則,並防止不必要的存取。
嚴重性:高
(預覽)GitHub 存放庫應該已解析 API 安全性測試結果
描述:在程式代碼存放庫中發現 API 安全性弱點。 若要改善存放庫的安全性狀態,強烈建議您補救這些弱點。
嚴重性:中
(預覽)GitHub 組織不應讓動作秘密可供所有存放庫存取
描述:對於儲存在 GitHub 組織層級的 GitHub Action 工作流程中使用的秘密,您可以使用存取原則來控制哪些存放庫可以使用組織秘密。 組織層級的秘密可讓您在多個存放庫之間共用秘密,減少建立重複秘密的需求。 不過,當存放庫可存取秘密時,存放庫上具有寫入許可權的任何人都可以從工作流程中的任何分支存取秘密。 若要減少受攻擊面,請確定只能從選取的存放庫存取秘密。
嚴重性:高
(預覽)GitHub 組織應封鎖符合公用程式代碼的 Copilot 建議
描述:啟用 GitHub Copilot 的篩選來封鎖符合 GitHub 上公用程式代碼的程式代碼建議,可增強安全性和法律合規性。 它可防止無意合併公開或開放原始碼程序代碼,降低法律問題的風險,並確保遵守授權條款。 此外,它有助於避免將公用程式代碼的潛在弱點引入組織的專案中,進而維持更高的程式碼品質和安全性。 啟用篩選時,GitHub Copilot 會檢查程式代碼建議,並針對 GitHub 上的公用程式代碼檢查其周圍程式代碼約 150 個字元。 如果有相符專案或接近相符專案,則不會顯示建議。
嚴重性:高
(預覽)GitHub 組織應針對外部共同作業者強制執行多重要素驗證
描述:針對 GitHub 組織中的外部共同作業者強制執行多重要素驗證是一項安全性措施,其安全性措施要求共同作業者除了使用密碼以外的額外識別形式來存取組織的存放庫和資源。 這可藉由防止未經授權的存取來增強安全性,即使密碼遭到入侵,也有助於確保符合業界標準。 其牽涉到通知共同作業者有關需求,並提供轉換的支持,最終可降低數據外泄的風險。
嚴重性:高
(預覽)GitHub 存放庫至少需要兩個檢閱者核准的程式代碼推送
描述:若要防止直接認可非預期或惡意變更,請務必在 GitHub 存放庫中實作預設分支的保護原則。 建議您在程式代碼與預設分支合併之前,至少需要兩個程式代碼檢閱者核准提取要求。 透過至少需要兩個檢閱者的核准,您可以降低未經授權的修改風險,這可能會導致系統不穩定或安全性弱點。
嚴重性:高
GitLab 建議
GitLab 專案應已解決秘密掃描結果
描述:在程式代碼存放庫中找到秘密。 這應該立即補救,以避免發生安全性缺口。 在存放庫中發現的秘密可由敵人洩漏或探索,導致應用程式或服務遭到入侵。
嚴重性:高
GitLab 項目應該已解決程式代碼掃描結果
描述:程序代碼存放庫中發現弱點。 若要改善存放庫的安全性狀態,強烈建議您補救這些弱點。
嚴重性:中
GitLab 項目應該已解決相依性弱點掃描結果
描述:GitHub 存放庫應該已解決相依性弱點掃描結果。
嚴重性:中
GitLab 專案應具有基礎結構,即程式代碼掃描結果已解決
描述:在存放庫中發現基礎結構即程式代碼安全性設定問題。 範本檔案中偵測到所顯示的問題。 若要改善相關雲端資源的安全性狀態,強烈建議您補救這些問題。
嚴重性:中
已被取代的DevOps安全性建議
程式代碼存放庫應該已解決程式代碼掃描結果
描述:適用於雲端的 Defender 中的DevOps安全性發現程式代碼存放庫中的弱點。 若要改善存放庫的安全性狀態,強烈建議您補救這些弱點。 (無相關政策)
嚴重性:中
程式代碼存放庫應該已解決秘密掃描結果
描述:適用於雲端的 Defender 中的DevOps安全性在程式代碼存放庫中找到了秘密。 這應該立即補救,以避免發生安全性缺口。 在存放庫中發現的秘密可由敵人洩漏或探索,導致應用程式或服務遭到入侵。 針對 Azure DevOps,Microsoft Security DevOps CredScan 工具只會掃描其設定為執行所在的組建。 因此,結果可能不會反映存放庫中秘密的完整狀態。 (無相關政策)
嚴重性:高
程式代碼存放庫應該已解決 Dependabot 掃描結果
描述:適用於雲端的 Defender 中的DevOps安全性發現程式代碼存放庫中的弱點。 若要改善存放庫的安全性狀態,強烈建議您補救這些弱點。 (無相關政策)
嚴重性:中
程式代碼存放庫應具有基礎結構,因為程式代碼掃描結果已解決
描述:適用於雲端的 Defender 中的DevOps安全性發現基礎結構是存放庫中的程式代碼安全性設定問題。 範本檔案中偵測到所顯示的問題。 若要改善相關雲端資源的安全性狀態,強烈建議您補救這些問題。 (無相關政策)
嚴重性:中
GitHub 存放庫應該已啟用程式代碼掃描
描述:GitHub 會使用程式代碼掃描來分析程序代碼,以尋找程式代碼中的安全性弱點和錯誤。 程式代碼掃描可用來尋找、分級和排定程式代碼中現有問題的修正程式。 程式代碼掃描也可以防止開發人員引入新的問題。 掃描可以排程特定天數和時間,或在存放庫中發生特定事件時觸發掃描,例如推送。 如果程式代碼掃描在程式代碼中發現潛在的弱點或錯誤,GitHub 會在存放庫中顯示警示。 弱點是專案程序代碼中可能會遭到惡意探索的問題,以損害專案的機密性、完整性或可用性。 (無相關政策)
嚴重性:中
GitHub 存放庫應該已啟用秘密掃描
描述:GitHub 會掃描存放庫是否有已知類型的秘密,以防止意外認可至存放庫的秘密遭到詐騙。 秘密掃描會在 GitHub 存放庫中所有分支上掃描整個 Git 歷程記錄,以取得任何秘密。 秘密的範例包括服務提供者可以簽發的令牌和私鑰來進行驗證。 如果秘密簽入存放庫,任何具有存放庫讀取許可權的人都可以使用秘密來存取具有這些許可權的外部服務。 秘密應該儲存在專案的存放庫外部的專用安全位置。 (無相關政策)
嚴重性:高
GitHub 存放庫應該已啟用 Dependabot 掃描
描述:GitHub 會在偵測到影響存放庫的程式代碼相依性弱點時傳送 Dependabot 警示。 弱點是專案程序代碼中可能會遭到惡意探索的問題,以損害專案的機密性、完整性或可用性,或使用其程序代碼的其他專案。 弱點的類型、嚴重性和攻擊方法會有所不同。 當程式代碼相依於有安全性弱點的套件時,此易受攻擊的相依性可能會導致一系列問題。 (無相關政策)
嚴重性:中