虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路的制作方法

文档序号:6397019阅读:192来源:国知局
专利名称:虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路的制作方法
技术领域
本发明涉及虚拟计算机 系统,特别涉及用于保护指定的应用程序免受恶意软件的攻击的技术。
背景技术
以往,已知有如下虚拟计算机系统通过复制作为母机的虚拟计算机,生成作为子机的虚拟计算机,将所生成的虚拟计算机动态地执行控制。例如,在专利文献I中,记载有考虑在各个虚拟计算机上执行的任务的重要性而将动作的虚拟计算机切换来执行的虚拟计算机系统,例如,在专利文献2中,记载有将执行的虚拟计算机切换来执行、以执行以优先级最高的任务为执行对象的虚拟计算机的虚拟计算机系统。现有技术文献专利文献专利文献I :特开2000 - 242512号公报专利文献2 W02009/133669号公报
发明概要发明要解决的问题在虚拟计算机系统中,在作为执行对象的应用程序群中有时混合存在被认证为不包含恶意软件的应用程序(以下,称作“已认证应用程序”)、以及有可能包含恶意软件的应用程序(以下,称作“未认证应用程序”)。在这样的情况下,当在未认证应用程序中包含有恶意软件时,通过执行该恶意软件,已认证应用程序可能被攻击。作为已认证应用程序被攻击的情况的例子,例如有如下情况已认证应用程序被以不适当的方法执行,应该对外部保密的信息、例如系统所保存的收费内容、个人信息、密钥等被读取。在以往的动态地生成虚拟计算机的虚拟计算机系统中,即使为了执行新的已认证应用程序而生成新的子虚拟计算机,也由于该子虚拟计算机是母虚拟计算机的复制,所以在作为母虚拟计算机的执行对象的应用程序群中包含有未认证应用程序的情况下,在子虚拟计算机中在作为执行对象的应用程序群中也包含未认证应用程序。因而,在以往的虚拟计算机系统中,在作为母虚拟计算机的执行对象的未认证应用程序中包含有恶意软件的情况下,在为了执行已认证应用程序而生成的子虚拟计算机中,已认证应用程序也会被该恶意软件攻击。

发明内容
所以,本发明是鉴于这样的问题而做出的,目的是提供一种虚拟计算机系统,在虚拟计算机当作执行对象的应用程序群中混合存在已认证应用程序和未认证应用程序的情况下,也能够将通过执行包含在未认证应用程序中的恶意软件而已认证应用程序被攻击的危险性抑制得比以往低。用于解决问题的手段为了解决上述问题,有关本发明的虚拟计算机系统,是具备处理器和在该处理器上执行、用于使该处理器进行多个虚拟计算机的执行控制的管理器的虚拟计算机系统,其特征在于,上述管理器具有执行检测部,用于检测在虚拟计算机中要新执行规定的应用程序;以及虚拟计算机生成部,用于在由上述处理器执行的上述执行检测部检测到在第I虚拟计算机中要新执行上述规定的应用程序的情况下,基于该第I虚拟计算机,生成用于执行上述规定的应用程序的新的第2虚拟计算机;由上述处理器执行控制的多个虚拟计算机分别具有执行控制部,该执行控制部用于在上述第2虚拟计算机中使上述处理器仅执行包括上述规定的应用程序的指定程序群,在上述第I虚拟计算机中使上述处理器代替上述规·定的应用程序而执行规定的伪程序。发明效果根据具备上述结构的有关本发明的虚拟计算机系统,在将已认证应用程序作为规定的应用程序、在指定程序群中不包含未认证应用程序的情况下,在执行已认证应用程序的子虚拟计算机中,未认证应用程序不会被执行,进而,在未认证应用程序有可能被执行的母虚拟计算机中,已认证应用程序不会被执行。因而,即使在虚拟计算机当作执行对象的应用程序中混合存在已认证应用程序和未认证应用程序的情况下,也能将通过执行包含在未认证应用程序中的恶意软件而导致已认证应用程序被攻击的危险性抑制得比以往低。


