确定装置、确定方法及确定程序与流程

文档序号:12513042阅读:360来源:国知局
确定装置、确定方法及确定程序与流程

本发明涉及确定装置、确定方法及确定程序。



背景技术:

众所周知,近年来以BOT、下载器为代表的很多恶意软件从设有恶意的程序的站点(以下,称为恶意软件下载站点)取得程序代码并执行,并且进行功能扩充。在这样的功能扩充中,追加了向外部服务器的攻击、信息榨取等造成进一步的受害的功能。因此,为了将感染后的受害抑制到最小限度,必须干扰向恶意软件下载站点的通信,并阻碍功能扩充。

当前,为了干扰向恶意软件下载站点的通信,采取了对通过恶意软件的动态分析而得到的通信目的地进行黑名单化的对策。由于恶意软件也从正规站点取得程序代码并执行,因此如果将通过动态分析而得到的通信目的地全部黑名单化,则会导致通信的误切断。

因此,如非专利文献1所记载,执行了基于所下载的文件是否为恶意软件而进行的下载站点的确定。一般地,是否为恶意软件的判定处理是基于防病毒软件的检查结果、执行文件时所发生的注册表操作等行为而进行的。

现有技术文献

非专利文献

非专利文献1:畑田充弘、田中恭之、稻积孝纪、“基于砂箱分析结果的对URL黑名单生成的研究”计算机安全研讨会2013论文集(畑田充弘、田中恭之、稲積孝紀、「サンドボックス分析結果に基づくURLブラックリスト生成についての一検討」コンピュータセキュリティシンポジウム2013論文集)



技术实现要素:

发明要解决的课题

但是,在上述的以往技术中,存在无法确切地确定恶意的站点、恶意的下载数据的课题。即,在以往的技术中,无法正确地识别恶意软件与所下载的数据。因此,无法对在恶意软件的动态分析中发生的通信的通信目的地与OS(操作系统)上的对象(程序代码、文件)的依赖关系进行分析,无法确定通信发生的原因、文件数据的取得源。

其结果,在无法直接恶意判定执行数据、在从下载站点取得的程序代码进一步从其它下载站点取得程序代码来执行这样的成为多级结构的情况下,存在看漏恶意的站点、恶意的下载数据这样的课题。

另外,恶意软件大多从恶意软件下载站点取得程序代码并执行,由此进行功能扩充。在上述的以往的技术中,为了防止该功能扩充,通过动态分析而得到用于干扰恶意软件向恶意软件下载站点进行通信的黑名单,在通过动态分析得到的站点中还包括正规站点,因此有时将正规站点错误地确定为下载站点。

解决课题的手段

为了解决上述课题并达到目的,本发明的确定装置的特征在于,其具备:监视部,其对分析对象的恶意软件进行监视,作为日志数据而取得该恶意软件、从通信目的地下载的下载数据、与所述恶意软件或所述下载数据的通信目的地之间进行的数据的交接关系;生成部,其使用由所述监视部取得的日志数据,生成依赖关系图形,该依赖关系图形是将所述恶意软件、所述下载数据及所述通信目的地作为节点,将各节点的依赖关系作为边缘的有向图形;及确定部,其将由所述生成部生成的依赖关系图形的各节点与已知的恶意信息进行对照来检测恶意节点,以该恶意的节点为基点而从终点向起点方向追溯边缘,将所追溯的节点确定为新的恶意节点。

并且,本发明的特定方法为通过确定装置执行的确定方法,其特征在于,具备:对分析对象的恶意软件进行监视,作为日志数据而取得该恶意软件、从通信目的地下载的下载数据、与所述恶意软件或所述下载数据的通信目的地之间进行的数据的交接关系的监视工序;使用通过所述监视工序取得的日志数据,生成将所述恶意软件、所述下载数据及所述通信目的地作为节点并将各节点的依赖关系作为边缘的有向图形即依赖关系图形的生成工序;及将通过所述生成工序生成的依赖关系图形的各节点与已知的恶意信息进行对照来检测恶意节点,并以该恶意的节点为基点而从终点向起点方向追溯边缘,将所追溯的节点确定为新的恶意节点的确定工序。

