Python 套件索引庫PyPI已推出新的防護機制,有效阻擋透過密碼重置功能進行的域名復活攻擊,防止帳號被劫持。
PyPI 是 Python 開源套件的官方儲存庫,被軟體開發人員、產品維護者和企業廣泛使用來獲取 Python 函式庫、工具和框架。在 PyPI 上發布軟體的專案維護者帳號都連結到電子郵件地址,其中部分專案維護者使用自有域名的電子郵件。
當網域名稱過期後,駭客可註冊該網域並架設郵件伺服器,再透過密碼重置功能取得 PyPI 專案的控制權。這種攻擊手法可能引發供應鏈攻擊(Supply-Chain Attack),導致被劫持的專案散布含惡意程式的熱門 Python 套件,而這些套件往往會透過 pip 自動安裝至用戶系統中。
這類攻擊的典型案例是 2022 年 5 月的「ctx」套件遭受入侵事件,當時駭客植入了竊取 Amazon AWS 金鑰和帳號憑證的惡意程式碼。
為了解決這個問題,PyPI 現在會檢查平台上已驗證電子郵件地址的網域是否已過期或即將過期,並將這些有風險的電子郵件地址標記為未驗證狀態。
在技術層面上,PyPI 採用 Domainr 的 Status API 來監控域名的生命週期狀態,包括是否活躍、寬限期、贖回期和待刪除狀態等,進而判斷是否需要對特定帳號採取保護措施。當電子郵件地址的域名進入任何風險狀態時,該地址將立即被禁止用於密碼重置或其他帳號復原功能,即使攻擊者成功註冊了該域名,也無法利用此漏洞進行攻擊。
此新防護機制於 2025 年 4 月開始開發,初期進行了全面掃描以評估情況。該機制在 2025 年 6 月正式上線,並執行每日掃描。
自實施以來,已有超過 1,800個電子郵件地址被標記為未驗證狀態。
儘管這些防護措施無法全面防禦所有攻擊情境,但它確實顯著降低了攻擊者利用過期域名劫持 PyPI 帳號的風險。
PyPI 建議使用者新增一個基於公共域名(如Gmail或Outlook)的備用電子郵件,以防主要郵件服務中斷。此外,使用者也應啟用雙因素驗證(2FA),為帳號安全增添額外保障。
本文轉載自 BleepingComputer。