Google Cloud Platform (GCP) 資源的安全性建議

本文列出如果您使用 [環境設定] 頁面來連線 Google Cloud Platform (GCP) 帳戶,適用於雲端的 Microsoft Defender 中可能會看到的所有建議。 您環境中顯示的建議是以您要保護的資源和自訂設定為基礎。

若要瞭解您可以採取以回應這些建議的動作,請參閱補救 適用於雲端的 Defender 中的建議。

您的安全分數是根據您完成的安全性建議數目。 若要決定要先解決的建議,請查看每個建議的嚴重性,以及其對安全分數的潛在影響。

GCP 計算建議

計算引擎 VM 應該使用容器優化的 OS

描述:此建議會針對索引鍵/值組 'imageType': 'COS' 評估節點集區的 config 屬性。

嚴重性:低

GCP 虛擬機上應解決 EDR 設定問題

描述:若要保護虛擬機免於最新的威脅和弱點,請解決已安裝端點偵測和回應 (EDR) 解決方案的所有已識別組態問題。
注意:目前,這項建議僅適用於已啟用 適用於端點的 Microsoft Defender (MDE) 的資源。

嚴重性:高

EDR 解決方案應該安裝在 GCP 虛擬機器

描述:若要保護虛擬機,請安裝端點偵測和回應 (EDR) 解決方案。 EDR 有助於防止、偵測、調查及回應進階威脅。 使用適用於伺服器的 Microsoft Defender 來部署 適用於端點的 Microsoft Defender。 如果資源分類為「狀況不良」,則未安裝支援的 EDR 解決方案 [Place Holder 連結 - 深入瞭解]。 如果您已安裝無法透過此建議探索的 EDR 解決方案,您可以豁免它。

嚴重性:高

確定 VM 實例已啟用「封鎖全專案 SSH 金鑰」

描述:建議使用實例特定的 SSH 金鑰,而不是使用通用/共用的全專案 SSH 金鑰來存取實例。 全專案 SSH 金鑰會儲存在計算/Project-meta-data 中。 全專案 SSH 金鑰可用來登入專案內的所有實例。 使用全專案 SSH 金鑰可簡化 SSH 金鑰管理,但如果遭到入侵,就會造成可能會影響專案內所有實例的安全性風險。 如果 SSH 金鑰遭到入侵,建議使用實例特定的 SSH 金鑰,以限制受攻擊面。

嚴重性:中

確定已啟用受防護 VM 的情況下啟動計算實例

描述:若要防範進階威脅,並確保 VM 上的開機載入器和韌體已簽署且未取樣,建議您在已啟用受防護 VM 的情況下啟動計算實例。 受防護的 VM 是 Google Cloud Platform 上的虛擬機器(VM),由一組安全性控制強化,可協助防禦 rootkit 和 bootkit。 受防護的 VM 提供可驗證的計算引擎 VM 實例完整性,因此您可以確信您的實例尚未受到開機或核心層級惡意代碼或 rootkit 入侵。 受防護的 VM 可驗證完整性是透過使用安全開機、已啟用虛擬信任的平臺模組 (vTPM) 測量開機和完整性監視來達成。 受防護的 VM 實例會執行使用 Google 證書頒發機構單位簽署和驗證的韌體,確保實例的韌體未經修改,並建立安全開機的信任根目錄。 完整性監視可協助您了解並決定 VM 實例的狀態,而受防護的 VM vTPM 可藉由執行建立已知良好開機基準所需的測量,稱為完整性原則基準來啟用測量開機。 完整性原則基準可用來與後續 VM 開機的度量進行比較,以判斷是否有任何變更。 安全開機可協助確保系統只會藉由驗證所有開機組件的數位簽名來執行正宗的軟體,並在簽章驗證失敗時停止開機程式。

嚴重性:高

確定 VM 實例未啟用 [啟用連線到序列埠]

描述:與序列埠互動通常稱為序列控制台,這類似於使用終端機視窗,在該輸入和輸出完全處於文字模式,而且沒有圖形介面或滑鼠支援。 如果您在實例上啟用互動式序列控制台,用戶端就可以嘗試從任何IP位址連線到該實例。 因此,應該停用互動式序列控制台支援。 虛擬機實例有四個虛擬序列埠。 與序列埠互動的方式類似於使用終端機視窗,在該輸入和輸出完全處於文字模式,而且沒有圖形化介面或滑鼠支援。 實例的操作系統、BIOS 和其他系統層級實體通常會將輸出寫入至序列埠,而且可以接受命令或提示的解答等輸入。 通常,這些系統層級實體會使用第一個序列埠(埠 1)和序列埠 1,通常稱為序列控制台。 互動式序列主控台不支援IP型存取限制,例如IP允許清單。 如果您在實例上啟用互動式序列控制台,用戶端就可以嘗試從任何IP位址連線到該實例。 這可讓任何人連線到該實例,如果他們知道正確的 SSH 金鑰、使用者名稱、專案標識碼、區域和實例名稱。 因此,應該停用互動式序列控制台支援。

嚴重性:中

確定 Cloud SQL PostgreSQL 實例的 'log_duration' 資料庫旗標已設定為 'on'

描述:啟用log_hostname設定會導致記錄每個已完成語句的持續時間。 這不會記錄查詢的文字,因此與log_min_duration_statement旗標的行為不同。 在工作階段啟動之後,無法變更此參數。 監視執行查詢所花費的時間對於識別任何資源擷取查詢及評估伺服器效能而言非常重要。 您可以採取負載平衡和使用優化查詢等進一步步驟,以確保伺服器的效能和穩定性。 這項建議適用於PostgreSQL資料庫實例。

嚴重性:低

確定 Cloud SQL PostgreSQL 實例的 'log_executor_stats' 資料庫旗標已設定為 'off'

描述:P ostgreSQL 執行程式負責執行PostgreSQL規劃工具所移交的計劃。 執行程式會以遞歸方式處理計劃,以擷取所需的數據列集。 “log_executor_stats” 旗標可控制在每個查詢的 PostgreSQL 記錄中包含 PostgreSQL 執行程式效能統計數據。 「log_executor_stats」旗標可啟用粗略分析方法來記錄PostgreSQL執行程式效能統計數據,即使對疑難解答很有用,也可能大幅增加記錄數量,並增加效能負荷。 這項建議適用於PostgreSQL資料庫實例。

嚴重性:低

確定 Cloud SQL PostgreSQL 實例的 'log_min_error_statement' 資料庫旗標已設定為 'Error' 或更嚴格

描述:「log_min_error_statement」旗標會定義視為錯誤語句的最低訊息嚴重性層級。 錯誤語句的訊息會與 SQL 語句一起記錄。 有效值包括 “DEBUG5”、“DEBUG4”、“DEBUG3”、“DEBUG2”、“DEBUG1”、“INFO”、“NOTICE”、“WARNING”、“ERROR”、“LOG”、“FATAL” 和 “PANIC”。每個嚴重性層級都包含上述的後續層級。 確定已設定 ERROR 或 stricter 的值。 稽核有助於針對作業問題進行疑難解答,也允許鑑識分析。 如果 「log_min_error_statement」 未設定為正確的值,訊息可能不會適當地分類為錯誤訊息。 將一般記錄檔訊息視為錯誤訊息會難以找到實際錯誤,並只考慮更嚴格的嚴重性層級,因為錯誤訊息可能會略過實際錯誤來記錄其 SQL 語句。 “log_min_error_statement” 旗標應設定為 “ERROR” 或更嚴格。 這項建議適用於PostgreSQL資料庫實例。

嚴重性:低

確定 Cloud SQL PostgreSQL 實例的 'log_parser_stats' 資料庫旗標已設定為 'off'

描述:P ostgreSQL 規劃工具/優化器負責剖析和驗證伺服器所接收之每個查詢的語法。 如果語法正確,則會建置「剖析樹狀結構」,否則會產生錯誤。 “log_parser_stats” 旗標可控制在每個查詢的 PostgreSQL 記錄中包含剖析器效能統計數據。 「log_parser_stats」旗標會啟用記錄剖析器效能統計數據的粗略分析方法,即使對疑難解答很有用,它仍可能會大幅增加記錄數量,並增加效能負荷。 這項建議適用於PostgreSQL資料庫實例。

嚴重性:低

確定 Cloud SQL PostgreSQL 實例的 'log_planner_stats' 資料庫旗標已設定為 'off'

描述:可以多種方式執行相同的 SQL 查詢,但仍會產生不同的結果。 PostgreSQL 規劃工具/優化器負責為每個查詢建立最佳執行計劃。 「log_planner_stats」旗標可控制在每個查詢的PostgreSQL記錄中包含PostgreSQL規劃工具效能統計數據。 「log_planner_stats」旗標可啟用記錄 PostgreSQL 規劃工具效能統計數據的粗略分析方法,即使對疑難解答很有用,它仍可能會大幅增加記錄數量,並增加效能額外負荷。 這項建議適用於PostgreSQL資料庫實例。

嚴重性:低

確定 Cloud SQL PostgreSQL 實例的 'log_statement_stats' 資料庫旗標已設定為 'off'

描述:「log_statement_stats」旗標可控制在每個查詢的 PostgreSQL 記錄中包含 SQL 查詢的端對端效能統計數據。 這無法與其他模組統計數據一起啟用(log_parser_stats、log_planner_statslog_executor_stats)。 “log_statement_stats” 旗標可讓粗略分析方法記錄 SQL 查詢的端對端效能統計數據。 這很適合用於疑難解答,但可能會大幅增加記錄數量,而且會有效能額外負荷。 這項建議適用於PostgreSQL資料庫實例。

嚴重性:低

確定計算實例沒有公用IP位址

描述:計算實例不應設定為具有外部IP位址。 若要減少受攻擊面,計算實例不應該有公用IP位址。 相反地,實例應該設定在負載平衡器後方,以將實例暴露在因特網上的可能性降到最低。 GKE 所建立的實例應該排除,因為其中有些實例具有外部IP位址,而且無法藉由編輯實例設定來變更。 這些 VM 的名稱開頭 為 gke- 且標示為 goog-gke-node

嚴重性:高

確定實例未設定為使用預設服務帳戶

描述:建議您將實例設定為不使用預設計算引擎服務帳戶,因為它在專案上具有編輯器角色。 默認的計算引擎服務帳戶具有專案的編輯器角色,可讓您讀取和寫入大多數 Google 雲端服務。 若要防止 VM 遭到入侵,並防止攻擊者取得您所有專案的存取權,建議您不要使用預設的計算引擎服務帳戶。 相反地,您應該建立新的服務帳戶,並只指派實例所需的許可權。 預設的計算引擎服務帳戶名為 [PROJECT_NUMBER]- compute@developer.gserviceaccount.com。 應該排除 GKE 所建立的 VM。 這些 VM 的名稱開頭 為 gke- 且標示為 goog-gke-node

嚴重性:高

