信息处理系统、控制方法及控制程序与流程

文档序号:11161019阅读:661来源:国知局
信息处理系统、控制方法及控制程序与制造工艺

本发明涉及信息处理系统、控制方法及控制程序。



背景技术:

以往,在恶意软件的分析方法中,大体分为静态分析和动态分析。静态分析是通过对恶意软件的程序代码进行分析而掌握恶意软件所具备的功能的方法。其中,静态分析对恶意软件所具备的功能全面地进行分析,因此需要进行通过诸多人手的作业。另外,动态分析是通过准备对恶意软件的行为进行记录的环境,并在该环境内使恶意软件进行动作,从而对恶意软件的功能进行分析的方法。动态分析中的行为的提取与静态分析相比,容易实现自动化。

作为这样的恶意软件的动态分析的一种,具有动态污点分析。在动态污点分析中,例如在虚拟机器中,虚拟CPU(Central Processing Unit:中央处理器)对在虚拟存储器、虚拟盘等中恶意软件所读写的数据流进行追踪。更具体地,动态污点分析由污点标签的赋予、污点标签的传输、污点标签的检测这样的3个阶段构成。

例如,在对由恶意软件所导致的机密信息的泄漏进行检测的情况下,虚拟CPU执行以下的处理。首先,在第1阶段中,虚拟CPU使恶意软件进行动作。然后,虚拟CPU在包括机密信息的文件被读入到存储器中的阶段,与包括机密信息的文件的存储器中的存储位置对应地赋予表示机密信息的污点标签。通常,该污点标签被存储到与OS(Operating System:操作系统)所管理的物理存储器独立地准备的区域(也称为“影子存储器”)中。该区域被安装成从OS、应用(包括恶意软件)无法访问。

之后,在第2阶段中,虚拟CPU通过对寄存器和存储器区域之间的传送命令等进行监视,从而根据机密信息的复制而传输污点标签。并且,在第3阶段中,虚拟CPU确认是否对从网络接口输出的数据赋予了表示机密信息的污点标签。在对所输出的数据赋予了污点标签的情况下,虚拟CPU检测出机密信息要被输出到外部的情况。

另外,作为应用了动态污点分析的例子,具有通过污点标签来实现调试器中的断点的技术。在该技术中,利用者对想要中断程序的部位(设定“断点”的部位)提前分配污点标签。并且,虚拟CPU检测是否与所执行的命令对应地赋予污点标签,在赋予了污点标签的情况下中断程序。另外,还有作为污点标签的传输目的地而向盘进行传输的技术。

另外,作为恶意软件的动态分析方法的一种,进行了如下尝试:将预先准备的FTP(File Transfer Protocol)账户信息等(称为蜜标honey token)设定在分析用PC,故意进行由恶意软件导致的信息泄漏,从而追踪攻击者的举动。由此,能够掌握攻击者如何滥用所取得的信息。

现有技术文献

专利文献

专利文献1:特开2012-83798号公报

非专利文献

非专利文献1:川古谷裕平、岩村诚、针生刚男、使用污点标签的分析对象代码的识别方法、电子信息通信学会、信息通信系统安全研究会,2012年7月(川古谷裕平、岩村誠、針生剛男、テイントタグを用いた分析対象コードの識別方法、電子情報通信学会、情報通信システムセキュリティ研究会,2012年7月)

非专利文献2:Mitsuaki Akiyama,Takeshi Yagi,Kazufumi Aoki,Takeo Hariu,Youki Kadobayashi:Active Credential Leakage for Observing Web-Based Attack Cycle.RAID 2013:pp.223-243

非专利文献3:青木一史、川古谷裕平、岩村诚、伊藤光恭、通过半透性虚拟互联网而进行的恶意软件的动态分析、恶意软件对策研究人才培养工作室,2009年10月(青木一史、川古谷裕平、岩村誠、伊藤光恭、半透性仮想インターネットによるマルウェアの動的分析、マルウェア対策研究人材育成ワークショップ,2009年10月)



技术实现要素:

发明要解决的课题

但是,在上述的以往技术中,存在无法在不向他人波及损害的情况下对恶意软件的举动进行分析的问题。

例如,在故意进行由恶意软件导致的信息泄漏的动态分析时,需要将恶意软件的通信目的地作为实际互联网而向攻击者侧发送蜜标。而在恶意软件中进行垃圾邮件的发送等,在与实际互联网连接时,会发生对他人带来损害的活动。根据这样的情况,需要通过切断可能会对他人带来损害的通信或在分析者所准备的模拟互联网内继续进行通信等而进行对他人不会带来损害的方法。