并且,本发明的确定程序使计算机执行如下步骤:对分析对象的恶意软件进行监视,作为日志数据而取得该恶意软件、从通信目的地下载的下载数据、与所述恶意软件或所述下载数据的通信目的地之间进行的数据的交接关系的监视步骤;使用通过所述监视步骤取得的日志数据,生成将所述恶意软件、所述下载数据及所述通信目的地作为节点并将各节点的依赖关系作为边缘的有向图形即依赖关系图形的生成步骤;及将通过所述生成步骤生成的依赖关系图形的各节点与已知的恶意信息进行对照来检测恶意节点,并以该恶意的节点为基点而从终点向起点方向追溯边缘,将所追溯的节点确定为新的恶意节点的确定步骤。

发明效果

根据本发明,能够确切地确定恶意的站点、恶意的下载数据。

附图说明

图1是表示第一实施方式的确定装置的整体结构的概要结构图。

图2是表示标签的结构例的图。

图3是表示依赖关系图形的例子的图。

图4是对使用已知的恶意信息来判定恶意的节点的恶意判定处理进行说明的图。

图5是对以恶意的节点为起点来追溯依赖关系而确定恶意的通信目的地的确定处理进行说明的图。

图6是表示由第一实施方式的确定装置而进行的日志的取得处理的流程的流程图。

图7是表示由第一实施方式的确定装置而进行的恶意通信目的地的确定处理的流程的流程图。

图8是表示执行确定程序的计算机的图。

具体实施方式

下面,根据附图,对本申请的确定装置、确定方法及确定程序的实施方式进行详细说明。另外,本申请的确定装置、确定方法及确定程序不限于该实施方式。

[第一实施方式]

在下面的实施方式中,依次说明第一实施方式的确定装置的结构及处理的流程,最后对第一实施方式的效果进行说明。

[第一实施方式的确定装置的结构]

首先,使用图1,对第一实施方式的确定装置10进行说明。图1是表示第一实施方式的确定装置的整体结构的概要结构图。如图1所示,确定装置10具备恶意软件11、客户OS12、虚拟计算机13、日志DB(数据库)14、生成部15及确定部16。另外,确定装置10与多个恶意信息DB20连接,从恶意信息DB20取得已知的恶意信息。

确定装置10的恶意软件执行环境部10a由恶意软件11、客户OS12及虚拟计算机13构成。客户OS12是用于对恶意软件11进行动态分析的环境。另外,恶意软件11在客户OS12上执行,执行API(Application Programming Interface:应用编程接口)调用、系统呼叫的发行这样的命令。另外,在客户OS12上也可以使成为浏览器等恶意软件11的攻击对象的进程进行动作。

恶意软件执行环境部10a使恶意软件11在客户OS12上进行动作,使用污点分析技术而对恶意软件11执行的命令和执行时的数据流进行追踪。污点分析技术是指,对数据设定标签,按照传输规则来传输标签,从而对分析系统内的数据的传输进行追踪的技术。标签是指对数据赋予的属性信息,设定数据的出处、种类。另外,传输规则是指传输标签的条件,一般将数据的复制、计算设定为传输的条件。例如,在对接收数据的利用用途进行分析的情况下,对接收数据设定可以唯一地确定取得源的标签,根据数据的复制、计算而传输标签。通过确认对作为API的自变量而传递的数据设定标签,从而能够分析接收数据是用作API的自变量的数据。另外,污点分析技术通常使用虚拟计算机技术来实现,标签在与数据不同的专用的记录区域中以与数据取得对应的方式被保持。具体地,恶意软件执行环境部10a首先将成为分析对象的恶意软件11设置在客户OS12上,在与恶意软件11的文件对应的盘区域中设定监视对象标签(监视对象标志为有效的标签)。之后,恶意软件执行环境部10a执行分析对象的恶意软件11。

在恶意软件执行环境部10a中,命令监视部13a对恶意软件11执行的命令进行监视,数据流分析部13b以数据接收API与恶意软件的程序代码数据为起点,对恶意软件执行环境部10a内的数据流进行追踪。虚拟计算机13具备命令监视部13a及数据流分析部13b。

命令监视部13a对分析对象的恶意软件11进行监视,作为日志数据而取得该恶意软件11、从通信目的地下载的下载数据、与恶意软件11或下载数据的通信目的地之间进行的数据的交接关系。

具体地,命令监视部13a对恶意软件11的文件赋予标签来进行监视,在该恶意软件11调用了作为监视对象的API的数据接收API的情况下,在将监视对象标志设为有效的基础上,对与该API相关的数据赋予能够唯一地确定该数据的发送源的标签,通过对赋予了该标签的数据的传输进行追踪,从而取得日志数据。