確定實例未設定為使用預設服務帳戶,且具有所有雲端 API 的完整存取權

描述:若要支援最低許可權的原則,並防止潛在的許可權提升,建議您不要將實例指派給預設服務帳戶「計算引擎默認服務帳戶」,並具有「允許所有雲端 API 的完整存取權」。Google Compute Engine 除了選擇性地建立、管理及使用使用者管理的自定義服務帳戶之外,還提供預設服務帳戶「計算引擎默認服務帳戶」,讓實例存取必要的雲端服務。 「專案編輯器」角色會指派給「計算引擎預設服務帳戶」,因此,除了計費之外,此服務帳戶幾乎具有所有雲端服務的所有功能。 不過,當指派給實例的「計算引擎默認服務帳戶」時,它可以在三個範圍內運作。

  1. 允許預設存取:只允許執行實例所需的最低存取權(最低許可權)。
  2. 允許所有雲端 API 的完整存取:允許所有雲端 API/服務的完整存取權(太多存取權)。
  3. 設定每個 API 的存取權:允許實例系統管理員只選擇執行實例預期執行特定商務功能所需的 API。當實例設定為「計算引擎預設服務帳戶」,範圍為「允許完整存取所有雲端 API」時,根據指派給使用者存取實例的 IAM 角色,它可能會允許使用者執行雲端作業/API 呼叫,而使用者不應該執行導致許可權提升。 應該排除 GKE 所建立的 VM。 這些 VM 的名稱開頭為 「gke-」,且標示為 「goog-gke-node」。。

嚴重性:中

確定實例上未啟用IP轉送

描述:除非封包的來源IP位址符合實例的IP位址,否則計算引擎實例無法轉送封包。 同樣地,GCP 不會傳遞目的地 IP 位址與接收封包之實例的 IP 位址不同的封包。 不過,如果您想要使用 實例來協助路由封包,則需要這兩項功能。 應該停用數據封包轉送,以防止數據遺失或資訊洩漏。 除非封包的來源IP位址符合實例的IP位址,否則計算引擎實例無法轉送封包。 同樣地,GCP 不會傳遞目的地 IP 位址與接收封包之實例的 IP 位址不同的封包。 不過,如果您想要使用 實例來協助路由封包,則需要這兩項功能。 若要啟用此來源和目的地 IP 檢查,請停用 canIpForward 欄位,讓實例能夠傳送和接收具有非相符目的地或來源 IP 的封包。

嚴重性:中

確定 Cloud SQL PostgreSQL 實例的 'log_checkpoints' 資料庫旗標已設定為 'on'

描述:確定 Cloud SQL PostgreSQL 實例的 log_checkpoints 資料庫旗標已設定為 開啟。 啟用log_checkpoints會導致檢查點和重新啟動點記錄在伺服器記錄檔中。 記錄訊息中包含一些統計數據,包括寫入的緩衝區數目,以及寫入它們所花費的時間。 此參數只能在 postgresql.conf 檔案或伺服器命令行上設定。 這項建議適用於PostgreSQL資料庫實例。

嚴重性:低

確定 Cloud SQL PostgreSQL 實例的 'log_lock_waits' 資料庫旗標已設定為 'on'

描述:啟用 PostgreSQL 實例的「log_lock_waits」旗標,會針對任何需要比分配的「deadlock_timeout」時間更長的時間取得鎖定的會話等候,建立記錄檔。 死結逾時會定義在檢查任何條件之前等待鎖定的時間。 死結逾時的頻繁執行可能表示基礎問題。 藉由啟用log_lock_waits旗標來記錄這類鎖定等候,可用來識別因鎖定延遲而效能不佳,或者,如果特製的 SQL 正嘗試透過保留鎖定過多的時間來耗盡資源。 這項建議適用於PostgreSQL資料庫實例。

嚴重性:低

確定 Cloud SQL PostgreSQL 實例的 'log_min_duration_statement' 資料庫旗標已設定為 '-1'

描述:「log_min_duration_statement」 旗標會以毫秒為單位定義語句的運行時間下限,其中記錄語句的總持續時間。 請確定已停用 「log_min_duration_statement」 也就是已設定 -1 的值。 記錄 SQL 語句可能包含不應記錄在記錄中的敏感性資訊。 這項建議適用於PostgreSQL資料庫實例。

嚴重性:低

請確定已適當地設定 Cloud SQL PostgreSQL 實例的 「log_min_messages」資料庫旗標

描述:「log_min_error_statement」旗標會定義視為錯誤語句的最低訊息嚴重性層級。 錯誤語句的訊息會與 SQL 語句一起記錄。 有效值包括 “DEBUG5”、“DEBUG4”、“DEBUG3”、“DEBUG2”、“DEBUG1”、“INFO”、“NOTICE”、“WARNING”、“ERROR”、“LOG”、“FATAL” 和 “PANIC”。每個嚴重性層級都包含上述的後續層級。 注意:若要有效地關閉記錄失敗語句,請將此參數設定為 PANIC。 錯誤會被視為最佳做法設定。 只有根據組織的記錄原則進行變更。 稽核有助於針對作業問題進行疑難解答,也允許鑑識分析。 如果 「log_min_error_statement」 未設定為正確的值,訊息可能不會適當地分類為錯誤訊息。 將一般記錄訊息視為錯誤訊息會使得難以找到實際錯誤,同時只考慮更嚴格的嚴重性層級,因為錯誤訊息可能會略過實際錯誤來記錄其 SQL 語句。 「log_min_error_statement」旗標應根據組織的記錄原則來設定。 這項建議適用於PostgreSQL資料庫實例。

嚴重性:低

確定 Cloud SQL PostgreSQL 實例的 'log_temp_files' 資料庫旗標已設定為 '0'

描述:P ostgreSQL 可以在這些作業超過「work_mem」時,建立動作的暫存盤,例如排序、哈希和暫存查詢結果。“log_temp_files” 旗標會控制刪除記錄名稱和檔案大小。 將 「log_temp_files」 設定為 0 會導致記錄所有暫存盤資訊,而正值只會記錄大小大於或等於指定 KB 數目的檔案。 值 “-1” 會停用暫存盤信息記錄。 如果未記錄所有暫存盤,可能較難找出潛在的效能問題,可能是因為應用程式程式代碼撰寫不佳或刻意的資源耗盡嘗試所造成。

嚴重性:低

確定重要 VM 的 VM 磁碟會使用客戶提供的加密金鑰加密

描述:客戶提供的加密密鑰 (CSEK) 是 Google Cloud 儲存體 和 Google Compute Engine 中的一項功能。 如果您提供自己的加密金鑰,Google 會使用金鑰來保護用來加密和解密數據之 Google 產生的金鑰。 根據預設,Google Compute Engine 會加密待用所有數據。 計算引擎會為您處理和管理此加密,而不需要您進行任何其他動作。 不過,如果您想要自行控制和管理此加密,您可以提供自己的加密密鑰。 根據預設,Google Compute Engine 會加密待用所有數據。 計算引擎會為您處理和管理此加密,而不需要您進行任何其他動作。 不過,如果您想要自行控制和管理此加密,您可以提供自己的加密密鑰。 如果您提供自己的加密金鑰,計算引擎會使用金鑰來保護用來加密和解密資料之 Google 產生的金鑰。 只有可以提供正確金鑰的使用者可以使用客戶提供的加密金鑰所保護的資源。 Google 不會將金鑰儲存在其伺服器上,除非您提供金鑰,否則無法存取受保護的數據。 這也表示,如果您忘記或遺失密鑰,Google 就無法復原密鑰,也無法復原使用遺失密鑰加密的任何數據。 至少業務關鍵 VM 應該使用 CSEK 加密的 VM 磁碟。

嚴重性:中

GCP 專案應已啟用 Azure Arc 自動布建

描述:如需適用於伺服器的 Microsoft Defender 安全性內容的完整可見度,GCP VM 實例應連線到 Azure Arc。為了確保所有合格的 VM 實例都會自動接收 Azure Arc,請在 GCP 專案層級啟用從 適用於雲端的 Defender 自動布建。 深入瞭解 Azure Arc適用於伺服器的 Microsoft Defender。

嚴重性:高

GCP VM 實例應該連線到 Azure Arc

描述:連線 GCP 虛擬機器 至 Azure Arc,以便完整檢視適用於伺服器的 Microsoft Defender 安全性內容。 深入瞭解 Azure Arc,以及 混合式雲端環境中適用於伺服器的 Microsoft Defender。

嚴重性:高

GCP VM 實例應該已安裝作業系統設定代理程式

描述:若要使用 Azure Arc 自動布建來接收完整的適用於伺服器的 Defender 功能,GCP VM 應該已啟用作業系統設定代理程式。

嚴重性:高

應啟用 GKE 叢集的自動修復功能

描述:此建議會針對索引鍵/值組 'key': 'autoRepair,' 'value': true,評估節點集區的管理屬性。

嚴重性:中

應啟用 GKE 叢集的自動升級功能

描述:此建議會針對索引鍵/值組 'key': 'autoUpgrade,' 'value': true,評估節點集區的管理屬性。

嚴重性:高

應啟用 GKE 叢集的監視

描述:此建議會評估叢集的 monitoringService 屬性是否包含雲端監視應該用來寫入計量的位置。

嚴重性:中

GCP 容器建議

[預覽]GCP 登錄中的容器映像應該已解決弱點結果

描述:適用於雲端的 Defender 掃描登錄映射是否有已知弱點 (CVE),並提供每個掃描影像的詳細結果。 掃描和補救登錄中容器映射的弱點有助於維護安全且可靠的軟體供應鏈、降低安全性事件的風險,並確保符合業界標準。

嚴重性:高

類型:弱點評估

[預覽]在 GCP 中執行的容器應已解決弱點結果

描述:適用於雲端的 Defender 會建立 Kubernetes 叢集中目前執行的所有容器工作負載清查,並比對所使用的映射和針對登錄映像建立的弱點報告,為這些工作負載提供弱點報告。 掃描和補救容器工作負載的弱點,對於確保健全且安全的軟體供應鏈、降低安全性事件的風險,並確保符合業界標準至關重要。

嚴重性:高

類型:弱點評估

應在 GCP 連接器上啟用適用於容器的 Defender 進階設定

描述:適用於容器的 Microsoft Defender 提供雲端原生 Kubernetes 安全性功能,包括環境強化、工作負載保護和運行時間保護。 若要確保您解決方案已正確布建,且完整的功能集可供使用,請啟用所有進階組態設定。

嚴重性:高

GKE 叢集應安裝 Microsoft Defender 的 Azure Arc 延伸模組

描述:Microsoft Defender 的 叢集延伸模組 提供 GKE 叢集的安全性功能。 延伸模組會從叢集及其節點收集數據,以識別安全性弱點和威脅。 此擴充功能適用於 已啟用 Azure Arc 的 Kubernetes。 深入瞭解容器化環境 適用於雲端的 Microsoft Defender 的安全性功能。