这样,在对恶意软件进行动态分析时,需要根据其通信意图而将通信目的地切换到实际互联网或模拟互联网。以往,根据其通信目的地IP(Internet Protocol:互联网协议)地址、URL(Uniform Resource Locator:统一资源定位器)、通信有效载荷的信息等而切换通信目的地,但是对未知的通信目的地、难读通信有效载荷的情况难以应对。

公开的技术是鉴于上述问题而创造的,本发明的目的在于以不向他人波及损害的方式对恶意软件的举动进行分析。

解决课题的手段

本申请所公开的信息处理系统具有:第1信息处理装置,其对所起动的恶意软件的举动进行分析;及第2信息处理装置,其对从所述第1信息处理装置发送的发送信息进行传送。所述第1信息处理装置具备存储部和发送部,所述第2信息处理装置具备提取部和传送部。存储部将数据和对所述数据赋予的标签信息对应地进行存储。发送部在所述恶意软件发送数据时,生成包括发送的数据及对所述发送的数据赋予的标签信息的发送信息,对所述第2信息处理装置发送所述发送信息。提取部从接收到的所述发送信息提取所述标签信息。传送部根据所提取的所述标签信息而决定所述发送信息的传送目的地,向所决定的所述传送目的地传送所述发送信息。

发明效果

根据所公开的信息处理装置的一个方式,具有如下效果:以不向他人波及损害的方式对恶意软件的举动进行分析。

附图说明

图1是表示信息处理系统的结构例的图。

图2是表示实现信息处理系统的信息处理装置的结构例的图。

图3是表示影子存储器中存储的信息的一例的图。

图4是表示污点标签类别信息表中存储的信息的一例的图。

图5是表示在对数据未赋予污点标签的情况下由虚拟NIC生成的帧的结构的一例的图。

图6是表示在对数据赋予污点标签的情况下由虚拟NIC生成的帧的结构的一例的图。

图7是表示由虚拟NIC进行帧生成的处理的步骤的流程图。

图8是表示由虚拟机器进行的处理的步骤的流程图。

图9是表示执行控制程序的计算机的图。

图10是表示实现信息处理系统的信息处理装置的另一结构例的图。

具体实施方式

下面,根据附图来详细说明所公开的信息处理系统、控制方法及控制程序的实施方式。另外,公开的发明并不仅限于本实施方式。

(第1实施方式)

图1是表示信息处理系统1的结构例的图。如图1所示,信息处理系统1具备模拟互联网装置2、实际互联网连接装置3、实际互联网4、恶意软件通信目的地切换装置5、恶意软件执行环境6。

模拟互联网装置2借助于恶意软件通信目的地切换装置5而受理来自恶意软件执行环境6的通信,在保存的同时判别通信的协议,并生成与协议对应的数据。并且,模拟互联网装置2作为响应而发送在恶意软件执行环境6中生成的数据。模拟互联网装置2通过生成与该协议对应的服务器响应而实现。

实际互联网连接装置3借助于实际互联网4而控制与外部装置之间的通信。实际互联网4是与外部装置连接的网络。

恶意软件执行环境6是用于执行恶意软件的环境。另外,在此所谓的“恶意软件”是有悪意的软件的总称。

恶意软件通信目的地切换装置5与模拟互联网装置2、实际互联网连接装置3、恶意软件执行环境6连接,例如控制恶意软件执行环境6与模拟互联网装置2之间的信息的传送。另外,恶意软件通信目的地切换装置5控制恶意软件执行环境6与实际互联网连接装置3之间的信息的传送。另外,在信息处理系统1中,假设信息以帧形式交换的情况而进行说明。

在这样的信息处理系统1中,例如,恶意软件执行环境6作为蜜标而提前设定恶意软件有可能尝试信息泄漏的数据。另外,在此所谓“数据”中包括程序及程序所参照的数据。例如,在著名的FTP客户所使用的设定文件中写入分析者所准备的FTP账户信息(FTP服务器、用户名、密码)。此时,与该设定文件对应地作为属性信息而设定污点标签。并且,恶意软件执行环境6起动恶意软件,在恶意软件执行环境6所具备的虚拟网络接口(虚拟NIC)中进行发送处理时,将发送数据和污点标签对应地发送到恶意软件通信目的地切换装置5。

另外,恶意软件通信目的地切换装置5接收从恶意软件执行环境6接收到的数据和与该数据关联的污点标签。并且,恶意软件通信目的地切换装置5根据污点标签而决定数据的传送目的地是模拟互联网装置2还是实际互联网连接装置3。例如,在赋予了表示FTP账户信息的污点标签的数据的情况下,传送到实际互联网连接装置3。

下面,对模拟互联网装置2、实际互联网连接装置3、实际互联网4、恶意软件通信目的地切换装置5及恶意软件执行环境6分别作为虚拟机器而在1台信息处理装置内实现的情况进行说明。

