压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

陸立新:計算機病毒沙箱分析的優勢和挑戰

陸立新:首先感謝大家能一起跟我分享我在反病毒工作當中的經驗,謝謝主辦單位的邀請。今天我跟大家分享的主要是沙箱方面的,我盡量講得容易一點,沙箱的技術含量確實比較大,在座很多都是年輕人,肯定理解起來也不會有問題。最后我會留出一點時間來我們互動,大家可以問一些問題,多深的問題都可以。

2   陸立新

我先介紹一下,我跟病毒還是有一點緣分的。記得在1992年的時候,我參加的第一份工作是在一個大學里面管計算機的實驗室,大概有100多臺機器,還有幾個教授的機器。在北美找到一份工作不容易。可是沒有工作兩周那個計算機就中毒了,當時是中的是Stone病毒。當時我就開始著急了,在那里修復那個病毒,結果越修復那個感染越多,原因就是因為我當時沒有注意到那個小的傳染,最后忙了一天以后,發現開始感染的是兩臺機器,最后是20多機器。結果沒辦法,把整個實驗室關閉了三天,向學校的計算機中心,請求他們來幫忙。

那個時候我就覺得病毒這個玩意兒挺厲害的,為什么可以有這么大的影響呢?我覺得應該搞清楚。后來我就找了一本書,可能大家也知道那本書,Little Black Book of Computer Virus,好像翻譯成中文了,是一個比較權威的書,教人們怎么寫病毒,病毒到底是怎么回事。那個時候的機器是286、386,操作系統是Dos。但是病毒的理念很清楚,而且病毒寫得體積很小,很強。從那個時候,如果你們有興趣的話,我建議你們找那本書看看,現在在網上可以下載,不用花錢了,有PDF文檔,是很好的一個啟蒙的一本書。當然不是鼓勵大家去寫病毒,但是對于病毒的入門了解,我覺得是很有用的一本書。那個時候我就開始對病毒特別感興趣,就想把它搞清楚,這個東西很厲害。

1998年的時候我有個機會在美國硅谷創立第一個創業公司,做病毒分析。那個時候我就在想,病毒越來越多,每年都在增加,那個時候的病毒大概是6萬到8萬,所以抽取病毒的特征碼進行掃描是足夠的。但是我那個時候想病毒的發展速度來看,將來的特征碼肯定是不夠的。我想了一個辦法,就是利用在終端的行為分析建一個程序,注冊到系統里面。觀察每一個調出來的程序,看他的行為,如果行為不好,馬上把它中斷。那個時候我做的行為分析程序也可以說是全球比較前沿的,屬于一種實驗性的。后來那個公司2003年的時候賣給了微軟。之后我又到了硅谷的另外一家公司,就是我在做行為分析程序的時候發現會產生大量的誤報,就是你在監測另外一個程序運轉的時候,你要在他破壞你的系統之前終止他,在他破壞之前那個行為又沒有足夠的證據,所以就會經常產生一些誤判。后來我就想如果我讓一個程序在一個封閉的環境下完全的執行,那么我可以得到充分的證據去判斷他就不會誤報。所以我就想到了一個沙盒的方法,那個時候我做沙盒的時候,可能全球還沒有幾個做沙盒的,我是2003年開始做的。到2009年的時候就賣給了一家公司,又創建了另外一個公司,叫做ValidEDGE,就是把終端的沙盒在微軟的VC上面做,后來就做到Hypervisor上面去,有很多好處,可以同時執行,增加Performance。可以加速crash,就是病毒分析完了以后要還原,通過Hypervisor的方式很快,那個公司做了三年,賣給英特爾McAfee,后來我又專門領導一個團隊做ATD。現在看來沙箱也有很多問題,每個反病毒公司都有沙箱,中國的反病毒公司也有。但是現在看來沙箱也有很多弱點,今天我要講的就是沙箱的好處和不足的地方,我下一步還要創辦公司,因為沒有辦法,這個問題還沒有解決。

什么叫做病毒沙箱?實際上很簡單,就是把病毒放在一個比較安全的地方,放到一個分割的地方讓它來執行,執行完了以后看它的行為,它到底做了一些什么事情。凡是屬于病毒的沙箱都有一個目的,就是要得到他的行為,得到他的行為一定要監控那個系統的執行,做一個記錄,所以一定要有一個模塊。而且沙箱一定要有一個保護層,就是保護病毒執行的時候不會損壞其他的東西,這些都是起碼的。所以一個沙箱,作為病毒的沙箱最起碼要有這一條,要有一個封閉的系統,要能夠保護他。要有一個模塊能夠監控他,記錄他執行做了一些什么操作。拿到這個行為以后進行一種分析,看看到底是不是一個病毒。