嚴重性:高

GKE 叢集應該已安裝 Azure 原則延伸模組

描述:Azure 原則 Kubernetes 的擴充功能擴充 Gatekeeper v3,這是開放原則代理程式 (OPA) 的許可控制器 Webhook,以集中且一致的方式在您的叢集上套用大規模強制執行和保護。 此擴充功能適用於 已啟用 Azure Arc 的 Kubernetes

嚴重性:高

適用於容器的 Microsoft Defender 應該在 GCP 連接器上啟用

描述:適用於容器的 Microsoft Defender 提供雲端原生 Kubernetes 安全性功能,包括環境強化、工作負載保護和運行時間保護。 在 GCP 連接器上啟用容器計劃,以強化 Kubernetes 叢集的安全性並補救安全性問題。 深入瞭解適用於容器的 Microsoft Defender。

嚴重性:高

應啟用 GKE 叢集的自動修復功能

描述:此建議會針對索引鍵/值組 'key': 'autoRepair,' 'value': true,評估節點集區的管理屬性。

嚴重性:中

應啟用 GKE 叢集的自動升級功能

描述:此建議會針對索引鍵/值組 'key': 'autoUpgrade,' 'value': true,評估節點集區的管理屬性。

嚴重性:高

應啟用 GKE 叢集的監視

描述:此建議會評估叢集的 monitoringService 屬性是否包含雲端監視應該用來寫入計量的位置。

嚴重性:中

應啟用 GKE 叢集的記錄

描述:此建議會評估叢集的loggingService屬性是否包含 Cloud Logging 應該用來寫入記錄的位置。

嚴重性:高

應該停用 GKE Web 儀錶板

描述:此建議會評估索引鍵/值組 'disabled': false 之 addonsConfig 屬性的 kubernetesDashboard 字段。

嚴重性:高

GKE 叢集上應停用舊版授權

描述:此建議會針對索引鍵/值組評估叢集的 legacyAbac 屬性,『enabled』: true。

嚴重性:高

應在 GKE 叢集上啟用控制平面授權網路

描述:此建議會評估叢集的 masterAuthorizedNetworksConfig 屬性,以取得索引鍵/值組的 'enabled': false。

嚴重性:高

GKE 叢集應該已啟用別名IP範圍

描述:此建議會評估叢集中ipAllocationPolicy的 useIPAliases 字段是否設定為 false。

嚴重性:低

GKE 叢集應該已啟用私人叢集

描述:此建議會評估 privateClusterConfig 屬性的 enablePrivateNodes 字段是否設定為 false。

嚴重性:高

應在 GKE 叢集上啟用網路原則

描述:此建議會評估索引鍵/值組 'disabled':true 之 addonsConfig 屬性的 networkPolicy 字段。

嚴重性:中

數據平面建議

啟用 Kubernetes Azure 原則 之後,GCP 支援所有 Kubernetes 數據平面安全性建議。

GCP 數據建議

請確定 Cloud SQL Server 實例的 '3625 (追蹤旗標)' 資料庫旗標已設定為 'off'

描述:建議將 Cloud SQL Server 實例的 “3625 (追蹤旗標)” 資料庫旗標設定為 “off”。追蹤旗標經常用來診斷效能問題或偵錯預存程式或複雜的計算機系統,但也可能建議 Microsoft 支援服務 來解決對特定工作負載造成負面影響的行為。 按照指示使用時,生產環境完全支援所有記錄的追蹤旗標,以及 Microsoft 支援服務所提供的建議。 「3625(追蹤記錄檔)」藉由使用 「******」遮罩某些錯誤訊息的參數,限制傳回給非系統管理員固定伺服器角色成員的使用者所傳回的資訊量。 這樣做有助於避免洩漏機密資訊。 因此,建議停用此旗標。 此建議適用於 SQL Server 資料庫實例。

嚴重性:中

確定雲端 SQL SQL Server 實例的 「外部腳本已啟用」資料庫旗標已設定為 'off'

描述:建議將 Cloud SQL Server 實例的「外部腳本已啟用」資料庫旗標設定為關閉。 「啟用外部文稿」可讓您執行具有特定遠端語言延伸模組的腳本。 依預設,此屬性為 OFF。 安裝 Advanced Analytics Services 時,安裝程式可以選擇性地將此屬性設定為 true。 因為「啟用外部腳本」功能可讓 SQL 外部的腳本,例如 R 連結庫中的檔案執行,這可能會對系統的安全性造成負面影響,因此應該停用此功能。 此建議適用於 SQL Server 資料庫實例。

嚴重性:高

確定 Cloud SQL SQL Server 實例的 [遠端存取] 資料庫旗標已設定為 [關閉]

描述:建議將 Cloud SQL Server 實例的「遠端訪問」資料庫旗標設定為「關閉」。[遠端存取] 選項會控制從 SQL Server 實體執行所在的本機或遠端伺服器執行預存程式。 這個選項的預設值為 1。 這會授與權限以從遠端伺服器執行本機預存程序,或從本機伺服器執行遠端預存程序。 若要防止從遠端伺服器執行本機預存程式,或從遠端預存程式在本機伺服器上執行,則必須停用此功能。 [遠端存取] 選項會控制遠端伺服器或本機伺服器上的遠端預存程式執行本機預存程式。 透過將查詢處理卸除至目標,可能會濫用「遠端訪問」功能,以對遠端伺服器啟動拒絕服務(DoS)攻擊,因此應該停用此功能。 此建議適用於 SQL Server 資料庫實例。

嚴重性:高

確定 Cloud SQL Mysql 實例的 'skip_show_database' 資料庫旗標已設定為 'on'

描述:建議將 Cloud SQL Mysql 實例的「skip_show_database」資料庫旗標設定為「開啟」。'skip_show_database' 資料庫旗標可防止人員沒有 SHOW DATABASES 許可權時使用 SHOW DATABASES 語句。 如果您擔心用戶能夠看到屬於其他用戶的資料庫,這可以改善安全性。 其效果取決於 SHOW DATABASES 許可權:如果變數值為 ON,則 SHOW DATABASES 語句只允許具有 SHOW DATABASES 許可權的使用者,而 語句會顯示所有資料庫名稱。 如果值為 OFF,則所有用戶都允許 SHOW DATABASES,但只會顯示使用者具有 SHOW DATABASES 或其他許可權的資料庫名稱。 此建議適用於 Mysql 資料庫實例。

嚴重性:低

確定已為所有 BigQuery 資料集指定預設客戶管理的加密金鑰 (CMEK)

描述:BigQuery 預設會使用 Google 受控密碼編譯密鑰來使用信封加密來加密待用的數據。 數據會使用數據加密金鑰進行加密,而數據加密金鑰本身會使用金鑰加密金鑰進一步加密。 這是無縫的,不需要使用者的任何其他輸入。 不過,如果您想要擁有更大的控制權,客戶管理的加密密鑰 (CMEK) 可用來作為 BigQuery 資料集的加密金鑰管理解決方案。 根據預設,BigQuery 會使用 Google 受控密碼編譯密鑰來採用信封加密來加密待用的數據。 這是無縫的,不需要使用者的任何其他輸入。 為了更充分地控制加密,客戶管理的加密密鑰 (CMEK) 可用來作為 BigQuery 數據集的加密金鑰管理解決方案。 為數據集設定預設客戶管理的加密金鑰 (CMEK)可確保如果未提供其他資料表,未來建立的任何資料表都會使用指定的 CMEK。 注意:Google 不會將其密鑰儲存在其伺服器上,除非您提供密鑰,否則無法存取受保護的數據。 這也表示,如果您忘記或遺失密鑰,Google 就無法復原密鑰,也無法復原使用遺失密鑰加密的任何數據。

嚴重性:中

確定所有 BigQuery 資料表都使用客戶管理的加密金鑰加密 (CMEK)

描述:BigQuery 預設會使用 Google 受控密碼編譯密鑰來使用信封加密來加密待用的數據。 數據會使用數據加密金鑰進行加密,而數據加密金鑰本身會使用金鑰加密金鑰進一步加密。 這是無縫的,不需要使用者的任何其他輸入。 不過,如果您想要擁有更大的控制權,客戶管理的加密密鑰 (CMEK) 可用來作為 BigQuery 資料集的加密金鑰管理解決方案。 如果使用 CMEK,CMEK 會用來加密資料加密金鑰,而不是使用 Google 管理的加密金鑰。 根據預設,BigQuery 會使用 Google 受控密碼編譯密鑰來採用信封加密來加密待用的數據。 這是無縫的,不需要使用者的任何其他輸入。 為了更充分掌控加密,客戶管理的加密密鑰 (CMEK) 可用來作為 BigQuery 數據表的加密金鑰管理解決方案。 CMEK 是用來加密資料加密金鑰,而不是使用 Google 管理的加密金鑰。 BigQuery 會自動儲存數據表和 CMEK 關聯,並自動完成加密/解密。 在 BigQuery 數據集上套用預設客戶管理的金鑰可確保未來建立的所有新數據表都會使用 CMEK 加密,但需要更新現有的數據表,才能個別使用 CMEK。 注意:Google 不會將其密鑰儲存在其伺服器上,除非您提供密鑰,否則無法存取受保護的數據。 這也表示,如果您忘記或遺失密鑰,Google 就無法復原密鑰,也無法復原使用遺失密鑰加密的任何數據。

嚴重性:中

確定無法匿名或公開存取 BigQuery 數據集

描述:建議 BigQuery 數據集上的 IAM 原則不允許匿名和/或公用存取。 授與allUsers或allAuthenticatedUsers的許可權可讓任何人存取數據集。 如果敏感數據儲存在數據集中,就可能不想要這類存取。 因此,請確定不允許匿名和/或公用存取數據集。

嚴重性:高

確定雲端 SQL 資料庫實例已設定為自動備份

描述:建議將所有 SQL 資料庫實例設定為啟用自動備份。 備份可讓您還原雲端 SQL 實例,以復原遺失的數據,或從該實例的問題中復原。 您必須針對任何包含應保護數據而免於遺失或損毀的實例設定自動備份。 此建議適用於 SQL Server、PostgreSql、MySql 第 1 代和 MySql 第 2 代實例。

嚴重性:高

確定雲端 SQL 資料庫實例未開放給世界

描述:資料庫伺服器應該只接受來自受信任網路/IP(s) 的連線,並限制來自世界的存取。 若要將資料庫伺服器實例上的受攻擊面降到最低,應核准只有受信任的/已知和必要的IP才能連線到該實例。 授權的網路不應該將IP/networks 設定為 “0.0.0.0.0.0/0”,這樣會允許從世界上任何地方存取實例。 請注意,授權的網路僅適用於具有公用IP的實例。

嚴重性:高

確定雲端 SQL 資料庫實例沒有公用 IP