图2是表示实现信息处理系统1的信息处理装置10的结构例的图。另外,在图2中,仅图示了信息处理系统1中的相当于恶意软件通信目的地切换装置5的虚拟机器40及相当于恶意软件执行环境6的虚拟机器30。如图2所示,信息处理装置10在物理机器20上实现虚拟机器30和虚拟机器40。

物理机器20具备未图示的硬件、主机OS(Operating System:操作系统)、虚拟机器软件。硬件是构成信息处理装置10的电子电路、周边机器,例如是存储器、CPU(Central Processing Unit:中央处理器)等。另外,硬件存储后述的分析对象程序33和存储了用于进行其分析的环境的盘的图像文件。换言之,硬件存储在虚拟机器30上起动的客户OS32的图像。另外,关于客户OS32,将后述。同样地,硬件存储后述的分析对象程序43和存储了用于进行其分析的环境的盘的图像文件。换言之,硬件存储在虚拟机器40上起动的客户OS42的图像。另外,关于客户OS42,将后述。

主机OS是构成使虚拟机器30及虚拟机器40动作的底盘的OS,使用硬件而执行。虚拟机器软件是在主机OS上动作,并提供虚拟机器30及虚拟机器40的软件。例如,虚拟机器软件将虚拟硬件31分配给客户OS32而使虚拟机器30进行动作。另外,虚拟机器软件将虚拟硬件41分配给客户OS42而使虚拟机器40进行动作。

虚拟机器30例如具备虚拟硬件31、客户OS32、分析对象程序33。虚拟硬件31是使用从虚拟机器软件提供的虚拟盘、虚拟物理存储器、虚拟CPU等而使客户OS32进行动作,并执行各种处理的虚拟的信息处理装置。客户OS32使分析对象程序33进行动作。分析对象程序33是在信息处理装置10中作为分析对象的程序、应用,例如为恶意软件。

另外,虚拟硬件31是使客户OS32进行动作而执行各种处理的虚拟的信息处理装置,具备虚拟存储器34a、影子存储器34b、虚拟盘35a、影子盘35b、虚拟NIC(Network Interface Card:网络接口卡)36、虚拟CPU37及污点标签类别信息表38。另外,从虚拟机器软件提供虚拟存储器34a、影子存储器34b、虚拟盘35a、影子盘35b、虚拟NIC36、虚拟CPU37及污点标签类别信息表38等。

虚拟存储器34a是将信息处理装置10所具备的物理存储器中的规定区域作为在虚拟机器30进行动作的客户OS32所使用的存储器而分配来实现的虚拟的存储器。例如,虚拟存储器34a通过虚拟CPU37而存储从虚拟盘35a读出的程序、数据。

影子存储器34b是存储位置信息的数据结构体,该位置信息是将用于指定存储数据的虚拟存储器34a上的存储位置的信息和表示数据为监视对象的污点标签对应起来的位置信息。例如,作为影子存储器34b的结构,既可以是单纯的排列结构,也可以作为树结构而保持污点标签。另外,作为存储的信息,既可具备作为污点标签的值,也可具备作为朝向保持污点信息的数据结构体的指针的值。

使用图3,对影子存储器34b的一例进行说明。图3是表示存储在影子存储器34b中的信息的一例的图。如图3所示,影子存储器34b将“数据ID”、“虚拟存储器的地址”和“污点标签ID”对应地进行存储。

在此,“数据ID”表示数据的识别符。例如,在“数据ID”中存储“0001”、“0002”等。另外,“虚拟存储器的地址”是表示在虚拟存储器34a上的存储位置的位置信息。例如,在“虚拟存储器的地址”中存储“0x0010”、“0x0020”等。“污点标签ID”是用于识别是监视对象的识别符。例如,在“污点标签ID”中存储“1”、“2”等。

作为一例,在图3所示的影子存储器34b中,表示识别符为“0001”的数据存储在虚拟存储器34a的地址“0x0010”,被赋予污点标签“1”。另外,图3所示的影子存储器34b中,表示识别符为“0002”的数据存储在虚拟存储器34a的地址“0x0020”,被赋予污点标签“2”。另外,图3所示的数值等到底是例示,并不是对值等进行限定。另外,这些污点标签是针对由利用者选择的数据而提前被设定的。

虚拟盘35a是将信息处理装置10所具备的物理盘中的规定区域作为在虚拟机器30进行动作的客户OS32所使用的区域而分配来实现的虚拟的盘。例如,虚拟盘35a存储将虚拟CPU37作为执行对象的程序、成为程序的处理对象的数据等。

