Security Center通過即時檢測 GitHub 平台公開原始碼中存在的阿里雲帳號或 RAM 使用者的存取金鑰 AccessKey(以下簡稱 AK)資訊,識別 AK 是否泄露並提供警示。本文介紹 AK 泄露檢測的原理及處理方法。
功能原理
適用範圍
-
檢測平台:僅支援檢測 GitHub 平台公開原始碼中的 AK 泄露,暫不支援其他代碼託管平台。
-
檢測對象:阿里雲帳號(主帳號)及 RAM 使用者的 AccessKey(包括 AccessKey ID 和 AccessKey Secret)。
通知方式
Security Center根據泄露的 AccessKey ID(以下簡稱 AK)和 AccessKey Secret(以下簡稱 SK)是否有效,採用不同的通知方式:
只有 AK 和 SK 同時泄露時,第三方才可能利用該存取金鑰,進而擷取該帳號下所有資源的控制權。
|
通知條件 |
通知方式 |
|
AK 泄露,無論 SK 是否有效。 |
AK 泄露檢測頁面警示 |
|
SK 泄露且有效 |
|
配置 AK 泄露警示通知
Security Center預設開啟 AK 泄露警示通知,可通過簡訊、語音、郵件、站內信等方式發送警示。
修改通知方式
-
訪問Security Center控制台-系統設定-通知設定,在頁面左側頂部,選擇需防護資產所在的地區:中國內地或非中國內地。
-
在 簡訊/郵件/站內信頁簽中,找到 訪問金鑰洩漏資訊,選擇需要的 通知方式。
AK 泄露風險較高,為及時接收通知,建議選中所有通知方式。具體操作,請參見通知設定。
添加通知接收人
預設僅帳號連絡人會收到通知。如需其他連絡人接收警示,可通過以下方式添加:
-
簡訊、郵件、站內信:
在基本接收管理頁面的安全訊息 > Apsara Stack Security安全語音總機地區,修改訊息接收人。
說明修改此處的訊息接收人後,會對Security Center的其他通知項同時生效,也會對 DDoS 防護和 Web Application Firewall等產品的訊息通知項生效。
處理 AK 泄露事件
收到 AK 泄露警示通知後,表示阿里雲帳號或 RAM 使用者的 AK 和 SK 資訊已外泄。請按以下步驟處理:
步驟一:手動處理泄露事件
Security Center不支援自動處理 AK 泄露事件,需要先在外部完成以下操作:
-
刪除或隱藏 GitHub 上的泄露內容:聯絡相關人員刪除或隱藏包含 AK 資訊的檔案、倉庫或代碼。
-
在 RAM 控制台處理泄露的 AccessKey:在確保核心業務不受影響的前提下,刪除或禁用已泄露的 AccessKey,並建立新的 AccessKey。具體操作,請參見刪除RAM使用者的AccessKey和禁用RAM使用者的AccessKey。
處理時請注意以下幾點:
-
禁用立即生效:在 RAM 控制台禁用 AccessKey 的操作立即生效,該 AccessKey 將無法再用於 API 呼叫,可立即阻斷基於該密鑰發起的操作。
-
禁用後仍可能收到警示:AccessKey 禁用後,雖然調用會失敗,但由於該密鑰的記錄仍然存在,Security Center可能繼續檢測到泄露風險並發送警示。如果確認該 AccessKey 已不再使用,建議在禁用後直接刪除該 AccessKey,以徹底消除警示。
-
業務影響評估與輪換策略:禁用或刪除 AccessKey 前,請先核實該密鑰是否仍被業務依賴(例如用於 K8s 叢集等服務的憑據配置)。如果業務正在使用該 AccessKey,建議先為 RAM 使用者建立新的 AccessKey 並替換到相應的業務配置中,驗證新密鑰可正常工作後,再禁用並刪除舊的 AccessKey,避免影響線上服務。
-
無法輪換時的臨時管控:如果因特殊原因暫時無法完成 AccessKey 輪換,可結合業務情況配置網路存取控制策略(IP 白名單),僅允許指定的業務 IP 發起訪問,作為臨時限制手段。
說明此處的 IP 白名單是指網路側的存取控制策略,與本文「處理 AK 泄露事件」中控制台內的警示白名單(加白名單處理方式,用於標記誤判事件)是不同的概念,請勿混淆。
-
步驟二:在控制台標註處理狀態
手動處理完成後,在Security Center控制台對該 AK 警示事件進行狀態標註:
-
單擊目標事件操作列的 處理,選擇以下處理方式之一,並單擊 立即處理。
|
處理方式 |
適用情境 |
|
手動刪除 |
已泄露的 AccessKey 不再繼續使用,已刪除。 |
|
手動禁用 AK |
已泄露的 AccessKey 仍需繼續使用,但需要臨時使其失效。選擇此方式後,可在 RAM 控制台重新啟用該 AccessKey。 說明
如果 AK 已在 RAM 控制台禁用,Security Center將自動同步 AK 的禁用狀態,AK 泄露事件狀態變為"手動禁用"。 |
|
加白名單 |
該事件為誤判或可以安全忽略。選擇後狀態變為白名單,事件進入已處理列表。 需要恢複檢測時,可從已處理列表進入 AK 泄露詳情頁,取消白名單即可。 |
查看 AK 調用記錄
通過查看 AK 調用記錄,可以確認 AK 泄露後是否被攻擊者利用,從而瞭解泄露的影響範圍。下文介紹通過Action Trail服務按時間軸查看 AK 呼叫事件的操作步驟。
如需查看 AK 訪問某個雲產品的調用記錄,可以使用Action Trail的 AccessKey 審計功能。具體操作,請參見 查詢 AccessKey 日誌。
-
在 Security Center控制台 AK 泄露檢測頁面,擷取需要查看的 AccessKey ID。
-
登入Action Trail控制台。
-
在左側導覽列,選擇 。
-
在頂部導覽列選擇要查詢事件的地區。
-
選擇類型為 AccessKey ID,輸入待查詢的 AccessKey ID,並選取查詢時間段。
-
查看該 AccessKey ID 的呼叫事件列表,單擊目標事件操作列的查看詳情,可查看事件的詳細記錄資訊。
關於管控事件參數的更多資訊,請參見 管控事件結構定義。
在查看調用記錄時,可參考以下思路排查攻擊行為並溯源:
-
內網 IP 調用源排查:如果發現 AK 調用來源 IP 為阿里雲內網 IP,可能是由於雲上主機被入侵併淪為肉雞所致,建議立即排查相關雲主機的安全狀況,並加強主機側防護。
-
惡意 RAM 使用者建立溯源:如果懷疑攻擊者通過泄露的 AccessKey 建立了惡意 RAM 使用者,可通過Action Trail或警示郵件中的詳細資料(異常 AccessKey、IP、時間)確認該 RAM 使用者具體是由哪個 AccessKey 通過 API 建立的,並區分是通過控制台登入建立,還是通過 API 呼叫建立。
-
警示介面類型與預期產品不一致:AK 異常調用警示中顯示的調用介面類型(例如
Ecs:DescribeInstances)可能與預期涉及的產品(例如 OSS)不一致。請以警示中實際顯示的介面為準,在Action Trail中查詢對應產品的調用記錄,避免因查詢了錯誤產品的日誌而遺漏風險。 -
風險評估邊界:如果調用記錄顯示攻擊者僅通過 API 查詢了資源資訊(例如僅調用了
Describe類介面),通常不會直接導致進一步的安全入侵,可據此合理評估此次泄露的影響範圍。
持續關注 AK 異常調用
處理完 AK 泄露事件後,建議持續關注 AK 調用是否異常,防止類似事件再次發生,並在泄露發生時快速響應,縮小事件影響範圍。
調用介面欄位說明:調用介面指通過 API 使用 AccessKey 訪問的具體雲端服務操作。介面名稱格式為{產品首碼}:{API名稱},其中:
-
產品首碼:對應阿里雲產品名稱(如 Ecs→ECS、Oss→OSS、Rds→RDS)。
-
API 名稱:對應具體的 API 操作(如 DescribeRegions→查詢可用地區)。
常見介面名稱映射樣本如下:
|
介面名稱 |
產品 |
操作說明 |
|
|
ECS |
查詢可用地區 |
|
|
OSS |
擷取 Bucket 資訊 |
|
|
RDS |
查詢資料庫執行個體列表 |
從攻擊視角監測 AK 異常調用
Security Center基於安全攻防經驗和大模型,可檢測常見的 AK 調用異常。例如:調用 AK 的 IP 位址在近期發起過攻擊行為、該 IP 在雲上批量調用多個使用者的 AK、調用的 API 較為敏感且該 AK 出現過泄露等。當 AK 從非常用地區的 IP 調用敏感 API 時,系統將其識別為異常行為並觸發警示。如果確認警示為正常業務行為,通過Action Trail查詢該 AK 的調用記錄核實,確認後在警示詳情中將警示狀態標記為誤判。當前不支援配置信任 IP。
-
在左側導覽列,選擇。在控制台左上方,選擇需防護資產所在的地區:中國內地或非中國內地。
說明若已開通 Agentic SOC,請選擇。
-
將警示類型選擇為雲產品威脅檢測,查看是否存在 AK 異常調用警示。
說明如果存在 AK 異常調用警示,需要查看詳情,及時確認該 AK 調用是否為正常行為。
-
(可選)配置安全警示通知。
進入Security Center控制台 系統設定 > 通知設定 頁面,配置安全警示的通知方式,以便及時收到 AK 調用異常警示。免費版僅支援配置站內信通知方式。具體操作,請參見 通知設定。
監測阿里雲帳號調用 AK 等異常
Action Trail服務提供內建警示,可監控阿里雲帳號調用 AK 及 AK 異常調用。在Action Trail控制台啟用內建警示 AK 使用的異常頻率警示 和 Root 帳號 AK 使用檢測,以便在出現 AK 異常調用時收到通知。具體操作,請參見 設定事件警示。
基於歷史行為檢測 AK 異常調用
Action Trail服務提供的審計事件洞察(Insights 事件)功能,可基於歷史行為分析調用率異常的 AK,及時發現異常行為。開通並查看 Insights 事件的具體操作,請參見 通過Action Trail控制台查詢 Insights 事件。
使用建議
-
不使用阿里雲帳號(主帳號)AccessKey。
-
避免將 AccessKey 資訊寫入程式碼到代碼中,可通過配置環境變數的方式管理 AccessKey。更多資訊,請參見 憑據的安全使用方式情節。
-
使用私人的 GitHub 代碼倉庫管理代碼,或搭建企業內部代碼託管系統,防止原始碼和敏感資訊泄露。
FAQ
使用第三方 SDK 本地測試上傳檔案,是否會導致 AccessKey 泄露?
使用第三方 SDK 完成本地測試上傳檔案的流程本身不會直接導致 AccessKey 泄露。AccessKey 泄露通常是因為 AccessKey 以明文形式寫入程式碼在應用程式代碼或公用代碼倉庫中,隨後被他人擷取。建議採取以下措施:
-
刪除已泄露的 AccessKey 及對應的 RAM 使用者。
-
定期輪轉 AccessKey。
-
通過環境變數等方式管理 AccessKey 等憑據,避免在代碼中明文儲存。