对命令监视部13a的处理具体说明如下:首先,命令监视部13a在恶意软件11的分析中取得命令指针寄存器的值,并向数据流分析部13b询问在命令指针寄存器所指的存储器区域中是否赋有监视对象标签。然后,进行了询问的结果,在对数据设定有监视对象标签的情况下,命令监视部13a将该命令判断为监视对象。执行监视对象的call(呼叫)命令,在通过该call命令调用的对象不是监视对象API的情况下,将比该命令更深的嵌套的全部命令判断为执行了监视对象的call命令的程序代码的动作内容,并设为监视对象。另外,命令监视部13a在也考虑了呼叫堆栈的基础上,识别监视对象的各个命令。该登记在返回到call命令的下一个地址时被解除。

接着,命令监视部13a在调出了监视对象的API的情况下,进行与监视对象API的类别相应的处理。类别大体存在三个。一个是用于设定标签的API,另一个是用于确认标签的API,最后一个是进行设定及确认的API。哪个API属于哪个类别是事先设定的。

例如,假设数据接收API是设定标签的API,数据发送API是确认标签的API。另外,假设文件写入API及用于代码植入的存储器写入API是确认标签来设定标签的API的。在设定标签的API中,设定能够唯一地确定取得源的标签。通过进行这样的处理,从而对恶意软件分析时的恶意软件的程序代码和接收数据的接收用途进行分析,并将其结果保存到日志DB14。

在此,使用图2,对所设定的标签的结构例进行说明。图2是表示标签的结构例的图。在图2的例子中,表示64比特长的标签。如图2所示,标签由监视对象标志、写入ID、数据ID构成。

监视对象标志是表示是监视执行的对象的标志值。另外,写入ID是对被赋予了标签的数据是否为写入到文件、存储器的数据的情况进行管理的值,在文件写入时和代码植入时被提供唯一的值。最后的数据ID是能够唯一地确定数据的取得源的值。

在此,取得源是指与接收数据的发送源相关的信息即通信目的地信息(IP地址、FQDN(Fully Qualified Domain Name:完全限定域名)、URL(Uniform Resource Locator:统一资源定位符)等)。通信目的地信息的粒度是根据由确定部16想要抽取的信息而在分析前事先决定的。另外,写入ID、数据ID作为未设定的状态的值而设为0。即,监视对象标志是1(有效),除此之外成为0的状态的标签是对分析对象的恶意软件设定的监视对象标签。另外,对由数据接收API接收到的数据设定的是监视对象标志为1,写入ID为0且数据ID为0以外的标签。另外,标签所附带的通信目的地信息通过在执行恶意软件分析时对由恶意软件所执行的网络关联API进行监视、记录来确定,关于该标签的长度,可根据安装而在可保持监视对象标志、写入ID、数据ID的范围中任意地变更。

当数据流分析部13b从命令监视部13a受理在命令指针寄存器所指的存储器区域中是否赋有监视对象标签的询问时,判定对发出该询问的存储器区域是否赋有监视对象标签,并将判定的结果作为询问的结果而通知给命令监视部13a。日志DB14保持由恶意软件执行环境部10a収集的日志。

生成部15使用通过命令监视部13a而取得的日志数据,生成将恶意软件11、下载数据及通信目的地作为节点并将各节点的依赖关系作为边缘的有向图形即依赖关系图形。在此,关于各节点,使依赖关系图形中具备能够映射已有的恶意信息的粒度的节点。另外,连结节点间的边缘作为以终点节点的恶意为依据而能够说明起点节点的恶意的关系性而保持数据依赖关系。具体地,使用边缘来保持与数据执行相关的依赖关系、与数据保存相关的依赖关系、与通信目的地决定相关的依赖关系。

在与数据执行相关的依赖关系中,保持程序代码的取得源信息,表示有无数据的执行。关于该依赖关系,相当于如下情况:在存储器上直接执行来自通信目的地的接收数据的情况及执行从文件读入的数据的情况、执行通过其它程序而植入的数据的情况。通过在终点节点中具备程序代码的边缘来表现该依赖关系。

在与数据保存相关的依赖关系中,保持文件数据的取得源信息。通过保持该依赖关系,能够根据文件的恶意判定结果而对文件内数据的取得源进行恶意判定。从通信目的地接收到的数据被保存到文件的情况、进行文件的复制的情况、程序代码将自己作为文件而切出的情况相当于该依赖关系。通过在终点节点中具备文件的边缘来表现该依赖关系。