影子盘35b是存储位置信息的数据结构体,该位置信息是将用于指定存储数据的虚拟盘35a上的存储位置的信息和表示数据为监视对象的污点标签对应起来的位置信息。例如,作为影子盘35b的结构,既可以是单纯的排列结构,也可以作为树结构而保持污点标签。另外,作为存储的信息,既可以具备作为污点标签的值,也可以具备作为朝向保持污点信息的数据结构体的指针的值。另外,影子盘35b代替影子存储器34所存储的“虚拟存储器的地址”而存储表示虚拟盘35a上的存储位置的位置信息即“虚拟盘的地址”。另外,这些污点标签是针对由利用者选择的数据而提前被设定的。

污点标签类别信息表38存储表示与污点标签对应的数据的传送目的地的污点标签类别信息。图4是表示污点标签类别信息表38所存储的信息的一例的图。如图4所示,污点标签类别信息表38存储将“污点标签ID”和“外部发送状态”对应起来的信息。

在此,污点标签类别信息表38所存储的“污点标签ID”表示污点标签的识别符。例如,在“污点标签ID”中存储有“1”、“2”等值。另外,污点标签类别信息表38所存储的“外部发送状态”中存储表示许可借助于实际互联网4而与外部装置之间通信的“许可”、表示不许可借助于实际互联网4而与外部装置之间通信的“不许可”等。即,在“外部发送状态”为“许可”的情况下,数据被传送到实际互联网连接装置3,在“外部发送状态”为“不许可”的情况下,数据被传送到模拟互联网装置2。

作为一例,在图4所示的污点标签类别信息表38中,赋予了污点标签ID“1”的数据表示许可借助于实际互联网4而与外部装置之间通信。另外,在图4所示的污点标签类别信息表38中,赋予了污点标签ID“2”的数据表示不许可借助于实际互联网4而与外部装置之间通信。

虚拟CPU37是将信息处理装置10所具备的物理CPU中的规定处理能力作为在虚拟机器30进行动作的客户OS32所使用的CPU而分配来实现的虚拟的CPU。例如,虚拟CPU37具备未图示的程序执行功能部和更新功能部。

另外,虚拟CPU37具备未图示的虚拟寄存器和影子寄存器。虚拟寄存器是将信息处理装置10所具备的物理寄存器/物理存储器/物理盘中的规定区域作为在虚拟机器30进行动作的客户OS32所使用的区域而分配来实现的虚拟的寄存器。例如,虚拟寄存器存储通过虚拟CPU37而从虚拟存储器34a读出的程序、数据。另外,影子寄存器是存储位置信息的数据结构体,该位置信息是将用于指定存储数据的虚拟寄存器上的存储位置的信息和表示数据为监视对象的污点标签对应起来的位置信息。

程序执行功能部是执行存储在虚拟盘35a中的程序的处理部。例如,程序执行功能部从虚拟盘35a读出程序而展开到虚拟存储器34a。换言之,程序执行功能部从虚拟盘35a读出执行对象的程序而存储到虚拟存储器34a之后,执行存储在虚拟存储器34a中的执行对象的程序。

更新功能部根据数据流而更新将表示数据的存储位置的信息和标签对应起来的位置信息。例如,在程序执行功能部执行分析对象程序33的期间,当数据被复制而存储到其他的存储区域或被移动到其他的存储区域时,更新功能部与成为复制目的地、移动目的地的存储区域的存储位置关联地存储污点标签。另外,在此所谓的“存储区域”中包括虚拟寄存器、虚拟存储器34a及虚拟盘35a。

更具体地,更新功能部以与在执行分析对象程序33的过程中产生的虚拟寄存器与虚拟存储器34a之间及虚拟存储器34a与虚拟盘35a之间的数据的复制、在生成运算命令的情况下,成为数据的复制目的地、移动目的地的存储区域的存储位置关联的方式,在与各个存储区域对应的影子寄存器、影子存储器34b及影子盘35b中存储污点标签。换言之,更新功能部对于成为复制目的地、移动目的地的存储区域的存储位置而传输污点标签。另外,下面,有时将影子寄存器、影子存储器34b及影子盘35b统称为影子区域。

虚拟NIC36由客户OS32作为NIC而被识别,并作为在物理CPU进行动作的软件而实现。另外,通过由虚拟NIC36对物理NIC进行控制,从而客户OS32通过物理NIC而与虚拟机器40(恶意软件通信目的地切换装置5)进行通信。

在此,在恶意软件发送数据时,虚拟NIC36生成包括发送的数据和对所发送的数据赋予的污点标签的帧,向虚拟机器40(恶意软件通信目的地切换装置5)发送帧。更具体地,虚拟NIC36参照影子存储器34b或影子盘35b而判定对所发送的数据是否赋予污点标签。并且,在判定为赋予了有污点标签的情况下,虚拟NIC36生成包括数据和污点标签的帧。另外,在判定为对所发送的数据未赋予污点标签的情况下,生成包括虚拟NIC数据的帧。