描述:建議將第二代 Sql 實例設定為使用私人 IP,而不是公用 IP。 若要降低組織的受攻擊面,雲端 SQL 資料庫不應該有公用 IP。 私人IP為您的應用程式提供改善的網路安全性和較低的延遲。

嚴重性:高

確定 Cloud 儲存體 貯體無法匿名或可公開存取

描述:建議 Cloud 儲存體 貯體上的 IAM 原則不允許匿名或公用存取。 允許匿名或公用存取權授與任何人存取貯體內容的許可權。 如果您要儲存任何敏感數據,就可能不需要這類存取。 因此,請確定不允許匿名或公用存取貯體。

嚴重性:高

確定已啟用雲端 儲存體 貯體層級的統一存取

描述:建議在雲端 儲存體 貯體上啟用統一貯體層級存取。 建議您使用統一貯體層級存取來統一,並簡化您授與雲端 儲存體 資源的存取權的方式。 雲端 儲存體 提供兩個系統,可授與使用者存取貯體和對象的許可權:雲端身分識別和存取管理(雲端 IAM)和 存取控制 清單(ACL)。
這些系統會以平行方式運作 - 為了讓使用者存取雲端 儲存體 資源,只有其中一個系統需要授與用戶許可權。 雲端 IAM 會在整個 Google Cloud 中使用,並可讓您在貯體和專案層級授與各種許可權。 ACL 只能由 Cloud 儲存體 使用,而且具有有限的許可權選項,但可讓您根據每個物件授與許可權。

為了支援統一許可權系統,Cloud 儲存體 具有統一貯體層級存取權。 使用此功能會停用所有雲端 儲存體 資源的 ACL:雲端 儲存體 資源的存取權,然後會透過 Cloud IAM 獨佔授與。 啟用統一貯體層級存取可確保如果無法公開存取 儲存體 貯體,則貯體中沒有任何物件可供公開存取。

嚴重性:中

確定計算實例已啟用機密運算

描述:Google Cloud 會加密待用和傳輸中的數據,但客戶數據必須解密才能進行處理。 機密運算是一項突破性的技術,會在處理數據時加密使用中的數據。 機密運算環境會將數據加密在記憶體中,以及中央處理單位 (CPU) 以外的其他地方。 機密 VM 會利用 AMD EPYC CPU 的安全加密虛擬化 (SEV) 功能。 客戶數據會在使用、編製索引、查詢或定型時保持加密。 加密金鑰會在硬體、每個 VM 中產生,且不可匯出。 由於效能和安全性的內建硬體優化,機密運算工作負載不會大幅降低效能。 機密運算可讓客戶在處理期間加密的機密程式代碼和其他數據。 Google 無法存取加密金鑰。 機密 VM 可協助緩解與 Google 基礎結構相依性或 Google 測試人員存取客戶數據相關風險的擔憂。

嚴重性:高

確定記錄貯體上的保留原則是使用貯體鎖定來設定

描述:在記錄貯體上啟用保留原則,可保護儲存在雲端記憶體貯體中的記錄遭到覆寫或意外刪除。 建議您設定保留原則,並在作為記錄接收的所有記憶體貯體上設定貯體鎖定。 您可以建立一或多個包含記錄篩選和目的地的接收來匯出記錄。 當 Stackdriver 記錄收到新的記錄專案時,會與每個接收進行比較。 如果記錄專案符合接收的篩選條件,則會將記錄項目的複本寫入目的地。 接收可以設定為導出記憶體貯體中的記錄。 建議設定這些雲端記憶體貯體的數據保留原則,並鎖定數據保留原則;因此,永久防止減少或移除原則。 如此一來,如果攻擊者或想要涵蓋其追蹤的惡意內部人員入侵系統,則活動記錄絕對會保留供鑑識和安全性調查使用。

嚴重性:低

確定雲端 SQL 資料庫實例需要所有連入連線才能使用 SSL

描述:建議強制執行 SQL 資料庫實例的所有連入連線,以使用 SSL。 成功截獲的 SQL 資料庫連接(MITM):可以顯示敏感數據,例如認證、資料庫查詢、查詢輸出等。為了安全起因,建議您在連線到實例時一律使用 SSL 加密。 這項建議適用於 Postgresql、MySql 第 1 代和 MySql 第 2 代實例。

嚴重性:高

確定 SQL Server 實例上 Cloud SQL 的「自主資料庫驗證」資料庫旗標已設定為 'off'

描述:建議在 SQL Server 實例上設定 Cloud SQL 的「自主資料庫驗證」資料庫旗標設定為「關閉」。自主資料庫包含定義資料庫所需的所有資料庫設定和元數據,而且與安裝資料庫之 資料庫引擎 實例沒有任何組態相依性。 使用者可以連接至資料庫,而不需要在資料庫引擎層級驗證登入。 將資料庫與資料庫引擎隔離,可讓您輕鬆地將資料庫移至另一個 SQL Server 執行個體。 自主資料庫具有一些 SQL Server 資料庫引擎系統管理員應該了解並降低的獨特威脅。 大部分的威脅都與 USER WITH PASSWORD 驗證程式有關,其會將驗證界限從 資料庫引擎 層級移至資料庫層級,因此建議停用此旗標。 此建議適用於 SQL Server 資料庫實例。

嚴重性:中

確定 Cloud SQL SQL Server 實例的 「跨資料庫擁有權鏈結」資料庫旗標已設定為 'off'

描述:建議將 Cloud SQL Server 實例的「跨資料庫擁有權鏈結」資料庫旗標設定為「關閉」。使用 「跨資料庫擁有權」來進行鏈結選項,為 Microsoft SQL Server 實例設定跨資料庫擁有權鏈結。 此伺服器選項可讓您控制資料庫層級的跨資料庫擁有權鏈結,或允許所有資料庫的跨資料庫擁有權鏈結。 除非 SQL Server 實例裝載的所有資料庫都必須參與跨資料庫擁有權鏈結,否則不建議啟用「跨資料庫擁有權」,而且您知道此設定的安全性影響。 此建議適用於 SQL Server 資料庫實例。

嚴重性:中

確定 Cloud SQL Mysql 實例的 'local_infile' 資料庫旗標已設定為 'off'

描述:建議將 Cloud SQL MySQL 實例的 local_infile 資料庫旗標設定為關閉。 local_infile旗標可控制LOAD DATA語句的伺服器端LOCAL功能。 視local_infile設定而定,伺服器會拒絕或允許用戶端上已啟用LOCAL的用戶端載入本機數據。 若要明確地讓伺服器拒絕 LOAD DATA LOCAL 語句(不論用戶端程式和連結庫在建置時間或運行時間設定的方式為何),請啟動 mysqld 並停用local_infile。 您也可以在運行時間設定local_infile。 由於與local_infile旗標相關聯的安全性問題,建議停用它。 此建議適用於 MySQL 資料庫實例。

嚴重性:中

確定雲端 儲存體 IAM 許可權變更的記錄計量篩選和警示存在

描述:建議針對 Cloud 儲存體 Bucket IAM 變更建立計量篩選和警示。 監視雲端記憶體貯體許可權的變更,可能會縮短偵測和更正貯體內敏感性雲端記憶體貯體和物件許可權所需的時間。

嚴重性:低

確定 SQL 實例組態變更的記錄計量篩選和警示存在

描述:建議針對 SQL 實例組態變更建立計量篩選和警示。 監視 SQL 實例組態變更的變更可能會縮短在 SQL Server 上偵測和更正錯誤設定所需的時間。 以下是一些可能會影響 SQL 實例安全性狀態的可設定選項:

  • 啟用自動備份和高可用性:設定錯誤可能會對商務持續性、災害復原和高可用性造成負面影響
  • 授權網路:設定錯誤可能會增加未受信任網路的風險

嚴重性:低

確定每個服務帳戶只有 GCP 管理的服務帳戶金鑰

描述:使用者管理的服務帳戶不應該有使用者管理的密鑰。 任何有權存取金鑰的人員都可以透過服務帳戶存取資源。 雲端平台服務會使用 GCP 管理的金鑰,例如應用程式引擎和計算引擎。 無法下載這些金鑰。 谷歌將保留金鑰,並自動輪替它們大約每周。 使用者管理的金鑰是由使用者建立、可下載及管理。 他們從創造期滿10年。 針對使用者管理的金鑰,用戶必須取得金鑰管理活動的擁有權,其中包括:

  • 金鑰儲存體
  • 金鑰散發
  • 金鑰撤銷
  • 金鑰輪替
  • 保護金鑰免於未經授權的使用者
  • 金鑰修復

即使有金鑰擁有者預防措施,常見的開發惡意代碼也可以輕易洩露密鑰,例如將密鑰簽入原始程式碼或將它們留在下載目錄中,或不小心將密鑰留在支援部落格/頻道。 建議防止使用者管理的服務帳戶密鑰。

嚴重性:低

確定已適當地設定 Cloud SQL SQL Server 實例的「用戶連線」資料庫旗標

描述:建議根據組織定義的值,為 Cloud SQL Server 實例設定「用戶連線」資料庫旗標。 [用戶連線] 選項會指定 SQL Server 實例上允許的同時使用者連線數目上限。 允許的實際用戶連線數目也取決於您所使用的 SQL Server 版本,以及應用程式或應用程式和硬體的限制。 SQL Server 最多允許 32,767 筆使用者連線。 因為使用者連線是動態的 (自我設定) 選項,SQL Server 會視需要自動調整用戶連線數目上限,最多允許的最大值。 例如,如果只有 10 個使用者登入,就配置 10 個使用者連線物件。 在大部分情況下,您不需要變更此選項的值。 預設值為 0,表示允許最大量 (32,767) 的使用者連接數。 此建議適用於 SQL Server 資料庫實例。

嚴重性:低

確定未設定 Cloud SQL Server 實例的 「用戶選項」資料庫旗標

描述:建議不要設定 Cloud SQL Server 實例的「用戶選項」資料庫旗標。 [使用者選項] 選項會指定所有使用者的全域預設值。 會為使用者工作階段的持續時間建立預設查詢處理選項的清單。 使用者選項選項可讓您變更 SET 選項的預設值(如果伺服器的預設設定不適用)。 使用者可以使用 SET 陳述式來覆寫這些預設值。 您可以動態設定 user options 以供新的登入使用。 變更使用者選項的設定之後,新的登入會話會使用新的設定;目前的登入會話不會受到影響。 此建議適用於 SQL Server 資料庫實例。

嚴重性:低

應啟用 GKE 叢集的記錄

描述:此建議會評估叢集的loggingService屬性是否包含 Cloud Logging 應該用來寫入記錄的位置。

嚴重性:高

應在設定接收的記憶體貯體上啟用物件版本設定

描述:此建議會評估貯體版本設定屬性中的已啟用字段是否設定為 true。

嚴重性:高

應調查專案中過度布建的身分識別,以減少許可權爬行索引 (PCI)