在与通信目的地决定相关的依赖关系中,本依赖关系保持通信目的地信息的出处。在根据通信目的地的恶意判定结果来判断恶意的情况下,决定了通信目的地的通信目的地信息的出处很重要,而通信内容的出处并不重要。本依赖关系能够根据通信目的地的恶意信息来进行通信目的地信息的出处的恶意判定。基于通信目的地、文件、程序代码的通信目的地的决定相当于该依赖关系,在终点节点中具备通信目的地的边缘表现本依赖关系。

在此,使用图3,对依赖关系图形的例子进行说明。图3是表示依赖关系图形的例子的图。如图3所示,表示执行从通信目的地A下载的文件,进行通信目的地B与通信目的地C的通信,并从通信目的地C下载新的文件时的依赖关系。在该例子中,依赖关系图形在节点中具有通信目的地、程序代码、文件。对通信目的地映射公开黑名单,对程序代码映射调用了确定API等启发式检测结果,对文件映射基于防病毒软件的检查结果。

另外,在这些节点之间存在如下的依赖关系。首先,在终点节点中具备通信目的地的情况下,并非是进行了通信的程序代码自身而是决定了通信目的地的要因是恶意,因此将通信目的地信息的出处作为起点节点。另外,在终点节点中具备文件节点的情况下,将文件数据的出处作为起点节点。最后,在终点中具备程序代码节点的情况下,将程序代码数据的出处作为起点节点。使用以上的节点和边缘,图3表示执行从通信目的地A下载的文件A,并从通信目的地C取得新的文件B为止的一系列的依赖关系。

在此,对生成依赖关系图形的过程进行说明。在此的例子中,假设每当生成图3例示的依赖关系图形时,在恶意软件执行环境部10a中进行以下的动作。首先,分析对象的恶意软件11指定通信目的地A来进行通信,从通信目的地A下载了文件A。之后,将文件A作为程序代码而执行,该程序代码分别指定通信目的地B和通信目的地C而进行了通信。其结果,从通信目的地C下载了新的文件B。假设在恶意软件执行环境部10a中进行了这样的动作,下面对生成依赖关系图形的过程进行说明。

首先,仅对分析对象程序代码所引起的动作进行监视,因此恶意软件执行环境部10a在设定了监视对象标签之后执行分析对象的恶意软件11。然后,在执行分析对象的恶意软件11的期间,命令监视部13a对与通信、文件写入,存储器写入相关的API调用、赋有监视对象标签的数据的执行有无进行监视。在分析中程序代码调用了数据发送API的情况下,命令监视部13a关于指定对数据发送API作为自变量传递的通信目的地信息的数据,确定所设定的标签,与通信目的地信息匹配地记录到日志。

此时,在设定有与对指定作为自变量而传递的通信目的地信息的数据调用数据发送API的程序代码相同的标签的情况或未设定有标签的情况下,生成部15判断为该程序代码指定了通信目的地。由此,恶意软件与通信目的地A的依赖关系(图4的(1))、程序代码与通信目的地B的依赖关系(图4的(4))及程序代码与通信目的地C的依赖关系(图4的(5))被明确,生成部15在边缘连结分析对象程序代码与通信目的地A,另外,在边缘连结程序代码与通信目的地B。

另外,命令监视部13a在调用数据接收API的情况下,恶意软件执行环境部设定对接收数据而具备数据ID的标签,与取得源的通信目的地信息匹配地记录到日志。

之后,在程序代码调用了文件写入API的情况下,命令监视部13a在设定写入ID的基础上向文件数据传输标签。由此,可追踪表示来自通信目的地A的接收数据被写入文件A的依赖关系(图4的(2))、表示从通信目的地C接收到的数据被写入文件B的依赖关系(图4的(6))。另外,在已经设定有写入ID的情况下,将写入ID覆盖重写。命令监视部13a为了表现该依赖关系,将对与文件名匹配地写入文件的数据设定的标签和对写入文件的数据重新设定的标签保存到日志DB14。生成部15使用存储在日志DB14的日志,在边缘连结通信目的地A与文件A,另外,在边缘连结通信目的地C与文件B。

另外,关于写入接收数据、文件的数据是否被执行,通过在命令指针寄存器所指的存储器区域中是否设定有具备数据ID、写入ID的标签来判断。例如,在执行了从信目的地A下载的文件的情况下,在被执行的数据中设定有写入ID。在写入ID与对写入文件的数据设定的标签相同,则可判断为文件被执行。另外,在与代码植入时设定的标签相同的情况下,可判断为执行了被植入的数据。

