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

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

Info

Publication number
CN103930898A
CN103930898A CN201280055921.7A CN201280055921A CN103930898A CN 103930898 A CN103930898 A CN 103930898A CN 201280055921 A CN201280055921 A CN 201280055921A CN 103930898 A CN103930898 A CN 103930898A
Authority
CN
China
Prior art keywords
instrument
analysis
mentioned
object program
process analysis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201280055921.7A
Other languages
English (en)
Other versions
CN103930898B (zh
Inventor
前田俊行
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Science and Technology Agency
Original Assignee
Japan Science and Technology Agency
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Japan Science and Technology Agency filed Critical Japan Science and Technology Agency
Publication of CN103930898A publication Critical patent/CN103930898A/zh
Application granted granted Critical
Publication of CN103930898B publication Critical patent/CN103930898B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

程序分析/验证服务提供系统及其控制方法、控制程序、用于使计算机发挥功能的控制程序、程序分析/验证装置、程序分析/验证工具管理装置
技术领域
本发明涉及使用程序分析/验证工具来分析、验证对象程序的程序分析/验证服务提供系统等。
背景技术
程序分析/验证是指分析/验证计算机的程序满足哪些性质的技术。认为程序分析/验证是用于保障/验证程序的安全性、可靠性的非常有效的手段。
近年,随着该程序分析/验证技术飞跃性进步,逐渐可以对各式各样的实用程序进行分析/验证。实际上,不论是研究用途还是商业用途,均开发了众多进行程序分析/验证的程序(以后称作“程序分析/验证工具”)。
在此,以病毒分析/检查网站为例,说明共享程序分析/验证工具的现有技术。
图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为Linux3.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     虚拟机

Claims (12)

1.一种程序分析/验证服务提供系统,使用程序分析/验证工具来分析、验证对象程序,其特征在于,
上述程序分析/验证服务提供系统具备:
对象程序获取单元,其获取对象程序;
工具存储部,其保存有多个程序分析/验证工具;
工具提取单元,其从保存在上述工具存储部中的多个程序分析/验证工具之中提取用于分析、验证由上述对象程序获取单元获取到的对象程序的程序分析/验证工具;
工具获取单元,其从上述工具存储部获取由上述工具提取单元提取出的程序分析/验证工具;和
工具执行单元,其使用由上述工具获取单元获取到的各程序分析/验证工具,来分析、验证由上述对象程序获取单元获取到的对象程序。
2.根据权利要求1所述的程序分析/验证服务提供系统,其特征在于,
上述程序分析/验证服务提供系统还具备:工具指定信息获取单元,其获取对用于分析、验证由上述对象程序获取单元获取到的上述对象程序的程序分析/验证工具进行指定的工具指定信息,
上述工具存储部将多个程序分析/验证工具分别与各程序分析/验证工具的工具关联信息建立对应地保存,
上述工具提取单元基于由上述工具指定信息获取单元获取到的上述工具指定信息来检索上述工具关联信息,提取与相适合的工具关联信息建立了对应的程序分析/验证工具。
3.根据权利要求1或2所述的程序分析/验证服务提供系统,其特征在于,
上述工具存储部保存作为上述程序分析/验证工具的、对该程序分析/验证工具进行了导入、设定的虚拟机,
上述工具执行单元在由上述工具获取单元获取到的虚拟机上分析、验证由上述对象程序获取单元获取到的对象程序。
4.根据权利要求3所述的程序分析/验证服务提供系统,其特征在于,
上述程序分析/验证服务提供系统还具备:虚拟机生成单元,其针对每个程序分析/验证工具而生成对程序分析/验证工具进行了导入、设定的虚拟机,
上述工具存储部保存有作为上述程序分析/验证工具的、由上述虚拟机生成单元生成的虚拟机。
5.根据权利要求2所述的程序分析/验证服务提供系统,其特征在于,
上述程序分析/验证服务提供系统连续地执行:对前处理前程序进行前处理来获得上述对象程序的处理;以及针对通过该处理而得到的上述对象程序,使用上述程序分析/验证工具来分析、验证的处理,
上述程序分析/验证服务提供系统还具备:前处理后程序存储部,其将对上述前处理前程序进行前处理而获得的上述对象程序与该对象程序的特征描述信息建立对应地保存,
上述对象程序获取单元从上述前处理后程序存储部获取上述对象程序,
上述工具指定信息获取单元从上述前处理后程序存储部获取与由上述对象程序获取单元获取到的上述对象程序建立了对应的上述特征描述信息,作为上述工具指定信息。
6.根据权利要求2所述的程序分析/验证服务提供系统,其特征在于,
上述程序分析/验证服务提供系统连续地执行:使用上述程序分析/验证工具来分析、验证上述对象程序的处理;以及对通过该处理而获得的结果数据进行后处理的处理,
上述程序分析/验证服务提供系统还具备:结果数据存储部,其将由上述工具执行单元使用上述程序分析/验证工具来分析、验证上述对象程序而获得的结果数据与该结果数据的特征描述信息建立对应地保存,
而且,上述工具存储部将对上述结果数据进行后处理的后处理工具与该后处理工具的工具关联信息建立对应地保存,
上述工具指定信息获取单元从上述结果数据存储部获取与上述结果数据建立了对应的上述特征描述信息,作为上述工具指定信息,
上述工具提取单元基于由上述工具指定信息获取单元获取到的上述工具指定信息来检索上述工具关联信息,从保存在上述工具存储部中的多个后处理工具之中提取与相适合的工具关联信息建立了对应的后处理工具。
7.一种程序分析/验证服务提供系统的控制方法,使用程序分析/验证工具来分析、验证对象程序,其特征在于,
上述程序分析/验证服务提供系统具备:工具存储部,其保存有多个程序分析/验证工具,
上述程序分析/验证服务提供系统的控制方法包含:
对象程序获取步骤,获取对象程序;
工具提取步骤,从保存在上述工具存储部中的多个程序分析/验证工具之中提取用于分析、验证由上述对象程序获取步骤获取到的对象程序的程序分析/验证工具;
工具获取步骤,从上述工具存储部获取由上述工具提取步骤提取出的程序分析/验证工具;和
工具执行步骤,使用由上述工具获取步骤获取到的各程序分析/验证工具,来分析、验证由上述对象程序获取步骤获取到的对象程序。
8.一种控制程序,用于使计算机作为权利要求1或2所述的程序分析/验证服务提供系统的上述各单元而发挥功能。
9.一种计算机可读的记录介质,记录有权利要求8所述的控制程序。
10.一种程序分析/验证装置,构成权利要求1所述的程序分析/验证服务提供系统,其特征在于,
上述程序分析/验证装置具备:上述对象程序获取单元、上述工具获取单元以及上述工具执行单元。
11.一种程序分析/验证工具管理装置,构成权利要求1所述的程序分析/验证服务提供系统,其特征在于,
上述程序分析/验证工具管理装置具备:上述工具存储部以及上述工具提取单元。
12.一种数据处理服务提供系统,通过依次使用多个数据处理工具,来多阶段地对对象数据进行数据处理,其特征在于,
上述数据处理服务提供系统具备:
工具存储部,其将多个数据处理工具分别与各数据处理工具的工具关联信息建立对应地保存;
结果数据存储部,其将使用前阶段的数据处理工具进行数据处理而获得的结果数据与该结果数据的特征描述信息建立对应地保存;
结果数据获取单元,其从上述结果数据存储部获取上述结果数据;
工具指定信息获取单元,其从上述结果数据存储部获取与该结果数据建立了对应的上述特征描述信息,作为对用于数据处理由上述结果数据获取单元获取到的上述结果数据的数据处理工具进行指定的工具指定信息;
工具提取单元,其基于由上述工具指定信息获取单元获取到的上述工具指定信息来检索上述工具关联信息,从保存在上述工具存储部中的多个数据处理工具之中提取与相适合的工具关联信息建立了对应的数据处理工具;
工具获取单元,其从上述工具存储部获取由上述工具提取单元提取出的数据处理工具;和
工具执行单元,其使用由上述工具获取单元获取到的数据处理工具来数据处理由上述结果数据获取单元获取到的结果数据。
CN201280055921.7A 2011-11-15 2012-11-12 程序分析/验证服务提供系统及其控制方法、程序分析/验证装置、程序分析/验证工具管理装置 Active CN103930898B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011-249978 2011-11-15
JP2011249978 2011-11-15
PCT/JP2012/079304 WO2013073504A1 (ja) 2011-11-15 2012-11-12 プログラム解析・検証サービス提供システム、その制御方法、制御プログラム、コンピュータを機能させるための制御プログラム、プログラム解析・検証装置、プログラム解析・検証ツール管理装置

Publications (2)

Publication Number Publication Date
CN103930898A true CN103930898A (zh) 2014-07-16
CN103930898B CN103930898B (zh) 2016-10-12

Family

ID=48429562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280055921.7A Active CN103930898B (zh) 2011-11-15 2012-11-12 程序分析/验证服务提供系统及其控制方法、程序分析/验证装置、程序分析/验证工具管理装置

Country Status (9)

Country Link
US (1) US9400887B2 (zh)
EP (1) EP2782039B1 (zh)
JP (1) JP5540160B2 (zh)
CN (1) CN103930898B (zh)
BR (1) BR112014011612B1 (zh)
RU (1) RU2586016C2 (zh)
SG (1) SG11201402290VA (zh)
TW (1) TWI524206B (zh)
WO (1) WO2013073504A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108932429A (zh) * 2017-05-27 2018-12-04 腾讯科技(深圳)有限公司 应用程序的分析方法、终端及存储介质
CN113326513A (zh) * 2021-06-16 2021-08-31 百度在线网络技术(北京)有限公司 应用测试方法和装置、系统、电子设备、计算机可读介质

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510596B1 (en) 2006-02-09 2013-08-13 Virsec Systems, Inc. System and methods for run time detection and correction of memory corruption
JP2016534479A (ja) 2013-09-12 2016-11-04 ヴァーセック・システムズ・インコーポレーテッドVirsec Systems,Inc. マルウェアのランタイム中の自動検出
US10275333B2 (en) * 2014-06-16 2019-04-30 Toyota Jidosha Kabushiki Kaisha Risk analysis of codebase using static analysis and performance data
WO2015200511A1 (en) 2014-06-24 2015-12-30 Virsec Systems, Inc. System and methods for automated detection of input and output validation and resource management vulnerability
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
CN107077118B (zh) * 2014-09-30 2019-12-31 株式会社牧野铣床制作所 机床的控制装置以及机床
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
JP6916112B2 (ja) * 2014-11-21 2021-08-11 ブルヴェクター, インコーポレーテッドBluvector, Inc. ネットワークデータ特性評価のシステムと方法
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
JPWO2016117317A1 (ja) * 2015-01-22 2017-11-02 日本電気株式会社 ソフトウェア判定装置、ソフトウェア判定方法、ソフトウェア判定プログラム、ソフトウェア解析装置、及び、マルウェア診断装置
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9727365B2 (en) * 2015-04-12 2017-08-08 At&T Intellectual Property I, L.P. End-to-end validation of virtual machines
DE102015211308A1 (de) * 2015-06-19 2016-12-22 Robert Bosch Gmbh Werkzeugsystem für eine Montageanlage mit anwenderspezifischem Bericht und ein Verfahren für ein Werkzeugsystem einer Monateanlage
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
JP6919570B2 (ja) 2015-11-30 2021-08-18 日本電気株式会社 ソフトウェア解析装置、ソフトウェア解析方法、及び、ソフトウェア解析プログラム
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10002026B1 (en) * 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10528734B2 (en) * 2016-03-25 2020-01-07 The Mitre Corporation System and method for vetting mobile phone software applications
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
CA3027728A1 (en) 2016-06-16 2017-12-21 Virsec Systems, Inc. Systems and methods for remediating memory corruption in a computer application
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
JP6695437B2 (ja) * 2016-10-03 2020-05-20 株式会社日立製作所 管理計算機及びテスト環境決定方法
CA2977847A1 (en) * 2017-01-27 2018-07-27 Hootsuite Media Inc. Automated extraction tools and their use in social content tagging systems
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11138098B2 (en) * 2019-03-27 2021-10-05 At&T Intellectual Property I, L.P. Disk image selection in virtualized network environments
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
JP2021005250A (ja) * 2019-06-26 2021-01-14 コネクトフリー株式会社 実行コード提供方法およびソフトウェア開発システム
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1314638A (zh) * 2001-04-29 2001-09-26 北京瑞星科技股份有限公司 检测和清除已知及未知计算机病毒的方法、系统和介质
JP2007025812A (ja) * 2005-07-12 2007-02-01 Nec Corp 端末セキュリティチェックサービス提供方法及びそのシステム
US20070240216A1 (en) * 2006-03-31 2007-10-11 Lenovo (Singapore) Pte. Ltd. Hypervisor area for email virus testing
CN101661425A (zh) * 2008-08-26 2010-03-03 国际商业机器公司 测试覆盖分析方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09288592A (ja) * 1996-04-23 1997-11-04 Nec Corp 情報処理システムの保守診断プログラム管理方式
JP2002108778A (ja) * 2000-09-27 2002-04-12 Japan Business Computer Co Ltd ウイルスチェックサーバ及びウイルスチェック方法
US6944775B2 (en) 2001-07-26 2005-09-13 Networks Associates Technology, Inc. Scanner API for executing multiple scanning engines
US7424706B2 (en) 2003-07-16 2008-09-09 Microsoft Corporation Automatic detection and patching of vulnerable files
US20060161982A1 (en) 2005-01-18 2006-07-20 Chari Suresh N Intrusion detection system
US7734607B2 (en) * 2005-02-01 2010-06-08 University Of Massachusetts Universal visualization platform
US20070261124A1 (en) 2006-05-03 2007-11-08 International Business Machines Corporation Method and system for run-time dynamic and interactive identification of software authorization requirements and privileged code locations, and for validation of other software program analysis results
US7778987B2 (en) 2006-10-06 2010-08-17 Microsoft Corporation Locally storing web-based database data
JP4607918B2 (ja) * 2007-03-27 2011-01-05 株式会社東芝 プログラム検証仕様生成装置、方法およびプログラム
JP5440973B2 (ja) * 2009-02-23 2014-03-12 独立行政法人情報通信研究機構 コンピュータ検査システム、コンピュータ検査方法
JP5119185B2 (ja) * 2009-03-10 2013-01-16 Kddi株式会社 通信端末、データ検査サーバおよびデータ検査システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1314638A (zh) * 2001-04-29 2001-09-26 北京瑞星科技股份有限公司 检测和清除已知及未知计算机病毒的方法、系统和介质
JP2007025812A (ja) * 2005-07-12 2007-02-01 Nec Corp 端末セキュリティチェックサービス提供方法及びそのシステム
US20070240216A1 (en) * 2006-03-31 2007-10-11 Lenovo (Singapore) Pte. Ltd. Hypervisor area for email virus testing
CN101661425A (zh) * 2008-08-26 2010-03-03 国际商业机器公司 测试覆盖分析方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108932429A (zh) * 2017-05-27 2018-12-04 腾讯科技(深圳)有限公司 应用程序的分析方法、终端及存储介质
CN108932429B (zh) * 2017-05-27 2023-02-03 腾讯科技(深圳)有限公司 应用程序的分析方法、终端及存储介质
CN113326513A (zh) * 2021-06-16 2021-08-31 百度在线网络技术(北京)有限公司 应用测试方法和装置、系统、电子设备、计算机可读介质
CN113326513B (zh) * 2021-06-16 2022-09-02 百度在线网络技术(北京)有限公司 应用测试方法和装置、系统、电子设备、计算机可读介质

Also Published As

Publication number Publication date
RU2586016C2 (ru) 2016-06-10
CN103930898B (zh) 2016-10-12
JPWO2013073504A1 (ja) 2015-04-02
EP2782039A4 (en) 2015-08-26
BR112014011612B1 (pt) 2021-08-31
SG11201402290VA (en) 2014-07-30
US20140304815A1 (en) 2014-10-09
RU2014123633A (ru) 2015-12-20
EP2782039B1 (en) 2021-10-13
EP2782039A1 (en) 2014-09-24
WO2013073504A1 (ja) 2013-05-23
BR112014011612A2 (pt) 2017-05-30
JP5540160B2 (ja) 2014-07-02
TWI524206B (zh) 2016-03-01
US9400887B2 (en) 2016-07-26
TW201331779A (zh) 2013-08-01

Similar Documents

Publication Publication Date Title
CN103930898A (zh) 程序分析/验证服务提供系统及其控制方法、控制程序、用于使计算机发挥功能的控制程序、程序分析/验证装置、程序分析/验证工具管理装置
CN109062780B (zh) 自动化测试用例的开发方法及终端设备
CN101908015B (zh) 一种基于构件生成测试案例的装置及方法
CN110888720A (zh) 任务处理方法、装置、计算机设备及存储介质
CN112070608B (zh) 信息处理方法、装置、介质及电子设备
CN103729169A (zh) 用于确定待迁移文件范围的方法和装置
CN110019116A (zh) 数据追溯方法、装置、数据处理设备及计算机存储介质
WO2019123703A1 (ja) データ分析支援装置、データ分析支援方法およびデータ分析支援プログラム
CN201435074Y (zh) 一种基于构件生成测试案例的装置
CN116126291A (zh) 基于信息管理的快速开发方法、装置、设备及存储介质
CN111008189A (zh) 一种动态数据模型构建方法
CN107885644A (zh) 一种基于Linux系统下快速查看BIOS默认值的方法
CN102880926A (zh) 业务信息数据的审计方法和装置
CN111933228B (zh) 用于临床研究中的项目分发与管理系统的实现方法和装置
US20170199729A1 (en) Application developing method and system
CN109542986B (zh) 网络数据的要素归一化方法、装置、设备及存储介质
US11610151B2 (en) Distribution system, data management apparatus, data management method, and computer-readable recording medium
CN110033273B (zh) 用户身份识别方法以及装置
CN111859985A (zh) Ai客服模型测试方法、装置、电子设备及存储介质
CN110765327A (zh) 数据分析方法、装置、计算机装置及存储介质
CN113704483B (zh) 冠状病毒知识图谱生成方法、装置、电子设备及介质
CN116212398B (zh) 一种基于数据中台的游戏管理方法、装置、设备及介质
CN110704291B (zh) 基于图标属性识别的用户流向获取方法、装置和电子设备
CN114385640A (zh) 业务数据处理方法、系统、计算机设备及存储介质
KR20230089724A (ko) 특허조사분석 자동화 업무 방법, 장치 및 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Saitama Prefecture, Japan

Applicant after: State-run research and development legal person JST

Address before: Saitama Prefecture, Japan

Applicant before: Independent Administrative Corporation Japan Science & Tech Corp.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant