首页> 中国专利> 虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路

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

摘要

在执行中的虚拟计算机中,在预先设定的指定的应用程序成为执行对象的情况下,以该执行中的虚拟计算机为母虚拟计算机,以分叉方式生成用于执行该指定的应用程序的子虚拟计算机。并且,生成的子虚拟计算机设定为不执行该指定的应用程序以外的应用程序。另一方面,母虚拟计算机代替该指定的应用程序而执行伪应用程序。

著录项

  • 公开/公告号CN102959555A

    专利类型发明专利

  • 公开/公告日2013-03-06

    原文格式PDF

  • 申请/专利权人 松下电器产业株式会社;

    申请/专利号CN201280001814.6

  • 发明设计人 天野克重;斋藤雅彦;

    申请日2012-02-21

  • 分类号G06F21/52(20130101);G06F21/56(20130101);G06F9/46(20060101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人安香子;黄剑锋

  • 地址 日本大阪府

  • 入库时间 2024-02-19 17:57:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-15

    专利权的转移 IPC(主分类):G06F21/52 登记生效日:20170119 变更前: 变更后: 申请日:20120221

    专利申请权、专利权的转移

  • 2015-09-02

    授权

    授权

  • 2015-08-26

    著录事项变更 IPC(主分类):G06F21/52 变更前: 变更后: 申请日:20120221

    著录事项变更

  • 2014-10-29

    专利申请权的转移 IPC(主分类):G06F21/52 变更前: 变更后: 登记生效日:20141010 申请日:20120221

    专利申请权、专利权的转移

  • 2014-01-01

    实质审查的生效 IPC(主分类):G06F21/52 申请日:20120221

    实质审查的生效

  • 2013-03-06

    公开

    公开

查看全部

说明书

技术领域

本发明涉及虚拟计算机系统,特别涉及用于保护指定的应用程序免受 恶意软件的攻击的技术。

背景技术

以往,已知有如下虚拟计算机系统:通过复制作为母机的虚拟计算机, 生成作为子机的虚拟计算机,将所生成的虚拟计算机动态地执行控制。

例如,在专利文献1中,记载有考虑在各个虚拟计算机上执行的任务 的重要性而将动作的虚拟计算机切换来执行的虚拟计算机系统,例如,在 专利文献2中,记载有将执行的虚拟计算机切换来执行、以执行以优先级 最高的任务为执行对象的虚拟计算机的虚拟计算机系统。

现有技术文献

专利文献

专利文献1:特开2000-242512号公报

专利文献2:WO2009/133669号公报

发明概要

发明要解决的问题

在虚拟计算机系统中,在作为执行对象的应用程序群中有时混合存在 被认证为不包含恶意软件的应用程序(以下,称作“已认证应用程序”)、 以及有可能包含恶意软件的应用程序(以下,称作“未认证应用程序”)。

在这样的情况下,当在未认证应用程序中包含有恶意软件时,通过执 行该恶意软件,已认证应用程序可能被攻击。

作为已认证应用程序被攻击的情况的例子,例如有如下情况:已认证 应用程序被以不适当的方法执行,应该对外部保密的信息、例如系统所保 存的收费内容、个人信息、密钥等被读取。

在以往的动态地生成虚拟计算机的虚拟计算机系统中,即使为了执行 新的已认证应用程序而生成新的子虚拟计算机,也由于该子虚拟计算机是 母虚拟计算机的复制,所以在作为母虚拟计算机的执行对象的应用程序群 中包含有未认证应用程序的情况下,在子虚拟计算机中在作为执行对象的 应用程序群中也包含未认证应用程序。

因而,在以往的虚拟计算机系统中,在作为母虚拟计算机的执行对象 的未认证应用程序中包含有恶意软件的情况下,在为了执行已认证应用程 序而生成的子虚拟计算机中,已认证应用程序也会被该恶意软件攻击。

发明内容

所以,本发明是鉴于这样的问题而做出的,目的是提供一种虚拟计算 机系统,在虚拟计算机当作执行对象的应用程序群中混合存在已认证应用 程序和未认证应用程序的情况下,也能够将通过执行包含在未认证应用程 序中的恶意软件而已认证应用程序被攻击的危险性抑制得比以往低。

用于解决问题的手段

为了解决上述问题,有关本发明的虚拟计算机系统,是具备处理器和 在该处理器上执行、用于使该处理器进行多个虚拟计算机的执行控制的管 理器的虚拟计算机系统,其特征在于,上述管理器具有:执行检测部,用 于检测在虚拟计算机中要新执行规定的应用程序;以及虚拟计算机生成部, 用于在由上述处理器执行的上述执行检测部检测到在第1虚拟计算机中要 新执行上述规定的应用程序的情况下,基于该第1虚拟计算机,生成用于 执行上述规定的应用程序的新的第2虚拟计算机;由上述处理器执行控制 的多个虚拟计算机分别具有执行控制部,该执行控制部用于在上述第2虚 拟计算机中使上述处理器仅执行包括上述规定的应用程序的指定程序群, 在上述第1虚拟计算机中使上述处理器代替上述规定的应用程序而执行规 定的伪程序。

发明效果

根据具备上述结构的有关本发明的虚拟计算机系统,在将已认证应用 程序作为规定的应用程序、在指定程序群中不包含未认证应用程序的情况 下,在执行已认证应用程序的子虚拟计算机中,未认证应用程序不会被执 行,进而,在未认证应用程序有可能被执行的母虚拟计算机中,已认证应 用程序不会被执行。

因而,即使在虚拟计算机当作执行对象的应用程序中混合存在已认证 应用程序和未认证应用程序的情况下,也能将通过执行包含在未认证应用 程序中的恶意软件而导致已认证应用程序被攻击的危险性抑制得比以往 低。

附图说明

图1是表示虚拟计算机系统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)方式(后述)生成用于执行 该指定的应用程序的子虚拟计算机。并且,将所生成的子虚拟计算机设定 为该指定的应用程序以外的应用程序不被执行。另一方面,母虚拟计算机 代替该指定的应用程序而执行伪应用程序。由此,即使在作为该虚拟计算 机系统的执行对象的应用程序中包含有攻击上述指定的应用程序的恶意软 件,该指定的应用程序也不会被恶意软件攻击。

以下,参照附图对有关本实施方式1的虚拟计算机系统的结构进行说 明。

<硬件结构>

图1是表示虚拟计算机系统100的主要的硬件结构的框图。

如该图所示,虚拟计算机系统100作为硬件是计算机装置,由集成电 路110、输入装置131、输出装置132和硬盘装置133构成。

