Truffle Security 公佈了其對 GitHub 程式碼庫中洩漏憑證的分析結果。在掃描了包含 580 億個檔案的 224 億個程式碼庫後,他們識別出 543 萬個仍然有效的唯一憑證(令牌、金鑰和密碼)。這些有效憑證在程式碼庫中至少保留了一年,因為該研究使用了去年 8 月 7 日的 GitHub 快照,並且憑證有效性檢查(透過對 API、網路服務和主機的測試呼叫實現)於今年 7 月底執行。
憑證洩漏的中位數時間估計為 784 天,其中最早的仍然有效的存取密鑰可以追溯到 2009 年。在 GitHub 啟用其預設的敏感資料和存取權杖阻止機制(該機制會在推送請求期間檢查洩漏情況)後,大約有 200 萬個有效憑證被放置在程式碼庫中。儘管實際的過濾機制將可識別憑證的洩漏量減少了大約一半,但由於這些憑證以當前保護機制不支援的格式放置,因此未能被檢測到。
事實證明,GitHub 可以成功偵測到 GitHub、AWS、Slack、SendGrid、Stripe 和 GCP 等常用服務的令牌洩露,但會忽略程式碼中遺留的資料庫連線參數、Google API 存取金鑰和私鑰。預設情況下,GitHub 不會阻止資料庫連接參數和私鑰,以避免誤報。 Google API 存取金鑰之所以未被阻止,是因為它們帶有 AIzaSy 前綴,類似於用於整合到網頁中的 Google Maps 公鑰。
在已發現的無效憑證中,絕大多數是與提供撤銷機制的服務關聯的存取權杖和金鑰。例如,在 101886 個 NPM 令牌中只找到一個有效令牌(0.35%),在 30437 個 Hugging Face 令牌中找到 15 個有效令牌(0.05%)。 Stripe 金鑰的存活率為 4%,AWS 為 8%,GCP 為 8%,Slack 為 2%,GitLab 為 0.64%。作為對比,在偵測到的 12985 個 PostgreSQL DBMS 連線參數中,有 11465 個(88%)仍然處於活動狀態;在偵測到的 2421 個 MySQL 連線參數中,有 1806 個(74%)處於活動狀態;在偵測到的 126963 個 Google,有 63 個帳戶個(54%)處於活動狀態;在偵測到的 3790 個 Docker Hub 令牌中,有 1244 個(33%)處於活動狀態;在偵測到的 22800 個 SendGrid 金鑰中,有 9189 個(40%)處於活動狀態。
先前,研究人員檢查了透過 Hugging Face 分發的約 7.5 PB 的 AI 訓練數據,並在其中發現了 221 個有效憑證。
來源: opennet.ru