描述:應調查專案中過度布建的身分識別,以減少許可權爬行索引 (PCI) 並保護您的基礎結構。 藉由移除未使用的高風險許可權指派來減少PCI。 高PCI反映與身分識別相關聯的風險,其許可權超過其一般或必要使用量。

嚴重性:中

具有密碼編譯密鑰的項目不應該有擁有者許可權的使用者

描述:此建議會針對主體指派的角色/擁有者,評估專案元數據中的IAM允許原則。

嚴重性:中

儲存體 做為記錄接收的貯體不應公開存取

描述:此建議會針對主體 allUsers 或 allAuthenticatedUsers 評估貯體 IAM 原則,以授與公用存取權。

嚴重性:高

GCP IdentityAndAccess 建議

密碼編譯金鑰不應該有三個以上的使用者

描述:此建議會評估密鑰通道的 IAM 原則, 項目和組織,並擷取具有角色的主體,允許他們使用雲端 KMS 密鑰加密、解密或簽署數據:roles/owner、roles/cloudkms.cryptoKeyEncrypterDecrypter、roles/cloudkms.cryptoKeyEncrypter、roles/cloudkms.signer 和 roles/cloudkms.signerVerifier。

嚴重性:中

確定不會為專案建立 API 金鑰

描述:金鑰不安全,因為它們可以公開檢視,例如從瀏覽器內檢視,或者可以在密鑰所在的裝置上存取。 建議改用標準驗證流程。

使用 API 金鑰所涉及的安全性風險如下所示:

  1. API 金鑰是簡單的加密字串
  2. API 金鑰不會識別提出 API 要求的使用者或應用程式
  3. 用戶端通常會存取 API 金鑰,讓您輕鬆探索及竊取 API 金鑰

若要避免使用 API 金鑰的安全性風險,建議改用標準驗證流程。

嚴重性:高

確定 API 金鑰僅限於應用程式需要存取的 API

描述:API 金鑰不安全,因為它們可以公開檢視,例如從瀏覽器內檢視,或者可以在密鑰所在的裝置上存取它們。 建議限制 API 金鑰只使用應用程式所需的 API(呼叫)。

使用 API 金鑰所涉及的安全性風險如下:

  1. API 金鑰是簡單的加密字串
  2. API 金鑰不會識別提出 API 要求的使用者或應用程式
  3. 用戶端通常會存取 API 金鑰,讓您輕鬆探索及竊取 API 金鑰

根據這些潛在風險,Google 建議使用標準驗證流程,而不是 API 金鑰。 不過,API 金鑰更適合的情況有限。 例如,如果有行動應用程式需要使用Google Cloud Translation API,但不需要後端伺服器,API 密鑰就是向該 API 進行驗證的最簡單方式。

為了藉由提供最低許可權來減少受攻擊面,API 金鑰只能限制使用應用程式所需的 API(呼叫)。

嚴重性:高

確定 API 金鑰僅限於指定的主機和應用程式使用

描述:不受限制的密鑰不安全,因為它們可以公開檢視,例如從瀏覽器內檢視,或者可以在密鑰所在的裝置上存取它們。 建議將 API 金鑰使用限制為受信任的主機、HTTP 查閱者和應用程式。

使用 API 金鑰所涉及的安全性風險如下所示:

  1. API 金鑰是簡單的加密字串
  2. API 金鑰不會識別提出 API 要求的使用者或應用程式
  3. 用戶端通常會存取 API 金鑰,讓您輕鬆探索及竊取 API 金鑰

根據這些潛在風險,Google 建議使用標準驗證流程,而不是 API 金鑰。 不過,API 金鑰更適合的情況有限。 例如,如果有行動應用程式需要使用Google Cloud Translation API,但不需要後端伺服器,API 密鑰就是向該 API 進行驗證的最簡單方式。

為了減少攻擊媒介,API 密鑰只能限制為受信任的主機、HTTP 查閱者和應用程式。

嚴重性:高

確保 API 金鑰每隔 90 天輪替一次

描述:建議每隔 90 天輪替 API 金鑰。

使用 API 金鑰所涉及的安全性風險如下:

  1. API 金鑰是簡單的加密字串
  2. API 金鑰不會識別提出 API 要求的使用者或應用程式
  3. 用戶端通常會存取 API 金鑰,讓您輕鬆探索及竊取 API 金鑰

由於這些潛在風險,Google 建議使用標準驗證流程,而不是 API 金鑰。 不過,API 金鑰更適合的情況有限。 例如,如果有行動應用程式需要使用Google Cloud Translation API,但不需要後端伺服器,API 密鑰就是向該 API 進行驗證的最簡單方式。

密鑰遭竊之後,它就沒有到期日,這表示除非項目擁有者撤銷或重新產生密鑰,否則可能會無限期使用。 輪替 API 金鑰會減少與所遭入侵或終止帳戶相關聯的存取金鑰使用機會視窗。

API 金鑰應該輪替,以確保無法使用可能遺失、破解或遭竊的舊密鑰存取數據。

嚴重性:高

確定 KMS 加密金鑰會在 90 天內輪替

描述:Google Cloud 金鑰管理服務 將密碼編譯密鑰儲存在專為實用且優雅的訪問控制管理而設計的階層式結構中。 輪替排程的格式取決於所使用的用戶端連結庫。 針對 gcloud 命令行工具,下一個輪替時間必須是 “ISO” 或 “RFC3339” 格式,而旋轉週期的格式必須是 “INTEGER[UNIT]”,其中單位可以是秒(s)、分鐘(m)、小時(h)或天(d)。 設定金鑰輪替期間和開始時間。 您可以使用指定的「輪替期間」來建立金鑰,這是自動產生新密鑰版本之間的時間。 您也可以使用指定的下一次輪替時間來建立索引鍵。 密鑰是具名物件,代表用於特定用途的「密碼編譯密鑰」。 密鑰數據是用於「加密」的實際位,在建立新的金鑰版本時,可能會隨著時間而變更。 密鑰是用來保護一些「數據主體」。檔案集合可以使用相同的密鑰加密,而該金鑰上具有「解密」許可權的人員就能夠解密這些檔案。 因此,必須確定「輪替期間」設定為特定時間。

嚴重性:中

確定項目擁有權指派/變更存在記錄計量篩選和警示

描述:為了避免對使用者/服務帳戶進行不必要的項目擁有權指派,並進一步誤用專案和資源,應監視所有「角色/擁有者」指派。 具有基本角色「角色/擁有者」角色指派的成員(users/Service-Accounts)是項目擁有者。 項目擁有者擁有角色所屬專案的所有許可權。 以下摘要說明:

  • 專案內所有 GCP 服務的所有查看器許可權
  • 修改專案內所有 GCP 服務狀態之動作的許可權
  • 管理專案和專案內所有資源的角色和許可權
  • 設定專案的計費,將擁有者角色授與成員 (user/Service-Account) 可讓該成員修改身分識別和存取管理 (IAM) 原則。 因此,只有在成員有管理 IAM 原則的合法用途時,才授與擁有者角色。 這是因為專案 IAM 原則包含敏感性訪問控制數據。 允許管理 IAM 原則的最小一組使用者,將簡化可能需要的任何稽核。 項目擁有權在專案上具有最高層級的許可權。 為了避免濫用項目資源,應監視上述項目擁有權指派/變更動作,並警示相關收件者。
  • 傳送項目擁有權邀請
  • 使用者接受/拒絕項目擁有權邀請
  • 新增 role\Owner 至使用者/service-account
  • 從中移除使用者/服務帳戶 role\Owner

嚴重性:低

確定已針對專案啟用奧斯陸金

描述:啟用OS登入會將SSH憑證系結至IAM使用者,並協助有效的SSH憑證管理。 啟用 osLogin 可確保用來連線到實例的 SSH 金鑰會與 IAM 用戶對應。 撤銷 IAM 使用者的存取權將會撤銷與該特定使用者相關聯的所有 SSH 金鑰。 它有助於集中式和自動化的 SSH 金鑰組管理,這在處理回應遭入侵的 SSH 金鑰組和/或撤銷外部/第三方/廠商使用者等案例時很有用。 若要找出哪個實例導致項目狀況不良,請參閱建議「確定已為所有實例啟用奧斯陸金」。

嚴重性:中

確定已為所有實例啟用奧斯陸金

描述:啟用OS登入會將SSH憑證系結至IAM使用者,並協助有效的SSH憑證管理。 啟用 osLogin 可確保用來連線到實例的 SSH 金鑰會與 IAM 用戶對應。 撤銷 IAM 使用者的存取權將會撤銷與該特定使用者相關聯的所有 SSH 金鑰。 它有助於集中式和自動化的 SSH 金鑰組管理,這在處理回應遭入侵的 SSH 金鑰組和/或撤銷外部/第三方/廠商使用者等案例時很有用。

嚴重性:中

確定已在專案的所有服務和所有用戶之間正確設定雲端稽核記錄

描述:建議將雲端稽核記錄設定為追蹤所有系統管理活動,以及讀取、寫入用戶數據的存取權。

雲端稽核記錄會針對每個專案、資料夾和組織維護兩個稽核記錄:管理員 活動和數據存取。

  1. 管理員 活動記錄包含 API 呼叫或其他系統管理動作的記錄專案,這些動作會修改資源的組態或元數據。 管理員 活動稽核記錄會針對所有服務啟用,且無法設定。
  2. 數據存取稽核記錄會記錄 API 呼叫,以建立、修改或讀取使用者提供的數據。 這些預設為停用,且應該啟用。 資料存取稽核記錄資訊有三種:
  • 管理員 讀取:記錄讀取元數據或組態信息的作業。 管理員 活動稽核記錄會記錄無法停用之元數據和組態資訊的寫入。
  • 讀取數據:記錄讀取使用者提供數據的作業。
  • 數據寫入:記錄寫入使用者提供數據的作業。

建議以下列方式設定有效的預設稽核組態:

  1. logtype 設定為 DATA_READ (記錄使用者活動追蹤) 和 DATA_WRITES (記錄變更/竄改至用戶數據)。
  2. 稽核組態會針對數據存取稽核記錄功能所支援的所有服務啟用。
  3. 所有用戶都應該擷取記錄,也就是說,任何稽核組態區段中都沒有豁免的使用者。 這可確保覆寫稽核組態不會與需求相矛盾。

嚴重性:中

確定無法匿名或公開存取雲端 KMS 密碼編譯金鑰

描述:建議雲端 KMS 上的 IAM 原則「密碼編譯密鑰」應限制匿名和/或公用存取。 授與 “allUsers” 或 “allAuthenticatedUsers” 的許可權,可讓任何人存取數據集。 如果敏感數據儲存在位置,則這類存取可能無法取用。 在此情況下,請確定不允許匿名和/或公用存取雲端 KMS「密碼密鑰」。

嚴重性:高

確定已使用公司登入認證

