首页> 中国专利> 软件行为模型化装置、软件行为模型化方法、软件行为验证装置以及软件行为验证方法

软件行为模型化装置、软件行为模型化方法、软件行为验证装置以及软件行为验证方法

摘要

本发明提供软件行为模型化装置、软件行为模型化方法、软件行为验证装置以及软件行为验证方法。软件行为模型化装置(100)包括:事件信息取得部(110),其取得表示在软件的运行中发生的特定事件的事件信息;堆栈信息取得部(120),其取得在发生特定事件的时刻存储在暂存器中的堆栈信息;模型生成部(130),其根据包含在堆栈信息中的返回地址存储在暂存器中的存储位置,对返回地址设定得分,并使用存储位置以及得分,对所述特定事件与所述要素之间的关系进行模型化,生成所述软件的行为模型。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-10

    未缴年费专利权终止 IPC(主分类):G06F11/36 授权公告日:20130327 终止日期:20160328 申请日:20080328

    专利权的终止

  • 2013-03-27

    授权

    授权

  • 2010-04-21

    实质审查的生效 IPC(主分类):G06F11/34 申请日:20080328

    实质审查的生效

  • 2010-02-17

    公开

    公开

说明书

技术领域

本发明涉及对软件行为进行模型化的软件行为模型化装置以及软件行为模型化方法、对软件行为进行验证的软件行为验证装置以及软件行为验证方法。

背景技术

PC、工作站、服务器、路由器、便携电话、PDA等计算机存在从计算机外部或计算机内部受到攻击的可能性。作为具有代表性的攻击,可以列举出恶意利用在计算机上运行的软件的脆弱性的攻击。攻击者向计算机送入恶意利用计算机的脆弱性的代码,夺取在计算机上运行的软件中包含的进程的控制。攻击者利用夺取到控制的进程的权限,进行不正当的操作。

对此,已知有检测恶意利用计算机的脆弱性的攻击、尤其是检测对计算机来说未知的攻击的异常检测系统。

具体地说,在异常检测系统中,软件的正常的行为预先被模型化,存储了被模型化的行为模型。异常检测系统在软件的运行中判定软件的行为是否偏离了行为模型。

此处,攻击者使用进程委托内核进行重要的处理的系统调用,使计算机进行任意的动作。因此,在监视软件的行为时,验证系统调用的正当性,是非常重要的。

基于这点,提出了在软件运行中,验证系统调用的正当性的验证方法。但是,实践证明:即使正常保持系统调用队列,也可进行攻击,所以为了提高验证精度,提出了在验证中不仅使用系统调用,还使用返回地址的方法。该验证方法利用存储了返回地址等的调用栈的状况。具体地说,该验证方法包含学习软件行为的阶段和验证软件行为的阶段(例如,非专利文献1)。

在软件行为的学习阶段中,在正常执行了软件之后,生成软件的行为模型。

具体地说,在发生了系统调用时,取得调用栈的状况(存储在调用栈中的返回地址队列),并且,取得程序计数器的值。生成记录了返回地址队列以及程序计数器的值的虚拟队栈列表(Virtual Stack List)。然后,取得产生了一个系统调用时生成的虚拟队栈列表与继一个系统调用之后产生其他系统调用时生成的虚拟队栈列表的差分信息(Virtual Path)。而且,根据虚拟堆栈列表(Virtual Stack List)以及差分信息(Virtual Path),生成Hash表,将Hash表用作行为模型。

在软件行为的验证阶段中,在软件运行中产生了系统调用时,与软件行为的学习阶段相同地生成Hash表。然后,进行在软件行为的学习阶段中生成的Hash表和在软件运行中生成的Hash表的匹配。当Hash表一致的情况下,许可系统调用,而当Hash表不一致时,判定为软件的行为异常。

