攻克Vista者說:防毒軟體沒有效果(轉)

BSDLite發表於2007-08-17
攻克Vista者說:防毒軟體沒有效果(轉)[@more@]出處:賽迪網

Q&A:偷竊軟體研究者Joanna Rutkowska講述她感興趣的一些電腦保安問題,比如rootkits的威脅,以及為什麼我們沒有做好應對虛擬機器技術的準備。

今年早些時候,Joanna Rutkowska在黑帽子簡報上引起了一陣騷動,她示範了用rootkit感染Windows Vista的方法,並且引入了Blue Pill這個新概念。Blue Pill使用AMD的SVM/Pacifica 虛擬技術來建立“百分之百檢測不到的惡意軟體”。

在採訪,Rutkowska談了她感興趣的電腦保安問題,偷竊軟體威脅的現狀,硬體虛擬化所帶來的風險以及為什麼防毒軟體業顯露不足。

“為了方便那些不知道你的讀者瞭解你,你可以做個自我介紹嗎?”

我是一名專致於盜竊技術以及系統入侵檢測的安全研究者,研究的內容包括核心 rootkits,偷竊軟體以及隱秘的網路通訊。我目前供職於一家總部在新加坡的資訊保安公司COSEING,居住在波蘭華沙。

“你第一次聽說rootkits是什麼時候?”

我一開始關注的是漏洞的發展,之後開始考慮我們得到“殼”後該做些什麼。當然我不是第一個想到這個的,所以我看到了很多基於Linux的rootkits,比如Knark或者Adore。我想那是在90年代末。之後,我開始考慮怎樣能大致檢測出那種惡意軟體。

“做一個攻擊性的rootkits有什麼價值?這不是方便那些壞傢伙們利用它嗎?”

把當前市場防毒軟體,尤其是防rootkit方案還遠遠不能防止或者發現系統被攻擊這樣的事實告訴人們是很重要的。換句話說,這是為了促使人們研發更好的防禦措施。

我不相信談論新的攻擊技術就是幫助那些壞人。畢竟,如果地球上只有一個人或者一個組織發現某個特殊攻擊的話,那就太奇怪了。我不覺得我是唯一一個發現這種技術的人。

“你如何防止洩漏?你釋出了漏洞的細節或者攻擊程式碼了嗎?為什麼發或者為什麼不發?”

目前由於我是COMSEING的全職員工,我遵守公司的保密政策。總的來說,COSEING主要對能用於客戶保護服務的研究感興趣。當然我們也想對整個資訊保安界的發展有一定影響。因此我們會透過在各種安全會議中釋出我們的成果,以便跟社會各界共享我們的一些研究成果。

根據行規,我們不釋出漏洞以及惡意程式碼,當然,除了我們確實覺得非常有必要讓賣主修正特殊問題的那種情況。

例如,我們認為公佈Blue Pill原始碼沒有什麼好處,因為這對開發反Blue Pill方案沒有任何幫助(跟一些人想得不一樣)。

“最近你對基於虛擬機器的rootkits很感興趣。這是一個合理的攻擊向量嗎?為什麼?”

最近Intel和AMD引進的硬體虛擬化技術非常強大。我個人認為,在主要的作業系統賣主能重新設計他們的系統,並阻止對它的濫用之前引進該技術還為時過早。

為了說明該虛擬機器技術將會被怎樣濫用,我開發了Blue Pill這個小程式——它建立一個硬體虛擬機器然後把正在執行的本地作業系統(啟動Blue Pill的這個系統)轉移到虛擬機器中,這樣它自己就成了所謂的管理程式。整個過程一眨眼就會完成(耗時少於1毫秒)而本地作業系統甚至根本沒有意識到它已經被轉移到虛擬機器中了。

只有本地的作業系統意識到虛擬機器技術的潛在威脅,並且擁有自己的系統管理程式,才能阻止Blue Pill以及其他此類惡意軟體的危害。實現這樣的系統管理程式並不費事,人們期望接下來出現的系統會實現它,但是我想我們還需要2,3年才可以看到此類技術。

“我曾經看到一位rootkit專家(Greg Hoglund)說虛擬機器技術只不過是實驗玩具並不是實際威脅。他說的不對吧?”

我想Greg指的是基於軟體虛擬化的rootkits,例如SubVirt,它是微軟研究院和密歇根大學聯合開發的。

這跟基於硬體虛擬化的rootkits是完全不同的,比如Blue Pill或者Matasano安全公司的Dino Dai開發的Vitriol。

坦白地說,我覺得基於Blue Pill的軟體沒有什麼理由不被用於發起真實的攻擊。當然我認為此類惡意軟體不會被用於蠕蟲病毒,而會是用於更精明的、有針對性的攻擊中。更進一步的,我認為我們很難檢測到它(前提是它實現了使用有強隱蔽性的渠道)。我敢打賭很多安全“專家”會斷言說這樣的惡意軟體“根本不在現實中存在”。然而事實上,它們將被悄悄地大量使用。

“微軟對你的針對Vista的攻擊作何反應?Redmond有人與你聯絡嗎?在公開之前,你跟他們談過嗎?”