描述:使用公司登入認證,而不是個人帳戶,例如 Gmail 帳戶。 建議使用完全受控的公司 Google 帳戶來提升對雲端平臺資源的可見度、稽核和控制存取。 基於使用者組織外部的 Gmail 帳戶,例如個人帳戶,不應用於商務用途。

嚴重性:高

確定未在專案層級指派服務帳戶用戶或服務帳戶令牌建立者角色

描述:建議將「服務帳戶使用者」(iam.serviceAccountUser)和「服務帳戶令牌建立者」(iam.serviceAccountTokenCreator)角色指派給特定服務帳戶的使用者,而不是將角色指派給專案層級的使用者。 服務帳戶是屬於應用程式或虛擬機 (VM) 的特殊 Google 帳戶,而不是個別使用者。 應用程式/VM 實例會使用服務帳戶來呼叫服務的 Google API,讓使用者不會直接參與。 除了身分識別之外,服務帳戶也是連結 IAM 原則的資源。 這些原則會決定誰可以使用服務帳戶。 具有IAM角色來更新App Engine和計算引擎實例的使用者(例如App Engine Deployer 或 Compute Instance 管理員)可以有效地執行程式代碼,作為用來執行這些實例的服務帳戶,並間接地存取服務帳戶可存取的所有資源。 同樣地,對計算引擎實例的 SSH 存取也可能提供執行程式代碼作為該實例/服務帳戶的能力。 根據業務需求,可能會針對項目設定多個使用者管理的服務帳戶。 將 「iam.serviceAccountUser」 或 「iam.serviceAserviceAccountTokenCreatorccountUser」 角色授與項目的使用者,可讓使用者存取專案中的所有服務帳戶,包括未來可能建立的服務帳戶。 這可能會導致許可權提升,方法是使用服務帳戶和對應的「計算引擎實例」。為了實作「最低許可權」最佳做法,IAM 使用者不應該在專案層級指派「服務帳戶使用者」或「服務帳戶令牌建立者」角色。 相反地,這些角色應該指派給特定服務帳戶的使用者,並授與該使用者對服務帳戶的存取權。 「服務帳戶使用者」可讓使用者將服務帳戶系結至長時間執行的工作服務,而「服務帳戶令牌建立者」角色可讓使用者直接模擬服務帳戶的身分識別(或判斷提示)。

嚴重性:中

描述:建議在將 KMS 相關角色指派給使用者時,強制執行「職責分離」的原則。 內建/預先定義的 IAM 角色「雲端 KMS 管理員」可讓使用者/身分識別建立、刪除及管理服務帳戶。 內建/預先定義的 IAM 角色「雲端 KMS CryptoKey Encrypter/Decrypter」可讓使用者/身分識別(具有相關資源的適當許可權)使用加密密鑰來加密和解密待用數據。 內建/預先定義的 IAM 角色 Cloud KMS CryptoKey Encrypter 可讓使用者/身分識別(具有相關資源的適當許可權)使用加密密鑰加密待用數據。 內建/預先定義的 IAM 角色「雲端 KMS CryptoKey 解密器」可讓使用者/身分識別(具有相關資源的適當許可權)使用加密密鑰來解密待用數據。 職責分離是確保一個人沒有所有必要許可權才能完成惡意動作的概念。 在 Cloud KMS 中,這可能是一種動作,例如使用密鑰來存取和解密使用者通常無法存取的數據。 職責分離是一種商務控件,通常用於大型組織,旨在協助避免安全性或隱私權事件和錯誤。 這是最佳做法。 沒有用戶應該有雲端 KMS 管理員,以及同時指派的任何「雲端 KMS CryptoKey 加密器/解密器」、「雲端 KMS CryptoKey 加密程式」角色。

嚴重性:高

描述:建議在將服務帳戶相關角色指派給使用者時,強制執行「職責分離」的原則。 內建/預先定義的 IAM 角色「服務帳戶管理員」可讓使用者/身分識別建立、刪除及管理服務帳戶。 內建/預先定義的 IAM 角色「服務帳戶使用者」可讓使用者/身分識別(具有計算和應用程式引擎的適當許可權)將服務帳戶指派給應用程式/計算實例。 職責分離是確保一個人沒有所有必要許可權才能完成惡意動作的概念。 在 Cloud IAM - 服務帳戶中,這可能是一種動作,例如使用服務帳戶來存取使用者通常不應該存取的資源。 職責分離是一種商務控件,通常用於大型組織,旨在協助避免安全性或隱私權事件和錯誤。 這是最佳做法。 使用者不應該同時指派「服務帳戶 管理員」和「服務帳戶使用者」角色。

嚴重性:中

確定服務帳戶沒有 管理員許可權

描述:服務帳戶是屬於應用程式或 VM 的特殊 Google 帳戶,而不是個別使用者。 應用程式會使用服務帳戶來呼叫服務的Google API,讓使用者不會直接參與。 不建議使用 ServiceAccount 的系統管理員存取權。 服務帳戶代表資源(應用程式或 VM)的服務層級安全性,可由指派給它的角色來決定。 使用 管理員 許可權註冊 ServiceAccount 可完整存取指派的應用程式或 VM。 ServiceAccount 存取持有者可以執行重要動作,例如刪除、更新變更設定等,而不需要使用者介入。 基於這個理由,建議服務帳戶沒有 管理員 許可權。

嚴重性:中

確定已針對所有記錄專案設定接收

描述:建議建立接收,以匯出所有記錄項目的複本。 這有助於匯總來自多個項目的記錄,並將其導出至安全性資訊和事件管理 (SIEM)。 記錄專案會保留在 Stackdriver 記錄中。 若要匯總記錄,請將記錄導出至 SIEM。 若要保留較長的時間,建議您設定記錄接收。 匯出牽涉到撰寫篩選來選取要導出的記錄專案,以及在Cloud儲存體、BigQuery或Cloud Pub/Sub 中選擇目的地。 篩選條件和目的地會保留在名為接收的物件中。 為了確保所有記錄專案都匯出至接收,請確定未針對接收設定任何篩選。 接收可以在專案、組織、資料夾和計費帳戶中建立。

嚴重性:低

確定稽核組態變更的記錄計量篩選和警示存在

描述:Google Cloud Platform (GCP) 服務會將稽核記錄專案寫入至 管理員 活動和數據存取記錄檔,以協助回答 GCP 專案中「誰做了什麼、地點和時間?」的問題。 雲端稽核記錄資訊包括 API 呼叫者的身分識別、API 呼叫的時間、API 呼叫端的來源 IP 位址、要求參數,以及 GCP 服務所傳回的回應元素。 雲端稽核記錄提供帳戶的 GCP API 呼叫歷程記錄,包括透過主控台、SDK、命令行工具和其他 GCP 服務進行的 API 呼叫。 管理員 雲端稽核記錄所產生的活動和數據存取記錄,可啟用安全性分析、資源變更追蹤和合規性稽核。 設定稽核組態變更的計量篩選和警示可確保維護建議的稽核組態狀態,讓專案中的所有活動隨時都能進行稽核。

嚴重性:低

確定自定義角色變更的記錄計量篩選和警示存在

描述:建議針對身分識別和存取管理 (IAM) 角色建立、刪除和更新活動的變更,建立計量篩選和警示。 Google Cloud IAM 提供預先定義的角色,可提供特定 Google Cloud Platform 資源的細微存取權,並防止不想要存取其他資源。 不過,為了迎合組織的特定需求,Cloud IAM 也提供建立自定義角色的能力。 具有組織角色 管理員 istrator 角色或 IAM 角色 管理員 istrator 角色的項目擁有者和系統管理員可以建立自定義角色。 監視角色建立、刪除和更新活動將有助於在早期階段識別任何超特殊許可權角色。

嚴重性:低

確保服務帳戶的使用者管理/外部密鑰每隔 90 天或更少輪替一次

描述:服務帳戶密鑰是由金鑰標識碼(Private_key_Id)和私鑰所組成,用來簽署使用者向該特定服務帳戶存取的 Google 雲端服務提出的程式設計要求。 建議定期輪替所有服務帳戶密鑰。 輪替服務帳戶金鑰將會減少與所要使用之遭入侵或終止帳戶相關聯的存取密鑰機會視窗。 服務帳戶密鑰應輪替,以確保無法使用可能遺失、破解或遭竊的舊密鑰存取數據。 每個服務帳戶都會與Google Cloud Platform (GCP) 所管理的金鑰組相關聯。 它用於 GCP 內的服務對服務驗證。 谷歌每天輪換金鑰。 GCP 提供選項來建立一或多個使用者管理的金鑰組(也稱為外部密鑰組)金鑰組,以便從 GCP 外部使用(例如,用於搭配應用程式預設認證使用)。 建立新的金鑰組時,用戶必須下載私鑰(Google 不會保留)。

使用外部金鑰時,用戶須負責保護私鑰的安全和其他管理作業,例如密鑰輪替。 外部密鑰可由 IAM API、gcloud 命令行工具,或 Google Cloud Platform Console 中的 [服務帳戶] 頁面管理。

GCP 可協助每個服務帳戶最多 10 個外部服務帳戶密鑰,以利密鑰輪替。

嚴重性:中

應該停用 GKE Web 儀錶板

描述:此建議會評估索引鍵/值組 'disabled': false 之 addonsConfig 屬性的 kubernetesDashboard 字段。

嚴重性:高

GKE 叢集上應停用舊版授權

描述:此建議會針對索引鍵/值組評估叢集的 legacyAbac 屬性,『enabled』: true。

嚴重性:高

Redis IAM 角色不應在組織或資料夾層級指派

描述:此建議會評估組織或資料夾層級上主體指派角色/redis.admin、roles/redis.editor、roles/redis.viewer 的資源元數據中的 IAM 允許原則。

嚴重性:高

服務帳戶應該在叢集中具有受限制的專案存取

描述:此建議會評估節點集區的 config 屬性,以檢查是否已指定任何服務帳戶,或是否使用預設服務帳戶。

嚴重性:高

用戶應具有細微 IAM 角色的最低許可權存取權

描述:此建議會針對任何指派的角色/擁有者、角色/寫入者或角色/讀取者,評估資源元數據中的 IAM 原則。

嚴重性:高

應移除 GCP 環境中的進階身分識別

描述:超級身分識別具有一組強大的許可權。 超級系統管理員是可存取所有許可權和所有資源的人力或工作負載身分識別。 他們可以建立和修改服務的組態設定、新增或移除身分識別,以及存取甚至刪除數據。 這些身分識別未受監視,如果遭到入侵,就會造成許可權誤用的重大風險。

嚴重性:高

應該移除 GCP 環境中的未使用身分識別

描述:在未使用的身分識別造成重大安全性風險時,必須識別未使用的身分識別。 這些身分識別通常牽涉到不良做法,例如過多的許可權和管理不善的密鑰,讓組織能夠公開認證誤用或惡意探索,並增加資源的受攻擊面。 非作用中的身分識別是過去90天內未對任何資源執行任何動作的人和非人類實體。 如果未謹慎管理,服務帳戶密鑰可能會成為安全性風險。