但是,在上述的验证方法中,需要根据虚拟堆栈列表(Virtual Stack List)以及差分信息(Virtual Path)来生成Hash表。尤其,在软件行为验证阶段中,由于需要在软件运行中生成Hash表,所以计算机的处理负荷变重,计算机的处理速度变慢。尤其,应该留意的是,为了取得Hash表而生成差分信息(VirtualPath)的负荷变重。

此外,在非专利文献1中,只把学习过的视为正常,而没有学习的全部视为异常。即,有可能产生这样的误检测:有学习的遗漏时,即使是正常行为,也判定为异常。无一遗漏地学习软件的正常行为,现实上是困难的,所以这是个问题。

非专利文献1:H.Feng等、“Anomaly Detection Using Call StackInformation”、The proc.Of IEEE Symposium on Security and Privacy 2003、pp.62.

发明内容

本发明的第1特征的主旨是,一种对软件的行为进行模型化的软件行为模型化装置,包括:事件信息取得部(事件信息取得部110),其取得表示在所述软件的运行中发生的特定事件(例如,系统调用)的事件信息;堆栈信息取得部(堆栈信息取得部120),其取得在发生所述特定事件的时刻存储在调用栈中的堆栈信息;得分设定部(得分设定部125),其根据包含在所述堆栈信息中的要素(例如返回地址)被存储在所述调用栈中的存储位置,设定得分;以及模型生成部(行为模型生成部130),其使用所述得分,对所述特定事件与所述要素之间的关系进行模型化,生成所述软件的行为模型。

根据所涉及的特征,所述模型生成部,使用根据返回地址的存储位置设定的得分,生成软件的行为模型。这样,通过注意观察返回地址的存储位置,能够提高软件行为的模型化精度。

此外,由于不需要如现有技术那样使用差分信息(Virtual Path),所以能够减轻软件行为模型化装置的处理负荷,提高软件行为模型化装置的处理速度。

在本发明的第1特征中,所述模型生成部,可以在从存储在所述调用栈中的所述要素中,提取出用于所述行为模型的生成的模型化对象要素之后,使用根据与所述模型化对象要素对应的所述存储位置设定的所述得分,生成所述行为模型。

在本发明的第1特征中,所述模型化对象要素,是存储在所述调用栈中的所述要素中的,从上位依次提取出的规定数的要素。

在本发明的第1特征中,所述模型化对象要素,是存储在所述调用栈中的所述要素中的,所述得分大于等于规定阈值的要素。

在本发明的第1特征中,所述模型生成部,对所述特定事件与所述要素的处理顺序的关系进行模型化,来生成所述行为模型。

本发明的第2特征的主旨是,一种对软件行为进行模型化的软件行为模型化方法,包括以下步骤:取得表示在所述软件的运行中发生的特定事件的事件信息的步骤A;取得在发生所述特定事件的时刻存储在调用栈中的堆栈信息的步骤B;根据包含在所述堆栈信息中的要素存储在所述调用栈中的存储位置,设定得分的步骤C;以及使用所述得分,对所述特定事件与所述要素之间的关系进行模型化,生成所述软件的行为模型的步骤D。

本发明的第3特征的主旨是,一种对软件行为进行验证的软件行为验证装置,包括:事件信息取得部(事件信息取得部210),其取得表示在所述软件的运行中发生的特定事件的事件信息;堆栈信息取得部(堆栈信息取得部220),其取得在发生所述特定事件的时刻存储在调用栈中的堆栈信息;行为模型取得部(行为模型取得部230),其取得事先对所述特定事件与所述要素之间的关系进行了模型化的行为模型;以及行为验证部(行为验证部240),其根据通过所述事件信息取得部取得的所述特定事件以及通过所述堆栈信息取得部取得的所述堆栈信息,验证所述软件行为是否偏离了所述行为模型,在事先正常运行了所述软件时,使用根据存储位置设定的得分,生成所述行为模型,所述存储位置是包含在所述堆栈信息中的要素被存储在所述调用栈中的位置,所述行为验证部,根据所述得分,验证所述软件的行为是否偏离了所述行为模型。

