“軟體供應鍊始于開發者。社會工程和帳戶攻擊活動經常把開發者賬戶作為目标,是以保護開發者免受此類攻擊是確定軟體供應鍊安全性的第一步,也是最關鍵的一步。”當地時間5月4日,GitHub首席安全官Mike Hanley在部落格中公布GitHub新政策:在2023年底之前,所有在GitHub.com上貢獻代碼的使用者都需要啟用至少一種形式的雙因素身份驗證(2FA)。

盡管雙因素身份驗證為線上賬戶提供了重要的額外保護,但GitHub的内部研究表明,目前隻有大約16.5%的活躍使用者和6.44%的npm使用者對其帳戶啟用了增強的安全措施。
GitHub是全球數千萬軟體開發人員使用的代碼托管平台。Hanley寫道,“GitHub處于獨特的位置,僅憑GitHub.com上的絕大多數開源和創作者社群,我們就可以通過提高安全标準來對整個生态系統的安全産生重大的積極影響。”
保護開源軟體的安全仍然是軟體行業迫切關注的問題,尤其是在去年令企業和政府競相應對的全球計算機網絡重大安全威脅log4j漏洞之後。但是,盡管GitHub新政策将緩解一些威脅,但系統性挑戰仍然存在:許多開源軟體項目仍由無償志願者維護,縮小資金缺口一直被視為整個科技行業的主要問題。
雙因素身份驗證是什麼?為什麼GitHub認為帳戶安全和雙因素身份驗證很重要?
雙因素身份驗證概念圖
2FA(2 Factor Authentication,雙因素身份驗證),是指在秘密資訊(密碼等)、個人物品(身份證等)、生理特征(指紋/虹膜/人臉等)這三種因素中,同時用兩種因素進行認證。
Hanley寫道,“大多數安全漏洞并非少見的零日攻擊(Zero-day attacks,充分利用先前無人知曉的漏洞施展攻擊)的産物,而是來源于很多低成本攻擊手段,如社會工程(social engineering)、憑證盜竊(credential theft)或洩漏,以及其他很多為攻擊者提供對受害者帳戶及其所有資源的廣泛通路權限途徑。被入侵的帳戶可用于竊取私有代碼,或将惡意更改推送到這些代碼上。這不僅會将與受感染帳戶相關的個人群組織置于危險之中,而且會讓所有使用受影響代碼的使用者都暴露在風險環境下。是以,這種攻擊可能會對更廣泛的軟體生态系統和供應鍊下遊産生巨大的影響。”
這就是為什麼雙因素身份驗證可以成為保護關鍵業務系統的有效機制,因為這意味着如果不良行為者獲得了私人登入憑據,但利用它們要困難得多。
如果想要更直覺了解,那麼可以思考,隻用賬戶和密碼進行身份驗證會有什麼隐患?
在網際網路中,每天都有大量網站遭到黑客攻擊以緻有資料外洩,而這些資料中就包括使用者的賬号密碼。拿到賬号密碼後,黑客可以用它們嘗試登入其他網站,即“密碼撞庫”。
那麼為了防止密碼撞庫,網站就會采取更多手段驗證身份資訊,像GitHub推出的雙因素身份驗證、登入警報、裝置認證、防用洩露密碼等。
GitHub透露,2021年11月,一些未啟用2FA的開發者帳戶遭到入侵,導緻很多npm包(Node Package Manager,簡稱npm包管理工具)被入侵者接管,為此GitHub承諾在npm帳戶安全性方面投入更多資源。
GitHub認為,應對這種攻擊手段的最佳防禦措施就是對原有基于密碼的基本身份驗證手段進行更新。“GitHub已經朝這個方向邁出了一步,棄用了針對git操作和我們API的基本身份驗證,并要求在使用者名和密碼之外添加基于電子郵件的裝置驗證。2FA是下一道防線。”Hanley寫道。
在接下來的幾個月裡,GitHub将分享更多關于強制GitHub.com使用者更新到2FA的詳細資訊和時間表。