密钥生成源确定装置、密钥生成源确定方法和密钥生成源确定程序与流程

文档序号:16807508发布日期:2019-02-10 13:12阅读:199来源:国知局
密钥生成源确定装置、密钥生成源确定方法和密钥生成源确定程序与流程

本发明涉及密钥生成源确定装置、密钥生成源确定方法和密钥生成源确定程序。



背景技术:

近年来,频繁发生以窃取机密信息为目的而对企业或政府机构进行的标的型攻击,成为安全上的重大威胁。一般的标的型攻击是从向攻击对象发送巧妙地修改了文本的邮件开始的。在该邮件中添加有包含恶意软件的文档文件,当邮件接收者在终端打开该文档的瞬间,该终端感染恶意软件。攻击者从互联网上的指令服务器(c&c服务器:commandandcontrol服务器)控制该恶意软件,从标的组织内部的网络中搜索机密信息,向c&c服务器上传,由此实现目的。以这种机密信息的泄露受害的严重性为背景,对感染了恶意软件的个人计算机或服务器等生成的日志进行解析,从而得知恶意软件在感染终端内的举动的网络取证技术受到关注。

但是,在近来的恶意软件中,有的通过公共密钥加密对通信数据进行加密来隐匿通信数据。这种恶意软件的通信数据在被加密的状态下进行记录,因此,无法直接进行解析。因此,恶意软件解析者需要进行确定恶意软件在通信数据的加密中使用的加密算法和在加密中使用的加密密钥并对被加密的通信进行解密的作业。该作业需要恶意软件的逆向工程,因此,一般需要庞大的劳力和时间。因此,研究了自动确定恶意软件的加密算法的方法、确定加密密钥的方法。

在专利文献1中公开有如下技术:在内部具有加密函数,为了确定对信息进行加密而上传的恶意软件的加密密钥,记录恶意软件执行的命令的执行轨迹,包含运算的数据在内进行解析,由此确定密钥。

在非专利文献1中公开有如下技术:准备已知加密算法的模板,在对该模板和评价对象算法给出相同输入时,如果输出相同,则判断为与模板的算法相同。

现有技术文献

专利文献

专利文献1:日本特开2013-114637号公报

非专利文献

非专利文献1:joancalvet,josem.fernandez,jean-yvesmarion,aligot:cryptographicfunctionidentificationinobfuscatedbinaryprograms、proceedingsofthe19thacmconferenceoncomputerandcommunicationssecurity,ccs2012.

非专利文献2:川古谷裕平、塩治栄太朗、岩村誠、針生剛男、テイント伝搬に基づく解析対象コードの追跡方法、コンピュータセキュリティシンポジウム2012



技术实现要素:

发明要解决的课题

在现有技术中,存在如下课题:即使能够确定恶意软件利用的加密算法,在动态生成密钥的恶意软件中,也无法确定与解密对象的通信日志对应的密钥。这里,动态生成密钥被定义成,在加密中利用的密钥不是被恶意软件硬编码,而是根据恶意软件活动的环境内的信息等生成并加以利用。

动态生成密钥的恶意软件例如使用感染终端上的ip地址作为生成加密密钥的种子,生成在加密中利用的密钥,进行盗取的机密文件的加密。该情况下,在不同终端中生成不同密钥并用于加密。因此,产生受害的终端的密钥(以后称作受害密钥)和恶意软件解析环境下的密钥(以后称作解析密钥)不同。这里,在受害环境下产生泄露信息,因此通过受害密钥进行加密。因此,无法利用在解析环境下得到的解析密钥对被加密的通信日志进行解密。

这样,在现有技术中,存在虽然能够确定解析密钥但是无法确定受害密钥这样的课题。

本发明的目的在于,确定生成受害密钥所需要的信息即密钥生成源,以确定受害密钥。

用于解决课题的手段

本发明的密钥生成源确定装置具有:密钥确定部,其使恶意软件执行加密处理,取得表示所述加密处理的执行状况的执行轨迹,根据所述执行轨迹确定在所述加密处理中使用的加密密钥作为解析密钥;提取部,其从所述执行轨迹中提取所述解析密钥依存的命令的列表作为命令列表;以及取得部,其判定由所述命令列表中包含的调出命令调出的函数是否是取得动态变化的动态信息的动态取得函数,在由所述调出命令调出的函数是所述动态取得函数的情况下,取得所述命令列表作为在所述加密处理中生成了所述解析密钥的程序的至少一部分即密钥生成源的候选。