另外,在仅设定有数据ID的情况下,可判断为接收数据直接在存储器上被执行。通过该工作原理,可追踪从通信目的地A下载的文件A作为程序代码而执行的依赖关系(图4的(3))。命令监视部13a将与所执行的数据绑定的标签记录到日志,以由生成部15在图形上表现通信目的地与程序代码及文件与程序代码间的依赖关系。生成部15使用存储在日志DB14的日志,在边缘连结文件A与程序代码。

确定部16将通过生成部15生成的依赖关系图形的各节点与已知的恶意信息对照来检测恶意的节点,并将该恶意的节点为基点而从终点向起点方向追溯边缘,将所追溯的节点确定为新的恶意的节点。另外,在确定为恶意的节点的节点是通信目的地的节点的情况下,确定部16将该通信目的地的节点确定为恶意的站点,进而到达该通信目的地的节点的紧前节点为文件、程序代码等下载数据的情况下,将该通信目的地的节点作为恶意软件下载站点而检测。

具体地,确定部16对通过生成部15生成的依赖关系图形,眏射已有的恶意信息。例如,在通信目的地的主机名为“example.co.jp”,在公开黑名单等已有的恶意信息中登记有该主机名的情况下,对依赖关系图形上的相应节点赋予表示恶意的信息。

最后,确定部16以通过映射处理而判定为恶意的节点为起点追溯依赖关系,将从该节点可到达的通信目的地判定为恶意。另外,将可到达的文件确定为恶意的文件。之后,确定部16输出包括恶意软件下载站点的恶意通信目的地名单和在其过程中被判定为恶意的文件信息。这样,在依赖关系图形中保持以终点节点的恶意为由可提及起点节点的恶意的依赖关系。

例如,如图4所示,确定部16将依赖关系图形的各节点与已知的恶意信息对照而将恶意软件的节点和通信目的地C的节点作为恶意的节点而检测。并且,如图5所示,确定部16以恶意的节点为基点而从终点向起点方向追溯边缘,作为追溯的节点,将通信目的地A、文件A、程序代码确定为恶意的节点。因此,依次追溯在边缘连结的2个节点之间的依赖关系,进行恶意判定。

另外,在上述的恶意判定处理中,依赖关系的朝向起到防止误检的重要的作用。一般情况下,恶意软件11为了避免在分析环境中的执行,具备分析干扰功能。其中之一就是利用了正规站点的向互联网的连接确认,恶意软件11通过确认向正规站点的连接性的有无,从而分辨是否为从互联网隔离的分析环境。

在恶意软件11的动态分析中进行了连接确认的情况下,连接确认用的站点也作为依赖关系图形上的一个的节点而表现,数据依赖关系在从通信目的地信息的出处向通信目的地的边缘被表现。因此,例如,即便如图4这样通过已知的恶意信息而判定为通信目的地C为恶意,也无法追随程序代码与通信目的地B的依赖关系,因此成为图5这样的恶意判定结果。因此,通信目的地B不会被判定为恶意。这样,将数据依赖关系作为依赖关系图形而保持并利用的本手法中即便发生了以连接确认等为目的的与正规站点的通信,也不会产生误检。

另外,在上述的说明中,以分析对象为恶意软件的情况为前提进行了说明,但分析对象也可以是可疑程序代码。在该情况下,也可以使用确定装置10而判定可疑程序代码的恶意。就是说,也可适用如下手法:使怀疑为恶意软件的可疑程序进行动作,从已有的与恶意信息匹配的节点追溯,通过遵循该可疑程序而确定恶意软件。

另外,在上述的说明中,仅参照了已知的恶意信息,但也可以限定使用已知的良性信息而适用的恶意信息。作为已知的良性信息,例如,如果是文件,可例举在OS上标准地安装的文件的哈希值,如果是通信目的地,则可例举DNS(Domain Name System:域名系统)服务器等分析中必然发生通信的通信目的地、有名站点的名单等。

[确定装置的处理的一例]

接着,使用图6及图7,对确定装置10的处理进行说明。图6是表示由第一实施方式的确定装置进行的日志的取得处理的流程的流程图。图7是表示由第一实施方式的确定装置进行的恶意通信目的地的确定处理的流程的流程图。

首先,使用图6,对由确定装置10进行的日志的取得处理的流程进行说明。如图6所示,确定装置10的恶意软件执行环境部10a首先将成为分析对象的恶意软件11设置在客户OS12上(步骤S101),对与恶意软件11的文件对应的盘区域设定监视对象标签(步骤S102)。之后,恶意软件执行环境部10a执行恶意软件11(步骤S103)。

