首页> 中国专利> 程序分析/验证服务提供系统及其控制方法、控制程序、用于使计算机发挥功能的控制程序、程序分析/验证装置、程序分析/验证工具管理装置

程序分析/验证服务提供系统及其控制方法、控制程序、用于使计算机发挥功能的控制程序、程序分析/验证装置、程序分析/验证工具管理装置

摘要

程序分析/验证服务提供系统(1)具备:工具注册/检索部(313),其从保存在工具存储部(320)中的多个程序分析/验证工具(虚拟机)之中提取对用于分析、验证对象程序(P)的程序分析/验证工具进行导入、设定的虚拟机(T);以及虚拟机执行环境部(120),其使用所提取的虚拟机(T)来分析、验证对象程序(P)。

著录项

  • 公开/公告号CN103930898A

    专利类型发明专利

  • 公开/公告日2014-07-16

    原文格式PDF

  • 申请/专利权人 独立行政法人科学技术振兴机构;

    申请/专利号CN201280055921.7

  • 发明设计人 前田俊行;

    申请日2012-11-12

  • 分类号G06F21/56(20060101);G06F9/46(20060101);G06F11/28(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人吴秋明

  • 地址 日本埼玉县

  • 入库时间 2023-12-17 00:45:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-10-12

    授权

    授权

  • 2016-06-01

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

    著录事项变更

  • 2014-08-13

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

    实质审查的生效

  • 2014-07-16

    公开

    公开

说明书

技术领域

本发明涉及使用程序分析/验证工具来分析、验证对象程序的程序分 析/验证服务提供系统等。

背景技术

程序分析/验证是指分析/验证计算机的程序满足哪些性质的技术。认 为程序分析/验证是用于保障/验证程序的安全性、可靠性的非常有效的手 段。

近年,随着该程序分析/验证技术飞跃性进步,逐渐可以对各式各样 的实用程序进行分析/验证。实际上,不论是研究用途还是商业用途,均 开发了众多进行程序分析/验证的程序(以后称作“程序分析/验证工具”)。

在此,以病毒分析/检查网站为例,说明共享程序分析/验证工具的现 有技术。

图11表现了病毒分析/检查网站的典型构成例。如图11所示,病毒 分析/检查网站900的利用者向病毒分析/检查网站900送出想要进行病毒 分析/检查的对象程序(P1)。例如,若是在下述的非专利文献1中被列 成表格的网站,则经由Web界面来送出。而且,若送出了对象程序,则 病毒分析/检查网站900利用病毒分析/检查软件901来进行被送出的对象 程序的分析/检查(P2)。一旦分析/检查结束,病毒分析/检查网站900 向利用者送出其结果(P3)。

该病毒分析/检查网站900的优点在于,不会花费网站的利用者准备 用于分析/检查的计算资源(CPU时间、存储器容量等)、或者导入分析/ 检查软件的工夫。

先行技术文献

非专利文献

非专利文献1:“基于沙盒的病毒/恶意代码分析网站”、[online]、 2011年6月、[2011年10月20日检索]、因特网<URL: http://lhsp.s206.xrea.com/misc/virussandbox.html>

发明内容

发明要解决的课题

但是,在以往的程序分析/验证工具中存在着以下所述那样的实用上 的问题。

(1)程序分析/验证工具所需要的计算资源的肥大化

因程序分析/验证技术的种类的不同,有时程序分析/验证工具需要非 常多的计算资源(CPU时间、存储器容量等)。这在分析/验证复杂的性 质的情况、分析/验证对象的程序的规模大的情况下尤为显著。因而,各 个程序分析/验证工具的利用者在现实中可执行的分析/验证的种类、规模 存在着界限。

(2)程序分析/验证工具的种类的多样化

伴随着分析/验证技术的进步,存在非常多种类的程序分析/验证工 具,故还要重新继续规划/开发。因而,对于程序分析/验证工具的利用者 而言,难以判断选择哪些程序分析/验证工具为好。

(3)程序分析/验证工具的导入/运用的工夫/成本

如上所述,虽然存在较多种类的程序分析/验证工具,但是用一个种 类的程序分析/验证工具来满足程序分析/验证工具的利用者的目的却是 罕见的。为此,利用者必须导入多个程序分析/验证工具并进行运用/维护 管理,从而工夫、成本增大。

(4)程序分析/验证工具自身的测试的困难性

程序分析/验证工具的有用性正在被广泛地认知。然而,另一方面, 难以测试程序分析/验证工具自身是否如所期待的那样动作。其原因在于, 对于程序分析/验证工具的提供者而言,与程序分析/验证工具的利用者同 样地,因程序的分析/验证的规模存在界限、且程序分析/验证工具的提供 者可利用/阅览的程序及其源代码存在界限,故针对各式各样的对象程序, 无法完成程序分析/验证工具的测试。

本发明正是鉴于上述的问题点而完成的,其目的在于实现能够从多个 程序分析/验证工具之中恰当地选择要使用的程序分析/验证工具,来容易 地执行程序的分析/验证的程序分析/验证服务提供系统等。

用于解决课题的手段

为了解决上述课题,本发明所涉及的程序分析/验证服务提供系统, 使用程序分析/验证工具来分析、验证对象程序,其特征在于,上述程序 分析/验证服务提供系统具备:对象程序获取单元,其获取对象程序;工 具存储部,其保存有多个程序分析/验证工具;工具提取单元,其从保存 在上述工具存储部中的多个程序分析/验证工具之中提取用于分析、验证 由上述对象程序获取单元获取到的对象程序的程序分析/验证工具;工具 获取单元,其从上述工具存储部获取由上述工具提取单元提取出的程序分 析/验证工具;以及工具执行单元,其使用上述工具获取单元获取到的各 程序分析/验证工具,来分析、验证由上述对象程序获取单元获取到的对 象程序。

此外,本发明所涉及的程序分析/验证服务提供系统的控制方法,使 用程序分析/验证工具来分析、验证对象程序,其特征在于,上述程序分 析/验证服务提供系统具备:工具存储部,其保存有多个程序分析/验证工 具,上述程序分析/验证服务提供系统的控制方法包含:对象程序获取步 骤,获取对象程序;工具提取步骤,从保存在上述工具存储部中的多个程 序分析/验证工具之中提取用于分析、验证由上述对象程序获取步骤获取 到的对象程序的程序分析/验证工具;工具获取步骤,从上述工具存储部 获取由上述工具提取步骤提取出的程序分析/验证工具;以及工具执行步 骤,使用由上述工具获取步骤获取到的各程序分析/验证工具,来分析、 验证由上述对象程序获取步骤获取到的对象程序。

进而,本发明所涉及的数据处理服务提供系统,通过依次使用多个数 据处理工具,由此来多阶段地数据处理对象数据,其特征在于,上述数据 处理服务提供系统具备:工具存储部,其将多个数据处理工具分别与各数 据处理工具的工具关联信息建立对应地保存;结果数据存储部,其将使用 前阶段的数据处理工具进行数据处理而获得的结果数据与该结果数据的 特征描述信息建立对应地保存;结果数据获取单元,其从上述结果数据存 储部获取上述结果数据;工具指定信息获取单元,其从上述结果数据存储 部获取与该结果数据建立了对应的上述特征描述信息,作为对用于数据处 理由上述结果数据获取单元获取到的上述结果数据的数据处理工具进行 指定的工具指定信息;工具提取单元,其基于上述工具指定信息获取单元 获取到的上述工具指定信息来检索上述工具关联信息,从保存在上述工具 存储部中的多个数据处理工具之中提取与相适合的工具关联信息建立了 对应的数据处理工具;工具获取单元,其从上述工具存储部获取由上述工 具提取单元提取出的数据处理工具;以及工具执行单元,其使用上述工具 获取单元获取到的数据处理工具来数据处理由上述结果数据获取单元获 取到的结果数据。

发明效果

根据本发明的一形态,可以起到下述效果,即,能够从多个程序分析 /验证工具之中恰当地选择要使用的程序分析/验证工具,来容易地执行程 序的分析/验证。而且,可以起到下述效果,即,通过在共享系统上进行 程序分析/验证,从而能够解决以往的程序分析/验证技术在实用化上的各 种问题点。此外,这些效果并不限定于进行程序的分析/验证的处理。

附图说明

图1是表示本发明的实施方式的图,是表示程序分析/验证服务提供 系统的构成的详情的功能框图。

图2是表示本发明的实施方式的图,是表现了程序分析/验证服务提 供系统中包含的分析/验证执行子系统的构成以及分析/验证的执行处理 的流程的框图。

图3是表示本发明的实施方式的图,是表现了程序分析/验证服务提 供系统中包含的分析/验证执行子系统的构成以及分析/验证结果的显示 处理的流程的框图。

图4是表示本发明的实施方式的图,是表现了程序分析/验证服务提 供系统中包含的对象程序管理子系统的构成以及对象程序的注册处理的 流程的框图。

图5是表示本发明的实施方式的图,是表现了程序分析/验证服务提 供系统中包含的对象程序管理子系统的构成以及来自分析/验证执行子系 统的对象程序的获取请求处理的流程的框图。

图6是表示本发明的实施方式的图,是表现了程序分析/验证服务提 供系统中包含的工具管理子系统的构成以及程序分析/验证工具的注册处 理的流程的框图。

图7是表示本发明的实施方式的图,是表现了程序分析/验证服务提 供系统中包含的工具管理子系统的构成以及来自分析/验证执行子系统的 包括程序分析/验证工具的图像在内的虚拟机获取请求处理的流程的框 图。

图8是在图1所示的程序分析/验证服务提供系统中被使用的数据的 说明图,表示委托管理数据库的数据结构。

图9是在图1所示的程序分析/验证服务提供系统中被使用的数据的 说明图,表示对象程序管理数据库的数据结构。

图10是在图1所示的程序分析/验证服务提供系统中被使用的数据的 说明图,表示工具管理数据库的数据结构。

图11是表示现有技术的图,是表现了病毒分析/检查网站的典型构成 例的框图。

具体实施方式

以下,对本发明的一实施方式进行详细地说明。基于图1~图10来 说明本实施方式所涉及的程序分析/验证服务提供系统1,如下所述。

(1.用于共享程序分析/验证工具的系统的构成方法)

首先,说明用于解决前述的以往的程序分析/验证工具在实用上的四 个问题的方法。另外,关于具体方法的实施例将在后面叙述。

成为关键的构思在于,基于近年盛行的所谓“云”的思路,由多个程 序分析/验证工具的利用者和多个程序分析/验证工具的提供者(工具提供 者)共享一个系统,来进行程序分析/验证。

具体而言,程序分析/验证服务提供系统1由分析/验证执行子系统 10、对象程序管理子系统20、以及工具管理子系统30这三个子系统构成。 以后,对各个子系统进行说明。另外,关于这些子系统,既可以将三个子 系统全部配置在一台计算机上,也可以分布地配置在用网络连接的多台计 算机群。

(1.1.分析/验证执行子系统)

分析/验证执行子系统10(图2、图3)基于利用者的请求,首先从 对象程序管理子系统20获取成为程序分析/验证的对象的对象程序P,并 从工具管理子系统30获取分析/验证工具(虚拟机T)。其次,使用所获 取到的对象程序P以及分析/验证工具(虚拟机T)来执行程序分析/验证, 并将其结果(分析/验证结果数据R)注册至储存库13。此外,将其结果 示出给利用者。

此外,分析/验证执行子系统10根据其工作状况,与来自利用者的请 求独立地从对象程序管理子系统20获取成为程序分析/验证的对象的对 象程序P。分析/验证执行子系统10获取对象程序P时的工作状况,具体 而言是指(1)系统的CPU利用率、(2)存储器利用率、(3)外部存储利 用率等低于预先设定的阈值的情况等情况。分析/验证执行子系统10获取 对象程序P,并且从工具管理子系统30获取程序分析/验证工具(虚拟机 T),来进行分析/验证,并将其结果(分析/验证结果数据R)预先注册 至储存库13。由此,在之后从利用者有了请求的情况下,通过向储存库 13询问,从而可以迅速地回答分析/验证结果。

这样,由多个利用者共享分析/验证执行子系统10,从而可以彼此通 融剩余的计算资源,作为整体能够抑制程序分析/验证的成本。此外,由 于能够预先与利用者的请求独立地执行程序分析/验证,因此也能够隐藏 从利用者的请求起至分析/验证结果的提供为止所需的计算资源的成本。 进而,从多个程序分析/验证工具之中选择恰当的程序分析/验证工具变得 容易。

(1.2.对象程序管理子系统)

对象程序管理子系统20(图4、图5)基于利用者的请求,来进行由 利用者所指定/提供的对象程序P的维护管理(获取/保存/更新/删除)。 此外,针对来自分析/验证执行子系统10的请求,提供恰当的对象程序P。

这样,能够对由多个利用者注册的对象程序P执行程序分析/验证工 具,因此各个程序分析/验证工具的提供者能够对各式各样的对象程序P 进行程序分析/验证工具的测试。

(1.3.工具管理子系统)

工具管理子系统30(图6、图7)基于利用者(程序分析/验证工具 的提供者)的请求/指示来进行利用者所指定的程序分析/验证工具的维护 管理(导入/设定/删除)。此外,对来自分析/验证执行子系统10的获取 请求,提供恰当的程序分析/验证工具。

这样,程序分析/验证工具的提供者进行导入/维护管理,由多个利用 者共享程序分析/验证工具,从而无需由利用者自身来进行程序分析/验证 工具的导入/维护管理。

(2.用于共享程序分析/验证工具的系统的安装例)

其次,对前述的各个子系统的一安装例进行说明。

(2.1.分析/验证执行子系统的一安装例)

图2是表示了分析/验证执行子系统10的构成以及分析/验证的执行 处理的流程的框图。

分析/验证执行子系统10由控制器11、虚拟机执行环境12、以及储 存库13构成。控制器11进行:来自利用者的执行请求的处理;与对象程 序管理子系统20或工具管理子系统30的交互;分析/验证的执行;分析/ 验证结果向储存库13的保存。虚拟机执行环境12是用于进行分析/验证 的执行环境。储存库13对分析/验证的结果进行保存。

另外,使用虚拟机执行环境12来进行分析/验证的理由有两个。首先, 第一:通过使用虚拟机来执行分析/验证,从而能够在多个利用者和多个 程序分析/验证工具的提供者之间容易地实现系统的公平利用。在此,所 谓系统的公平利用,例如是指大量消耗CPU、存储器的程序分析/验证工 具推迟执行,而先执行其他的程序分析/验证工具等。

此外,第二:通过在虚拟机上导入/设定程序分析/验证工具,从而(详 情参照(2.3.工具管理子系统的一安装例))程序分析/验证工具的提供者 能够与通常自己开发/测试的执行环境几乎同样地导入/设定程序分析/验 证工具,因此不会给程序分析/验证工具的提供者带来为了应对特殊的执 行环境而修正程序分析/验证工具、或者另行准备用于让程序分析/验证工 具进行与外部的数据交换的构造等的、额外负担。

具体的分析/验证的执行的流程如下所述。首先,从利用者向控制器 11发送分析/验证的执行请求(A1)。该执行请求由表示对哪些对象程序 P进行分析/验证的标签(tag)、以及表示使用哪些程序分析/验证工具(虚 拟机T)的标签构成。受理了执行请求的控制器11基于执行请求所指定 的标签以及根据利用者的权限所赋予的标签,从对象程序管理子系统20 获取对象程序P(A2-a、A3-a;对象程序获取步骤),从工具管理子系 统30获取包括程序分析/验证工具的图像在内的虚拟机T(A2-b、A3 -b;工具获取步骤)。

另外,上述“根据利用者的权限所赋予的标签”是表现给各个利用者 赋予的、向对象程序P以及程序分析/验证工具(虚拟机T)访问的访问 权限的标签。例如,作为最基础的标签,对利用者A的执行请求赋予 “USER_A”这样的标签。由此,利用者A可以获取被附加了“USER _A”的标签的对象程序P、程序分析/验证工具(虚拟机T)。另一方面, 由于对另一利用者B赋予“USER_B”这样的标签,因此利用者B无法 获取仅赋予了“USER_A”的标签的对象程序P、程序分析/验证工具(虚 拟机T)。也就是说,能够使利用者A的对象程序P、程序分析/验证工具 (虚拟机T)相对于利用者B得以隐藏。此外,作为更复杂的例子,在 利用者A和利用者B作为共同的利用者而共享各自的对象程序P、程序 分析/验证工具(虚拟机T)的情况下,对利用者A/B的执行请求赋予 “GROUP_AB”这样的标签。由此,利用者A/B可以获取被附加了 “GROUP_AB”的标签的对象程序P、程序分析/验证工具(虚拟机T)。

其次,使用所获取到的对象程序P以及工具图像(虚拟机T),在虚 拟机执行环境12下实际执行分析/验证(A4;工具执行步骤)。在分析/ 验证结束后,控制器11受理该结果(A5),并将该结果与标签加以关联 地保存至储存库13(A6)。另外,虽然在图2中未显式示出,但是如前所 述,根据分析/验证执行子系统10的工作状况,即便没有来自利用者的执 行请求,也可以预先进行图2的(A2)以后的过程。在此情况下,作为 将分析/验证的结果保存至储存库13时被加以关联的标签,能够使用对对 象程序P自身以及程序分析/验证工具的工具图像(虚拟机T)自身赋予 的标签。

图3是表示了分析/验证执行子系统10的构成以及分析/验证结果的 显示处理的流程的框图。

保存在储存库13中的分析/验证结果如下所示那样提示给利用者。首 先,从利用者向控制器11发送分析/验证结果的获取请求(结果获取请求) (B1)。该结果获取请求由与前述的执行请求同样的标签构成。受理了结 果获取请求的控制器11基于结果获取请求所指定的标签以及根据利用者 的权限被赋予的标签,从储存库13获取分析/验证结果(B2、B3)。其次, 控制器11将所获取到的结果显示给利用者(B4)。另外,当在储存库13 中未保存结果的情况下,可以执行图2的(A2)以后的过程。

(2.2.对象程序管理子系统的一安装例)

图4是表现了对象程序管理子系统20的构成以及对象程序P的注册 处理的流程的框图。

对象程序管理子系统20由控制器21和储存库22构成。控制器21 进行:来自利用者的对象程序注册请求的处理、对象程序P的获取、向 储存库22的注册。储存库22保存对象程序P。

具体的对象程序的注册的流程如下所述。首先,从利用者向控制器 21发送对象程序P的注册请求(C1)。该注册请求由利用者已指定的标签 和对象程序P的送出方法的指定构成。注册请求由利用者已指定的标签, 能够由利用者以任意的内容指定任意的个数。所假定的利用方法指定对象 程序P所用到的编程语言的种类、程序的种类(用户程序、系统程序相 区别等)等。此外,作为对象程序P的送出方法,在此假定来自利用者 的直接送出(C2)和从外部系统(版本管理系统等)的输入(C2-1、C2 -2)。受理了注册请求的控制器21,以注册请求所指定的方法来获取对 象程序P(C2、C2-1、C2-2),并将对象程序P与注册请求所指定的标 签以及根据利用者的权限被赋予的标签加以关联地保存至储存库22 (C3)。

图5是表现了对象程序管理子系统20的构成以及来自分析/验证执行 子系统10的对象程序P的获取请求处理的流程的框图。

如果从分析/验证执行子系统10受理对象程序P的获取请求(D1), 则控制器21基于获取请求所指定的标签来检索储存库22(D2、D3)。其 次,控制器21向分析/验证执行子系统送出从储存库22获得的对象程序 P(D4)。

(2.3.工具管理子系统的一安装例)

图6是表现了工具管理子系统30的构成以及程序分析/验证工具的注 册处理的流程的框图。

工具管理子系统30由控制器31、储存库32、以及虚拟机执行环境 33构成。控制器31进行:来自工具提供者的注册请求的处理、程序分析 /验证工具的导入/设定用的虚拟机(初始虚拟机)的生成、包括工具图像 在内的虚拟机T向储存库32的保存。虚拟机执行环境33是用于由工具 提供者进行程序分析/验证工具的导入/设定的环境。储存库32保存由工 具提供者对程序分析/验证工具进行了导入/设定的虚拟机T的系统图像。

程序分析/验证工具的注册处理的具体流程如下所述。首先,从工具 提供者向控制器31发送程序分析/验证工具的注册请求(E1)。该注册请 求由工具提供者已指定的标签构成。注册请求的工具提供者已指定的标 签,能够由工具提供者以任意的内容指定任意的个数。关于注册请求的工 具提供者已指定的标签,假定:在指定

(1)程序分析/验证工具能处理的编程语言的种类以及程序的种类 (用户程序、系统程序相区别等)、(2)程序分析/验证工具工作的执行环 境(操作系统、程序库的种类/版本、需要的计算资源、即CPU的速度、 种类、存储器、盘的尺寸等)等时被利用。

接受到注册请求的控制器31新生成虚拟机(初始虚拟机)(E2)。此 时,控制器31根据注册请求所指定的标签来创建调整了操作系统的种类、 版本、存储器、盘的尺寸等的、恰当的虚拟机(初始虚拟机)。另外,在 本实施方式中,假设将对程序分析/验证工具进行导入、设定之前的状态 的虚拟机还记为“初始虚拟机”。

在此,也可针对频繁出现的标签指定的组合,事先生成并保存对恰当 的操作系统、程序库进行了导入的半成品状态的虚拟机(初始虚拟机), 在虚拟机的生成时单纯地拷贝该虚拟机。由此,能够减少虚拟机的生成的 成本。

其次,工具提供者在虚拟机执行环境33下执行经由控制器31而生成 的虚拟机(初始虚拟机),对该虚拟机(初始虚拟机)导入/设定程序分析 /验证工具(E3)。这样,基于注册请求所指定的标签,在虚拟机(初始 虚拟机)中预先准备恰当的操作系统、程序库等。由此,程序分析/验证 工具的导入/设定可与工具提供者通常进行的导入/设定过程几乎同样地 执行,不会给工具提供者带来为了应对执行环境而修正程序分析/验证工 具、或者为了与外部系统交换数据而准备特别构造等的额外工夫。

最后,控制器31将由工具提供者对程序分析/验证工具进行了导入/ 设定的包括工具图像在内的虚拟机T与注册请求所指定的标签加以关联 地保存至储存库32(E4)。

图7是表现了工具管理子系统30的构成以及来自分析/验证执行子系 统10的包括程序分析/验证工具的图像在内的虚拟机T的获取请求处理 的流程的框图。

如果从分析/验证执行子系统10受理虚拟机T的获取请求(F1;工 具获取步骤),则控制器31基于获取请求所指定的标签来检索储存库32 (F2、F3;工具提取步骤),并向分析/验证执行子系统10送出所获得的 虚拟机T(F4;工具获取步骤)。

(3.实施例的详情)

在此,对程序分析/验证服务提供系统1的一实施例进行详细地说明。

(3.1.构成)

参照图1以及图8~图10来说明程序分析/验证服务提供系统1的构 成。图1是表示程序分析/验证服务提供系统1的构成的功能框图。图8~ 图10是在程序分析/验证服务提供系统1中被使用的数据的说明图。另外, 在以下的说明中,也酌情参照图2~图7。

程序分析/验证服务提供系统1提供如下服务,即程序分析/验证工具 的利用者使用由工具提供者所提供的程序分析/验证工具来分析、验证对 象程序P的服务。

如图1所示,程序分析/验证服务提供系统1构成为具备:分析/验证 部(程序分析/验证装置)100、对象程序管理部(程序分析/验证对象程 序管理装置)200、以及工具管理部(程序分析/验证工具管理装置)300。 另外,程序分析/验证服务提供系统1也可以由1台装置构成。即,分析/ 验证部100、对象程序管理部200、以及工具管理部300也可以安装在1 台装置中。此外,程序分析/验证服务提供系统1也可以由多台装置构成。 即,分析/验证部100、对象程序管理部200、以及工具管理部300也可以 分布地安装在2台以上的装置中。

此外,分析/验证部100、对象程序管理部200、以及工具管理部300 分别对应于图2~图7所示的、分析/验证执行子系统10、对象程序管理 子系统20、以及工具管理子系统30。

另外,在本实施方式中,程序分析/验证服务提供系统1与外部输入 输出的信息以及在内部处理的信息,虽然以用标签的形式描述的情况为例 进行说明,但是并不限定于使用了标签的描述形式。

(3.1.1.分析/验证部)

首先,分析/验证部100具有如下功能,即,从利用者受理对象程序 P的分析、验证的执行请求,并按照该执行请求来获取对象程序P以及程 序分析/验证工具(虚拟机T),执行分析、验证,并保存分析/验证结果 数据R(图2)。此外,分析/验证部100具有如下功能,即,从利用者受 理结果获取请求,并将保存的分析/验证结果数据R提示给利用者(图3)。

为此,分析/验证部100如图1所示那样具备:分析/验证控制部110、 虚拟机执行环境部(工具执行单元)120、以及数据存储部130。另外, 分析/验证控制部110、虚拟机执行环境部120、以及数据存储部130分别 对应于图2~图3所示的、分析/验证执行子系统10的控制器11、虚拟机 执行环境12、以及储存库13。

上述分析/验证控制部110控制分析/验证部100的整体。详细而言, 分析/验证控制部110具备:利用者界面部(工具指定信息获取单元)111、 工具执行控制部112、数据管理部113、对象程序获取部(对象程序获取 单元)114、以及工具获取部(工具获取单元)115。

利用者界面部111向利用者提供如下的用户界面,其中该用户界面提 示操作画面并受理输入。利用者界面部111既可以从键盘、鼠标等的输入 装置直接受理用户的操作,也可以经由因特网等的通信而间接地受理。

具体而言,利用者界面部111在从利用者受理了操作之际获取利用者 的识别信息的标签(利用者识别信息)、以及表示利用者的权限的标签(利 用者权限信息)。

此外,利用者界面部111从利用者受理执行请求(图2的A1)。执行 请求包含:表示对哪些对象程序P进行分析/验证的标签(对象程序指定 信息)、指定使用哪些程序分析/验证工具(虚拟机T)的标签(工具指定 信息)。该工具指定信息指定用于分析、验证对象程序获取部114获取到 的对象程序P的程序分析/验证工具(虚拟机T)。

此外,利用者界面部111从利用者受理结果获取请求(图3的B1)。 结果获取请求包含与执行请求同样的标签。另外,在结果获取请求中,可 以省略工具指定信息。

工具执行控制部112基于由利用者界面部111从利用者受理了的执行 请求,来进行对象程序P的分析/验证。具体而言,工具执行控制部112 控制对象程序获取部114,基于对象程序指定信息来获取对象程序P(图 2的A2-a、A3-a;对象程序获取步骤)。此外,工具执行控制部112控 制工具获取部115,基于工具指定信息来获取包括程序分析/验证工具的 图像在内的虚拟机T(图2的A2-b、A3-b;工具获取步骤)。此外, 工具执行控制部112让虚拟机执行环境部120在所获取到的虚拟机T上 执行所获取到的对象程序P,来进行程序的分析/验证(图2的A4;工具 执行步骤)。另外,虚拟机T上的对象程序P的分析/验证,虽然可以在 虚拟机T上执行对象程序P来进行,但是也可不执行对象程序P来进行。 进而,工具执行控制部112在虚拟机执行环境部120中的分析/验证的结 束后,接受该结果(图2的A5),控制数据管理部113,使该结果(分析 /验证结果数据R)与执行请求的标签建立对应地保存至数据存储部130 (图2的A6)。

另外,工具执行控制部112根据虚拟机执行环境部120等的工作状况 (CPU利用率、存储器利用率、外部存储利用率等),即便没有来自利用 者的执行请求,也可预先进行图2的(A2)以后的过程。在此情况下, 在数据存储部130中保存结果(分析/验证结果数据R)之际建立对应的 标签,设为给对象程序P自身附标签后的标签以及给虚拟机T自身附加 的标签。

工具执行控制部112基于由利用者界面部111从利用者受理了的结果 获取请求来控制数据管理部113,获取保存在数据存储部130中的分析/ 验证结果数据R,让利用者界面部111向利用者进行提示(图3的B1~ B4)。具体而言,根据结果获取请求中包含的标签来检索委托管理数据库 DBi,从数据存储部130获取相符的分析/验证结果数据R(即,与该标 签加以关联的分析/验证结果数据R),由此来进行分析/验证结果数据R 的上述获取。

数据管理部113在从利用者受理了执行请求时,将所包含的标签的内 容保存至数据存储部130的委托管理数据库DBi。此外,数据管理部113 将分析/验证结果数据R保存至数据存储部130。此时,在委托管理数据 库DBi中,与分析/验证结果数据R的识别信息(结果数据识别信息)、 执行请求的标签的信息建立对应地保存。此外,数据管理部113在从利用 者受理了结果获取请求时,从数据存储部130读出与所包含的标签的内容 对应的分析/验证结果数据R。

对象程序获取部114向对象程序管理部200发送包含对象程序指定信 息的对象程序获取请求(图2的A2-a),作为其响应而获取对象程序P (图2的A3-a)。

工具获取部115向工具管理部300发送包含工具指定信息的虚拟机 (工具图像)获取请求(图2的A2-b),作为其响应而获取程序分析/ 验证工具(虚拟机T)(图2的A3-b)。

进而,上述虚拟机执行环境部120在由工具获取部115获取到的虚拟 机T上使对象程序获取部114获取到的对象程序P动作,由此来分析、 验证对象程序P(图2的A4)。

数据存储部130保存委托管理数据库DBi、分析/验证结果数据R。 如图8所示,在委托管理数据库DBi中,于一条记录中保存有利用者识 别信息、利用者权限信息、对象程序指定信息、工具指定信息、以及结果 数据识别信息。分析/验证结果数据R通过结果数据识别信息而与其他信 息建立对应。

在此,基于图8来具体地说明注册在委托管理数据库DBi中的各信 息。

·利用者识别信息为利用者的识别信息。描述例的“USER_A, USER_B”表征分配给利用者A、利用者B的标签。

·利用者权限信息是利用者的访问权限。描述例的“GROUP_AB” 表征表示用于由利用者A/B共享对象程序P以及程序分析/验证工具(虚 拟机T)的群组权限的标签。此外,“PUBLIC”表征表示任意的利用者 可以访问的标签。此外,“ADMIN”表征表示只有管理者可以访问的标 签。

·对象程序指定信息是指定作为进行分析/验证的对象的对象程序P 的信息。对象程序指定信息相当于对象程序管理数据库DBp的对象程序 识别信息与对象程序关联信息之和。描述例的“OBJP_ID_1, C,SYSTEM_PROG”表征“具有识别信息OBJP_ID_1,为C语言程序, 程序的种类为系统程序”对象程序。

·工具指定信息是指定用于分析/验证的程序分析/验证工具(虚拟机 T)的信息。工具指定信息相当于工具管理数据库DBt的工具识别信息与 工具关联信息之和。描述例的“TOOL_ID_0,C, USER_PROG,SYSTEM_PROG,CPU_SPEED_2G,MEM_MAX_1G”表征 “具有识别信息TOOL_ID_0,可以实现将用户程序和系统程序设为对象 的验证,CPU的频率为2GHz,存储器最大使用1G”程序分析/验证工具 (虚拟机T)。

·结果数据识别信息是分析/验证的结果数据(分析/验证结果数据R) 的识别信息。描述例的“RESULT_0,RESULT_1”表征用于参照分析/验 证的结果数据的识别信息。

另外,也可在委托管理数据库DBi中还设置直接确定执行请求的信 息(例如,序号、请求的发行日期时间)。不过,如果针对委托管理数据 库DBi唯一地指定对象程序指定信息和工具指定信息、即对象程序P和 程序分析/验证工具(虚拟机T),则能够确定执行请求,所以上述的信息 不是必需的。

(3.1.2.对象程序管理部)

对象程序管理部200具有如下功能,即,从利用者受理对象程序P 的注册请求,按照该注册请求来获取对象程序P,并进行保存(图4)。 此外,对象程序管理部200具有如下功能,即,从分析/验证部100受理 对象程序获取请求,并向分析/验证部100送出所保存的对象程序P(图 5)。

为此,对象程序管理部200如图1所示那样具备对象程序管理控制部 210、以及对象程序存储部220。另外,对象程序管理控制部210、以及对 象程序存储部220分别对应于图4~图5所示的、对象程序管理子系统20 的控制器21、以及储存库22。

上述对象程序管理控制部210控制对象程序管理部200的整体。详细 而言,对象程序管理控制部210具备:利用者输入部211、对象程序获取 部212、对象程序注册/检索部213、以及对象程序送出部214。

利用者输入部211向利用者提供如下的用户界面,其中该用户界面提 示操作画面并受理输入。利用者输入部211既可以从键盘、鼠标等的输入 装置直接受理用户的操作,也可以经由因特网等的通信而间接地受理。

具体而言,利用者输入部211在从利用者受理了操作之际获取利用者 的识别信息的标签(利用者识别信息)、以及表示利用者的权限的标签(利 用者权限信息)。

此外,利用者输入部211从利用者受理对象程序P的注册请求(图4 的C1)。注册请求包含:利用者已指定的标签(对象程序关联信息)、对 象程序P的送出方法的指定(送出方法指定信息)的标签、以及作为进 行分析/验证的对象的对象程序P的识别信息(对象程序识别信息)。

对象程序获取部212基于由利用者输入部211从利用者受理了的注册 请求,来获取对象程序P。具体而言,在注册请求中所包含的送出方法指 定信息为“直接送出”的情况下,获取利用者所发送的对象程序P(图4 的C2)。此外,在注册请求中所包含的送出方法指定信息为“输入”的情 况下,从外部系统(版本管理系统等)获取对象程序P(图4的C2-1、 C2-2)。

对象程序注册/检索部213在利用者输入部211从利用者受理了注册 请求时,将所包含的标签的内容保存至对象程序存储部220的对象程序管 理数据库DBp(图4的C3)。此外,对象程序注册/检索部213将对象程 序获取部212获取到的对象程序P保存至对象程序存储部220(图4的 C3)。此时,在对象程序管理数据库DBp中,与对象程序P的识别信息 (对象程序识别信息)、注册请求的标签的信息建立对应地保存。

此外,对象程序注册/检索部213在从分析/验证部100受理了对象程 序获取请求时,参照对象程序管理数据库DBp,从对象程序存储部220 读出与对象程序获取请求中所包含的对象程序指定信息(对象程序识别信 息与对象程序关联信息之和)对应的对象程序P(图5的D1~D4)。

对象程序送出部214从分析/验证部100接收包含对象程序识别信息 的对象程序获取请求(图5的D1),作为其响应而向分析/验证部100发 送对象程序P(图5的D4)。

对象程序存储部220保存对象程序管理数据库DBp、以及对象程序P。 如图9所示,在对象程序管理数据库DBp中,于一条记录中保存有利用 者识别信息、利用者权限信息、对象程序关联信息、送出方法指定信息、 以及对象程序识别信息。对象程序P通过对象程序识别信息而与其他信 息建立对应。

在此,基于图9来具体地说明注册在对象程序管理数据库DBp中的 各信息。

·利用者识别信息是利用者的识别信息。描述例的“USER_A, USER_B”表征分配给利用者A、利用者B的标签。

·利用者权限信息是利用者的访问权限。描述例的“GROUP_AB” 表征表示用于由利用者A/B共享对象程序P以及程序分析/验证工具(虚 拟机T)的群组权限的标签。此外,“PUBLIC”表征表示任意的利用者可 以访问的标签。此外,“ADMIN”表征表示只有管理者可以访问的标签。

·对象程序关联信息是利用者能够以任意的内容指定任意的个数的信 息。作为对象程序关联信息,例如能描述在对象程序P中用到的编程语 言的种类、程序的种类(用户程序、系统程序相区别等)等。在描述例中, 作为示例而列举了“编程语言的种类”以及“程序的种类”。作为编程语 言的种类的示例的“Java,C,C++,OCaml”,例示了表征对象程序用怎样的 编程语言来描述的标签的种类。此外,作为程序的种类的示例的 “USER_PROG,SYSTEM_PROG,LIBRARY”,例示了对象程序的种类(用 户程序、系统程序、程序库等)。

·送出方法指定信息描述了:对象程序P的送出方法的指定、例如 是从利用者直接送出还是从外部系统输入。描述例的 “DIRECT_UPLOAD”表征表示对象程序P直接由利用者上载的标签。 此外,“IMPORT_git://XX…”表征对象程序P将要从外部的储存库(在 此是指git://XXX…)获取、或者已获取的标签。

·对象程序识别信息表示作为进行分析/验证的对象的对象程序P的 识别信息。描述例的“OBJP_ID_0,OBJP_ID_1”表征表示用于参照已保 存的对象程序P的识别信息的标签。

(3.1.3.工具管理部)

工具管理部300具有如下功能,即,从工具提供者受理程序分析/验 证工具的注册请求,并按照该注册请求来生成对程序分析/验证工具进行 了导入、设定的虚拟机T,并进行保存(图6)。此外,工具管理部300 具有如下功能,即,从分析/验证部100受理虚拟机获取请求,基于此时 获取到的工具指定信息进行检索,向分析/验证部100送出所提取出的虚 拟机T(图7)。

为此,工具管理部300如图1所示那样具备工具管理控制部310、以 及工具存储部320。另外,工具管理控制部310、以及工具存储部320分 别对应于图6~图7所示的、工具管理子系统30的控制器31、以及储存 库32。而且,关于工具管理子系统30的虚拟机执行环境33,设为在图1 的工具管理部300中具有工具管理控制部310的虚拟机生成部312所对应 的功能。

上述工具管理控制部310控制工具管理部300的整体。详细而言,具 备:工具提供者输入部311、虚拟机生成部(虚拟机生成单元)312、工 具注册/检索部(工具提取单元)313、以及工具送出部314。

工具提供者输入部311向工具提供者提供如下的用户界面,其中该用 户界面提示操作画面并受理输入。工具提供者输入部311既可以从键盘、 鼠标等的输入装置直接受理用户的操作,也可以经由因特网等的通信而间 接地受理。

具体而言,工具提供者输入部311在从工具提供者受理操作之际获取 工具提供者的识别信息的标签(工具提供者识别信息)。

此外,工具提供者输入部311从工具提供者受理程序分析/验证工具 的注册请求(图6的E1)。注册请求包含:工具提供者已指定的标签(工 具关联信息)、以及程序分析/验证工具的识别信息(工具识别信息)的标 签。另外,工具识别信息被作为对用于分析/验证的程序分析/验证工具进 行了导入/设定的包括工具图像在内的虚拟机T的识别信息来使用。此外, 工具提供者输入部311伴随着注册请求,受理程序分析/验证工具(图6 的E3)。

虚拟机生成部312针对每个程序分析/验证工具而生成对程序分析/ 验证工具进行了导入、设定的虚拟机T(图6的E2)。在虚拟机T的生成 中,注册请求中所包含的工具关联信息被作为用于向虚拟机导入、设定程 序分析/验证工具的数据来使用。虚拟机生成部312具备初始虚拟机生成 部3131和工具导入部3122。

初始虚拟机生成部3131基于工具关联信息来生成对程序分析/验证 工具进行导入、设定之前的状态的虚拟机(初始虚拟机)。由此,例如可 获得适合于程序分析/验证工具能处理的编程语言的种类、程序的种类(用 户程序、系统程序相区别等)、程序分析/验证工具工作的执行环境(操作 系统、程序库的种类/版本、需要的计算资源、即CPU的速度、种类、存 储器、盘的尺寸等)的初始虚拟机。

工具导入部3122执行初始虚拟机生成部3131所生成的虚拟机(初始 虚拟机),基于工具提供者的指示等来导入、设定程序分析/验证工具(图 6的E3)。

工具注册/检索部313在工具提供者输入部311从工具提供者受理了 注册请求时,将所包含的标签的内容保存至工具存储部320的工具管理数 据库DBt(图6的E4)。此外,工具注册/检索部313将虚拟机生成部312 所生成的虚拟机T保存至工具存储部320(图4的C3)。此时,工具注册 /检索部313将虚拟机T作为工具图像的数据而保存至工具存储部320。

此外,工具注册/检索部313与虚拟机T的识别信息(工具识别信息) 等建立对应地保存至工具管理数据库DBt。此外,工具注册/检索部313 在从分析/验证部100受理了虚拟机(工具图像)获取请求时,参照工具 管理数据库DBt,检索适合于虚拟机(工具图像)获取请求中所包含的工 具指定信息的工具关联信息。而且,从工具存储部320读出与适合于工具 指定信息的工具关联信息对应的虚拟机(工具图像)T(图7的F1~F4)。

工具送出部314从分析/验证部100接收包含工具指定信息的虚拟机 (工具图像)获取请求(图7的F1),作为其响应而向分析/验证部100 发送由工具注册/检索部313提取出的一个或多个虚拟机T(图7的F4)。

工具存储部320保存工具管理数据库DBt、以及虚拟机(图像数据) T。如图10所示,在工具管理数据库DBt中,于一条记录中保存有工具 提供者识别信息、工具关联信息、以及工具识别信息。虚拟机(图像数据) T通过工具识别信息而与其他信息建立对应。

在此,基于图10来具体地说明在工具管理数据库DBt中注册的各信 息。

·工具提供者识别信息是工具提供者的识别信息。描述例的“USER_A, USER_B”表征分配给利用者A、利用者B的标签。

·工具关联信息是工具提供者能够以任意的内容指定任意的个数的信 息。作为工具关联信息,例如能描述:程序分析/验证工具(虚拟机T) 能处理的编程语言的种类、程序的种类(用户程序、系统程序相区别等)、 程序分析/验证工具(虚拟机T)工作的执行环境(操作系统、程序库的 种类/版本、需要的计算资源(CPU的速度、种类、存储器、盘的尺寸等) 等。在描述例中,作为示例而列举“编程语言的种类”、“程序的种类”、 以及“执行环境/计算资源”。作为编程语言的种类的示例的“Java,C,C++, OCaml”,例示了表示将程序分析/验证工具(虚拟机T)用怎样的编程语 言来描述的程序作为对象的标签的种类。此外,作为程序的种类的示例的 “USER_PROG,SYSTEM_PROG,LIBRARY”,例示了程序分析/验证工具 (虚拟机T)能与分析/验证的对象制成的程序的种类(用户程序、系统 程序、程序库等)。此外,作为执行环境/计算资源的示例“OS_Linux3.X, LIB_libgplk_1.X,CPU_KIND_X86,CPU_SPEED_2G,CPU_NUM_8, MEM_MAX_1G,DISK_MAX_4G”,例示了程序分析/验证工具(虚拟机T) 可执行的执行环境/计算资源的种类。在此情况下,表现了:OS为Linux 3.X,libgplk1.X作为程序库,X86作为CPU的种类,2GHz作为执行频 率,直到CPU的核数为8个为止使用的最大的存储器的量为1GB,盘的 量为4G。

·工具识别信息为对用于分析/验证的程序分析/验证工具(虚拟机T) 进行了导入/设定的包括工具图像在内的虚拟机T的识别信息。描述例的 “TOOL_ID_0,TOOL_ID_1”为已保存的程序分析/验证工具,更具体而 言为用于参照对程序分析/验证工具进行了导入/设定的包括工具图像在 内的虚拟机T的识别信息。

(4.与现有技术的比较)

在此,关于本实施方式所涉及的程序分析/验证服务提供系统1、与 现有技术尤其是病毒分析/检查网站(非专利文献1)之间的差异,按照 作为〔发明要解决的课题〕列举的每个问题来进行说明。

(1)程序分析/验证工具所需要的计算资源的肥大化

关于该问题,虽然以往的病毒分析/检查网站无需由利用者准备计算 资源,但是却需要由分析/验证工具的提供者独自地准备计算资源,或者 还要重新创建Web界面。

相对于此,在上述程序分析/验证服务提供系统1中,由于在多个程 序分析/验证工具的提供者之间能够共享计算资源,因此将大幅减轻工具 提供者的负担。此外,工具提供者如在(2.3.工具管理子系统的一安装例) 中叙述的那样,只是对预先准备的虚拟机来进行程序分析/验证工具的导 入/设定即可,因此也无需花费重新创建Web界面等等的额外工夫。

(2)程序分析/验证工具的种类的多样化

关于该问题,如在非专利文献1中所记载的那样,虽然存在众多的病 毒分析/检查网站,但是各个网站由不同的工具提供者独自地经营,故不 存在统一的界面。因而,对于程序分析/验证工具的利用者而言,难以判 断选择哪些程序分析/验证工具为好、即选择哪些病毒分析/检查网站为 好。

(3)程序分析/验证工具的导入/运用的工夫/成本

关于该问题也同样,众多的病毒分析/检查网站由不同的工具提供者 独自地经营,故统一的界面也不存在,因此难以有效率地利用多个网站来 进行分析/验证、或者收集/比较该结果。

作为该问题的简单避免策略,考虑将多个程序分析/验证网站作为后 端来利用,在前端设置提供统一界面的网站。即,是从利用者接受对象程 序,并将其送出至多个程序分析/验证网站,收集结果并送出至利用者的 方法。

但是,如下所述那样,即便使用该方法也依然留下问题。首先,只是 单纯地向多个程序分析/验证网站发送对象程序,则也可发送至对利用者 所需的程序分析/验证工具进行提供的程序分析/验证网站以外的网站。其 结果,分析/验证的效率变差,且分析/验证的结果也变得庞大,比较研讨 变得不易。相对于此,在上述程序分析/验证服务提供系统1中,如在(2. 用于共享程序分析/验证工具的系统的安装例)中叙述的那样,对对象程 序、程序分析/验证工具附标签来管理,从而能够有效率地选择必要的程 序分析/验证工具。

此外,作为另一问题,只是单纯地向多个程序分析/验证网站发送对 象程序,便存在如下的可能性,即,分析/验证的结果必需由利用者进行 保存/管理,对于利用者而言计算资源的负担变大、或者不必要地重复执 行相同的分析/验证。相对于此,在上述程序分析/验证服务提供系统1 中,如在(2.用于共享程序分析/验证工具的系统的安装例)中叙述的那 样,可在储存库中统一地保存分析/验证的结果,从而可进行利用了附标 签的结果的检索等。

进而,在将多个网站用作后端的方法中,也无法应付(1)(4)的问 题。

(4)程序分析/验证工具自身的测试的困难性

针对该问题,首先各个分析/验证工具的提供者能准备的计算资源存 在界限,实际可进行分析/验证的对象的尺寸、复杂性存在界限。因而, 分析/验证工具自身的测试较为困难这一问题,在以往的病毒分析/检查网 站中也存在。

相对于此,在上述程序分析/验证服务提供系统1中,在多个程序分 析/验证工具的提供者之间共享计算资源。其结果,能够分析/验证尺寸更 大且复杂的对象,因此能够更严格地进行程序分析/验证工具自身的测试。 此外,能够由多个程序分析/验证工具共享分析/验证对象的程序,因此关 于更多的对象,也可进行程序分析/验证工具的测试。

如以上,以往的病毒分析/检查网站存在不用花费利用者准备用于分 析/检查的计算资源、或者导入分析/检查软件的工夫这一优点,但是作为 问题点而原封不动地具有本发明要解决的课题((1)~(4))。

(5.向多阶段的分析/验证的应用等)

在上述的记载中,说明了程序分析/验证服务提供系统1使用程序分 析/验证工具以1个阶段分析/验证对象程序的情况。然而,程序分析/验 证服务提供系统1即便在通过多阶段的分析/验证来进行对象程序的分析 /验证的情况下,也能够适合地加以利用。

而且,例如在使用程序分析/验证工具而分析/验证了对象程序之后, 对通过该分析/验证而获得的结果数据进一步进行分析/验证的情况下,优 选对对象程序、或者结果数据恰当地附加各阶段的进行分析/验证的工具 指定信息、以及工具关联信息。即,在程序分析/验证服务提供系统1中, 即便在各阶段的分析/验证等中也使用标签,从而即使为经由多阶段的分 析/验证的工序来进行对象程序的分析/验证的情况,也能够有效率地处 理。

首先,以下示出在程序分析/验证服务提供系统1中将标签用于各阶 段的分析/验证,并通过多阶段的分析/验证来分析/验证对象程序的示例。

在此,说明程序分析/验证服务提供系统1连续地执行使用程序分析/ 验证工具来分析/验证对象程序的处理、以及针对通过该处理而获得的结 果数据的分析/验证(后处理)的情况。

首先,虚拟机执行环境部(工具执行单元)120将使用程序分析/验 证工具来分析/验证对象程序而获得的结果数据、与结果数据的特征描述 信息(标签)建立对应地保存至数据存储部(结果数据存储部)130。另 一方面,工具存储部320将分析/验证结果数据的程序分析/验证工具(后 处理工具)与该分析/验证工具关联信息建立对应地保存至工具存储部 320。

其次,利用者界面部(工具指定信息获取单元)111从数据存储部130 获取与结果数据建立了对应的特征描述信息,作为该工具指定信息。

工具注册/检索部(工具提取单元)313基于由利用者界面部111获 取到的工具指定信息来检索工具关联信息,从保存在工具存储部320中的 多个后处理工具之中提取与相适合的工具关联信息建立了对应的后处理 工具。

然后,程序分析/验证服务提供系统1使用如上述那样提取出的后处 理工具,连续地执行针对分析/验证对象程序的处理的结果数据的分析/ 验证(后处理)。

在上述的示例中,作为进行分析/验证的处理的结果数据所适合附加 的特征描述信息(标签),例如可考虑表征数据的种类的标签(例如, ″execution_path″(表征执行路径)、″execution_trace″(表征执行踪迹)、 ″program_point″(表征程序中的执行点))等。此外,针对数据分析工具, 也能与程序分析/验证同样地附加工具指定信息(标签)。

另外,分析/验证对象程序的处理阶段的数目并不限定于2个阶段, 可以是使用了任意数目的处理阶段的处理。

此外,在此说明了程序分析/验证服务提供系统1使用程序分析/验证 工具执行了分析/验证对象程序的处理的结果数据持续被分析/验证的情 况,但是即便在程序分析/验证服务提供系统1对在其他系统中进行了分 析/验证的结果的数据进行分析/验证的情况下,也能够适用本发明。也就 是说,在进行多阶段的分析/验证的处理中,既可以由程序分析/验证服务 提供系统1来进行全部的该分析/验证的处理,也可以由其他系统来分担 进行各阶段的处理。

具体而言,列举在其他系统作为分析的结果而输出的执行路径下,由 程序分析/验证服务提供系统1进行精度更高的分析/验证的情况等。

即便在非程序分析/验证服务提供系统1的程序分析/验证工具而由 其他系统的程序分析/验证工具分析/验证了对象程序的情况下,通过对作 为其分析/验证的结果而输出的结果数据附加标签(特征描述信息),也能 够分析/验证基于数据分析工具的该结果的数据。

即,即便在其他系统的程序分析/验证工具分析/验证了对象程序的情 况下,通过对所输出的分析/验证结果的数据附加标签,并进行保存,也 可以利用本发明的框架。

进而,本发明并不限定性地适用于上述那样的、对象程序的分析/验 证、以及以所输出的分析/验证结果的数据为对象的分析/验证的处理(后 处理)。例如,即便在为了进行对象程序的分析/验证而需要前处理的情况 下,也可适合应用附加标签。

其次,以下示出关于程序分析/验证服务提供系统1所分析/验证的对 象程序而对前处理前程序进行前处理的示例。

因程序分析/验证工具的种类的不同,假定作为对程序(前处理前程 序)进行了前处理的结果而需要设为对象程序(前处理后程序)的情况。

即,首先,作为第1阶段,输出作为使用前处理工具(工具)对前处 理前程序进行了前处理的结果的对象程序,并将该对象程序存储至对象程 序存储部(前处理后程序存储部)220。其次,作为第2阶段,连续地执 行使用程序分析/验证工具来分析/验证通过该前处理而获得的对象程序 的处理。

在此情况下,通过对前处理前的程序进行前处理而获得的对象程序, 与对象程序的特征描述信息(标签)建立对应地被保存至对象程序存储部 (前处理后程序存储部)220。

其次,对象程序获取部114从对象程序存储部220获取对象程序。另 一方面,利用者界面部(工具指定信息获取单元)111获取与从对象程序 存储部220获取到对象程序的对象程序建立了对应的特征描述信息,作为 工具指定信息。

这样,为了进行某程序的分析/验证,作为需要程序的前处理的处理, 例如有数据流程分析、控制流程分析、程序切片、指针分析等。

而且,通过对前处理工具(工具)以及对象程序(前处理后程序)附 加标签,并进行保存,从而能够利用本发明的构架。

实际上,前处理工具与分析/验证工具同样地存在各式各样的种类, 也存在消耗较多计算资源的工具,因此与分析/验证工具的情况同样,本 发明是有效的。

例如,作为对前处理工具(工具)附加的标签(工具关联信息),考 虑表征可以前处理的对象的标签(与对验证工具附加的标签同样的标签)、 以及表征进行怎样的前处理的标签(例如,示出了″data_flow_analysis″、 ″control_flow_analysis″、″program_slicing″、″pointer_analysis″等前处理的 种类的标签)。此外,作为与前处理结果的数据建立对应的特征描述信息 (标签),″data_flow_analysis″、″control_flow_analysis″、″program_slicing″、 "pointer_analysis″等认为是有效的。

此外,作为使上述两个示例组合在一起的示例,示出在程序分析/验 证服务提供系统(数据处理服务提供系统)1中针对对象程序使用前处理 工具(前处理数据处理工具)来进行前处理,接着针对前处理后的对象程 序使用程序分析/验证工具来进行分析/验证,进而针对该分析/验证的结 果数据使用另一分析/验证工具(后处理数据处理工具)来进行分析/验证 的例子。

首先,作为第1阶段,输出作为使用前处理工具(前处理数据处理工 具)对前处理前程序进行了前处理的结果的对象程序,并将该对象程序存 储至对象程序存储部(前处理后程序存储部)220。通过对前处理前的程 序进行前处理而获得的对象程序,如前所述,与对象程序的特征描述信息 (标签)建立对应地被保存至对象程序存储部(前处理后程序存储部)220。

此时,作为对前处理后的对象程序所适合附加的特征描述信息(标 签),如上述的示例那样,考虑例如表征前处理的种类的标签 (″data_flow_analysis″、″control_flow_analysis″、″program_slicing″、 ″pointer_analysis″等)等。

其次,作为第2阶段,针对通过前处理而获得的对象程序使用程序分 析/验证工具来进行分析/验证。具体而言,首先,对象程序获取部114 从对象程序存储部220获取对象程序。另一方面,利用者界面部(工具指 定信息获取单元)111获取与从对象程序存储部220获取到对象程序的对 象程序建立了对应的特征描述信息,作为工具指定信息。接着,虚拟机执 行环境部(工具执行单元)120使用程序分析/验证工具来分析/验证对象 程序,将得其结果的结果数据与结果数据的特征描述信息(标签)建立对 应地保存至数据存储部(结果数据存储部)130。

此时,作为结果数据所适合附加的特征描述信息(标签),如上述的 例子那样,考虑例如表征数据的种类的标签(″execution_path″(表征执 行路径)、″execution_trace″(表征执行踪迹)、″program_point″(表征程 序中的执行点)等)等。

最后,作为第3阶段,利用者界面部(工具指定信息获取单元)111 从数据存储部130获取与结果数据建立了对应的特征描述信息,作为该工 具指定信息。在此,工具存储部320将分析/验证结果数据的程序分析/ 验证工具(后处理数据处理工具)与该分析/验证工具关联信息建立对应 地保存至工具存储部320。然后,工具注册/检索部(工具提取单元)313 基于由利用者界面部111获取到的工具指定信息来检索工具关联信息,从 保存在工具存储部320中的多个后处理工具之中提取与相适合的工具关 联信息建立了对应的后处理工具(后处理数据处理工具)。然后,程序分 析/验证服务提供系统1从工具存储部320获取所提取出的数据处理工具, 使用所获取到的后处理工具,连续地执行针对分析/验证对象程序的处理 的结果数据的分析/验证(后处理)。

另外,在上述的组合的示例中,虽然前处理和后处理的数目各为一个, 但是也可以组合任意数目的前处理、后处理、分析/验证处理。此外,也 可以省略前处理、后处理、分析/验证处理的任一者。

这样,在进行多阶段的数据处理的情况下,程序分析/验证服务提供 系统1将特征描述信息(标签)与各阶段的处理的结果所获得的数据(程 序或者程序以外的数据)建立对应地保存(存储)。对各阶段的处理结果 的数据执行与特征描述信息(标签)之间的建立对应,是与保存数据同时、 或者在数据保存后到提取下一个阶段的处理所用的工具为止的期间。此 时,经建立对应的特征描述信息(标签)优选按照与各阶段的处理所使用 的工具对应的、规定规则来决定。另外,程序分析/验证服务提供系统1 的用户也可手动作业地将特征描述信息(标签)与各阶段的处理所得到的 数据建立对应。

如上所述,本发明也可在适用于连续地执行通过对程序进行前处理来 获得对象程序的处理(前处理)、以及对所获得的对象程序进行分析/验证 的处理的、多阶段的分析/验证的情况下,如以下那样构成。

程序分析/验证服务提供系统(程序分析/验证服务提供系统1),其 特征在于,连续地执行:对前处理前程序进行前处理来获得对象程序的处 理;以及针对通过该处理而获得的对象程序,使用程序分析/验证工具来 进行分析、验证的处理,还具备将对前处理前程序进行前处理而获得的对 象程序与该对象程序的特征描述信息(工具指定信息)建立对应地保存的 前处理后程序存储部(对象程序存储部220),对象程序获取单元(对象 程序获取部114)从前处理后程序存储部获取对象程序,工具指定信息获 取单元(利用者界面部111)从前处理后程序存储部获取与对象程序获取 单元获取到的对象程序建立了对应的特征描述信息作为工具指定信息。

此外,本发明也可在适用于继分析/验证对象程序的处理之后对所获 得的结果数据执行分析/验证的处理的多阶段的分析/验证的情况下,如以 下那样构成。

程序分析/验证服务提供系统(程序分析/验证服务提供系统1),其 特征在于,连续地执行:使用程序分析/验证工具来分析、验证对象程序 的处理;以及对通过该处理而获得的结果数据进行后处理的处理,还具备 将由工具执行单元(虚拟机执行环境部120)使用程序分析/验证工具来 分析、验证对象程序而获得的结果数据与该结果数据的特征描述信息(工 具指定信息)建立对应地保存的结果数据存储部(数据存储部130),并 且工具存储部(工具存储部320)将对结果数据进行后处理的后处理工具 与该后处理工具的工具关联信息建立对应地保存,工具指定信息获取单元 (利用者界面部111)从结果数据存储部获取与结果数据建立了对应的特 征描述信息作为工具指定信息,工具提取单元(工具注册/检索部313) 基于由工具指定信息获取单元获取到的工具指定信息来检索工具关联信 息,从保存在工具存储部中的多个后处理工具之中提取与相适合的工具关 联信息建立了对应的后处理工具。

进而,本发明在构成为无需进行程序的分析/验证的处理的服务提供 系统的情况下,也可如下那样构成。

本发明所涉及的数据处理服务提供系统(程序分析/验证服务提供系 统1),其特征在于,通过依次使用多个数据处理工具(程序分析/验证工 具、前处理工具、后处理工具),由此来多阶段地数据处理对象数据(对 象程序、结果数据),上述数据处理服务提供系统具备:工具存储部(工 具存储部320),其将多个数据处理工具分别与各数据处理工具的工具关 联信息建立对应地保存;结果数据存储部(数据存储部130),其将使用 前阶段的数据处理工具(前处理工具、程序分析/验证工具)进行数据处 理而获得的结果数据与该结果数据的特征描述信息(工具指定信息)建立 对应地保存;结果数据获取单元(对象程序获取部114),其从结果数据 存储部获取结果数据;工具指定信息获取单元(利用者界面部111),其 作为对用于数据处理结果数据获取单元获取到的结果数据的数据处理工 具(程序分析/验证工具、后处理工具)进行指定的工具指定信息,从结 果数据存储部获取与该结果数据建立了对应的特征描述信息;工具提取单 元(工具注册/检索部313),其基于工具指定信息获取单元获取到的工具 指定信息来检索工具关联信息,从保存在工具存储部中的多个数据处理工 具之中提取与相适合的工具关联信息建立了对应的数据处理工具;工具获 取单元(工具获取部115),其从上述工具存储部获取由上述工具提取单 元提取出的数据处理工具;以及工具执行单元(虚拟机执行环境部120), 其使用由工具获取单元获取到的数据处理工具来数据处理由结果数据获 取单元获取到的结果数据。

(6.总结)

本发明所涉及的程序分析/验证服务提供系统,使用程序分析/验证工 具来分析、验证对象程序,其特征在于,上述程序分析/验证服务提供系 统具备:对象程序获取单元,其获取对象程序;工具存储部,其保存有多 个程序分析/验证工具;工具提取单元,其从保存在上述工具存储部中的 多个程序分析/验证工具之中提取用于分析、验证由上述对象程序获取单 元获取到的对象程序的程序分析/验证工具;工具获取单元,其从上述工 具存储部获取由上述工具提取单元提取出的程序分析/验证工具;以及工 具执行单元,其使用由上述工具获取单元获取到的各程序分析/验证工具, 来分析、验证上述对象程序获取单元获取到的对象程序。

此外,本发明所涉及的程序分析/验证服务提供系统的控制方法,使 用程序分析/验证工具来分析、验证对象程序,其特征在于,上述程序分 析/验证服务提供系统具备:工具存储部,其保存有多个程序分析/验证工 具,上述程序分析/验证服务提供系统的控制方法包括:对象程序获取步 骤,获取对象程序;工具提取步骤,从保存在上述工具存储部中的多个程 序分析/验证工具之中提取用于分析、验证由上述对象程序获取步骤获取 到的对象程序的程序分析/验证工具;工具获取步骤,从上述工具存储部 获取由上述工具提取步骤提取出的程序分析/验证工具;以及工具执行步 骤,使用由上述工具获取步骤获取到的各程序分析/验证工具,来分析、 验证由上述对象程序获取步骤获取到的对象程序。

根据上述的构成,不仅获取对象程序,并且从保存在工具存储部中的 多个程序分析/验证工具之中提取并获取用于分析、验证该对象程序的程 序分析/验证工具。然后,使用所获取到的各程序分析/验证工具来分析、 验证对象程序。

这样,能够获取对象程序,并与该对象程序相匹配地从预先准备的多 个程序分析/验证工具之中选择用于分析、验证的程序分析/验证工具。故 此,能够针对希望分析、验证对象程序的多个利用者,提供如下服务,即, 使用与各个对象程序相匹配地从预先准备的多个程序分析/验证工具之中 选择出的程序分析/验证工具,来执行分析、验证。此外,针对期望提供 程序分析/验证工具的多个工具提供者,也能够提供如下服务,即,从多 个利用者受理对象程序的分析、验证的委托,并执行分析、验证。即,根 据上述的构成,能够实现用于利用程序分析/验证工具的共享系统。

由此,能够起到以下效果。(1)由于多个利用者共享工具执行系统, 因此无需由各个利用者准备计算资源。故而,能够彼此通融剩余的计算资 源,可抑制分析/验证的成本,并且可以执行的分析/验证的种类、规模的 制限被缓和。(2)此外,由于能够一并进行程序分析/验证工具的导入/ 维护管理,因此无需由各个利用者进行导入/维护管理。(3)此外,由于 可以提供统一的用户界面,因此利用者从多个程序分析/验证工具之中选 择恰当的程序分析/验证工具变得容易。(4)另一方面,对于程序分析/ 验证工具的提供者而言,与利用者同样地,无需由各个工具提供者准备计 算资源。故此,能够彼此通融剩余的计算资源,可抑制成本,并且可以执 行的分析/验证的种类、规模的制限被缓和。此外,即便对于各式各样的 对象程序,也能完成程序分析/验证工具的测试。尤其是,即便针对截止 到目前为止因计算资源的制限而较为困难的对象程序,也可实现程序分析 /验证工具的测试。

故此,起到能够从多个程序分析/验证工具之中恰当地选择要使用的 程序分析/验证工具,来容易地执行程序的分析/验证这一效果。而且,起 到通过在共享系统上进行程序分析/验证从而能够解决现有的程序分析/ 验证技术在实用化上的各种问题点这一效果。

进而,本发明所涉及的程序分析/验证服务提供系统,其特征在于, 还具备:工具指定信息获取单元,其获取对用于分析、验证由上述对象程 序获取单元获取到的上述对象程序的程序分析/验证工具进行指定的工具 指定信息,上述工具存储部将多个程序分析/验证工具分别与各程序分析/ 验证工具的工具关联信息建立对应地保存,上述工具提取单元基于由上述 工具指定信息获取单元获取到的上述工具指定信息来检索上述工具关联 信息,提取与相适合的工具关联信息建立了对应的程序分析/验证工具。

根据上述的构成,进而工具存储部将多个程序分析/验证工具分别与 各程序分析/验证工具的工具关联信息建立对应地保存。而且,获取对用 于分析、验证对象程序的程序分析/验证工具进行指定的工具指定信息, 基于该工具指定信息来检索上述工具关联信息,提取与相适合的工具关联 信息建立了对应的程序分析/验证工具。

由此,工具关联信息与程序分析/验证工具建立对应,通过与对象程 序一起设定工具指定信息,从而可以选择与对象程序相匹配的程序分析/ 验证工具。在此,工具关联信息例如能够设定:程序分析/验证工具能处 理的编程语言的种类、程序的种类(用户程序、系统程序相区别等)、程 序分析/验证工具工作的执行环境(操作系统、程序库的种类/版本、需要 的计算资源(CPU的速度、种类、存储器、盘的尺寸等)等)。另一方面, 工具指定信息是对用于分析/验证的程序分析/验证工具进行指定的信息, 能从被设定为工具关联信息的内容之中设定。

由此,可以提供统一的用户界面,因此起到利用者从多个程序分析/ 验证工具之中选择恰当的程序分析/验证工具变得容易这一效果。

进而,本发明所涉及的程序分析/验证服务提供系统,其特征在于, 上述工具存储部保存作为上述程序分析/验证工具的、对该程序分析/验证 工具进行了导入、设定的虚拟机,上述工具执行单元在由上述工具获取单 元获取到的虚拟机上分析、验证由上述对象程序获取单元获取到的对象程 序。

根据上述的构成,进而作为程序分析/验证工具而准备对该程序分析/ 验证工具进行了导入、设定的虚拟机,能够在该虚拟机上分析、验证对象 程序。

由此,能够起到以下效果。首先,第一:通过使用虚拟机来执行分析 /验证,从而能够在多个利用者和多个程序分析/验证工具的提供者之间容 易地实现系统的公平利用。此外,第二:通过在虚拟机上导入/设定程序 分析/验证工具,从而程序分析/验证工具的提供者能够与通常自己开发/ 测试的执行环境几乎同样地导入/设定程序分析/验证工具。故此,不会给 程序分析/验证工具的提供者带来为了应对特殊的执行环境而修正程序分 析/验证工具、或者另行准备用于让程序分析/验证工具进行与外部的数据 交换的构造等的、额外负担。另外,虚拟机上的对象程序的分析/验证, 既可以在虚拟机上执行对象程序来进行,也可不执行对象程序来进行。

进而,本发明所涉及的程序分析/验证服务提供系统,其特征在于, 还具备:虚拟机生成单元,其针对每个程序分析/验证工具而生成对程序 分析/验证工具进行了导入、设定的虚拟机,上述工具存储部保存有作为 上述程序分析/验证工具的由上述虚拟机生成单元所生成的虚拟机。

根据上述的构成,进而能够在受理新的程序分析/验证工具之际生成 对该程序分析/验证工具进行了导入、设定的虚拟机,并保存至工具存储 部。

由此,由程序分析/验证服务提供系统来执行对程序分析/验证工具进 行了导入、设定的虚拟机的生成,因此无需由工具提供者执行虚拟机的生 成。此外,能够以统一的样式,尤其照顾到虚拟机的执行环境来创建对各 自不同的程序分析/验证工具进行了导入、设定的多个虚拟机,因此起到 可以同样地处理这样的效果。

此外,本发明所涉及的程序分析/验证装置也可构成为:是构成上述 程序分析/验证服务提供系统的程序分析/验证装置,上述程序分析/验证 装置具备上述对象程序获取单元、上述工具获取单元以及上述工具执行单 元。

此外,本发明所涉及的程序分析/验证工具管理装置也可构成为:是 构成上述程序分析/验证服务提供系统的程序分析/验证工具管理装置,上 述程序分析/验证工具管理装置具备上述工具存储部和上述工具提取单 元。

另外,上述的程序分析/验证服务提供系统、程序分析/验证装置、程 序分析/验证工具管理装置也可以由计算机来实现,在此情况下,通过使 计算机作为上述各单元动作从而由计算机实现上述的程序分析/验证服务 提供系统、程序分析/验证装置、程序分析/验证工具管理装置的控制程序、 以及记录有该控制程序的计算机可读的记录介质也在本发明的范畴内。

(7.补充)

最后,程序分析/验证服务提供系统1、分析/验证部100、对象程序 管理部200、工具管理部300的各块、尤其是分析/验证控制部110、对象 程序管理控制部210、工具管理控制部310,既可以由硬件逻辑来构成, 也可以如下那样使用CPU而由软件来实现。

在后者的情况下,程序分析/验证服务提供系统1(构成该系统的各 装置)具备:执行实现各功能的程序的命令的CPU(central processing unit)、 保存有上述程序的ROM(read only memory)、展开上述程序的RAM (random access memory)、保存上述程序以及各种数据的存储器等的存储 装置(记录介质)等。而且,通过将实现上述的功能的软件即程序分析/ 验证服务提供系统1(构成该系统的各装置)的控制程序的程序代码(执 行格式程序、中间代码程序、源程序)记录成计算机可读的记录介质供应 给上述程序分析/验证服务提供系统1(构成该系统的各装置),由该计算 机(或者CPU、MPU)读出记录在记录介质中的程序代码并执行该程序 代码,也可以实现本发明的目的。

作为上述记录介质,例如能够使用磁带、盒式磁带等的带类、包括软 (注册商标)盘/硬盘等的磁盘、CD-ROM/MO/MD/DVD/CD- R等的光盘在内的盘类、IC卡(包含存储卡)/光卡等的卡类、或者掩 模ROM/EPROM/EEPROM(注册商标)/闪速ROM等的半导体存储 器类等。

此外,也可将程序分析/验证服务提供系统1(构成该系统的各装置) 构成为可以与通信网络连接,并经由通信网络来提供上述程序代码。该通 信网络并不特别限定,例如可以利用因特网、内联网、外联网、LAN、ISDN、 VAN、CATV通信网、虚拟专用网(virtual private network)、电话线路网、 移动通信网、卫星通信网等。此外,作为构成通信网络的传输介质,并没 有特别限定,例如既可以利用IEEE1394、USB、电力线搬运、电缆TV 线路、电话线、ADSL线路等的有线,也可以利用IrDA、遥控器那样的 红外线、Bluetooth(注册商标)、802.11无线、HDR、移动电话网、卫星 线路、地面波数字网等的无线。另外,本发明即便以上述程序代码经由电 子传输被具体化的、插入在载波中的计算机数据信号的形态,也可实现。

本发明并不限定于上述的实施方式,在权利要求所示的范围内可以进 行各种变更,酌情组合实施方式所公开的技术手段而获得的实施方式也包 含在本发明的技术范围内。

工业实用性

本发明能够利用于使用程序分析/验证工具来分析、验证对象程序的 装置(系统)。

标号说明

1     程序分析/验证服务提供系统(数据处理服务提供系统)

100   分析/验证部(程序分析/验证装置)

111   利用者界面部(工具指定信息获取单元)

114   对象程序获取部(对象程序获取单元)

115   工具获取部(工具获取单元)

120   虚拟机执行环境部(工具执行单元)

300   工具管理部(程序分析/验证工具管理装置)

312   虚拟机生成部(虚拟机生成单元)

313   工具注册/检索部(工具提取单元)

320   工具存储部

P     对象程序

T     虚拟机

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号