发明效果

在本发明的密钥生成源确定装置中,提取部根据恶意软件的加密处理的执行轨迹和在加密处理中使用的加密密钥,提取加密密钥依存的命令的命令列表。并且,取得部判定由命令列表中包含的调出命令调出的函数是否是取得动态变化的动态信息的动态取得函数。然后,取得部在由调出命令调出的函数是动态取得函数的情况下,取得命令列表作为在加密处理中生成了加密密钥的程序的至少一部分即密钥生成源的候选。由此,根据本发明的密钥生成源确定装置,能够得到在恶意软件的加密处理中使用的加密密钥的密钥生成源,能够大幅削减对由恶意软件加密的加密文件进行解密的劳力和时间。

附图说明

图1是示出恶意软件动态生成密钥的例子的图。

图2是示出在各个终端中生成不同密钥的状况的图。

图3是示出被委托基于恶意软件对加密通信进行解密的soc/csirt工程师无法利用解析密钥对加密通信进行解密的状况的图。

图4是实施方式1的密钥生成源确定装置10的结构图。

图5是实施方式1的执行轨迹111的具体例。

图6是示出实施方式1的密钥生成源确定装置10的密钥生成源确定方法510和密钥生成源确定程序520的密钥生成源确定处理s100的流程图。

图7是示出实施方式1的密钥生成源取得部130进行的密钥生成源取得处理s130的流程图。

图8是示出根据来自解析密钥确定部120的信息在执行轨迹111上确定哪个存储器是解析密钥121的状况的图。

图9是示出通过感染解析求出与解析密钥121具有依存关系的信息的状况的图。

图10是示出基于感染解析进行解析而得到的命令列表311的图。

图11是示出实施方式1的函数数据库141中存储的动态取得函数411的例子的图。

图12是示出根据多个汇编列表确定作为密钥生成源321的汇编列表的例子的图。

图13是实施方式1的变形例的密钥生成源确定装置10的结构图。

图14是实施方式2的密钥生成源确定装置10a的结构图。

图15是说明需要进行密钥生成源候选322的范围缩小的理由即感染的误传播的图。

图16是示出实施方式2的密钥生成源确定装置10a的密钥生成源确定处理s100a的流程图。

图17是例示实施方式2中的编集距离的测定的图。

图18是实施方式3的密钥生成源确定装置10b的结构图。

图19是示出实施方式3的密钥生成源确定装置10b的密钥生成源确定处理s100b的流程图。

图20是示出生成实施方式3的密钥生成程序151的状况的图。

图21是实施方式4的密钥生成源确定装置10c的结构图。

图22是示出实施方式4的密钥生成源确定装置10c的密钥生成源确定处理s100c的流程图。

具体实施方式

下面,使用附图对本发明的实施方式进行说明。另外,在各图中,对相同或相当的部分标注相同标号。在实施方式的说明中,适当省略或简化相同或相当的部分的说明。

实施方式1

首先,使用图1~图3对动态生成密钥进行说明。

图1是示出恶意软件动态生成密钥的例子的图。

该例子所示的恶意软件使用感染终端上的ip地址作为生成加密密钥的种子,生成在加密中利用的密钥,进行盗取的机密文件的加密。该情况下,在不同终端中生成不同密钥并用于加密处理。

图2是示出在各个受害终端中生成不同密钥的状况的图。受害终端a和受害终端b感染了相同的恶意软件,但是,在恶意软件的加密处理中使用的密钥不同。

图3示出被委托对由恶意软件加密的加密文件进行解密的soc(securityoperationcenter:安全运营中心)/csirt(computersecurityincidentresponseteam:计算机应急响应小组)工程师无法利用解析密钥进行解密的状况。如图3所示,在对恶意软件进行解析的情况下,产生受害的受害环境下的受害密钥和恶意软件的解析环境下的解析密钥不同。在受害环境下产生泄露信息,因此通过受害密钥进行加密。因此,无法利用在解析环境下得到的解析密钥对被加密的通信日志这样的机密文件进行解密。