集成电路110是将处理器101、ROM(Read Only Memory)102、RAM (Random Access Memory)103、定时器104、内部总线120、第1接口121、 第2接口122和第3接口123集成而得到的半导体集成电路,与输入装置 131、输出装置132和硬盘装置133连接。

处理器101与内部总线120连接,具有通过执行存储在ROM102或 RAM103中的程序来控制ROM102、RAM103、定时器104、输入装置131、 输出装置132、硬盘装置133的功能。

图2是表示处理器101具备的动作模式的动作模式图。

如该图所示,处理器101具有执行应用程序(图中的任务A231、任务 K232、任务L233等)的用户模式230和作为执行操作系统(图中的第1 OS (Operating System)221、第2 OS222、第N OS223等)和管理器(hypervisor) (图中的管理器211)的特权模式的管理员模式220。

在用户模式230下执行的应用程序分别被在管理员模式220下执行的 操作系统进行分时执行控制,在管理员模式220下执行的操作系统同样分 别被在管理员模式220下执行的管理器进行分时执行控制。

再次回到图1,继续说明虚拟计算机系统100的结构。

ROM102和RAM103分别与内部总线120连接,存储规定处理器101 的动作的程序和处理器101所利用的数据。

定时器104与内部总线120连接,由处理器101控制。

内部总线120与处理器101、ROM102、RAM103、定时器104、第1 接口121、第2接口122、和第3接口123连接,具有传递将它们连接的电 路间的信号的功能。

第1接口121、第2接口122和第3接口123分别与内部总线120来连 接,分别具有对内部总线120与输入装置131之间的信号的交换进行中介 的功能、对内部总线120与输出装置132之间的信号的交换进行中介的功 能、以及对内部总线120与硬盘装置133之间的信号的交换进行中介的功 能。

输入装置131包括键盘、鼠标、照相机、传感器等,与第1接口121 连接,由处理器101控制,具有生成与通过键盘、鼠标、照相机、传感器 等进行的用户操作等对应的数据、将表示发生了用户操作等的通知及所生 成的数据向处理器101发送的功能。

输出装置132包括显示器、扬声器等,与第2接口122连接,由处理 器101控制,具有使用显示器、扬声器等将字符串、图像、声音等显示、 输出的功能。

硬盘装置133内置有对处理器101所利用的数据进行存储的硬盘,与 第3接口123连接,由处理器101控制,具有向内置的硬盘写入数据的功 能和将数据从内置的硬盘读出的功能。

<程序模块结构>

图3是表示在某时刻t0在处理器101上成为执行对象的程序模块(以 下,简称为“模块”)的框图。

在该图中,模块群300是在处理器101中成为执行对象的模块的集合, 模块群300所包含的模块分别保存在ROM102或RAM103的存储区域中。

任务A311~任务K312、伪任务313、任务L314~任务P315、保护任 务316等分别是在处理器101的用户模式下执行的任务。

第1OS321和第2OS322分别是在处理器101的管理员模式下执行的多 任务对应操作系统。

管理器351是在处理器101的管理员模式下执行的管理器。

任务通过调用预先准备的操作系统调用例程(routine),能够对操作系 统委托预先设定的处理。此外,操作系统通过调用预先准备的管理器调用 例程,能够对管理器委托预先设定的处理。

此外,在虚拟计算机系统的执行时发生的例外、从输入装置等发生的 中断由管理器处理,根据需要对虚拟计算机上的操作系统通知。

保护任务316是通过由操作系统(这里是第2OS322)启动预先设定的 保护对象应用程序而生成的任务。该保护对象应用程序是成为从恶意软件 的攻击的保护对象的应用程序,由后述的保护任务对应表346预先设定为 保护对象。

作为保护对象应用程序的一例,例如有处理个人信息的应用程序、处 理金钱信息的应用程序、处理成为著作权保护的对象的影像数据的应用程 序等。

伪任务313是通过由操作系统(这里是第1OS321)启动预先设定的伪 程序而生成的任务。该伪程序例如是由重复NOP(No OPeration)的无限 循环构成的程序,是不会产生新的任务的程序。

第1OS321将多个任务(这里是任务A311~任务K312和伪任务313) 使用时间分段值分时执行控制。并且,管理器351将由第1OS321、任务 A311~任务K312和伪任务313构成的系统作为虚拟计算机301控制。

第2OS322使用时间分段(time slice)值对多个任务(这里是任务L314~ 任务P315和保护任务316)进行分时执行控制。并且,管理器351将由第 2OS322、任务L314~任务P315和保护任务316构成的系统作为子虚拟计 算机302控制。

这里,子虚拟计算机302是以虚拟计算机301为母虚拟计算机、以分 叉(fork)方式生成的虚拟计算机。关于分叉方式下的虚拟计算机的生成在 后面叙述。

第1OS321除了实现作为一般的多任务操作系统的功能的模块群(未 图示)以外,还在内部中包括启动请求检测模块331、保护任务生成模块 332、任务调度变更模块333、保护任务结束通知模块334和伪任务执行通 知模块335这5个模块,启动请求检测模块331在内部中存储有预先设定 的保护任务对应表336。

图4是由启动请求检测模块331及启动请求检测模块341存储的保护 任务对应表400(在图3中,是保护任务对应表336及保护任务对应表346) 的数据构造图。

如该图所示,保护任务对应表400将应用程序ID410与保护对象标志 420建立对应而构成。并且,该保护任务对应表400是在系统设计时预先设 定的。

应用程序ID是用于识别应用程序的ID。

保护对象标志420是表示由对应的应用程序ID识别的应用程序是否是 针对来自恶意软件的攻击成为保护对象的保护对象应用程序的1位的标志。

这里,保护对象标志420在逻辑值“1”的情况下,表示由对应的应用 程序ID识别的应用程序是成为针对来自恶意软件的攻击的保护对象的保 护对象应用程序,在逻辑值“0”的情况下,表示由对应的应用程序ID识 别的应用程序不是成为针对来自恶意软件的攻击的保护对象的保护对象应 用程序。

根据该保护对象标志420可知,例如由应用程序ID410“0002”识别 的应用程序是保护对象应用程序。

再次回到图3,继续说明在处理器101上成为执行对象的模块群。

启动请求检测模块331在内部中存储预先设定的保护任务对应表336, 具有以下的两个功能。

功能1:在从由本操作系统(这里第1OS321)执行控制的任务请求了 新的应用程序的启动的情况下,参照存储的保护任务对应表336判断被请 求启动的应用程序是否是保护对象应用程序。

