加密块确定装置以及加密块确定方法转让专利

申请号 : CN201580075210.X

文献号 : CN107210920B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 西川弘毅山本匠

申请人 : 三菱电机株式会社

摘要 :

本发明涉及为了对恶意软件在通信的隐匿中利用的加密逻辑进行分析而在恶意软件的程序内确定存储有加密逻辑的加密块的加密块确定装置。加密块确定装置具有:块候选提取部,其对记录有恶意软件的执行步骤的执行轨迹进行分析,根据执行步骤中是否包含加密性方面具有特征的运算类别,计算表示执行步骤的加密性的评价值,提取该评价值超过阈值L的执行步骤作为加密块的候选即块候选;以及加密块确定部,其将块候选连续超过阈值M的执行轨迹的区域确定为加密块。

权利要求 :

1.一种加密块确定装置,该加密块确定装置具有:

块候选提取部,其对记录有恶意软件的执行步骤的执行轨迹进行分析,根据所述执行步骤中是否包含具有加密性的特征的运算类别,计算表示所述执行步骤的加密性的评价值,提取该评价值超过第一阈值的执行步骤作为加密块的候选即块候选;以及加密块确定部,其将所述块候选连续超过第二阈值的所述执行轨迹的区域确定为加密块。

2.根据权利要求1所述的加密块确定装置,其中,

所述块候选提取部具有与所述执行步骤对应的数组,从所述数组的全部元素中减去每

1个执行步骤的衰减量δ,在所述执行步骤中包含所述运算类别的情况下,追加表示是加密块的似然性的值α作为所述数组的元素,对所述数组的全部元素进行合计,计算表示所述加密性的评价值。

3.根据权利要求1所述的加密块确定装置,其中,

所述块候选提取部根据算术运算或逻辑运算或比特运算的运算类别,计算所述执行步骤的所述评价值。

4.根据权利要求1所述的加密块确定装置,其中,

所述加密块确定装置具有存储所述块候选的块候选存储部,

所述块候选提取部将对所述执行轨迹进行顺向分析和逆向分析而提取出的所述块候选存储到所述块候选存储部中,所述加密块确定部针对所述块候选存储部中存储的所述块候选确定所述加密块。

5.根据权利要求4所述的加密块确定装置,其中,

所述块候选提取部具有与所述执行步骤对应的存储区域,将对所述执行轨迹进行顺向分析而计算出的评价值即顺向评价值存储到所述存储区域中,将对所述执行轨迹进行逆向分析而计算出的评价值即逆向评价值与所述存储区域中存储的所述顺向评价值相加,提取所述顺向评价值和所述逆向评价值的相加值超过第一阈值的执行步骤,作为所述块候选存储到所述块候选存储部中。

6.根据权利要求2所述的加密块确定装置,其中,

在所述数组的构造是队列,对所述队列减去衰减量δ而使所述队列的前端元素成为0的情况下,所述块候选提取部进行出队处理,删除所述前端元素。

7.根据权利要求1所述的加密块确定装置,其中,

所述加密块确定装置具有可视化部,该可视化部对所述块候选提取部计算的表示所述执行步骤的加密性的评价值进行可视化。

8.根据权利要求1所述的加密块确定装置,其中,

所述加密块确定装置具有确定加密块的其它加密块确定装置,所述块候选提取部从计算出表示所述加密性的评价值的所述执行步骤中过滤并提取超过第一阈值的所述执行步骤,将由提取出的所述执行步骤构成的执行轨迹输入到所述其它加密块确定装置。

9.根据权利要求1所述的加密块确定装置,其中,

所述加密块确定装置具有:

执行轨迹取得部,其执行恶意软件的执行文件而取得执行轨迹;以及通信日志分析部,其对通信日志进行分析,输出包含密钥和明文的分析结果,所述块候选提取部从所述执行轨迹取得部取得的所述执行轨迹中提取所述块候选,所述加密块确定部从所述块候选提取部提取出的所述块候选中确定所述加密块,所述通信日志分析部使用加密块确定部确定的所述加密块的信息,对所述通信日志进行分析,输出所述分析结果。

10.一种加密块确定装置的加密块确定方法,对记录有恶意软件的执行步骤的执行轨迹进行分析来确定加密块,其中,所述加密块确定方法具有以下步骤:块候选提取步骤,块候选提取部对所述执行轨迹进行分析,根据所述执行步骤中是否包含具有加密性的特征的运算类别,计算表示所述执行步骤的加密性的评价值,提取该评价值超过第一阈值的执行步骤作为加密块的候选即块候选;以及加密块确定步骤,加密块确定部将所述块候选连续超过第二阈值的所述执行轨迹的区域确定为加密块。

