使用 Cloud SQL 暴力破解防護機制

本頁面說明 Cloud SQL 提供的偵測和保護功能,可防範未經授權的暴力破解存取嘗試,並說明如何保護執行個體免於這類嘗試。

暴力破解防護是內建的安全防護功能,可防止未經授權存取 Cloud SQL 資源,有助於保護執行個體免於暴力破解存取嘗試。暴力存取嘗試是指惡意行為人有系統地嘗試不同的使用者名稱和密碼組合,藉此自動重複嘗試登入,並取得資料庫存取權。

Cloud SQL 提供下列選項,保護資料庫免於暴力破解存取嘗試:

  • 暴力破解存取偵測:Cloud SQL 會持續監控每個執行個體的登入失敗嘗試,並偵測首次登入成功。如果連續登入嘗試次數超過 Cloud SQL 定義的門檻,Cloud SQL 就會在執行個體記錄中產生警告訊息。這則記錄訊息會指出暴力破解存取嘗試,以及相關聯的 IP 位址和使用者名稱。

    所有 Cloud SQL 版本都提供暴力破解存取偵測功能。

  • 暴力破解存取防護:Cloud SQL 偵測到暴力破解存取嘗試時,會自動減緩登入嘗試速度,方法是在登入回應中加入延遲,並即時節流。如果 Cloud SQL 將連線識別為暴力破解存取嘗試,且該連線導致登入成功,Cloud SQL 就會限制該連線,並產生記錄事件來識別這個登入成功事件。這項記錄事件會識別暴力破解存取嘗試,以及相關聯的 IP 位址和使用者名稱。

    暴力破解存取防護功能僅適用於 Cloud SQL Enterprise Plus 版本。

Cloud SQL 可為執行個體提供暴力破解存取偵測和防護功能,協助找出這類存取嘗試的來源,並降低相關風險。使用這些暴力破解存取嘗試中識別出的 IP 位址和使用者名稱,保護執行個體,防範日後的暴力破解存取嘗試。如要找出執行個體的暴力破解嘗試,請參閱「查看暴力破解嘗試的記錄」。

查看暴力破解存取嘗試記錄

Cloud SQL 偵測到暴力破解存取嘗試時,會在執行個體記錄中記錄事件,並顯示「an anomaly was found」文字。Cloud SQL 記錄檔會詳細記錄下列事件:

事件 說明
偵測暴力破解存取嘗試 有人嘗試從 IP IP 登入帳戶 user,但未成功。系統發現異常情況,這個 IP 重複嘗試登入失敗。
自動節流,減少暴力破解存取嘗試 (僅限 Enterprise Plus 版本) 有人嘗試從 IP 位址 IP 登入帳戶 user,但登入失敗。系統偵測到異常狀況,這個 IP 重複嘗試登入失敗。Cloud SQL 節流回應,以防範潛在的暴力破解嘗試。
偵測到多次登入失敗後首次成功登入 系統偵測到異常情況:有人在多次嘗試登入帳戶失敗後,從 IP 位址 IP成功登入帳戶 user。如果這項活動並非您所為,建議變更使用者密碼。
在登入失敗多次後,系統會自動限制首次成功登入的頻率 (僅限 Enterprise Plus 版本) 系統偵測到異常情況,在多次登入失敗後,有人從 IP 位址 IP 成功登入帳戶。userCloud SQL 限制了回應,以防範潛在的暴力破解嘗試。如果這項活動並非您所為,請變更使用者密碼。

如要查看這些暴力破解嘗試的詳細資料,請查看執行個體的記錄 ,並在每筆記錄的文字中尋找 An anomaly was found

設定記錄檔警告政策

您可以設定記錄檔快訊政策,在系統偵測到 Cloud SQL 執行個體有暴力破解存取嘗試或遭到節流時,收到通知。如要進一步瞭解如何設定這項快訊,請參閱「使用 Logs Explorer 設定以記錄為基礎的快訊政策」。

舉例來說,您可以在快訊政策中使用下列查詢,找出成功的暴力破解存取嘗試記錄:

resource.type="cloudsql_database"
textPayload =~ "An anomaly was found, successful login into the account"