根据这个特征,行为验证部,使用根据返回地址的存储位置设定的得分来判定软件行为是否偏离了行为模型。这样,通过注意观察返回地址的存储位置,就能够提高软件行为的验证精度。

此外,由于不需要如现有技术那样使用差分信息(Virtual Path),所以能够减轻软件行为验证装置的处理负荷,并提高软件行为验证装置的处理速度。

在本发明的第3特征中,所述行为验证部对每个所述存储位置对所述得分进行累积加算,并根据累积加算后的所述得分,检测所述软件的异常行为。

本发明的第4特征的主旨是,一种对软件行为进行验证的软件行为验证方法,包括:取得表示在所述软件的运行中发生的特定事件的事件信息的步骤A;取得在发生所述特定事件的时刻被存储在调用栈中的堆栈信息的步骤B;取得事先对所述特定事件与所述要素之间的关系进行了模型化的行为模型的步骤C;以及根据在所述步骤A中取得的所述特定事件以及在所述步骤B中取得的所述堆栈信息,验证所述软件行为是否偏离了所述行为模型的步骤D,在事先运行了所述软件时,使用根据存储位置设定的得分,生成所述行为模型,所述存储位置是包含在所述堆栈信息中的要素被存储在所述调用栈中的位置,在所述步骤D中,根据所述得分,验证所述软件的行为是否偏离了所述行为模型。

附图说明

图1是表示第1实施方式的软件行为模型化装置100的结构的框图。

图2的表示第1实施方式的堆栈信息的一例的图。

图3是表示第1实施方式的软件行为模型的生成的一例的图。

图4是表示第1实施方式的软件行为模型化方法的流程图。

图5是表示第2实施方式的软件行为验证装置200的结构的框图。

图6是不是第2实施方式的软件行为的验证的一例的图。

图7是表示第2实施方式的软件行为验证方法的流程图。

具体实施方式

以下,参照附图说明本发明的实施方式的软件行为模型化装置以及软件行为验证装置。另外,对在以下的附图的记载中相同或者类似的部分标注相同或者类似的符号。

但是,附图只是示意性的,应该留意各尺寸的比例等与实际的不同。因此,具体的尺寸等应该参酌以下说明来判断。此外,当然附图相互间也包含有相互尺寸的关系或比率不同的部分。

(第1实施方式)

(软件行为模型化装置)

以下,参照附图说明第1实施方式的软件行为模型化装置的结构。图1是表示第1实施方式的软件行为模型化装置100的结构的框图。

如图1所示,软件行为模型化装置100将学习对象软件(程序)的正常行为进行模型化,生成软件的行为模型。具体地说,软件行为模型化装置100,具有事件信息取得部110、堆栈信息取得部120、得分设定部25以及行为模型生成部130。

事件信息取得部110,在学习对象软件运行中取得包含在学习对象软件中的各进程发行的、表示特定事件的事件信息。以下,作为特定事件,例如,说明产生系统调用的例。另外,所该例中,事件信息取得部110作为事件信息来取得表示系统调用的系统调用信息。系统调用是在软件中包含的进程委托操作系统(内核)进行重要的处理时所发行的命令。

堆栈信息取得部120,取得作为存储在调用栈中的信息的堆栈信息。堆栈信息是按照将多个返回地址存储在了调用栈中的顺序记录的信息。返回地址是在程序运行中调用的子程序结束了时,应返回处理的进程的地址。

此处,第1实施方式中,在调用栈中,从调用栈的下位(底部)朝向调用栈的上位,按照处理顺序存储了多个返回地址。例如,作为各返回地址的存储位置,从调用栈的上位按顺序、即按照最近被处理过的返回地址顺序,分配了“0”、“1”...“n”。

堆栈信息取得部120,在学习对象软件的运行中,从事件信息取得部110取得系统调用信息。