图I是表示虚拟计算机系统100的主要的硬件结构的框图。图2是表示处理器101具有的动作模式的动作模式图。图3是表示在处理器101上成为执行对象的程序模块的框图。图4是保护任务对应表400的数据构造图。图5是子虚拟计算机生成处理的流程图。图6是子虚拟计算机清除处理的流程图。图7是保护任务执行处理的流程图。图8是表示在虚拟计算机系统100中执行的任务的示意图。图9是表示在处理器101上成为执行对象的程序模块的框图。图10是表示在处理器101上成为执行对象的程序模块的框图。图11的(a)是伪程序1113的程序结构图,(b)是调度程序1117的程序结构图。图12是变形子虚拟计算机生成处理的流程图。图13是变形保护任务执行处理的流程图。图14是表示在虚拟计算机系统100中执行的任务的示意图。图15是虚拟计算机系统1500的结构图。
具体实施例方式<实施方式1>
< 概要 >以下,作为有关本发明的虚拟计算机系统的一实施方式,对如下的虚拟计算机系统进行说明,该虚拟计算机系统具备处理器,该处理器具有执行应用程序的用户模式和比用户模式高级的管理员(supervisor)模式这2个程序执行模式,由以处理器的管理员模式执行的管理器对以处理器的管理员模式执行的多个操作系统进行分时执行控制。该虚拟计算机系统在执行中的虚拟计算机中要执行预先设定的、成为从恶意软件的攻击的保护对象的指定的应用程序的情况下,将该执行中的虚拟计算机作为母虚拟计算机,以分叉(fork)方式(后述)生成用于执行该指定的应用程序的子虚拟计算机。并且,将所生成的子虚拟计算机设定为该指定的应用程序以外的应用程序不被执行。另一方面,母虚拟计算机代替该指定的应用程序而执行伪应用程序。由此,即使在作为该虚拟计算机系统的执行对象的应用程序中包含有攻击上述指定的应用程序的恶意软件,该指定的应用程序也不会被恶意软件攻击。以下,参照附图对有关本实施方式I的虚拟计算机系统的结构进行说明。〈硬件结构〉图I是表示虚拟计算机系统100的主要的硬件结构的框图。如该图所示,虚拟计算机系统100作为硬件是计算机装置,由集成电路110、输入装置131、输出装置132和硬盘装置133构成。集成电路110 是将处理器 101、ROM (Read Only Memory) 102、RAM (Random AccessMemory) 103、定时器104、内部总线120、第I接口 121、第2接口 122和第3接口 123集成而得到的半导体集成电路,与输入装置131、输出装置132和硬盘装置133连接。处理器101与内部总线120连接,具有通过执行存储在R0M102或RAM103中的程序来控制R0M102、RAM103、定时器104、输入装置131、输出装置132、硬盘装置133的功能。图2是表示处理器101具备的动作模式的动作模式图。如该图所示,处理器101具有执行应用程序(图中的任务A231、任务K232、任务L233等)的用户模式230和作为执行操作系统(图中的第I OS (Operating System) 221、第2 0S222、第N 0S223等)和管理器(hypervisor)(图中的管理器211)的特权模式的管理员模式220。在用户模式230下执行的应用程序分别被在管理员模式220下执行的操作系统进行分时执行控制,在管理员模式220下执行的操作系统同样分别被在管理员模式220下执行的管理器进行分时执行控制。再次回到图1,继续说明虚拟计算机系统100的结构。R0M102和RAM103分别与内部总线120连接,存储规定处理器101的动作的程序和处理器101所利用的数据。定时器104与内部总线120连接,由处理器101控制。内部总线120与处理器101、R0M102、RAM103、定时器104、第I接口 121、第2接口122、和第3接口 123连接,具有传递将它们连接的电路间的信号的功能。第I接口 121、第2接口 122和第3接口 123分别与内部总线120来连接,分别具有对内部总线120与输入装置131之间的信号的交换进行中介的功能、对内部总线120与输出装置132之间的信号的交换进行中介的功能、以及对内部总线120与硬盘装置133之间的信号的交换进行中介的功能。输入装置131包括键盘、鼠标、照相机、传感器等,与第I接口 121连接,由处理器101控制,具有生成与通过键盘、鼠标、照相机、传感器等进行的用户操作等对应的数据、将表示发生了用户操作等的通知及所生成的数据向处理器101发送的功能。输出装置132包括显示器、扬声器等,与第2接口 122连接,由处理器101控制,具有使用显示器、扬声器等将字符串、图像、声音等显示、输出的功能。
硬盘装置133内置有对处理器101所利用的数据进行存储的硬盘,与第3接口 123连接,由处理器101控制,具有向内置的硬盘写入数据的功能和将数据从内置的硬盘读出的功能。<程序模块结构>图3是表示在某时刻t0在处理器101上成为执行对象的程序模块(以下,简称为“模块”)的框图。在该图中,模块群300是在处理器101中成为执行对象的模块的集合,模块群300所包含的模块分别保存在R0M102或RAM103的存储区域中。任务A311 任务K312、伪任务313、任务L314 任务P315、保护任务316等分别是在处理器101的用户模式下执行的任务。第10S321和第20S322分别是在处理器101的管理员模式下执行的多任务对应操作系统。管理器351是在处理器101的管理员模式下执行的管理器。任务通过调用预先准备的操作系统调用例程(routine),能够对操作系统委托预先设定的处理。此外,操作系统通过调用预先准备的管理器调用例程,能够对管理器委托预先设定的处理。此外,在虚拟计算机系统的执行时发生的例外、从输入装置等发生的中断由管理器处理,根据需要对虚拟计算机上的操作系统通知。保护任务316是通过由操作系统(这里是第20S322)启动预先设定的保护对象应用程序而生成的任务。该保护对象应用程序是成为从恶意软件的攻击的保护对象的应用程序,由后述的保护任务对应表346预先设定为保护对象。作为保护对象应用程序的一例,例如有处理个人信息的应用程序、处理金钱信息的应用程序、处理成为著作权保护的对象的影像数据的应用程序等。伪任务313是通过由操作系统(这里是第10S321)启动预先设定的伪程序而生成的任务。该伪程序例如是由重复NOP (No OPeration)的无限循环构成的程序,是不会产生新的任务的程序。第10S321将多个任务(这里是任务A311 任务K312和伪任务313)使用时间分段值分时执行控制。并且,管理器351将由第10S321、任务A311 任务K312和伪任务313构成的系统作为虚拟计算机301控制。第20S322使用时间分段(time slice)值对多个任务(这里是任务L314 任务P315和保护任务316)进行分时执行控制。并且,管理器351将由第20S322、任务L314 任务P315和保护任务316构成的系统作为子虚拟计算机302控制。这里,子虚拟计算机302是以虚拟计算机301为母虚拟计算机、以分叉(fork)方式生成的虚拟计算机。关于分叉方式下的虚拟计算机的生成在后面叙述。第10S321除了实现作为一般的多任务操作系统的功能的模块群(未图示)以外,还在内部中包括启动请求检测模块331、保护任务生成模块332、任务调度变更模块333、保护任务结束通知模块334和伪任务执行通知模块335这5个模块,启动请求检测模 块331在内部中存储有预先设定的保护任务对应表336。图4是由启动请求检测模块331及启动请求检测模块341存储的保护任务对应表400 (在图3中,是保护任务对应表336及保护任务对应表346)的数据构造图。如该图所示,保护任务对应表400将应用程序ID410与保护对象标志420建立对应而构成。并且,该保护任务对应表400是在系统设计时预先设定的。应用程序ID是用于识别应用程序的ID。保护对象标志420是表示由对应的应用程序ID识别的应用程序是否是针对来自恶意软件的攻击成为保护对象的保护对象应用程序的I位的标志。这里,保护对象标志420在逻辑值“ I ”的情况下,表示由对应的应用程序ID识别的应用程序是成为针对来自恶意软件的攻击的保护对象的保护对象应用程序,在逻辑值“O”的情况下,表示由对应的应用程序ID识别的应用程序不是成为针对来自恶意软件的攻击的保护对象的保护对象应用程序。根据该保护对象标志420可知,例如由应用程序ID410 “0002”识别的应用程序是
保护对象应用程序。再次回到图3,继续说明在处理器101上成为执行对象的模块群。启动请求检测模块331在内部中存储预先设定的保护任务对应表336,具有以下的两个功能。功能I :在从由本操作系统(这里第10S321)执行控制的任务请求了新的应用程序的启动的情况下,参照存储的保护任务对应表336判断被请求启动的应用程序是否是保护对象应用程序。功能2 :在被请求启动的应用程序是保护对象应用程序的情况下,向本操作系统所包含的保护任务生成模块(这里是保护任务生成模块332)和管理器351所包含的虚拟计算机生成模块361 (后述)进行被请求了保护对象应用程序的启动的通知。保护任务生成模块332具有以下的3个功能。功能I :在从管理器351所包含的子虚拟计算机通知模块362 (后述)接受到本操作系统所属的虚拟计算机(这里是虚拟计算机301)是子虚拟计算机的通知的情况下,将保护对象应用程序启动,在本操作系统所属的虚拟计算机(这里是虚拟计算机301)内生成保护任务。功能2 :在从管理器351所包含的子虚拟计算机通知模块362 (后述)没有接受到本操作系统所属的虚拟计算机(这里是虚拟计算机301)是子虚拟计算机的通知的情况下,在从本操作系统所包含的启动请求检测模块(这里是启动请求检测模块331)进行了已请求保护对象应用程序的启动的通知时,代替保护对象应用程序而启动伪程序,在本操作系统所属的虚拟计算机(这里是虚拟计算机301)内生成伪任务。
功能3 :在生成伪任务的情况下,作为操作系统在任务切换控制中使用的时间分段值,将向对应的保护任务分配的时间分段值分配给伪任务。任务调度变更模块333具有如下功能在从管理器351所包含的子虚拟计算机通知模块362 (后述)接受到本操作系统所属的虚拟计算机(这里是虚拟计算机301)是子虚拟计算机的通知的情况下,在由本操作系统所包含的保护任务生成模块(这里是保护任务生成模块332)生成了保护任务时、将由本操作系统(这里是第10S321)执行的任务限定于保护任务。为了将由本操作系统执行的任务限定于保护任务,可以通过例如使保护任务的优先级比其他任务的优先级高、例如使其他任务的优先级比保护任务的优先级低、此外例如在本操作系统具有将执行的任务限定于规定的任务的功能的情况下将保护任务设定为该规定的任务等来实现。保护任务结束通知模块334具有如下功能检测由本操作系统(这里是第10S321)执行控制的保护任务的执行结束,对管理器351所包含的虚拟计算机调度模块363 (后述)·进行保护任务的执行已结束的通知。伪任务执行通知模块335具有以下的两个功能。功能I :检测在本操作系统所属的虚拟计算机(这里是虚拟计算机301)中开始了伪任务的执行,对管理器351所包含的虚拟计算机调度模块363 (后述)进行伪任务的执行的通知。功能2 :检测在本操作系统所属的虚拟计算机(这里是虚拟计算机301)中伪任务的执行被中断,对管理器351所包含的虚拟计算机调度模块363 (后述)进行伪任务的执行被中断的通知。第20S322除了实现作为一般的多任务操作系统的功能的模块群(未图示)以外,还在内部中包括启动请求检测模块341、保护任务生成模块342、任务调度变更模块343、保护任务结束通知模块344和伪任务执行通知模块345这5个模块,启动请求检测模块331在内部中存储有预先设定的保护任务对应表346。这些启动请求检测模块341、保护任务生成模块342、任务调度变更模块343、保护任务结束通知模块344、伪任务执行通知模块345和保护任务对应表346分别具有与包含在第10S321中的启动请求检测模块331、保护任务生成模块332、任务调度变更模块333、保护任务结束通知模块334、伪任务执行通知模块335和保护任务对应表336同样的功能。由此,这里,省略这些说明。但是,它们中的保护任务生成模块342和任务调度变更模块343根据是否从子虚拟计算机通知模块362接受到本操作系统所属的虚拟计算机是子虚拟计算机的通知,分别进行与保护任务生成模块332和任务调度变更模块333相互不同的动作。管理器351在内部中包括虚拟计算机生成模块361、子虚拟计算机通知模块362、虚拟计算机调度模块363和虚拟计算机清除模块364。虚拟计算机生成模块361具有如下功能在从虚拟计算机(这里是虚拟计算机301)的启动请求检测模块331进行了被请求保护对象应用程序的启动的通知的情况下,基于虚拟计算机301以分叉方式生成新的子虚拟计算机(这里是子虚拟计算机302)的功能。这里,分叉方式下的虚拟计算机的生成,是指以分配给作为母机的虚拟计算机的存储区域与分配给新生成的虚拟计算机的存储区域I对I地对应的方式将分配给作为母机的虚拟计算机的存储区域映射到新生成的虚拟计算机的存储区域映射,从而生成新的虚拟计算机。另外,在新生成虚拟计算机后,以写时复制方式管理作为母机的虚拟计算机的存储区域和新生成的虚拟计算机的存储区域。子虚拟计算机通知模块362具有如下功能在虚拟计算机生成模块361生成了新的子虚拟计算机(这里是子虚拟计算机302)的情况下,向在子虚拟计算机302上动作的保护任务生成模块342和任务调度变更模块343进行虚拟计算机是子虚拟计算机的通知。作为向这些模块进行虚拟计算机是子虚拟计算机的通知的方法的一例,例如有子虚拟计算机通知模块362将是子虚拟计算机之意的信息记录到指定的存储区域中、产生对虚拟计算机的中断、使这些模块参照记录在上述指定的区域中的信息的方法;例如在这些模块被调用而动作时,通过调用预先设定的函数来通知自模块所属的虚拟计算机是子虚拟计算机的方法等。
虚拟计算机调度模块363具有以下的3个功能。功能I :在母虚拟计算机(这里是虚拟计算机301)为执行对象虚拟计算机的情况下,在从伪任务执行通知模块335进行开始了伪任务313的执行的通知时,将执行对象虚拟计算机从虚拟计算机301切换为该子虚拟计算机(这里是子虚拟计算机302)。功能2 :在子虚拟计算机(这里是子虚拟计算机302)为执行对象虚拟计算机的情况下,在从该母虚拟计算机(这里是虚拟计算机301)的伪任务执行通知模块335进行伪任务313的执行被中断的通知时,将执行对象虚拟计算机从子虚拟计算机302切换为该母虚拟计算机(这里是虚拟计算机301)。功能3 :在子虚拟计算机(这里是子虚拟计算机302)为执行对象虚拟计算机的情况下,在从执行中的子虚拟计算机302的保护任务结束通知模块344进行保护任务316的执行已结束的通知时,将执行对象虚拟计算机从子虚拟计算机302切换为该母虚拟计算机(这里是虚拟计算机301),对虚拟计算机301的操作系统(这里是第10S321)进行保护任务316的执行已结束的通知。虚拟计算机清除模块364具有在子虚拟计算机(这里是子虚拟计算机302)为执行对象虚拟计算机的情况下,在从保护任务结束通知模块344向虚拟计算机调度模块363进行保护任务316的执行已结束的通知时,如果虚拟计算机调度模块363将执行对象虚拟计算机从子虚拟计算机302切换为该母虚拟计算机(这里是虚拟计算机301),则使子虚拟计算机302清除。这里,所谓使虚拟计算机清除,是指将作为对象的虚拟计算机从分时执行处理对象中排除,将分配给该虚拟计算机的存储区域释放。以下,参照附图,说明上述结构的虚拟计算机系统100进行的动作。〈动作〉这里,说明虚拟计算机系统100进行的动作中的、作为特征性的动作的子虚拟计算机生成处理、子虚拟计算机清除处理和保护任务执行处理。以下,假设虚拟计算机301没有从子虚拟计算机通知模块362接受到是子虚拟计算机的通知而进行说明。<子虚拟计算机生成处理>
子虚拟计算机生成处理是虚拟计算机系统100生成用于执行保护任务的新的子虚拟计算机的处理。图5是子虚拟计算机生成处理的流程图。子虚拟计算机生成处理通过从在虚拟计算机(这里是虚拟计算机301)中被执行控制的任务对包含在该虚拟计算机中的操作系统(这里是第10S321)请求保护对象应用程序的启动而开始。来自被执行控制的任务的保护对象应用程序的启动请求例如通过由利用虚拟计算机系统100的用户操作输入装置131 (参照图I)等而发生。
如果子虚拟计算机生成处理开始,则启动请求检测模块331 (参照图3)参照存储的保护任务对应表336,检测被启动请求的应用程序是保护对象应用程序(步骤S500)。于是,启动请求检测模块331向保护任务生成模块332和虚拟计算机生成模块361进行被请求了保护对象应用程序的启动的通知(步骤S510)。虚拟计算机生成模块361如果从启动请求检测模块331进行被请求保护对象应用程序的启动的通知,则基于虚拟计算机301,以分叉方式生成新的子虚拟计算机302。并且,管理器351将所生成的子虚拟计算机302追加到执行控制对象虚拟计算机(步骤S520)。然后,子虚拟计算机通知模块362向子虚拟计算机302的保护任务生成模块342和任务调度变更模块343进行本操作系统所属的虚拟计算机是子虚拟计算机的通知(步骤S530)。另一方面,由于虚拟计算机301的保护任务生成模块332没有从子虚拟计算机通知模块362接受到本操作系统所属的虚拟计算机是子虚拟计算机的通知,所以如果从启动请求检测模块331进行被请求保护对象应用程序的启动的通知,则将伪程序启动,在虚拟计算机301内生成伪任务313 (步骤S540)。相对于此,子虚拟计算机302的保护任务生成模块342如果从子虚拟计算机通知模块362进行本操作系统所属的虚拟计算机是子虚拟计算机的通知,则将保护对象应用程序启动,在子虚拟计算机302内生成保护任务316 (步骤S550)。并且,如果保护任务生成模块342生成保护任务316,则任务调度变更模块343将由第20S322执行的任务限定于保护任务316 (步骤S560)。如果步骤S560的处理结束,则虚拟计算机系统100结束该子虚拟计算机生成处理。<子虚拟计算机清除处理>子虚拟计算机清除处理是虚拟计算机系统100将为了执行保护任务而生成的子虚拟计算机清除的处理。图6是子虚拟计算机清除处理的流程图。子虚拟计算机清除处理通过由保护任务结束通知模块344检测出在子虚拟计算机(这里是子虚拟计算机302)中执行的保护任务(这里是保护任务316)结束该处理而开始。如果子虚拟计算机清除处理开始,则保护任务结束通知模块344检测到保护任务316的执行结束(步骤S600),向虚拟计算机调度模块363进行保护任务的执行已结束的通知(步骤S610)。
如果从保护任务结束通知模块344通知保护任务的执行已结束,则虚拟计算机调度模块363将执行对象虚拟计算机从子虚拟计算机302切换为虚拟计算机301,向第10S321进行保护任务316的执行已结束的通知。并且,管理器351将子虚拟计算机302从作为执行控制对象虚拟计算机管理的虚拟计算机群中删除(步骤S620)。如果虚拟计算机调度模块363将执行对象虚拟计算机从子虚拟计算机302切换为虚拟计算机301,则虚拟计算机清除模块364通过将分配给子虚拟计算机302的存储区域释放,将子虚拟计算机302清除(步骤S630)。另一方面,如果从虚拟计算机调度模块363通知保护任务316的执行已结束,则第10S321将执行的任务从伪任务313切换为其他任务,将伪任务313从执行控制对象任务中删除(步骤S640)。如果步骤S640的处理结束,则虚拟计算机系统100结束该子虚拟计算机清除处
理。·〈保护任务执行处理〉保护任务执行处理是虚拟计算机系统100执行保护任务的处理。图7是保护任务执行处理的流程图。保护任务执行处理通过在母虚拟计算机(这里是虚拟计算机301)中开始执行伪任务313而开始。在虚拟计算机301中,如果作为分时执行控制对象的伪任务313被开始执行(步骤S700),则伪任务执行通知模块335检测到伪任务被开始执行,向虚拟计算机调度模块363进行伪任务已开始执行的通知(步骤S710)。如果从伪任务执行通知模块335进行伪任务已开始的执行的通知,则虚拟计算机调度模块363将执行对象虚拟计算机从虚拟计算机301切换为子虚拟计算机302 (步骤S720)。如果执行对象虚拟计算机切换为子虚拟计算机302,则子虚拟计算机302仅执行保护任务316 (步骤S730)。然后,在虚拟计算机301中,如果伪任务313的执行被中断(步骤S740),则伪任务执行通知模块335检测出伪任务的执行被中断,向虚拟计算机调度模块363进行伪任务的执行被中断的通知(步骤S750)。这里,在虚拟计算机301中,作为伪任务313的执行被中断的情况的例子,例如有在虚拟计算机301中发生了对伪任务313以外的任务(这里是任务A311 任务K312)的中断的情况,例如在虚拟计算机301中伪任务313的时间分段结束的情况等。时间分段的结束例如通过由定时器104在从伪任务313的执行开始时刻起的经过时间超过了时间分段值的时点对处理器101产生中断来检测。如果由伪任务执行通知模块335进行伪任务的执行被中断的通知,则虚拟计算机调度模块363将执行对象虚拟计算机从子虚拟计算机302切换为虚拟计算机301 (步骤S760)。另一方面,在虚拟计算机301中,将执行的任务从伪任务313切换为伪任务313以外的任务并执行(步骤S770 )。然后,如果再次在虚拟计算机301中将执行的任务从伪任务313以外的任务切换为伪任务313 (步骤S780),则再次回到步骤S700的处理,重复步骤S700以下的处理。图8是示意地表示在保护任务执行处理中由虚拟计算机系统100执行的任务的示意图。在虚拟计算机301中,如果在时刻tl所执行的任务从伪任务313以外的任务切换为伪任务313,并伪任务313被开始执行(步骤S700),则伪任务的执行开始被通知到虚拟计算机调度模块363 (步骤S710),所执行的虚拟计算机从虚拟计算机301切换为子虚拟计算机302 (步骤S720),在子虚拟计算机302中仅执行保护任务316 (步骤S730)。然后,在虚拟计算机301中,如果在时刻t2伪任务313成为执行中断(步骤S740),则伪任务的执行中断被通知到虚拟计算机调度模块(步骤S750),所执行的虚拟计算机从子虚拟计算机302切换为虚拟计算机301 (步骤S760),在虚拟计算机301中,所执行的任务从伪任务313切换为伪任务313以外的任务(步骤S770)。
<多个保护对象应用程序被请求启动的情况>到此为止,以被请求启动的保护对象应用程序是I个的情况为中心进行了说明。但是,在有多个保护对象应用程序的情况下,有时可能有多个保护对象应用程序被请求启动。此时,按被请求启动的每个保护对象应用程序,生成用于执行该保护对象应用程序的子虚拟计算机。图9是表示在相互不同的多个保护对象应用程序被请求启动的情况下、在某时刻t5在处理器101上成为执行对象的模块的框图。该图表示与在虚拟计算机901中被请求启动的相互不同的多个保护对象应用程序各自对应地生成用于执行保护对象应用程序的多个子虚拟计算机(这里是子虚拟计算机A902、子虚拟计算机B903等)的状态。如该图所示,在虚拟计算机901中,与被请求启动的多个保护对象应用程序各自对应的保护任务(这里是保护任务A917、保护任务B920等)被相互独立的子虚拟计算机(这里是子虚拟计算机A902、子虚拟计算机B903等)执行。〈考察〉以下,使用具体例对虚拟计算机系统100的动作进行考察。作为具体例,考虑在与任务A311(参照图3)对应的应用程序和与任务L314对应的应用程序各自中包含有攻击与保护任务316对应的保护对象应用程序的恶意软件的情况。在虚拟计算机301中,任务A311能够成为执行对象,但即使从执行中的任务A311请求保护对象应用程序的启动,也由保护任务生成模块332代替保护对象应用程序而启动伪程序。由此,保护对象应用程序不会被启动。因而,在虚拟计算机301中,保护对象应用程序不会从任务A311受到攻击。此外,在子虚拟计算机302中,通过保护对象应用程序的启动而生成保护任务316,但保护任务316以外的任务通过任务调度变更模块343不会成为执行对象。S卩,在子虚拟计算机302中,任务L314不会被执行。因而,在子虚拟计算机302中,保护对象应用程序不会从任务L314受到攻击。这样,有关本实施方式I的虚拟计算机系统100即使在虚拟计算机当作执行对象的应用程序中包含有攻击保护对象应用程序的恶意软件的情况下,也能够将由该恶意软件攻击保护对象应用程序的危险性抑制得比以往低。
此外,有关本实施方式I的虚拟计算机系统100由于在作为母机的虚拟计算机中执行保护任务以外的任务、在作为子机的虚拟计算机中仅执行保护任务,所以在作为母机的虚拟计算机中执行的任务与作为子机的虚拟计算机中执行的任务不会重复。〈实施方式2>〈概要〉以下,作为有关本发明的虚拟计算机系统的一例,对将实施方式I的虚拟计算机系统100的一部分变形的变形虚拟计算机系统进行说明。有关实施方式2的变形虚拟计算机系统其硬件结构为与有关实施方式I的虚拟计算机系统100同样的结构,但执行的软件的一部分被从有关实施方式I的虚拟计算机系统 100变形。有关实施方式I的虚拟计算机系统100是操作系统(例如第10S321)所包含的伪任务执行通知模块(例如伪任务执行通知模块335)检测伪任务的执行开始、向虚拟计算机调度模块363通知的结构的例子,而有关实施方式2的变形虚拟计算机系统是伪任务自身将自伪任务开始执行的情况经由操作系统向虚拟计算机调度模块通知的结构的例子。以下,对于有关本实施方式2的变形虚拟计算机系统的结构,以与有关实施方式I的虚拟计算机系统的不同点为中心,参照附图进行说明。〈硬件结构〉变形虚拟计算机系统为与有关实施方式I的虚拟计算机系统100同样的硬件结构。由此,这里省略说明。此外,以下,有关构成变形虚拟计算机系统的硬件的各构成要素的说明,使用与构成有关实施方式I的虚拟计算机系统100的硬件的各构成要素相同的符号来进行。〈程序模块结构〉图10是表示在某时刻t0在处理器101上成为执行对象的模块的框图。在该图中,模块群1000是在处理器101中成为执行对象的模块的集合,包含在模块群1000中的模块分别保存在R0M102或RAM103的存储区域中。模块群1000是从有关实施方式I的模块群300中将伪任务313变更为伪任务1013、追加调度任务1014、将伪任务执行通知模块335和伪任务执行通知模块345删除、将任务调度变更模块333、任务调度变更模块343、保护任务生成模块332、保护任务生成模块342和虚拟计算机调度模块363分别变更为任务调度变更模块1033、任务调度变更模块1043、保护任务生成模块1032、保护任务生成模块1042和虚拟计算机调度模块1063的结构。此外,随着任务调度变更模块333和保护任务生成模块332分别被变更为任务调度变更模块1033和保护任务生成模块1032,第10S321被变形为第10S1021,随着任务调度变更模块343和保护任务生成模块342分别被变更为任务调度变更模块1043和保护任务生成模块1042,第20S322被变形为第10S1022。进而,随着伪任务313被变更为伪任务1013、第10S321被变更为第10S1021,虚拟计算机301被变形为虚拟计算机1001,随着追加调度任务1014、第20S322被变更为第20S1022,子虚拟计算机302被变形为子虚拟计算机1002。并且,随着虚拟计算机调度模块363被变更为虚拟计算机调度模块1063,管理器351被变更为管理器1051。图11 (a)是表示与伪任务1013对应的伪程序1113的结构的程序结构图。有关实施方式I的伪任务313是对应的伪程序例如为由重复NOP的无限循环构成的程序这样的、不会产生新的任务的例如由重复NOP的无限循环构成的程序。相对于此,有关实施方式2的伪任务1013的对应的伪程序1113如图11 (a)所示由第I部分1121和第2部分1122构成。第I部分1121是经由执行控制与自伪程序对应的伪任务(这里是伪任务1013)的操作系统(这里是第10S1021)向管理器1051所包含的虚拟计算机调度模块1063进行伪任务的执行开始的通知的记述。第2部分1122是对执行控制自伪任务的操作系统(这里是第10S1021)请求将分配给自伪任务的时间分段放弃、将执行的任务从自伪任务切换为其他任务的记述。·
图11 (b)表示与调度任务1014对应的调度程序1117的结构。调度任务1014的对应的调度程序1117如图11 (b)所示由第I部分1131和第2部分1132构成。第I部分1131对执行控制自调度任务的操作系统(这里是第20S1022)请求将分配给自调度任务的时间分段放弃、将执行的任务从自调度任务切换为其他任务的记述。第2部分1132是经由执行控制与自调度程序对应的调度任务(这里是调度任务1014)的操作系统(这里是第20S1022)对管理器1051所包含的虚拟计算机调度模块1063请求将执行对象虚拟计算机从自任务所属的子虚拟计算机(这里是子虚拟计算机1002)切换为作为母机的虚拟计算机(这里是虚拟计算机1001)的记述。再次回到图10,继续说明在处理器101上成为执行对象的模块群。保护任务生成模块1032是从有关实施方式I的保护任务生成模块332将功能I变形为以下的变形功能I的模块。变形功能I :在从管理器1051所包含的子虚拟计算机通知模块362接受到本操作系统所属的虚拟计算机(这里是虚拟计算机1001)是子虚拟计算机的通知的情况下,将保护对象应用程序和调度程序启动,在本操作系统所属的虚拟计算机(这里是虚拟计算机1001)内分别生成保护任务(这里是保护任务316)和调度任务(这里是调度任务1014)。任务调度变更模块1033是从有关实施方式I的任务调度变更模块333将具有的功能变形为以下的两个变形功能的模块。变形功能I :在从管理器1051所包含的子虚拟计算机通知模块362接受到本操作系统所属的虚拟计算机(这里是虚拟计算机1001)是子虚拟计算机的通知的情况下,在由本操作系统所包含的保护任务生成模块(这里是保护任务生成模块1032)生成保护任务和调度任务时,将由本操作系统(这里是第10S1021)执行的任务限定为保护任务和调度任务的功能。变形功能2 :在保护任务和调度任务为执行控制对象的情况下,将之前执行的任务作为调度任务。虚拟计算机调度模块1063是从有关实施方式I的虚拟计算机调度模块363将功能2变形为以下的变形功能2的模块。变形功能2 :在子虚拟计算机(这里是子虚拟计算机1002)为执行对象虚拟计算机的情况下,在经由该子虚拟计算机1002的操作系统(这里是第20S1022)从调度任务(这里是调度任务1014)请求了将执行对象虚拟计算机从子虚拟计算机1002切换为作为母机的虚拟计算机(这里是虚拟计算机1001)时,将执行对象虚拟计算机从子虚拟计算机1002切换为虚拟计算机1001。〈动作〉在上述结构的变形虚拟计算机系统中,将有关实施方式I的虚拟计算机系统100进行的特征性的动作中的子虚拟计算机生成处理和保护任务执行处理变形而进行。以下,对这些动作,以与有关实施方式I的虚拟计算机系统进行的动作的不同点为中心,参照附图进行说明。这里,以下假设虚拟计算机1001没有从子虚拟计算机通知模块362接受到是子虚拟计算机的通知而进行说明。 <变形子虚拟计算机生成处理>变形子虚拟计算机生成处理是变形虚拟计算机系统生成用于执行保护任务的新的子虚拟计算机的处理,是将有关实施方式I的子虚拟计算机生成处理的一部分变形的处理。图12是变形子虚拟计算机生成处理的流程图。变形子虚拟计算机生成处理与有关实施方式I的子虚拟计算机生成处理同样,通过从在虚拟计算机(这里是虚拟计算机1001)中执行控制的任务对包含在该虚拟计算机中的操作系统(这里是第10S1021)请求保护对象应用程序的启动而开始。步骤S1200 步骤S1240的处理是与有关实施方式I的子虚拟计算机生成处理中的步骤S500 步骤S540的处理同样的处理。由此,这里省略这些步骤的说明。如果从子虚拟计算机通知模块362进行本操作系统所属的虚拟计算机是子虚拟计算机的通知,则子虚拟计算机1002的保护任务生成模块342将保护对象应用程序和调度程序启动,在子虚拟计算机1002内生成保护任务316和调度任务1014 (步骤S1250)。并且,如果保护任务生成模块342生成保护任务316和调度任务1014,则任务调度变更模块343将由第20S1022执行的任务限定于保护任务316和调度任务1014 (步骤S1260)。如果步骤S1260的处理结束,则变形虚拟计算机系统结束该变形子虚拟计算机生成处理。<变形保护任务执行处理>变形子虚拟计算机生成处理是变形虚拟计算机系统生成用于执行保护任务的新的子虚拟计算机的处理,是将有关实施方式I的子虚拟计算机生成处理的一部分变形的处理。图13是变形保护任务执行处理的流程图。变形保护任务执行处理与有关实施方式I的保护任务执行处理同样,通过在母虚拟计算机(这里是虚拟计算机1001)中伪任务1013被开始执行而开始。在虚拟计算机1001中,如果作为分时执行控制对象的伪任务1013被开始执行(步骤S1300),则伪任务1013进行与对应的伪程序1113的第I部分1121对应的处理,经由第10S1021向管理器1051所包含的虚拟计算机调度模块1063进行伪任务的执行已开始的通知(步骤S1305)。
如果经由第10S1021进行伪任务的执行已开始的通知,则虚拟计算机调度模块1063将虚拟计算机1001的执行暂时中断,将执行对象虚拟计算机从虚拟计算机1001切换为子虚拟计算机1002 (步骤S1310)。如果将执行对象虚拟计算机切换为子虚拟计算机1002,则子虚拟计算机1002首先开始调度任务1014的执行(步骤S1315)。如果调度任务1 014的执行开始,则调度任务1014进行与对应的调度程序1117的第I部分1131对应的处理,对第20S1022请求将分配给自调度任务的时间分段放弃、将执行的任务从自调度任务切换为其他任务(即,这里是保护任务316)(步骤S1320)。第20S1022如果被请求所执行的任务的切换,则将调度任务1014的执行暂时中断,将执行的任务从调度任务1014切换为保护任务316,执行保护任务316 (步骤S1325)。然后,第20S1022如果经过与分配给调度任务1014的时间分段值对应的时间(步骤S1330),则将执行的任务从保护任务316再次切换为调度任务1014,开始执行被中断的调度任务1014 (步骤S1335)。如果调度任务1014再次被执行,则调度任务1014进行与对应的调度程序1117的第2部分1132对应的处理,经由第20S1022对管理器1051所包含的虚拟计算机调度模块1063请求将执行对象虚拟计算机从子虚拟计算机1002切换为虚拟计算机1001 (步骤S1340)。虚拟计算机调度模块1063如果经由第20S1022有将执行对象虚拟计算机从子虚拟计算机1002切换为虚拟计算机1001的请求,则将执行对象虚拟计算机从子虚拟计算机1002切换为虚拟计算机1001 (步骤S1345)。如果执行对象虚拟计算机被切换为虚拟计算机1001,则虚拟计算机1001开始执行被中断的伪任务1013 (步骤S1350)。如果伪任务1013再次被执行,则伪任务1013进行与对应的伪程序1113的第2部分1122对应的处理,对第10S1021请求将分配给自伪任务的时间分段放弃、将执行的任务从自伪任务切换为其他任务(步骤S1355)。第20S1022如果被请求执行的任务的切换,则将执行的任务从伪任务1013切换为伪任务1013以外的任务并执行(步骤S1360)。然后,如果再次在虚拟计算机1001中所执行的任务从伪任务1013以外的任务切换为伪任务1013 (步骤S1365),则再次回到步骤S1300的处理,重复步骤S1300以下的处理。图14是示意地表示在变形保护任务执行处理中由变形虚拟计算机系统执行的任务的不意图。在虚拟计算机301中,如果在时刻tl所执行的任务从伪任务1013以外的任务切换为伪任务1013、伪任务1013被开始执行(步骤S1300),则对虚拟计算机调度模块1063进行伪任务的执行已开始的通知(步骤S1305),执行的虚拟计算机从虚拟计算机1001切换为子虚拟计算机1002(步骤S1310),在子虚拟计算机1002中执行调度任务1014(步骤S1315)。如果调度任务1014被执行,则第20S1022被请求将执行的任务切换为保护任务316 (步骤S1320),开始执行保护任务316 (步骤S1325)。然后,如果在时刻t2经过与分配给保护任务的时间分段值对应的时间(步骤S1330),则第20S1022将执行的任务切换为调度任务1014并执行(步骤S1335),对虚拟计算机调度模块1063进行请求以将执行对象虚拟计算机切换为虚拟计算机1001(步骤S1340),执行的虚拟计算机从子虚拟计算机1002切换为虚拟计算机1001 (步骤S1345),在虚拟计算机1001中执行伪任务1013 (步骤S1350)。如果伪任务1013被执行,则第10S1021被请求将执行的任务切换为其他任务(步骤S1355),所执行的任务切换为其他任务(步骤S1360)。〈总结〉上述有关实施方式2的变形虚拟计算机系统与有关实施方式I的虚拟计算机系统100同样,即使在虚拟计算机当作执行对象的应用程序中包含有攻击保护对象应用程序的恶意软件的情况下,也能够将由该恶意软件攻击保护对象应用程序的危险性抑制得比以往低。 此外,有关实施方式2的变形虚拟计算机系统与有关本实施方式I的虚拟计算机系统100同样,由作为母机的虚拟计算机执行的任务与由作为子机的虚拟计算机执行的任务不会重复。< 补充 >以上,作为有关本发明的虚拟计算机系统的一实施方式,在实施方式I、实施方式2中,对两个虚拟计算机系统的例子进行了说明,但也可以如以下这样变形,本发明当然不限定于在上述实施方式中示出的虚拟计算机系统。(I)在实施方式I中,对虚拟计算机系统100具备I个处理器的情况下的例子进行了说明,但只要管理器能够进行多个虚拟计算机的执行控制,处理器的数量并不一定需要限定于I个,例如也可以是2个、3个等的多个。在处理器的数量是多个的情况下,管理器不需要是一定将虚拟计算机的执行以分时进行的结构,也可以是使多个虚拟计算机并行地执行的结构。(2)在实施方式I中,对处理器101、R0M102、RAM103、定时器104、内部总线120、第I接口 121、第2接口 122、和第3接口 123集成在I个集成电路110中的情况下的例子进行了说明,但并不一定需要将这些电路集成在I个集成电路中。例如,也可以是将处理器101集成在第I集成电路中、将其他电路集成在第2集成电路中的结构,例如也可以是将各电路分别集成在相互不同的集成电路中的结构。进而,集成电路110也可以通过在制造后能够进行功能性的编程的FPGA (FieldProgrammable Gate Array)实现,也可以通过能够进行功能的再构成的可重构处理器实现。(3)在实施方式I中,以处理器101具备两个动作模式的结构的情况为例进行了说明,但只要是能够以与执行操作系统的模式同等或其以上的较高的特权模式执行管理器的结构,动作模式的数量并不需要限定于两个,例如也可以是3个以上。在此情况下,能够将执行管理器的动作模式设为比执行操作系统高的特权模式。(4)在实施方式I中,以通过分叉形式进行虚拟计算机的生成的结构的情况为例进行了说明。这是为了通过将虚拟计算机的生成以分叉形式进行来有效地利用RAM103的存储区域。但是,只要能够容许RAM103的存储区域的利用效率的非效率性,则在基于作为母机的虚拟计算机来生成子虚拟计算机的情况下,并不一定需要以分叉形式进行。作为一例,可以考虑通过以分配给作为母机的虚拟计算机的存储区域与分配给新生成的虚拟计算机的存储区域I对I地对应的方式将分配给作为母机的虚拟计算机的存储区域复制到新生成的虚拟计算机的存储区域,来生成新的虚拟计算机的形式等。此外,像这样在子虚拟计算机的存储区域是从母虚拟计算机的存储区域复制的区域等情况下,这些存储区域并不一定需要以写时复制方式管理。(5)在实施方式I中,说明了启动请求检测模块(例如启动请求检测模块331)、保护任务生成模块(例如保护任务生成模块332)、任务调度变更模块(例如任务调度变更模块333)、保护任务结束通知模块(例如保护任务结束通知模块334)、伪任务执行通知模块(例如伪任务执行通知模块335)包含在虚拟计算机内的操作系统(例如第10S321)中的结构的例子,但只要在虚拟计算机系统100中实现与由这些模块实现的功能同等的功能,则这些 模块并不一定需要包含在虚拟计算机内的操作系统中,例如也可以是包含在管理器351中的结构。例如,与伪任务执行通知模块335同等的功能通过如下结构来实现,即设定为如果伪任务313被执行,则对作为写入禁止区域的规定的存储区域进行写入,管理器351具备对因向上述规定的存储区域的写入违反而发生的例外进行补充的模块。(6)以下,再对有关本发明的一实施方式的虚拟计算机系统的结构及其变形例和各效果进行说明。(a)有关本发明的一实施方式的虚拟计算机系统,是具备处理器和在该处理器上执行、用于使该处理器进行多个虚拟计算机的执行控制的管理器的虚拟计算机系统,其特征在于,上述管理器具有执行检测部,用于检测在虚拟计算机中要新执行规定的应用程序;以及虚拟计算机生成部,用于在由上述处理器执行的上述执行检测部检测到在第I虚拟计算机中要新执行上述规定的应用程序的情况下,基于该第I虚拟计算机,生成用于执行上述规定的应用程序的新的第2虚拟计算机;由上述处理器进行执行控制的多个虚拟计算机分别具有执行控制部,该执行控制部用于在上述第2虚拟计算机中使上述处理器仅限于执行包括上述规定的应用程序的指定程序群,在上述第I虚拟计算机中使上述处理器代替上述规定的应用程序而执行规定的伪程序。根据具备上述结构的有关本实施方式的虚拟计算机系统,将已认证应用程序作为规定的应用程序,将未认证应用程序不包含于指定程序群中,由此在执行已认证应用程序的第2虚拟计算机中,未认证应用程序不会被执行,进而,在未认证应用程序有可能被执行的第I虚拟计算机中,已认证应用程序不会被执行。因而,即使在虚拟计算机当作执行对象的应用程序中混合存在已认证应用程序和未认证应用程序的情况下,也能够将因包含在未认证应用程序中的恶意软件被执行而导致已认证应用程序被攻击的危险性抑制得比以往低。图15是表示上述变形例的虚拟计算机系统1500的结构的结构图。如该图所示,虚拟计算机系统1500具备处理器1510和管理器1520。处理器1510具备执行管理器1520的功能。作为一例,作为实施方式I的处理器101实现。管理器1520具有通过在处理器1510上被执行而使处理器1510进行多个虚拟计算机(这里,第I虚拟计算机1530和第2虚拟计算机1540)的执行控制的功能。作为一例,作为实施方式I的管理器351实现。此外,该管理器1520具有执行检测部1521和虚拟计算机生成部1522。执行检测部1521具有检测在虚拟计算机中要新执行规定的应用程序的功能。作为一例,作为实施方式I的虚拟计算机生成模块361中的、实现从虚拟计算机的启动请求检测模块331受理被请求保护对象应用程序的启动的通知的功能的部分实现。虚拟计算机生成部1522具有在由处理器1510执行的执行检测部1521检测到在第I虚拟计算机1530中要新执行规定的应用程序的情况下、基于第I虚拟计算机1530生成用于执行规定的应用程序的新的第2虚拟计算机1540的功能。第I虚拟计算机1530是由处理器1510进行执行控制的多个虚拟计 算机中的I个。作为一例,作为实施方式I的虚拟计算机301实现。此外,该第I虚拟计算机1530具有执行控制部1531。执行控制部1531具有在第2虚拟计算机1540中使处理器1510仅限于执行包括上述规定的应用程序的指定程序群、在第I虚拟计算机1530中使处理器1510代替上述规定的应用程序而执行规定的伪程序的功能。作为一例,作为由实施方式I的保护任务生成模块342和任务调度变更模块343构成的模块实现。第2虚拟计算机1540是由处理器1510进行执行控制的多个虚拟计算机中的I个。作为一例,作为实施方式I的子虚拟计算机302实现。此外,该第2虚拟计算机1540具备具有与执行控制部1531同样的功能的执行控制部1532。(b)此外,也可以是,上述虚拟计算机生成部在基于上述第I虚拟计算机生成新的上述第2虚拟计算机的情况下,以基于分配给上述第I虚拟计算机的存储区域的分叉方式进行对上述第2虚拟计算机的存储区域的分配。通过做成这样的结构,第I虚拟计算机和第2虚拟计算机共用所利用的存储区域的一部分。由此,能够有效利用存储区域。(C)此外,也可以是,上述管理器具有虚拟计算机调度部,该虚拟计算机调度部用于在成为上述处理器的执行对象的上述第I虚拟计算机中上述规定的伪程序被开始执行的情况下,在上述第2虚拟计算机已被生成时,将成为上述处理器的执行对象的虚拟计算机从上述第I虚拟计算机变更为上述第2虚拟计算机。通过做成这样的结构,能够以第I虚拟计算机中的伪程序的执行的开始为契机,将作为执行对象的虚拟计算机从第I虚拟计算机切换为第2虚拟计算机。(d)此外,也可以是,上述虚拟计算机调度部在成为上述处理器的执行对象的上述第2虚拟计算机中上述规定的应用程序结束执行的情况下,将成为上述处理器的执行对象的虚拟计算机从上述第2虚拟计算机变更为上述第I虚拟计算机。通过做成这样的结构,能够以第2虚拟计算机中的规定的应用程序的执行的结束为契机,将作为执行对象的虚拟计算机从第2虚拟计算机切换为第I虚拟计算机。(e)此外,也可以是,上述管理器具有虚拟计算机清除部,该虚拟计算机清除部用于在成为上述处理器的执行对象的上述第2虚拟计算机中上述规定的应用程序结束执行的情况下,在上述虚拟计算机调度部将上述处理器的执行对象虚拟计算机从上述第2虚拟计算机变更为了上述第I虚拟计算机时,将使上述第2虚拟计算机清除。
通过做成这样的结构,能够以第2虚拟计算机中的规定的应用程序的执行的结束为契机,将第2虚拟计算机清除。(f)此外,也可以是,上述执行控制部具有用于使上述处理器以使用时间分段值进行的多任务执行控制方法执行程序的执行控制的多任务执行控制部;上述多任务执行控制部在由上述处理器执行的上述执行控制部使上述处理器代替上述规定的应用程序而执行上述规定的伪程序的情况下,将与分配给上述规定的应用程序的时间分段值相同的值的时间分段值分配给上述规定的伪程序;上述虚拟计算机调度部在从上述第I虚拟计算机中上述规定的伪程序成为上述处理器的执行对象的时刻起经过了由分配给上述规定的伪程序的时间分段值表示的时间的情况下,当上述第2虚拟计算机成为了上述处理器的执行对象虚拟计算机时,将上述处理器的执行对象虚拟计算机从上述第2虚拟计算机变更为上述第I虚拟计算机。通过做成这样的结构,能够以从在第I虚拟计算机中规定的伪程序被执行后起经过由分配给规定的应用程序的时间分段值表示的期间为契机,将执行的虚拟计算机从第2虚拟计算机切换为第I虚拟计算机。·(g)此外,也可以是,具有子虚拟计算机通知部,该子虚拟计算机通知部用于在由上述处理器执行的上述虚拟计算机生成部生成了上述第2虚拟计算机的情况下向上述第2虚拟计算机的上述执行控制部进行是子虚拟计算机的通知;上述执行控制部具有执行开始部,该执行开始部用于在上述第2虚拟计算机中被上述子虚拟计算机通知部通知是子虚拟计算机时,使上述处理器在上述第2虚拟计算机中启动上述规定的应用程序。通过做成这样的结构,如果生成第2虚拟计算机,则在所生成的第2虚拟计算机中启动规定的应用程序。(h)此外,也可以是,上述指定程序群仅由不包含攻击上述规定的应用程序的恶意软件的程序构成。通过做成这样的结构,能够在第2虚拟计算机中消除来自恶意软件的对规定的应用程序的攻击。(i)此外,也可以是,由上述处理器进行执行控制的多个虚拟计算机分别具有通知部,该通知部检测在本虚拟计算机中要新执行上述规定的应用程序,将要新执行上述规定的应用程序的情况通知给上述执行检测部;上述执行检测部通过被由上述处理器执行的上述通知部通知要新执行上述规定的应用程序,来进行要新执行上述规定的应用程序的检测。通过做成这样的结构,能够在该虚拟计算机中检测在虚拟计算机中要新执行规定的应用程序的情况。(j)此外,也可以是,由上述处理器进行执行控制的多个虚拟计算机分别具有伪程序执行开始通知部,该伪程序执行开始通知部用于在本虚拟计算机中由上述处理器开始执行上述规定的伪程序的情况下,向上述虚拟计算机调度部通知在本虚拟计算机中由上述处理器开始执行上述规定的伪程序;上述虚拟计算机调度部通过被由上述处理器执行的上述第I虚拟计算机的上述伪程序执行开始通知部通知在本虚拟计算机中由上述处理器开始执行上述规定的伪程序,来检测在上述第I虚拟计算机中上述规定的伪程序被开始执行。通过做成这样的结构,能够在该虚拟计算机中检测在虚拟计算机中开始执行规定的伪程序的情况。(k)此外,也可以是,由上述处理器进行执行控制的多个虚拟计算机分别具有执行结束通知部,该执行结束通知部用于在本虚拟计算机中上述规定的应用程序结束执行的情况下,向上述虚拟计算机调度部通知在本虚拟计算机中上述规定的应用程序结束执行;上述虚拟计算机调度部通过被由上述处理器执行的上述第2虚拟计算机的上述执行结束通知部通知在本虚拟计算机中上述规定的应用程序结束执行,来检测在上述第2虚拟计算机中上述规定的应用程序结束执行。通过做成这样的结构,能够在该虚拟计算机中检测在虚拟计算机中规定的应用程序的执行结束的情况。工业实用性本发明能够在虚拟计算机系统中广泛使用。符号说明100虚拟计算机系统110集成电路101处理器102R0M103RAM104定时器120内部总线131输入装置132输出装置133硬盘装置300模块群301虚拟计算机302子虚拟计算机313伪任务316保护任务321 第 IOS322 第 20S331、341启动请求检测模块332、342保护任务生成模块333、343任务调度变更模块334、344保护任务结束通知模块335、345伪任务执行通知模块336、346保护任务对应表351管理器361虚拟计算机生成模块362子虚拟计算机通知模块363虚拟计算机调度模块
364虚拟 计算机清除模块
权利要求
1.一种虚拟计算机系统,具备 处理器;以及 管理器,在该处理器上执行,用于使该处理器进行多个虚拟计算机的执行控制; 上述虚拟计算机系统的特征在于, 上述管理器具有 执行检测部,用于检测在虚拟计算机中要新执行规定的应用程序;以及虚拟计算机生成部,用于在由上述处理器执行的上述执行检测部检测到在第I虚拟计算机中要新执行上述规定的应用程序的情况下,基于该第I虚拟计算机,生成用于执行上述规定的应用程序的新的第2虚拟计算机; 由上述处理器进行执行控制的多个虚拟计算机分别具有执行控制部,该执行控制部用于在上述第2虚拟计算机中使上述处理器仅限于执行包括上述规定的应用程序的指定程序群,在上述第I虚拟计算机中使上述处理器代替上述规定的应用程序而执行规定的伪程序。
2.如权利要求I所述的虚拟计算机系统,其特征在于, 上述虚拟计算机生成部在基于上述第I虚拟计算机生成新的上述第2虚拟计算机的情况下,以基于分配给上述第I虚拟计算机的存储区域的分叉方式进行对上述第2虚拟计算机的存储区域的分配。
3.如权利要求2所述的虚拟计算机系统,其特征在于, 上述管理器具有虚拟计算机调度部,该虚拟计算机调度部用于在成为上述处理器的执行对象的上述第I虚拟计算机中上述规定的伪程序被开始执行的情况下,在上述第2虚拟计算机已被生成时,将成为上述处理器的执行对象的虚拟计算机从上述第I虚拟计算机变更为上述第2虚拟计算机。
4.如权利要求3所述的虚拟计算机系统,其特征在于, 上述虚拟计算机调度部在成为上述处理器的执行对象的上述第2虚拟计算机中上述规定的应用程序结束执行的情况下,将成为上述处理器的执行对象的虚拟计算机从上述第2虚拟计算机变更为上述第I虚拟计算机。
5.如权利要求4所述的虚拟计算机系统,其特征在于, 上述管理器具有虚拟计算机清除部,该虚拟计算机清除部用于在成为上述处理器的执行对象的上述第2虚拟计算机中上述规定的应用程序结束执行的情况下,在上述虚拟计算机调度部将上述处理器的执行对象虚拟计算机从上述第2虚拟计算机变更为了上述第I虚拟计算机时,将上述第2虚拟计算机清除。
6.如权利要求5所述的虚拟计算机系统,其特征在于, 上述执行控制部具有多任务执行控制部,该多任务执行控制部用于使上述处理器以利用时间分段值进行的多任务执行控制方法执行程序的执行控制; 上述多任务执行控制部在由上述处理器执行的上述执行控制部使上述处理器代替上述规定的应用程序而执行上述规定的伪程序的情况下,将与分配给上述规定的应用程序的时间分段值相同的值的时间分段值分配给上述规定的伪程序; 上述虚拟计算机调度部在从上述第I虚拟计算机中上述规定的伪程序成为上述处理器的执行对象的时点起经过了由分配给上述规定的伪程序的时间分段值表示的时间的情况下,在上述第2虚拟计算机成为了上述处理器的执行对象虚拟计算机时,将上述处理器的执行对象虚拟计算机从上述第2虚拟计算机变更为上述第I虚拟计算机。
7.如权利要求6所述的虚拟计算机系统,其特征在于, 具有子虚拟计算机通知部,该子虚拟计算机通知部用于在由上述处理器执行的上述虚拟计算机生成部生成了上述第2虚拟计算机的情况下,向上述第2虚拟计算机的上述执行控制部通知是子虚拟计算机; 上述执行控制部具有执行开始部,该执行开始部用于在上述第2虚拟计算机中被上述子虚拟计算机通知部通知是子虚拟计算机时,使上述处理器在上述第2虚拟计算机中启动上述规定的应用程序。
8.如权利要求7所述的虚拟计算机系统,其特征在于, 上述指定程序群仅由不包含攻击上述规定的应用程序的恶意软件的程序构成。
9.如权利要求7所述的虚拟计算机系统,其特征在于, 由上述处理器进行执行控制的多个虚拟计算机分别具有通知部,该通知部检测在本虚拟计算机中要新执行上述规定的应用程序,向上述执行检测部通知要新执行上述规定的应用程序; 上述执行检测部通过被由上述处理器执行的上述通知部通知要新执行上述规定的应用程序,来进行要新执行上述规定的应用程序的检测。
10.如权利要求7所述的虚拟计算机系统,其特征在于, 由上述处理器进行执行控制的多个虚拟计算机分别具有伪程序执行开始通知部,该伪程序执行开始通知部用于在本虚拟计算机中由上述处理器开始执行上述规定的伪程序的情况下,向上述虚拟计算机调度部通知在本虚拟计算机中由上述处理器开始执行上述规定的伪程序; 上述虚拟计算机调度部通过被由上述处理器执行的上述第I虚拟计算机的上述伪程序执行开始通知部通知在本虚拟计算机中由上述处理器开始执行上述规定的伪程序,来检测在上述第I虚拟计算机中上述规定的伪程序被开始执行。
11.如权利要求7所述的虚拟计算机系统,其特征在于, 由上述处理器进行执行控制的多个虚拟计算机分别具有执行结束通知部,该执行结束通知部用于在本虚拟计算机中上述规定的应用程序结束执行的情况下,向上述虚拟计算机调度部通知在本虚拟计算机中上述规定的应用程序结束执行; 上述虚拟计算机调度部通过被由上述处理器执行的上述第2虚拟计算机的上述执行结束通知部通知在本虚拟计算机中上述规定的应用程序结束执行,来检测在上述第2虚拟计算机中上述规定的应用程序结束执行。
12.—种虚拟计算机控制方法,是控制虚拟计算机系统的方法,该虚拟计算机系统具备 处理器;以及 管理器,在该处理器上执行,用于使该处理器进行多个虚拟计算机的执行控制; 上述虚拟计算机控制方法的特征在于,包括 执行检测步骤,上述管理器检测在虚拟计算机中要新执行规定的应用程序; 虚拟计算机生成步骤,上述管理器在由上述处理器执行的上述执行检测步骤中检测到在第I虚拟计算机中要新执行上述规定的应用程序的情况下,基于该第I虚拟计算机,生成用于执行上述规定的应用程序的新的第2虚拟计算机;以及 执行控制步骤,由上述处理器进行执行控制的多个虚拟计算机分别在上述第2虚拟计算机中使上述处理器仅限于执行包括上述规定的应用程序的指定程序群,在上述第I虚拟计算机中使上述处理器代替上述规定的应用程序而执行规定的伪程序。
13.—种虚拟计算机控制程序,控制虚拟计算机系统,该虚拟计算机系统具备 处理器;以及 管理器,在该处理器上执行,用于使该处理器进行多个虚拟计算机的执行控制; 上述虚拟计算机控制程序的特征在于,包括 执行检测步骤,上述管理器检测在虚拟计算机中要新执行规定的应用程序; 虚拟计算机生成步骤,上述管理器在由上述处理器执行的上述执行检测步骤中检测到在第I虚拟计算机中要新执行上述规定的应用程序的情况下,基于该第I虚拟计算机,生成用于执行上述规定的应用程序的新的第2虚拟计算机;以及 执行控制步骤,由上述处理器进行执行控制的多个虚拟计算机分别在上述第2虚拟计算机中使上述处理器仅限于执行包括上述规定的应用程序的指定程序群,在上述第I虚拟计算机中使上述处理器代替上述规定的应用程序而执行规定的伪程序。
14.一种半导体集成电路,具备 处理器;以及 管理器,在该处理器上执行,用于使该处理器进行多个虚拟计算机的执行控制; 上述半导体集成电路的特征在于, 上述管理器具有 执行检测部,用于检测在虚拟计算机中要新执行规定的应用程序;以及虚拟计算机生成部,用于在由上述处理器执行的上述执行检测部检测到在第I虚拟计算机中要新执行上述规定的应用程序的情况下,基于该第I虚拟计算机,生成用于执行上述规定的应用程序的新的第2虚拟计算机; 由上述处理器进行执行控制的多个虚拟计算机分别具有执行控制部,该执行控制部用于在上述第2虚拟计算机中使上述处理器仅限于执行包括上述规定的应用程序的指定程序群,在上述第I虚拟计算机中使上述处理器代替上述规定的应用程序而执行规定的伪程序。
全文摘要
在执行中的虚拟计算机中,在预先设定的指定的应用程序成为执行对象的情况下,以该执行中的虚拟计算机为母虚拟计算机,以分叉方式生成用于执行该指定的应用程序的子虚拟计算机。并且,生成的子虚拟计算机设定为不执行该指定的应用程序以外的应用程序。另一方面,母虚拟计算机代替该指定的应用程序而执行伪应用程序。
文档编号G06F21/56GK102959555SQ20128000181
公开日2013年3月6日 申请日期2012年2月21日 优先权日2011年4月27日
发明者天野克重, 斋藤雅彦 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1