为了对由恶意软件加密的加密文件进行解密,需要确定恶意软件利用的加密算法和加密密钥。但是,在利用恶意软件感染的终端的环境信息生成密钥的情况下,无法利用在解析环境下得到的密钥对在受害环境下产生的加密文件进行解密。因此,在本实施方式中,说明如下的密钥生成源确定装置10:根据在解析环境下能够确定的密钥的信息,确定利用哪个环境信息作为密钥生成源,能够削减在加密通信的解密中花费的劳力和时间。

***结构的说明***

使用图4对本实施方式的密钥生成源确定装置10的结构进行说明。

在本实施方式中,密钥生成源确定装置10是计算机。密钥生成源确定装置10具有处理器910,并且具有存储装置920、输入接口930、输出接口940这样的其他硬件。存储装置920具有存储器和辅助存储装置。

如图1所示,作为功能结构,密钥生成源确定装置10具有密钥确定部11、密钥生成源取得部130、存储部140。密钥确定部11具有执行轨迹提取部110和解析密钥确定部120。密钥生成源取得部130具有提取部31和取得部32。在存储部140中存储有函数数据库141。

在以下的说明中,将密钥生成源确定装置10中的密钥确定部11(执行轨迹提取部110、解析密钥确定部120)和密钥生成源取得部130(提取部31、取得部32)的功能称作密钥生成源确定装置10的“部”的功能。

密钥生成源确定装置10的“部”的功能通过软件实现。

并且,存储部140通过存储装置920实现。

处理器910经由信号线而与其他硬件连接,对这些其他硬件进行控制。

处理器910是进行处理的ic(integratedcircuit:集成电路)。具体而言,处理器910是cpu(centralprocessingunit:中央处理单元)等。

输入接口930是与鼠标、键盘、触摸面板这样的输入装置连接的端口。具体而言,输入接口930是usb(universalserialbus:通用串行总线)端子。另外,输入接口930也可以是与lan(localareanetwork:局域网)连接的端口。

输出接口940是连接有显示器这样的显示装置的缆线的端口。输出接口940例如是usb端子或hdmi(注册商标)(highdefinitionmultimediainterface:高清晰度多媒体接口)端子。具体而言,显示器是lcd(liquidcrystaldisplay:液晶显示器)。

具体而言,辅助存储装置是rom(readonlymemory:只读存储器)、闪存或hdd(harddiskdrive:硬盘驱动器)。具体而言,存储器是ram(randomaccessmemory:随机存取存储器)。存储部140可以通过辅助存储装置实现,也可以通过存储器实现,还可以通过存储器和辅助存储装置实现。存储部140的实现方法是任意的。

在辅助存储装置中存储有实现“部”的功能的程序。该程序载入到存储器,读入到处理器910,由处理器910来执行。在辅助存储装置中还存储有os(operatingsystem:操作系统)。os的至少一部分载入到存储器,处理器910一边执行os,一边执行实现“部”的功能的程序。

密钥生成源确定装置10可以具有代替处理器910的多个处理器。这些多个处理器分担执行实现“部”的功能的程序。与处理器910同样,各个处理器是进行处理的ic。

表示“部”的功能的处理结果的信息、数据、信号值和变量值存储在存储器、辅助存储装置或处理器910内的寄存器或高速缓冲存储器中。另外,在图4中,连接各部和存储部的箭头表示各部将处理结果存储在存储部中或者各部从存储部读出信息。并且,连接各部的箭头表示控制流。

实现密钥生成源确定装置10的“部”的功能的程序也可以存储在磁盘、软盘、光盘、高密度盘、蓝光(注册商标)盘、dvd(digitalversatiledisc:数字多功能盘)这样的移动记录介质中。

另外,还将实现密钥生成源确定装置10的“部”的功能的程序称作密钥生成源确定程序520。并且,被称作密钥生成源确定程序产品的是记录有密钥生成源确定程序520的存储介质和存储装置,与外观的形式无关,载入有计算机能读取的程序。

***功能结构的说明***

执行轨迹提取部110使恶意软件实际进行动作,取得此时的动作记录即执行轨迹111。此时,通过使恶意软件执行加密处理,取得执行加密处理而得到的执行轨迹111。在执行轨迹111的取得中,例如利用intel的pin、qemu这样的技术。

图5是本实施方式的执行轨迹111的具体例。

