程序分析系统和方法

文档序号:6381196阅读:230来源:国知局
专利名称:程序分析系统和方法
技术领域
本发明在对计算机程序的行动进行分析的程序分析系统中,对程序动作的执行环境的时刻管理功能进行操作,记录使执行环境内的时间经过速度变化为比实际时间高速或低速时的程序的活动。
背景技术
作为不使用源代码而对计算机程序的行动进行分析的方法,有静态分析和动态分析的2种。静态分析通过对程序的文件中记述的指令代码进行分析,来调查动作。另一方面,在动态分析中,通过在计算机上执行程序,观测当时的动作,来调查行动。根据程序,为了阻止静态分析,研究了各种防御策略。特别针对以前的恶意软件(malware:计算机病毒、间谍软件等非法程序),为了阻止静态分析,大多对文件构造进行反解读、加密,在基于静态分析的调查中,产生花费时间长、需要熟练的技术人员的问题。另一方面,与静态分析相比,动态分析对实际的动作进行观测,调查行动,因此难以受到文件反解读、加密的影响,能够在比较短的时间内完成分析。与此相伴,研究开发出了专利文件1、专利文件2等对动态分析的处理进行自动化而实现高效的分析的系统。在这些系统中,在执行环境中执行恶意软件,取得并分析在一定时间内观测到的行动(例如恶意软件的文件访问、网络通信)。现有技术文件专利文件专利文件1:特开2009-181335号公报专利文件2:特开2009-37545号公报非专利文件非专利文件IIEEE International Conference of Communications2008Proceedings, “Malware Behavior Analysis in Isolated Miniature Network forRevealingMalware s Network Activity,,

发明内容
但是,根据程序,有时在启动后经过一定时间后,或者只在特定的日期时间,进行实质的活动。另外,如Y2K问题那样,有时在超过特定的日期时间时引起误动作。在通过上述系统对这样的程序进行分析的情况下,存在分析花费很多时间、或分析失败的问题。在非专利文件I中,为了使分析对象的恶意软件的活动停止一定时间而使所执行的函数无效,由此谋求分析高效化。但是,该方法在执行函数后验证时间经过,或者只在特定的日期时间对活动的恶意软件无效。本发明的目的在于:提供一种对启动后一定时间后、或只在特定日期时间活动的程序进行高效的分析的系统和方法。
在所揭示的程序分析系统中,是一边调整程序执行环境的时间经过速度一边进行程序的分析的装置。程序分析系统的主要功能部件是分析管理部、检测体执行部、活动记录部、活动分析部的4个。在此,“检测体”是指分析对象的恶意软件。分析管理部设定执行环境中的时间经过速度和程序执行开始时间、执行结束时间等分析条件。检测体执行部依照分析管理部的决定,调整时间经过速度和程序执行开始时间,到执行结束时间为止执行程序。活动记录部监视执行环境,取得程序的活动记录。活动分析部对活动记录进行分析,了解程序的行动。分析管理部根据分析结果,再设定分析条件,进行再分析。根据本发明,实现对在启动后一定时间后、或只在特定的日期时间活动的程序进行的高效的分析。