说明书 :

加密块确定装置以及加密块确定方法

技术领域

[0001] 本发明涉及为了对恶意软件在通信的隐匿中利用的加密逻辑进行分析而在恶意软件的程序内确定存储有加密逻辑的加密块的加密块确定装置。

背景技术

[0002] 作为近年来的安全威胁,瞄准特定组织而顽强地进行攻击的标的型攻击日益严重化。标的型攻击通过向标的组织发送邮件,使标的组织的终端感染恶意软件。感染的恶意软件从组织内部与外部的攻击者服务器进行通信,进行攻击程序的下载和组织系统内的信息窃取。
[0003] 以由于恶意软件感染而引起的信息泄露损害的严重化为背景,确定恶意软件泄露了什么信息的技术受到关注。在确定实际已泄露的信息时,通过对个人计算机或服务器等设备生成的日志进行分析,得知恶意软件的活动。
[0004] 但是,在最近的恶意软件中,有的使用加密技术来隐匿通信。这种恶意软件的通信无法直接分析,因此,很难得知恶意软件的活动。
[0005] 因此,需要确定恶意软件在通信的隐匿中利用的加密逻辑及其密钥,对被加密的通信进行解密。通常,该作业需要对恶意软件的机器语言即二进制数据进行分析,需要庞大的劳力和时间。因此,作为确定加密逻辑及其密钥的现有技术,例如有以下的专利文献1、非专利文献1、非专利文献2中公开的方法。
[0006] 在专利文献1中,在内部具有加密函数,为了确定对信息进行加密并上载的恶意软件的加密密钥,记录恶意软件执行的命令的执行轨迹,包含运算数据在内进行分析,由此确定密钥。
[0007] 非专利文献1、非专利文献2提出了如下技术:对执行恶意软件而得到的日志即执行轨迹进行分析,确定恶意软件正在利用的加密逻辑。
[0008] 在非专利文献1中,利用加密处理大多为算术/比特运算的性质,在执行轨迹中,计算比特/逻辑运算的比例,由此确定加密块。
[0009] 在非专利文献2中,利用加密处理大多反复进行同一处理而对信息进行加密的特征,从执行轨迹中检测同一处理的反复即循环,由此确定加密块。
[0010] 现有技术文献
[0011] 专利文献
[0012] 专利文献1:日本特开2013-114637号公报
[0013] 非专利文献
[0014] 非专利文献1:Zhi Wang,Xuxian Jiang,Weidong Cui,Xinyuan Wang and Mike Grace,ReFormat:automatic reverse engineering of encrypted messages,Proceedings of the 14th European Conference on Research in Computer Security,ESORICS'09 2009.
[0015] 非专利文献2:Joan Calvet,Jose M.Fernandez,Jean-Yves Marion,Aligot:Cryptographic Function Identification in Obfuscated Binary Programs,Proceedings of the 19th ACM Conference on Computer and Communications Security,CCS 2012.

发明内容

[0016] 发明要解决的课题
[0017] 在现有技术中,存在在加密块确定阶段中处理速度较慢、存储器需要大容量这样的问题。例如,在非专利文献2的方法中,在检测循环时,需要记录全部可能成为循环的可能性并一一尝试,因此,需要较多计算量,存在处理较慢、存储器需要大容量这样的课题。
[0018] 本发明正是为了解决上述课题而完成的,其目的在于,通过以较少的计算量轻量地确定加密块,实现处理的高速化和使用存储器的削减。
[0019] 用于解决课题的手段
[0020] 为了解决上述课题,本发明的加密块确定装置具有:块候选提取部,其对记录有恶意软件的执行步骤的执行轨迹进行分析,根据所述执行步骤中是否包含加密性方面具有特征的运算类别,计算表示所述执行步骤的加密性的评价值,提取该评价值超过阈值L的执行步骤作为加密块的候选即块候选;以及加密块确定部,其将所述块候选连续超过阈值M的所述执行轨迹的区域确定为加密块。
[0021] 并且,本发明的加密块确定装置的加密块确定方法对记录有恶意软件的执行步骤的执行轨迹进行分析来确定加密块,其中,所述加密块确定方法具有以下步骤:块候选提取步骤,块候选提取部对所述执行轨迹进行分析,根据所述执行步骤中是否包含加密性方面具有特征的运算类别,计算表示所述执行步骤的加密性的评价值,提取该评价值超过阈值L的执行步骤作为加密块的候选即块候选;以及加密块确定步骤,加密块确定部将所述块候选连续超过阈值M的所述执行轨迹的区域确定为加密块。
[0022] 发明效果
[0023] 根据本发明,通过加法命令或减法命令来执行块候选提取处理和加密块确定处理,因此,具有如下的效果:能够以较少的计算量轻量地确定加密块,能够实现处理的高速化和使用存储器的削减。