功能2:在被请求启动的应用程序是保护对象应用程序的情况下,向本 操作系统所包含的保护任务生成模块(这里是保护任务生成模块332)和管 理器351所包含的虚拟计算机生成模块361(后述)进行被请求了保护对象 应用程序的启动的通知。

保护任务生成模块332具有以下的3个功能。

功能1:在从管理器351所包含的子虚拟计算机通知模块362(后述) 接受到本操作系统所属的虚拟计算机(这里是虚拟计算机301)是子虚拟计 算机的通知的情况下,将保护对象应用程序启动,在本操作系统所属的虚 拟计算机(这里是虚拟计算机301)内生成保护任务。

功能2:在从管理器351所包含的子虚拟计算机通知模块362(后述) 没有接受到本操作系统所属的虚拟计算机(这里是虚拟计算机301)是子虚 拟计算机的通知的情况下,在从本操作系统所包含的启动请求检测模块(这 里是启动请求检测模块331)进行了已请求保护对象应用程序的启动的通知 时,代替保护对象应用程序而启动伪程序,在本操作系统所属的虚拟计算 机(这里是虚拟计算机301)内生成伪任务。

功能3:在生成伪任务的情况下,作为操作系统在任务切换控制中使用 的时间分段值,将向对应的保护任务分配的时间分段值分配给伪任务。

任务调度变更模块333具有如下功能:在从管理器351所包含的子虚 拟计算机通知模块362(后述)接受到本操作系统所属的虚拟计算机(这里 是虚拟计算机301)是子虚拟计算机的通知的情况下,在由本操作系统所包 含的保护任务生成模块(这里是保护任务生成模块332)生成了保护任务时、 将由本操作系统(这里是第1OS321)执行的任务限定于保护任务。

为了将由本操作系统执行的任务限定于保护任务,可以通过例如使保 护任务的优先级比其他任务的优先级高、例如使其他任务的优先级比保护 任务的优先级低、此外例如在本操作系统具有将执行的任务限定于规定的 任务的功能的情况下将保护任务设定为该规定的任务等来实现。

保护任务结束通知模块334具有如下功能:检测由本操作系统(这里 是第1OS321)执行控制的保护任务的执行结束,对管理器351所包含的虚 拟计算机调度模块363(后述)进行保护任务的执行已结束的通知。

伪任务执行通知模块335具有以下的两个功能。

功能1:检测在本操作系统所属的虚拟计算机(这里是虚拟计算机301) 中开始了伪任务的执行,对管理器351所包含的虚拟计算机调度模块363 (后述)进行伪任务的执行的通知。

功能2:检测在本操作系统所属的虚拟计算机(这里是虚拟计算机301) 中伪任务的执行被中断,对管理器351所包含的虚拟计算机调度模块363 (后述)进行伪任务的执行被中断的通知。

第2OS322除了实现作为一般的多任务操作系统的功能的模块群(未 图示)以外,还在内部中包括启动请求检测模块341、保护任务生成模块 342、任务调度变更模块343、保护任务结束通知模块344和伪任务执行通 知模块345这5个模块,启动请求检测模块331在内部中存储有预先设定 的保护任务对应表346。

这些启动请求检测模块341、保护任务生成模块342、任务调度变更模 块343、保护任务结束通知模块344、伪任务执行通知模块345和保护任务 对应表346分别具有与包含在第1OS321中的启动请求检测模块331、保护 任务生成模块332、任务调度变更模块333、保护任务结束通知模块334、 伪任务执行通知模块335和保护任务对应表336同样的功能。由此,这里, 省略这些说明。

但是,它们中的保护任务生成模块342和任务调度变更模块343根据 是否从子虚拟计算机通知模块362接受到本操作系统所属的虚拟计算机是 子虚拟计算机的通知,分别进行与保护任务生成模块332和任务调度变更 模块333相互不同的动作。

管理器351在内部中包括虚拟计算机生成模块361、子虚拟计算机通知 模块362、虚拟计算机调度模块363和虚拟计算机清除模块364。

虚拟计算机生成模块361具有如下功能:在从虚拟计算机(这里是虚 拟计算机301)的启动请求检测模块331进行了被请求保护对象应用程序的 启动的通知的情况下,基于虚拟计算机301以分叉方式生成新的子虚拟计 算机(这里是子虚拟计算机302)的功能。

这里,分叉方式下的虚拟计算机的生成,是指以分配给作为母机的虚 拟计算机的存储区域与分配给新生成的虚拟计算机的存储区域1对1地对 应的方式将分配给作为母机的虚拟计算机的存储区域映射到新生成的虚拟 计算机的存储区域映射,从而生成新的虚拟计算机。另外,在新生成虚拟 计算机后,以写时复制方式管理作为母机的虚拟计算机的存储区域和新生 成的虚拟计算机的存储区域。

子虚拟计算机通知模块362具有如下功能:在虚拟计算机生成模块361 生成了新的子虚拟计算机(这里是子虚拟计算机302)的情况下,向在子虚 拟计算机302上动作的保护任务生成模块342和任务调度变更模块343进 行虚拟计算机是子虚拟计算机的通知。

作为向这些模块进行虚拟计算机是子虚拟计算机的通知的方法的一 例,例如有:子虚拟计算机通知模块362将是子虚拟计算机之意的信息记 录到指定的存储区域中、产生对虚拟计算机的中断、使这些模块参照记录 在上述指定的区域中的信息的方法;例如在这些模块被调用而动作时,通 过调用预先设定的函数来通知自模块所属的虚拟计算机是子虚拟计算机的 方法等。

虚拟计算机调度模块363具有以下的3个功能。

功能1:在母虚拟计算机(这里是虚拟计算机301)为执行对象虚拟计 算机的情况下,在从伪任务执行通知模块335进行开始了伪任务313的执 行的通知时,将执行对象虚拟计算机从虚拟计算机301切换为该子虚拟计 算机(这里是子虚拟计算机302)。

功能2:在子虚拟计算机(这里是子虚拟计算机302)为执行对象虚拟 计算机的情况下,在从该母虚拟计算机(这里是虚拟计算机301)的伪任务 执行通知模块335进行伪任务313的执行被中断的通知时,将执行对象虚 拟计算机从子虚拟计算机302切换为该母虚拟计算机(这里是虚拟计算机 301)。

功能3:在子虚拟计算机(这里是子虚拟计算机302)为执行对象虚拟 计算机的情况下,在从执行中的子虚拟计算机302的保护任务结束通知模 块344进行保护任务316的执行已结束的通知时,将执行对象虚拟计算机 从子虚拟计算机302切换为该母虚拟计算机(这里是虚拟计算机301),对 虚拟计算机301的操作系统(这里是第1OS321)进行保护任务316的执行 已结束的通知。