堆栈信息取得部120,对在产生了通过从事件信息取得部110取得的系统调用信息所示的系统调用时从调用栈取得的堆栈信息进行存储。具体地说,如图2所示,堆栈信息取得部120在产了系统调用(Sys)时,将存储在调用栈中的返回地址(RA)作为堆栈信息进行存储。

例如,如图2所示,堆栈信息取得部120在产生了系统调用1时,对产生了系统调用1时存储在调用栈中的返回地址(0x80000001、0x80000123、0x80000345)进行存储。

堆栈信息取得部120在紧跟着系统调用1产生了系统调用2时,对产生了系统调用2时存储在调用栈中的返回地址(0x80000001、0x80000123、0x0000456、0x80000567)进行存储。

堆栈信息取得部120在紧跟着系统调用2再产生了系统调用2时,对产生了系统调用2时存储在调用栈中的返回地址(0x80000001、0x80000321、0x80000654)进行存储。

得分设定部125,从堆栈信息取得部120取得堆栈信息。接着,得分设定部125以系统调用为单位,对每一存储位置设定得分。存储位置是包含在堆栈信息中的各要素(返回地址)存储在调用栈中的位置。

行为模型生成部130从事件信息取得部110取得系统调用信息,并且从堆栈信息取得部120取得堆栈信息。此外,行为模型生成部130取得通过得分设定部125设定在各要素(返回地址)中的得分。接着,行为模型生成部130对系统调用和堆栈信息(返回地址)的关系进行模型化,生成软件的行为模型。行为模型生成部130对每一系统调用生成行为模型。

具体地说,如图3(a)所示,对按顺序产生了系统调用1(Sys1)、系统调用2(Sys2)以及系统调用2(Sys2)时,生成行为模型的情况为例来进行说明。

如图3(a)所示,在产生了系统调用(Sys1)的时刻,调用栈中存储有返回地址A~返回地址F。另外,应留意返回地址F是最近处理过的返回地址,返回地址F的存储位置是“0”。

同样地,在紧跟着系统调用1(Sys1)产生了系统调用(Sys2)的时刻,调用栈中按顺序存储了返回地址A~返回地址D。另外,应留意返回地址D是最近处理过的返回地址,返回地址D的存储位置是“0”。

此外,在紧跟着系统调用2(Sys2)产生了系统调用(Sys2)的时刻,调用栈中按顺序存储了返回地址A~返回地址C。另外,应留意返回地址C是最近处理过的返回地址,返回地址C的存储位置是“0”。

如图3(b)所示,行为模型生成部130,将与系统调用的种类(Sys)、调用栈中的返回地址的存储位置、返回地址的种类以及得分相对应的表作为行为模型来生成。

此处,上述的得分设定部125,以存储位置越靠近下位时,得分越小的方式设定得分。此外,得分设定部125也可以以系统调用的种类以及存储位置相同的返回地址数越多时,得分越小的方式设定得分。

例如,将存储位置设成“P”、将系统调用的种类以及存储位置相同的返回地址的种类数设成“N”时,按照以下所示的式(1)~式(4)设定得分(W)。其前提是以0以上的整数(“0”、“1”...“n”)来表示存储位置。

另外,在系统调用“1”的存储位置“0”中,在调用栈中存储的返回地址仅仅是“F”,种类数N是“1”。另一方面,在系统调用“2”的存储位置“0”中,存储在调用栈中的返回地址是“D”以及“C”,因此种类数是“2”。

W=-P        ...式(1)

W=1/XP      ...式(2)

W=1/(N·XP) ...式(3)

W=1/(Ny·XP)...式(4)

其中x、y是任意自然数。

另外,在上述的式(3)~式(4)中,代替系统调用的种类以及存储位置相同的返回地址的种类数(N)也可以使用计数器数(C)。此外,可以使用种类数(N)以及计数器数(C)双方。

计数器数(C)是系统调用的种类以及存储位置相同的返回地址在调用栈内出现的次数。

例如,系统调用“1”的存储位置为“0”,返回地址“F”出现的次数为2次时,计数器数(C)为“2”。

