GitHub賬戶被黑:舊漏洞導致弱金鑰大量留存

Dan Goodin發表於2015-06-12

又見歷史原因導致的安全隱患

在七年前開發人員發現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未來如何,我們拭目以待。不過我們衷心祝願這樣一個好的平臺越做越好!

相關文章