执行轨迹111是指程序的动作记录。实际上由执行了程序时执行的命令的地址、命令(操作码)、命令对象(操作数)、针对存储器或寄存器的访问信息、调出的函数名这样的信息构成。

解析密钥确定部120对由执行轨迹提取部110得到的执行轨迹111进行解析,确定在加密处理中利用的加密密钥。此时,由解析密钥确定部120确定的密钥是解析环境下的加密密钥,因此,确定的加密密钥是解析密钥121。

密钥生成源取得部130以由解析密钥确定部120确定的解析密钥121为起点,通过执行轨迹111上的命令追踪与解析密钥121具有依存关系的命令。密钥生成源取得部130追踪执行轨迹111中记录的全部命令,得到命令列即命令列表311。密钥生成源取得部130在得到的命令列表311中包含的调出命令是调出函数数据库141中包含的函数的调出命令的情况下,取得包含该调出命令的命令列表311作为密钥生成源321或作为密钥生成源候选322。

***动作的说明***

使用图6对本实施方式的密钥生成源确定装置10的密钥生成源确定方法510和密钥生成源确定程序520的密钥生成源确定处理s100进行说明。并且,使用图7对本实施方式的密钥生成源取得部130进行的密钥生成源取得处理s130进行说明。

如图6和图7所示,密钥生成源确定处理s100具有密钥确定处理s10(执行轨迹提取处理s110和解析密钥确定处理s120)和密钥生成源取得处理s130(提取处理s20和取得处理s30)。

<密钥确定处理s10>

在密钥确定处理s10中,密钥确定部11执行如下的执行轨迹提取处理s110:使恶意软件执行加密处理,取得表示加密处理的执行状况的执行轨迹111。这里,密钥确定部11在解析环境下执行加密处理。并且,密钥确定部11执行如下的解析密钥确定处理s120:根据执行轨迹111确定在解析环境下执行的加密处理中使用的加密密钥作为解析密钥121。

对密钥确定处理s10进行更加详细的说明。

在执行轨迹提取处理s110中,执行轨迹提取部110取得作为解析对象的恶意软件,使其执行加密处理,取得执行轨迹111。具体而言,通过用户经由输入接口930对执行轨迹提取部110输入作为解析对象的恶意软件。执行轨迹提取部110使所输入的恶意软件执行加密处理,由此得到执行轨迹111。

在解析密钥确定处理s120中,解析密钥确定部120取得由执行轨迹提取部110得到的执行轨迹111。解析密钥确定部120对执行轨迹111进行解析,由此取得解析密钥121。

<密钥生成源取得处理s130>

在密钥生成源取得处理s130中,密钥生成源取得部130的提取部31执行如下的提取处理s10:从执行轨迹111中提取解析密钥121依存的命令的列表作为命令列表311。并且,密钥生成源取得部130的取得部32判定由命令列表311中包含的调出命令调出的函数是否是取得动态变化的动态信息的动态取得函数411。取得部32执行如下的取得处理s20:在由调出命令调出的函数是动态取得函数411的情况下,取得命令列表311作为在加密处理中生成了解析密钥121的程序的至少一部分即密钥生成源321的候选。下面,设密钥生成源321的候选为密钥生成源候选322进行说明。

对密钥生成源取得处理s130进行更加详细的说明。

在步骤s131中,提取部31取得执行轨迹111中的解析密钥121的位置。具体而言,提取部31接收解析密钥121在执行轨迹111上存在于何处的信息,作为解析密钥确定部120确定的解析密钥121的信息。

图8示出根据来自解析密钥确定部120的信息在执行轨迹111上确定哪个存储器是解析密钥121的状况。这里,考虑解析密钥121在16进制下为“aaaaa”且存储在mem2中的情况。这里,mem1、mem2是指存储器的区域。

这里,解析密钥121依存的命令是指与解析密钥121具有依存关系的命令。并且,解析密钥121依存的命令的命令列表311是指追踪与解析密钥121具有依存关系的命令而得到的一连串命令列。

在步骤s132中,提取部31从确定的解析密钥121的位置mem2起追踪解析密钥121依存的命令即与解析密钥121具有依存关系的命令。具体而言,提取部31使用感染解析方法,从解析密钥121的位置mem2起追踪与解析密钥121具有依存关系的命令。关于感染解析,通过使用非专利文献2那样的方法来应对。