虚拟计算机清除模块364具有在子虚拟计算机(这里是子虚拟计算机 302)为执行对象虚拟计算机的情况下,在从保护任务结束通知模块344向 虚拟计算机调度模块363进行保护任务316的执行已结束的通知时,如果 虚拟计算机调度模块363将执行对象虚拟计算机从子虚拟计算机302切换 为该母虚拟计算机(这里是虚拟计算机301),则使子虚拟计算机302清除。

这里,所谓使虚拟计算机清除,是指将作为对象的虚拟计算机从分时 执行处理对象中排除,将分配给该虚拟计算机的存储区域释放。

以下,参照附图,说明上述结构的虚拟计算机系统100进行的动作。

<动作>

这里,说明虚拟计算机系统100进行的动作中的、作为特征性的动作 的子虚拟计算机生成处理、子虚拟计算机清除处理和保护任务执行处理。

以下,假设虚拟计算机301没有从子虚拟计算机通知模块362接受到 是子虚拟计算机的通知而进行说明。

<子虚拟计算机生成处理>

子虚拟计算机生成处理是虚拟计算机系统100生成用于执行保护任务 的新的子虚拟计算机的处理。

图5是子虚拟计算机生成处理的流程图。

子虚拟计算机生成处理通过从在虚拟计算机(这里是虚拟计算机301) 中被执行控制的任务对包含在该虚拟计算机中的操作系统(这里是第 1OS321)请求保护对象应用程序的启动而开始。

来自被执行控制的任务的保护对象应用程序的启动请求例如通过由利 用虚拟计算机系统100的用户操作输入装置131(参照图1)等而发生。

如果子虚拟计算机生成处理开始,则启动请求检测模块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将由第2OS322执行的任务限定于保护任务316 (步骤S560)。

如果步骤S560的处理结束,则虚拟计算机系统100结束该子虚拟计算 机生成处理。

<子虚拟计算机清除处理>

子虚拟计算机清除处理是虚拟计算机系统100将为了执行保护任务而 生成的子虚拟计算机清除的处理。

图6是子虚拟计算机清除处理的流程图。

子虚拟计算机清除处理通过由保护任务结束通知模块344检测出在子 虚拟计算机(这里是子虚拟计算机302)中执行的保护任务(这里是保护任 务316)结束该处理而开始。

如果子虚拟计算机清除处理开始,则保护任务结束通知模块344检测 到保护任务316的执行结束(步骤S600),向虚拟计算机调度模块363进 行保护任务的执行已结束的通知(步骤S610)。

如果从保护任务结束通知模块344通知保护任务的执行已结束,则虚 拟计算机调度模块363将执行对象虚拟计算机从子虚拟计算机302切换为 虚拟计算机301,向第1OS321进行保护任务316的执行已结束的通知。并 且,管理器351将子虚拟计算机302从作为执行控制对象虚拟计算机管理 的虚拟计算机群中删除(步骤S620)。

如果虚拟计算机调度模块363将执行对象虚拟计算机从子虚拟计算机 302切换为虚拟计算机301,则虚拟计算机清除模块364通过将分配给子虚 拟计算机302的存储区域释放,将子虚拟计算机302清除(步骤S630)。

另一方面,如果从虚拟计算机调度模块363通知保护任务316的执行 已结束,则第1OS321将执行的任务从伪任务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中,如果在时刻t1所执行的任务从伪任务313以外 的任务切换为伪任务313,并伪任务313被开始执行(步骤S700),则伪任 务的执行开始被通知到虚拟计算机调度模块363(步骤S710),所执行的虚 拟计算机从虚拟计算机301切换为子虚拟计算机302(步骤S720),在子虚 拟计算机302中仅执行保护任务316(步骤S730)。

然后,在虚拟计算机301中,如果在时刻t2伪任务313成为执行中断 (步骤S740),则伪任务的执行中断被通知到虚拟计算机调度模块(步骤 S750),所执行的虚拟计算机从子虚拟计算机302切换为虚拟计算机301(步 骤S760),在虚拟计算机301中,所执行的任务从伪任务313切换为伪任 务313以外的任务(步骤S770)。

<多个保护对象应用程序被请求启动的情况>

到此为止,以被请求启动的保护对象应用程序是1个的情况为中心进 行了说明。但是,在有多个保护对象应用程序的情况下,有时可能有多个 保护对象应用程序被请求启动。此时,按被请求启动的每个保护对象应用 程序,生成用于执行该保护对象应用程序的子虚拟计算机。

图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不会 成为执行对象。即,在子虚拟计算机302中,任务L314不会被执行。

因而,在子虚拟计算机302中,保护对象应用程序不会从任务L314受 到攻击。

这样,有关本实施方式1的虚拟计算机系统100即使在虚拟计算机当 作执行对象的应用程序中包含有攻击保护对象应用程序的恶意软件的情况 下,也能够将由该恶意软件攻击保护对象应用程序的危险性抑制得比以往 低。

此外,有关本实施方式1的虚拟计算机系统100由于在作为母机的虚 拟计算机中执行保护任务以外的任务、在作为子机的虚拟计算机中仅执行 保护任务,所以在作为母机的虚拟计算机中执行的任务与作为子机的虚拟 计算机中执行的任务不会重复。

<实施方式2>

<概要>

以下,作为有关本发明的虚拟计算机系统的一例,对将实施方式1的 虚拟计算机系统100的一部分变形的变形虚拟计算机系统进行说明。

有关实施方式2的变形虚拟计算机系统其硬件结构为与有关实施方式 1的虚拟计算机系统100同样的结构,但执行的软件的一部分被从有关实施 方式1的虚拟计算机系统100变形。

有关实施方式1的虚拟计算机系统100是操作系统(例如第1OS321) 所包含的伪任务执行通知模块(例如伪任务执行通知模块335)检测伪任务 的执行开始、向虚拟计算机调度模块363通知的结构的例子,而有关实施 方式2的变形虚拟计算机系统是伪任务自身将自伪任务开始执行的情况经 由操作系统向虚拟计算机调度模块通知的结构的例子。

以下,对于有关本实施方式2的变形虚拟计算机系统的结构,以与有 关实施方式1的虚拟计算机系统的不同点为中心,参照附图进行说明。

<硬件结构>

变形虚拟计算机系统为与有关实施方式1的虚拟计算机系统100同样 的硬件结构。由此,这里省略说明。

此外,以下,有关构成变形虚拟计算机系统的硬件的各构成要素的说 明,使用与构成有关实施方式1的虚拟计算机系统100的硬件的各构成要 素相同的符号来进行。