然后,命令监视部13a在恶意软件11的分析中取得命令指针寄存器的值(步骤S104),向数据流分析部13b询问在命令指针寄存器所指的存储器区域中是否赋有监视对象标签。然后,数据流分析部13b取得命令指针寄存器所指的地址区域的标签(步骤S105),将询问结果通知给命令监视部13a。然后,在询问的结果是对数据未赋有监视对象标签的情况下(步骤S106,否),命令监视部13a判定当前监视的线程是否为监视对象(步骤S107)。其结果,在判定为当前监视的线程不是监视对象的情况下(步骤S107,否),命令监视部13a返回到步骤S104。另外,在判定为当前监视的线程是监视对象的情况下(步骤S107,是),命令监视部13a转移到步骤S108的处理。

在步骤S108的处理中,命令监视部13a将该命令判断为监视对象,判定是否执行监视对象的call命令(步骤S108)。其结果,在判定为没有执行call命令的情况下(步骤S108,否),命令监视部13a判定是否返回到通过Ret命令而监视对象登记之后的命令指针地址(步骤S109)。

其结果,在判定为没有返回到通过Ret命令而监视对象登记之后的命令指针地址的情况下(步骤S109,否),命令监视部13a返回到步骤S104。另外,在判定为返回到通过Ret命令而监视对象登记之后的命令指针地址的情况下(步骤S109,是),命令监视部13a从监视对象解除(步骤S110),返回到步骤S104。

另外,在判定为执行了call命令的情况下(步骤S108,是),命令监视部13a判定监视对象API是否被调用(步骤S111)。其结果,在监视对象API没有被调用的情况下(步骤S111,否),命令监视部13a将线程登记为监视对象(步骤S112),返回到步骤S104。

另外,在监视对象API被调用的情况下(步骤S111,是),命令监视部13a判定是否为标签设定API(步骤S113)。其结果,在判定为是标签设定API的情况下(步骤S113,是),命令监视部13a设定能够唯一地确定取得源的标签(步骤S114),与取得源的通信目的地信息匹配地将标签记录到日志DB14(步骤S115)。例如,在是数据接收API的情况下,命令监视部13a对通过数据接收API而接收到的数据设定标签,与接收数据的取得源的通信目的地信息匹配地将标签记录到日志DB14。

另外,在判定为不是标签设定API的情况下(步骤S113,否),命令监视部13a判定是否为标签确认API(步骤S116)。其结果,在判定为是标签确认API的情况下(步骤S116,是),命令监视部13a确认标签(步骤S117),将标签等日志记录到日志DB14(步骤S118)。例如,在是数据发送API的情况下,命令监视部13a对于作为通信目的地信息而传递到自变量的数据,确认所设定的标签,与通信目的地信息、成为该API的执行原因的紧前监视对象标签匹配地将标签记录到日志DB14。另外,成为执行原因的紧前监视对象标签追溯呼叫堆栈,通过确认赋有最近的监视对象标签的程序代码来进行确定。

另外,在判定为不是标签确认API的情况下(步骤S116,否),命令监视部13a在标签确认后设定标签(步骤S119),与写入目的地名匹配地将标签记录到日志DB14(步骤S120)。例如,是文件写入API及用于代码植入的存储器写入API的情况下,命令监视部13a在标签确认后设定标签,与写入目的地名、成为该API的执行原因的紧前监视对象标签匹配地将确认的标签和设定的标签记录到日志DB14。在此,关于写入目的地名,如果是文件写入API,则指文件名,如果是用于代码植入的存储器写入API,则指写入目的地的进程名。

在步骤S115、步骤S118或步骤S120的处理结束之后,命令监视部13a判定是否经过了一定时间(步骤S121),在判定为没有经过一定时间的情况下(步骤S121,否),返回到步骤S104的处理。另外,在判定为经过了一定时间的情况下(步骤S121,是),命令监视部13a结束处理。

接着,对依赖关系图形的构建方法进行说明。在生成部15中,从存储在日志DB14中的日志抽取依赖关系图形的节点、边缘。依赖关系图形中保持的依赖关系是与数据执行相关的依赖关系、与数据保存相关的依赖关系、与通信目的地决定相关的依赖关系。

在保持与数据执行相关的依赖关系的边缘中,在终点节点中具备程序代码,在起点节点中具备程序代码或文件、通信目的地。该边缘根据记录在日志DB14中的日志而被生成如下。