另外,在图3(b)中利用式(3)计算出得分(W)。但是应留意x的值是“2”。

(软件行为模型化方法)

以下参照附图说明第1实施方式中的软件行为模型化方法。图4是表示第1实施方式中的软件行为模型化方法的流程图。另外,图4中以学习对象软件正常运作的情况为前提来进行说明。此外,图4中,作为特定事件,例如,说明产生系统调用的例。另外,在该例中,作为事件信息取得表示系统调用的系统调用信息。

如图4所示,在步骤10中,软件行为模型化装置100,开始为生成学习对象软件的行为模型所必要的信息的学习。

在步骤11中,软件行为模型化装置100取得表示包含在学习对象软件中的各进程发行的系统调用的系统调用信息。

在步骤12中,软件行为模型化装置100在发生了系统调用的时刻,取得存储在调用栈中的堆栈信息(多个返回地址)(参照上述的图2)。

在步骤13中,软件行为模型化装置100判定是否凑齐了行为模型的生成所需要的信息,例如判定是否结束了学习对象软件的运行。软件行为模型化装置100,在凑齐了行为模型的生成所需要的信息时,结束为生成学习对象软件的行为模型而需要的信息的学习。软件的正常的行为越多需要的信息就越多。此外,学习对象软件具有多个运行种类时,不判断一次执行中所需要的信息是否凑齐了,而是判断在结束了多个运行时是否凑齐了。另一方面,软件行为模型化装置100在没有凑齐行为模型的生成所需要的信息时,重复步骤11以及步骤12的处理。

在步骤14中,软件行为模型化装置100,利用系统调用信息以及堆栈信息,生成学习对象软件的行为模型。具体地说,软件行为模型化装置100,根据调用栈的存储位置以及调用栈的种类,在各返回地址设定得分。接着,软件行为模型化装置100,将对应系统调用的种类、调用栈的存储位置、调用栈的种类以及得分的表作为行为模型来生成(参照上述的图3(b))。

(作用以及效果)

根据第1实施方式的软件行为模型化装置100(软件行为模型化方法),行为模型生成部130,利用按照调用栈的存储位置设定的得分,生成学习对象软件的行为模型。这样,通过注意观察调用栈的存储位置,就能够提高学习对象软件的行为的模型化精度。

此外,因为不需要如现有技术那样利用差分信息(Virtual Path),所以能够实现软件行为模型化装置100的处理负荷的减轻、以及软件行为模型化装置100的处理速度的提高。

根据第1实施方式的软件行为模型化装置100(软件行为模型化方法),通过包含返回地址的存储位置以及根据存储位置设定的得分的表,简单地表示行为模型,所以能够减小行为模型的规模。

(第2实施方式)

(软件行为验证方法)

以下参照附图说明第2实施方式的软件行为模型化装置的结构。图5是表示第2实施方式中的软件行为验证装置200的框图。

如图5所示,软件行为验证装置200,具有事件信息取得部210、堆栈信息取得部220、行为模型取得部230以及行为验证部240。

事件信息取得部210,与事件信息取得部110相同地,在监视对象软件的运行中,取得包含在监视对象软件中的各进程发行的、表示特定事件的事件信息。以下,作为特定事件,例如,说明产生系统调用的例。另外,在该例中,事件信息取得部210,作为事件信息来取得表示系统调用的系统调用信息。

堆栈信息取得部220,与堆栈信息取得部120相同地,在发生了系统调用的时刻,取得存储在调用栈中的堆栈信息。另外,堆栈信息,是与第1实施方式相同地、按照多个返回地址存储在调用栈中的顺序记录的信息。

行为模型取得部230,是如图第1实施方式中所示,取得使用系统调用信息以及堆栈信息生成的行为模型。此处,行为模型取得部230当然要取得与监视对象软件相对应的行为模型。