這是世界上的各種沙箱結構,下面有一個虛擬層,虛擬層上面有很多的VN,一個VN就可以裝一個OS,裝一個操作系統。對于病毒來說,這個操作系統跟終端的操作系統一模一樣,病毒在里面執行。執行的過程當中,你有一個記錄他行為的模塊在里面,最后產生一個行為報告,那個報告經過分析以后再做出決定,這是不是一個病毒,為什么是一個病毒,是根據什么判斷的,就是這么簡單。

說起來簡單,要做起來也不是很容易。監控器怎么樣協調,沙箱怎么樣做成跟終端一模一樣,都有很多技術含量在里面。沙箱有什么好處呢?剛才我說了,你要是這個病毒用特征碼掃描的話,一定要預先得到那個特征碼,要是得不到那個特征碼的話肯定沒辦法,但是沙箱就不需要這個。另外一個就是如果你用模擬性的特征碼的話,有可能會漏報,但是沙箱不會,會增加檢測力。從行為分析上來說,沙箱的好處就是能夠得到所有程序執行的過程,所以分析起來比較方便。還有一個就是沙箱可以戰勝一些病毒,像加密、打包,那個沙箱可以戰勝這個技術,沒關系,它都可以做。還有沙箱可以幫助實驗室的人,實驗室的人要是手工做反測試病毒的話是很困難的,但是用沙箱很快就可以得到。

沙箱有什么不足的地方?現在看來沙箱有很多不足的地方。第一個不足的地方就是沙箱比較慢,因為你總要等到那個病毒執行完了以后,他執行完了以后你才能夠得到結果,才能夠分析是不是一個病毒,這個過程一般比特征碼掃描要慢得多。第二個就是沙箱需要一個監控儀,那個監控的東西要加到系統的底層去,你要改變系統的話,就很容易被病毒檢測到,這是一個很不足的地方。第三個沙箱不管你怎么做,環境資源總是有限。比如說沙箱在模擬一個硬盤的時候,你可能會把它模擬成20G或者40G,你模擬太大了的話,整個就容不了。在市場上面要買一個新機器的話,現在買一個40G的硬盤都買不到。那就是說,病毒完全可以檢測到你這個是不是在沙箱里面,如果病毒檢測是在沙箱里面運行的話,他完全可以不運行或者假運行,提供一些假情報給你,那你沙箱就完蛋了,所以監控和環境那一塊是很容易被病毒監測到的。

還有一個病毒可以檢測到時差,一個真正的機器在沒有虛擬化之前,它的時間曲線是比較平滑的,但是你看看虛擬層上面支持了十幾個、二十個或者六十個虛擬機的話,它的時間是一種跳躍性的,這個沒辦法避免得了。那種跳躍性的時間就可以被病毒利用來檢測,這個也是沙箱的一個很致命的弱點。還有一個致命的弱點就是,有一個沙箱你要病毒的文件傳進來,然后你在運行。但是現在我們發現,很多病毒為了抵御沙箱的分析,他根本就沒有文件,他從來不以文件的形式存在。那你沒有文件的話,比如說他在內存里面執行完了就完了,什么也留不下來,那你怎么辦?你沒有什么東西送到沙箱里面去,當然也沒辦法去激活他,也沒辦法運行,這是沙箱一個沒有辦法解決的問題。

還有我們發現有些新的病毒,它本來是一個病毒,把它分成好幾塊。第一塊是一個很小的一塊,叫做頭塊,頭塊什么都不干,等到尾塊,后來的三四塊到了一個地方,才把它拼湊起來執行,這個沙箱也沒辦法。弄到第一塊以后,一檢測什么行為都沒有,第二塊、第三塊、第四塊、第五塊在什么地方呢?可以加嵌到圖片、Video、電影的文件里面,這樣的文件單獨要測試什么也沒有,所以你也不知道后面那塊什么時候來,這個沙箱也沒辦法。

總體來說,我們發現沙箱的能力還是有限,而且攻擊沙箱的那種技術病毒越來越多。我們今年就看到很多,像這種根本沒辦法出現文件的,還有分成好幾塊的,我估計明年、后年你可能可以看到大量的病毒沙箱對它就沒有辦法了,所以沙箱存在一個很大的挑戰。現在廠家也做了很多努力,比如說一個努力就是把沙箱弄到云端去,在云端里面就沒有什么資源的限制,有些機器根本就不需要在虛擬方面,也可以跟其他的產品結合起來,這是一個方向,我們現在可以看到很多沙箱移到云端去了。還有一個就是把那種監控的程序不做在OS,做在底層,做在虛擬層里面。對于VN的OS里面什么也沒有改變,病毒也沒有辦法檢測,從那個角度上是沒有辦法檢測的。這兩個方向目前都有公司已經在做,而且也可以說是他們的主流,做得不錯。還有一個就是在應用方面,沙箱現在很多用在安全操作團隊里面,或者是沙箱跟其他的產品綁在一起,像下一代的防火墻,下一代的IPS,還有就是沙箱的分析和大數據的分析結合起來。沙箱的分析是比較細的,是比較具體的,大數據是宏觀的,是網絡方面的。把這兩個方面結合起來,這也是一個很大的方向,這是在運用方面。所以我們現在可以看到,沙箱在很多應用方面也在往前推。但是不管怎么說,我們剛才說到沙箱挑戰性的東西還是沒有辦法解決,所以將來一兩年之內我估計這是面臨的很大的問題。