嚴重性:中

GCP 過度布建的身分識別應該只有必要的許可權

描述:過度布建的作用中身分識別是可存取他們尚未使用之許可權的身分識別。 過度布建的作用中身分識別,特別是對於具有非常定義動作和責任的非人帳戶,可以在使用者、金鑰或資源入侵時增加爆炸半徑。最低許可權原則指出資源應該只能存取所需的確切資源才能運作。 此原則已開發,以解決遭入侵身分識別的風險,授與攻擊者存取各種資源的風險。

嚴重性:中

GCP 網路建議

叢集主機應設定為只使用私人的內部IP位址來存取Google API

描述:此建議會評估子網的 privateIpGoogleAccess 屬性是否設定為 false。

嚴重性:高

計算實例應該使用設定為使用目標 HTTPS Proxy 的負載平衡器

描述:此建議會評估 targetHttpProxy 資源的 selfLink 屬性是否符合轉送規則中的目標屬性,以及轉送規則是否包含設定為 External 的 loadBalancingScheme 字段。

嚴重性:中

應在 GKE 叢集上啟用控制平面授權網路

描述:此建議會評估叢集的 masterAuthorizedNetworksConfig 屬性,以取得索引鍵/值組的 'enabled': false。

嚴重性:高

應在防火牆上設定輸出拒絕規則,以封鎖不必要的輸出流量

描述:此建議會評估防火牆中的 destinationRanges 屬性是否設定為 0.0.0.0/0,而拒絕的屬性是否包含機碼/值組 'IPProtocol': 'all'。

嚴重性:低

確保身分識別感知 Proxy (IAP) 後方實例的防火牆規則只允許來自 Google Cloud Loadbalancer (GCLB) 健康情況檢查和 Proxy 位址的流量

描述:存取 VM 應受限於只允許 IAP 流量的防火牆規則,方法是確保只允許 IAP 所代理的連線。 若要確保負載平衡運作正常,也應該允許健康情況檢查。 IAP 可確保透過驗證連入要求來控制對 VM 的存取。 不過,如果 VM 仍可從 IAP 以外的 IP 位址存取,則仍可能會將未經驗證的要求傳送至實例。 請務必小心,以確保不會封鎖負載平衡器健康情況檢查,因為這樣會阻止負載平衡器正確瞭解 VM 的健康情況,並正確地進行負載平衡。

嚴重性:中

確定項目沒有舊版網路

描述:為了避免使用舊版網路,專案不應該設定舊版網路。 舊版網路具有單一網路 IPv4 前置詞範圍,以及整個網路的單一閘道 IP 位址。 網路在範圍中是全域的,而且橫跨所有雲端區域。 子網無法在舊版網路中建立,而且無法從舊版切換到自動或自定義子網網路。 舊版網路可能會對高網路流量專案產生影響,而且受限於單一爭用點或失敗點。

嚴重性:中

請確定已適當地設定 Cloud SQL PostgreSQL 實例的 'log_hostname' 資料庫旗標

描述:P ostgreSQL 只會記錄連線主機的IP位址。 除了記錄的IP位址之外,「log_hostname」旗標也會控制「主機名」的記錄。 效能命中取決於環境的設定和主機名解析設定。 此參數只能在 「postgresql.conf」 檔案或伺服器命令行上設定。 記錄主機名可能會對伺服器效能造成額外負荷,因為每個記錄的語句都需要 DNS 解析,才能將 IP 位址轉換為主機名。 視設定而定,這可能是不可忽略的。 此外,稍後檢閱記錄檔時,記錄的IP位址可以解析為其 DNS 名稱,但不包括使用動態主機名的情況。 這項建議適用於PostgreSQL資料庫實例。

嚴重性:低

確定沒有任何 HTTPS 或 SSL Proxy 負載平衡器允許具有弱式加密套件的 SSL 原則

描述:安全套接字層 (SSL) 原則會決定用戶端在連線到負載平衡器時,允許使用哪些埠傳輸層安全性 (TLS) 功能。 若要防止使用不安全的功能,SSL 原則應至少使用 TLS 1.2 與 MODERN 配置檔;或 (b) RESTRICTED 配置檔,因為它實際上需要用戶端使用 TLS 1.2,而不論選擇的最低 TLS 版本為何;或 (3) 不支援下列任何功能的 CUSTOM 設定檔:TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA

負載平衡器可用來有效率地將流量分散到多部伺服器。 SSL Proxy 和 HTTPS 負載平衡器都是外部負載平衡器,這表示會將流量從因特網散發到 GCP 網路。 GCP 客戶可以使用最低 TLS 版本(1.0、1.1 或 1.2)來設定負載平衡器 SSL 原則,讓用戶端可用來建立連線,以及可指定允許加密套件的配置檔(相容、新式、限制或自定義)。 為了符合使用過時通訊協議的使用者,GCP 負載平衡器可以設定為允許不安全的加密套件。 事實上,GCP 預設 SSL 原則會使用最低 TLS 1.0 版和相容配置檔,以允許最廣泛的不安全加密套件。 因此,客戶很容易設定負載平衡器,甚至不知道他們允許過時的加密套件。

嚴重性:中

確定已針對所有網民網路啟用雲端 DNS 記錄

描述:雲端 DNS 記錄會記錄從您適用於您於 HTTP 內的名稱伺服器到 Stackdriver 的查詢。 記錄的查詢可能來自計算引擎 VM、GKE 容器,或布建在 VLAN 內的其他 GCP 資源。 安全性監視和鑑識無法完全取決於來自 HTTP 流量記錄的 IP 位址,尤其是在考慮雲端資源的動態 IP 使用量、HTTP 虛擬主機路由,以及其他技術時,這些技術可能會遮蔽用戶端從 IP 位址使用的 DNS 名稱。 監視雲端 DNS 記錄可讓您查看在 JSON 內用戶端所要求的 DNS 名稱。 這些記錄可以監視異常功能變數名稱、根據威脅情報進行評估,以及注意:如需完整擷取 DNS,防火牆必須封鎖輸出 UDP/53 (DNS) 和 TCP/443 (透過 HTTPS 的 DNS),以防止用戶端使用外部 DNS 名稱伺服器進行解析。

嚴重性:高

確定已啟用雲端 DNS 的 DNSSEC

描述:雲端域名系統(DNS)是一種快速、可靠且符合成本效益的域名系統,可在因特網上提供數百萬個網域。 雲端 DNS 中的功能變數名稱系統安全性延伸模組 (DNSSEC) 可讓網域擁有者採取簡單步驟,防止 DNS 劫持和中間人和其他攻擊。 功能變數名稱系統安全性延伸模組 (DNSSEC) 藉由啟用要驗證的 DNS 回應,將安全性新增至 DNS 通訊協定。 擁有可信任的 DNS,將功能變數名稱 www.example.com 轉譯成其相關聯的IP位址,是現今Web應用程式日益重要的建置組塊。 攻擊者可以劫持此網域/IP 查閱程式,並透過 DNS 劫持和中間人攻擊,將使用者重新導向至惡意網站。 DNSSEC 可透過密碼編譯方式簽署 DNS 記錄來協助降低這類攻擊的風險。 因此,它可防止攻擊者發出可能誤導瀏覽器到惡意網站的假 DNS 回應。

嚴重性:中

確定從因特網限制 RDP 存取

描述:GCP 防火牆規則是特定於某一個網路。 每個規則都會在符合流量條件時允許或拒絕流量。 其條件可讓使用者指定流量類型,例如埠和通訊協定,以及流量的來源或目的地,包括IP位址、子網和實例。 防火牆規則會定義於網路層級,且專屬於其定義所在的網路。 規則本身無法在網路之間共用。 防火牆規則僅支援IPv4流量。 在依位址指定輸入規則的來源或輸出規則的目的地時,可以使用CIDR表示法中的IPv4位址或IPv4區塊。 您可以避免在埠 3389 上使用 RDP 從因特網到使用 RDP 的一般 (0.0.0.0.0/0) 連入流量到 SSL 或 VM 實例。 在VP網路內的 GCP 防火牆規則。 這些規則適用於來自實例的傳出(輸出)流量,以及連入(輸入)流量到網路中的實例。 即使流量停留在網路內(例如實例對實例通訊),輸出和輸入流量仍會受到控制。 若要讓實例具有連出因特網存取權,網路必須具有有效的因特網網關路由或指定目的地 IP 的自定義路由。 此路由只會定義因特網的路徑,以避免使用預設埠 3389 從因特網指定的最一般 (0.0.0.0.0/0) 目的地 IP 範圍。 從因特網到特定IP範圍的一般存取應受到限制。

嚴重性:高

請確定RSASHA1不會用於雲端 DNS DNSSEC 中的密鑰簽署密鑰

描述:此登錄中的 DNSSEC 演算法編號可用於 CERT RR。 區域簽署 (DNSSEC) 和交易安全性機制 (SIG(0) 和 TSIG) 會使用這些演算法的特定子集。 用於密鑰簽署的演算法應該是建議的演算法,而且應該是強式的。 此登錄中的功能變數名稱系統安全性延伸模組 (DNSSEC) 演演算法編號可用於 CERT RR。 區域簽署 (DNSSEC) 和交易安全性機制 (SIG(0) 和 TSIG) 會使用這些演算法的特定子集。 用於密鑰簽署的演算法應該是建議的演算法,而且應該是強式的。 為受控區域啟用 DNSSEC,或使用 DNSSEC 建立受控區域時,使用者可以選取 DNSSEC 簽署演算法和拒絕存在類型。 如果尚未啟用 DNSSEC,變更 DNSSEC 設定才對受控區域有效。 如果需要變更已啟用受控區域的設定,請關閉 DNSSEC,然後使用不同的設定重新啟用它。

嚴重性:中

確定RSASHA1不會用於雲端 DNS DNSSEC 中的區域簽署密鑰

描述:此登錄中的 DNSSEC 演算法編號可用於 CERT RR。 區域簽署 (DNSSEC) 和交易安全性機制 (SIG(0) 和 TSIG) 會使用這些演算法的特定子集。 用於密鑰簽署的演算法應該是建議的演算法,而且應該是強式的。 此登錄中的 DNSSEC 演演算法編號可用於 CERT RR。 區域簽署 (DNSSEC) 和交易安全性機制 (SIG(0) 和 TSIG) 會使用這些演算法的特定子集。 用於密鑰簽署的演算法應該是建議的演算法,而且應該是強式的。 為受控區域啟用 DNSSEC,或使用 DNSSEC 建立受控區域時,可以選取 DNSSEC 簽署演算法和拒絕存在類型。 如果尚未啟用 DNSSEC,變更 DNSSEC 設定才對受控區域有效。 如果需要變更已啟用受控區域的設定,請關閉 DNSSEC,然後使用不同的設定重新啟用它。