<程序模块结构>

图10是表示在某时刻t0在处理器101上成为执行对象的模块的框图。

在该图中,模块群1000是在处理器101中成为执行对象的模块的集合, 包含在模块群1000中的模块分别保存在ROM102或RAM103的存储区域 中。

模块群1000是从有关实施方式1的模块群300中将伪任务313变更为 伪任务1013、追加调度任务1014、将伪任务执行通知模块335和伪任务执 行通知模块345删除、将任务调度变更模块333、任务调度变更模块343、 保护任务生成模块332、保护任务生成模块342和虚拟计算机调度模块363 分别变更为任务调度变更模块1033、任务调度变更模块1043、保护任务生 成模块1032、保护任务生成模块1042和虚拟计算机调度模块1063的结构。

此外,随着任务调度变更模块333和保护任务生成模块332分别被变 更为任务调度变更模块1033和保护任务生成模块1032,第1OS321被变形 为第1OS1021,随着任务调度变更模块343和保护任务生成模块342分别 被变更为任务调度变更模块1043和保护任务生成模块1042,第2OS322被 变形为第1OS1022。

进而,随着伪任务313被变更为伪任务1013、第1OS321被变更为第 1OS1021,虚拟计算机301被变形为虚拟计算机1001,随着追加调度任务 1014、第2OS322被变更为第2OS1022,子虚拟计算机302被变形为子虚 拟计算机1002。

并且,随着虚拟计算机调度模块363被变更为虚拟计算机调度模块 1063,管理器351被变更为管理器1051。

图11(a)是表示与伪任务1013对应的伪程序1113的结构的程序结构 图。

有关实施方式1的伪任务313是对应的伪程序例如为由重复NOP的无 限循环构成的程序这样的、不会产生新的任务的例如由重复NOP的无限循 环构成的程序。相对于此,有关实施方式2的伪任务1013的对应的伪程序 1113如图11(a)所示由第1部分1121和第2部分1122构成。

第1部分1121是经由执行控制与自伪程序对应的伪任务(这里是伪任 务1013)的操作系统(这里是第1OS1021)向管理器1051所包含的虚拟 计算机调度模块1063进行伪任务的执行开始的通知的记述。

第2部分1122是对执行控制自伪任务的操作系统(这里是第1OS1021) 请求将分配给自伪任务的时间分段放弃、将执行的任务从自伪任务切换为 其他任务的记述。

图11(b)表示与调度任务1014对应的调度程序1117的结构。

调度任务1014的对应的调度程序1117如图11(b)所示由第1部分 1131和第2部分1132构成。

第1部分1131对执行控制自调度任务的操作系统(这里是第2OS1022) 请求将分配给自调度任务的时间分段放弃、将执行的任务从自调度任务切 换为其他任务的记述。

第2部分1132是经由执行控制与自调度程序对应的调度任务(这里是 调度任务1014)的操作系统(这里是第2OS1022)对管理器1051所包含 的虚拟计算机调度模块1063请求将执行对象虚拟计算机从自任务所属的子 虚拟计算机(这里是子虚拟计算机1002)切换为作为母机的虚拟计算机(这 里是虚拟计算机1001)的记述。

再次回到图10,继续说明在处理器101上成为执行对象的模块群。

保护任务生成模块1032是从有关实施方式1的保护任务生成模块332 将功能1变形为以下的变形功能1的模块。

变形功能1:在从管理器1051所包含的子虚拟计算机通知模块362接 受到本操作系统所属的虚拟计算机(这里是虚拟计算机1001)是子虚拟计 算机的通知的情况下,将保护对象应用程序和调度程序启动,在本操作系 统所属的虚拟计算机(这里是虚拟计算机1001)内分别生成保护任务(这 里是保护任务316)和调度任务(这里是调度任务1014)。

任务调度变更模块1033是从有关实施方式1的任务调度变更模块333 将具有的功能变形为以下的两个变形功能的模块。

变形功能1:在从管理器1051所包含的子虚拟计算机通知模块362接 受到本操作系统所属的虚拟计算机(这里是虚拟计算机1001)是子虚拟计 算机的通知的情况下,在由本操作系统所包含的保护任务生成模块(这里 是保护任务生成模块1032)生成保护任务和调度任务时,将由本操作系统 (这里是第1OS1021)执行的任务限定为保护任务和调度任务的功能。

变形功能2:在保护任务和调度任务为执行控制对象的情况下,将之前 执行的任务作为调度任务。

虚拟计算机调度模块1063是从有关实施方式1的虚拟计算机调度模块 363将功能2变形为以下的变形功能2的模块。

变形功能2:在子虚拟计算机(这里是子虚拟计算机1002)为执行对 象虚拟计算机的情况下,在经由该子虚拟计算机1002的操作系统(这里是 第2OS1022)从调度任务(这里是调度任务1014)请求了将执行对象虚拟 计算机从子虚拟计算机1002切换为作为母机的虚拟计算机(这里是虚拟计 算机1001)时,将执行对象虚拟计算机从子虚拟计算机1002切换为虚拟计 算机1001。

<动作>

在上述结构的变形虚拟计算机系统中,将有关实施方式1的虚拟计算 机系统100进行的特征性的动作中的子虚拟计算机生成处理和保护任务执 行处理变形而进行。以下,对这些动作,以与有关实施方式1的虚拟计算 机系统进行的动作的不同点为中心,参照附图进行说明。

这里,以下假设虚拟计算机1001没有从子虚拟计算机通知模块362接 受到是子虚拟计算机的通知而进行说明。

<变形子虚拟计算机生成处理>

变形子虚拟计算机生成处理是变形虚拟计算机系统生成用于执行保护 任务的新的子虚拟计算机的处理,是将有关实施方式1的子虚拟计算机生 成处理的一部分变形的处理。

图12是变形子虚拟计算机生成处理的流程图。

变形子虚拟计算机生成处理与有关实施方式1的子虚拟计算机生成处 理同样,通过从在虚拟计算机(这里是虚拟计算机1001)中执行控制的任 务对包含在该虚拟计算机中的操作系统(这里是第1OS1021)请求保护对 象应用程序的启动而开始。

步骤S1200~步骤S1240的处理是与有关实施方式1的子虚拟计算机 生成处理中的步骤S500~步骤S540的处理同样的处理。由此,这里省略 这些步骤的说明。