下面我留了一些時間我們可以互動一下。

 

潘柱廷:您剛才說的那本書是什么書?

 

陸立新:Little Black Book of Computer Virus,小黑本。那本書教你怎么樣寫啟動盤里面的病毒,還有一些原始的Dos病毒,實際上這些病毒都是很強的,特征特別強的,到現在還有用。當然我不是鼓勵大家去寫病毒,但是你要是作為一個反病毒的工作者,你不知道怎么寫病毒的話,你的知識是不夠的。我也寫過病毒,但是我從來沒有去釋放,你要是說你從來沒寫過病毒,你說你是一個很棒的反病毒的有時候很難說得過去。我覺得你要了解對方,你才能夠戰勝對方,兩方面的知識都需要。當然現在來說,你不一定要寫那種病毒,但是其他的病毒,那個原理都差不多。我們說為什么一個小程序可以叫做病毒呢?因為從本質上來說,你寫一個病毒和寫一個小的App是差不多的,什么語言都可以。但是病毒有一個特點,這是病毒最起碼的一個特點,沒有這個特點就不叫病毒,就是它一定要有傳播引擎,要能夠自動傳播。就跟人體病毒一樣的,人體病毒你從來不說誰想得病去注入一個病毒,不會的。計算機病毒就是模擬了人體病毒可以自動傳播,所以每一個病毒都有一個傳播引擎在里面。那本小書很厚,但是道理講得很清楚。

 

提問:陸老師您好,您今天主要講沙箱這個方向,正好我也是以前的工作經歷當中有4年的從事沙箱開發的工作,我遇到一個比較苦惱的問題,就是沙箱的應用領域比較少,尤其在我們互聯網企業里,你做的這個產品能夠為你整個大產品帶來多大的價值,這個東西很難體現。我想問的就是沙箱在以后的發展過程當中還有什么領域可以應用的?

 

陸立新:謝謝你的提問,沙箱這個東西當時出來的時候,主要是幫助解決一些特征碼掃描沒辦法鑒定的一些新病毒。過去我們做特征碼的話,總是要通過逆向反饋,別人去檢測才能夠抽取特征碼,才能夠確定這個程序是不是病毒。但是那種方法是手動的,很慢,而且要求技術含量,人的經驗要很多才能做得了。但是如果通過沙箱的話,你就可以讓它放在那里執行一下,三秒鐘、五秒鐘或者五分鐘出來以后,你一看他的行為,基本上就可以判斷這是一個病毒。所以當時是幫助這種搞研究,搞后臺工作的人的。但是說它的應用方面,除了幫助檢測以外,因為現在的病毒,像英特爾Lab每天能夠得到的大概是25萬到50多萬的病毒新樣本。這樣的話,你要去抽取特征碼檢測他的話,這個簡直不可能。那你就要采取一些辦法,像沙箱這樣的。但是沙箱作為單獨的使用,確實是很有它的局限性。像英特爾他們做的,就是把這個沙箱綁在防火墻、IPS、Web Gateway這些產品一起,當這些產品你看到了一些下載的文件,比如說Web Gateway,就是監測APP流程的,如果發現有可執行程序,用掃描又沒辦法確定,就把它扔給沙箱,三五分鐘已經回來的結果證明是壞的,他就自動的抽取特征值,就可以自動的防止,所以它的應用是綜合捆綁在其他的產品一起,是這種應用。

 

提問:剛才您提到了沙箱扔進去三五分鐘,是不是意味著沙箱的Performance是很難支持這個檢測的?適合于做特征提取的這樣一個工具嗎?

 

陸立新:現在的特征值跟過去的有點不一樣。過去的特征值就是通過手工研究以后取出的,那個特征值取的速度比較慢,現在的特征值計算整個Value,那個計算的速度很快。沙箱在這個方面主要是起一個鑒定作用,決定這個是不是,每一個程序在執行的過程當中一般都要幾秒鐘,你要把它放在那里執行,得出來結果。得出來那個行為以后你要進行分析,所以這個還要花時間,一般都要最少五分鐘,有些廠家說我們不需要五分鐘,只要一分鐘,那個實際上是不太現實的,一般都要三五分鐘,有的時候要更長。屬于那個病毒有一點故意的拖長的話,你還得要等長一點時間。所以沙箱做在線的還是很有困難的,那個沒辦法做到。

上一篇:滴滴顧孔希:企業安全檢測能力建設實踐

下一篇:對話騰訊馬斌 解讀互聯網+安全戰略