利用图5及图6,对通过虚拟NIC36而生成的帧进行说明。图5是表示在对数据未赋予污点标签的情况下通过虚拟NIC36而生成的帧的结构的一例的图,图6是表示在对数据赋予了污点标签的情况下通过虚拟NIC36而生成的帧的结构的一例的图。

如图5所示,帧通常由8字节的“前导码”、6字节的“目的地MAC地址”、6字节的“发送源MAC地址”、2字节的“类型”、46~1500字节的“数据”、4字节的“FCS”构成。在对数据未赋予污点标签的情况下,虚拟NIC36将所发送的数据存储到“数据”。在此,在数据尺寸小于1500字节的情况下,虚拟NIC36从数据之后起填充至偏移第1521字节为止,以数据长度位于偏移第1522字节的位置。

另外,在对数据赋予了污点标签的情况下,当虚拟NIC36从虚拟CPU37受理数据的发送请求时,取得所发送的数据的尺寸。并且,如图6所示,虚拟NIC36将数据的尺寸作为2字节的值,从前导码计数(以后,称为偏移)而设定在第1522字节的“数据长度”。在此,在数据尺寸小于1500字节的情况下,虚拟NIC36从数据之后起填充至偏移第1521字节为止,以数据长度位于偏移第1522字节的位置。另外,在数据尺寸最大(1500字节)时,数据尺寸位于数据之后。

并且,虚拟NIC36将与存储有所发送的数据的虚拟存储器对应的影子存储器的内容追加到偏移第1524字节以后的“污点标签存储区域”,将此作为帧而发送。换言之,虚拟NIC36在发送数据时,将对数据赋予的污点标签存储到超过规定的最大可发送尺寸的帧内的区域。这是因为,例如,在虚拟NIC36将数据和与其对应的污点标签作为另外的帧而发送时,通信分组数会倍增,并且在数据或污点标签到达接收侧之后,还需要进行等待与其成对的污点标签或数据的处理。虚拟NIC36将数据和污点标签存储在同一个帧中,从而能够解决这样的问题。关于污点标签,既可以对发送数据的每1字节分配1字节,而在需要将256个以上的数据的属性区别开的情况下,也可以对发送数据的每1字节分配多个字节的污点标签。另外,虚拟NIC36通过安装对巨型帧非对应的硬件,从而能够控制OS请求发送比1500字节大的数据的事例。

接着,对虚拟机器40进行说明。虚拟机器40例如具备虚拟硬件41、客户OS42、分析对象程序43。虚拟硬件41是使用从虚拟机器软件提供的虚拟盘、虚拟物理存储器、虚拟CPU等而使客户OS42进行动作,从而执行各种处理的虚拟的信息处理装置。客户OS42使分析对象程序43进行动作。分析对象程序43是在信息处理装置10中作为分析对象的程序、应用。

另外,虚拟硬件41是使客户OS42进行动作而执行各种处理的虚拟的信息处理装置,具备虚拟存储器44a、影子存储器44b、虚拟盘45a、影子盘45b、虚拟NIC46、虚拟CPU47及污点标签类别信息表48。另外,从虚拟机器软件提供虚拟存储器44a、影子存储器44b、虚拟盘45a、影子盘45b、虚拟NIC46、虚拟CPU47及污点标签类别信息表48等。

另外,虚拟硬件41所具备的虚拟存储器44a与虚拟硬件31所具备的虚拟存储器34a具备相同的功能,虚拟硬件41所具备的影子存储器44b与虚拟硬件31所具备的影子存储器34b具备相同的功能。另外,影子存储器44b中未提前设定污点标签,而是通过后述的虚拟CPU47的存储控制功能部而被设定。

另外,虚拟硬件41所具备的虚拟盘45a与虚拟硬件31所具备的虚拟盘35a具备相同的功能,虚拟硬件41所具备的影子盘45b与虚拟硬件31所具备的影子盘35b具备相同的功能。另外,在影子盘45b中未提前设定污点标签,而是通过后述的虚拟CPU47的存储控制功能部而被设定。另外,虚拟硬件41所具备的污点标签类别信息表48与虚拟硬件31所具备的污点标签类别信息表38具备相同的功能。

虚拟CPU47是通过将信息处理装置10所具备的物理CPU中的规定处理能力作为在虚拟机器40进行动作的客户OS42使用的CPU进行分配来实现的虚拟的CPU。虚拟CPU47除了进一步具备存储控制功能部这一点之外,具备与虚拟CPU37相同的功能。