图9示出通过感染解析求出与解析密钥具有依存关系的信息的状况。

首先,mem2存储有ecx的值,因此依存于ecx的值。接着,在其前级,ecx存储有与eax的值相加的结果。进而,在其前级,eax存储有mem1的值。这样追踪依存关系时,最终可知mem2的值依存于mem1的值。

图10是示出基于感染解析进行解析而得到的命令列表311的图。命令列表311是汇编列表。

图10的汇编列表是在执行轨迹111整体范围内基于感染解析进行解析的结果。如图10所示,有时取得多个汇编列表。

接着,在步骤s133中,取得部32判定由调出命令即call命令调出的函数是否包含在函数数据库141中。具体而言,取得部32在该命令列表311即汇编列表中提取调出命令即call命令的行,询问与call命令调出的函数相同的函数是否存在于函数数据库141中。

图11是示出函数数据库141中存储的动态取得函数411的例子的图。函数数据库141存储动态取得函数411。

动态取得函数411是取得根据加密处理的执行环境而动态变化的信息作为动态信息(外部信息)的函数。

函数数据库141登记有winsocket这样的通信api(applicationprogramminginterface:应用程序接口)、进行文件读入的api这样的取得外部信息的api作为动态取得函数411。函数数据库141也称作外部信息参照函数数据库。

外部信息也称作动态信息,不是指程序内的表这样的硬编码的信息,而是指ip地址、mac地址、时间这样的按照每个环境变化的信息。

接着,在步骤s134中,取得部32在由call命令调出的函数包含在函数数据库141中的情况下,取得命令列表即汇编列表作为密钥生成源候选322。即,取得部32在询问的函数包含在函数数据库141中的情况下,取得调出询问的函数的汇编列表作为密钥生成源候选322。另外,在本实施方式中,取得部32将密钥生成源候选322决定为密钥生成源321。

图12是示出根据多个汇编列表确定作为密钥生成源321的汇编列表的例子的图。

首先,取得部32从多个汇编列表中取出进行判定的判定对象的汇编列表。接着,密钥生成源取得部130从取出的汇编列表中提取由call命令调出的函数。该情况下,gethostname是该函数。接着,取得部32向函数数据库141发送gethostname的查询,以确认gethostname是否存在于函数数据库141中。在函数数据库141中,检索是否存在该查询。如果是图11的函数数据库141的例子,则存在gethostname,因此,返回true作为响应。这里,在向函数数据库141发送了不存在的查询的情况下,返回false作为响应。取得部32在接收到true时,判定为判定对象的汇编列表是密钥生成源候选322。然后,取得部32将判定为密钥生成源候选322的汇编列表决定为密钥生成源321。

***其他结构***

密钥生成源确定装置10也可以具有与其他网络进行通信的通信接口。通信接口具有接收机和发送机。具体而言,通信接口是通信芯片或nic(networkinterfacecard:网络接口卡)。通信接口作为进行数据通信的通信部发挥功能。接收机作为接收数据的接收部发挥功能,发送机作为发送数据的发送部发挥功能。

并且,在本实施方式中,密钥生成源确定装置10的功能通过软件实现,但是,作为变形例,密钥生成源确定装置10的功能也可以通过硬件实现。

图13是示出本实施方式的变形例的密钥生成源确定装置10的结构的图。

如图13所示,密钥生成源确定装置10具有处理电路909、输入接口930、输出接口940这样的硬件。

处理电路909是实现上述“部”的功能和存储部的专用电子电路。具体而言,处理电路909是单一电路、复合电路、程序化的处理器、并行程序化的处理器、逻辑ic、ga(gatearray:门阵列)、asic(applicationspecificintegratedcircuit:面向特定用途的集成电路)或fpga(field-programmablegatearray:现场可编程门阵列)。

密钥生成源确定装置10也可以具有代替处理电路909的多个处理电路。通过这些多个处理电路整体实现“部”的功能。与处理电路909同样,各个处理电路是专用电子电路。

作为另一个变形例,密钥生成源确定装置10的功能也可以通过软件与硬件的组合实现。即,在密钥生成源确定装置10中,也可以是一部分功能通过专用硬件实现,其他功能通过软件实现。

将处理器910、存储装置920和处理电路909统称作“处理线路”。即,不管密钥生成源确定装置10的结构是图1所示的结构还是图7所示的结构,“部”的功能和存储部都通过处理线路实现。