附图说明

[0024] 图1是示出实施方式1的加密块确定装置的一个结构例的图。
[0025] 图2是示出实施方式1的加密块确定装置1的整体动作流程的流程图。
[0026] 图3是示出表现执行轨迹5中包含的各执行步骤的数据形式的一例的说明图。
[0027] 图4是示出执行轨迹5的具体例的图。
[0028] 图5是示出表现块候选存储部3中记录的块候选的数据形式的一例的说明图。
[0029] 图6是示出块候选存储部3中记录的块候选的具体例的图。
[0030] 图7是示出表现加密块信息6的数据形式的一例的说明图。
[0031] 图8是示出块候选提取部2的动作流程的流程图。
[0032] 图9是示出加密块确定部4的动作流程的流程图。
[0033] 图10是示出实施方式1的队列和队列的各元素的合计值即F(t)的推移的图。
[0034] 图11是示出在实施方式1的执行例中,通过块候选提取处理得到的块候选存储部3的状态的图。
[0035] 图12是示出实施方式2的加密块确定装置1的整体动作流程的流程图。
[0036] 图13是示出实施方式2的队列和队列的各元素的合计值即F(t)的推移的图。
[0037] 图14是示出在实施方式2的执行例中,通过块候选提取处理得到的块候选存储部3的状态的图。
[0038] 图15是示出存储顺向和逆向加密性的值F(t)的相加结果的存储区域的图。
[0039] 图16是示出实施方式4的加密块确定装置1的一个结构例的图。
[0040] 图17是示出表示顺向加密性的评价值的分布的图。
[0041] 图18是示出表示逆向加密性的评价值的分布的图。
[0042] 图19是示出表示顺向和逆向加密性的评价值的相加结果的分布的图。
[0043] 图20是示出实施方式5的加密块确定装置1的一个结构例的图。
[0044] 图21是示出实施方式6的加密块确定装置1的一个结构例的图。
[0045] 图22是示出实施方式1~6所示的加密块确定装置1的硬件结构的例子的图。

具体实施方式