存储控制功能部在提取包括在所接收到的帧的数据而存储到虚拟存储器44a时,将污点标签存储到与写入目的地的虚拟存储器44a对应的影子存储器44b。例如,在对所接收到的数据赋予了污点标签的情况下,存储控制功能部将数据和污点标签对应地存储到影子存储器44b。另外,在对所接收到的数据未赋予污点标签的情况下,存储控制功能部不执行处理。另外,与对所接收到的数据是否赋予污点标签的情况无关地,虚拟CPU47将所接收到的数据存储到虚拟存储器44a。

关于虚拟NIC46,由客户OS42作为NIC而被识别,并作为在物理CPU中动作的软件而实现。另外,通过由虚拟NIC46控制物理NIC,从而客户OS42通过物理NIC而与虚拟机器30(恶意软件执行环境6)、模拟互联网装置2及实际互联网连接装置3进行通信。

另外,客户OS42在接收到帧的情况下,决定帧的传送目的地,并将帧传送到所决定的传送目的地。客户OS42具备未图示的提取功能部和传送功能部。在此,在接收TCP这样的数据之前交换用于建立连接的分组的协议的情况下,客户OS42例如通过进行TCP三次握手而建立TCP的对话,从而在确定通信目的地之前接收数据和与此对应的污点标签。

例如,客户OS42的提取功能部判定对所接收到的数据是否赋予污点标签。并且,在判定为赋予了污点标签的情况下,客户OS42的提取功能部从接收到的帧提取污点标签。并且,客户OS42的传送功能部根据所提取的污点标签而决定帧的传送目的地。

更具体地,客户OS42的提取功能部参照所接收到的帧的帧长而判定对数据是否赋予污点标签。在此,在帧长为1526字节的情况下,客户OS42的提取功能部判定为对数据未赋予污点标签,在帧长为1529字节的情况下,客户OS42的提取功能部判定为对数据赋予了污点标签。

并且,在判定为对数据赋予了污点标签的情况下,客户OS42的提取功能部提取污点标签。例如,客户OS42的提取功能部从帧的偏移第1522字节中,将实际数据的尺寸值作为实际数据而提取。由此,虚拟CPU47将所提取的实际数据复制到虚拟存储器44a。另外,客户OS42的提取功能部从偏移第1524字节以后提取污点标签。由此,虚拟CPU47将所提取的污点标签复制到影子存储器44b。由此,可执行恶意软件执行环境6与恶意软件通信目的地切换装置5之间的污点标签的收发。

并且,客户OS42的传送功能部参照污点标签类别信息而读出与所提取的污点标签对应的“外部发送状态”。在此,在“外部发送状态”为表示许可与外部装置之间的通信的“许可”的情况下,客户OS42的传送功能部将接收到的帧传送到实际互联网连接装置3。另外,在“外部发送状态”为表示不许可与外部装置之间的通信的“不许可”的情况下,客户OS42的传送功能部将接收到的帧传送到模拟互联网装置2。另外,在对数据未赋予污点标签的情况下,客户OS42的传送功能部不传送接收到的帧。另外,在对数据未赋予污点标签的情况下,客户OS42的传送功能部将所接收到的帧传送到模拟互联网装置2或实际互联网连接装置3的任一方。

接着,利用图7,对通过虚拟机器30所具备的虚拟NIC36而处理的步骤进行说明。图7是表示通过虚拟NIC36而生成帧的处理的步骤的流程图。如图7所示,虚拟NIC36判定是否受理数据的发送请求(步骤S101)。在此,在判定为未受理数据的发送请求的情况下(步骤S101,否),虚拟NIC36重复步骤S101的判定处理。

另外,在判定为受理了数据的发送请求的情况下(步骤S101,是),虚拟NIC36判定数据是否与污点标签对应(步骤S102)。在此,在判定为数据与污点标签对应的情况下(步骤S102,是),虚拟NIC36读出与数据对应的污点标签(步骤S103)。并且,虚拟NIC36生成包括数据和污点标签的帧(步骤S104)。

另外,在判定为数据与污点标签未对应的情况下(步骤S102,否),虚拟NIC36生成包括数据的帧(步骤S105)。虚拟NIC36在步骤S104或步骤S105之后,将所生成的帧发送到虚拟机器40(步骤S106),结束处理。

接着,利用图8,对通过虚拟机器40而处理的步骤进行说明。图8是表示通过虚拟机器40而处理的步骤的流程图。如图8所示,虚拟机器40的客户OS42的提取功能部判定是否接收到帧(步骤S201)。在此,在判定为未接收到帧的情况下(步骤S201,否),客户OS42的提取功能部重复步骤S201的判定处理。