我們決定首次公開攻擊的細節是在七月底新加坡的SyScan會議上(由COSEINC組織的)。在那之前,我們認為沒有聯絡軟體賣主(不是我們客戶的那些)的必要,因為問題是針對Beta 版的軟體,並且實現攻擊本身也需要攻擊者取得管理許可權。

在針對Vista的攻擊的陳述中,我討論了3種可能的解決方案。我也指出其中的一個方案——阻止使用者模式應用程式訪問原始硬碟扇區——實際上不是個好舉措,而且我解釋了我的理由。只是為了完整性的需要,我才把它作為一項可能的解決方案列舉出來。

令人吃驚的是,在數週前釋出的最新Vista RC2中,我注意到微軟實現的正是我並不推薦的這個方案,就我看來,這種方法只是暫時解決問題。

“你跟AMD討論過Blue Pill嗎?你認為應該怎樣保護系統不受此類攻擊?”

AMD從來沒有跟我討論過Blue Pill,並且,就我所知,他們也沒有跟COSEINC的任何人聯絡過。

想要防禦此類攻擊,有個取消虛擬化功能的很顯然的辦法,那就是在BIOS中進行相關設定。然而,不幸的是,我們現有的硬體中沒有此類選項。但我聽說基於Intel晶片的平臺上存在這樣的可能。

另一種方法,就如我上面提到的,就是在作業系統中植入系統管理程式。此種管理程式能夠阻止人們安裝另一個管理程式(比如Blue Pill)。

但是,這種方法實現起來還有很多問題。比如,有沒有可能第三方應用程式(比如VMWare)為了自己的目的而利用硬體虛擬化技術?如果可能,那麼如何把想要安裝自己的系統管理程式的合法程式與惡意程式(比如Blue Pill)區分開呢?如果不可能,那是不是就意味著所有未來基於硬體的VMM,比如VMWare,將不得不和他們自己定製的作業系統一起銷售,並且我們也不能再把它們當作一種應用程式來使用了呢?

還有,我們在保護此類作業系統提供的系統管理程式時也應當十分小心,沒有一些相關技術(像TPM或者DMA防護(AMD上的DEV))的人是不可能勝任的。

因此,對我來說實現一個相對簡單的防護措施,我們還需要至少2到3年。

“你測試過目前的那些rootkit掃描/安全工具嗎?你覺得哪種比較可靠?”

我前面說過,我覺得現存的防毒措施都不是很好,尤其是那些針對Windows平臺的。它們全都致力於找出“壞的”而不是確認系統處於“好”的狀態。

因此,我們看到防毒產品使用了相當高明的技術來解決各種各樣.exe-包以及區分被調查的.exe檔案是“好的”還是“壞的”。

類似的,大多數rootkit掃描程式都實現了各種各樣的檢測隱藏物件(比如隱藏的程式)的功能,而忘了還有不必建立程式的強大偷竊惡意軟體。此類軟體就沒有必要隱藏什麼東西。大約一年前,我就示範過一種“stealth-by-design”的惡意軟體。

我認為比較好的措施應該是對所有系統元件進行全面檢查,從檔案系統(數字證書檔案),到驗證所有記憶體中程式碼段沒有被修改(我在我的SVV掃描程式中部分實現了這些功能),並且檢查核心資料區的所有可能“動態聯絡區”。

後者不可能100%實現,因為沒有人知道所有的動態聯絡區,但是我們至少可以開始列舉它們。我相信聯絡區的數量對所有現存系統來說都是有限的。

換句話說,只有有限種方法來編寫任何特殊的II類惡意軟體(比如,按鍵記錄程式)。

II類惡意軟體被認為是不修改記憶體中的任何程式碼段的一種惡意軟體,只修改資料段(因此很難被發現)。不用說,II類惡意軟體確實存在。

不幸的是,即使我們開發了整體掃描程式,使它100%完善,並且我們也識別出了II類惡意軟體使用的所有的動態聯絡區,還是有我們無法檢測到的惡意軟體。

我把這些稱為III類惡意軟體,Blue Pill就是一個例子。Blue Pill甚至不會修改核心或者其他記憶體的任一位元組。因此無論我們如何徹底的檢查,我們也不會監測到它。我們只能指望檢測到些副作用,比如網路通訊或者透過適時地分析來發現一個系統管理程式。

使用強大的隱藏通道或者其他技巧,都能有效地防止它們被以上方法發現。但是即使不能監測到III類惡意軟體,我仍然認為應該有個好點的整體掃描程式,而不是使用傳統的只是試圖找到已知的“壞的東西”的反病毒產品。

“我們為什麼要警惕偷竊軟體?你認為這是一個大趨勢嗎?”

偷竊軟體是暗中攪亂作業系統,使之不能再被信任的一種方法。而關鍵問題在於,理想情況下(以惡意軟體開發者的角度),沒有人能夠知道系統到底有沒有被入侵。

就我個人來說,我認為討論它是否成為大趨勢是沒有意義的。這不是關於明年攻擊者們使用II類或III類的“Stealth by Design”惡意軟體(不建立額外的系統物件)發起有針對性地攻擊,會危害100個還是100000各公司的問題。而應該是關於我們是否意識到這些危害的問題。既然已經知道有可能開發出此類惡意軟體,我們就應該做點什麼來對付它。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-963278/,如需轉載,請註明出處,否則將追究法律責任。

相關文章