本發(fā)明涉及為了對惡意軟件在通信的隱匿中利用的加密邏輯進(jìn)行分析而在惡意軟件的程序內(nèi)確定存儲有加密邏輯的加密塊的加密塊確定裝置。
背景技術(shù):
作為近年來的安全威脅,瞄準(zhǔn)特定組織而頑強地進(jìn)行攻擊的標(biāo)的型攻擊日益嚴(yán)重化。標(biāo)的型攻擊通過向標(biāo)的組織發(fā)送郵件,使標(biāo)的組織的終端感染惡意軟件。感染的惡意軟件從組織內(nèi)部與外部的攻擊者服務(wù)器進(jìn)行通信,進(jìn)行攻擊程序的下載和組織系統(tǒng)內(nèi)的信息竊取。
以由于惡意軟件感染而引起的信息泄露損害的嚴(yán)重化為背景,確定惡意軟件泄露了什么信息的技術(shù)受到關(guān)注。在確定實際已泄露的信息時,通過對個人計算機或服務(wù)器等設(shè)備生成的日志進(jìn)行分析,得知惡意軟件的活動。
但是,在最近的惡意軟件中,有的使用加密技術(shù)來隱匿通信。這種惡意軟件的通信無法直接分析,因此,很難得知惡意軟件的活動。
因此,需要確定惡意軟件在通信的隱匿中利用的加密邏輯及其密鑰,對被加密的通信進(jìn)行解密。通常,該作業(yè)需要對惡意軟件的機器語言即二進(jìn)制數(shù)據(jù)進(jìn)行分析,需要龐大的勞力和時間。因此,作為確定加密邏輯及其密鑰的現(xiàn)有技術(shù),例如有以下的專利文獻(xiàn)1、非專利文獻(xiàn)1、非專利文獻(xiàn)2中公開的方法。
在專利文獻(xiàn)1中,在內(nèi)部具有加密函數(shù),為了確定對信息進(jìn)行加密并上載的惡意軟件的加密密鑰,記錄惡意軟件執(zhí)行的命令的執(zhí)行軌跡,包含運算數(shù)據(jù)在內(nèi)進(jìn)行分析,由此確定密鑰。
非專利文獻(xiàn)1、非專利文獻(xiàn)2提出了如下技術(shù):對執(zhí)行惡意軟件而得到的日志即執(zhí)行軌跡進(jìn)行分析,確定惡意軟件正在利用的加密邏輯。
在非專利文獻(xiàn)1中,利用加密處理大多為算術(shù)/比特運算的性質(zhì),在執(zhí)行軌跡中,計算比特/邏輯運算的比例,由此確定加密塊。
在非專利文獻(xiàn)2中,利用加密處理大多反復(fù)進(jìn)行同一處理而對信息進(jìn)行加密的特征,從執(zhí)行軌跡中檢測同一處理的反復(fù)即循環(huán),由此確定加密塊。
現(xiàn)有技術(shù)文獻(xiàn)
專利文獻(xiàn)
專利文獻(xiàn)1:日本特開2013-114637號公報
非專利文獻(xiàn)
非專利文獻(xiàn)1:zhiwang,xuxianjiang,weidongcui,xinyuanwangandmikegrace,reformat:automaticreverseengineeringofencryptedmessages,proceedingsofthe14theuropeanconferenceonresearchincomputersecurity,esorics'092009.
非專利文獻(xiàn)2:joancalvet,josem.fernandez,jean-yvesmarion,aligot:cryptographicfunctionidentificationinobfuscatedbinaryprograms,proceedingsofthe19thacmconferenceoncomputerandcommunicationssecurity,ccs2012.
技術(shù)實現(xiàn)要素:
發(fā)明要解決的課題
在現(xiàn)有技術(shù)中,存在在加密塊確定階段中處理速度較慢、存儲器需要大容量這樣的問題。例如,在非專利文獻(xiàn)2的方法中,在檢測循環(huán)時,需要記錄全部可能成為循環(huán)的可能性并一一嘗試,因此,需要較多計算量,存在處理較慢、存儲器需要大容量這樣的課題。
本發(fā)明正是為了解決上述課題而完成的,其目的在于,通過以較少的計算量輕量地確定加密塊,實現(xiàn)處理的高速化和使用存儲器的削減。
用于解決課題的手段
為了解決上述課題,本發(fā)明的加密塊確定裝置具有:塊候選提取部,其對記錄有惡意軟件的執(zhí)行步驟的執(zhí)行軌跡進(jìn)行分析,根據(jù)所述執(zhí)行步驟中是否包含加密性方面具有特征的運算類別,計算表示所述執(zhí)行步驟的加密性的評價值,提取該評價值超過閾值l的執(zhí)行步驟作為加密塊的候選即塊候選;以及加密塊確定部,其將所述塊候選連續(xù)超過閾值m的所述執(zhí)行軌跡的區(qū)域確定為加密塊。
并且,本發(fā)明的加密塊確定裝置的加密塊確定方法對記錄有惡意軟件的執(zhí)行步驟的執(zhí)行軌跡進(jìn)行分析來確定加密塊,其中,所述加密塊確定方法具有以下步驟:塊候選提取步驟,塊候選提取部對所述執(zhí)行軌跡進(jìn)行分析,根據(jù)所述執(zhí)行步驟中是否包含加密性方面具有特征的運算類別,計算表示所述執(zhí)行步驟的加密性的評價值,提取該評價值超過閾值l的執(zhí)行步驟作為加密塊的候選即塊候選;以及加密塊確定步驟,加密塊確定部將所述塊候選連續(xù)超過閾值m的所述執(zhí)行軌跡的區(qū)域確定為加密塊。
發(fā)明效果
根據(jù)本發(fā)明,通過加法命令或減法命令來執(zhí)行塊候選提取處理和加密塊確定處理,因此,具有如下的效果:能夠以較少的計算量輕量地確定加密塊,能夠?qū)崿F(xiàn)處理的高速化和使用存儲器的削減。
附圖說明
圖1是示出實施方式1的加密塊確定裝置的一個結(jié)構(gòu)例的圖。
圖2是示出實施方式1的加密塊確定裝置1的整體動作流程的流程圖。
圖3是示出表現(xiàn)執(zhí)行軌跡5中包含的各執(zhí)行步驟的數(shù)據(jù)形式的一例的說明圖。
圖4是示出執(zhí)行軌跡5的具體例的圖。
圖5是示出表現(xiàn)塊候選存儲部3中記錄的塊候選的數(shù)據(jù)形式的一例的說明圖。
圖6是示出塊候選存儲部3中記錄的塊候選的具體例的圖。
圖7是示出表現(xiàn)加密塊信息6的數(shù)據(jù)形式的一例的說明圖。
圖8是示出塊候選提取部2的動作流程的流程圖。
圖9是示出加密塊確定部4的動作流程的流程圖。
圖10是示出實施方式1的隊列和隊列的各元素的合計值即f(t)的推移的圖。
圖11是示出在實施方式1的執(zhí)行例中,通過塊候選提取處理得到的塊候選存儲部3的狀態(tài)的圖。
圖12是示出實施方式2的加密塊確定裝置1的整體動作流程的流程圖。
圖13是示出實施方式2的隊列和隊列的各元素的合計值即f(t)的推移的圖。
圖14是示出在實施方式2的執(zhí)行例中,通過塊候選提取處理得到的塊候選存儲部3的狀態(tài)的圖。
圖15是示出存儲順向和逆向加密性的值f(t)的相加結(jié)果的存儲區(qū)域的圖。
圖16是示出實施方式4的加密塊確定裝置1的一個結(jié)構(gòu)例的圖。
圖17是示出表示順向加密性的評價值的分布的圖。
圖18是示出表示逆向加密性的評價值的分布的圖。
圖19是示出表示順向和逆向加密性的評價值的相加結(jié)果的分布的圖。
圖20是示出實施方式5的加密塊確定裝置1的一個結(jié)構(gòu)例的圖。
圖21是示出實施方式6的加密塊確定裝置1的一個結(jié)構(gòu)例的圖。
圖22是示出實施方式1~6所示的加密塊確定裝置1的硬件結(jié)構(gòu)的例子的圖。
具體實施方式
實施方式1
圖1是示出實施方式1的加密塊確定裝置1的一個結(jié)構(gòu)例的圖。
在圖1中,加密塊確定裝置1具有塊候選提取部2、塊候選存儲部3、加密塊確定部4。
塊候選提取部2對命令的執(zhí)行步驟的軌跡結(jié)果即執(zhí)行軌跡5進(jìn)行分析,根據(jù)加密性的特征即算術(shù)運算、邏輯運算、比特運算等命令的有無,提取成為構(gòu)成加密塊的執(zhí)行步驟的候選的塊候選,與唯一識別提取出的塊候選的塊候選id對應(yīng)起來進(jìn)行輸出。
塊候選存儲部3存儲由塊候選提取部2提取出的塊候選。
加密塊確定部4從塊候選存儲部3中存儲的塊候選中確定加密塊,將所確定的加密塊的信息作為加密塊信息6進(jìn)行輸出。
接著,對實施方式1的加密塊確定裝置1的動作進(jìn)行說明。
圖2是示出實施方式1的加密塊確定裝置1的整體動作流程的流程圖。
首先,在步驟s100中,塊候選提取部2針對執(zhí)行軌跡5的各執(zhí)行步驟,計算加密性的評價值。塊候選提取部2對輸入的執(zhí)行軌跡5中包含的各執(zhí)行步驟的信息進(jìn)行分析,根據(jù)各執(zhí)行步驟中包含的算術(shù)運算、邏輯運算、比特運算等命令的有無,使用對加密性進(jìn)行評價的評價函數(shù),計算表示加密性的評價值。這里,使用算術(shù)運算、邏輯運算、比特運算等作為表示加密性的信息的理由是,加密處理大多包含加法處理、xor這樣的邏輯運算、移位處理這樣的比特運算。評價加密性的評價函數(shù)和表示加密性的評價值容后再述。
這里,對執(zhí)行軌跡5的數(shù)據(jù)形式的一例和具體例進(jìn)行說明。
圖3是示出表現(xiàn)執(zhí)行軌跡5中包含的各執(zhí)行步驟的數(shù)據(jù)形式的一例的說明圖。
圖4是示出執(zhí)行軌跡5的具體例的圖。
在圖3中,執(zhí)行軌跡5中包含的各執(zhí)行步驟以具有命令的地址、命令(操作代碼)、命令對象(操作數(shù))、存儲器/寄存器訪問信息的數(shù)據(jù)形式來表現(xiàn)。圖4是通過圖3所示的數(shù)據(jù)形式表現(xiàn)的實際的執(zhí)行軌跡5的具體例,通過記號“!”劃分表現(xiàn)命令的地址等信息。
接著,在步驟s101中,塊候選提取部2提取在步驟s100中計算出的加密性的評價值超過閾值l的執(zhí)行步驟作為構(gòu)成加密塊的塊候選。
接著,在步驟s102中,塊候選提取部2將在步驟s101中提取出的塊候選與塊候選id對應(yīng)起來記錄在塊候選存儲部3中。
圖5是示出表現(xiàn)塊候選存儲部3中記錄的塊候選的數(shù)據(jù)形式的一例的說明圖。
圖6是示出塊候選存儲部3中記錄的塊候選的具體例的圖。
在圖5中,塊候選存儲部3中記錄的塊候選與唯一識別塊候選的塊候選id對應(yīng)起來,如圖6的具體例所示,塊候選id和塊候選對應(yīng)起來記錄在塊候選存儲部3中。另外,這里,使用執(zhí)行軌跡5中的執(zhí)行步驟的行編號作為塊候選id。并且,還使用執(zhí)行軌跡5中的執(zhí)行步驟的行編號作為各執(zhí)行步驟的執(zhí)行步驟id。
接著,在步驟s103中,加密塊確定部4參照塊候選存儲部3中記錄的塊候選,對塊候選id連續(xù)的塊候選的個數(shù)進(jìn)行計數(shù)。
接著,在步驟s104中,加密塊確定部4將連續(xù)的塊候選的個數(shù)超過閾值m的塊候選組確定為加密塊,輸出加密塊信息6。
圖7是示出表現(xiàn)加密塊信息6的數(shù)據(jù)形式的一例的說明圖。
在圖7中,塊id是唯一識別所確定的加密塊的標(biāo)識符。開始地址表示所確定的加密塊開始的位置,例如使用所確定的加密塊開頭的塊候選id。同樣,結(jié)束地址表示所確定的加密塊結(jié)束的位置,例如使用所確定的加密塊最后的塊候選id。構(gòu)成塊的命令串是所確定的加密塊中包含的塊候選和塊候選id的串,塊尺寸表示所確定的加密塊中包含的塊候選和塊候選id的串的個數(shù)。
以上是加密塊確定裝置1的整體動作流程。
接著,使用圖8對塊候選提取部2的動作進(jìn)行詳細(xì)說明。這里,對向塊候選提取部2順向輸入執(zhí)行軌跡5的情況進(jìn)行說明。
這里,對塊候選提取部2使用的評價加密性的評價函數(shù)的一例進(jìn)行說明。
本實施方式中使用的評價函數(shù)例如由以下的數(shù)學(xué)式1來定義。
【數(shù)學(xué)式1】
其中,f(t)是表示t的加密性的評價值,fi(t)和gi(t)是第i個被激勵的衰減函數(shù)。
t是經(jīng)過時間,這里表示執(zhí)行軌跡5中的執(zhí)行步驟是第幾個步驟。
n是在作為計測對象的執(zhí)行軌跡5中被激勵的衰減函數(shù)fi(t)的數(shù)量,這里表示執(zhí)行軌跡5中包含的算術(shù)運算、邏輯運算、比特運算的個數(shù)。
τi是第i個被激勵的衰減函數(shù)fi(t)被激勵的時刻,這里表示在被激勵的時刻執(zhí)行軌跡5中的執(zhí)行步驟是第幾個步驟。
α是作為加密性定義的值。
δ(t)是用于在衰減函數(shù)fi(t)被激勵的時刻使表示加密性的評價值衰減的值,表示每一個命令的加密性的衰減量。
在上述數(shù)學(xué)式1中,衰減函數(shù)fi(t)在處理算術(shù)運算、邏輯運算、比特運算的時刻被激勵。并且,衰減函數(shù)fi(t)僅取正值,因此,在衰減函數(shù)gi(t)的值為負(fù)的情況下,衰減函數(shù)fi(t)為0。
接著,參照流程圖對塊候選提取部2的動作流程進(jìn)行說明。
圖8是示出塊候選提取部2的動作流程的流程圖。
首先,在步驟s200中,向塊候選提取部2順向輸入執(zhí)行軌跡5。并且,準(zhǔn)備記錄表示加密性的評價值作為元素的隊列。隊列的初始狀態(tài)為空。
接著,在步驟s201中,塊候選提取部2讀入一行的所輸入的執(zhí)行軌跡5。
接著,在步驟s202中,塊候選提取部2確認(rèn)在步驟s201中讀入的一行的執(zhí)行軌跡的命令部分,在命令是算術(shù)/邏輯/比特運算的情況下,通過“是”的分支進(jìn)入步驟s203,在不是這樣的情況下,通過“否”的分支進(jìn)入步驟s204。
接著,在步驟s203中,塊候選提取部2在隊列中追加作為加密性定義的值α。這里,α相當(dāng)于數(shù)學(xué)式1中定義的α。
接著,在步驟s204中,塊候選提取部2計算包含在步驟s203中追加的α在內(nèi)將隊列的全部內(nèi)容相加而得到的值f(t),在f(t)超過視為加密塊候選的閾值l的情況下,通過“是”的分支進(jìn)入步驟s205,在不是這樣的情況下,通過“否”的分支進(jìn)入步驟s206。這里,f(t)相當(dāng)于數(shù)學(xué)式1中定義的f(t)。
接著,在步驟s205中,塊候選提取部2將當(dāng)前讀入的執(zhí)行軌跡5及其id分別作為塊候選、塊候選id記錄在塊候選存儲部3中。塊候選存儲部3中記錄的信息除了執(zhí)行軌跡5及其id以外,還包含在加密塊確定部4中希望作為加密塊輸出的信息。也可以直接記錄執(zhí)行軌跡5中包含的全部信息。
接著,在步驟s206中,塊候選提取部2進(jìn)行從隊列中包含的全部元素中分別減去δ的減法處理。這里,δ相當(dāng)于數(shù)學(xué)式1中定義的δ(t-τi)。
接著,在步驟s207中,塊候選提取部2判定隊列的開頭元素是否為0以下,在隊列的開頭元素為0以下的情況下,通過“是”的分支進(jìn)入步驟s208,在不是這樣的情況下,通過“否”的分支進(jìn)入步驟s209。
接著,在步驟s208中,塊候選提取部2執(zhí)行出隊處理。在出隊處理中,進(jìn)行刪除隊列的開頭元素而使其它元素向前靠的處理。
接著,在步驟s209中,塊候選提取部2判斷是否讀入了全部執(zhí)行軌跡。塊候選提取部2確認(rèn)當(dāng)前讀入的執(zhí)行軌跡5是否是在步驟s200中輸入的執(zhí)行軌跡5的最后行,在是最后行的情況下,進(jìn)入“是”的分支,結(jié)束塊候選提取處理。在不是最后行的情況下,通過“否”的分支返回步驟s201。
以上是塊候選提取部2的動作流程。
在上述說明中,作為保存加密性的值的數(shù)據(jù)構(gòu)造利用了隊列,但是,只要是能夠保存數(shù)據(jù)的構(gòu)造即可,也可以使用數(shù)組、堆棧、表等。另外,在使用隊列的情況下,通過步驟s204的出隊處理,能夠抑制隊列的元素數(shù),因此,能夠期待減少步驟s202的減法處理的效果以及抑制存儲器消耗的效果。
接著,參照流程圖對加密塊確定部4的動作流程進(jìn)行說明。
圖9是示出加密塊確定部4的動作流程的流程圖。
首先,在步驟s300中,加密塊確定部4參照塊候選存儲部3中存儲的塊候選id。
接著,在步驟s301中,加密塊確定部4對所參照的塊候選id連續(xù)的數(shù)量進(jìn)行計數(shù),判定連續(xù)的數(shù)量是否超過閾值m。在連續(xù)的數(shù)量超過閾值m的情況下,通過“是”的分支進(jìn)入步驟s302,在不是這樣的情況下,通過“否”的分支進(jìn)入步驟s303。
接著,在步驟s302中,加密塊確定部4將塊候選id連續(xù)的部分確定為加密塊,輸出包含塊候選和塊候選id的信息的加密塊信息6。加密塊信息6例如是在圖7中說明的數(shù)據(jù)形式。
接著,在步驟s303中,加密塊確定部4判定是否對塊候選存儲部3中存儲的全部塊候選id進(jìn)行了處理。在對全部塊候選id進(jìn)行了處理的情況下,進(jìn)入“是”的分支,結(jié)束加密塊確定處理。在未對全部塊候選id進(jìn)行處理的情況下,通過“否”的分支返回步驟s300。
以上是加密塊確定部4的動作流程。
這里,對上述的塊候選提取處理和加密塊確定處理的具體執(zhí)行例進(jìn)行說明。但是,本執(zhí)行例只不過是用于幫助理解本發(fā)明的一例,并不限定本發(fā)明。
首先,對塊候選提取處理的具體執(zhí)行例進(jìn)行說明。
圖10是示出實施方式1的隊列和隊列的各元素的合計值即f(t)的推移的圖。
在圖10中,示出針對由31個執(zhí)行步驟構(gòu)成的執(zhí)行軌跡5以從上到下的順向輸入到塊候選提取部2的情況。在該執(zhí)行軌跡5中存在包含算術(shù)運算、邏輯運算、比特運算中的任意命令的執(zhí)行步驟,對圖中的“存在命令”的列標(biāo)記圓形記號來表示該執(zhí)行步驟。
這里,在步驟s207中將視為加密塊候選的閾值l設(shè)定成8的情況下,f(t)超過8的執(zhí)行步驟作為塊候選記錄在塊候選存儲部3中。另外,在圖10中,利用斜體文字示出塊候選存儲部3中記錄的塊候選的f(t)的值。
接著,對加密塊確定處理的具體執(zhí)行例進(jìn)行說明。
圖11是示出在實施方式1的執(zhí)行例中,通過塊候選提取處理得到的塊候選存儲部3的狀態(tài)的圖。
這里,在步驟s301中將塊候選id連續(xù)的數(shù)量的閾值m設(shè)定成5的情況下,塊候選id為4~9的塊候選的連續(xù)的數(shù)量為6,因此,將塊候選id為4~9的塊候選確定為加密塊,輸出加密塊信息6。另一方面,塊候選id為13、15的塊候選不連續(xù),因此,不視為加密塊,不輸出加密塊信息6。
這樣,通過進(jìn)行塊候選提取處理和加密塊確定處理,能夠測定作為加密性的算術(shù)運算、邏輯運算、比特運算的分布,因此,能夠檢測算術(shù)運算、邏輯運算、比特運算連續(xù)的部分。
如上所述,在本實施方式1的發(fā)明中,通過加法命令或減法命令來執(zhí)行塊候選提取處理和加密塊確定處理,因此,具有如下的效果:能夠以較少的計算量輕量地確定加密塊,能夠?qū)崿F(xiàn)處理的高速化和使用存儲器的削減。
并且,在執(zhí)行軌跡5中,即使是包含加密邏輯的部分,在處理的中途有時也包含算術(shù)運算、邏輯運算、比特運算以外的處理。這樣,雖然是期待檢測為加密塊的部分,但是,即使是算術(shù)運算、邏輯運算、比特運算不連續(xù)的部分,如果接近連續(xù)部分,則也能夠確定為加密塊,因此,能夠忽略算術(shù)運算、邏輯運算、比特運算以外的命令這樣的些許噪聲,能夠檢測為算術(shù)運算、邏輯運算、比特運算連續(xù)的部分。
另一方面,在包含加密邏輯的部分以外,有時也進(jìn)行數(shù)個命令的算術(shù)運算、邏輯運算、比特運算。這種情況下,通過加密塊確定部4,也能夠視為不是加密塊而將進(jìn)行數(shù)個命令的算術(shù)運算、邏輯運算、比特運算去除。
實施方式2
在以上的實施方式1中,是對執(zhí)行軌跡5進(jìn)行順向分析,以較少的計算量輕量地確定加密塊,接著,在本實施方式2中,說明一并使用對執(zhí)行軌跡5進(jìn)行逆向分析的結(jié)果而高精度地確定加密塊的情況。
本實施方式2中的結(jié)構(gòu)與圖1所示的實施方式1的結(jié)構(gòu)相同。
下面,對實施方式2的加密塊確定裝置1的動作進(jìn)行說明。
圖12是示出實施方式2的加密塊確定裝置1的整體動作流程的流程圖。
在圖12中,步驟s400~步驟s402與實施方式1的步驟100~步驟s102相同,因此省略說明。
在步驟s403中,塊候選提取部2以執(zhí)行軌跡5的逆向進(jìn)行步驟s400~步驟s402的處理。其結(jié)果是,成為在塊候選存儲部3中記錄有從執(zhí)行軌跡5的順向和逆向這兩個方向選擇出的塊候選及其id的狀態(tài)。
圖13是示出實施方式2的隊列和隊列的各元素的合計值即f(t)的推移的圖。
在圖13中,示出針對由31個執(zhí)行步驟構(gòu)成的執(zhí)行軌跡5以從下到上的逆向輸入到塊候選提取部2的情況。與圖10的情況同樣,在該執(zhí)行軌跡5中存在包含算術(shù)運算、邏輯運算、比特運算中的任意命令的執(zhí)行步驟,對圖中的“存在命令”的列標(biāo)記圓形記號來表示該執(zhí)行步驟。
這里,在步驟s403中將視為加密塊候選的閾值l設(shè)定成8的情況下,f(t)超過8的執(zhí)行步驟作為塊候選記錄在塊候選存儲部3中。另外,在圖13中,利用斜體文字示出塊候選存儲部3中記錄的塊候選的f(t)的值。在塊候選存儲部3中記錄塊候選時,也可以不登記在執(zhí)行軌跡5的順向分析中已經(jīng)登記的塊候選。假設(shè)在該執(zhí)行例中不進(jìn)行登記。
圖14是示出在實施方式2的執(zhí)行例中,通過塊候選提取處理得到的塊候選存儲部3的狀態(tài)的圖。
在圖14中,示出在塊候選存儲部3中記錄有以順向和逆向這兩個方向?qū)?zhí)行軌跡5進(jìn)行分析后提取出的塊候選的狀態(tài)。
這里,在步驟s301中將塊候選id連續(xù)的數(shù)量的閾值m設(shè)定成5的情況下,塊候選id為1~9的塊候選的連續(xù)的數(shù)量為9,因此,將塊候選id為1~9的塊候選確定為加密塊,輸出加密塊信息6。另一方面,塊候選id為12~13的塊候選雖然連續(xù)但是連續(xù)的數(shù)量為2,因此,不視為加密塊,不輸出加密塊信息6。
如上所述,在本實施方式2的發(fā)明中,在實施方式1所述的效果的基礎(chǔ)上,通過使用評價加密性的評價函數(shù),還具有能夠準(zhǔn)確地確定加密塊的始點和終點這樣的效果。在評價加密性的評價函數(shù)中,每當(dāng)發(fā)現(xiàn)算術(shù)運算、邏輯運算、比特運算時,在隊列的元素中追加作為加密性定義的值α,并且,隊列中追加的各元素的值分別按照每個步驟減少δ。而且,設(shè)對隊列的各元素的值全部相加而得到的值f(t)為加密性的指標(biāo),因此,在算術(shù)運算、邏輯運算、比特運算連續(xù)后,加密性的值f(t)急劇減少。因此,能夠準(zhǔn)確地確定加密塊的終點,通過從順向和逆向這兩個方向進(jìn)行處理,具有能夠高精度地確定加密塊的始點和終點這樣的效果。
實施方式3
在以上的實施方式2中,在塊候選提取部2中,以順向和逆向分別在塊候選存儲部3中記錄塊候選id,接著,在本實施方式2中,說明先計算順向和逆向加密性的值f(t),然后一次性在塊候選存儲部3中記錄塊候選id的情況。
關(guān)于本實施方式3中的結(jié)構(gòu),在塊候選提取部2中具有按照每個塊候選id存儲順向和逆向加密性的值f(t)的相加結(jié)果的存儲區(qū)域,其它結(jié)構(gòu)與實施方式2相同。
圖15是示出存儲順向和逆向加密性的值f(t)的相加結(jié)果的存儲區(qū)域的圖。
在圖15中,在“f(t)相加結(jié)果”的存儲區(qū)域中存儲順向和逆向加密性的值f(t)的相加結(jié)果。
下面,對實施方式3的加密塊確定裝置1的動作進(jìn)行說明。
首先,塊候選提取部2順向執(zhí)行實施方式1的步驟s201~步驟s206,按照每個塊候選id在“f(t)相加結(jié)果”的存儲區(qū)域中存儲將隊列的全部內(nèi)容相加而得到的值即順向評價值。
接著,塊候選提取部2逆向執(zhí)行實施方式1的步驟s201~步驟s206,把將隊列的全部內(nèi)容相加而得到的值即逆向評價值與對應(yīng)的塊候選id的“f(t)相加結(jié)果”的存儲區(qū)域中存儲的順向評價值相加。
接著,在“f(t)相加結(jié)果”的值超過視為加密塊候選的閾值l的情況下,塊候選提取部2將相應(yīng)的塊候選id和塊候選記錄在塊候選存儲部3中。
如上所述,在本實施方式3的發(fā)明中,在實施方式1所述的效果的基礎(chǔ)上,根據(jù)順向和逆向的相加結(jié)果在塊候選存儲部3中記錄塊候選id,由此,能夠一次性地在塊候選存儲部3中記錄塊候選id,具有能夠削減塊候選提取處理的處理量這樣的效果。
實施方式4
在以上說明的實施方式1~3中,說明了對執(zhí)行軌跡5進(jìn)行分析來確定加密塊的處理,接著,在實施方式4中,說明如下的情況:通過曲線圖對表示加密性的評價值進(jìn)行可視化,由此,能夠容易地在視覺上判斷算術(shù)運算、邏輯運算、比特運算的分布。
圖16是示出實施方式4的加密塊確定裝置1的一個結(jié)構(gòu)例的圖。
在圖16中,加密塊確定裝置1具有可視化部7,該可視化部7對表示加密性的評價值進(jìn)行可視化,輸出可視化結(jié)果8。其它結(jié)構(gòu)與實施方式1~3的結(jié)構(gòu)相同。
下面,對實施方式4的加密塊確定裝置1的動作進(jìn)行說明。
首先,根據(jù)實施方式1~3所示的處理順序,塊候選提取部2按照執(zhí)行軌跡5的執(zhí)行步驟的每一行來記錄表示加密性的評價值f(t)。這里,成為將執(zhí)行軌跡5的各執(zhí)行步驟和表示加密性的評價值f(t)對應(yīng)起來進(jìn)行記錄的狀態(tài)。
接著,可視化部7例如通過曲線圖對塊候選提取部2中記錄的表示加密性的評價值f(t)進(jìn)行可視化,向用戶顯示可視化結(jié)果8。
圖17~圖19是示出對表示加密性的評價值進(jìn)行可視化的一例的圖。
圖17是示出表示順向加密性的評價值的分布的圖。
圖18是示出表示逆向加密性的評價值的分布的圖。
圖19是示出表示順向和逆向加密性的評價值的相加結(jié)果的分布的圖。
圖中,橫軸的“id”示出執(zhí)行軌跡5中的執(zhí)行步驟id,縱軸的“評價值”示出表示加密性的評價值。
如上所述,在本實施方式3的發(fā)明中,在實施方式1所述的效果的基礎(chǔ)上,通過對表示加密性的評價值的分布進(jìn)行可視化,具有能夠容易地在視覺上判斷懷疑是加密塊的部分這樣的效果。
實施方式5
在以上的實施方式1~4中,是根據(jù)在執(zhí)行軌跡5的哪個區(qū)域中包含較多的算術(shù)運算、邏輯運算、比特運算這樣的尺度,以較少的處理量確定加密塊,接著,在實施方式5中,說明如下的情況:利用實施方式1~4的加密塊確定裝置1的處理量為輕量的性質(zhì),應(yīng)用加密塊確定裝置1的塊候選提取部2作為輸入到其它加密塊確定裝置的執(zhí)行軌跡的過濾器。
圖20是示出實施方式5的加密塊確定裝置1的一個結(jié)構(gòu)例的圖。
在圖20中,加密塊確定裝置1具有進(jìn)行與本發(fā)明不同的加密塊確定處理的其它加密塊確定裝置9。其它結(jié)構(gòu)與實施方式1~3的結(jié)構(gòu)相同。
下面,對實施方式5的加密塊確定裝置1的動作進(jìn)行說明。
首先,根據(jù)實施方式1~3所示的處理順序,塊候選提取部2對所輸入的執(zhí)行軌跡5進(jìn)行分析,按照執(zhí)行軌跡5的執(zhí)行步驟的每一行來計算表示加密性的評價值f(t)。該情況下,對執(zhí)行軌跡5進(jìn)行分析的方向可以是順向也可以是逆向,也可以一并使用兩個方向。
接著,塊候選提取部2從被賦予計算出的表示加密性的評價值f(t)的執(zhí)行軌跡5包含的執(zhí)行步驟中,僅過濾并提取具有所設(shè)定的閾值以上的評價值f(t)的執(zhí)行步驟,將僅包含提取出的執(zhí)行步驟的執(zhí)行軌跡輸出到其它加密塊確定裝置9。
接著,其它加密塊確定裝置9對由塊候選提取部2過濾出的執(zhí)行軌跡執(zhí)行加密塊確定處理。
如上所述,在本實施方式5的發(fā)明中,將塊候選提取部2過濾出的執(zhí)行軌跡輸入到其它加密塊確定裝置9,由此,在其它加密塊確定裝置9由于處理大量執(zhí)行軌跡而需要龐大的處理時間和存儲器的情況下,具有能夠?qū)崿F(xiàn)其它加密塊確定裝置9的處理的高速化和使用存儲器的削減這樣的效果。
實施方式6
以上說明的實施方式1~5說明了直到對執(zhí)行軌跡5進(jìn)行分析來確定加密塊為止的處理,接著,在本實施方式6中,說明如下的情況:從作為分析對象的惡意軟件的執(zhí)行文件中提取執(zhí)行軌跡,加密塊確定裝置1根據(jù)該執(zhí)行軌跡確定加密塊后,根據(jù)加密塊中使用的加密邏輯對所輸入的通信日志進(jìn)行分析,輸出密鑰和明文作為分析結(jié)果。
圖21是示出實施方式6的加密塊確定裝置1的一個結(jié)構(gòu)例的圖。
在圖21中,加密塊確定裝置1具有執(zhí)行惡意軟件的執(zhí)行文件10而取得執(zhí)行軌跡的執(zhí)行軌跡取得部11、以及使用加密塊確定部4輸出的加密塊信息對通信日志11進(jìn)行分析而輸出包含密鑰和明文的分析結(jié)果12的通信日志分析部10。其它結(jié)構(gòu)與實施方式1~3的結(jié)構(gòu)相同。
下面,對實施方式6的加密塊確定裝置1的動作進(jìn)行說明。
首先,作為分析對象的執(zhí)行文件10被輸入到執(zhí)行軌跡取得部11。執(zhí)行軌跡取得部11執(zhí)行該執(zhí)行文件10而取得執(zhí)行軌跡,將其輸入到加密塊確定裝置1。
接著,根據(jù)實施方式1~3所示的處理順序,加密塊確定裝置1確定執(zhí)行軌跡中的加密塊,輸出所確定的加密塊的加密塊信息。
接著,通信日志分析部13使用加密塊確定部4輸出的加密塊信息,將包含作為分析對象的被加密的消息在內(nèi)的通信日志12和由加密塊信息確定的密鑰作為輸入,輸入到由加密塊信息確定的加密塊,確定明文,輸出包含所確定的密鑰和明文的分析結(jié)果14。另外,作為通信日志分析部13,也可以使用專利文獻(xiàn)1中公開的方法。
如上所述,在本實施方式6的發(fā)明中,根據(jù)惡意軟件的執(zhí)行文件高速且自動地確定加密邏輯,能夠得到密鑰和明文。其結(jié)果是,能夠自動進(jìn)行此前由具有高級技術(shù)的人手動進(jìn)行的解密處理,具有能夠降低用于對通信日志進(jìn)行解密的人工費這樣的成本的效果。
接著,對實施方式1~6所示的加密塊確定裝置1的硬件結(jié)構(gòu)進(jìn)行說明。
圖22是示出實施方式1~6所示的加密塊確定裝置1的硬件結(jié)構(gòu)的例子的圖。
加密塊確定裝置1是計算機,能夠通過程序來實現(xiàn)加密塊確定裝置1的各要素。作為加密塊確定裝置1的硬件結(jié)構(gòu),在總線上連接有運算裝置15、外部存儲裝置16、主存儲裝置17、通信裝置18、輸入輸出裝置19。
運算裝置15是執(zhí)行程序的cpu(centralprocessingunit:中央處理單元)等。外部存儲裝置16例如是rom(readonlymemory:只讀存儲器)、閃存、硬盤裝置等。主存儲裝置17例如是ram(randomaccessmemory:隨機存取存儲器)等。通信裝置18例如是通信板等。輸入輸出裝置19例如是鼠標(biāo)、鍵盤、顯示裝置等。
程序通常存儲在外部存儲裝置16中,在載入到主存儲裝置17的狀態(tài)下,依次讀入到運算裝置15并執(zhí)行。該程序是實現(xiàn)作為構(gòu)成加密塊確定裝置1的塊候選提取部2、加密塊確定部4、可視化部7、執(zhí)行軌跡取得部11、通信日志分析部13說明的功能的程序。
進(jìn)而,在外部存儲裝置16中還存儲有操作系統(tǒng)(os),os的至少一部分載入到主存儲裝置17,運算裝置15執(zhí)行os,并且執(zhí)行上述程序。
并且,在實施方式1~6的說明中,塊候選存儲部3存儲的信息和數(shù)據(jù)以及表示鎖候選提取部2、加密塊確定部4、可視化部7、執(zhí)行軌跡取得部11、通信日志分析部13的處理結(jié)果的信息、數(shù)據(jù)、信號值和變量值作為文件存儲在主存儲裝置17中。
另外,圖22的結(jié)構(gòu)只不過是示出各裝置的硬件結(jié)構(gòu)的一例,各裝置的硬件結(jié)構(gòu)不限于圖22中記載的結(jié)構(gòu),也可以是其它結(jié)構(gòu)。
標(biāo)號說明
1:加密塊確定裝置;2:塊候選提取部;3:塊候選存儲部;4:加密塊確定部;5:執(zhí)行軌跡;6:加密塊信息;7:可視化部;8:可視化結(jié)果;9:其它加密塊確定裝置;10:執(zhí)行文件;11:執(zhí)行軌跡取得部;12:通信日志;13:通信日志分析部;14:分析結(jié)果。