基于未知惡意代碼檢測的APT防御
對于我們來說,那些肯定會打開,打開以后肯定會中招的郵件,我們該怎么去檢測,特別是檢測那種未知的惡意代碼,作為安全從業(yè)者,我們有責任幫助用戶盡快走出這個困境。
從技術(shù)層面來講,APT攻擊可能用到我們所有已知、好用的攻擊技術(shù)。包括但不限于例如掃描、釣魚、社會工程欺騙獲技術(shù)取信息,利用暴力破解、嗅探、中間人攻擊、緩沖區(qū)溢出、XSS、CSRF、拒絕服務、ARP欺騙等等。更大膽的猜測是,APT攻擊更有可能跟真實的企業(yè)間諜配合。總之,APT攻擊手法將無所不用其極。
由于APT的特性,需要從多層次角度來防御APT攻擊。多層次需要從網(wǎng)絡(luò)層、流量協(xié)議內(nèi)容做檢測,然后主題層從文件、日志、行為去做檢測。我們更需要從多種惡意對象去做檢測,基于深度內(nèi)容檢測的惡意文檔中可能drop出惡意的exe文件,惡意exe可能又會產(chǎn)生cnc ip和通訊協(xié)議等,這樣我們又可以在流量中檢測那些惡意的元素,這樣就能夠在中招后放入安全設(shè)備后的情況下,依然有機會檢測到該APT攻擊。
在新的安全形勢下,防御的目標、防御的對象、防御的理念都發(fā)證了變化。新一代的防御產(chǎn)品可能演化為多維度、多角度的一體化產(chǎn)品,也可能演變?yōu)槎鄠€縱深防御的獨立產(chǎn)品。
一般的攻擊事件中,例如IPS報告了攻擊事件,但往往是告訴了該用戶IP接收到了該類型的數(shù)據(jù)報文或者是文件,但是用戶是否是真正中招沒有辦法獲知。那么我們聯(lián)合比如沙盒技術(shù),分析出行為,分析出木馬用到的網(wǎng)絡(luò)協(xié)議以及cnc ip. 那么我們就能不僅告訴用戶哪些用戶或者是機器遭受了攻擊,更能告訴用戶中招了沒有,以及它做了什么壞事,甚至還可以幫助用戶自動清理受感染的機器。
大數(shù)據(jù)處理需要一個支點,這個點就是對事件/攻擊準確定性的一個點。有了這個點,大數(shù)據(jù)處理就能依據(jù)這個做關(guān)聯(lián),做深度分析,更能做到在過去的流量中找出更多的蛛絲馬跡
針對前面提到的我們對APT感知能力比較差的4個原因,我們分別給出解決方案。1、針對定向攻擊,我們廣布點,檢測到的機會就越多;即使是單點,也要有很強的捕獲能力。2、APT攻擊會針對某些安全產(chǎn)品進行攻擊,因為客戶端軟件往往可以被攻擊者獲得,而且容易逆向。應對的方法是做設(shè)備,提高攻擊者的成本。3、APT利用文檔攻擊,那么我們就要有強有力的文檔解析能力,這種能力對產(chǎn)品的性能提出了強烈的挑戰(zhàn)。4、APT攻擊包含零日和特馬,所以我們必須要具備未知惡意代碼檢測能力,這是一個高對抗性的事,需要長期巨大投入??傊瑧獙Ω兄芰Σ钭顬殛P(guān)鍵的就是要具備快速的未知惡意代碼檢測能力。
我們把未知惡意代碼分為兩類,一類是未知的木馬、特馬、病毒、后門、間諜軟件等等,未知的意思就是說當前的主流軟件查殺不到。第二類就是利用未知漏洞的惡意文檔,也是零日。我們就是要想方設(shè)法檢測這兩類未知的代碼。檢測思路是:
1、從攻擊手法上去檢測,而非基于簽名。為了得到控制權(quán),有些攻擊在手法上很難有較大的變動,例如堆棧緩沖區(qū)溢出漏洞,利用的技術(shù)無非幾種。
2、從動態(tài)行為分析上去檢測而非靜態(tài)。動態(tài)行為分析不僅能告訴用戶是不是惡意代碼,更能告訴用戶該惡意代碼進行了哪些惡意操作,為用戶的下一步應對提供重要有價值的參考。
3、從內(nèi)容上檢測,而非流量上。因為APT的惡意負載都在內(nèi)容里面。
4、檢測APT攻擊更要使用智能啟發(fā),大數(shù)據(jù)分析。從全局角度把握APT攻擊手法、特性的變遷,才可能在新一輪的貓和老鼠的游戲中勝出。
還有很重要的一點,要把快速鑒別未知惡意代碼的能力交給用戶。在APT時代,安全廠家獨自作戰(zhàn)變得非常困難,必須緊密聯(lián)系用戶。廠家需要用戶設(shè)備的計算能力,用戶需要安全廠家的應對分析能力,用戶和安全廠家都是APT防御體系的重要一環(huán)。
對APT正面的防御就是在入口流量中去實時的檢測惡意內(nèi)容的負載,檢測對象包括:文檔、程序、URL、HTML、壓縮包、郵件等等。我們第一個重要的思路是基于攻擊手法的無簽名算法。文檔數(shù)據(jù)到代碼過程的攻擊手法識別,上面已經(jīng)講到過,例如堆棧緩沖區(qū)溢出漏洞,要讓數(shù)據(jù)變成代碼執(zhí)行必須要有的一些手段是逃不脫的。惡意文檔中的SHELLCODE也是避免不了的,所以給我們的檢測提供了一些依據(jù)。 當然,APT攻擊中往往嵌入EXE可執(zhí)行文件,在我們捕獲到的真實APT樣本中,有一半以上的APT文檔樣本都帶有各種加密/編碼的惡意的可執(zhí)行文件。有人可能會問,APT的攻擊者為什么會在攻擊樣本中嵌一個exe文件,讓我們有了這個檢測的方法。其實原因比較簡單,就是很多被攻擊的網(wǎng)絡(luò)是隔離的,只有嵌入文檔中,才有機會被一同帶入隔離的網(wǎng)絡(luò)運行起來。
第二個思路是基于動態(tài)行為分析技術(shù),所謂知己知彼,百戰(zhàn)不殆。了解了程序的一舉一動,是否惡意就比較好判斷了。
利用已知可發(fā)現(xiàn)未知,我們做過測試,對于已有十幾萬個真實文檔攻擊樣本,基于無簽名算法我們的檢測率為98%以上。我們部署了一系列的用戶真實環(huán)境,利用已知的漏洞發(fā)現(xiàn)了未知木馬和未知病毒攻擊。例如6月8號,我們預警了利用PDF漏洞的奈特幣木馬來襲。該攻擊利用了4個老的PDF漏洞,進行了變形,當前各大殺毒軟件都查不出來奈特幣木馬。
在實際的環(huán)境中,我們利用基于攻擊手法的無簽名算法和基于動態(tài)行為的分析技術(shù),成功發(fā)現(xiàn)了未知木馬和未知病毒攻擊。例如5月份,我們預警了新一波針對銀行金融和運營商的攻擊,我們在文檔中檢測到SHELLCODE的利用,里面用到的木馬也是當前各大殺毒軟件都查不出來的。
APT事件接連不斷,攻擊者已經(jīng)遙遙領(lǐng)先于我們好幾年了,防御方已經(jīng)輸在了起跑線上,我們還需要加倍努力。