又見歷史原因導致的安全隱患
在七年前開發人員發現GitHub存在一個災難性的漏洞之后,GitHub已經關閉了數量不明的通過密鑰訪問的賬戶。
Github允許授權用戶登錄到隸屬于Spotify、Yandex和英國政府的公共倉庫賬戶中,而這些公共倉庫賬戶卻使用了由當時存在缺陷的Linux發行版本Debian生成的SSH密鑰,而這部分密鑰是不安全的——其密鑰的位數太少以至于可以枚舉導致暴力破解,分分鐘登錄這些存在威脅的賬戶中。
七年后,Debian社區的朋友們修復了bug并且提醒用戶取消舊的密鑰而重新生成一個。倫敦的開發人員Ben Cartwright-cox說,他發現了這一漏洞仍然存在于海量密鑰中,而這些密鑰因位數不足比較容易被人攻擊利用。
Cartwright-cox在周一發表的博文中稱:
“如果你剛剛或者正收到一封關于密鑰被撤銷的郵件,那請你務必仔細瀏覽并且確保確實沒有人攻擊你。如果你使用了存在問題的密鑰,你可能已經遭到了黑客的攻擊。”
密鑰數量有限?
Cartwright-Cox在GitHub上發現了大約94個包括Debian衍生缺陷的密鑰。3月份他向GitHub官方報告之后,才發現實際用戶數量要高得多。GitHub于上月撤銷了這些密鑰,目前GitHub官方沒有作出其他回應。
此外,Cartwright-cox發現了九個GitHub SSH密鑰bits數量存在嚴重不足。其中有兩個只包含256位,導致他能夠在不到一小時內克隆出密鑰,而剩余的其他7個密鑰都只有512位。
漏洞描述
下面我們看一下這個Debian的漏洞是如何導致枚舉的。
該漏洞可謂是十分亮眼。因為漏洞的存在,使得生成的SSH密鑰長度非常短。當生成OpenSSH密鑰的位數不足時,對于一個給定體系結構、密鑰大小和密鑰類型而言只有32767種輸出結果。攻擊者能夠使用相同方法找到弱密鑰,然后使用一些技術來獲取密鑰保護的賬戶。這一任務會在不安全Debian SSH 密鑰的幫助下獲得一個或者更多公共網站,比如這一個:
“如果我想折騰得動靜大一些,我大可去做我在博客中提到的那些事情,然后或許可以給GitHub他們一些警示(我已經給了他們機會的)。
想要制造這樣的問題可以如下進行:
獲取問題密鑰列表。其中包含了所有SSH密鑰的公共和私密部分,如果用戶有一個存在Debien RNG 漏洞的OpenSSH版本,然后得到列表中的每個密鑰,并嘗試登錄帶有密鑰的GitHub ssh。你使用密鑰最終會告訴你與之匹配用戶姓名是什么然后進行配對,比如加載我的密鑰便時會顯示"Hi benjojo! You've successfully authenticated, but GitHub does not provide shell access.",但如果我使用的是另一個存在缺陷的密鑰,則會顯示"Hi {user}! You've successfully authenticated, but GitHub does not provide shell access." ,這樣我就知道輕松知道我的目標用戶是誰了。”
用戶:快去更新密鑰和操作系統
Rapid7 的高級研究員及Metasploit框架的聯合創始人HD Moore表示(小編:Moore同志又在宣傳推廣他的MSF框架了):
"從技術上講,攻擊者甚至不需要私鑰來查看網站接受的用戶身份驗證。僅僅是公共密鑰和Metasploit模塊就能夠完成了。"
這個漏洞于2006年被發現,當時鑒于一些用戶提交的漏洞報告,Debian維護人員最終去掉了OpenSSL代碼庫的兩行代碼。而Debian的維護人員僅僅是去掉了Debian對于OpenSSH的依賴,因此這個存在于OpenSSH中的位數缺陷并沒有被修復,接下來的故事更戲劇化,Ubuntu在不知情的情況下也打包了這個存在缺陷的OpenSSH版本,所以這個漏洞又跑到了Linux的另一發行版本Ubuntu中,而在此后的20個月中,并沒有人發現這個從Debian跑過來的重大問題,而就在這20個月里,有一批數量不明的密鑰已經生成。
這個問題并不是一個小問題,因為這批數量不明的SSH弱密鑰還大量存在于Github中,補丁也只能保證從此刻開始新生成的SSH密鑰的安全性,想要完全解決問題,還需要用戶主動去撤銷那些在20個月內生成的存在缺陷的密鑰,并使用新的操作系統以生成新的密鑰。由此看來,想要徹底解決這個問題,任務量不可小覷。
小編語
最近Github可謂是多事之秋啊,先是被DDoS,然后又被爆出存在如此多數量的弱密鑰,大家都是碼代碼的,找個好點的托管平臺容易嘛!程序員何苦為難程序員!
不過上個月末才傳出Github已經宣布正在開發一個去中心化的產品——GitTorrent,據官方回復說,一來是為了防止被DDoS,二來也為了Github未來的發展。Github未來如何,我們拭目以待。不過我們衷心祝愿這樣一個好的平臺越做越好!