也可以将“部”改写成“工序”或“步骤”或“处理”。并且,也可以通过固件实现“部”的功能。

***本实施方式的效果的说明***

如上所述,根据本实施方式的密钥生成源确定装置10,能够从恶意软件自动得到确定受害密钥所需要的重要信息即密钥生成源。由此,根据本实施方式的密钥生成源确定装置10,能够大幅削减对基于恶意软件的加密通信进行解密的劳力和时间。

实施方式2

在本实施方式中,主要对与实施方式1的差异进行说明。

在本实施方式中,对与在实施方式1中说明的结构相同的结构标注相同标号并省略其说明。

***结构的说明***

使用图14对本实施方式的密钥生成源确定装置10a的结构进行说明。

密钥生成源确定装置10a在实施方式1的结构的基础上,密钥生成源取得部130具有决定部33。并且,密钥生成源确定装置10a还在存储部140具有程序数据库142。其他功能结构和硬件结构与实施方式1相同。由此,密钥生成源确定装置10a的功能结构在密钥生成源确定装置10的功能结构中追加有决定部33和程序数据库142。并且,密钥生成源确定装置10a的“部”的功能在密钥生成源确定装置10的“部”的功能中追加有决定部33的功能。

另外,在本实施方式中,假设从取得部32接收密钥生成源候选322。

程序数据库142存储程序的模板。程序数据库142预先存储在恶意软件的加密处理中可能使用的密钥生成程序的模板即密钥生成程序模板。

决定部33计算密钥生成源候选322与密钥生成程序模板的相似度412,根据该相似度412判定密钥生成源候选322是否与密钥生成程序模板相似。决定部33在密钥生成源候选322与密钥生成程序模板相似的情况下,将密钥生成源候选322决定为密钥生成源321。换言之,决定部33根据由取得部32取得的密钥生成源候选322决定密钥生成源321。决定部33针对密钥生成源候选322,进行哪个密钥生成源候选322实际上是密钥生成源321这样的范围缩小。

使用图15对需要进行密钥生成源候选322的范围缩小的理由即感染的误传播进行说明。

感染的误传播是指本来没有依存关系,对不追踪的数据误传播了感染。图15示出误传播感染这样的情况。

在图15的汇编列表中进行感染解析时,与图9同样,得到mem2依存于mem1的结果。但是,“xoreax、eax”是与eax的值无关而在eax中代入0的处理。因此,实际上在mem1与mem2之间不存在依存关系。这样,将实际上没有依存关系但是如存在依存关系那样使数据被感染的情况称作感染的误传播。

鉴于产生感染的误传播,为了准确地确定密钥生成源321,需要根据由于误传播而包含错误结果的密钥生成源候选322,缩小至正确的密钥生成源321。

***动作的说明***

使用图16对本实施方式的密钥生成源确定装置10a的密钥生成源确定处理s100a进行说明。

密钥生成源确定处理s100a具有执行轨迹提取处理s110、解析密钥确定处理s120、密钥生成源取得处理s130、判定处理s140。执行轨迹提取处理s110、解析密钥确定处理s120、密钥生成源取得处理s130与在实施方式1中说明的处理相同。

在判定处理s140中,决定部33将各个密钥生成源候选322与程序数据库142中登记的密钥生成程序模板进行比较,将相似的密钥生成源候选322决定为密钥生成源321。

这里,在程序数据库142中预先登记有生成密钥的程序的汇编列表作为密钥生成程序模板。决定部33将包含各个密钥生成源候选322的汇编列表与程序数据库142中登记的汇编列表进行比较,判定是否相似。

这里,在汇编列表彼此的比较中,计算汇编列表中的操作码列的编集距离作为相似度412,在距离为阈值以下的情况下判定为相似。

编集距离也被称作编辑距离,是测定两个字符串的距离时使用的尺度。为了成为相同字符串,需要多次进行字符的追加和删除,使用该次数作为距离。这里,变更是指在删除字符后进行追加,因此需要进行2次操作。

图17例示本实施方式中的编集距离的测定。

首先,在作为比较对象的汇编列表即密钥生成源候选322的汇编列表和程序数据库142中登记的汇编列表中,分别编辑成仅操作码的列表。对该操作码列表进行编集距离的比较。