终点节点和起点节点均为程序代码的边缘是在成为执行原因的紧前监视对象标签是通过存储器写入API而写入的标签的情况下被生成的。此时,赋有成为存储器写入API的执行原因的紧前监视对象标签的程序代码成为起点节点。

终点节点是程序代码且起点节点是文件的边缘是在成为执行原因的紧前监视对象标签是通过文件写入API而写入的标签的情况下被生成的。此时,设定有该标签的文件成为起点节点。

终点节点是程序代码且起点节点是通信目的地的边缘是在成为执行原因的紧前监视对象标签是对来自该通信目的地的接收数据设定的标签的情况下被生成的。此时,该通信目的地成为起点节点。

在保持与数据保存相关的依赖关系的边缘中,在终点节点中具备文件,在起点节点中具备程序代码或文件、通信目的地。该边缘根据记录在日志DB14中的日志而被生成如下。

起点节点和终点节点均为文件的边缘是在向不同的文件的写入数据中观测到通过文件写入API对某个文件设定的标签的情况下被生成的。例如,相当于向文件X写入时所设定的标签被设定在向文件Y写入的数据中的情况。此时,文件X成为起点节点,文件Y成为终点节点。

终点节点是文件且起点节点是程序代码的边缘是在观测到程序代码将具有与程序代码相同的标签的数据写入到文件的情况下被生成的。

终点节点是文件且起点节点是通信目的地的边缘是在文件写入API中确认向文件写入的数据的标签,进行所确认的写入ID的设定之前的标签是对来自该通信目的地的接收数据设定的标签的情况下生成的。

在保持与通信目的地决定相关的依赖关系的边缘中,在终点节点中具有通信目的地,在起点节点中具有程序代码或文件、通信目的地。该边缘根据记录在日志DB14中的日志而备生成如下。

起点节点和终点节点均为通信目的地的边缘是在对数据发送API作为通信目的地信息而传递的数据中所设定的标签与在数据接收API中对接收数据所设定的标签相同的情况下被生成的。起点节点成为该接收数据的发送源。

终点节点是通信目的地且起点节点是程序代码的边缘是在对数据发送API作为通信目的地信息而传递的数据中未设定标签的情况下或所设定的标签与成为该数据发送API的执行原因的紧前监视对象标签相同的情况下被生成的。此时,起点节点成为具备成为该数据发送API的执行原因的紧前监视对象标签的程序代码。

终点节点是通信目的地且起点节点是文件的边缘是在对数据发送API作为通信目的地信息而传递的数据中设定的标签与通过文件写入API对写入数据新设定的标签相同的情况下被生成的。此时,起点节点成为该文件写入API的写入目的地文件。通过以上的方法而生成的边缘的起点节点与终点节点成为依赖关系图形上的节点。

接着,使用图7,对由确定装置10进行的恶意通信目的地的确定处理的流程进行说明。如图7所示,确定装置10的生成部15使用存储在日志DB14中日志,构建依赖关系图形(步骤S201)。然后,确定部16判定在依赖关系图形中是否存在节点(步骤S202)。其结果,在不存在节点的情况下(步骤S202,否),确定部16结束该处理。

另外,在存在节点的情况下(步骤S202,是),确定部16对通过生成部15生成的依赖关系图形,映射已有的恶意信息(步骤S203)。然后,确定部16判定是否存在映射恶意信息的节点(步骤S204)。其结果,在不存在映射恶意信息的节点的情况下(步骤S204,否),确定部16结束处理。另外,在存在映射恶意信息的节点的情况下(步骤S204,是),确定部16逆向地变更依赖关系图形的边缘(步骤S205),将恶意的节点作为基点,从终点向起点方向追溯边缘,将从映射恶意信息的节点可到达的所有节点判定为恶意(步骤S206),并结束处理。此时,将与判定为恶意的节点的通信目的地的节点对应的通信目的地作为恶意的站点而检测,并且在到达至该通信目的地的节点的紧前节点是文件、程序代码等下载数据的情况下,将该通信目的地节点作为恶意软件下载站点而检测。另外,无需必须逆向地变更依赖关系图形的边缘之后追溯边缘,也可以不将边缘设为逆向,而是从终点向起点方向逆向地追溯边缘。

[第一实施方式的效果]