另外,在判定为接收到帧的情况下(步骤S201,是),客户OS42的提取功能部判断在帧中是否包括污点标签(步骤S202)。在此,在判定为在帧中包括污点标签的情况下(步骤S202,是),客户OS42的提取功能部提取污点标签(步骤S203)。接着,客户OS42向虚拟CPU47请求污点标签类别信息(步骤S204)。另外,在判定为在帧中不包括污点标签的情况下(步骤S202,否),客户OS42的提取功能部结束处理。

另外,虚拟CPU47判定是否请求污点标签类别信息(步骤S205)。在此,在判定为请求了污点标签类别信息的情况下(步骤S205,是),虚拟CPU47向客户OS42响应污点标签类别信息,向客户OS42请求数据和污点标签(步骤S206)。另外,在判定为未请求污点标签类别信息的情况下(步骤S205,否),虚拟CPU47重复步骤S205的判定处理。

客户OS42取得污点标签类别信息(步骤S207),向虚拟CPU47响应数据和污点标签(步骤S208)。并且,虚拟CPU47取得数据和污点标签(步骤S209)。接着,虚拟CPU47的存储控制功能部将数据和污点标签对应地存储到影子存储器44b(步骤S210)。这样,虚拟CPU47的存储控制功能部将数据和污点标签对应地存储到影子存储器44b,从而例如能够将参照污点标签并传送到外部的数据为了事后的分析而进行保存。

另外,客户OS42的传送功能部参照污点标签类别信息而判定污点标签(步骤S211),判定是否许可与实际互联网连接(步骤S212)。在此,在判定为许可与实际互联网连接的情况下(步骤S212,是),客户OS42的传送功能部向实际互联网连接装置3传送帧(步骤S213)。另外,在判定为不许可与实际互联网连接的情况下(步骤S212,否),客户OS42的传送功能部向模拟互联网装置2传送帧(步骤S214)。

如上述,在第1实施方式的信息处理装置10中,在动态分析恶意软件时,将恶意软件执行环境6中的污点标签传输给网络,从而能够高精度地切换恶意软件的通信目的地。

在此,在动态分析恶意软件时,具有敢于许可与存在于互联网的攻击者通信的事例和切断通信或传送到模拟互联网,以不向他人波及损害的事例。在以往的技术中,在通信目的地为完全未知的目的地的情况下、难以读出通信有效载荷的情况下,难以决定通信目的地。另外,在第1实施方式的信息处理装置10中,提前在恶意软件执行环境6中,对想要发送到攻击者的信息赋予污点标签,并将该污点标签传送到恶意软件通信目的地切换装置5。由此,恶意软件通信目的地切换装置5通过参照污点标签,从而在不依赖于目的地IP地址、通信有效载荷的情况下,能够将恶意软件通信的目的地切换到模拟互联网或实际互联网。

另外,在上述的实施方式中,对恶意软件通信目的地切换装置5参照污点标签类别信息表48而判定是否许可与外部装置之间的通信来决定传送目的地的情况进行了说明,但实施方式不限于此。例如,恶意软件执行环境6可以仅对许可与外部装置之间的通信的数据赋予污点标签。例如,恶意软件执行环境6仅对FTP账户信息赋予污点标签。在该情况下,恶意软件通信目的地切换装置5在所接收到的帧中包括污点标签的情况下,将数据发送到实际互联网连接装置3,在不存在污点标签的情况下,发送到模拟互联网装置2。或者,恶意软件执行环境6仅对不许可与外部装置之间的通信的数据赋予污点标签。例如,恶意软件执行环境6仅对分析对象的恶意软件赋予污点标签。在该情况下,在所接收到的帧中包括污点标签的情况下,恶意软件通信目的地切换装置5将污点标签发送到模拟互联网装置2,在不存在污点标签的情况下,将数据发送到实际互联网连接装置3。

另外,恶意软件通信目的地切换装置5将目的地IP地址、通信有效载荷的确认结果和污点标签结合而决定传送目的地。

另外,如图6所示,在上述的实施方式中,虚拟NIC36在偏移第1522字节存储数据长度,但也可以不包括该数据长度而从偏移第1522字节起开始污点标签存储区域。在该情况下,从巨型帧的尺寸减去1526字节(1522字节+FCS的字节数)的尺寸构成污点标签存储区域的尺寸,由该尺寸决定实际数据的尺寸(在数据每1字节的污点标签为1字节的情况下,与污点标签存储区域的尺寸相同)。另外,虚拟NIC36可以不填充数据而生成帧。在该情况下,从巨型帧的尺寸减去28字节(至数据为止的22字节+数据长度的2字节+FCS的4字节)的尺寸构成数据的尺寸和污点存储区域的尺寸之和,由该尺寸可决定实际数据的尺寸(在数据每1字节的污点标签为1字节的情况下,将该尺寸除以2而获得的值构成实际数据的尺寸)。另外,虚拟NIC36可以不填充数据且不包括数据长度而生成帧。

