本發(fā)明涉及確定裝置、確定方法以及確定程序。
背景技術(shù):
近年來,信息泄露或DDoS(Distributed Denial of Service:分布式拒絕服務(wù))攻擊之類的網(wǎng)絡(luò)攻擊所造成的損害源源不絕。在網(wǎng)絡(luò)攻擊中利用惡意軟件,被惡意軟件感染的終端引起損害。由于實際上產(chǎn)生金錢上的損失,因此惡意軟件對策的必要性逐漸提高。
在執(zhí)行惡意軟件對策的情況下,理想的是防止終端被惡意軟件感染。然而,惡意軟件的感染方法不斷地朝著高度化及多樣化的方向發(fā)展,將所有的惡意軟件感染防患于未然處于很困難的狀況。因此,以感染到惡意軟件為前提的對策不可缺少。
感染到終端的惡意軟件與在攻擊的過程中攻擊者準(zhǔn)備的惡性的服務(wù)器或正規(guī)站點(diǎn)進(jìn)行通信。在惡性的服務(wù)器中存在命令服務(wù)器、下載站點(diǎn)、信息泄露目的地。命令服務(wù)器通過命令決定惡意軟件的動作,下載站點(diǎn)分發(fā)追加模塊或惡意軟件主體。另外,信息泄露目的地起到收取泄露信息的作用。
在能夠?qū)@樣的惡性的服務(wù)器的IP地址或FQDN、URL預(yù)先進(jìn)行黑名單化時,通過基于與惡性的服務(wù)器之間的通信的檢測來執(zhí)行的感染終端的發(fā)現(xiàn)/隔離或通信切斷等對策,能夠?qū)⒁驉阂廛浖腥疽鸬膿p害抑制成最小限度。不過,信息泄露目的地或下載站點(diǎn)有可能由來自命令服務(wù)器的命令指定。另外,在軟件機(jī)器人(bot)等惡意軟件的情況下,來自命令服務(wù)器的命令成為之后的攻擊的起因。因此,在惡性的服務(wù)器中特別是對命令服務(wù)器進(jìn)行黑名單化是很重要的。
一般通過惡意軟件分析來創(chuàng)建命令服務(wù)器的黑名單。通過分析惡意軟件,能夠取得惡意軟件的通信目的地。不過,其中包含正規(guī)站點(diǎn)作為以攻擊或妨礙分析為目的的通信的通信目的地。若錯誤地將正規(guī)站點(diǎn)記載到黑名單中,則牽涉到對策運(yùn)用時的負(fù)荷。因此,課題在于,從通過分析取得的多個通信目的地中只確定命令服務(wù)器。
以往,基于在動態(tài)分析時產(chǎn)生的通信內(nèi)容來判定通信目的地是否為命令服務(wù)器(例如,參照非專利文獻(xiàn)1)。但是,隨著針對通信內(nèi)容的混淆/加密的應(yīng)用的發(fā)展,難以僅利用通信內(nèi)容來確定命令服務(wù)器。
命令服務(wù)器是根據(jù)通信數(shù)據(jù)來控制惡意軟件的動作的通信目的地。因此,只要能夠分析接收數(shù)據(jù)是否決定了惡意軟件的動作,即使對通信內(nèi)容進(jìn)行了混淆/加密也能夠?qū)⒔邮諗?shù)據(jù)的發(fā)送源判定為命令服務(wù)器。
因此,基于惡意軟件內(nèi)部中的接收數(shù)據(jù)的利用方法的分析而進(jìn)行的命令服務(wù)器的檢測受到關(guān)注。命令服務(wù)器控制惡意軟件的方法大致分成2種。1種是除了惡意軟件執(zhí)行的程序代碼之外還指定系統(tǒng)調(diào)用或API的自變量的方法,另1種是只指定所執(zhí)行的程序代碼的方法。例如,在非專利文獻(xiàn)2中,能夠基于與發(fā)送接收數(shù)據(jù)關(guān)聯(lián)地發(fā)布的系統(tǒng)調(diào)用間的數(shù)據(jù)的傳遞關(guān)系來確定命令服務(wù)器,能夠在指定了系統(tǒng)調(diào)用或API的自變量的情況下確定命令服務(wù)器。
現(xiàn)有技術(shù)文獻(xiàn)
非專利文獻(xiàn)
非專利文獻(xiàn)1:P.Wurzinger,L.Bilge,T.Holz,J.Goebel,C.Kruegel,and E.Kirda,“Automatically Generating Models for Botnet Detection”In Proceedings of the 14th European Conference on Research in Computer Security
非專利文獻(xiàn)2:G.Jacob,R.Hund,C.Kruegel,and T.Holz,“JACKSTRAWS:Picking Command and Control Connections from Bot Traffic”In Proceedings of the 20th USENIX Conference on Security
技術(shù)實現(xiàn)要素:
發(fā)明要解決的課題
然而,在上述的以往的技術(shù)中,存在如下情況:如今的惡意軟件進(jìn)行通信內(nèi)容的混淆/加密,從而難以僅利用通信內(nèi)容來確定命令服務(wù)器。因此,提出如下的方法:對惡意軟件的接收數(shù)據(jù)的利用方法進(jìn)行分析,基于與接收數(shù)據(jù)關(guān)聯(lián)地發(fā)布的系統(tǒng)調(diào)用間的數(shù)據(jù)的傳遞關(guān)系來確定命令服務(wù)器,但是,存在如下課題:有時無法檢測出只切換惡意軟件執(zhí)行的功能的命令。例如,在命令服務(wù)器只指定所執(zhí)行的程序代碼的控制方法中,由于接收數(shù)據(jù)只對轉(zhuǎn)移(branch)指令帶來影響,而不被用作系統(tǒng)調(diào)用或API的自變量,因此有時無法檢測出只切換惡意軟件執(zhí)行的功能的命令服務(wù)器的命令。
因此,本發(fā)明是為了解決上述的以往技術(shù)的課題而完成的,其目的在于,即使在只是切換所執(zhí)行的程序代碼的命令的情況下,也能夠確定命令服務(wù)器。
用于解決課題的手段
為了解決上述的課題并達(dá)成目的,確定裝置的特征在于,具有:跟蹤部,其在惡意軟件的執(zhí)行時,針對該惡意軟件接收到的數(shù)據(jù),賦予能夠唯一確定該數(shù)據(jù)的發(fā)送源的通信目的地信息的標(biāo)簽,且對被賦予了該標(biāo)簽的數(shù)據(jù)的傳播進(jìn)行跟蹤;監(jiān)視部,其取得由所述跟蹤部跟蹤的數(shù)據(jù)中的惡意軟件執(zhí)行的轉(zhuǎn)移指令所參照的數(shù)據(jù)的標(biāo)簽;以及確定部,其基于與由所述監(jiān)視部取得的標(biāo)簽對應(yīng)的發(fā)送源的通信目的地信息,確定對所述惡意軟件發(fā)出命令的命令服務(wù)器的通信目的地信息。
另外,確定方法是確定裝置執(zhí)行的確定方法,其特征在于,包括:跟蹤步驟,在惡意軟件的執(zhí)行時,針對該惡意軟件接收到的數(shù)據(jù),賦予能夠唯一確定該數(shù)據(jù)的發(fā)送源的通信目的地信息的標(biāo)簽,且對被賦予了該標(biāo)簽的數(shù)據(jù)的傳播進(jìn)行跟蹤;監(jiān)視步驟,取得通過所述跟蹤步驟跟蹤的數(shù)據(jù)中的惡意軟件執(zhí)行的轉(zhuǎn)移指令所參照的數(shù)據(jù)的標(biāo)簽;以及確定步驟,基于與通過所述監(jiān)視步驟取得的標(biāo)簽對應(yīng)的發(fā)送源的通信目的地信息,確定對所述惡意軟件發(fā)出命令的命令服務(wù)器的通信目的地信息。
另外,確定程序的特征在于,用于使計算機(jī)執(zhí)行下述步驟:跟蹤步驟,在惡意軟件的執(zhí)行時,針對該惡意軟件接收到的數(shù)據(jù),賦予能夠唯一確定該數(shù)據(jù)的發(fā)送源的通信目的地信息的標(biāo)簽,且對被賦予了該標(biāo)簽的數(shù)據(jù)的傳播進(jìn)行跟蹤;監(jiān)視步驟,取得通過所述跟蹤步驟跟蹤的數(shù)據(jù)中的惡意軟件執(zhí)行的轉(zhuǎn)移指令所參照的數(shù)據(jù)的標(biāo)簽;以及確定步驟,基于與通過所述監(jiān)視步驟取得的標(biāo)簽對應(yīng)的發(fā)送源的通信目的地信息,確定對所述惡意軟件發(fā)出命令的命令服務(wù)器的通信目的地信息。
發(fā)明效果
本申請所公開的確定裝置、確定方法以及確定程序產(chǎn)生如下效果:即使在只是切換所執(zhí)行的程序代碼的命令的情況下,也能夠確定命令服務(wù)器。
附圖說明
圖1是示出第一實施方式的命令服務(wù)器確定裝置的概要的結(jié)構(gòu)圖。
圖2是示出第一實施方式的命令服務(wù)器確定裝置中的虛擬計算機(jī)和數(shù)據(jù)傳播跟蹤部的結(jié)構(gòu)的框圖。
圖3是示出通信目的地信息DB中存儲的表的一例的圖。
圖4是對監(jiān)視對象的轉(zhuǎn)移指令進(jìn)行說明的圖。
圖5是對利用轉(zhuǎn)移指令來確定命令服務(wù)器的處理進(jìn)行說明的圖。
圖6是示出第一實施方式的命令服務(wù)器確定裝置對標(biāo)簽的傳播處理的流程的流程圖。
圖7是示出第一實施方式的命令服務(wù)器確定裝置對標(biāo)簽的強(qiáng)制性的傳播處理的流程的流程圖。
圖8是示出第一實施方式的命令服務(wù)器確定裝置對命令服務(wù)器的確定處理的流程的流程圖。
圖9是對檢測到與命令服務(wù)器之間的通信而執(zhí)行惡意軟件對策的處理進(jìn)行說明的圖。
圖10是示出執(zhí)行確定程序的計算機(jī)的圖。
具體實施方式
以下,基于附圖,詳細(xì)地說明本申請的確定裝置、確定方法以及確定程序的實施方式。此外,本申請的確定裝置、確定方法以及確定程序不限定于本實施方式。
[第一實施方式]
在以下的實施方式中,依次說明第一實施方式的命令服務(wù)器確定裝置的結(jié)構(gòu)和處理的流程,然后,最后說明第一實施方式的效果。
[命令服務(wù)器確定裝置的結(jié)構(gòu)]
首先,使用圖1,對命令服務(wù)器確定裝置10的結(jié)構(gòu)進(jìn)行說明。圖1是示出第一實施方式的命令服務(wù)器確定裝置的概要的結(jié)構(gòu)圖。如圖1所示,該命令服務(wù)器確定裝置10具有惡意軟件執(zhí)行環(huán)境部11、執(zhí)行日志DB(Data Base:數(shù)據(jù)庫)12、通信目的地信息DB 13以及命令服務(wù)器確定部14。以下對這些各部分的處理進(jìn)行說明。
惡意軟件執(zhí)行環(huán)境部11由客戶機(jī)OS(Guest Operating System:客戶機(jī)操作系統(tǒng))11b和虛擬計算機(jī)11c構(gòu)成??蛻魴C(jī)OS 11b是用于對惡意軟件11a進(jìn)行動態(tài)分析的環(huán)境。另外,惡意軟件11a是帶來信息泄漏或非法訪問等威脅的非法程序,其作為分析對象的程序在客戶機(jī)OS 11b上執(zhí)行。
虛擬計算機(jī)11c由數(shù)據(jù)傳播跟蹤部110和指令監(jiān)視部111構(gòu)成。在惡意軟件11a的執(zhí)行時,數(shù)據(jù)傳播跟蹤部110針對該惡意軟件11a接收到的數(shù)據(jù)賦予能夠唯一確定該數(shù)據(jù)的發(fā)送源的通信目的地信息的標(biāo)簽,且對被賦予了該標(biāo)簽的數(shù)據(jù)的傳播進(jìn)行跟蹤。具體而言,數(shù)據(jù)傳播跟蹤部110針對惡意軟件11a接收到的數(shù)據(jù)設(shè)定能夠唯一確定發(fā)送源的標(biāo)簽,在將與IP地址或FQDN、URL之類的通信目的地信息對應(yīng)的標(biāo)簽轉(zhuǎn)發(fā)給通信目的地信息DB 13之后,進(jìn)行虛擬計算機(jī)11c上的數(shù)據(jù)的傳播的跟蹤。
另外,在從多個發(fā)送源接收到數(shù)據(jù)而生成了新的數(shù)據(jù)的情況下,數(shù)據(jù)傳播跟蹤部110生成能夠唯一確定多個發(fā)送源的通信目的地信息的新的標(biāo)簽而賦予給數(shù)據(jù),且對被賦予了該標(biāo)簽的數(shù)據(jù)的傳播進(jìn)行跟蹤。另外,當(dāng)在函數(shù)內(nèi)參照了接收數(shù)據(jù)的情況下,數(shù)據(jù)傳播跟蹤部110對函數(shù)的返回值賦予標(biāo)簽,且對被賦予了該標(biāo)簽的數(shù)據(jù)的傳播進(jìn)行跟蹤。
指令監(jiān)視部111取得由數(shù)據(jù)傳播跟蹤部110跟蹤的數(shù)據(jù)中的惡意軟件11a執(zhí)行的轉(zhuǎn)移指令所參照的數(shù)據(jù)的標(biāo)簽。具體而言,指令監(jiān)視部111取得惡意軟件11a執(zhí)行的API調(diào)用或系統(tǒng)調(diào)用的發(fā)布、jmp系列指令或call(調(diào)用)指令之類的轉(zhuǎn)移指令、指令執(zhí)行時的調(diào)用棧、轉(zhuǎn)移指令所參照的數(shù)據(jù)的標(biāo)簽,且轉(zhuǎn)發(fā)給執(zhí)行日志DB 12。
執(zhí)行日志DB 12存儲由指令監(jiān)視部111取得的日志。具體而言,執(zhí)行日志DB 12存儲惡意軟件11a執(zhí)行的API調(diào)用或系統(tǒng)調(diào)用的發(fā)布、jmp系列指令或call指令之類的轉(zhuǎn)移指令、指令執(zhí)行時的調(diào)用棧、轉(zhuǎn)移指令所參照的數(shù)據(jù)的標(biāo)簽。另外,執(zhí)行日志DB 12存儲惡意軟件11a執(zhí)行的API調(diào)用或系統(tǒng)調(diào)用的發(fā)布、轉(zhuǎn)移指令以及調(diào)用棧的日志信息。
通信目的地信息DB 13將IP地址或FQDN、URL之類的通信目的地信息與由數(shù)據(jù)傳播跟蹤部110設(shè)定的標(biāo)簽關(guān)聯(lián)地存儲。這里,使用圖3,對通信目的地信息DB 13中的通信目的地與標(biāo)簽的關(guān)聯(lián)方法的一例進(jìn)行說明。圖3是示出通信目的地信息DB中存儲的表的一例的圖。如圖3所示,通信目的地信息DB 13將“通信目的地”與“標(biāo)簽”關(guān)聯(lián)地存儲,其中“通信目的地”是惡意軟件11a接收到的數(shù)據(jù)的發(fā)送源的通信目的地信息,“標(biāo)簽”被賦予至惡意軟件接收到的數(shù)據(jù)。
例如,如圖3所例示,與IP地址“192.168.2.150”對應(yīng)的標(biāo)簽是“0x001”,與IP地址“192.168.5.140”對應(yīng)的標(biāo)簽是“0x002”。此外,在對附帶這些標(biāo)簽的數(shù)據(jù)進(jìn)行運(yùn)算的情況下,新生成標(biāo)簽,在通信目的地信息DB 13中保存與涉及到生成的標(biāo)簽相關(guān)聯(lián)的通信目的地。在圖3的例子中,表示如下結(jié)果:由于進(jìn)行了附帶與IP地址“192.168.2.150”對應(yīng)的標(biāo)簽“0x001”和與IP地址“192.168.5.140”對應(yīng)的標(biāo)簽“0x002”的數(shù)據(jù)之間的運(yùn)算,因此新生成標(biāo)簽“0x003”,該標(biāo)簽“0x003”表示受到IP地址“192.168.2.150”和IP地址“192.168.5.140”這雙方的影響。
命令服務(wù)器確定部14基于與由指令監(jiān)視部111取得的標(biāo)簽對應(yīng)的發(fā)送源的通信目的地信息,確定向惡意軟件11a發(fā)出命令的命令服務(wù)器的通信目的地信息。具體而言,對于在多個轉(zhuǎn)移目的地中進(jìn)行了API調(diào)用或系統(tǒng)調(diào)用發(fā)布的轉(zhuǎn)移指令,當(dāng)與進(jìn)行轉(zhuǎn)移時參照的數(shù)據(jù)的標(biāo)簽對應(yīng)的通信目的地信息在多個轉(zhuǎn)移目的地中共同的情況下,命令服務(wù)器確定部14將該通信目的地信息確定為命令服務(wù)器的通信目的地信息。
例如,命令服務(wù)器確定部14通過對執(zhí)行日志DB 12所保持的惡意軟件11a執(zhí)行的API調(diào)用或系統(tǒng)調(diào)用的發(fā)布、轉(zhuǎn)移指令以及調(diào)用棧的信息進(jìn)行分析,提取出在多個轉(zhuǎn)移目的地中進(jìn)行了API調(diào)用或系統(tǒng)調(diào)用的發(fā)布的轉(zhuǎn)移指令,且從執(zhí)行日志DB 12取得轉(zhuǎn)移到進(jìn)行了API調(diào)用或系統(tǒng)調(diào)用的發(fā)布的轉(zhuǎn)移目的地時參照的數(shù)據(jù)的標(biāo)簽。
此外,命令服務(wù)器確定部14從通信目的地信息DB 13取得與標(biāo)簽對應(yīng)的通信目的地,按照每個轉(zhuǎn)移目的地取得對轉(zhuǎn)移指令帶來影響的通信目的地,且將在轉(zhuǎn)移目的地之間共同的通信目的地判定為命令服務(wù)器。
接著,使用圖2對虛擬計算機(jī)11c的結(jié)構(gòu)例進(jìn)行說明。圖2是示出第一實施方式的命令服務(wù)器確定裝置中的虛擬計算機(jī)和數(shù)據(jù)傳播跟蹤部的結(jié)構(gòu)的框圖。虛擬計算機(jī)11c是向客戶機(jī)OS 11b提供虛擬的硬件的軟件。另外,虛擬計算機(jī)11c由虛擬NIC 112或虛擬盤113、虛擬HW控制器114、虛擬存儲器115、虛擬CPU 116等構(gòu)成。
數(shù)據(jù)傳播跟蹤部110為了對數(shù)據(jù)設(shè)定標(biāo)簽來進(jìn)行數(shù)據(jù)的傳播跟蹤,具備:盤標(biāo)簽保存區(qū)域110a,其用于保存與虛擬盤113上的數(shù)據(jù)對應(yīng)的標(biāo)簽;存儲器標(biāo)簽保存區(qū)域110d,其用于保存與虛擬存儲器115上的數(shù)據(jù)對應(yīng)的標(biāo)簽;以及寄存器標(biāo)簽保存區(qū)域110f,其用于保存與虛擬寄存器116b上的數(shù)據(jù)對應(yīng)的標(biāo)簽。
數(shù)據(jù)傳播跟蹤部110的標(biāo)簽賦予部110b設(shè)定能夠針對接收數(shù)據(jù)唯一確定發(fā)送源的標(biāo)簽,且轉(zhuǎn)發(fā)給通信目的地信息DB 13之后,將標(biāo)簽保存在存儲器標(biāo)簽保存區(qū)域110d中。設(shè)定標(biāo)簽的時機(jī)可以是從虛擬NIC 112向虛擬存儲器115復(fù)制數(shù)據(jù)的時機(jī),也可以在惡意軟件11a通過API調(diào)用或系統(tǒng)調(diào)用的發(fā)布而讀入接收數(shù)據(jù)時設(shè)定。數(shù)據(jù)中設(shè)定的標(biāo)簽由標(biāo)簽傳播部110c(標(biāo)簽傳播部A)來與數(shù)據(jù)的傳播匹配地傳播。
標(biāo)簽傳播部110c進(jìn)行盤標(biāo)簽保存區(qū)域110a與存儲器標(biāo)簽保存區(qū)域110d之間的標(biāo)簽的傳播。另外,標(biāo)簽傳播部110e(標(biāo)簽傳播部B)除了存儲器標(biāo)簽保存區(qū)域110d與寄存器標(biāo)簽保存區(qū)域110f之間或寄存器標(biāo)簽保存區(qū)域110f之間的標(biāo)簽的傳播之外,還進(jìn)行數(shù)據(jù)的運(yùn)算時的標(biāo)簽生成和傳播、以及針對讀入了表示接收數(shù)據(jù)的標(biāo)簽的函數(shù)的返回值的標(biāo)簽的傳播。
另外,指令監(jiān)視部111監(jiān)視惡意軟件11a執(zhí)行的指令,且收集惡意軟件11a執(zhí)行的API調(diào)用或系統(tǒng)調(diào)用的發(fā)布、轉(zhuǎn)移指令、轉(zhuǎn)移指令所參照的標(biāo)簽、指令執(zhí)行時的調(diào)用棧。每當(dāng)監(jiān)視惡意軟件11a執(zhí)行的指令時,確定在客戶機(jī)OS 11b上進(jìn)行動作的惡意軟件11a的進(jìn)程或線程的方法可以是進(jìn)程ID或線程ID,也可以對分析對象的惡意軟件11a或從外部取得的程序設(shè)定表示是分析對象的標(biāo)簽,由此進(jìn)行確定。
這里,使用圖4,對監(jiān)視對象的轉(zhuǎn)移指令進(jìn)行說明。圖4是對監(jiān)視對象的轉(zhuǎn)移指令進(jìn)行說明的圖。在第一實施方式的命令服務(wù)器確定裝置10中,從已執(zhí)行的指令的日志中提取作為標(biāo)簽的監(jiān)視位置的轉(zhuǎn)移指令。例如,在圖4的例子中,命令服務(wù)器確定裝置10將作為處理A和處理B/C的分開處的轉(zhuǎn)移指令作為監(jiān)視對象。
即,在命令服務(wù)器確定裝置10中,利用作為監(jiān)視對象的轉(zhuǎn)移指令參照接收數(shù)據(jù),且分析與所執(zhí)行的程序代碼的決定相關(guān)的通信目的地,由此確定命令服務(wù)器的通信目的地信息。這里,為了判定是否與所執(zhí)行的程序代碼的決定相關(guān),需要能夠掌握通過從相同的通信目的地接收到的數(shù)據(jù)來執(zhí)行了各路徑的情況。
接著,使用圖5,對利用轉(zhuǎn)移指令來確定命令服務(wù)器的處理的一例進(jìn)行說明。圖5是對利用轉(zhuǎn)移指令來確定命令服務(wù)器的處理進(jìn)行說明的圖。如圖5所示,在命令服務(wù)器確定裝置10中,取得惡意軟件的執(zhí)行時執(zhí)行的API調(diào)用和系統(tǒng)調(diào)用發(fā)布、轉(zhuǎn)移指令和指令執(zhí)行時的調(diào)用棧作為日志(參照圖5的(1))。而且,在命令服務(wù)器確定裝置10中,通過污點(diǎn)分析(taint analysis)來取得接收數(shù)據(jù)的標(biāo)簽傳播日志(參照圖5的(2))。
而且,命令服務(wù)器確定裝置10基于執(zhí)行軌跡,將標(biāo)簽的監(jiān)視位置設(shè)定為轉(zhuǎn)移指令,從已執(zhí)行的指令的日志中提取作為標(biāo)簽的監(jiān)視位置的轉(zhuǎn)移指令(參照圖5的(3))。這里,作為監(jiān)視位置的轉(zhuǎn)移指令在轉(zhuǎn)移目的地中存在系統(tǒng)調(diào)用或API的調(diào)用。
命令服務(wù)器確定裝置10確認(rèn)在監(jiān)視位置中所參照的數(shù)據(jù)(參照圖5的(4))。然后,命令服務(wù)器確定裝置10將與附加在數(shù)據(jù)中的標(biāo)簽對應(yīng)的通信目的地信息判定為命令服務(wù)器,將該通信目的地的信息登記到命令服務(wù)器黑名單(參照圖5的(5))。這樣,在命令服務(wù)器確定裝置10中,由于將與作為監(jiān)視位置的轉(zhuǎn)移指令所參照的數(shù)據(jù)的標(biāo)簽對應(yīng)的通信目的地信息確定為命令服務(wù)器的通信目的地信息,因此即使只是切換所執(zhí)行的功能的命令,也能夠確定命令服務(wù)器。
另外,命令服務(wù)器黑名單是指記載了已知的惡性的IP地址或URL等的列表。通過將命令服務(wù)器的IP地址等通信目的地信息登記在黑名單中,能夠切斷與命令服務(wù)器之間的通信,或者能夠進(jìn)行感染終端的發(fā)現(xiàn)/隔離。
這樣,命令服務(wù)器確定裝置10對執(zhí)行惡意軟件時的接收數(shù)據(jù)賦予標(biāo)簽而進(jìn)行跟蹤,且監(jiān)視轉(zhuǎn)移指令,分析接收數(shù)據(jù)對轉(zhuǎn)移指令帶來的影響,由此確定命令服務(wù)器。由此,命令服務(wù)器確定裝置10即使在惡意軟件只接收到切換所執(zhí)行的功能的命令的情況下,也能夠確定命令服務(wù)器的通信目的地信息。
[基于命令服務(wù)器確定裝置的處理]
接著,使用圖6~圖8,對基于第一實施方式的命令服務(wù)器確定裝置10的處理進(jìn)行說明。圖6是示出第一實施方式的命令服務(wù)器確定裝置對標(biāo)簽的傳播處理的流程的流程圖。圖7是示出第一實施方式的命令服務(wù)器確定裝置對標(biāo)簽的強(qiáng)制性的傳播處理的流程的流程圖。圖8是示出第一實施方式的命令服務(wù)器確定裝置對命令服務(wù)器的確定處理的流程的流程圖。
首先,使用圖6,說明第一實施方式的命令服務(wù)器確定裝置10的標(biāo)簽傳播部110e對標(biāo)簽的傳播處理的流程。在這里的處理中,按照CPU的每1指令來判斷是否傳播標(biāo)簽而進(jìn)行傳播處理。
如圖6所示,標(biāo)簽傳播部110e判定是否是移動數(shù)據(jù)的指令(步驟S101)。其結(jié)果為,標(biāo)簽傳播部110e在是移動數(shù)據(jù)的指令的情況下(步驟S101:肯定),標(biāo)簽傳播部110e確認(rèn)移動的數(shù)據(jù)的標(biāo)簽(步驟S102),在標(biāo)簽存在的情況下(步驟S103:肯定),在與數(shù)據(jù)的移動目的地對應(yīng)的標(biāo)簽保存區(qū)域中設(shè)定標(biāo)簽(步驟S104)。另外,標(biāo)簽傳播部110e在針對移動源的數(shù)據(jù)的標(biāo)簽不存在的情況下(步驟S103:否定),刪除與數(shù)據(jù)的移動目的地對應(yīng)的標(biāo)簽保存區(qū)域的信息(步驟S105)。
另一方面,標(biāo)簽傳播部110e在不是移動數(shù)據(jù)的指令的情況下(步驟S101:否定),判定是否是進(jìn)行數(shù)據(jù)的運(yùn)算的指令(步驟S106)。其結(jié)果為,標(biāo)簽傳播部110e在是進(jìn)行數(shù)據(jù)的運(yùn)算的指令的情況下(步驟S106:肯定),取得與操作數(shù)對應(yīng)的標(biāo)簽(步驟S107)。
而且,標(biāo)簽傳播部110e根據(jù)取得結(jié)果來判斷是否新生成標(biāo)簽。具體而言,標(biāo)簽傳播部110e判定是否存在附帶標(biāo)簽的操作數(shù)(步驟S108),在附帶標(biāo)簽的操作數(shù)存在的情況下(步驟S108:肯定),判定附帶標(biāo)簽的操作數(shù)是否存在多個(步驟S109)。
而且,標(biāo)簽傳播部110e在附帶標(biāo)簽的操作數(shù)存在多個的情況下(步驟S109:肯定),判定與標(biāo)簽相關(guān)聯(lián)的通信目的地是否不同(步驟S110)。其結(jié)果為,標(biāo)簽傳播部110e在與標(biāo)簽相關(guān)聯(lián)的通信目的地不同的情況下(步驟S110:肯定),生成表示是受到來自多個通信目的地的影響而生成的數(shù)據(jù)的新的標(biāo)簽(步驟S111),在通信目的地信息DB 13中記錄所生成的標(biāo)簽和涉及到標(biāo)簽的生成的與標(biāo)簽相關(guān)聯(lián)的通信目的地(步驟S112)。
然后,標(biāo)簽傳播部110e在與運(yùn)算結(jié)果的保存目的地對應(yīng)的標(biāo)簽保存區(qū)域中設(shè)定所生成的標(biāo)簽(步驟S113)。另一方面,在附帶標(biāo)簽的操作數(shù)只存在1個的情況下(步驟S109:否定)、或者盡管附帶標(biāo)簽的操作數(shù)存在多個但相關(guān)聯(lián)的通信目的地相同的情況下(步驟S110:否定),在與運(yùn)算結(jié)果的保存目的地對應(yīng)的標(biāo)簽保存區(qū)域中設(shè)定(傳播)標(biāo)簽而不會新生成標(biāo)簽(步驟S114)。
接著,使用圖7,說明第一實施方式的命令服務(wù)器確定裝置對標(biāo)簽的強(qiáng)制性的傳播處理的流程。在該處理中,監(jiān)視CPU指令,在未進(jìn)行數(shù)據(jù)的移動或運(yùn)算的情況下也進(jìn)行標(biāo)簽的傳播。
如圖7所示,標(biāo)簽傳播部110e判定所執(zhí)行的指令是否是call指令(步驟S201),在所執(zhí)行的指令是call指令的情況下(步驟S201:肯定),在為了識別函數(shù)而更新調(diào)用棧之后(步驟S202),將當(dāng)前的調(diào)用棧中的強(qiáng)制傳播標(biāo)志設(shè)定為禁用(OFF)(步驟S203)。
另外,標(biāo)簽傳播部110e在所執(zhí)行的指令不是call指令的情況下(步驟S201:否定),判定所執(zhí)行的指令是否是Ret(返回)指令(步驟S204)。而且,標(biāo)簽傳播部110e在所執(zhí)行的指令是Ret指令的情況下(步驟S204:肯定),由于是函數(shù)的結(jié)束,因此將當(dāng)前的調(diào)用棧中的強(qiáng)制傳播標(biāo)志設(shè)定為OFF(步驟S205),進(jìn)行調(diào)用棧的更新(步驟S206)。
另外,標(biāo)簽傳播部110e在所執(zhí)行的指令不是Ret指令的情況下(步驟S204:否定),判定所執(zhí)行的函數(shù)中的指令是否是參照接收數(shù)據(jù)的指令(步驟S207)。其結(jié)果為,標(biāo)簽傳播部110e在是參照接收數(shù)據(jù)的指令的情況下(步驟S207:肯定),將當(dāng)前的調(diào)用棧中的強(qiáng)制傳播標(biāo)志設(shè)定為ON(啟用)(步驟S208),且保持表示所參照的接收數(shù)據(jù)的發(fā)送源的標(biāo)簽(步驟S209)。
另外,標(biāo)簽傳播部110e在所執(zhí)行的指令不是參照接收數(shù)據(jù)的指令的情況下(步驟S207:否定),判定所執(zhí)行的指令是否是進(jìn)行寫入的指令(步驟S210)。其結(jié)果為,標(biāo)簽傳播部110e在執(zhí)行了進(jìn)行寫入的指令的情況下(步驟S210:肯定),判定當(dāng)前的調(diào)用棧中的強(qiáng)制傳播標(biāo)志是否是ON(步驟S211)。其結(jié)果為,標(biāo)簽傳播部110e在當(dāng)前的調(diào)用棧中的強(qiáng)制傳播標(biāo)志處于ON的狀態(tài)的情況下(步驟S211:肯定),傳播寫入目的地中保持的標(biāo)簽(步驟S212)。
此外,除了上述的方法以外,可以如x86體系結(jié)構(gòu)的EAX寄存器那樣將在特定的體系結(jié)構(gòu)中用于儲存返回值的寄存器作為返回值,在從函數(shù)返回到調(diào)用源時設(shè)定表示受到接收數(shù)據(jù)的影響的標(biāo)簽,也可以將對于已知的函數(shù)預(yù)先確定的寄存器或存儲器的地址作為返回值,在從函數(shù)返回到調(diào)用源時設(shè)定表示受到接收數(shù)據(jù)的影響的標(biāo)簽。通過這樣的方法來強(qiáng)制性地傳播標(biāo)簽,由此,即使在函數(shù)內(nèi)由于數(shù)據(jù)的置換等而無法傳播標(biāo)簽,也能夠傳播受到接收數(shù)據(jù)的影響的情況。
接著,使用圖8,說明第一實施方式的命令服務(wù)器確定裝置10對命令服務(wù)器的確定處理的流程。在該處理中,命令服務(wù)器確定部14讀入執(zhí)行日志DB 12所保持的信息和通信目的地信息DB 13所保持的信息,將對惡意軟件11a執(zhí)行的切換API調(diào)用或系統(tǒng)調(diào)用發(fā)布的轉(zhuǎn)移指令帶來影響的數(shù)據(jù)的發(fā)送源判定為命令服務(wù)器。在命令服務(wù)器確定部14中,對于執(zhí)行惡意軟件時記錄的全部轉(zhuǎn)移指令,基于調(diào)用棧還考慮調(diào)用的詳情而進(jìn)行識別,分別確認(rèn)是否滿足下一個條件。
如圖8所示,最初,在命令服務(wù)器確定部14中,確認(rèn)是否執(zhí)行了多個轉(zhuǎn)移目的地(步驟S301)。而且,在命令服務(wù)器確定部14中,當(dāng)判定為執(zhí)行了多個轉(zhuǎn)移目的地時(步驟S301:肯定),對于執(zhí)行了多個轉(zhuǎn)移目的地的轉(zhuǎn)移指令,對所有的轉(zhuǎn)移目的地的組進(jìn)行以下的處理,由此確定命令服務(wù)器。
具體而言,命令服務(wù)器確定部14判定在轉(zhuǎn)移目的地中是否存在匯合點(diǎn)(步驟S302),其結(jié)果為,當(dāng)在轉(zhuǎn)移目的地中存在匯合點(diǎn)的情況下(步驟S302:肯定),命令服務(wù)器確定部14取得轉(zhuǎn)移點(diǎn)與匯合點(diǎn)之間的API調(diào)用和系統(tǒng)調(diào)用發(fā)布的日志(步驟S303)。另外,當(dāng)在轉(zhuǎn)移目的地中不存在匯合點(diǎn)的情況下(步驟S302:否定),命令服務(wù)器確定部14取得直到轉(zhuǎn)移點(diǎn)的末端的API調(diào)用和系統(tǒng)調(diào)用發(fā)布的日志(步驟S304)。此外,關(guān)于所確認(rèn)的API調(diào)用或系統(tǒng)調(diào)用發(fā)布,可以根據(jù)由API或系統(tǒng)調(diào)用所操作的計算資源來進(jìn)行限制,也可以通過事先分析的惡意軟件調(diào)用的API或系統(tǒng)調(diào)用來進(jìn)行限制。
而且,命令服務(wù)器確定部14判定是否在各轉(zhuǎn)移目的地中進(jìn)行API調(diào)用或系統(tǒng)調(diào)用發(fā)布(步驟S305)。其結(jié)果為,當(dāng)未在各轉(zhuǎn)移目的地中進(jìn)行API調(diào)用或系統(tǒng)調(diào)用發(fā)布的情況下(步驟S305:否定),命令服務(wù)器確定部14轉(zhuǎn)到步驟S309的處理。另外,當(dāng)在各轉(zhuǎn)移目的地中進(jìn)行了API調(diào)用或系統(tǒng)調(diào)用發(fā)布的情況下(步驟S305:肯定),命令服務(wù)器確定部14從執(zhí)行日志DB 12取得進(jìn)行轉(zhuǎn)移時參照的數(shù)據(jù)的標(biāo)簽(步驟S306),從通信目的地信息DB 13取得與標(biāo)簽相關(guān)聯(lián)的通信目的地(步驟S307),且按照每個轉(zhuǎn)移目的地取得對轉(zhuǎn)移指令帶來影響的通信目的地。
而且,將在轉(zhuǎn)移到任何轉(zhuǎn)移目的地的情況下都共同的通信目的地判定為命令服務(wù)器(步驟S308)。由此,能夠根據(jù)通過控制轉(zhuǎn)移目的地決定了惡意軟件執(zhí)行的程序代碼的情況,將通信目的地判定為命令服務(wù)器。
然后,命令服務(wù)器確定部14判定是否對所有的轉(zhuǎn)移目的地的組進(jìn)行了步驟S302~步驟S308的處理(步驟S309),在對所有的轉(zhuǎn)移目的地的組未進(jìn)行處理的情況下(步驟S309:否定),返回到步驟S302。另外,在對所有的轉(zhuǎn)移目的地的組進(jìn)行了處理的情況下(步驟S309:肯定),判定是否對全部轉(zhuǎn)移指令進(jìn)行了步驟S301~步驟S309的處理(步驟S310)。其結(jié)果為,命令服務(wù)器確定部14在對全部轉(zhuǎn)移指令未進(jìn)行處理的情況下(步驟S310:否定),返回到步驟S301。另外,在對全部轉(zhuǎn)移指令進(jìn)行了處理的情況下(步驟S310:肯定),直接結(jié)束處理。
[第一實施方式的效果]
如上所述,命令服務(wù)器確定裝置10在惡意軟件11a的執(zhí)行時,針對該惡意軟件11a接收到的數(shù)據(jù),賦予能夠唯一確定該數(shù)據(jù)的發(fā)送源的通信目的地信息的標(biāo)簽,對賦予了該標(biāo)簽的數(shù)據(jù)的傳播進(jìn)行跟蹤。另外,命令服務(wù)器確定裝置10取得被跟蹤的數(shù)據(jù)中的惡意軟件11a執(zhí)行的轉(zhuǎn)移指令所參照的數(shù)據(jù)的標(biāo)簽。而且,命令服務(wù)器確定裝置10基于與所取得的標(biāo)簽對應(yīng)的發(fā)送源的通信目的地信息,確定對惡意軟件11a發(fā)出命令的命令服務(wù)器的通信目的地信息。這樣,在命令服務(wù)器確定裝置10中,由于利用轉(zhuǎn)移指令確定命令服務(wù)器,因此即使只是切換所執(zhí)行的功能的命令,也能夠確定命令服務(wù)器。命令服務(wù)器確定裝置10適合于收取到只指定惡意軟件執(zhí)行的程序代碼的命令時確定命令服務(wù)器的情況,在對惡意軟件的通信內(nèi)容進(jìn)行了混淆/加密的情況下能夠自動地確定命令服務(wù)器。
另外,例如,命令服務(wù)器確定裝置10通過將命令服務(wù)器的IP地址等通信目的地信息登記在黑名單中,能夠切斷與命令服務(wù)器之間的通信,或者能夠進(jìn)行感染終端的發(fā)現(xiàn)/隔離。即,如圖9所例示,作為網(wǎng)絡(luò)攻擊,公知有如下技術(shù):命令服務(wù)器與被惡意軟件感染的感染終端進(jìn)行通信,由此感染終端取得命令服務(wù)器的命令而向信息泄露目的地泄漏信息、或者感染終端從下載站點(diǎn)取得程序而進(jìn)行攻擊正規(guī)站點(diǎn)的DoS攻擊。對于這樣的網(wǎng)絡(luò)攻擊,通過使用登記了命令服務(wù)器的IP地址等通信目的地信息的黑名單,能夠檢測出感染終端與命令服務(wù)器之間的通信而切斷與命令服務(wù)器的通信、或者進(jìn)行感染終端的發(fā)現(xiàn)/隔離,其結(jié)果為,能夠防止信息泄露或DoS攻擊。
[系統(tǒng)結(jié)構(gòu)等]
另外,圖示的各裝置的各結(jié)構(gòu)要素是功能概念的,并不一定需要物理上如圖示那樣構(gòu)成的結(jié)構(gòu)要素。即,各裝置的分散/整合的具體方式不限于圖示的方式,能夠基于各種負(fù)荷或使用狀況等以任意的單位在功能上或者物理上分散/整合構(gòu)成其全部或者一部。此外,關(guān)于由各裝置進(jìn)行的各處理功能,其全部或者任意的一部分通過CPU和由該CPU分析執(zhí)行的程序來實現(xiàn)、或者可以作為基于布線邏輯的硬件來實現(xiàn)。
并且,在本實施方式中說明的各處理中,可以手動地進(jìn)行說明為自動地進(jìn)行的處理的全部或者一部分,或者也可以利用公知的方法自動地進(jìn)行說明為手動地進(jìn)行的處理的全部或者一部分。除此之外,關(guān)于在上述文檔中或附圖中示出的處理步驟、控制步驟、具體名稱、包含各種數(shù)據(jù)或參數(shù)的信息,除了特殊說明的情況之外可以任意地變更。
[程序]
另外,對于在上述實施方式中說明的命令服務(wù)器確定裝置10執(zhí)行的處理,也可以創(chuàng)建利用計算機(jī)可執(zhí)行的語言來描述的程序。例如,關(guān)于第一實施方式的命令服務(wù)器確定裝置10執(zhí)行的處理,也可以創(chuàng)建利用計算機(jī)可執(zhí)行的語言來描述的確定程序。在該情況下,計算機(jī)執(zhí)行確定程序,由此能夠得到與上述實施方式相同的效果。此外,也可以將該確定程序記錄在計算機(jī)可讀取的記錄介質(zhì)中,使計算機(jī)讀入并執(zhí)行該記錄介質(zhì)中記錄確定程序,由此實現(xiàn)與上述第一實施方式相同的處理。以下,對執(zhí)行用于實現(xiàn)與圖1所示的命令服務(wù)器確定裝置10相同的功能的確定程序的計算機(jī)的一例進(jìn)行說明。
圖10是示出執(zhí)行確定程序的計算機(jī)1000的圖。如圖10所例示,計算機(jī)1000例如具有存儲器1010、CPU 1020、硬盤驅(qū)動器接口1030、盤驅(qū)動器接口1040、串行接口1050、視頻適配器1060、網(wǎng)絡(luò)接口1070,這些各部分通過總線1080連接。
如圖10所例示,存儲器1010包含ROM(Read Only Memory:只讀存儲器)1011和RAM(Random Access Memory:隨機(jī)存取存儲器)1012。ROM 1011例如存儲BIOS(Basic Input Output System:基本輸入輸出系統(tǒng))等引導(dǎo)程序。如圖10所例示,硬盤驅(qū)動器接口1030與硬盤驅(qū)動器1090連接。如圖10所例示,盤驅(qū)動器接口1040與盤驅(qū)動器1041連接。例如磁盤或光盤等可裝卸的存儲介質(zhì)插入到盤驅(qū)動器。如圖10所例示,串行接口1050與例如鼠標(biāo)1110、鍵盤1120連接。如圖10所例示,視頻適配器1060與例如顯示器1130連接。
這里,如圖10所例示,硬盤驅(qū)動器1090例如存儲OS 1091、應(yīng)用程序1092、程序模塊1093、程序數(shù)據(jù)1094。即,上述的確定程序作為描述有由計算機(jī)1000執(zhí)行的命令的程序模塊存儲于例如硬盤驅(qū)動器1090中。
另外,上述實施方式中說明的各種數(shù)據(jù)作為程序數(shù)據(jù)存儲于例如存儲器1010或硬盤驅(qū)動器1090中。另外,CPU 1020根據(jù)需要而將存儲器1010或硬盤驅(qū)動器1090中存儲的程序模塊1093或程序數(shù)據(jù)1094讀出到RAM 1012,來執(zhí)行取得步驟、比較步驟、分配控制步驟。
此外,確定程序的程序模塊1093或程序數(shù)據(jù)1094不限于存儲于硬盤驅(qū)動器1090中的情況,也可以例如存儲于可裝卸的存儲介質(zhì)中而經(jīng)由盤驅(qū)動器等由CPU 1020讀出?;蛘?,確定程序的程序模塊1093或程序數(shù)據(jù)1094也可以存儲于經(jīng)由因特網(wǎng)(LAN(Local Area Network:局域網(wǎng))、WAN(Wide Area Network:廣域網(wǎng))等)連接的其他計算機(jī)中而經(jīng)由網(wǎng)絡(luò)接口1070由CPU 1020讀出。
標(biāo)號說明
10:命令服務(wù)器確定裝置;11:惡意軟件執(zhí)行環(huán)境部;11a:惡意軟件;11b:客戶機(jī)OS;11c:虛擬計算機(jī);110:數(shù)據(jù)傳播跟蹤部;110a:盤標(biāo)簽保存區(qū)域;110b:標(biāo)簽賦予部;110c:標(biāo)簽傳播部A;110d:存儲器標(biāo)簽保存區(qū)域;110e:標(biāo)簽傳播部B;110f:寄存器標(biāo)簽保存區(qū)域;111:指令監(jiān)視部;112:虛擬NIC;113:虛擬盤;114:虛擬HW控制器;115:虛擬存儲器;116:虛擬CPU;116b:虛擬寄存器;12:執(zhí)行日志DB;13:通信目的地信息DB;14:命令服務(wù)器確定部。