这样,第一实施方式的确定装置10对分析对象的恶意软件11进行监视,作为日志数据而取得该恶意软件11、从通信目的地下载的下载数据、与恶意软件11或下载数据的通信目的地之间进行的数据的交接关系。然后,确定装置10使用所取得的日志数据,生成将恶意软件、下载数据及通信目的地作为节点并将各节点的依赖关系作为边缘的有向图形即依赖关系图形。然后,确定装置10将所生成的依赖关系图形的各节点与已知的恶意信息进行对照来检测恶意的节点,并以该恶意的节点为基点而从终点向起点方向追溯边缘,将所追溯的节点确定为新的恶意的节点。因此,能够确切地确定恶意的站点、恶意的下载数据。即,确定装置10在确定包含恶意软件下载站点的恶意通信目的地时有用,在无法恶意判定执行数据的情况下、下载站点由多级构成的情况下均有效果。

例如,如果所确定的节点是通信目的地,则将该节点作为恶意软件下载站点而检测。另外,恶意软件11所进行的向正规站点的通信不是从已知的恶意信息进行追溯(边缘不是从终点向起点方向连接),因此还具有如下效果:不会错误地将正规站点误检为恶意软件下载站点。

(系统结构等)

另外,图示的各个装置的各个结构要件是功能概念性的结构要件,无需必须物理性地形成为如图示的结构。即,各个装置的分散、合并的具体方式不限于图示的方式,能够将其全部或一部分根据各种负荷、使用状况等,以任意的单位在功能上或物理性上分散、合并而构成。并且,关于由各个装置进行的各个处理功能,其全部或任意的一部分可通过CPU及由该CPU分析执行的程序来实现或作为基于有线逻辑的硬件来实现。例如,也可以将生成部15与确定部16进行合并。

另外,也可以将在本实施方式的各个处理中,作为自动地进行的处理而说明的全部处理或一部分处理手动地进行或也可以将作为手动地进行的处理而说明的全部处理或一部分处理通过公知的方法来自动地进行。除此之外,关于包括在上述文件中、附图中表示的处理步骤、控制步骤、具体的名称、各种数据、参数的信息,除了特别记载的情况之外,可任意地变更。

(程序)

另外,也可以生成能够将上述实施方式的确定装置10所执行的处理用计算机可执行的语言来记载的程序。在该情况下,计算机执行程序,从而能够得到与上述实施方式相同的效果。并且,也可以将上述程序记录到由计算机可读取的记录介质,使计算机读入记录于该记录介质的程序并执行,从而实现与上述实施方式相同的处理。下面,对执行与确定装置10相同的功能的确定程序的计算机的一例进行说明。

图8是表示执行确定程序的计算机的图。如图8所示,计算机1000例如具有存储器1010、CPU1020、硬盘驱动器接口1030、盘驱动器接口1040、串行端口接口1050、视频适配器1060、网络接口1070。这些各个部件通过总线1080而连接。

存储器1010包括ROM(Read Only Memory:只读存储器)1011及RAM(Random Access Memory:随机存取存储器)1012。ROM1011例如存储BIOS(Basic Input Output System:基本输入输出系统)等引导程序。硬盘驱动器接口1030连接于硬盘驱动器1090。盘驱动器接口1040连接于盘驱动器1041。盘驱动器1041中例如插入磁気盘、光盘等可拆装的存储介质。在串行端口接口1050例如连接鼠标1110及键盘1120。在视频适配器1060例如连接显示器1130。

在此,如图8所示,硬盘驱动器1090例如存储OS1091、应用程序1092、程序模块1093及程序数据1094。在上述实施方式中说明的各个表格例如存储于硬盘驱动器1090、存储器1010。

另外,确定程序例如作为记述了由计算机1000执行的指令的程序模块而存储于硬盘驱动器1090。具体地,记述了在上述实施方式中说明的确定装置10所执行的各个处理的程序模块存储于硬盘驱动器1090。

另外,用于由确定程序进行的信息处理的数据作为程序数据而例如存储于硬盘驱动器1090。然后,CPU1020根据需要而读出存储于硬盘驱动器1090的程序模块1093、程序数据1094,执行上述的各个步骤。

另外,与确定程序相关的程序模块1093、程序数据1094不限于存储到硬盘驱动器1090的情况,例如也可以存储于可拆装的存储介质,并经由盘驱动器1041等而由CPU1020读出。或者,与确定程序相关的程序模块1093、程序数据1094也可以存储于经由LAN(Local Area Network)、WAN(Wide Area Network)等网络来连接的其它计算机,并经由网络接口1070而由CPU1020读出。

符号的说明

10 确定装置

10a 恶意软件执行环境部

11 恶意软件

12 客户OS

13 虚拟计算机

13a 命令监视部

13b 数据流分析部

14 日志DB

15 生成部

16 确定部

20 恶意信息DB

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