另外,在上述的实施方式中,对模拟互联网装置2、实际互联网连接装置3、实际互联网4、恶意软件通信目的地切换装置5及恶意软件执行环境6分别作为虚拟机器而在1台信息处理装置内实现的情况进行了说明,但实施方式不限于此。例如,也可以是模拟互联网装置2、实际互联网连接装置3、实际互联网4、恶意软件通信目的地切换装置5及恶意软件执行环境6分别作为虚拟机器而在多个信息处理装置中以任意的组合分散而实现。或者,也可以在信息处理系统1中,模拟互联网装置2、实际互联网连接装置3、实际互联网4、恶意软件通信目的地切换装置5、恶意软件执行环境6分别作为独立的信息处理装置而实现。

(第2实施方式)

以上,对本发明的实施方式进行了说明,但是本发明除了上述实施方式以外,也可以其他实施方式实施。在此,下面对该其他实施方式进行说明。

(系统结构)

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

另外,图示的各个装置的各个结构要素是功能概念性的要素,无需一定要物理性地如图示这样构成。即,各个装置的分散、综合的具体形态不限于图示的情况,可根据各种的负荷、使用状況等而将其全部或一部分以任意的单位功能性地或物理性地分散、综合而构成。例如,虚拟机器30及虚拟机器40分别可由独立的信息处理装置10而实现。例如,如图10所示,虚拟机器30由信息处理装置10a的物理机器20a而实现,虚拟机器40由信息处理装置10b的物理机器20b而实现。在该情况下,从虚拟机器30发送的帧经由连接信息处理装置10a、10b之间的网络(例如,互联网)而到达虚拟机器40。

(程序)

另外,关于上述实施例1的信息处理装置所执行的处理,可制作成以计算机可执行的语言记述的特定程序。在该情况下,计算机执行特定程序,从而可获得与上述实施方式相同的效果。进而,将该特定程序记录到计算机可读取的记录介质,并使计算机读入记录在该记录介质的特定程序而执行,从而实现与上述实施方式相同的处理。下面,对执行用于实现与图1等所示的信息处理装置10相同的功能的控制程序的计算机的一例进行说明。

图9是表示执行控制程序的计算机1000的图。如图9所示,计算机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与盘驱动1100连接。盘驱动1100中例如插入磁盘、光盘等可装卸的存储介质。在串行端口接口1050例如连接鼠标1110及键盘1120。在视频适配器1060例如连接显示器1130。

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

另外,控制程序例如作为记载有通过计算机1000而执行的指令的程序模块,例如存储于硬盘驱动1090。具体地,记载有如下步骤的程序模块存储于硬盘驱动1090:在第1计算机执行与在上述实施方式中说明的虚拟NIC36相同的信息处理的发送步骤;在第2计算机执行与在上述实施方式中说明的客户OS42的提取功能部相同的信息处理的提取步骤;执行与客户OS42的传送功能部相同的信息处理的传送步骤。

另外,使用于通过控制程序而进行的信息处理的数据作为程序数据而例如存储于硬盘驱动1090。并且,CPU1020根据需要而将存储于硬盘驱动1090的程序模块、程序数据读出到RAM1012,从而执行上述各个步骤。

另外,涉及控制程序的程序模块、程序数据不限于存储于硬盘驱动1090的情况,例如也可以存储于可装卸的存储介质,并借助于盘驱动1100等而通过CPU1020而读出。或者,涉及控制程序的程序模块、程序数据存储于借助于LAN(Local Area Network:局域网)、WAN(Wide Area Network:广域网)等网络而连接的其他的计算机,并借助于网络接口1070而通过CPU1020来读出。

(其他)

另外,关于本实施方式中说明的控制程序,可借助于互联网等网络而进行配置。另外,控制程序可记录于硬盘、软盘(FD)、CD-ROM、MO、DVD等由计算机可读取的记录介质,并通过计算机从记录介质读出而执行。

符号说明

10,10a,10b 信息处理装置

20,20a,20b 物理机器

30,40 虚拟机器

31,41 虚拟硬件

32,42 客户OS

33,43 分析对象程序

34a,44a 虚拟存储器

34b,44b 影子存储器

35a,45a 虚拟盘

35b,45b 影子盘

36,46 虚拟NIC

37,47 虚拟CPU

38,48 污点标签类别信息表

1000 计算机

1010 存储器

1011ROM

1012RAM

1020CPU

1030 硬盘驱动接口

1040 盘驱动接口

1050 串行端口接口

1060 视频适配器

1070 网络接口

1080 总线

1090 硬盘驱动

1091OS

1092 应用程序

1093 程序模块

1094 程序数据

1100 盘驱动

1110 鼠标

1120 键盘

1130 显示器

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