如果从子虚拟计算机通知模块362进行本操作系统所属的虚拟计算机 是子虚拟计算机的通知,则子虚拟计算机1002的保护任务生成模块342将 保护对象应用程序和调度程序启动,在子虚拟计算机1002内生成保护任务 316和调度任务1014(步骤S1250)。并且,如果保护任务生成模块342生 成保护任务316和调度任务1014,则任务调度变更模块343将由第2OS1022 执行的任务限定于保护任务316和调度任务1014(步骤S1260)。

如果步骤S1260的处理结束,则变形虚拟计算机系统结束该变形子虚 拟计算机生成处理。

<变形保护任务执行处理>

变形子虚拟计算机生成处理是变形虚拟计算机系统生成用于执行保护 任务的新的子虚拟计算机的处理,是将有关实施方式1的子虚拟计算机生 成处理的一部分变形的处理。

图13是变形保护任务执行处理的流程图。

变形保护任务执行处理与有关实施方式1的保护任务执行处理同样, 通过在母虚拟计算机(这里是虚拟计算机1001)中伪任务1013被开始执行 而开始。

在虚拟计算机1001中,如果作为分时执行控制对象的伪任务1013被 开始执行(步骤S1300),则伪任务1013进行与对应的伪程序1113的第1 部分1121对应的处理,经由第1OS1021向管理器1051所包含的虚拟计算 机调度模块1063进行伪任务的执行已开始的通知(步骤S1305)。

如果经由第1OS1021进行伪任务的执行已开始的通知,则虚拟计算机 调度模块1063将虚拟计算机1001的执行暂时中断,将执行对象虚拟计算 机从虚拟计算机1001切换为子虚拟计算机1002(步骤S1310)。

如果将执行对象虚拟计算机切换为子虚拟计算机1002,则子虚拟计算 机1002首先开始调度任务1014的执行(步骤S1315)。

如果调度任务1014的执行开始,则调度任务1014进行与对应的调度 程序1117的第1部分1131对应的处理,对第2OS1022请求将分配给自调 度任务的时间分段放弃、将执行的任务从自调度任务切换为其他任务(即, 这里是保护任务316)(步骤S1320)。

第2OS1022如果被请求所执行的任务的切换,则将调度任务1014的 执行暂时中断,将执行的任务从调度任务1014切换为保护任务316,执行 保护任务316(步骤S1325)。

然后,第2OS1022如果经过与分配给调度任务1014的时间分段值对 应的时间(步骤S1330),则将执行的任务从保护任务316再次切换为调度 任务1014,开始执行被中断的调度任务1014(步骤S1335)。

如果调度任务1014再次被执行,则调度任务1014进行与对应的调度 程序1117的第2部分1132对应的处理,经由第2OS1022对管理器1051 所包含的虚拟计算机调度模块1063请求将执行对象虚拟计算机从子虚拟计 算机1002切换为虚拟计算机1001(步骤S1340)。

虚拟计算机调度模块1063如果经由第2OS1022有将执行对象虚拟计 算机从子虚拟计算机1002切换为虚拟计算机1001的请求,则将执行对象 虚拟计算机从子虚拟计算机1002切换为虚拟计算机1001(步骤S1345)。

如果执行对象虚拟计算机被切换为虚拟计算机1001,则虚拟计算机 1001开始执行被中断的伪任务1013(步骤S1350)。

如果伪任务1013再次被执行,则伪任务1013进行与对应的伪程序1113 的第2部分1122对应的处理,对第1OS1021请求将分配给自伪任务的时间 分段放弃、将执行的任务从自伪任务切换为其他任务(步骤S1355)。

第2OS1022如果被请求执行的任务的切换,则将执行的任务从伪任务 1013切换为伪任务1013以外的任务并执行(步骤S1360)。

然后,如果再次在虚拟计算机1001中所执行的任务从伪任务1013以 外的任务切换为伪任务1013(步骤S1365),则再次回到步骤S1300的处理, 重复步骤S1300以下的处理。

图14是示意地表示在变形保护任务执行处理中由变形虚拟计算机系统 执行的任务的示意图。

在虚拟计算机301中,如果在时刻t1所执行的任务从伪任务1013以 外的任务切换为伪任务1013、伪任务1013被开始执行(步骤S1300),则 对虚拟计算机调度模块1063进行伪任务的执行已开始的通知(步骤 S1305),执行的虚拟计算机从虚拟计算机1001切换为子虚拟计算机1002 (步骤S1310),在子虚拟计算机1002中执行调度任务1014(步骤S1315)。

如果调度任务1014被执行,则第2OS1022被请求将执行的任务切换 为保护任务316(步骤S1320),开始执行保护任务316(步骤S1325)。

然后,如果在时刻t2经过与分配给保护任务的时间分段值对应的时间 (步骤S1330),则第2OS1022将执行的任务切换为调度任务1014并执行 (步骤S1335),对虚拟计算机调度模块1063进行请求以将执行对象虚拟 计算机切换为虚拟计算机1001(步骤S1340),执行的虚拟计算机从子虚拟 计算机1002切换为虚拟计算机1001(步骤S1345),在虚拟计算机1001中 执行伪任务1013(步骤S1350)。

如果伪任务1013被执行,则第1OS1021被请求将执行的任务切换为 其他任务(步骤S1355),所执行的任务切换为其他任务(步骤S1360)。

<总结>

上述有关实施方式2的变形虚拟计算机系统与有关实施方式1的虚拟 计算机系统100同样,即使在虚拟计算机当作执行对象的应用程序中包含 有攻击保护对象应用程序的恶意软件的情况下,也能够将由该恶意软件攻 击保护对象应用程序的危险性抑制得比以往低。

此外,有关实施方式2的变形虚拟计算机系统与有关本实施方式1的 虚拟计算机系统100同样,由作为母机的虚拟计算机执行的任务与由作为 子机的虚拟计算机执行的任务不会重复。

<补充>

以上,作为有关本发明的虚拟计算机系统的一实施方式,在实施方式1、 实施方式2中,对两个虚拟计算机系统的例子进行了说明,但也可以如以 下这样变形,本发明当然不限定于在上述实施方式中示出的虚拟计算机系 统。

(1)在实施方式1中,对虚拟计算机系统100具备1个处理器的情况 下的例子进行了说明,但只要管理器能够进行多个虚拟计算机的执行控制, 处理器的数量并不一定需要限定于1个,例如也可以是2个、3个等的多个。 在处理器的数量是多个的情况下,管理器不需要是一定将虚拟计算机的执 行以分时进行的结构,也可以是使多个虚拟计算机并行地执行的结构。

