相關(guān)鏈接: 中國安全網(wǎng) 中國質(zhì)量網(wǎng) 中國論文網(wǎng) 中國資訊網(wǎng)
鄭生軍1,2,郭龍華2,陳建3,南淑君1
(1.北京國電通網(wǎng)絡(luò)技術(shù)有限公司,北京100070:2.上海交通大學(xué)電子信息與電氣工程學(xué)院,上海200240:3.國網(wǎng)浙江省電力公司信息通信分公司,浙江杭州310007)
摘要:隨著新一代網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,針對(duì)工業(yè)控制網(wǎng)絡(luò)的高級(jí)惡意軟件大量出現(xiàn),使以智能電網(wǎng)為代表的工業(yè)信息系統(tǒng)面臨著巨大的信息安全威脅。目前主流的惡意軟件檢測技術(shù)主要是沙箱技術(shù),其原理是在漏洞利用階段之后,對(duì)惡意軟件的行為進(jìn)行分析。但是隨著網(wǎng)
絡(luò)攻擊技術(shù)的不斷發(fā)展,高級(jí)惡意軟件通過多態(tài)和變形技術(shù)掩飾自己的惡意行為。為了抵御智能電網(wǎng)中的高級(jí)惡意軟件攻擊,文章設(shè)計(jì)了一種基于虛擬執(zhí)行技術(shù)的高級(jí)惡意軟件攻擊在線檢測系統(tǒng),在傳統(tǒng)靜態(tài)檢測的基礎(chǔ)上,增加了動(dòng)態(tài)檢測引擎。動(dòng)態(tài)檢測采用和傳統(tǒng)的沙箱檢測不同的虛擬執(zhí)行技術(shù),通過系統(tǒng)調(diào)用跟蹤來分析軟件的行為特征,深入觀察分析內(nèi)存和指令屬性的變化,有效規(guī)避了高級(jí)惡意軟件漏洞利用后的逃避行為,在漏洞利用階段發(fā)現(xiàn)高級(jí)惡意軟件攻擊。實(shí)驗(yàn)表明,在線檢測系統(tǒng)能夠有效避免智能電網(wǎng)遭受高級(jí)惡意軟件的攻擊.
關(guān)鍵詞:高級(jí)惡意軟件;虛擬執(zhí)行;在線檢測;智能電網(wǎng)
中圖分類號(hào):TP309 文章編號(hào):1671-1122( 2016) 01-0029-050引言
目前在智能電網(wǎng)領(lǐng)域,帶有保護(hù)、測量、控制、計(jì)費(fèi)等功能的智能電子設(shè)備在電網(wǎng)中被大量使用,為提高智能電子設(shè)備之間的互操作性及互操作的實(shí)時(shí)性,滿足國際標(biāo)準(zhǔn)(如IEC 61850)的通信服務(wù)模塊也被采用。相比傳統(tǒng)電網(wǎng),用于互連互通的網(wǎng)元(如工業(yè)交換機(jī)、路由器、網(wǎng)管服務(wù)器等)成為新型電網(wǎng)基礎(chǔ)設(shè)施的重要組成部分,因此電力系統(tǒng)自動(dòng)化、智能化得到了前所未有的發(fā)展。然而,信息通信技術(shù)( Information CommunicationTechnology,ICT)的廣泛應(yīng)用在促進(jìn)電網(wǎng)快速發(fā)展的同時(shí),也帶來許多新的挑戰(zhàn)。近年來專門針對(duì)智能電網(wǎng)系統(tǒng)的新型高破壞性攻擊事件頻發(fā),嚴(yán)重威脅著人們的人身、資產(chǎn)安全和國家環(huán)境、能源安全。電網(wǎng)業(yè)務(wù)與常規(guī)計(jì)算機(jī)網(wǎng)絡(luò)業(yè)務(wù)存在較大差別,現(xiàn)有的面向常規(guī)計(jì)算機(jī)網(wǎng)絡(luò)業(yè)務(wù)的信息安全構(gòu)件(如防火墻、入侵監(jiān)測、漏洞掃描等)一方面分布在網(wǎng)絡(luò)的不同環(huán)節(jié),其監(jiān)測采集的安全數(shù)據(jù)存在異構(gòu)性,因而不能使這些安全監(jiān)測數(shù)據(jù)成為上層安全決策的依據(jù),不利于對(duì)數(shù)據(jù)進(jìn)行整合和關(guān)聯(lián)分析;另一方面,這些安全構(gòu)件以被動(dòng)防御為主,只對(duì)主機(jī)的一些常規(guī)參數(shù)(如IP地址、端口號(hào)等)進(jìn)行分析,缺乏對(duì)網(wǎng)絡(luò)流量、物理層參數(shù)等跨層參數(shù)的深度分析。同時(shí),基于誤用檢測的入侵檢測系統(tǒng)( IDS)、入侵防御系統(tǒng)(IPS)、防病毒軟件等安全措施都是采用被動(dòng)防御方式,采用決策樹、機(jī)器學(xué)習(xí)等方法來檢測已知的攻擊事實(shí),這類安全措施由于缺乏對(duì)面向電網(wǎng)業(yè)務(wù)的專有攻擊的深度分析,且對(duì)惡意攻擊的檢測對(duì)特征庫中特征碼的數(shù)量和質(zhì)量依賴性強(qiáng)、誤報(bào)率高,因此,在惡意程序攻擊造成危害之前難以快速有效地識(shí)別和攔截,不能滿足電網(wǎng)系統(tǒng)高安全性、高穩(wěn)定性的要求。
目前主流的惡意軟件檢測技術(shù)主要是沙箱技術(shù),其原理是在漏洞利用階段之后,對(duì)惡意軟件的行為進(jìn)行分析。但是隨著網(wǎng)絡(luò)攻擊技術(shù)的不斷發(fā)展,高級(jí)惡意軟件通過多態(tài)和變形技術(shù),能夠掩飾自己的惡意行為,例如在沙箱檢測階段暫停其惡意行為,從而躲過沙箱的檢測。
針對(duì)沙箱檢測技術(shù)在檢測高級(jí)惡意軟件攻擊上存在的不足,本文設(shè)計(jì)了基于虛擬執(zhí)行技術(shù)的高級(jí)惡意軟件攻擊在線檢測系統(tǒng),該系統(tǒng)采用和沙箱檢測不同的虛擬機(jī)機(jī)制,不僅通過系統(tǒng)調(diào)用跟蹤來分析軟件的行為特征,而且可以觀察分析內(nèi)存和指令的變化,在漏洞利用階段發(fā)現(xiàn)高級(jí)惡意軟件攻擊,從而有效規(guī)避了漏洞利用后高級(jí)惡意程序的逃避技術(shù)。
1基于虛擬執(zhí)行技術(shù)高級(jí)惡意軟件攻擊在線檢測系統(tǒng)
基于虛擬執(zhí)行技術(shù)高級(jí)惡意軟件攻擊在線檢測系統(tǒng)主要由靜態(tài)檢測引擎和動(dòng)態(tài)檢測引擎兩大核心組件組成。靜態(tài)檢測在檢測已知威脅的基礎(chǔ)上,增加了多態(tài)Shell code檢測技術(shù);動(dòng)態(tài)檢測采用虛擬執(zhí)行檢測技術(shù),深入內(nèi)存和指令層面觀察分析文件、進(jìn)程、注冊(cè)表、網(wǎng)絡(luò)、服務(wù)的實(shí)時(shí)變化,從而能夠在漏洞利用階段就精確地檢測出高級(jí)惡意軟件的攻擊。通過靜態(tài)檢測和動(dòng)態(tài)檢測兩種檢測策略并行檢測,該系統(tǒng)能夠在檢測已知惡意程序的基礎(chǔ)上,有效地檢測出高級(jí)惡意軟件攻擊。
1.1靜態(tài)檢測
在傳統(tǒng)靜態(tài)檢測的基礎(chǔ)上,本系統(tǒng)增加了智能Shell code檢測部分,目的是檢測高級(jí)惡意軟件中的Shell code代碼。靜態(tài)檢測基于已知的漏洞信息對(duì)攻擊威脅中造成溢出的漏洞特征進(jìn)行匹配,其檢測精度高,并且針對(duì)利用同一漏洞的不同惡意軟件,使用一個(gè)檢測規(guī)則做到完整覆蓋。Shell code檢測主要利用傳統(tǒng)惡意文件內(nèi)部的固定填充字段和功能字段。靜態(tài)解碼模塊從待檢測文件隊(duì)列中取出文件,文件如果不需要解碼,則直接進(jìn)行Shell code檢測,如需要解碼,則通過對(duì)文件動(dòng)態(tài)解碼,還原出功能字段,最后檢測出Shell code。該檢測方法能有效防止多態(tài)Shell code的逃避。
1.2動(dòng)態(tài)檢測
動(dòng)態(tài)檢測主要由流量重組文件還原、虛擬執(zhí)行技術(shù)、指令集實(shí)時(shí)分析和詳盡的告警信息四部分組成。首先,通過流量重組識(shí)別對(duì)應(yīng)的應(yīng)用層傳輸協(xié)議,按照協(xié)議格式將文件從數(shù)據(jù)流中還原,為后面虛擬執(zhí)行檢測做好準(zhǔn)備;接著采用虛擬執(zhí)行機(jī)制,系統(tǒng)調(diào)用跟蹤分析軟件的行為特征,觀察內(nèi)存和指令的變化;再根據(jù)指令運(yùn)行中的內(nèi)存空間的異常變化,發(fā)現(xiàn)各種溢出攻擊等漏洞利用行為;最后分析指令集和行為特征,系統(tǒng)從進(jìn)程、文件、注冊(cè)表、網(wǎng)絡(luò)、漏洞利用等多個(gè)維度提供告警數(shù)據(jù),為最終的定性提供數(shù)據(jù)支撐。
1.2.1流量重組文件還原引擎
在網(wǎng)絡(luò)傳輸中,文件以數(shù)據(jù)流的方式進(jìn)行傳播。常用的應(yīng)用層文件傳輸協(xié)議包括HTTP協(xié)議、SMTP協(xié)議、POP3協(xié)議、IMAP協(xié)議和FTP協(xié)議。其中,HTTP協(xié)議是用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議;MTP協(xié)議、POP3協(xié)議和IMAP協(xié)議是用于電子郵件傳輸?shù)膫魉蛥f(xié)議;FTP協(xié)議是用于主機(jī)間共享文件的傳送協(xié)議。流量重組文件還原引擎通過流量重組識(shí)別對(duì)應(yīng)的應(yīng)用層傳輸協(xié)議,按照協(xié)議格式將文件從數(shù)據(jù)流中還原,為下一步虛擬執(zhí)行檢測做好準(zhǔn)備。重組IP時(shí)獲取每一個(gè)分片的報(bào)頭,并分析分片報(bào)頭的5個(gè)關(guān)鍵字段:標(biāo)識(shí)符字段、不分片標(biāo)志( DF)、更多分片標(biāo)志(MF)、分片偏移量、總長度字段。以傳輸層( TCP)重組為例,首先在接收到三次握手的SYN、SYN+ACK和ACK報(bào)文段時(shí),根據(jù)該報(bào)文的源/目的IP地址、端口號(hào)來標(biāo)記一個(gè)數(shù)據(jù)流連接,分配一個(gè)Session數(shù)據(jù)結(jié)構(gòu),并設(shè)置初始序列號(hào)、最小時(shí)鐘等。然后根據(jù)接收到的數(shù)據(jù)報(bào)文段源/目的IP地址、端口號(hào)找到對(duì)應(yīng)的TCP連接,并把該報(bào)文所載的數(shù)據(jù)存放在正確的數(shù)據(jù)流緩沖區(qū)中。當(dāng)數(shù)據(jù)流緩沖區(qū)中的數(shù)據(jù)量達(dá)到一定值時(shí),將數(shù)據(jù)遞交上一層分析程序。如果接收到關(guān)閉階段的FIN報(bào)文段等,則向上一層的分析程序遞交報(bào)告,并將TCP連接數(shù)據(jù)結(jié)構(gòu)收回。
1.2.2虛擬執(zhí)行檢測技術(shù)
虛擬執(zhí)行檢測技術(shù)采用和沙箱檢測不同的虛擬機(jī)機(jī)制,通過系統(tǒng)調(diào)用跟蹤分析軟件的行為特征,觀察內(nèi)存和指令的變化;谔摂M執(zhí)行技術(shù)能夠防止針對(duì)沙箱檢測的逃避技術(shù)和利用漏洞的高級(jí)惡意軟件。虛擬執(zhí)行規(guī)則通過設(shè)計(jì)虛擬執(zhí)行算法,根據(jù)實(shí)例執(zhí)行的歷史信息數(shù)據(jù),在新工作流模型重新虛擬調(diào)度。利用命名空間虛擬化和寫時(shí)拷貝機(jī)制實(shí)現(xiàn)了資源訪問重定向和隔絕,并且在此基礎(chǔ)上構(gòu)建虛擬執(zhí)行環(huán)境,以實(shí)現(xiàn)對(duì)多個(gè)行為的捕獲。
虛擬執(zhí)行檢測技術(shù)過程如下:
1)根據(jù)動(dòng)態(tài)檢測策略,生成虛擬執(zhí)行環(huán)境;
2)將流量重組文件還原模塊還原的文件放入文件存儲(chǔ)隊(duì)列;
3)從文件存儲(chǔ)隊(duì)列中取出待檢測的文件;
4)將文件使用不同的軟件版本打開并放到多個(gè)虛擬機(jī)環(huán)境下執(zhí)行,以便判別漏洞針對(duì)的系統(tǒng)和軟件版本;
5)觀察待檢測文件被觸發(fā)后,內(nèi)存指令層面的變化,判斷是否存在高級(jí)惡意軟件攻擊;
6)觀察待檢測文件在虛擬機(jī)中的后續(xù)行為特征,包括文件和網(wǎng)絡(luò)的訪問、注冊(cè)表的修改、進(jìn)程的變化和模塊以及驅(qū)動(dòng)的加載等,識(shí)別其中哪些不是正常文件的行為,進(jìn)一步判斷是否存在惡意軟件攻擊。
1.2.3指令集實(shí)時(shí)分析
指令特征包括堆、棧中的代碼執(zhí)行情況等,通過指令運(yùn)行中的內(nèi)存空間的異常變化,發(fā)現(xiàn)各種溢出攻擊等漏洞利用行為,如零日威脅、APT等高級(jí)惡意軟件攻擊。動(dòng)態(tài)檢測系統(tǒng)通過指令級(jí)的代碼分析能力,跟蹤指令特征以及行為特征。各層次動(dòng)態(tài)行為特征如表1所示。
流量重組還原的文件在虛擬環(huán)境中執(zhí)行后,如圖1所示,分別進(jìn)行文件、進(jìn)程、注冊(cè)表、網(wǎng)絡(luò)操作以及服務(wù)操作檢測等。將檢測結(jié)果與告警規(guī)則庫進(jìn)行匹配,當(dāng)命中告警規(guī)則時(shí),輸出告警信息;否則直接輸出操作記錄。以注冊(cè)表檢測為例,首先判斷虛擬環(huán)境下流量重組還原的文件在執(zhí)行過程中是否有訪問注冊(cè)表的操作。如果沒有訪問注冊(cè)表的操作,則實(shí)時(shí)記下操作記錄,為后續(xù)分析提供依據(jù)。如果有訪問注冊(cè)表操作,則繼續(xù)判斷是否命中規(guī)則庫中的告警操作,即判斷執(zhí)行時(shí)是否惡意修改、刪除或創(chuàng)建注冊(cè)表信息,特別注意那些影響系統(tǒng)啟動(dòng)的注冊(cè)表項(xiàng)。如果命中告警規(guī)則,則輸出詳細(xì)告警信息,并加入告警庫。如果未命中告警規(guī)則,則輸出操作記錄,為將來可能進(jìn)行的人工審核提供素材。
1.3詳細(xì)告警信息
通過對(duì)指令集和行為特征分析,動(dòng)態(tài)檢測從進(jìn)程、文件、注冊(cè)表、網(wǎng)絡(luò)、漏洞利用等多個(gè)維度提供告警數(shù)據(jù),為最終的定性提供數(shù)據(jù)支撐。告警信息如表2所示。以進(jìn)程為例,通過判斷進(jìn)程創(chuàng)建、終止,寫進(jìn)程內(nèi)存,創(chuàng)建遠(yuǎn)程線程等行為特征,輸出詳細(xì)的告警信息,包括進(jìn)程ID、進(jìn)程名、父進(jìn)程ID、父進(jìn)程名、內(nèi)存地址、大小、內(nèi)存鏡像文件哈希值、線程入口地址等。
2基于虛擬執(zhí)行技術(shù)的高級(jí)惡意軟件攻擊在線檢測系統(tǒng)檢測流程
基于虛擬執(zhí)行技術(shù)的高級(jí)惡意軟件攻擊在線檢測流程如圖2所示,圖中虛線箭頭代表數(shù)據(jù)流向,實(shí)線箭頭代表執(zhí)行方向。首先檢測系統(tǒng)進(jìn)行初始化,根據(jù)檢測規(guī)則啟動(dòng)各檢測引擎,流量重組還原引擎將文件從數(shù)據(jù)流中還原并放入文件存儲(chǔ)隊(duì)列,靜態(tài)和動(dòng)態(tài)檢測引擎分別從文件存儲(chǔ)隊(duì)列中讀取文件,執(zhí)行檢測并輸出告警信息,具體檢測步驟如下:
1)系統(tǒng)完成初始化后,根據(jù)預(yù)先設(shè)定的檢測策略分別啟動(dòng)各檢測引擎,包括動(dòng)態(tài)檢測引擎和靜態(tài)檢測引擎以及流量重組文件還原引擎;
2)流量重組文件還原引擎從網(wǎng)絡(luò)流量中分離文件傳輸數(shù)據(jù)流,識(shí)別對(duì)應(yīng)的應(yīng)用層傳輸協(xié)議,按照協(xié)議格式將文件從數(shù)據(jù)流中還原,將數(shù)據(jù)流中還原出來的文件放入文件存儲(chǔ)隊(duì)列中;
3)靜態(tài)檢測引擎從文件存儲(chǔ)隊(duì)列中獲取文件,執(zhí)行靜態(tài)檢測,基于已知的漏洞信息對(duì)攻擊威脅中造成溢出的漏洞特征進(jìn)行匹配,并輸出靜態(tài)檢測告警信息;
4)動(dòng)態(tài)檢測引擎從文件存儲(chǔ)隊(duì)列中獲取文件,按照檢測策略將文件放入不同虛擬執(zhí)行環(huán)境進(jìn)行動(dòng)態(tài)檢測,跟蹤分析軟件的行為特征,觀察內(nèi)存和指令的變化,最后輸出動(dòng)態(tài)檢測告警信息。
在檢測過程中,根據(jù)需求不同,靈活設(shè)定檢測策略。對(duì)安全性要求稍低但實(shí)時(shí)性要求較高的系統(tǒng),只開啟靜態(tài)檢測引擎以提高系統(tǒng)實(shí)時(shí)性能;對(duì)安全性要求高但實(shí)時(shí)性能要求稍低的系統(tǒng),同時(shí)開啟靜態(tài)檢測引擎和動(dòng)態(tài)檢測引擎以提高系統(tǒng)安全性能。
3實(shí)驗(yàn)與分析
國家電網(wǎng)關(guān)鍵業(yè)務(wù)部門和相關(guān)支撐部門通過網(wǎng)絡(luò)建立聯(lián)系,內(nèi)部數(shù)據(jù)中心和網(wǎng)管中心對(duì)網(wǎng)絡(luò)和數(shù)據(jù)進(jìn)行存儲(chǔ)和管理,網(wǎng)絡(luò)拓?fù)淙鐖D3所示。為驗(yàn)證系統(tǒng)的有效性,高級(jí)惡意軟件攻擊在線檢測系統(tǒng)通過核心交換機(jī)的鏡像口,采集鏡像口的網(wǎng)絡(luò)數(shù)據(jù)流量,并將網(wǎng)絡(luò)數(shù)據(jù)流重組文件還原,通過靜態(tài)檢測和動(dòng)態(tài)檢測兩種并行檢測策略,實(shí)現(xiàn)已知和未知惡意程序的檢測。對(duì)圖3中的主機(jī)嘗試進(jìn)行各類惡意文件攻擊,利用靜態(tài)檢測和動(dòng)態(tài)檢測兩種并行檢測策略,
檢測出PDF、HTML、XLS、DLL和EXE等多種惡意文件類型以及Shell code代碼段的特征,同時(shí)還能觀察到進(jìn)程、內(nèi)存和注冊(cè)表屬性的變化,檢測結(jié)果如表3所示。表4是動(dòng)態(tài)檢測詳細(xì)信息。
在智能電網(wǎng)中,源地址為10.14.53.47的主機(jī)通過HTTP應(yīng)用下載目的地址10.34.55.91上的文件CVE-2012- 0158.doc,通過高級(jí)惡意軟件攻擊在線檢測系統(tǒng),同時(shí)開啟靜態(tài)和動(dòng)態(tài)檢測引擎。靜態(tài)檢測引擎未能有效檢測出未知惡意樣本,而動(dòng)態(tài)檢測引擎分別調(diào)用WinXP和Win 7虛擬執(zhí)行環(huán)境,在虛擬環(huán)境Win XP下檢測 到C:\WINDOWS\system32\cmd.exe (1932)創(chuàng)建新進(jìn)程C:\ WINDOWS\system32\wscript.exe (404),命令行為wscript/ E:vbs c:\evil.vbs;在虛擬環(huán)境Win 7下檢測到C:\Program Files\ Microsoft Office\Office14\WINWORD.EXE(504)有ROP代碼執(zhí)行,告警信息提示威脅詳情為高威脅。實(shí)驗(yàn)結(jié)果表明,動(dòng)態(tài)檢測引擎能有效檢測未知惡意程序在不同虛擬環(huán)境下的惡意行為,同時(shí)還能識(shí)別出未知惡意程序的來源以及類型。
上述實(shí)驗(yàn)表明,采用靜態(tài)檢測和動(dòng)態(tài)檢測并行機(jī)制,能夠在檢測已知漏洞基礎(chǔ)上,通過虛擬執(zhí)行動(dòng)態(tài)檢測技術(shù)深入內(nèi)存和指令層面,觀察分析文件、進(jìn)程、注冊(cè)表、網(wǎng)絡(luò)等指令集的實(shí)時(shí)變化,進(jìn)一步在漏洞利用階段就發(fā)現(xiàn)高級(jí)惡意軟件的攻擊,保護(hù)了智能電網(wǎng)的信息安全。
4結(jié)束語
本文提出了一種基于虛擬執(zhí)行技術(shù)的高級(jí)惡意軟件在線檢測系統(tǒng),該檢測系統(tǒng)通過深入觀察虛擬執(zhí)行環(huán)境下分析內(nèi)存和指令屬性的變化,能夠在漏洞利用階段就精確地檢測出新一代高級(jí)惡意軟件的攻擊。將該系統(tǒng)應(yīng)用于國家智能電網(wǎng),能使智能化電網(wǎng)避免遭受新一代高級(jí)惡意攻擊的威脅,從而降低了電力網(wǎng)絡(luò)的安全隱患,有效地保障了國家智能電網(wǎng)的信息安全。