行为验证部240验证监视对象软件的行为是否偏离了行为模型。具体地说,行为验证部240着眼于在行为模型中,与通过系统调用信息来所示的系统调用相对应的部分。然后,行为验证部240对每一返回地址的存储位置,比较通过堆栈信息取得部220取得的返回地址和包含在行为模型中的返回地址。

此处,行为验证部240,在返回地址是一致的情况下,对用于判定监视对象软件的行为是否正常的判定值不加算与存储位置对应的得分。另一方面,行为验证部240,在返回地址是不一致的情况下,将与存储位置对应的得分累积加算到判定值上。行为验证部240,在累积加算了得分的判定值超过规定判定值的情况下,判定为监视对象软件的行为异常。

例如,监视对象软件的行为模型是如图6(a)所示的模型,以在发生了系统调用2(Sys2)的时刻存储在调用栈中的返回地址是图6(b)中所示的地址的情况为例进行说明。

行为验证部240取得与系统调用2(Sye2)对应的行为模型。然后,行为验证部240在存储位置“0”中,验证返回地址G是否与包含在行为模型中的返回地址中的某一个一致。在图6中,由于返回地址G不与包含在行为模型中的返回地址(D或C)中的某一个一致,所以行为验证部240将与存储位置“0”相对应的得分(1/2)加算到判定值上。另外,应注意判定值的初始值为“0”。

同样地,行为验证部240,在存储位置“1”中,验证返回地址B是否与包含在行为模型中的返回地址中的某一个一致。在图6中,由于返回地址B 与包含在行为模型中的返回地址(C或B)中的某一个一致,所以行为验证部240不将与存储位置“1”相对应的得分加算到判定值上。

再者,行为验证部240,在存储位置“2”中,验证返回地址A是否与包含在行为模型中的返回地址中的某一个一致。在图6中,由于返回地址A与包含在行为模型中的返回地址(B或A)中的某一个一致,所以行为验证部240不将与存储位置“2”相对应的得分加算到判定值上。

然后,行为验证部240将累积加算得分后的判定值(图6中1/2)作为该堆栈信息的累积得分,将对多个堆栈信息每一个计算出的累积得分,加算到异常得分上。

最终,行为验证部240判定异常得分是否超过规定判定值,判定监视对象软件的行为是否正常。此处,规定判定值是预先设定的值,是包含0的任意的数。此外,还可以将异常得分的增加比率的值利用到判定中。

另外,可以根据系统调用的发行次数,对累积得分进行归一化。此外,可以通过与预先设定的次数的系统调用对应的判定值的合计(累积值)来判断监视对象软件的行为是否正常。例如,当预先设定的次数为5次的情况下,在分别计算出与系统调用发行第1~5次对应的判定值的合计(累积值)、与系统调用发行第2~6次对应的判定值的合计(累积值)、与系统调用发行第3~7次对应的判定值的合计(累积值)的基础上,根据各累积值来判断监视对象软件的行为是否正常。

(软件行为验证方法)

以下,参照附图说明第2实施方式的软件行为验证方法,图7是表示第2实施方式的软件行为验证方法的流程图。图7中,作为特定事件,例如来说明发生系统调用的例。另外,在该例中,作为事件信息取得表示系统调用的系统调用信息。

如图7所示,在步骤20中,软件行为验证装置200取得监视对象软件的行为模型(参照上述的图6(a))。

在步骤21中,软件行为验证装置200,开始对监视对象软件进行监视。

在步骤22中,软件行为验证装置200取得表示包含在监视对象软件中的进程所发行的系统调用的系统调用信息。

在步骤23中,软件行为验证装置200在发生系统调用的时刻,取得存储在调用栈中的堆栈信息(多个返回地址)(参照上述的图6(b))。

在步骤24中,软件行为验证装置200参照与系统调用信息对应的行为模型,对每一返回地址存储位置,判定在步骤23中取得的返回地址是否与包含在行为模型中的返回地址中的某一个一致。此外,软件行为验证装置200,在有返回地址一致的情况下,移动到步骤26的处理,在没有返回地址一致的情况下,移动到步骤25的处理。