嚴重性:中

確定已從因特網限制 SSH 存取

描述:GCP 防火牆規則是特定於某一個網路。 每個規則都會在符合流量條件時允許或拒絕流量。 其條件可讓使用者指定流量類型,例如埠和通訊協定,以及流量的來源或目的地,包括IP位址、子網和實例。 防火牆規則會定義於網路層級,且專屬於其定義所在的網路。 規則本身無法在網路之間共用。 防火牆規則僅支援IPv4流量。 指定輸入規則的來源或依位址指定輸出規則的目的地時,只能使用 CIDR 表示法中的 IPv4 位址或 IPv4 區塊。 您可以避免在埠 22 上使用 SSH 從因特網到使用 SSH 的傳入流量(0.0.0.0.0/0) 傳入流量。 來自實例和連入(輸入)流量流向網路實例的 GCP 防火牆規則會套用至網路中的實例。 即使流量停留在網路內(例如實例對實例通訊),輸出和輸入流量仍會受到控制。 若要讓實例具有連出因特網存取權,網路必須具有有效的因特網網關路由或指定目的地 IP 的自定義路由。 此路由只會定義因特網的路徑,以避免使用預設埠 '22' 從因特網指定的最一般 (0.0.0.0.0/0) 目的地 IP 範圍。 必須限制從因特網存取特定IP範圍的一般存取。

嚴重性:高

確定預設網路不存在於專案中

描述:若要防止使用「預設」網路,項目不應該有「預設」網路。 預設網路具有預先設定的網路組態,並自動產生下列不安全的防火牆規則:

  • default-allow-internal:允許網路實例之間的所有通訊協定和埠的輸入連線。
  • default-allow-ssh:允許從任何來源到網路中任何實例的 TCP 連接埠 22(SSH) 上的輸入連線。
  • default-allow-rdp:允許從任何來源到網路中任何實例的 TCP 連接埠 3389(RDP) 上的輸入連線。
  • default-allow-icmp:允許從任何來源到網路中任何實例的輸入ICMP流量。

這些自動建立的防火牆規則不會記錄稽核,且無法設定為啟用防火牆規則記錄。 此外,預設網路是自動模式網路,這表示其子網使用相同預先定義的IP位址範圍,因此,無法搭配預設網路使用雲端 VPN 或 VPN 網路對等互連。 根據組織安全性和網路需求,組織應該建立新的網路,並刪除默認網路。

嚴重性:中

請確定有記錄計量篩選條件和警示存在,以便進行對網變更

描述:建議針對虛擬私人雲端 (IMF) 網路變更建立計量篩選和警示。 專案內可能會有一個以上的SSD。 此外,您也可以在兩個 VPN 之間建立對等連線,讓網路流量在 VPC 之間路由。 監視對VP的變更將有助於確保不會受到影響的VP流量。

嚴重性:低

請確定已針對 [VM 網路防火牆] 規則變更而存在記錄計量篩選和警示

描述:建議針對虛擬私人雲端 (IMF) 網路防火牆規則變更建立計量篩選和警示。 監視建立或更新防火牆規則事件可提供網路存取變更的深入解析,並可能會減少偵測可疑活動所需的時間。

嚴重性:低

請確定有記錄計量篩選條件和警示存在,以變更網狀網路路由

描述:建議針對虛擬私人雲端 (IMF) 網路路由變更建立計量篩選和警示。 Google Cloud Platform (GCP) 路由會定義從 VM 實例到另一個目的地的網路流量路徑。 另一個目的地可以位於組織內部的VP網路(例如另一個 VM)或外部。 每個路由都包含目的地和下一個躍點。 目的地 IP 位於目的地範圍內的流量會傳送至下一個躍點以進行傳遞。 監視路由表的變更將有助於確保所有 TCP 流量都流經預期的路徑。

嚴重性:低

確定 Cloud SQL PostgreSQL 實例的 'log_connections' 資料庫旗標已設定為 'on'

描述:啟用log_connections設定會導致每次嘗試連線到伺服器,以及成功完成客戶端驗證。 工作階段啟動之後,無法變更此參數。 PostgreSQL 預設不會記錄嘗試的連線。 啟用log_connections設定會為每個嘗試的連線建立記錄專案,以及成功完成客戶端驗證,這在疑難解答問題時很有用,並判斷伺服器的任何異常連線嘗試。 這項建議適用於PostgreSQL資料庫實例。

嚴重性:中

確定 Cloud SQL PostgreSQL 實例的 'log_disconnections' 資料庫旗標已設定為 'on'

描述:啟用log_disconnections設定會記錄每個會話的結尾,包括會話持續時間。 PostgreSQL 預設不會記錄工作階段詳細數據,例如持續時間和會話結束。 啟用log_disconnections設定會在每個會話結束時建立記錄專案,這在疑難解答問題時很有用,並判斷一段時間內的任何異常活動。 log_disconnections和log_connections工作交手,一般來說,兩人會一起啟用/停用。 這項建議適用於PostgreSQL資料庫實例。

嚴重性:中

請確定已針對每個子網啟用於「VM 網路」中的[VM 流量記錄]

描述:流量記錄是一項功能,可讓使用者擷取組織之[HTTP 子網] 中網路介面來回傳輸IP流量的相關信息。 建立流程記錄之後,用戶可以在 Stackdriver 記錄中檢視和擷取其數據。 建議針對每個業務關鍵性之 SSD 子網啟用流量記錄。 在可以啟動 GCP 資源的邏輯隔離且安全的網路分割區中,使用網路和子網來提供其邏輯隔離且安全的網路分割區。 針對子網啟用流量記錄時,該子網內的 VM 會開始報告所有傳輸控制通訊協定 (TCP) 和使用者數據報通訊協定 (UDP) 流程。 每個 VM 都會取樣其看到的 TCP 和 UDP 流程、輸入和輸出流程,不論流程是往返於另一個 VM、內部部署數據中心的主機、Google 服務,還是因特網上的主機。 如果兩個 GCP VM 正在通訊,而且兩者都位於已啟用 TCP 流量記錄的子網中,這兩部 VM 都會回報流程。 流量記錄支援下列使用案例:1。 網路監視。 2. 了解網路使用量並優化網路流量費用。 3. 網路鑑識。 4. 即時安全性分析流量記錄可讓您查看子網內每個 VM 的網路流量,並可用來偵測安全性工作流程期間的異常流量或深入解析。

嚴重性:低

應啟用防火牆規則記錄

描述:此建議會評估防火牆元數據中的logConfig屬性,以查看其是否為空白,或包含機碼/值組 'enable': false。

嚴重性:中

不應將防火牆設定為開放至公用存取

描述:此建議會評估下列兩個組態之一的 sourceRanges 和允許的屬性:

sourceRanges 屬性包含 0.0.0.0/0,而允許的屬性包含包含任何通訊協定或通訊協定:埠的規則組合,但下列除外:icmp tcp:22 tcp:443 tcp:3389 udp:3389 sctp:22

sourceRanges 屬性包含包含任何非private IP 位址的IP範圍組合,且允許的屬性包含允許所有 tcp 連接埠或所有 udp 連接埠的規則組合。

嚴重性:高

防火牆不應設定為具有允許一般存取的開放式 CASSANDRA 埠

描述:這項建議會針對下列通訊協定和埠評估防火牆元數據中允許的屬性:TCP:7000-7001、7199、8888、9042、9160、61620-61621。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放CISCOSECURE_WEBSM埠

描述:此建議會評估下列通訊協定和埠之防火牆元數據中允許的屬性:TCP:9090。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放式DIRECTORY_SERVICES埠

描述:此建議會針對下列通訊協定和埠評估防火牆元數據中允許的屬性:TCP:445 和 UDP:445。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放 DNS 埠

描述:這項建議會針對下列通訊協定和埠評估防火牆元數據中允許的屬性:TCP:53 和 UDP:53。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放式 ELASTICSEARCH 埠

描述:此建議會針對下列通訊協定和埠評估防火牆元數據中允許的屬性:TCP:9200、9300。

嚴重性:低

防火牆不應設定為具有允許一般存取的開啟 FTP 埠

描述:此建議會針對下列通訊協定和埠評估防火牆元數據中允許的屬性:TCP:21。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放 HTTP 埠

描述:此建議會針對下列通訊協定和埠評估防火牆元數據中允許的屬性:TCP:80。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放LDAP埠

描述:這項建議會針對下列通訊協定和埠評估防火牆元數據中允許的屬性:TCP:389、636 和 UDP:389。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放式 MEMCACHED 埠

描述:此建議會針對下列通訊協定和埠評估防火牆元數據中允許的屬性:TCP:11211、11214-11215 和 UDP:11211、11214-11215。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放式 MONGODB 埠

描述:此建議會針對下列通訊協定和埠評估防火牆元數據中允許的屬性:TCP:27017-27019。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放 MYSQL 埠

描述:此建議會評估下列通訊協定和埠之防火牆元數據中允許的屬性:TCP:3306。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放NETBIOS埠

描述:這項建議會針對下列通訊協定和埠評估防火牆元數據中允許的屬性:TCP:137-139 和 UDP:137-139。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放式 ORACLEDB 埠

描述:此建議會針對下列通訊協定和埠評估防火牆元數據中允許的屬性:TCP:1521、2483-2484 和 UDP:2483-2484。

嚴重性:低

防火牆不應設定為具有允許一般存取的開啟 POP3 埠

描述:此建議會針對下列通訊協定和埠評估防火牆元數據中允許的屬性:TCP:110。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放 PostgreSQL 埠

描述:此建議會針對下列通訊協定和埠評估防火牆元數據中允許的屬性:TCP:5432 和 UDP:5432。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放式 REDIS 埠

描述:此建議會評估防火牆元數據中允許的屬性是否包含下列通訊協定和埠:TCP:6379。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放式 SMTP 埠

描述:此建議會評估防火牆元數據中允許的屬性是否包含下列通訊協定和埠:TCP:25。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放 SSH 埠

描述:此建議會評估防火牆元數據中允許的屬性是否包含下列通訊協定和埠:TCP:22 和 SCTP:22。

嚴重性:低

防火牆不應設定為具有允許一般存取的開放式 TELNET 埠

描述:此建議會評估防火牆元數據中允許的屬性是否包含下列通訊協定和埠:TCP:23。

嚴重性:低

GKE 叢集應該已啟用別名IP範圍

描述:此建議會評估叢集中ipAllocationPolicy的 useIPAliases 字段是否設定為 false。

嚴重性:低

GKE 叢集應該已啟用私人叢集

描述:此建議會評估 privateClusterConfig 屬性的 enablePrivateNodes 字段是否設定為 false。

嚴重性:高

應在 GKE 叢集上啟用網路原則

描述:此建議會評估索引鍵/值組 'disabled':true 之 addonsConfig 屬性的 networkPolicy 字段。

嚴重性:中