(2)在实施方式1中,对处理器101、ROM102、RAM103、定时器 104、内部总线120、第1接口121、第2接口122、和第3接口123集成在 1个集成电路110中的情况下的例子进行了说明,但并不一定需要将这些电 路集成在1个集成电路中。例如,也可以是将处理器101集成在第1集成 电路中、将其他电路集成在第2集成电路中的结构,例如也可以是将各电 路分别集成在相互不同的集成电路中的结构。

进而,集成电路110也可以通过在制造后能够进行功能性的编程的 FPGA(Field Programmable Gate Array)实现,也可以通过能够进行功能的 再构成的可重构处理器实现。

(3)在实施方式1中,以处理器101具备两个动作模式的结构的情况 为例进行了说明,但只要是能够以与执行操作系统的模式同等或其以上的 较高的特权模式执行管理器的结构,动作模式的数量并不需要限定于两个, 例如也可以是3个以上。在此情况下,能够将执行管理器的动作模式设为 比执行操作系统高的特权模式。

(4)在实施方式1中,以通过分叉形式进行虚拟计算机的生成的结构 的情况为例进行了说明。这是为了通过将虚拟计算机的生成以分叉形式进 行来有效地利用RAM103的存储区域。

但是,只要能够容许RAM103的存储区域的利用效率的非效率性,则 在基于作为母机的虚拟计算机来生成子虚拟计算机的情况下,并不一定需 要以分叉形式进行。

作为一例,可以考虑通过以分配给作为母机的虚拟计算机的存储区域 与分配给新生成的虚拟计算机的存储区域1对1地对应的方式将分配给作 为母机的虚拟计算机的存储区域复制到新生成的虚拟计算机的存储区域, 来生成新的虚拟计算机的形式等。

此外,像这样在子虚拟计算机的存储区域是从母虚拟计算机的存储区 域复制的区域等情况下,这些存储区域并不一定需要以写时复制方式管理。

(5)在实施方式1中,说明了启动请求检测模块(例如启动请求检测 模块331)、保护任务生成模块(例如保护任务生成模块332)、任务调度变 更模块(例如任务调度变更模块333)、保护任务结束通知模块(例如保护 任务结束通知模块334)、伪任务执行通知模块(例如伪任务执行通知模块 335)包含在虚拟计算机内的操作系统(例如第1OS321)中的结构的例子, 但只要在虚拟计算机系统100中实现与由这些模块实现的功能同等的功能, 则这些模块并不一定需要包含在虚拟计算机内的操作系统中,例如也可以 是包含在管理器351中的结构。

例如,与伪任务执行通知模块335同等的功能通过如下结构来实现, 即:设定为如果伪任务313被执行,则对作为写入禁止区域的规定的存储 区域进行写入,管理器351具备对因向上述规定的存储区域的写入违反而 发生的例外进行补充的模块。

(6)以下,再对有关本发明的一实施方式的虚拟计算机系统的结构及 其变形例和各效果进行说明。

(a)有关本发明的一实施方式的虚拟计算机系统,是具备处理器和在 该处理器上执行、用于使该处理器进行多个虚拟计算机的执行控制的管理 器的虚拟计算机系统,其特征在于,上述管理器具有:执行检测部,用于 检测在虚拟计算机中要新执行规定的应用程序;以及虚拟计算机生成部, 用于在由上述处理器执行的上述执行检测部检测到在第1虚拟计算机中要 新执行上述规定的应用程序的情况下,基于该第1虚拟计算机,生成用于 执行上述规定的应用程序的新的第2虚拟计算机;由上述处理器进行执行 控制的多个虚拟计算机分别具有执行控制部,该执行控制部用于在上述第2 虚拟计算机中使上述处理器仅限于执行包括上述规定的应用程序的指定程 序群,在上述第1虚拟计算机中使上述处理器代替上述规定的应用程序而 执行规定的伪程序。

根据具备上述结构的有关本实施方式的虚拟计算机系统,将已认证应 用程序作为规定的应用程序,将未认证应用程序不包含于指定程序群中, 由此在执行已认证应用程序的第2虚拟计算机中,未认证应用程序不会被 执行,进而,在未认证应用程序有可能被执行的第1虚拟计算机中,已认 证应用程序不会被执行。

因而,即使在虚拟计算机当作执行对象的应用程序中混合存在已认证 应用程序和未认证应用程序的情况下,也能够将因包含在未认证应用程序 中的恶意软件被执行而导致已认证应用程序被攻击的危险性抑制得比以往 低。

图15是表示上述变形例的虚拟计算机系统1500的结构的结构图。

如该图所示,虚拟计算机系统1500具备处理器1510和管理器1520。

处理器1510具备执行管理器1520的功能。作为一例,作为实施方式1 的处理器101实现。

管理器1520具有通过在处理器1510上被执行而使处理器1510进行多 个虚拟计算机(这里,第1虚拟计算机1530和第2虚拟计算机1540)的执 行控制的功能。作为一例,作为实施方式1的管理器351实现。此外,该 管理器1520具有执行检测部1521和虚拟计算机生成部1522。

执行检测部1521具有检测在虚拟计算机中要新执行规定的应用程序的 功能。作为一例,作为实施方式1的虚拟计算机生成模块361中的、实现 从虚拟计算机的启动请求检测模块331受理被请求保护对象应用程序的启 动的通知的功能的部分实现。

虚拟计算机生成部1522具有在由处理器1510执行的执行检测部1521 检测到在第1虚拟计算机1530中要新执行规定的应用程序的情况下、基于 第1虚拟计算机1530生成用于执行规定的应用程序的新的第2虚拟计算机 1540的功能。

第1虚拟计算机1530是由处理器1510进行执行控制的多个虚拟计算 机中的1个。作为一例,作为实施方式1的虚拟计算机301实现。此外, 该第1虚拟计算机1530具有执行控制部1531。

执行控制部1531具有在第2虚拟计算机1540中使处理器1510仅限于 执行包括上述规定的应用程序的指定程序群、在第1虚拟计算机1530中使 处理器1510代替上述规定的应用程序而执行规定的伪程序的功能。作为一 例,作为由实施方式1的保护任务生成模块342和任务调度变更模块343 构成的模块实现。

第2虚拟计算机1540是由处理器1510进行执行控制的多个虚拟计算 机中的1个。作为一例,作为实施方式1的子虚拟计算机302实现。此外, 该第2虚拟计算机1540具备具有与执行控制部1531同样的功能的执行控 制部1532。

(b)此外,也可以是,上述虚拟计算机生成部在基于上述第1虚拟计 算机生成新的上述第2虚拟计算机的情况下,以基于分配给上述第1虚拟 计算机的存储区域的分叉方式进行对上述第2虚拟计算机的存储区域的分 配。