在步骤25中,软件行为验证装置200,将与返回地址的存储位置对应的得分加算到判定值上。

在步骤26中,软件行为验证装置200,判定判定值是否超过规定判定值、以及判定监视对象软件的运行是否结束了。软件行为验证装置200,在判定值超过规定判定值的情况下,判定为监视对象软件的行为异常。另一方面,在结束了监视对象软件的运行的情况下,判定为监视对象软件的行为正常。

另外,软件行为验证装置200,在判定值没有超过规定判定值,且没有结束监视对象软件的运行的情况下,重复步骤22~步骤25的处理。

(作用以及效果)

根据第2实施方式的软件行为验证装置200(软件行为验证方法),行为验证部240,使用与返回地址的存储位置相对应地设定的得分,判定监视对象软件的行为是否偏离了行为模型。这样,通过注意观察返回地址的存储位置,就能够提高监视对象软件的行为的验证精度。

此外,因为不需要如现有技术那样使用差分信息(Virtual Path),所以能够减轻软件行为验证装置200的处理负荷,提高软件行为验证装置200的处理速度。

根据第2实施方式的软件行为验证装置200(软件行为验证方法),行为验证部240,对每一存储位置,比较存储在调用栈中的返回地址与包含在行为模型中的返回地址,在返回地址不一致的情况下累积加算得分。行为验证部240,根据累积加算后的得分(判定值),验证监视对象软件的行为。因此,即使是通过攻击者的攻击,运行了对于软件行为验证装置200来说完全未知的软件的情况下,也能够检测出软件的异常。

(其他实施方式)

通过上述的实施方式说明了本发明,但不应该理解为:构成该公开的一部分的论述以及附图,是限定该发明的。根据该公开,对于本领域的技术人员来说,各种替代实施方式、实施例以及运用技术会更加清晰。

例如,虽然在上述的实施方式中没有特意提及,但得分设定部125以及行为模型生成部130,可以在提取出存储在调用栈中的返回地址中的,用于行为模型的生成的模型化对象返回地址的基础上,使用根据模型化对象返回地址的存储位置设定的得分,来生成学习对象模型的行为模型。

此处,模型化对象返回地址,可以是存储在调用栈中的返回地址中的,从调用栈的上位开始依次提取出的规定数量的返回地址。此外,模型化对象返回地址可以是存储在调用栈中的返回地址中的,得分大于等于规定阈值的返回地址。

在所述的实施方式中,得分设定部125,在一个系统调用和一个返回地址的关系中,设定与一个返回地址对应的得分,但是并不限于此。即,行为模型生成部130,对一个系统调用和一个返回地址的关系进行模型化,但并不限于此。

具体地说,得分设定部125,可以在一个系统调用与考虑了从调用栈的上位开始的顺序的多个返回地址的排列的关系中,设定与多个返回地址对应的得分。即,行为模型生成部130,可以对一个系统调用与考虑了从调用栈的上位开始的顺序的多个返回地址的排列的关系进行模型化。

虽然在上述的实施方式中没有特意提及,但得分设定部125,可以关于在发生了系统调用的时刻存储在调用栈中的返回地址,考虑其系统调用内的出现次数的比率来对返回地址设定得分。

虽然在上述的实施方式中没有特意提及,但得分设定部125,可以考虑多个返回地址的相关系来设定得分。

例如,在返回地址A和返回地址B的相关高的情况下,在一个存储位置中返回地址B和返回地址A同时出现时,在返回地址A偏离了模型的情况下,可以对一个存储位置,设定低的得分。此外,在出现了返回地址A的情况下,也可以不检查返回地址B。或者,在出现了返回地址B的情况下,可以不检查返回地址A。

产业上的利用可能性

如以上说明过的那样,根据本发明的软件行为模型化装置、软件行为模型化方法、软件行为验证装置以及软件行为验证方法,能够保持软件行为的验证精度,同时,能简单地验证软件的行为,所以是有用的。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号