夏飛 夏元軼
摘要:國網江蘇省電力公司信通分公司基于虛擬執行技術的APT檢測模型,采用了最新的虛擬執行技術,對網絡內的APT攻擊進行監測和分析,幫助公司了解自身網絡的脆弱性,并采取有效措施。
一. 背景
如今,企業面臨著一個不斷演變的網絡威脅環境。最初的黑客攻擊是為了獲得影響力及自我滿足去攻擊媒體網站,或者使用DoS方式來中斷網站的服務;而現在已演變成為了經濟、政治等目的的攻擊。攻擊者能夠通過竊取知識產權來直接獲取利益,也可以入侵、竊取客戶的個人金融信息,更有甚者破壞對方的服務以至國家的基礎設施。動機的變化,同時也帶來了攻擊方式的變化。
從過去廣泛、漫無目的的攻擊威脅,在數年內迅速的轉化為針對受害者組織將造成嚴重后果的高級可持續威脅(Advanced Persistent Threat)。高級可持續威脅(APT)是由美國空軍的信息安全分析師與2006年創造的術語,一般來說,高級可持續威脅具備以下三個特點:
高級:攻擊者為黑客入侵技術方面的專家,能夠自主的開發攻擊工具,或者挖掘漏洞,并通過結合多種攻擊方法和工具,以達到預定攻擊目標。
持續性滲透:攻擊者會針對確定的攻擊目標,進行長期的滲透。在不被發現的情況下,持續攻擊以獲得最大的效果。
威脅:這是一個由組織者進行協調和指揮的人為攻擊。入侵團隊會有一個具體的目標,這個團隊訓練有素、有組織性、有充足的資金,同時有充分的政治或經濟動機。
此類APT威脅往往可以繞過防火墻、IPS、AV以及網閘等傳統的安全機制,悄無聲息的從企業或政府機構獲取高級機密資料。在2012年Verizon信息外泄調查報告中可以看到,2011年發生的重大信息數據外泄的受訪組織中,有59%是在相關執法機構告知后才知道信息外泄的情況。
Gartner在2012年的報告中說道:"越來越多的人同意APT攻擊是可以避開我們傳統的基于特征的安全檢測機制,并且存在與系統內的時間越來越長,無法被偵測出來。威脅真的發生了,你已經被入侵,只是你不知道而已"。高級可持續威脅(APT)已經成為當今公認最具威脅的網絡攻擊類型。
為了對APT有一個更好的認知,以更好的防護,我們對基于虛擬執行技術的APT檢測模型進行了研究。
二. 模型原理
2.1 模型技術原理
基于虛擬執行技術的APT檢測模型(簡稱AAS)通過新型的動態檢測和靜態檢測技術可以精確檢測通過網頁、電子郵件或文件共享方式試圖進入內部網絡的惡意軟件,包括零日攻擊及具有抗檢測能力的高級惡意軟件。當前的惡意軟件大多具備強大的抗逃避能力,而APT攻擊還可能使用零日攻擊的方式,傳統的防病毒引擎很難發現它們。AAS可以有效發現這些攻擊行為,幫助客戶有效的遏制由此帶來的風險,如敏感信息泄露、業務中斷等。
2.2 檢測原理
基于虛擬執行技術的APT檢測模型(AAS)除了集成傳統的反病毒引擎,還有集成了虛擬執行引擎。從不同的檢測深度來看,AAS的虛擬執行引擎分為輕量級虛擬執行引擎和系統級虛擬執行引擎。輕量級虛擬執行引擎實現快速檢測,系統級虛擬執行引擎實現深度檢測。這種互補性提升了AAS引擎的檢測效果。
2.3 基于文件格式的深入檢測技術
基于文件格式的深入檢測技術,是通過對文件進行解析,提取其中的關鍵部分進行惡意特征和惡意行為檢測。相對于直接將原始文件丟入引擎的做法,基于文件格式的深入檢測技術可以大大提高檢測效果。如從PDF中提取JS腳本、從SWF里面提取AS腳本,然后針對腳本進行惡意檢測,這使得檢測引擎的檢測效果大大提升。
2.4 輕量級虛擬執行技術
輕量級虛擬執行技術基于一個指令模擬器,可以將一段數據作為二進制指令流進行模擬執行,同時也支持對JS腳本進行模擬執行。通過觀察執行過程中的指令行為,實現對惡意軟件的檢測。這種技術的優點是執行速度較快,部分情況下可以應用到流式引擎中。但缺點在只能再指令、寄存器和內存級別進行模擬執行,是無法模擬完整操作系統的。因此在模擬過程中只能執行部分指令片段,對于大量依賴于第三方庫調用的指令序列則無法模擬。當然,輕量級虛擬執行本身就不是追求完整模擬整個軟件行為,而是從指令層面對惡意行為進行捕獲。
輕量級虛擬執行引擎可以作為一個普通的用戶態進程,跑在操作系統上。為了提高檢測性能,可以在用戶態跑多個輕量級虛擬執行引擎。每個引擎內部集成了一個指令模擬器,將引擎接收的數據放在模擬器里面進行模擬執行。通過模擬器對外的API接口,可以獲取或控制模擬器執行狀態和執行過程。比如讓模擬器單步執行、獲取當前模擬器執行指令EIP、獲取當前寄存器狀態等等。
在實際應用過程中,模擬執行的效率仍然遠低于簽名引擎,因此我們需要更多的技術來干預執行過程。而不能將所有的網絡數據統統放到模擬器中進行執行。一般做法是輕量級虛擬執行引擎真正開始模擬運行之前,還是要通過一些反編譯技術來做前置過濾。
2.5 基于二進制動態翻譯的系統級虛擬執行技術
相較于傳統沙箱,基于動態二進制翻譯的系統級虛擬執行技術則具有更多優勢。傳統沙箱一般是通過HOOK系統API的形式對惡意樣本的執行行為進行監控和惡意判斷。因為這種監控是API級別的,所以他只能監控到惡意樣本調用了哪些系統API,而這些API調用中間的山下文指令則不能進行檢測。而基于二進制動態翻譯的系統級虛擬執行技術,則是在指令層面對整個系統進行完整檢測。因此不但能夠檢測惡意樣本的關鍵API調用行為,還能夠檢測更多的惡意指令序列。比如一般虛擬機逃逸技術里面用到的特殊指令,則傳統沙箱是無法進行檢測的。
一個通常的系統級虛擬執行引擎的架構,我們可以看到虛擬機進程跑在主操作系統之上,這是一種完全的軟件模擬技術。這種架構的缺點就是執行速度慢,模擬出來的硬件性能和物理硬件的性能相比會低很多。最新的虛擬執行技術則更多的使用硬件加速技術,讓指令直接映射到物理硬件上。
新增的內核模塊在主操作系統中打開了一個通道,用來連接虛擬機和物理硬件,將虛擬機運行的指令映射到物理硬件上,以達到給虛擬機進程提速的目的。雖然這種架構提升了虛擬機的性能,但主操作系統仍然處于核心地位,虛擬機中的客戶操作系統對硬件資源的占用仍然受限很大。
為了讓客戶操作系統擁有更大的權限,出現了一種新的架構。新的架構在硬件和操作系統直接,新增一個薄薄的管理層,然后所有操作系統均跑在管理層上面。
因此不再存在主操作系統的概念,所以操作系統均跑在虛擬機管理層(Hypervisor)上面。其中有一個特權虛擬機系統,可以整個系統進行管理。因為特權虛擬機系統僅僅是做管理,因此可以分配很少的資源。然后將其余資源分配給其他虛擬機進程。
對于AAS來說,選擇合適的虛擬執行技術比較重要,目前綜合考慮性能和業務要求,采用了帶硬件加速的虛擬執行技術。第一種速度太慢,第三種虛擬執行技術,適用于完全虛擬化的產品,也就是把整個系統的所有東西全部放入虛擬機里面。
作者簡介:
夏飛(1981-),江蘇南京人,江蘇省電力公司信息通信分公司,工程師,研究方向:信息安全。