接着,测定为了使作为比较对象的操作码列表与根据程序数据库142中登记的汇编列表得到的操作码列表完全相同而需要进行几次追加和删除。这里,以操作码单位进行追加和删除。该次数是两个操作码列表之间的距离,在距离低于阈值的情况下,判定为作为比较对象的汇编列表是密钥生成源321或包含密钥生成源321。

在图17的例子中,第4行的操作码不同,并且第6行不存在操作码。因此,这两个操作码列表的距离为“3”。如果该值低于阈值,则判定为作为比较对象的汇编列表包含密钥生成源321。

在相似度的比较中,除此以外,还存在确认模糊散列的一致的方法、通过机器学习来提取并利用密钥生成程序的特征这样的方法。

***本实施方式的效果的说明***

如上所述,根据本实施方式的密钥生成源确定装置10a,能够在高精度状态下从恶意软件自动得到为了确定受害密钥而重要的信息即密钥生成源,能够大幅削减对基于恶意软件的加密通信进行解密的劳力和时间。

实施方式3

在本实施方式中,主要对与实施方式1的差异进行说明。

在本实施方式中,对与在实施方式1中说明的结构相同的结构标注相同标号并省略其说明。

***结构的说明***

使用图18对本实施方式的密钥生成源确定装置10b的结构进行说明。

密钥生成源确定装置10b在实施方式1的结构的基础上具有程序生成部150。其他功能结构和硬件结构与实施方式1相同。由此,密钥生成源确定装置10b的功能结构在密钥生成源确定装置10的功能结构中追加有程序生成部150。并且,密钥生成源确定装置10b的“部”的功能在密钥生成源确定装置10的“部”的功能中追加有程序生成部150的功能。另外,这里,示出对实施方式1追加本实施方式的方式,但是,对实施方式2追加本实施方式也同样成立。

程序生成部150根据密钥生成源321生成密钥生成程序151,该密钥生成程序151生成在执行环境下执行的加密处理中使用的加密密钥。密钥生成程序151是用于生成受害环境下的加密密钥即受害密钥的程序。

***动作的说明***

使用图19对本实施方式的密钥生成源确定装置10b的密钥生成源确定处理s100b进行说明。

生成源确定处理s100b具有执行轨迹提取处理s110、解析密钥确定处理s120、密钥生成源取得处理s130、程序生成处理s150。执行轨迹提取处理s110、解析密钥确定处理s120、密钥生成源取得处理s130与在实施方式1中说明的处理相同。

在程序生成处理s150中,程序生成部150根据从得到的密钥生成源321到解析密钥121连续的汇编列表,生成密钥生成程序151。

程序生成处理s150是利用如果一直追踪执行轨迹111中记录的汇编列表则必定成为密钥生成程序151这一点的处理。

图20是示出本实施方式的密钥生成程序151的生成的图。

如图20所示,密钥生成程序151是对被决定为密钥生成源321的汇编列表附加序言处理的汇编列表而生成的。

首先,程序生成部150取得被决定为密钥生成源321的汇编列表。根据被决定为密钥生成源321的汇编列表,按照执行的顺序读取汇编,由此能够得到密钥生成算法。

进而,程序生成部150从执行轨迹111中提取程序开始时点的存储器状态,由此,还能够设定程序的静态变量。程序生成部150生成汇编列表,该汇编列表进行设定与密钥生成源调出的存储器对应的静态变量的序言处理。程序生成部150生成程序以在被决定为密钥生成源321的汇编列表之前进行序言处理,由此,能够生成汇编中写入的密钥生成程序151。

***本实施方式的效果的说明***

如上所述,根据本实施方式的密钥生成源确定装置10b,能够从恶意软件自动得到密钥生成源和密钥生成程序。根据本实施方式的密钥生成源确定装置10b,能够利用受害环境下的环境信息,根据密钥生成程序生成受害密钥,能够大幅削减对基于恶意软件的加密通信进行解密的劳力和时间。

实施方式4

在本实施方式中,主要对与实施方式1的差异进行说明。

在本实施方式中,对与在实施方式1中说明的结构相同的结构标注相同标号并省略其说明。

***结构的说明***

使用图21对本实施方式的密钥生成源确定装置10c的结构进行说明。

