DNS(域名系統)是大多數互聯網服務核心,然而DNS中卻也存在漏洞。通常如果DNS出現問題的話,每個網站都可能發生故障,而且所有的電子郵件也將不知去向,總之,問題會很嚴重。你可能已經在很多媒體報道中聽聞過這件事,華爾街日報,BBC新聞,以及一些媒體界地位顯赫的人也在報道這則消息,甚至連SecurityFocus也不例外。具體來說,主要談論的是以下問題:
1 在很多平臺中都有一個漏洞
2 在很多平臺中都有完全相同的漏洞(設計上出現的漏洞總讓人很頭痛)
3 經過我們不懈的努力,終于得到了所有主要平臺的漏洞補丁,并且幾乎是在同一天。
4 這在之前并未發生過。所有的一切真正地得到了控制。
對于我們在漏洞問題上獲得的成就我感到相當自豪。我們有Windows,我們有Cisco IOS,我們有Nominum,我們還有BIND 9,而且當我們沒有BIND 8時,我們還有Yahoo--大家所知道的最大的基于BIND 8建設的網站,而Yahoo公開承諾將完全屏棄BIND 8。
CERT(Computer Emergency Response Team,是由美國聯邦政府資助專門研究計算機及網絡安全的組織,他們隨時提供最新發現的計算機及網絡安全問題,并提供一些解決方法)為我們的工作提供了很多詳細信息,并且我和Rich Mogull對于Securosis問題進行了全面的探討。對于普通讀者來說,你們可能想要獲取更多更完整的資料,不過這里所談的東西也有限,但我確實有些東西想告訴大家。
我們完成的工作真的是意義重大。
要強調的是我們!而不是我個人,因為我自己一個人是不可能完成這個巨大工程的。
首先要感謝的是Paul Vixie,一個大家所熟知的組織機構,長期以來維持著互聯網上最流行的DNS服務器。PAUL能夠將我們所需要的工程師聚集起來,共同解決這個問題。我們需要 Florian Weimer, 從歐洲遠道而來.我們需要David Dagon, Jinmei Tatuya, 以及Wouter Wijngaards. 我們還需要Microsoft, Cisco, Nominum, Neustar, 以及OpenDNS.Paul都做到了。
當然我們也少不了CERT的幫助。
我們進行了有趣的探討,雖然期間出現了很多分歧,但是慢慢地也開始達成很多共識。在對很多方法進行評估后,其中最好的方法也逐漸清晰出來,我必須承認,這讓PAUL著實有些尷尬。
DJB是正確的。在很多年前,Dan J. Bernstein就是正確的:源端口隨機化應該要在生產使用中成為每一個域名服務器必須具備的標準。
在我工作的過程中有一句這樣的話一直指導著我前行:運氣是設計的殘余物質。Dan Bernstein無疑是一個特別幸運的程序員,但是這也并非偶然。這位程序專家以一種十分自然的方式進行著他的系統工程,就像生命和呼吸一樣自然的方式,這是置身于混亂代碼中的我渴望的一種工作方式。從這點來看他是“幸運的”,他成功地讓自己免受那些幾乎從未遇到過的攻擊的襲擊。
而這才是真正優秀設計的標志,優秀的設計可以讓你免受那些你完全不知道的事物的困擾,所以我們正在部署這種優秀設計來提供各種信息。
為了讓大家能夠更好地理解這個修復補丁,我們可以這樣來理解,想象一下從匿名用戶到身份驗證用戶處產生的大量WINDOWS RPC,或者只是管理員。只要聯想一下WINDOWS XP SP2。從設計的角度來看,這像是一個大斧子,它能夠切斷所有攻擊面,而不需要說明原因。通過一個適當的修補程序,甚至連微乎其微的漏洞都能夠很容易隱藏,或者變得無關緊要。
當然,很顯然會有一些新的問題出現,一些最終將會被發現的問題。還是存在很多漏洞程序,這些漏洞程序不僅僅容易受到新的漏洞的攻擊,即使是對于那些存在多年的漏洞仍然沒有辦法。如果我們做出的所有努力能夠將那些困擾我們很久的BIND 8漏洞從互聯網中清除,如果我們能夠完全消除Joe Stewart于2002年制造的生日攻擊,如果我們能夠對于Amit Klein去年發現的Transaction ID Randomness開始作出一些努力,如果DJB多年前警告過我們的靜態斷口分配問題能夠解決,那么我們就獲得了巨大的勝利。
新問題之所以如此嚴重是有原因的,但是我認為理性的人應該會同意這樣的說法,那就是,即使只是舊的漏洞,都將成為互聯網安全的巨大威脅。所以,我想請問開放研究社區,假設我什么都沒有發現,假設這只是一個噱頭,只是想引起人們對JOE和AMIT以及DJB等問題的重視,以及給網絡掃描器一個透明的清晰的環境,讓人們知道可信的好的服務器是怎樣的。
Joe 和Amit 特別是 DJB做了一些讓我們難以置信的事情 ,我從中看到了最可怕的一面,但是他們的漏洞最終還是被修復了,并且至今還沒有出現問題。
對于那些不會作出這樣假設的人,我有一個請求,一個不尋常的請求,可能也是不合理的請求,但是我還是要問。
我要你們探索DNS,我希望你們能嘗試建立類似的漏洞,來找出可能出現的問題。也許我漏掉了一些東西,希望你們能把我漏掉的部分補充上來,那么我們就能盡快地解決它。真的希望你們能和我一起努力把所有問題都解決掉。同樣,我一直都想能夠讓我的家人安全地使用互聯網,我不奢望永遠的安全,我只要哪怕三十天。我已經盡自己全力去獲取有效補丁,不管是哪種平臺。但是代碼總是不能自身安裝。當我不在場的時候,希望你們能幫助我一起將所有這些舊的或新的漏洞從互聯網中清除,以保障公共論壇和IRC頻道的正常秩序。我們很好奇,我們想知道問題是如何產生的。但是當公眾需要哪怕一次修復這些漏洞的機會,從一個十分自私的角度來說,我還是有點希望我的thunder不會被完全清除。