[0046] 实施方式1
[0047] 图1是示出实施方式1的加密块确定装置1的一个结构例的图。
[0048] 在图1中,加密块确定装置1具有块候选提取部2、块候选存储部3、加密块确定部4。
[0049] 块候选提取部2对命令的执行步骤的轨迹结果即执行轨迹5进行分析,根据加密性的特征即算术运算、逻辑运算、比特运算等命令的有无,提取成为构成加密块的执行步骤的候选的块候选,与唯一识别提取出的块候选的块候选ID对应起来进行输出。
[0050] 块候选存储部3存储由块候选提取部2提取出的块候选。
[0051] 加密块确定部4从块候选存储部3中存储的块候选中确定加密块,将所确定的加密块的信息作为加密块信息6进行输出。
[0052] 接着,对实施方式1的加密块确定装置1的动作进行说明。
[0053] 图2是示出实施方式1的加密块确定装置1的整体动作流程的流程图。
[0054] 首先,在步骤S100中,块候选提取部2针对执行轨迹5的各执行步骤,计算加密性的评价值。块候选提取部2对输入的执行轨迹5中包含的各执行步骤的信息进行分析,根据各执行步骤中包含的算术运算、逻辑运算、比特运算等命令的有无,使用对加密性进行评价的评价函数,计算表示加密性的评价值。这里,使用算术运算、逻辑运算、比特运算等作为表示加密性的信息的理由是,加密处理大多包含加法处理、XOR这样的逻辑运算、移位处理这样的比特运算。评价加密性的评价函数和表示加密性的评价值容后再述。
[0055] 这里,对执行轨迹5的数据形式的一例和具体例进行说明。
[0056] 图3是示出表现执行轨迹5中包含的各执行步骤的数据形式的一例的说明图。
[0057] 图4是示出执行轨迹5的具体例的图。
[0058] 在图3中,执行轨迹5中包含的各执行步骤以具有命令的地址、命令(操作代码)、命令对象(操作数)、存储器/寄存器访问信息的数据形式来表现。图4是通过图3所示的数据形式表现的实际的执行轨迹5的具体例,通过记号“!”划分表现命令的地址等信息。
[0059] 接着,在步骤S101中,块候选提取部2提取在步骤S100中计算出的加密性的评价值超过阈值L的执行步骤作为构成加密块的块候选。
[0060] 接着,在步骤S102中,块候选提取部2将在步骤S101中提取出的块候选与块候选ID对应起来记录在块候选存储部3中。
[0061] 图5是示出表现块候选存储部3中记录的块候选的数据形式的一例的说明图。
[0062] 图6是示出块候选存储部3中记录的块候选的具体例的图。
[0063] 在图5中,块候选存储部3中记录的块候选与唯一识别块候选的块候选ID对应起来,如图6的具体例所示,块候选ID和块候选对应起来记录在块候选存储部3中。另外,这里,使用执行轨迹5中的执行步骤的行编号作为块候选ID。并且,还使用执行轨迹5中的执行步骤的行编号作为各执行步骤的执行步骤ID。
[0064] 接着,在步骤S103中,加密块确定部4参照块候选存储部3中记录的块候选,对块候选ID连续的块候选的个数进行计数。
[0065] 接着,在步骤S104中,加密块确定部4将连续的块候选的个数超过阈值M的块候选组确定为加密块,输出加密块信息6。
[0066] 图7是示出表现加密块信息6的数据形式的一例的说明图。
[0067] 在图7中,块ID是唯一识别所确定的加密块的标识符。开始地址表示所确定的加密块开始的位置,例如使用所确定的加密块开头的块候选ID。同样,结束地址表示所确定的加密块结束的位置,例如使用所确定的加密块最后的块候选ID。构成块的命令串是所确定的加密块中包含的块候选和块候选ID的串,块尺寸表示所确定的加密块中包含的块候选和块候选ID的串的个数。
[0068] 以上是加密块确定装置1的整体动作流程。
[0069] 接着,使用图8对块候选提取部2的动作进行详细说明。这里,对向块候选提取部2顺向输入执行轨迹5的情况进行说明。
[0070] 这里,对块候选提取部2使用的评价加密性的评价函数的一例进行说明。
[0071] 本实施方式中使用的评价函数例如由以下的数学式1来定义。
[0072] 【数学式1】
[0073]
[0074]
[0075]
[0076] 其中,F(t)是表示t的加密性的评价值,fi(t)和gi(t)是第i个被激励的衰减函数。
[0077] t是经过时间,这里表示执行轨迹5中的执行步骤是第几个步骤。
[0078] N是在作为计测对象的执行轨迹5中被激励的衰减函数fi(t)的数量,这里表示执行轨迹5中包含的算术运算、逻辑运算、比特运算的个数。
[0079] τi是第i个被激励的衰减函数fi(t)被激励的时刻,这里表示在被激励的时刻执行轨迹5中的执行步骤是第几个步骤。
[0080] α是作为加密性定义的值。
[0081] δ(t)是用于在衰减函数fi(t)被激励的时刻使表示加密性的评价值衰减的值,表示每一个命令的加密性的衰减量。
[0082] 在上述数学式1中,衰减函数fi(t)在处理算术运算、逻辑运算、比特运算的时刻被激励。并且,衰减函数fi(t)仅取正值,因此,在衰减函数gi(t)的值为负的情况下,衰减函数fi(t)为0。
[0083] 接着,参照流程图对块候选提取部2的动作流程进行说明。
[0084] 图8是示出块候选提取部2的动作流程的流程图。
[0085] 首先,在步骤S200中,向块候选提取部2顺向输入执行轨迹5。并且,准备记录表示加密性的评价值作为元素的队列。队列的初始状态为空。
[0086] 接着,在步骤S201中,块候选提取部2读入一行的所输入的执行轨迹5。
[0087] 接着,在步骤S202中,块候选提取部2确认在步骤S201中读入的一行的执行轨迹的命令部分,在命令是算术/逻辑/比特运算的情况下,通过“是”的分支进入步骤S203,在不是这样的情况下,通过“否”的分支进入步骤S204。
[0088] 接着,在步骤S203中,块候选提取部2在队列中追加作为加密性定义的值α。这里,α相当于数学式1中定义的α。
[0089] 接着,在步骤S204中,块候选提取部2计算包含在步骤S203中追加的α在内将队列的全部内容相加而得到的值F(t),在F(t)超过视为加密块候选的阈值L的情况下,通过“是”的分支进入步骤S205,在不是这样的情况下,通过“否”的分支进入步骤S206。这里,F(t)相当于数学式1中定义的F(t)。
[0090] 接着,在步骤S205中,块候选提取部2将当前读入的执行轨迹5及其ID分别作为块候选、块候选ID记录在块候选存储部3中。块候选存储部3中记录的信息除了执行轨迹5及其ID以外,还包含在加密块确定部4中希望作为加密块输出的信息。也可以直接记录执行轨迹5中包含的全部信息。
[0091] 接着,在步骤S206中,块候选提取部2进行从队列中包含的全部元素中分别减去δ的减法处理。这里,δ相当于数学式1中定义的δ(t-τi)。
[0092] 接着,在步骤S207中,块候选提取部2判定队列的开头元素是否为0以下,在队列的开头元素为0以下的情况下,通过“是”的分支进入步骤S208,在不是这样的情况下,通过“否”的分支进入步骤S209。
[0093] 接着,在步骤S208中,块候选提取部2执行出队处理。在出队处理中,进行删除队列的开头元素而使其它元素向前靠的处理。
[0094] 接着,在步骤S209中,块候选提取部2判断是否读入了全部执行轨迹。块候选提取部2确认当前读入的执行轨迹5是否是在步骤S200中输入的执行轨迹5的最后行,在是最后行的情况下,进入“是”的分支,结束块候选提取处理。在不是最后行的情况下,通过“否”的分支返回步骤S201。
[0095] 以上是块候选提取部2的动作流程。
[0096] 在上述说明中,作为保存加密性的值的数据构造利用了队列,但是,只要是能够保存数据的构造即可,也可以使用数组、堆栈、表等。另外,在使用队列的情况下,通过步骤S204的出队处理,能够抑制队列的元素数,因此,能够期待减少步骤S206的减法处理的效果以及抑制存储器消耗的效果。
[0097] 接着,参照流程图对加密块确定部4的动作流程进行说明。
[0098] 图9是示出加密块确定部4的动作流程的流程图。
[0099] 首先,在步骤S300中,加密块确定部4参照块候选存储部3中存储的块候选ID。
[0100] 接着,在步骤S301中,加密块确定部4对所参照的块候选ID连续的数量进行计数,判定连续的数量是否超过阈值M。在连续的数量超过阈值M的情况下,通过“是”的分支进入步骤S302,在不是这样的情况下,通过“否”的分支进入步骤S303。
[0101] 接着,在步骤S302中,加密块确定部4将块候选ID连续的部分确定为加密块,输出包含块候选和块候选ID的信息的加密块信息6。加密块信息6例如是在图7中说明的数据形式。
[0102] 接着,在步骤S303中,加密块确定部4判定是否对块候选存储部3中存储的全部块候选ID进行了处理。在对全部块候选ID进行了处理的情况下,进入“是”的分支,结束加密块确定处理。在未对全部块候选ID进行处理的情况下,通过“否”的分支返回步骤S300。
[0103] 以上是加密块确定部4的动作流程。
[0104] 这里,对上述的块候选提取处理和加密块确定处理的具体执行例进行说明。但是,本执行例只不过是用于帮助理解本发明的一例,并不限定本发明。
[0105] 首先,对块候选提取处理的具体执行例进行说明。
[0106] 图10是示出实施方式1的队列和队列的各元素的合计值即F(t)的推移的图。
[0107] 在图10中,示出针对由31个执行步骤构成的执行轨迹5以从上到下的顺向输入到块候选提取部2的情况。在该执行轨迹5中存在包含算术运算、逻辑运算、比特运算中的任意命令的执行步骤,对图中的“存在命令”的列标记圆形记号来表示该执行步骤。
[0108] 这里,在步骤S207中将视为加密块候选的阈值L设定成8的情况下,F(t)超过8的执行步骤作为块候选记录在块候选存储部3中。另外,在图10中,利用斜体文字示出块候选存储部3中记录的块候选的F(t)的值。
[0109] 接着,对加密块确定处理的具体执行例进行说明。
[0110] 图11是示出在实施方式1的执行例中,通过块候选提取处理得到的块候选存储部3的状态的图。
[0111] 这里,在步骤S301中将块候选ID连续的数量的阈值M设定成5的情况下,块候选ID为4~9的块候选的连续的数量为6,因此,将块候选ID为4~9的块候选确定为加密块,输出加密块信息6。另一方面,块候选ID为13、15的块候选不连续,因此,不视为加密块,不输出加密块信息6。
[0112] 这样,通过进行块候选提取处理和加密块确定处理,能够测定作为加密性的算术运算、逻辑运算、比特运算的分布,因此,能够检测算术运算、逻辑运算、比特运算连续的部分。
[0113] 如上所述,在本实施方式1的发明中,通过加法命令或减法命令来执行块候选提取处理和加密块确定处理,因此,具有如下的效果:能够以较少的计算量轻量地确定加密块,能够实现处理的高速化和使用存储器的削减。
[0114] 并且,在执行轨迹5中,即使是包含加密逻辑的部分,在处理的中途有时也包含算术运算、逻辑运算、比特运算以外的处理。这样,虽然是期待检测为加密块的部分,但是,即使是算术运算、逻辑运算、比特运算不连续的部分,如果接近连续部分,则也能够确定为加密块,因此,能够忽略算术运算、逻辑运算、比特运算以外的命令这样的些许噪声,能够检测为算术运算、逻辑运算、比特运算连续的部分。
[0115] 另一方面,在包含加密逻辑的部分以外,有时也进行数个命令的算术运算、逻辑运算、比特运算。这种情况下,通过加密块确定部4,也能够视为不是加密块而将进行数个命令的算术运算、逻辑运算、比特运算去除。
[0116] 实施方式2
[0117] 在以上的实施方式1中,是对执行轨迹5进行顺向分析,以较少的计算量轻量地确定加密块,接着,在本实施方式2中,说明一并使用对执行轨迹5进行逆向分析的结果而高精度地确定加密块的情况。
[0118] 本实施方式2中的结构与图1所示的实施方式1的结构相同。
[0119] 下面,对实施方式2的加密块确定装置1的动作进行说明。
[0120] 图12是示出实施方式2的加密块确定装置1的整体动作流程的流程图。
[0121] 在图12中,步骤S400~步骤S402与实施方式1的步骤S100~步骤S102相同,因此省略说明。
[0122] 在步骤S403中,块候选提取部2以执行轨迹5的逆向进行步骤S400~步骤S402的处理。其结果是,成为在块候选存储部3中记录有从执行轨迹5的顺向和逆向这两个方向选择出的块候选及其ID的状态。
[0123] 图13是示出实施方式2的队列和队列的各元素的合计值即F(t)的推移的图。
[0124] 在图13中,示出针对由31个执行步骤构成的执行轨迹5以从下到上的逆向输入到块候选提取部2的情况。与图10的情况同样,在该执行轨迹5中存在包含算术运算、逻辑运算、比特运算中的任意命令的执行步骤,对图中的“存在命令”的列标记圆形记号来表示该执行步骤。
[0125] 这里,在步骤S403中将视为加密块候选的阈值L设定成8的情况下,F(t)超过8的执行步骤作为块候选记录在块候选存储部3中。另外,在图13中,利用斜体文字示出块候选存储部3中记录的块候选的F(t)的值。在块候选存储部3中记录块候选时,也可以不登记在执行轨迹5的顺向分析中已经登记的块候选。假设在该执行例中不进行登记。
[0126] 图14是示出在实施方式2的执行例中,通过块候选提取处理得到的块候选存储部3的状态的图。
[0127] 在图14中,示出在块候选存储部3中记录有以顺向和逆向这两个方向对执行轨迹5进行分析后提取出的块候选的状态。
[0128] 这里,在步骤S301中将块候选ID连续的数量的阈值M设定成5的情况下,块候选ID为1~9的块候选的连续的数量为9,因此,将块候选ID为1~9的块候选确定为加密块,输出加密块信息6。另一方面,块候选ID为12~13的块候选虽然连续但是连续的数量为2,因此,不视为加密块,不输出加密块信息6。
[0129] 如上所述,在本实施方式2的发明中,在实施方式1所述的效果的基础上,通过使用评价加密性的评价函数,还具有能够准确地确定加密块的始点和终点这样的效果。在评价加密性的评价函数中,每当发现算术运算、逻辑运算、比特运算时,在队列的元素中追加作为加密性定义的值α,并且,队列中追加的各元素的值分别按照每个步骤减少δ。而且,设对队列的各元素的值全部相加而得到的值F(t)为加密性的指标,因此,在算术运算、逻辑运算、比特运算连续后,加密性的值F(t)急剧减少。因此,能够准确地确定加密块的终点,通过从顺向和逆向这两个方向进行处理,具有能够高精度地确定加密块的始点和终点这样的效果。
[0130] 实施方式3
[0131] 在以上的实施方式2中,在块候选提取部2中,以顺向和逆向分别在块候选存储部3中记录块候选ID,接着,在本实施方式3中,说明先计算顺向和逆向加密性的值F(t),然后一次性在块候选存储部3中记录块候选ID的情况。
[0132] 关于本实施方式3中的结构,在块候选提取部2中具有按照每个块候选ID存储顺向和逆向加密性的值F(t)的相加结果的存储区域,其它结构与实施方式2相同。
[0133] 图15是示出存储顺向和逆向加密性的值F(t)的相加结果的存储区域的图。
[0134] 在图15中,在“F(t)相加结果”的存储区域中存储顺向和逆向加密性的值F(t)的相加结果。
[0135] 下面,对实施方式3的加密块确定装置1的动作进行说明。
[0136] 首先,块候选提取部2顺向执行实施方式1的步骤S201~步骤S206,按照每个块候选ID在“F(t)相加结果”的存储区域中存储将队列的全部内容相加而得到的值即顺向评价值。
[0137] 接着,块候选提取部2逆向执行实施方式1的步骤S201~步骤S206,把将队列的全部内容相加而得到的值即逆向评价值与对应的块候选ID的“F(t)相加结果”的存储区域中存储的顺向评价值相加。
[0138] 接着,在“F(t)相加结果”的值超过视为加密块候选的阈值L的情况下,块候选提取部2将相应的块候选ID和块候选记录在块候选存储部3中。
[0139] 如上所述,在本实施方式3的发明中,在实施方式1所述的效果的基础上,根据顺向和逆向的相加结果在块候选存储部3中记录块候选ID,由此,能够一次性地在块候选存储部3中记录块候选ID,具有能够削减块候选提取处理的处理量这样的效果。
[0140] 实施方式4
[0141] 在以上说明的实施方式1~3中,说明了对执行轨迹5进行分析来确定加密块的处理,接着,在实施方式4中,说明如下的情况:通过曲线图对表示加密性的评价值进行可视化,由此,能够容易地在视觉上判断算术运算、逻辑运算、比特运算的分布。
[0142] 图16是示出实施方式4的加密块确定装置1的一个结构例的图。
[0143] 在图16中,加密块确定装置1具有可视化部7,该可视化部7对表示加密性的评价值进行可视化,输出可视化结果8。其它结构与实施方式1~3的结构相同。
[0144] 下面,对实施方式4的加密块确定装置1的动作进行说明。
[0145] 首先,根据实施方式1~3所示的处理顺序,块候选提取部2按照执行轨迹5的执行步骤的每一行来记录表示加密性的评价值F(t)。这里,成为将执行轨迹5的各执行步骤和表示加密性的评价值F(t)对应起来进行记录的状态。
[0146] 接着,可视化部7例如通过曲线图对块候选提取部2中记录的表示加密性的评价值F(t)进行可视化,向用户显示可视化结果8。
[0147] 图17~图19是示出对表示加密性的评价值进行可视化的一例的图。
[0148] 图17是示出表示顺向加密性的评价值的分布的图。
[0149] 图18是示出表示逆向加密性的评价值的分布的图。
[0150] 图19是示出表示顺向和逆向加密性的评价值的相加结果的分布的图。
[0151] 图中,横轴的“ID”示出执行轨迹5中的执行步骤ID,纵轴的“评价值”示出表示加密性的评价值。
[0152] 如上所述,在本实施方式4的发明中,在实施方式1所述的效果的基础上,通过对表示加密性的评价值的分布进行可视化,具有能够容易地在视觉上判断怀疑是加密块的部分这样的效果。
[0153] 实施方式5
[0154] 在以上的实施方式1~4中,是根据在执行轨迹5的哪个区域中包含较多的算术运算、逻辑运算、比特运算这样的尺度,以较少的处理量确定加密块,接着,在实施方式5中,说明如下的情况:利用实施方式1~4的加密块确定装置1的处理量为轻量的性质,应用加密块确定装置1的块候选提取部2作为输入到其它加密块确定装置的执行轨迹的过滤器。
[0155] 图20是示出实施方式5的加密块确定装置1的一个结构例的图。
[0156] 在图20中,加密块确定装置1具有进行与本发明不同的加密块确定处理的其它加密块确定装置9。其它结构与实施方式1~3的结构相同。
[0157] 下面,对实施方式5的加密块确定装置1的动作进行说明。
[0158] 首先,根据实施方式1~3所示的处理顺序,块候选提取部2对所输入的执行轨迹5进行分析,按照执行轨迹5的执行步骤的每一行来计算表示加密性的评价值F(t)。该情况下,对执行轨迹5进行分析的方向可以是顺向也可以是逆向,也可以一并使用两个方向。
[0159] 接着,块候选提取部2从被赋予计算出的表示加密性的评价值F(t)的执行轨迹5包含的执行步骤中,仅过滤并提取具有所设定的阈值以上的评价值F(t)的执行步骤,将仅包含提取出的执行步骤的执行轨迹输出到其它加密块确定装置9。
[0160] 接着,其它加密块确定装置9对由块候选提取部2过滤出的执行轨迹执行加密块确定处理。
[0161] 如上所述,在本实施方式5的发明中,将块候选提取部2过滤出的执行轨迹输入到其它加密块确定装置9,由此,在其它加密块确定装置9由于处理大量执行轨迹而需要庞大的处理时间和存储器的情况下,具有能够实现其它加密块确定装置9的处理的高速化和使用存储器的削减这样的效果。
[0162] 实施方式6
[0163] 以上说明的实施方式1~5说明了直到对执行轨迹5进行分析来确定加密块为止的处理,接着,在本实施方式6中,说明如下的情况:从作为分析对象的恶意软件的执行文件中提取执行轨迹,加密块确定装置1根据该执行轨迹确定加密块后,根据加密块中使用的加密逻辑对所输入的通信日志进行分析,输出密钥和明文作为分析结果。
[0164] 图21是示出实施方式6的加密块确定装置1的一个结构例的图。
[0165] 在图21中,加密块确定装置1具有执行恶意软件的执行文件10而取得执行轨迹的执行轨迹取得部11、以及使用加密块确定部4输出的加密块信息对通信日志12进行分析而输出包含密钥和明文的分析结果14的通信日志分析部13。其它结构与实施方式1~3的结构相同。
[0166] 下面,对实施方式6的加密块确定装置1的动作进行说明。
[0167] 首先,作为分析对象的执行文件10被输入到执行轨迹取得部11。执行轨迹取得部11执行该执行文件10而取得执行轨迹,将其输入到加密块确定装置1。
[0168] 接着,根据实施方式1~3所示的处理顺序,加密块确定装置1确定执行轨迹中的加密块,输出所确定的加密块的加密块信息。
[0169] 接着,通信日志分析部13使用加密块确定部4输出的加密块信息,将包含作为分析对象的被加密的消息在内的通信日志12和由加密块信息确定的密钥作为输入,输入到由加密块信息确定的加密块,确定明文,输出包含所确定的密钥和明文的分析结果14。另外,作为通信日志分析部13,也可以使用专利文献1中公开的方法。
[0170] 如上所述,在本实施方式6的发明中,根据恶意软件的执行文件高速且自动地确定加密逻辑,能够得到密钥和明文。其结果是,能够自动进行此前由具有高级技术的人手动进行的解密处理,具有能够降低用于对通信日志进行解密的人工费这样的成本的效果。
[0171] 接着,对实施方式1~6所示的加密块确定装置1的硬件结构进行说明。
[0172] 图22是示出实施方式1~6所示的加密块确定装置1的硬件结构的例子的图。
[0173] 加密块确定装置1是计算机,能够通过程序来实现加密块确定装置1的各要素。作为加密块确定装置1的硬件结构,在总线上连接有运算装置15、外部存储装置16、主存储装置17、通信装置18、输入输出装置19。
[0174] 运算装置15是执行程序的CPU(Central Processing Unit:中央处理单元)等。外部存储装置16例如是ROM(Read Only Memory:只读存储器)、闪存、硬盘装置等。主存储装置17例如是RAM(Random Access Memory:随机存取存储器)等。通信装置18例如是通信板等。
输入输出装置19例如是鼠标、键盘、显示装置等。
[0175] 程序通常存储在外部存储装置16中,在载入到主存储装置17的状态下,依次读入到运算装置15并执行。该程序是实现作为构成加密块确定装置1的块候选提取部2、加密块确定部4、可视化部7、执行轨迹取得部11、通信日志分析部13说明的功能的程序。
[0176] 进而,在外部存储装置16中还存储有操作系统(OS),OS的至少一部分载入到主存储装置17,运算装置15执行OS,并且执行上述程序。
[0177] 并且,在实施方式1~6的说明中,块候选存储部3存储的信息和数据以及表示块候选提取部2、加密块确定部4、可视化部7、执行轨迹取得部11、通信日志分析部13的处理结果的信息、数据、信号值和变量值作为文件存储在主存储装置17中。
[0178] 另外,图22的结构只不过是示出各装置的硬件结构的一例,各装置的硬件结构不限于图22中记载的结构,也可以是其它结构。
[0179] 标号说明
[0180] 1:加密块确定装置;2:块候选提取部;3:块候选存储部;4:加密块确定部;5:执行轨迹;6:加密块信息;7:可视化部;8:可视化结果;9:其它加密块确定装置;10:执行文件;11:执行轨迹取得部;12:通信日志;13:通信日志分析部;14:分析结果。