密钥生成源确定装置10c在实施方式1的结构的基础上具有受害密钥取得部160。其他功能结构和硬件结构与实施方式1相同。由此,密钥生成源确定装置10c的功能结构在密钥生成源确定装置10的功能结构中追加有受害密钥取得部160。并且,密钥生成源确定装置10c的“部”的功能在密钥生成源确定装置10的“部”的功能中追加有受害密钥取得部160的功能。另外,这里,示出对实施方式1追加本实施方式的方式,但是,对实施方式2或实施方式3追加本实施方式也同样成立。

受害密钥取得部160根据密钥生成源321、动态取得函数411调出的动态信息和执行环境,取得执行了加密处理时的加密密钥作为受害密钥161。即,受害密钥取得部160将动态取得函数411调出的动态信息作为与感染了恶意软件的受害终端的执行环境一致的信息,使恶意软件实际进行动作,由此,取得在受害终端中执行了加密处理时的加密密钥作为受害密钥161。

另外,在本实施方式中,假设受害密钥取得部160从取得部32接收密钥生成源321。

***动作的说明***

使用图22对本实施方式的密钥生成源确定装置10c的生成源确定处理s100c进行说明。

生成源确定处理s100c具有执行轨迹提取处理s110、解析密钥确定处理s120、密钥生成源取得处理s130、受害密钥取得处理s160。执行轨迹提取处理s110、解析密钥确定处理s120、密钥生成源取得处理s130与在实施方式1中说明的处理相同。

在受害密钥取得处理s160中,受害密钥取得部160根据确定的密钥生成源321设定表示受害终端的执行环境的环境信息,通过使其执行恶意软件而提取受害密钥161。

作为具体例,对密钥生成源321调出的动态取得函数411取得的动态信息是ip地址的情况进行说明。受害密钥取得部160从日志等信息中提取作为解密对象的加密通信即取得了加密文件的受害环境的ip地址。接着,受害密钥取得部160将执行恶意软件的虚拟环境上的ip地址变更成之前得到的受害环境的ip地址。受害密钥取得部160在该状态下使恶意软件进行动作,当提取加密处理的密钥时,能够得到受害环境下的受害密钥161。

***本实施方式的效果的说明***

如上所述,根据本实施方式的密钥生成源确定装置10c,能够从恶意软件自动得到受害密钥。根据本实施方式的密钥生成源确定装置10c,能够利用受害环境下的信息自动生成受害密钥,能够大幅削减对基于恶意软件的加密通信进行解密的劳力和时间。

以上说明了本发明的实施方式1~4,但是,也可以仅采用在这些实施方式的说明中作为“部”说明的部分中的任意一方,还可以采用若干个部分的任意组合。即,密钥生成源确定装置的功能块能够实现在上述实施方式中说明的功能即可,是任意的。密钥生成源确定装置可以任意组合这些功能块来构成,也可以由任意的功能块构成。并且,密钥生成源确定装置也可以不是由一个装置而是由多个装置构成。

并且,对实施方式1~4进行了说明,但是,也可以组合实施这些实施方式中的多个实施方式。并且,也可以组合实施这些实施方式中的多个部分。或者,也可以实施这些实施方式中的一个部分。而且,还可以作为整体或部分地任意组合实施这些实施方式的内容。

另外,上述实施方式是本质上优选的例示,并不意图限制本发明及其应用物和用途的范围,能够根据需要进行各种变更。上述实施方式用于帮助理解本方法,并不用于限定发明。

标号说明

10、10a、10b、10c:密钥生成源确定装置;11:密钥确定部;110:执行轨迹提取部;111:执行轨迹;120:解析密钥确定部;121:解析密钥;130:密钥生成源取得部;31:提取部;311:命令列表;32:取得部;33:决定部;321:密钥生成源;322:密钥生成源候选;140:存储部;141:函数数据库;411:动态取得函数;412:相似度;142:程序数据库;150:程序生成部;151:密钥生成程序;160:受害密钥取得部;161:受害密钥;510:密钥生成源确定方法;520:密钥生成源确定程序;909:处理电路;910:处理器;920:存储装置;930:输入接口;940:输出接口;s10:密钥确定处理;s20:提取处理;s30:取得处理;s100、s100a、s100b、s100c:密钥生成源确定处理;s110:执行轨迹提取处理;s120:解析密钥确定处理;s130:密钥生成源取得处理。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1