保護執行個體

如果系統偵測到有人嘗試以暴力破解法存取執行個體,Cloud SQL 會建議您保護執行個體。如要查看可能的蠻力存取嘗試,請參閱「查看蠻力存取嘗試的記錄」。

如果 Cloud SQL 偵測到有人嘗試對執行個體進行暴力破解存取,請採取下列行動:

  • 如果 Cloud SQL 偵測到暴力破解存取嘗試,但登入失敗,請從授權網路中移除已識別的 IP 位址,防止這些 IP 位址日後嘗試登入。如要這麼做,請在執行個體的授權網路中使用狹窄的 IP 範圍,或從授權網路清單中移除 IP 位址。
  • 如果 Cloud SQL 偵測到暴力破解存取嘗試,且從識別出的 IP 位址和使用者名稱成功登入,請變更使用者帳戶的密碼,並從已授權網路清單中移除該 IP。

此外,您也可以使用驗證 ProxyCloud SQL 語言連接器連線至執行個體,而不使用授權網路。Auth Proxy 和 Cloud SQL 語言連接器會使用 Identity and Access Management 驗證來管理與執行個體的連線,提供更安全的連線,且不需要將特定 IP 位址新增至執行個體授權網路清單。

如要進一步保護 Cloud SQL 執行個體,請使用私人 IP,而非公開 IP,並使用以 IAM 為基礎的資料庫驗證,而非以使用者名稱和密碼為基礎的驗證。

監控暴力破解存取嘗試

為監控暴力破解存取嘗試,Cloud SQL 會使用 /database/network/connection_attempt_count 指標,計算執行個體各類型連線事件的發生次數。這項指標會使用下列欄位,判斷連線是否為暴力破解存取嘗試:

  • login_status:追蹤連線是否成功登入。
  • anomaly_detected:根據連線是否超過 Cloud SQL 設定的登入嘗試次數上限,追蹤連線是否為暴力破解存取嘗試。
  • anomalous_connection_throttled:追蹤是否限制暴力破解存取嘗試連線。

您可以監控這項指標,找出各類連線事件的計數。下表列出指標追蹤的連線事件,以及對應的欄位值:

事件 說明
成功登入 成功登入執行個體,且系統未偵測到任何暴力破解存取嘗試。追蹤的欄位值:
          login_status: succeeded
          anomaly_detected: none
          anomalous_connection_throttled: false
        
登入失敗 系統偵測到您嘗試登入執行個體失敗,但並未嘗試暴力破解存取權。追蹤的欄位值:
          login_status: failed
          anomaly_detected: none
          anomalous_connection_throttled: false
        
偵測到蠻力登入嘗試 (未受到節流) 登入失敗次數超過 Cloud SQL 設定的登入嘗試次數上限,因此系統判定為暴力破解存取嘗試。連線未受到節流。追蹤的欄位值:
          login_status: failed
          anomaly_detected: brute-force login
          anomalous_connection_throttled: false
        
偵測到蠻力登入嘗試,已限制登入次數 登入失敗次數超過 Cloud SQL 設定的登入嘗試次數上限,因此系統判定為暴力存取嘗試,並限制登入。追蹤的欄位值:
          login_status: failed
          anomaly_detected: brute-force login
          anomalous_connection_throttled: true
        
偵測到暴力破解存取嘗試後成功登入 (未受到節流) 在系統判定連線為暴力破解存取嘗試後,成功登入執行個體。連線未受到節流。 追蹤的欄位值:
          login_status: succeeded
          anomaly_detected: brute-force login
          anomalous_connection_throttled: false
        
偵測到並限制暴力破解存取嘗試後,成功登入 在系統將連線識別為暴力破解存取嘗試並加以節流後,成功登入執行個體。追蹤的欄位值:
          login_status: succeeded
          anomaly_detected: brute-force login
          anomalous_connection_throttled: true
        

限制

  • 如要使用暴力破解防護功能,維護版本至少須為 MYSQL_$version.R20250531.01_23。詳情請參閱「執行自助式維護」。
  • 暴力破解防護功能僅適用於 MySQL 5.7 以上版本。

後續步驟