通过做成这样的结构,第1虚拟计算机和第2虚拟计算机共用所利用 的存储区域的一部分。由此,能够有效利用存储区域。

(c)此外,也可以是,上述管理器具有虚拟计算机调度部,该虚拟计 算机调度部用于在成为上述处理器的执行对象的上述第1虚拟计算机中上 述规定的伪程序被开始执行的情况下,在上述第2虚拟计算机已被生成时, 将成为上述处理器的执行对象的虚拟计算机从上述第1虚拟计算机变更为 上述第2虚拟计算机。

通过做成这样的结构,能够以第1虚拟计算机中的伪程序的执行的开 始为契机,将作为执行对象的虚拟计算机从第1虚拟计算机切换为第2虚 拟计算机。

(d)此外,也可以是,上述虚拟计算机调度部在成为上述处理器的执 行对象的上述第2虚拟计算机中上述规定的应用程序结束执行的情况下, 将成为上述处理器的执行对象的虚拟计算机从上述第2虚拟计算机变更为 上述第1虚拟计算机。

通过做成这样的结构,能够以第2虚拟计算机中的规定的应用程序的 执行的结束为契机,将作为执行对象的虚拟计算机从第2虚拟计算机切换 为第1虚拟计算机。

(e)此外,也可以是,上述管理器具有虚拟计算机清除部,该虚拟计 算机清除部用于在成为上述处理器的执行对象的上述第2虚拟计算机中上 述规定的应用程序结束执行的情况下,在上述虚拟计算机调度部将上述处 理器的执行对象虚拟计算机从上述第2虚拟计算机变更为了上述第1虚拟 计算机时,将使上述第2虚拟计算机清除。

通过做成这样的结构,能够以第2虚拟计算机中的规定的应用程序的 执行的结束为契机,将第2虚拟计算机清除。

(f)此外,也可以是,上述执行控制部具有用于使上述处理器以使用 时间分段值进行的多任务执行控制方法执行程序的执行控制的多任务执行 控制部;上述多任务执行控制部在由上述处理器执行的上述执行控制部使 上述处理器代替上述规定的应用程序而执行上述规定的伪程序的情况下, 将与分配给上述规定的应用程序的时间分段值相同的值的时间分段值分配 给上述规定的伪程序;上述虚拟计算机调度部在从上述第1虚拟计算机中 上述规定的伪程序成为上述处理器的执行对象的时刻起经过了由分配给上 述规定的伪程序的时间分段值表示的时间的情况下,当上述第2虚拟计算 机成为了上述处理器的执行对象虚拟计算机时,将上述处理器的执行对象 虚拟计算机从上述第2虚拟计算机变更为上述第1虚拟计算机。

通过做成这样的结构,能够以从在第1虚拟计算机中规定的伪程序被 执行后起经过由分配给规定的应用程序的时间分段值表示的期间为契机, 将执行的虚拟计算机从第2虚拟计算机切换为第1虚拟计算机。

(g)此外,也可以是,具有子虚拟计算机通知部,该子虚拟计算机通 知部用于在由上述处理器执行的上述虚拟计算机生成部生成了上述第2虚 拟计算机的情况下向上述第2虚拟计算机的上述执行控制部进行是子虚拟 计算机的通知;上述执行控制部具有执行开始部,该执行开始部用于在上 述第2虚拟计算机中被上述子虚拟计算机通知部通知是子虚拟计算机时, 使上述处理器在上述第2虚拟计算机中启动上述规定的应用程序。

通过做成这样的结构,如果生成第2虚拟计算机,则在所生成的第2 虚拟计算机中启动规定的应用程序。

(h)此外,也可以是,上述指定程序群仅由不包含攻击上述规定的应 用程序的恶意软件的程序构成。

通过做成这样的结构,能够在第2虚拟计算机中消除来自恶意软件的 对规定的应用程序的攻击。

(i)此外,也可以是,由上述处理器进行执行控制的多个虚拟计算机 分别具有通知部,该通知部检测在本虚拟计算机中要新执行上述规定的应 用程序,将要新执行上述规定的应用程序的情况通知给上述执行检测部; 上述执行检测部通过被由上述处理器执行的上述通知部通知要新执行上述 规定的应用程序,来进行要新执行上述规定的应用程序的检测。

通过做成这样的结构,能够在该虚拟计算机中检测在虚拟计算机中要 新执行规定的应用程序的情况。

(j)此外,也可以是,由上述处理器进行执行控制的多个虚拟计算机 分别具有伪程序执行开始通知部,该伪程序执行开始通知部用于在本虚拟 计算机中由上述处理器开始执行上述规定的伪程序的情况下,向上述虚拟 计算机调度部通知在本虚拟计算机中由上述处理器开始执行上述规定的伪 程序;上述虚拟计算机调度部通过被由上述处理器执行的上述第1虚拟计 算机的上述伪程序执行开始通知部通知在本虚拟计算机中由上述处理器开 始执行上述规定的伪程序,来检测在上述第1虚拟计算机中上述规定的伪 程序被开始执行。

通过做成这样的结构,能够在该虚拟计算机中检测在虚拟计算机中开 始执行规定的伪程序的情况。

(k)此外,也可以是,由上述处理器进行执行控制的多个虚拟计算机 分别具有执行结束通知部,该执行结束通知部用于在本虚拟计算机中上述 规定的应用程序结束执行的情况下,向上述虚拟计算机调度部通知在本虚 拟计算机中上述规定的应用程序结束执行;上述虚拟计算机调度部通过被 由上述处理器执行的上述第2虚拟计算机的上述执行结束通知部通知在本 虚拟计算机中上述规定的应用程序结束执行,来检测在上述第2虚拟计算 机中上述规定的应用程序结束执行。

通过做成这样的结构,能够在该虚拟计算机中检测在虚拟计算机中规 定的应用程序的执行结束的情况。

工业实用性

本发明能够在虚拟计算机系统中广泛使用。

符号说明

100虚拟计算机系统

110集成电路

101处理器

102ROM

103RAM

104定时器

120内部总线

131输入装置

132输出装置

133硬盘装置

300模块群

301虚拟计算机

302子虚拟计算机

313伪任务

316保护任务

321第1OS

322第2OS

331、341启动请求检测模块

332、342保护任务生成模块

333、343任务调度变更模块

334、344保护任务结束通知模块

335、345伪任务执行通知模块

336、346保护任务对应表

351管理器

361虚拟计算机生成模块

362子虚拟计算机通知模块

363虚拟计算机调度模块

364虚拟计算机清除模块

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号