图1是表示用于实施本发明的系统的整体结构的图。图2是表示系统管理装置的物理结构的图。图3是表示系统管理装置的逻辑结构的图。图4是表示检测体执行装置的物理结构的图。图5是表示检测体执行装置的逻辑结构的图。图6是表示计时器装置的物理结构的图。图7是表示活动分析装置的物理结构的图。图8是表示活动分析装置的逻辑结构的图。图9是表示分析方案DB的记录例子的图。图10是表示活动记录DB的记录例子的图。图11是表示再分析规则DB的记录例子的图。图12是分析结果DB的记录例子的图。图13是表示记录规则DB的记录例子的图。图14是表示分析规则DB的记录例子的图。图15是表示管理实绩管理处理的流程的图。图16是表示检测体执行处理的流程的图。图17是表示计时器装置与时钟部的关系的图。图18是表示时刻经过处理的调整处理的流程的图。图19是表示活动记录处理的流程的图。图20是表示活动分析处理的流程的图。图21A是表示发报器的脉冲与发向CPU的时钟信号的对应关系的图。图21B是表示发报器的脉冲与发向CPU的时钟信号的对应关系的图。图22是表示发报器的脉冲与发向CPU的时钟信号的对应关系下的各种设定模式的图。
具体实施例方式以下,根据附图所示的实施例,说明本发明的实施方式。在本实施例中,说明由3种装置经由网络协作地对从启动到活动为止的时间、活动时刻不明的恶意软件进行分析的系统。在说明本发明后,说明变更例子。(系统结构)图1是表示用于实施本发明的系统的整体结构的图。作为构成本系统的要素,有系统管理装置100、检测体执行装置200、活动分析装置300、通信网络400的3个。系统管理装置100由I个以上的公知的个人计算机、工作站等计算机构成。系统管理装置100对通过本系统进行的恶意软件分析处理进行管理。另外,决定成为分析对象的恶意软件(以后称为检测体)、指定在执行环境中开始分析时设定的时刻的分析开始时间、指定结束分析的时刻的分析结束时间、时间经过速度,并对检测体执行装置200发出指示。将在后面详细说明系统管理装置100的结构和与其他装置的通信。检测体执行装置200由I个以上的公知的个人计算机、工作站等计算机构成。检测体执行装置200依照从系统管理装置100发送的指令,在执行环境中执行检测体。另外,在执行时,对文件存取、网络通信等的检测体的活动信息进行记录。将在后面详细说明检测体执行装置200的结构和与其他装置的通信。活动分析装置300由I个以上的公知的个人计算机、工作站等计算机构成。活动分析装置300对检测体执行装置200记录的检测体的活动信息进行分析,作成表示检测体进行了怎样的活动那样的活动记录。系统管理装置100参照活动记录,决定再分析的有无、步骤。将在后面详细说明活动分析装置300的结构和与其他装置的通信。通信网络400 可以是 WAN (World Area Network:广域网)、LAN (LocalAreaNetwork:局域网)、便携电话、PHS等公用线路网。图1的线I表示系统管理装置100与检测体执行装置200之间的信息的逻辑流程。同样,线2表示检测体执行装置200与活动分析装置300之间的信息的逻辑流程,线3表示活动分析装置300与系统管理装置100之间的信息的逻辑流程。线1、线2、线3都使用通信网络400作为物理的信息传送单元。另外,并不必须在各装置之间直接进行物理的信息传送,也可以经由外部存储装置等进行。经由线I将检测体10和分析方案20这2种信息从系统管理装置100传送到检测体执行装置200。在分析方案20中,包含检测体执行装置200中的时间经过速度30、分析开始时刻40、分析结束时刻50。接收到分析方案20的检测体执行装置将执行环境的时刻设定为分析开始时刻40,将分析环境的时刻经过速度设定为时刻经过速度30。另外,到执行环境的时刻达到分析结束时刻50为止,进行分析。系统管理装置100同时发送I个以上的分析方案20。经由线2,将活动记录60从检测体执行装置200传送到活动分析装置300。同样,经由线3,将分析结果70从活动分析装置300传送到系统管理装置100。另外,在图1中,分别将系统管理装置100、检测体执行装置200、活动分析装置300设为不同的处理装置结构,但也可以通过I个处理装置实现它们。另外,也可以是以下的结构,即检测体执行装置200、活动分析装置300分别是多台,由系统管理装置100对它们进行管理。图2是表示系统管理装置100的物理结构的图。系统管理装置100由装置主体110、输入输出装置180构成。装置主体110具备CPU120、存储器130、接口 140、外部存储装置150、总线160、检测体保存装置170。CPU 120是用于执行处理的计算装置。存储器130是包含将由CPU120执行的指令组记述为程序的数据的存储介质。在存储器130中,包含系统管理程序131。另外,通过由CPU120执行该系统管理程序131,来进行检测体分析的管理。将在后面说明具体的管理步骤。接口 140是用于将系统管理装置100与通信网络400连接的通信装置。LAN卡等通信设备与之对应。接口 140在图中有时记述为IF。外部存储装置150由HDD (硬盘驱动器)等存储介质构成,存储分析方案DB151、活动记录DB152、分析结果DB153、再分析规则DB154。将在后面说明这些DB的具体内容。总线160将CPU120、存储器130、IF140、外部存储装置150、检测体保存装置170、输入输出装置180连接起来。检测体保存装置170由HDD等存储介质构成,保存分析中的检测体10。输入输出装置180是用于针对系统管理装置100由管理者输入数据、输出系统管理装置100内的数据的装置。作为输入输出装置的一个例子,有键盘、鼠标、显示器。将在后面说明具体的输入输出内容。图3是表示系统管理装置100的功能结构、与物理的各装置的关系的图。CPU120构成为包含分析管理部121。通过CPU120执行系统管理程序131来实现分析管理部121的功能。分析管理部121管理检测体10的分析状况,并且向检测体执行装置200发送分析方案20,指示检测体执行方法。另外,从活动分析装置300接收分析结果70,判定再分析的
有无、方法。图4是表示检测体执行装置200的物理结构的图。检测体执行装置200由装置主体210、输入输出装置290构成。装置主体210具备CPU220、存储器230、接口 240、外部存储装置250、总线260、计
时器装置270、映象保存装置280。CPU220是用于执行处理的计算装置。存储器230是包含将由CPU220执行的指令组记述为程序的数据的存储介质。在存储器230中,包含检测体执行程序231、活动记录程序232、时钟程序233。通过由CPU220执行检测体执行程序231,来一边调整时间经过速度,一边执行检测体10。通过由CPU220执行活动记录程序232,取得检测体10的活动记录60。另外,通过由CPU220执行时钟程序233,来向检测体10、检测体执行程序231、活动记录程序232提供检测体执行装置200的时刻信息。将在后面详细说明各程序的具体管理步骤。接口 240是用于将检测体执行装置200与通信网络400连接的通信装置。LAN卡等通信设备与之对应。接口 240在图中有时记述为IF。外部存储装置250由HDD等存储介质构成,存储记录规则DB251。在记录规则DB中,记述有活动记录程序232记录检测体10的怎样的活动。将在后面详细说明DB的具体内容。总线260将CPU220、存储器230、IF240、外部存储装置250、计时器装置270、映象保存装置280、输入输出装置290连接起来。
计时器装置270是包含以一定周期振动的元件的硬件,根据所观测的振动数来测定数据经过。另外,每经过一定时间,向CPU220发送信号。CPU220通过接收信号,能够知道时间经过。将在后面详细说明计时器装置270。映象保存装置280由HDD等存储介质构成,存储执行环境映象281。执行环境映象281是包含一般的操作系统的构成信息的文件,如果在CPU220上执行,则提供用于执行检测体10的软件环境。另外,映象保存装置280暂时保存与在检测体10执行过程中作成、变更了的文件、注册项有关的信息。输入输出装置290是用于针对检测体执行装置200由管理者输入数据、输出检测体执行装置200内的数据的装置。作为输入输出装置的一个例子,有键盘、鼠标、显示器。将在后面说明具体的输入输出内容。图5是表示检测体执行装置200的功能结构、与物理的各装置的关系的图。CPU220构成为包含检测体执行部221、活动记录部222、时钟部223。通过由CPU220执行检测体执行程序231,来实现检测体执行部221的功能。通过由CPU220执行活动记录程序232,来实现活动记录部222的功能。通过由CPU220执行时钟程序233,来实现时钟部223的功能。检测体执行部221依照分析方案20执行从系统管理装置100接收到的检测体10。这时,对计时器装置270进行访问,来调整时间经过速度。将在后面详细说明。活动记录部222对由检测体执行部221执行的检测体10的活动进行记录,并作为活动记录60发送到活动分析装置300。将在后面详细说明。时钟部223经由总线260接收来自计时器装置270的信号,决定检测体执行装置200的当前时刻。将在后面详细说明决定当前时刻的步骤。另外,检测体10通过参照时钟装置223,来掌握当前时刻。例如,在将检测体10编程为在2010年12月31日O时O分O秒开始特定的活动的情况下,在时钟部223中的时刻成为2010年12月31日O时O分O秒时,开始活动。在图6中表示计时器装置270的物理结构。计时器装置270由振荡器271、计数寄存器272、计数最大值寄存器273、总线274构成。振荡器271是水晶等具有以一定周期振动(产生脉冲)的特性的元件。振荡器271在每次振动时,经由总线274向计数寄存器272提供信号。例如,在是振动周期为IM(=1000000) Hz的振荡器的情况下,以I微秒一次的比例进行振动,向计数寄存器272提供信号。计数寄存器272是能够存储一定位数的数值的元件。计数寄存器272在从振荡器271接收到信号时,将所存储的值加I。计数寄存器272在每次将内部值加I时,经由总线274与存储在计数最大寄存器273中的值进行比较。然后,在计数寄存器272的值与计数最大寄存器273内的值相同的情况下,经由总线260,向CPU220发送信号(时钟信号)。发送信号后,计数寄存器272的值被复位为O。计数最大寄存器273是存储有特定的值的元件,如上所述,与计数寄存器272内的值进行比较。作为一个例子,在振荡器271的振动周期为1MHz,计数最大寄存器273的值为10000的情况下,I秒内100 (=1M/10000)次地,计数寄存器272的值与计数最大寄存器273的值成为相等,并向CPU220发送信号。
另外,作为计时器装置270的结构,在每次振荡器271振动时,也可以不是将计数寄存器272的值加1,而是加上特定的值。在相加的情况下,所加的值越大,向CPU220发送信号的期间越短。例如,在振荡器271的振动周期为IMHz,计数最大寄存器273的值为10000的情况下,如果计数寄存器272的相加值为+2,则I秒内产生50次信号。图21A和图21B图示了如上所述那样的振荡器的脉冲与发向CPU的时钟的对应关系。在图21A和图21B中,图示了将计数相加值设为α,将计数最大值设为β,而改变α和β的组合的情况。图21Α表示将计数相加值α固定为α=1,使计数最大值β可变时的对应关系。图21Β表示将计数最大值β固定为β=4,使计数相加值α可变时的对应关系。图21所示的斜率不同的若干个虚线是图中的阶梯函数的包络线(envelope),表示脉冲(Tp)与时钟(Tc)的对应关系Tc= (α/β)Τρ。其中,α ( β,通过按照α与β的比决定对应关系,改变该比例,能够实现时钟的“高速化”、或“低速化”。因此,图21Α的β =2和图2IB的α =2的对应关系相同(都是在增加2脉冲时)。另外,在通过对计数寄存器272的值进行减法运算而产生时钟的情况下,在计数寄存器272的值每次成为O时,发送信号。另外,在发送信号后,计数寄存器272的值被复位为计数最大值寄存器273的值。另外,在停止处理的进行时,停止计时器装置270的计数处理。图22图示了以上所述那样的振荡器的脉冲与发向CPU的时钟的对应关系下的各种设定模式。即,指定了作为程序的通常动作时的对应关系的“通常”、使时钟比振荡器的脉冲快地前进的“高速化”、停止计时器动作并停止处理的前进的“停止”、将时钟的值变更为规定的值而不连续地变更处理的前进的“设定变更”、使时钟比振荡器的脉冲慢地前进的“低速化”的各设定模式。总线260将振荡器271、计数寄存器272、计数最大值寄存器273连接起来。图7是表示活动分析装置300的物理结构的图。活动分析装置300由装置主体310、输入输出装置370。装置主体310具备CPU320、存储器330、接口 340、外部存储装置350、总线360。CPU320是用于执行处理的计算装置。存储器330是包含将由CPU320执行的指令组记述为程序的数据的存储介质。在存储器330中,包含活动分析程序331。另外,通过由CPU320执行活动分析程序331,来进行活动记录60的分析。将在后面详细说明具体分析步骤。接口 340是用于将活动分析装置300与通信网络400连接起来的通信装置。LAN卡等通信设备与之对应。接口 340在图中有时记述为IF。外部存储装置350由HDD(硬盘驱动器)等存储介质构成,存储分析规则DB351。将在后面说明这些DB的具体内容。总线360将CPU320、存储器330、IF340、外部存储装置350、输入输出装置370连
接起来。输入输出装置370是用于针对活动分析装置300由管理者输入数据、输出系统管理装置100内的数据的装置。作为输入输出装置的一个例子,有键盘、鼠标、显示器。将在后面说明具体的输入输出内容。
图8是表示活动分析装置300的功能结构、与物理的各装置的关系的图。CPU320构成为包含活动分析部321。通过CPU120执行活动分析程序331来实现活动分析部321的功能。活动分析部321对检测体执行装置200作成的记录活动60的内容进行分析,输出检测体10的分析结果70。将在后面详细说明。(处理说明)在图9以后,表示包含在本系统中的DB的结构例子和各功能部件的流程图。图9以后的结构例子设想了按照以下的步骤的进行检测体10的分析。在2011/9/15 17:00:00,系统管理装置100开始检测体10的分析。在分析中,向检测体执行装置200指示,使得按照实际时间的72倍速的时间经过速度,对检测体A(所对应的处理)执行从2012/1/1 00:00:00到2012/1/1 23:59:59的48小时的期间的处理。即,在40分钟(48/72=2/3小时)内执行48小时的期间的处理。在执行完成后,由活动分析装置300对活动记录进行分析,输出分析结果。如果参照分析结果,则存在分析失败的期间,因此,系统管理装置100进行检测体10的再分析。在再分析中,向检测体执行装置200指示,使得按照与实际时间相同的时间经过速度(I倍速),在从2012/1/1 11:55:00到2012/1/1 12:00:05 的期间、从 2012/1/2 11:55:00 到 2012/1/2 12:00:05 的期间,执行检测体A。由于再分析成功,所以结束对检测体A的分析。(各种表)图9是表示分析方案DB151的结构的图。分析方案DB151内的各记录存储与某检测体对应的检测体分析的方法、分析状况。在系统管理装置100决定分析方案的时刻,将各记录保存到分析方案DB151内。分析管理ID501被用于唯一地识别分析方案DB151内的记录。因此,各分析管理ID501的值在分析方案DB151内是唯一的。记录作成时刻502表示作成各记录的时刻。对记录作成时刻502适用系统管理装置100内的时刻。检测体ID503是用于唯一地识别在本系统中分析的各检测体的编号。在对不同的记录设定了同一检测体ID503的情况下,表示多次按照不同的条件对同一检测体进行分析的情况。分析开始时刻504用检测体执行装置200内的时刻表示检测体执行装置200开始执行检测体10的时刻。因此,有时输入与记录作成时刻502有很大不同的值。分析结束时刻505用检测体执行装置200内的时刻表示检测体执行装置200结束检测体10的执行的时刻。因此,有时输入与记录作成时刻502有很大不同的值。时间经过速度506将执行检测体的检测体执行装置200内的计时器装置270所管理的时间的经过速度表示为通常的时间经过速度的倍率。时间经过速度506取正数。例如,在时间经过速度506=10倍速的情况下,在通常的时间流动下经过I秒的期间,在计时器装置270所管理的时间内经过了 10秒。同样,在时间经过速度506=0.1倍速的情况下,在通常的时间流动下经过I秒的期间,在计时器装置270所管理的时间内经过了 0.1秒。在本实施例中,不指定检测体执行速度506的下限值和上限值、以及颗粒度(0.1刻度等)。但是,也可以根据检测体执行装置200的计时器装置270的性能,来确定下限值或上限值、以及颗粒度。分析状况507表示该分析方案的执行状况。作为分析状况507可取的值,是“结束”或“分析中”。在“结束”的情况下,该分析方案的执行和分析已经结束。在“分析中”的情况下,该分析方案是检测体正在执行、或正在分析执行结果。在图9中,表示3种分析方案的记录的例子。分析管理ID=I的记录是记录作成时间为2011/9/15 17:00、分析对象的检测体为检测体A。系统管理装置100向检测体执行装置200指示,使得在从2012/1/1 00:00:00到2012/1/223:59:59的48小时内执行检测体A。另外,作为时间经过速度506,指定了 72倍速。因此,实际时间中的检测体执行时间为40分钟(=48/72 X 60)。分析状况507成为“结束”。分析管理ID=2的记录是记录作成时间为2011/9/151 7:50、分析对象的检测体为与分析ID=I的记录相同的检测体A。系统管理装置100向检测体执行装置200指示,使得在从2012/1/1 11:55:00到2012/1/1 12:05:00的10分钟内执行检测体A。另外,作为时间经过速度506,指定了 I倍速(=与实际时间的经过速度相同)。因此,实际时间中的检测体执行时间为10分钟。分析状况507成为“结束”。分析管理ID=3的记录是记录作成时间为2011/9/15 17:50、分析对象的检测体为与分析ID=I的记录相同的检测体A。系统管理装置100向检测体执行装置200指示,使得在从2012/1/2 11:55:00到2012/1/2 12:05:00的10分钟内执行检测体A。另外,作为时间经过速度506,指定了 I倍速(=与实际时间的经过速度相同)。因此,实际时间中的检测体执行时间为10分钟。分析状况507成为“执行中”。图10是表示活动记录DB152的结构的图。在活动记录DB152中,记录了在通过检测体执行装置200执行检测体10时由活动记录部222取得的检测体10的活动记录60。具体地说,在后述的记录规则DB251中指定记录检测体10的怎样的活动记录。活动记录ID601被用于唯一地识别活动记录DB152内的记录。因此,各活动记录ID601的值在活动记录DB152内是唯一的。分析管理ID602用分析管理ID501指定活动记录DB152内的各记录所对应的分析方案DB151内的记录。即,该记录是在执行中记录了由分析管理ID602指定的分析方案所得的检测体10的活动记录。活动记录时刻603将各记录了各记录的时刻记录为检测体执行装置200内的时亥IJ。因此,有时与实际时间有很大不同。活动种类604表示记录了哪个种类的活动。在图10中,作为例子,表示“IP(Internet Protocol)分组”和“桌面画面”。“IP分组”表示检测体10所发送接收的IP分组。“桌面画面”表示显示在输入输出装置290上的描绘了包含检测体10在内的执行环境的图像。除此以外,作为活动种类604的变更例子,可以考虑检测体10所调用的“函数”、检测体10在执行中作成的“作成文件”、“作成注册项”等。活动数据605表示实际记录的数据。在活动种类604为“IP分组”的情况下,对应的活动数据605为IP分组的二进制数据。在活动种类604为“桌面画面”的情况下,对应的活动数据605为桌面画面的图像数据。
在图10中,表示了活动记录DB152的记录的6种例子。活动记录ID601=1的记录是分析管理ID602=1的执行时所取得的活动记录。活动记录时刻603是2011/01/01 12:
00:00,活动种类604是“ IP分组”、活动数据605是“AAAAA……”。活动记录ID601=2的记录与上述一样,是分析管理ID602=1的执行时所取得的活动记录。活动记录时刻603是2011/01/01 18:00:00,活动种类604是“桌面画面”、活动数据 605 是 “BBBBB......”。活动记录ID601 = 3的记 录与上述一样,是分析管理ID602=1的执行时所取得的活动记录。活动记录时刻603是2011/01/02 12:00:00,活动种类604是“IP分组”、活动数据 605 是 “ CCCCC......”。活动记录ID601 = 4的记录与上述一样,是分析管理ID602=1的执行时所取得的活动记录。活动记录时刻603是2011/01/02 18:00:00,活动种类604是“桌面画面”、活动数据 605 是 “DDDDD......”。活动记录ID601 = 5的记录是分析管理ID602=2的执行时所取得的活动记录。活动记录时刻603是2011/01/01 12:00:00,活动种类604是“IP分组”、活动数据605是“EEEEE......”。活动记录ID601=6的记录与上述一样,是分析管理ID602=3的执行时所取得的活动记录。活动记录时刻603是2011/01/02 12:00:00,活动种类604是“IP分组”、活动数据 605 是 “FFFFF......”。图11是表示分析结果DB153的结构的图。分析结果DB153保存活动分析装置300作成的分析结果70。各记录表示活动分析装置300的分析结果所示的检测体10进行的活动的内容和活动时间。根据活动记录DB152进行分析,但活动记录DB152内的记录与分析结果DB153内的记录并不必须一对一对应。例如,如果也有时根据I个活动记录的记录作成多个分析结果记录,则也有时根据多个分析结果记录作成一个分析结果记录。分析结果ID701被用于唯一地识别分析结果DB153内的记录。因此,分析结果ID701的值在分析结果DB153内是唯一的。分析管理ID702用分析管理ID501指定分析结果DB152内的各记录所对应的分析方案DB151内的记录。即,该记录是对在执行中作成了由分析管理ID702指定的分析方案所得的活动记录进行分析的结果。记录作成时刻703用活动分析装置300内的时刻记录作成该记录的时刻。活动开始时刻704用执行检测体10时的检测体执行装置200内的时刻记录该记录所示的活动开始的时刻。因此,有时与实际时间有很大不同。活动开始时刻705用执行检测体10时的检测体执行装置200内的时刻记录该记录所示的活动结束的时刻。因此,有时与实际时间有很大不同。活动内容706表示分析结果所得到的检测体10的活动内容。检测体属性707表示根据活动内容706所得的检测体10的属性、即检测体分类为哪个恶意软件的组。在无法根据活动内容706决定检测体属性707的情况下,记录“不明”。分析成功与否708表示该记录所示的分析是否成功。在分析成功的情况下,记载“成功”,在分析失败的情况下,记载“失败”。根据活动内容706,并根据是否能够决定检测体属性707等,来决定分析的成功与否。在分析成功与否708为“失败”的情况下,有时系统管理装置100改变分析方案,进行再分析。在图11中,表示分析结果DB153的记录的6种例子。分析结果ID701=1的记录是分析管理ID702=1的分析方案的结果所作成的记录。记录的作成时刻是2011/09/15 17:40:08。根据该记录的分析内容706,在2011/1/1 12:
00:00到2011/1/1 12:00:00的期间,从检测体执行装置200的IP地址(127.0.0.1)向IP地址为192.168.0.1的另一个终端的TCP (传输控制协议)的80号端口试着进行连接并失败。因此,检测体属性707为“不明”,分析成功与否708为“失败”。分析结果ID701=2的记录是分析管理ID702=1的分析方案的结果所作成的记录。记录的作成时刻是2011/09/15 17:40:08。根据该记录的分析内容706,在2011/1/1 18:00:00到2011/1/1 18:01:00的期间,向用户显示要求存入的会话框。这是“伪反病毒软件”这种恶意软件固有的活动。因此,检测体属性707为“伪反病毒软件”,分析成功与否708为“成功”。分析结果ID701=3的记录是分析管理ID702=1的分析方案的结果所作成的记录。记录的作成时刻是2011/09/15 17:40:08。根据该记录的活动内容706,在2011/1/2 12:
00:00到2011/1/2 12:00:00的期间,从检测体执行装置200的IP地址(127.0.0.1)向IP地址为192.168.0.1的另一个终端的TCP的80号端口试着进行连接并失败。因此,检测体属性707为“不明”,分析成功与否708为“失败”。分析结果ID701 = 4的记录是分析管理ID702=1的分析方案的结果所作成的记录。记录的作成时刻是2011/09/15 17:40:08。根据该记录的活动内容706,在2011/1/218:00:00到2011/1/2 18:01:00的期间,向用户显示要求存入的会话框。因此,检测体属性707为“伪反病毒软件”,分析成功与否708为“成功”。分析结果ID701 = 5的记录是分析管理ID702=2的分析方案的结果所作成的记录。记录的作成时刻是2011/09/15 18:00:08。根据该记录的活动内容706,在2011/1/112:00:00到2011/1/1 12:01:00的期间,从检测体执行装置200的IP地址(127.0.0.1)向IP地址为192.168.0.1的另一个终端的TCP的80号端口,由具有与外部进行收发的功能的计算机病毒“漫游”这类恶意软件进行了 “C&C通信”。因此,检测体属性707为“漫游”,分析成功与否708为“成功”。分析结果ID701=6的记录是分析管理ID702=3的分析方案的结果所作成的记录。记录的作成时刻是2011/09/15 18:00:08。根据该记录的活动内容706,在2011/1/2 12:
00:00到2011/1/2 12:01:00的期间,从检测体执行装置200的IP地址(127.0.0.1)向IP地址为192.168.0.1的另一个终端的TCP的80号端口,进行了 “C&C通信”。因此,检测体属性707为“漫游”,分析成功与否708为“成功”。图12是表示再分析规则DB154的结构的图。再分析规则DB154被用于系统管理装置100按照分析结果DB153的内容判定是否需要进行检测体10的再分析。各记录由分析结果DB153的记录应该满足的条件与条件满足时的再分析有无之间的对应关系构成。再分析规则ID801用于唯一地识别各记录。因此,再分析规则ID801的值在再分析规则DB 154中是唯一的。分析结果条件802表示在应用再分析规则时分析结果DB153的记录应该满足的条件。条件表示为使用了分析结果DB153的记录的各列、从该记录参照的分析方案DB151的记录的各列的逻辑式。再分析判定803定义了在分析结果DB153的记录满足分析结果条件802时是否进行再分析。再分析判定803的值取“需要”或“不需要”的2值。在“需要”的情况下,进行再分析。在“不需要”的情况下,不进行再分析。再分析方案804在再分析判定803为“必要”时再次决定新作成的分析方案20。具体地说,一边参照分析结果DB153的记录的值,一边决定新追加的分析方案DB151的记录的各列应该取的值。另外,对于再分析判定803为“不需要”的记录,再分析方案804为空白。在图12中,表示再分析规则DB154的记录的3种例子。在分析结果条件802为分析成功与否708= “失败”、并且时间经过速度506比一倍速大的情况下,应用再分析规则ID=I的记录。由于再分析判定803为“需要”,所以进行再分析。在再分析方案804中,指定以下这样的分析方案20,即时间经过速度506为一倍速,分析开始时刻504为活动开始时刻704的值-5分钟,分析结束时刻505为活动结束时刻705的值+5分钟。在分析结果条件802为分析成功与否708=“失败”、并且时间经过速度506为一倍速以下的情况下,应用再分析规则ID=2的记录。在该情况下,再分析判定803为“不需要”,因此不进行再分析。由此,再分析方案804为空白。在分析结果条件802为分析成功与否708#成功”的情况下,应用再分析规则ID=3的记录。在该情况下,再分析判定803为“不需要”,因此不进行再分析。由此,再分析方案804为空白。图13是表示记录规则DB251的结构的图。记录规则DB251决定了由活动记录部222记录检测体10的活动中的哪个。记录规则ID901被用于唯一地识别记录规则DB251的记录。因此,记录规则ID901的值在记录规则DB251中是唯一的。记录条件902指定在检测体10的活动满足怎样的条件时记录活动。记录内容903指定具体记录的信息的内容。活动记录部222具有:能够判定检测体10是否正在进行与记录条件902符合的活动的功能;能够记录由记录内容903指定的信息的功能。在图13中,表示记录规则DB251的记录的2种例子。记录规则ID901=1的记录是在记录条件902为“分组发送时”时,如记录内容903所示那样记录“分组内数据”。具体地说,活动记录部222通过观测IF240能够观测满足记录条件902的活动。进而,通过从IF240取得分组数据,能够取得记录条件903所示的信息。记录规则ID901=2的记录是在记录条件902为“桌面画面更新时”时,如记录内容903所示那样记录“桌面画面的图像”。具体地说,记录活动部222通过观测输入输出装置290能够观测满足记录条件902的活动。进而,通过从输入输出装置290取得图像数据,能够取得记录内容903所示的信息。另外,作为在图13中没有表示的其他例子,通过监视执行检测体10的存储器230,能够观测从检测体10的特定函数的调用,记录传送到函数的参数、函数的执行结果。另外,通过监视映象保存装置280,能够观测、取得由检测体10作成、变更的文件、注册项的信息。
图14是表示分析规则DB351的结构的图。活动分析部321读入分析规则DB351内的记录,进行由分析规则DB351内的记录所指定的分析。分析规则ID1001被用于唯一地识别分析规则DB351的记录。因此,分析规则ID1001的值在分析规则DB351中是唯一的。分析内容1022记载了具体的分析方法。在图14中,表示了分析规则DB351的记录的3种例子。分析规则IDlOOl=I的记录是在分析规则ID351内的记录所示的TCP通信内,存在特定字符串(P0NG、J0IN、NICK等)的情况下,将通信判定为IRC通信,判断为在检测体10中有漫游的属性。另外,对该记录的分析结果判定为“分析成功”。分析规则ID1001=2的记录是从分析规则ID351内的记录所示的图像中,抽出检测体所输出的会话框画面。在抽出的会话框是“要求用户存入”的情况下,判断为在检测体10中有伪反病毒软件的属性。另外,对该记录的分析结果判定为“分析成功”。分析规则ID1001=3的记录是在时间经过速度的调整的影响下,从分析规则DB351内的记录中发现了没有正常进行网络连接的状况的情况下,将检测体10的属性判断为不明。另外,对该记录的分析结果判定为“分析失败”。(处理步骤的详细)图15是由分析管理部121执行的分析管理部处理的流程图。在该流程图中,表示了从投入检测体到完成分析的一连串流程。在处理S2001中,检测体10通过系统管理装置100被投入到检测体分析部121。作为投入方法,可以经由IF140从其他终端投入检测体10,也可以经由输入输出装置180投入。所投入的检测体10被保存在检测体保存装置170中。在处理S2002中,分析管理部121进行分析方案20的决定。具体地说,决定时间经过速度30、分析开始时刻40、分析结束时刻50。由各项目决定的值可以是预先决定的标准值,也可以由分析者经由输入输出装置180每次注册项。在处理S2003中,分析管理部121将通过处理S2002决定的分析方案20保存在分析方案DB151中。这时,将唯一的值登记为分析管理ID501,将保存时刻登记为记录作成时刻502,将“分析中”登记为分析状况507。在处理S2004中,通过线1,从分析管理部121将检测体10、1个以上的分析方案20发送到检测体执行装置200的检测体执行部221。在处理S2005中,分析管理部121到向分析结果DB153追加了新的记录为止,即到活动分析装置300内的活动分析部321的活动分析结束为止,等待。作为向分析结果DB153追加了新的记录的通知方法,可以是从向分析结果DB153向分析管理部121发送信号的方法,也可以是从活动分析部321向分析管理部121直接发送通知的方法。在处理S2006中,分析管理部121读入分析结果DB153,取得新追加的记录。在处理S2007中,分析管理部121根据读入的分析结果DB153,判定是否需要进行再分析。作为基本的方针,在依照再分析规则DB154内的记录而判断为再分析判定803#需要”那样的分析结果DB153的记录存在I个以上的情况下,判断为需要进行再分析。另外,也可以经由输入输出装置180向管理者提示分析结果DB153的记录,进行最终的判断。在处理S2008中,在处理S2007中判断为再分析判定=“YES”的情况下,分析管理部121依照再分析规则DB154内的记录,进行分析方案的再设定。在再设定后,处理返回到S2003。在处理S2009中,在处理S2007中判断为再分析判定=“NO”的情况下,分析管理部121输出分析结果。作为输出内容,通过输入输出装置180向管理者提示分析方案DB151和分析结果DB153内的记录,也可以经由网络400向其他装置发送。接着,使用图9、图11、图12内的记录例子,说明在图15中进行的处理的具体例子。首先,在处理S2001中,分析管理部取得检测体A,并保存在检测体保存装置170中。在处理S2002中,作为检测体A的分析方案,决定时间经过速度30=72倍速,分析开始时刻 40=2012/1/1 00:00:00,分析结束时刻 50=2012/1/223:59:59。在处理S2003中,将所决定的分析方案作为分析管理ID=I的记录保存在分析方案DB151中。在处理S2004中,将检测体A、与分析管理ID=I对应的分析方案20发送到检测体执行装置200。在处理S2005中,到将分析结果ID701=1、2、3、4的4个记录输出到分析结果DB153为止,等待。在处理S2006中,读入分析结果ID701=1 4的分析结果DB153内的记录。在处理S2007中,分析结果ID701=1、3的分析结果DB153内的记录的分析成功与否708为“失败”,根据再分析规则DB154的再分析规则ID=I的记录,判断为再分析判定=“YES”。在处理S2008中,根据再分析规则DB154,再设定分析方案20。具体地说,将“时间经过速度30=1倍速、分析开始时刻40=2012/1/1 11:55:00、分析结束时刻50=2012/1/212:05:00”再设定为与分析结果ID701=1的记录对应的分析方案20,将“时间经过速度30=1 倍速、分析开始时刻 40=2012/1/100:00:00、分析结束时刻 50=2012/1/2 23:59:59”再设定为与分析结果ID=3的记录对应的分析方案20。处理返回到处理S2003,将在处理S2008中决定的2个分析方案20作为分析管理ID=2、3的记录而保存在分析方案DB151中。在处理S2004中,将检测体A、在处理S2008中再设定的分析方案20发送到检测体执行装置200。在处理S2005中,直到将分析结果ID701=5、6的2个记录输出到分析结果DB153为止,等待。在处理S2006中,读入分析结果ID701=5、6的分析结果DB153内的记录。在处理S2007中,分析结果ID701=5、6的分析结果DB153内的记录的分析成功与否708都是“成功”,因此,根据再分析规则DB154的再分析规则ID=3的记录,判断为再分析判定=“NO”。在处理S2009中,依照分析结果DB153内的分析结果ID=2、4、5、6的记录,经由输入输出装置180显示“检测体A在2012/1/1 18:00,2012/1/2 18:00进行了显示要求用户存入的会话框这样的伪反病毒软件所固有的活动。另外,在2012/1/1 12:00,2012/1/212:00进行了与192.168.0.1的80号端口进行C&C通信这样的漫游所固有的活动”这样的消息。图16是通过检测体执行装置200的检测体执行部221进行的检测体执行处理的
流程图。在处理S2101中,检测体执行部221从系统管理装置100的分析管理部121,接收检测体10、I个以上的分析方案20。在处理S2102中,从映象保存装置280读入执行环境映象281,并展开到存储器230上执行。在处理S2103中,依照分析方案20的时间经过速度30,设定执行环境的时间经过速度。将在后面说明具体的方法。在处理S2104中,访问检测体执行装置200的时钟部223,将当前时刻设定为分析方案20的分析开始时刻40。在处理S2105中,启动在处理S2101中接收到的检测体10和活动记录部222。在处理S2106中,到时钟部223所示的当前时刻成为分析方案20的分析结束时刻50为止,等待。在处理S2107中,针对在处理S2101中接收到的全部分析方案20,检查检测体的执行是否结束。在处理S2107的结果是“YES”的情况下,在处理S2008中,停止检测体10和活动记录部222,结束处理。在处理S2107的结果是“NO”的情况下,返回到处理S2102,再次读入执行环境映象281,依照未处理的分析方案20执行检测体10。接着,使用图9内的记录例子,说明在图16中极性的处理的具体例子。首先,在处理S2101中,检测体执行部221从分析管理部121接收与分析方案DB151的分析管理ID501 = I的记录对应的分析方案20和检测体A。在处理S2102中,读入用于执行检测体A的执行环境映象281。在处理S2103中,将执行环境的时间经过速度设定为72倍速。在处理S2104中,将时钟部223的当前时刻设定为“2012/1/100:00:00”。在处理S2105中,执行检测体A和活动记录部222。在处理S2106中,到时钟部223的当前时刻成为“2012/1/2 23:59:59”为止,等待。在处理S2107中,由于全部的分析方案20的处理结束,所以在处理S2108中,停止检测体A和活动记录部222。然后,在处理S2101中,检测体执行部221从分析管理部121接收与分析方案DB151的分析管理ID501 = 2、3的记录对应的2个分析方案20和检测体A。在处理S2102中,读入用于执行检测体A的执行环境映象281。在处理S2103中,依照与分析管理ID501=2的记录对应的分析方案20,将执行环境的时间经过速度设定为I倍速。在处理S2104中,将时钟部223的当前时刻设定为“2012/1/1 11:55:00”。在处理S2105中,执行检测体A和活动记录部222。在处理S2106中,到时钟部223的当前时刻成为 “2012/1/1 12:00:00” 为止,等待。在处理S2107中,由于与分析管理ID501=3的记录对应的分析方案20的处理还没有进行,所以返回到处理S2102。然后,在处理S2103 2106中,依照上述分析方案20,进行检测体的执行处理。在处理S2107中,由于接收到的2个分析方案20的处理全部结束,所以在处理S2108中,停止检测体A和活动记录部222,结束全部处理。在图17中,表示计时器装置270与时钟部223的关系。如上所述,计时器装置270在每次振荡器271振动时,向时钟部223发送信号,时钟部223根据接收到的信号的次数,决定当前时刻。在处理S2201中,将计时器装置270的计数寄存器272的值初始化为O。在处理S2202中,振荡器271进行一次振动。在处理S2203中,在每次振荡器271振动时,将计数寄存器272的值加I。在处理S2204中,对计数寄存器272的值和计数最大值寄存器273的值进行比较。在比较的结果是计数寄存器272的值与计数最大值寄存器273不相等的情况下,转移到处理S2202。在计数寄存器272的值与计数最大值寄存器273的值相等的情况下,转移到处理S2205。在处理S2205中,向时钟部223发送信号。在发送信号后,转移到处理S2201。时钟部223在处理S2206中,接收从时钟部223的处理S2205发送的信号。在处理S2207中,将当前时刻加上常数时间。由此,更新检测体执行装置200的当前时刻。在执行处理S2207后,再次转移到处理S2206,到接收到下一个信号为止等待。在此,在处理S2207中,与当前时刻相加的常数时间决定时钟部223的时刻的精度。如果常数时间=1秒,则时钟部223的时刻精度为I秒单位,如果常数时间=0.01秒,则时刻精度为0.01单位。在时钟部223的启动时设定计数最大值寄存器273的值。在此,振荡器271的振动数为IMHz (在秒钟内振动1000000次),时钟部223的时刻精度为0.01秒。在该情况下,时钟部223需要在I秒钟内接收100次信号,因此,计数最大值寄存器273的值被设定为10000 (=1000000/100)。由此,只在从其他程序不变更计数最大值寄存器273的值的情况下,时钟部223按照I秒钟100次的比例接收信号,每次使当前时刻前进0.01秒。在图18中,说明在图16的检测体执行处理的S2103中执行的时刻经过速度的调整处理的流程图。在调整处理中,通过改变计数最大值寄存器273的值,来调整计时器装置270发送信号频度。在处理S2301中,将计数最大值寄存器273的值读入变量Current_MAX。在处理S2302中,将变量Current_MAX除以时刻经过速度30的值所得的值保存为变量New_Max。在处理S2303中,将变量New_Max保存到计数最大值寄存器273。作为例子,如图17所示,考虑以下的情况,即在将计数最大值寄存器273的值设定为10000的状况下,如图9的分析管理ID503=1的记录那样,将时间经过速度506设为72倍速。在处理S2301中,将变量Current_MAX的值设定为10000。在处理S2302中,将139(=10000/72)保存为变量New_Max。在处理S2303中,将139保存到计数最大值寄存器273中。在图17的例子中,振荡器271的振动数是1MHz,因此,在I秒钟内从计时器装置270向时钟部223发送约7200次信号。在每次接收信号时,时钟部223使当前时刻前进0.01秒,因此,通过接收7200次信号,检测体执行装置200的时刻前进72秒。由此,实现通过时间调整速度30指定的72倍速。图19表示了通过活动记录部222执行的活动记录处理的流程。在处理S2401中,活动记录部222读入记录规则DB251。在处理S2402中,依照读入的记录规则DB251,记录执行环境上的检测体10的活动。在处理S2403中,检测体执行部221按照在图16的处理S2108中停止活动记录部222的定时,将在检测体10的执行中作成的活动记录60写入到活动记录DB152中。接着,使用图10、图13内的记录例子,表示在图19中进行的活动记录处理的具体例子。在处理S2401中,将记录规则DB251内的2个记录(记录规则ID901=1,2)读入到活动记录部222。在处理S2402中,依照读入的记录规则DB251的记录,记录检测体A的“分组发送活动”、“桌面画面的更新”。具体的记录方法如图13的说明所示那样。在处理S2403中,在检测体执行部221依照分析管理ID602=1的分析方案20进行执行处理的情况下,将活动记录ID601=1、2、3、4的记录写入到活动记录DB152。另外,在检测体执行部221依照分析管理ID602=2、3的分析方案20进行执行处理的情况下,将活动记录ID601=5、6的记录写入到活动记录DB152。图20表示了通过活动分析部321执行的活动分析处理的流程。在处理S2501中,活动分析部321到活动记录DB152被更新而追加了新的记录为止,等待。在处理S2502中,活动分析部321读入分析规则DB351和活动记录DB152。在处理S2503中,依照分析规则DB351,分析活动记录DB152的记录,作成分析结果70。在分析的过程中,也可以经由输入输出装置370由管理者更新分析规则DB351的内容,或者根据在分析规则DB351中没有记载的判断基准,手动地进行分析。在处理S2504中,将在处理S2503中作成的分析结果70保存在分析结果DB153中。接着,使用图10、图11、图14内的记录例子,表示在图20中进行的活动分析处理的具体例子。在处理S2501中,向活动记录DB152追加活动记录ID601为广4的记录,因此,解除等待。在处理S2502中,读入活动记录ID601为的记录、分析规则DB351的3个记录。在处理S2503中,对于活动记录ID=2和4的记录,应用分析规则ID=2的记录,判断为在检测体A中有“伪反病毒软件”的属性。另外,对于活动记录ID=I和3的记录,应用分析规则ID=3的记录,由于没有正常进行网络连接,所以判断为“分析失败”。在处理S2504中,更新分析结果DB153,新追加分析结果ID701=f4的记录。然后,转移到处理S2501。再次在处理S2501中,向活动记录DB152追加活动记录ID601为5 6的记录,因此,解除等待。在处理S2502中,读入活动记录ID601为2的记录、分析规则DB351的2个记录。在处理S2503中,对于活动记录ID=5、6的记录,应用分析规则ID=I的记录,判断为在检测体A中有“漫游”的属性。在处理S2504中,更新分析结果DB153,新追加分析结果ID701 = 5 6的记录。(变形例子)接着,说明图1所示的系统的变形例子。(I)加法值可变在图1所示的系统中,通过变更计数最大值寄存器273的值,来进行时间经过速度的调整。作为变更例子,也可以通过变更计数寄存器272所加的值,来进行时间调整。例如,在实施例中,计数寄存器272的值在振荡器271的每次振动时加I,但通过将加法值设为+2,能够将时间经过速度设为2倍。作为该变更例子的优点,可以列举在不能变更计数最大值寄存器273的计时器装置270上,也能够进行时间经过速度的调整。(2)振荡器的频率变更另外,也能够通过改变振荡器271的频率来调整时间经过速度。例如,通过将振荡器271的频率设为2倍,能够将时间经过速度设为2倍。作为该变更例子的优点,可以列举在不能变更计数最大值寄存器273的计时器装置270上,也能够进行时间经过速度的调整。
(3)当前时刻的常数时间调整另外,通过对图17的处理S2207中表示的由时钟部223管理的与当前时刻进行相加的常数时间进行调整,能够将时间经过速度调整为2倍。例如,在图17的说明中,将0.01秒设定为常数时间,但通过将常数时间再设定为0.02秒,能够将时间经过速度设为2倍。作为该变更例子的优点,可以列举在不能变更振荡器271、计数寄存器272、计数最大值寄存器273的计时器装置270上,也能够进行时间经过速度的调整。(4)虚拟机的执行另外,在图1所示的系统中,直接在存储器230上执行执行环境映象281,但也可以在模拟计算机的结构、动作的程序即虚拟机上执行。在该变更例子中,在存储器230上读入虚拟机程序。在虚拟机程序上,执行环境映象281、检测体执行程序231、活动记录程序232、时钟成像233动作。在虚拟机程序上执行检测体10。虚拟机程序模拟物理的计算机的结构,因此,具有相当于计时器装置270的计时器装置模拟程序。在进行时刻调整时,不对检测体执行装置200上的计时器装置270进行操作,而是调整虚拟机程序上的计时器装置模拟程序的计数最大值寄存器的值。作为该变更例子的优点,可以列举:由于不对计时器装置270进行操作,而是对计时器装置模拟程序进行操作,所以能够确实地对程序内的振荡器、寄存器进行变更。(5)对程序的应用进而,在图1所示的系统中,为了调查行动不明的程序的动作而利用本发明,但也可以为了短时间地调查某程序在一定期间内正常动作的情况来利用。例如,通过将时间经过速度30设为1000倍,将分析开始时刻40设为2011/1/100:00:00、将分析结束时刻50设为2020/12/30 23:59:59,能够在4日左右内测试程序在10年中正常动作的情况。在该变更例子中,将伴随着程序的执行而产生的错误信息保存为活动记录60。作为该变更例子的优点,可以列举能够短时间地调查程序的未预期的错误。(6)振荡器的频率操作另外,CPU220在其内部具备类似于振荡器271的振荡器,在遮断器每一次振动时,执行一个指令。因此,通过对该振荡器的频率进行操作,能够改变检测体10的执行速度。例如,如果将振荡器的频率设为0.5倍,则检测体的执行速度成为一半。由此,能够测试检测体在各种性能的计算机中执行时的动作。例如,在对检测体10通过IF140接收的IP分组进行处理的程序的情况下,通过降低CPU220的振荡器的频率,能够测试在高负荷时能够以怎样的程度没有错误地处理IP分组。符号的说明10:检测体;20:分析方案;30:时间经过速度;40:分析开始时刻;50:分析结束时刻;60:活动记录;70:分析结果;100:系统管理装置;200:检测体执行装置;300:活动分析装置;400:网络。
权利要求
1.一种程序分析系统,其使动作验证对象的程序在能够任意调整时间经过速度的执行环境上动作,其特征在于,包括: 系统管理装置,具有管理程序的分析状况而决定时间经过速度的分析管理部; 至少一个检测体执行装置,具有根据由分析管理部指定的时间经过速度在上述执行环境上执行上述程序的检测体执行部、取得上述程序在上述执行环境上的行动而作为活动记录的活动记录部; 至少一个活动分析装置,具有对上述活动记录进行分析并将上述程序的特征作为分析结果输出的活动分析部。
2.根据权利要求1所述的程序分析系统,其特征在于, 上述分析管理部除了决定上述时间经过速度以外,还决定分析上述程序时的分析开始时刻。
3.根据权利要求2所述的程序分析系统,其特征在于, 上述分析管理部除了决定上述时间经过速度、上述分析开始时刻以外,还决定结束上述程序的分析的分析结束时刻。
4.根据权利要求3所述的程序分析系统,其特征在于, 上述分析管理部根据上述分析结果,向上述检测体执行部指示上述程序的再分析。
5.根据权利要求4所述的程序分析系统,其特征在于, 上述分析管理部将上述程序的分析失败的时刻作为对象,进行检测体的再分析。
6.根据权利要求4所述的程序分析系统,其特征在于, 上述分析管理部在进行再分析时,改变上述时间经过速度。
7.根据权利要求4所述的程序分析系统,其特征在于, 上述分析管理部具有根据上述分析结果进行再分析的有无的判定的再分析规则DB。
8.根据权利要求1所述的程序分析系统,其特征在于, 上述检测体执行部通过在计算机上对定期地向时钟部发送信号来进行时刻管理的计时器装置进行操作,从而调整时间经过速度。
9.根据权利要求1所述的程序分析系统,其特征在于, 上述检测体执行部通过对上述时钟部进行操作,来调整时间经过速度。
10.根据权利要求1所述的程序分析系统,其特征在于, 上述执行环境并不是在计算机上直接执行,而是在计算机上执行的虚拟机程序上执行。
11.根据权利要求1所述的程序分析系统,其特征在于, 通过对执行上述执行环境的CPU的动作速度进行调整,来重现上述程序在各种性能的计算机上的动作。
12.根据权利要求1所述的程序分析系统,其特征在于, 上述活动记录部依照用于指示记录上述程序的怎样的活动的记录规则DB,来记录活动。
13.根据权利要求1所述的程序分析系统,其特征在于, 上述活动分析部依照指定分析方法的分析规则DB,对上述活动记录进行分析。
14.根据权利要求12所述的程序分析系统,其特征在于,在上述记录规则DB中,作为记录对象而指定网络通信、画面输出、函数调用、文件的作成、修改、删除、注册项的作成、修改、删除。
15.根据权利要求1所述的程序分析系统,其特征在于, 在上述分析结果中,包含表示分析的成功/失败的标志。
16.一种程序分析方法,其使用处理装置使动作验证对象的程序在能够任意调整时间经过速度的执行环境上动作,其特征在于, 管理程序的分析状况,决定时间经过速度; 根据通过上述管理而指定的时间经过速度,在上述执行环境上执行上述程序; 取得上述程序在上述执行环境上的行动而作为活动记录; 对上述活动记录进行 分析,并将上述程序的特征作为分析结果输出。
全文摘要
根据本发明,实现对启动后一定时间后、或只在特定日期时间活动的程序的高效的分析。本发明的程序分析系统和方法一边调整程序执行环境的时间经过速度一边进行程序的分析,其主要功能部件是分析管理部、检测体执行部、活动记录部、活动分析部的4个。分析管理部设定执行环境中的时间经过速度和程序执行开始时间、执行结束时间等分析条件。检测体执行部依照分析管理部的决定,调整时间经过速度和程序执行开始时间,到执行结束时间为止执行程序。活动记录部监视执行环境,取得程序的活动记录。活动分析部对活动记录进行分析,了解程序的行动。进而,分析管理部根据分析结果,再设定分析条件,进行再分析。
文档编号G06F21/56GK103106364SQ20121045507
公开日2013年5月15日 申请日期2012年11月13日 优先权日2011年11月15日
发明者川口信隆, 锻忠司, 山口演己 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1