CN110688368B - 一种构件行为模型挖掘方法与装置 - Google Patents

一种构件行为模型挖掘方法与装置 Download PDF

Info

Publication number
CN110688368B
CN110688368B CN201910929085.4A CN201910929085A CN110688368B CN 110688368 B CN110688368 B CN 110688368B CN 201910929085 A CN201910929085 A CN 201910929085A CN 110688368 B CN110688368 B CN 110688368B
Authority
CN
China
Prior art keywords
parameter
invariance
component
component behavior
behavior
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.)
Active
Application number
CN201910929085.4A
Other languages
English (en)
Other versions
CN110688368A (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.)
Wuhan Institute of Technology
Original Assignee
Wuhan Institute of Technology
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 Wuhan Institute of Technology filed Critical Wuhan Institute of Technology
Priority to CN201910929085.4A priority Critical patent/CN110688368B/zh
Publication of CN110688368A publication Critical patent/CN110688368A/zh
Application granted granted Critical
Publication of CN110688368B publication Critical patent/CN110688368B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/212Schema design and management with details for data modelling support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Fuzzy Systems (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种构件行为模型挖掘方法与装置,该方法包括:S1)运行包含构件的软件,动态采集构件的带参行为交互序列,构成序列集合;S2)合并具有不同参数值的相同构件行为交互序列;S3)基于合并后的构件行为交互序列构建一棵树;S4)合并树中的等价节点获得有限状态机R’;S5)根据参数观察值集合归纳参数的不变式作为有限状态机R’中对应边的守护条件;S6)计算有限状态机R’中构件行为满足参数不变式的概率;S7)基于步骤S6)中迁移发生的概率得到最终的带参概率自动机表示的构件行为模型。本发明考虑了构件行为模型中参数‑构件行为之间的依赖关系并采用概率模型对模型挖掘过程中的噪声进行有效处理,可获得更精确的构件行为模型。

Description

一种构件行为模型挖掘方法与装置
技术领域
本发明涉及计算机技术,尤其涉及一种构件行为模型挖掘方法与装置。
背景技术
构件行为模型又被称为构件接口约束、对象/API使用模式以及类型状态等。以对象、中间件和Web服务等形式存在的构件是软件系统的主体。构件内部的数据依赖和控制依赖外化为构件固有的行为模式。例如:对文件对象进行操作时应首先“打开文件”,然后多次“读文件”或者“写文件”,最后必须“关闭文件”。上述构件行为之间的时序约束形成了构件行为模型。构件行为模型代表了正确使用构件需要满足的前置条件,是进行软件漏洞检测的重要依据。据统计,Eclipse错误仓库中至少包含100项以上与构件行为模型相关的软件错误。然而,人工对复杂构件的行为模型进行精确描述是一项困难的工作。得益于软件大数据的发展,采用数据挖掘方法自动获取构件行为模型并进行软件漏洞检测已成为近年来软件工程领域的热点研究方向。
目前学术界和工业界对构件行为模型挖掘均开展了大量的研究工作。其中存在的主要问题是通过挖掘获得的构件行为模型精度不足,以至于在软件漏洞检测中产生大量的误报和漏报,从而极大的降低漏洞检测工具的可用性和用户体验。构件行为模型挖掘的精度主要取决于建模能力。虽然图模型和有限状态机具有表达复杂构件行为模型的能力,但是已有研究关注的重点在于构件行为之间的时序约束,对于参数-构件行为之间的依赖缺乏有效的建模方法和挖掘算法。
发明内容
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种构件行为模型挖掘方法与装置。
本发明解决其技术问题所采用的技术方案是:一种构件行为模型挖掘方法,包括以下步骤:
S1)运行包含构件的软件,动态采集带参数的构件行为交互序列,构成序列集合C;所述带参数的构件行为交互序列中的参数为用于约束构件行为的参数;
S2)合并具有不同参数值的相同构件行为交互序列,合并后的序列中,同一个参数a对应一个参数观察值集合B(a)=ai…an
S3)基于合并后的构件行为交互序列构建一棵树R,其中,树的节点代表构件行为对象的状态q,树的边代表该状态下可执行的构件行为m和参数值集合B(a);
S4)合并步骤S3)中树R中的等价节点获得有限状态机R’;
S5)根据参数观察值集合B(a)归纳参数a的不变式f(a)作为有限状态机R’中对应边的守护条件;
S6)计算有限状态机R’中边
Figure BDA0002219794320000031
在守护条件f(a)下迁移发生的概率,即参数-构件行为依赖概率,
Figure BDA0002219794320000032
其中,C(q1,q2)为R’生成C中构件行为交互序列时边(q1,q2)被访问的次数;C(q1)为R’生成C中构件行为交互序列时节点q1被访问的次数,m为与边关联的构件行为;
S7)基于步骤S6)中迁移发生的概率得到最终的带参概率自动机表示的构件行为模型,
则所述带参概率自动机表示为一个7元组(Σ,Q,D,q0,QE,F,t),其中,
Σ为非空的构件行为集合;
Q为非空有限状态集合;
D=D1×D2×…×Dn∪{φ}为n维参数空间;n表示用于约束构件行为的参数共有n个;
q0∈Q为唯一起始状态;
Figure BDA0002219794320000033
为非空终止状态集合;
F为一个关于构件行为参数的布尔函数(即参数不变式)集合fi,fi:D→{0,1};
t:Q×Σ×F×Q→[0,1]为参数-构件行为依赖概率分布函数。
按上述方案,所述步骤S5)中根据参数观察值集合B(a)归纳参数a的不变式,包括:
若参数a为数值类型的参数,采用基于模板演化的数值不变式学习方法归纳参数的不变式;
若参数a为字符串类型的参数,采用正则表达式自动学习工具RegexGenerator++从参数观察值集合中推理出正则表达式形式的参数不变式。
按上述方案,所述基于模板演化的参数不变式学习方法,包括:
S51)令参数a满足的不变式为空不变式,即a=ε;
S52)参数a是否还存在未处理的观察值;若存在则转入S53),若不存在则输出a的不变式;
S53)获取参数a的任一观察值v∈B(a);
S54)如果v在B(a)中出现的次数大于预设的观察次数阈值Tc则转入S55);
S55)如果a=ε,则转入S56);
S56)将a满足的不变式演化为等值不变式,即a=v;
S57)如果a=u并且u≠v则转入S58);
S58)将a满足的不变式演化为集合不变式,即a∈{u,v};
S59)如果a=u1…un并且v≠u1…un并且n<Ts(Ts为集合不变式到范围不变式的演化阈值),则转入S510);
S510)更新集合不变式,添加新的数值v,即a∈u1…un∪{v};
S511)如果a=u1…un并且v≠u1…un并且n≥Ts,则转入S512);
S512)将a满足的不变式演化为范围不变式,即有min(u1…un∪{v})≤a≤max(u1…un∪{v});
S513)如果u1≤a≤un并且v<u1则转入S514;
S514)更新范围不变式,修改范围的下界,即v≤a≤un
S515)如果u1≤a≤un并且v>un则转入S516;
S516)更新范围不变式,修改范围的上界,即u1≤a≤v;
S517)转到S52)。
按上述方案,所述S4)等价节点判定方法为:
假设q1和q2是树R中的两个节点,若其满足下列三个条件之一,则q1和q2等价;
1)k-tails(q1)=k-tails(q2)
2)
Figure BDA0002219794320000061
或者/>
Figure BDA0002219794320000062
3)存在一个节点q,使得边(q,q1)与(q,q2)关联的构件行为及参数均相同
所述节点的k-tails是指节点所能接受的最大长度为k的构件行为交互序列构成的集合。
一种构件行为模型挖掘装置,包括:程序动态分析器和基于带参概率自动机的构件行为模型推理模块;
程序动态分析器,用于采集构件的带参构件行为交互序列,获取带参构件行为交互序列集合;
基于带参概率自动机的构件行为模型推理模块,用于根据带参构件行为交互序列集合,推理出带参概率自动机形式的构件行为模型;包括:
构件行为交互序列预处理子模块,用于合并具有不同参数值的相同构件行为交互序列,合并后的序列中,同一个参数a对应一个观察值集合B(a)=ai…an
构建树子模块,用于基于合并后的构件行为交互序列构建一棵树R,其中,树的节点代表构件行为对象的状态q,树的边代表该状态下可执行的构件行为m和参数值集合B(a);
构建有限状态机子模块,用于合并树R中的等价节点获得有限状态机R’;
参数不变式获取子模块,用于根据参数观察值集合B(a)归纳参数a的不变式f(a)作为有限状态机R’中对应边的守护条件;
概率计算子模块,用于计算有限状态机R’中构件行为m满足参数不变式f(a)下的概率,即参数-构件行为依赖概率,
Figure BDA0002219794320000071
其中,C(q1,q2)为R’生成C中构件行为交互序列时边(q1,q2)被访问的次数;C(q1)为R’生成C中构件行为交互序列时节点q1被访问的次数,m为与边关联的构件行为;
构件行为模型生成子模块,用于基于参数-构件行为依赖概率得到最终的带参概率自动机表示的构件行为模型,
则所述带参概率自动机表示为一个7元组(Σ,Q,D,q0,QE,F,t),其中,
Σ为非空的构件行为集合;
Q为非空有限状态集合;
D=D1×D2×…×Dn∪{φ}为n维参数空间;表示用于约束构件行为的参数共有n个;
q0∈Q为唯一起始状态;
Figure BDA0002219794320000072
为非空终止状态集合;
F为一个关于构件行为参数的布尔函数(即参数不变式)集合fi,fi:D→{0,1};
t:Q×Σ×F×Q→[0,1]为参数-构件行为依赖概率分布函数。
按上述方案,所述参数不变式获取子模块中根据参数观察值集合B(a)归纳参数a的不变式,具体如下:
若参数a为数值类型的参数,采用基于模板演化的数值不变式学习方法归纳参数的不变式;
若参数a为字符串类型的参数,采用正则表达式自动学习工具RegexGenerator++从参数观察值集合中推理出正则表达式形式的参数不变式。
按上述方案,所述基于模板演化的参数不变式学习方法,包括:
S1)令参数a满足的不变式为空不变式,即a=ε;
S2)参数a是否还存在未处理的观察值;若存在则转入S3),若不存在则输出a的不变式;
S3)获取参数a的任一观察值v∈B(a);
S4)如果v在B(a)中出现的次数大于预设的观察次数阈值Tc则转入S5);
S5)如果a=ε,则转入S6);
S6)将a满足的不变式演化为等值不变式,即a=v;
S7)如果a=u并且u≠v则转入S8);
S8)将a满足的不变式演化为集合不变式,即a∈{u,v};
S9)如果a=u1…un并且v≠u1…un并且n<Ts(Ts为集合不变式到范围不变式的演化阈值),则转入S10);
S10)更新集合不变式,添加新的数值v,即a∈u1…un∪{v};
S11)如果a=u1…un并且v≠u1…un并且n≥Ts,则转入S12);
S12)将a满足的不变式演化为范围不变式,即有min(u1…un∪{v})≤a≤max(u1…un∪{v});
S13)如果u1≤a≤un并且v<u1则转入S14;
S14)更新范围不变式,修改范围的下界,即v≤a≤un
S15)如果u1≤a≤un并且v>un则转入S16;
S16)更新范围不变式,修改范围的上界,即u1≤a≤v;
S17)转到S2)。
按上述方案,所述构建有限状态机子模块中等价节点判定方法为:
假设q1和q2是树R中的两个节点,若其满足下列三个条件之一,则q1和q2等价;
1)k-tails(q1)=k-tails(q2)
2)
Figure BDA0002219794320000101
或者/>
Figure BDA0002219794320000102
3)存在一个节点q,使得边(q,q1)与(q,q2)关联的构件行为及参数均相同
所述节点的k-tails是指节点所能接受的最大长度为k的构件行为交互序列构成的集合。
本发明产生的有益效果是:
1、通过在迁移中添加构件行为参数的不变式作为守护条件,使用概率形式表达参数-构件行为之间的特殊依赖关系并且这种概率形式描述的关系对噪声具有较好的抵抗能力;
2、带参概率自动机模型推理方法全面的考虑了数值类型的参数和字符串类型的参数并且针对不同数据类型参数的特点提供了基于模板演化的参数不变式学习方法和正则表达式参数不变式学习方法,全方位的、多种数据类型参数不变式的归纳方法进一步保障了构件行为模型挖掘的精度;
3、基于模板演化的参数不变式学习方法通过模板演化的策略可学习出等值不变式、集合不变式和范围不变式等多种形式的参数不变式,较已有工作中基于模板匹配的方法具有更高的效率。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为本发明实施例中带参概率自动机描述的文件对象行为模型示意图;
图2为本发明实施例中带参概率自动机模型的推理方法执行流程图;
图3为本发明实施例中基于模板演化的参数不变式学习方法执行流程图;
图4为本发明实施例中为本发明的构件行为模型挖掘装置图;
图5为根据构件行为交互序列构造的树图;
图6为合并等价状态后的有限状态机图;
图7为带守护条件的有限状态机图;
图8带参概率自动机表示的构件行为模型图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供了一种构件行为模型挖掘方法,通过该方法将构件行为模型表示为一个7元组(Σ,Q,D,q0,QE,F,t),其中,
Σ为非空的构件行为集合;
Q为非空有限状态集合;
D=D1×D2×…×Dn∪{φ}为n维参数空间;
q0∈Q为唯一起始状态;
Figure BDA0002219794320000121
为非空终止状态集合;
F为一个关于构件行为参数的布尔函数(即参数不变式)集合fi,fi:D→{0,1};
t:Q×Σ×F×Q→[0,1]为状态迁移概率分布函数。
便于直观理解,图1给出了采用带参概率自动机描述的文件对象行为模型示意图,其中构件行为集合
Σ={fopen,fwrite,fread,fopen};
带入射箭头的圆圈为初始状态;双圆圈表示终止状态;布尔函数集合F={mode=‘w’,T},mode=‘w’表示构件行为fopen的参数mode=‘w’时,布尔函数取值为1,反之为0,T表示一个值永远为1的布尔函数;迁移中的数值表示状态发生迁移的概率。通过在状态迁移中关联参数信息,带参概率自动机可表达P(t|F)这种具有参数依赖的构件行为时序约束信息。
如图2所示,一种构件行为模型挖掘方法,包括:
S1、假设J为一个软件构件,m(J)为构件J的行为集合,应用了构件J的程序为其客户端程序;
S2、运行构件J的客户端程序,动态采集构件J的带参行为交互序列,构成序列集合C。所述构件J的带参行为交互序列为如下所示的序列:
Figure BDA0002219794320000131
其中,mi∈m(J),i=1…n,Pi为构件行为mi执行时的参数值集合;
S3、合并上述序列集合C中具有不同参数值的相同构件行为交互序列,合并后的序列中,一个参数a对应一个参数观察值集合B(a)=a1…an
S4、基于合并后的构件行为交互序列构建一棵树R,其中节点代表状态q,边代表该状态下可执行的构件行为m和参数值集合B(a)。树R中每个分支对应集合C中的一条构件行为交互序列;
S5、将上述树R中的等价节点进行合并形成一个有限状态机R’。节点合并时,节点的边以及与边关联的参数值集合均进行合并;
步骤S5中的等价节点判定方法为:
假设q1和q2是树R中的两个节点,若其满足下列三个条件之一,则q1和q2等价;
1)k-tails(q1)=k-tails(q2)
2)
Figure BDA0002219794320000132
或者/>
Figure BDA0002219794320000133
3)存在一个节点q,使得边(q,q1)与(q,q2)关联的构件行为及参数均相同
所述节点的k-tails是指节点所能接受的最大长度为k的构件行为交互序列构成的集合;
S6、根据参数观察值集合B(a)归纳出参数a的不变式f(a)作为R’中对应边的守护条件;
步骤S6中的不变式归纳方法为:
针对数值类型的参数,采用基于模板演化的数值不变式学习方法;
针对字符串类型的参数,采用正则表达式自动学习工具RegexGenerator++从参数观察值集合中推理出正则表达式形式的参数不变式。
上述基于模板演化的参数不变式学习方法,如图3所示,包括:
1、令参数a满足的不变式为空不变式,即a=ε;
2、参数a是否还存在未处理的观察值;
3、获取参数a的任一观察值v∈B(a);
4、如果v在B(a)中出现的次数大于观察次数阈值Tc则转入步骤5;
5、如果a=ε则转入步骤6;
6、a满足的不变式演化为等值不变式,即a=v;
7、如果a=u并且u≠v则转入步骤8;
8、a满足的不变式演化为集合不变式,即a∈{u,v};
9、如果a=u1…un并且v≠u1…un并且n<Ts(Ts为集合不变式到范围不变式的演化阈值),则转入步骤10;
10、更新集合不变式,添加新的数值v,即a∈u1…un∪{v};
11、如果a=u1…un并且v≠u1…un并且n≥Ts,则转入步骤12;
12、a满足的不变式演化为范围不变式,即有min(u1…un∪{v})≤a≤max(u1…un∪{v});
13、如果u1≤a≤un并且v<u1则转入步骤14;
14、更新范围不变式,修改范围的下界,即v≤a≤un
15、如果u1≤a≤un并且v>un则转入步骤16;
16、更新范围不变式,修改范围的上界,即u1≤a≤v。
S7、采用如下公式计算R’中边
Figure BDA0002219794320000151
在守护条件f(a)下迁移发生的概率,即参数-构件行为依赖概率,其中m为与边关联的构件行为,
Figure BDA0002219794320000152
其中,C(q1,q2)为R’生成C中构件行为交互序列时边(q1,q2)被访问的次数;C(q1)为R’生成C中构件行为交互序列时节点q1被访问的次数。
根据上述方法,如图4所示,我们还提供了一种构件行为模型挖掘装置,包括程序动态分析器和基于带参概率自动机的构件行为模型推理模块。
程序动态分析器:程序动态分析器从给定程序中采集特定构件的带参构件行为交互序列,形成带参构件行为交互序列集合;
基于带参概率自动机的构件行为模型推理模块:以上述带参构件行为交互序列集合作为输入,采用本发明的方法推理出带参概率自动机形式的构件行为模型;
包括:
构件行为交互序列预处理子模块,用于合并具有不同参数值的相同构件行为交互序列,合并后的序列中,同一个参数a对应一个观察值集合B(a)=ai…an
构建树子模块,用于基于合并后的构件行为交互序列构建一棵树R,其中,树的节点代表构件行为对象的状态q,树的边代表该状态下可执行的构件行为m和参数值集合B(a);
构建有限状态机子模块,用于合并树R中的等价节点获得有限状态机R’;
参数不变式获取子模块,用于根据参数观察值集合B(a)归纳参数a的不变式f(a)作为有限状态机R’中对应边的守护条件;
概率计算子模块,用于计算有限状态机R’中边
Figure BDA0002219794320000161
在守护条件f(a)下迁移发生的概率,即参数-构件行为依赖概率,
Figure BDA0002219794320000162
其中,C(q1,q2)为R’生成C中构件行为交互序列时边(q1,q2)被访问的次数;C(q1)为R’生成C中构件行为交互序列时节点q1被访问的次数,m为与边关联的构件行为;
构件行为模型生成子模块,用于基于参数-构件行为依赖概率得到最终的带参概率自动机表示的构件行为模型,
则所述带参概率自动机表示为一个7元组(Σ,Q,D,q0,QE,F,t),其中,
Σ为非空的构件行为集合;
Q为非空有限状态集合;
D=D1×D2×…×Dn∪{φ}为n维参数空间;n表示用于约束构件行为的参数共有n个;
q0∈Q为唯一起始状态;
Figure BDA0002219794320000171
为非空终止状态集合;
F为一个关于构件行为参数的布尔函数(即参数不变式)集合fi,fi:D→{0,1};
t:Q×Σ×F×Q→[0,1]为参数-构件行为依赖概率分布函数。
实施例一
本实施例提供了一种构件行为模型挖掘方法,本实施例中,目标构件设定为文件对象。文件对象的构件行为及参数信息如表1所示。
表1文件对象构件行为及参数信息
Figure BDA0002219794320000181
使用文件对象的程序为其客户端程序。客户端程序在使用文件对象时需遵循其构件行为模型,即:必须首先打开一个文件(fopen),然后才能对该文件进行读(fread)或者写(fwrite)操作,最后必须关闭文件(fclose)。此外,上述构件行为之间的时序约束还有构件行为的参数有关,具体为:只有以只写模式(mode=’w’)打开的文件,才能进行写操作;只有以只读模式(mode=’r’)打开的文件,才能进行读操作。上述构件行为之间的时序约束及构件行为-参数之间的依赖关系构成了构件行为模型。该实施例以文件对象作为目标构件,对本发明的一种构件行为模型挖掘方法及装置进行说明。
首先,采用程序动态分析技术从文件对象的客户端程序中采集带参数的构件行为交互序列。假设采集到的带参构件行为交互序列集合C中共包含如下4个元素:
序列1:
Figure BDA0002219794320000191
序列2:
Figure BDA0002219794320000192
序列3:
Figure BDA0002219794320000193
序列4:
Figure BDA0002219794320000194
基于上述构件行为交互序列集合C,本发明的一种构件行为模型挖掘方法为:
步骤1:合并上述序列集合C中具有不同参数值的相同构件行为交互序列。由于集合C中没有相同的构件行为交互序列,所以合并后的序列与合并前相同;
步骤2:基于步骤1中合并后的构件行为交互序列集合构造树R,如图5所示;
步骤3:合并步骤2中树R中的等价节点获得有限状态机R’,如图6所示;
步骤4:根据参数观察值集合B(a)归纳出参数a的不变式f(a)作为R’中对应边的守护条件。如图7所示,边(q0,q12)有参数mode观察值集合B(mode)={w,w},应用基于模板演化的参数不变式学习方法可获得参数不变式mode=‘w’;同理,可获得边(q0,q1)上的参数不变式mode=‘r’。将上述不变式作为对应边迁移发生的守护条件得到如图7所示的有限状态机;
步骤5:计算R’中特定守护条件下迁移发生的概率,有:
p(q0,q12,fopen,mode=’w’)=2/4=0.5
p(q0,q1,fopen,mode=’r’)=2/4=0.5
p(q12,q12,fwrite,T)=1/2=0.5
p(q12,q2,fwrite,T)=1/2=0.5
p(q1,q1,fread,T)=1/2=0.5
p(q1,q2,fread,T)=1/2=0.5
p(q2,q3,fclose,T)=4/4=1
基于上述迁移发生的概率可得最终的带参概率自动机表示的构件行为模型,如图8所示。
获得的构件行为模型可用于程序理解、程序文档自动生成以及软件漏洞检测等多个领域。以软件漏洞检测为例,基于构件行为模型的软件漏洞检测工作过程如下:
步骤1:从构件的客户端程序中采集带参数的构件行为交互序列。假设获得构件行为交互序列为:
Figure BDA0002219794320000211
步骤2:根据构件行为模型验证上述构件行为交互序列是否合法,具体为:
若图8所示的构件行为模型能产生该序列且产生该序列的路径上概率的乘积大于给定阈值则该序列为合法的构件行为交互序列,反之该序列中存在错误。
显然,图8所示的构件行为模型不能产生上述序列且第一个不匹配的构件行为为fread,则说明fwrite之后不应该执行构件行为fread,所以上述构件行为交互序列中存在软件错误。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (8)

1.一种构件行为模型挖掘方法,其特征在于,包括以下步骤:
S1)运行包含构件的软件,动态采集带参数的构件行为交互序列,构成序列集合C;所述带参数的构件行为交互序列中的参数为用于约束构件行为的参数;
S2)合并具有不同参数值的相同构件行为交互序列,合并后的序列中,同一个参数a对应一个参数观察值集合B(a)=ai…an
S3)基于合并后的构件行为交互序列构建一棵树R,其中,树的节点代表构件行为对象的状态q,树的边代表该状态下可执行的构件行为m和参数值集合B(a);
S4)合并步骤S3)中树R中的等价节点获得有限状态机R’;
S5)根据参数观察值集合B(a)归纳参数a的不变式f(a)作为有限状态机R’中对应边的守护条件;
S6)计算有限状态机R’中边
Figure FDA0004048189380000011
在守护条件f(a)下迁移发生的概率,即参数-构件行为依赖概率,
Figure FDA0004048189380000012
其中,C(q1,q2)为R’生成C中构件行为交互序列时边(q1,q2)被访问的次数;C(q1)为R’生成C中构件行为交互序列时节点q1被访问的次数,m为与边关联的构件行为;
S7)基于步骤S6)中迁移发生的概率得到最终的带参概率自动机表示的构件行为模型,
则所述带参概率自动机表示为一个7元组(Σ,Q,D,q0,QE,F,t),其中,
Σ为非空的构件行为集合;
Q为非空有限状态集合;
D=D1×D2×…×Dn∪{φ}为n维参数空间;n表示用于约束构件行为的参数共有n个;
q0∈Q为唯一起始状态;
Figure FDA0004048189380000021
为非空终止状态集合;
F为一个关于构件行为参数的布尔函数集合fi,fi:D→{0,1};
t:Q×Σ×F×Q→[0,1]为参数-构件行为依赖概率分布函数。
2.根据权利要求1所述的构件行为模型挖掘方法,其特征在于,所述步骤S5)中根据参数观察值集合B(a)归纳参数a的不变式,包括:
若参数a为数值类型的参数,采用基于模板演化的数值不变式学习方法归纳参数的不变式;
若参数a为字符串类型的参数,采用正则表达式自动学习工具RegexGenerator++从参数观察值集合中推理出正则表达式形式的参数不变式。
3.根据权利要求2所述的构件行为模型挖掘方法,其特征在于,所述基于模板演化的参数不变式学习方法,包括:
S51)令参数a满足的不变式为空不变式,即a=ε;
S52)参数a是否还存在未处理的观察值;若存在则转入S53),若不存在则输出a的不变式;
S53)获取参数a的任一观察值v∈B(a);
S54)如果v在B(a)中出现的次数大于预设的观察次数阈值Tc则转入S55);
S55)如果a=ε,则转入S56);
S56)将a满足的不变式演化为等值不变式,即a=v;
S57)如果a=u并且u≠v则转入S58);
S58)将a满足的不变式演化为集合不变式,即a∈{u,v};
S59)如果a=u1…un并且v≠u1…un并且n<Ts,其中,Ts为集合不变式到范围不变式的演化阈值,则转入S510);
S510)更新集合不变式,添加新的数值v,即a∈u1…un∪{v};
S511)如果a=u1…un并且v≠u1…un并且n≥Ts,则转入S512);
S512)将a满足的不变式演化为范围不变式,即有min(u1…un∪{v})≤a≤max(u1…un∪{v});
S513)如果u1≤a≤un并且v<u1则转入S514;
S514)更新范围不变式,修改范围的下界,即v≤a≤un
S515)如果u1≤a≤un并且v>un则转入S516;
S516)更新范围不变式,修改范围的上界,即u1≤a≤v;
S517)转到S52)。
4.根据权利要求1所述的构件行为模型挖掘方法,其特征在于,所述S4)等价节点判定方法为:
假设q1和q2是树R中的两个节点,若其满足下列三个条件之一,则q1和q2等价;
1)k-tails(q1)=k-tails(q2)
2)
Figure FDA0004048189380000041
或者/>
Figure FDA0004048189380000042
3)存在一个节点q,使得边(q,q1)与(q,q2)关联的构件行为及参数均相同所述节点的k-tails是指节点所能接受的最大长度为k的构件行为交互序列构成的集合。
5.一种构件行为模型挖掘装置,其特征在于,包括:程序动态分析器和基于带参概率自动机的构件行为模型推理模块;
程序动态分析器,用于采集构件的带参构件行为交互序列,获取带参构件行为交互序列集合;
基于带参概率自动机的构件行为模型推理模块,用于根据带参构件行为交互序列集合,推理出带参概率自动机形式的构件行为模型;包括:
构件行为交互序列预处理子模块,用于合并具有不同参数值的相同构件行为交互序列,合并后的序列中,同一个参数a对应一个观察值集合B(a)=ai…an
构建树子模块,用于基于合并后的构件行为交互序列构建一棵树R,其中,树的节点代表构件行为对象的状态q,树的边代表该状态下可执行的构件行为m和参数值集合B(a);
构建有限状态机子模块,用于合并树R中的等价节点获得有限状态机R’;
参数不变式获取子模块,用于根据参数观察值集合B(a)归纳参数a的不变式f(a)作为有限状态机R’中对应边的守护条件;
概率计算子模块,用于计算有限状态机R’中边
Figure FDA0004048189380000051
在守护条件f(a)下迁移发生的概率,即参数-构件行为依赖概率,
Figure FDA0004048189380000052
其中,C(q1,q2)为R’生成C中构件行为交互序列时边(q1,q2)被访问的次数;C(q1)为R’生成C中构件行为交互序列时节点q1被访问的次数,m为与边关联的构件行为;
构件行为模型生成子模块,用于基于参数-构件行为依赖概率得到最终的带参概率自动机表示的构件行为模型,
则所述带参概率自动机表示为一个7元组(Σ,Q,D,q0,QE,F,t),其中,
Σ为非空的构件行为集合;
Q为非空有限状态集合;
D=D1×D2×…×Dn∪{φ}为n维参数空间;n表示用于约束构件行为的参数共有n个;
q0∈Q为唯一起始状态;
Figure FDA0004048189380000061
为非空终止状态集合;
F为一个关于构件行为参数的布尔函数集合fi,fi:D→{0,1};
t:Q×Σ×F×Q→[0,1]为参数-构件行为依赖概率分布函数。
6.根据权利要求5所述的构件行为模型挖掘装置,其特征在于,所述参数不变式获取子模块中根据参数观察值集合B(a)归纳参数a的不变式,具体如下:
若参数a为数值类型的参数,采用基于模板演化的数值不变式学习方法归纳参数的不变式;
若参数a为字符串类型的参数,采用正则表达式自动学习工具RegexGenerator++从参数观察值集合中推理出正则表达式形式的参数不变式。
7.根据权利要求6所述的构件行为模型挖掘装置,其特征在于,所述基于模板演化的参数不变式学习方法,包括:
S1)令参数a满足的不变式为空不变式,即a=ε;
S2)参数a是否还存在未处理的观察值;若存在则转入S3),若不存在则输出a的不变式;
S3)获取参数a的任一观察值v∈B(a);
S4)如果v在B(a)中出现的次数大于预设的观察次数阈值Tc则转入S5);
S5)如果a=ε,则转入S6);
S6)将a满足的不变式演化为等值不变式,即a=v;
S7)如果a=u并且u≠v则转入S8);
S8)将a满足的不变式演化为集合不变式,即a∈{u,v};
S9)如果a=u1…un并且v≠u1…un并且n<Ts,Ts为集合不变式到范围不变式的演化阈值,则转入S10);
S10)更新集合不变式,添加新的数值v,即a∈u1…un∪{v};
S11)如果a=u1…un并且v≠u1…un并且n≥Ts,则转入S12);
S12)将a满足的不变式演化为范围不变式,即有min(u1…un∪{v})≤a≤max(u1…un∪{v});
S13)如果u1≤a≤un并且v<u1则转入S14;
S14)更新范围不变式,修改范围的下界,即v≤a≤un
S15)如果u1≤a≤un并且v>un则转入S16;
S16)更新范围不变式,修改范围的上界,即u1≤a≤v;
S17)转到S2)。
8.根据权利要求5所述的构件行为模型挖掘装置,其特征在于,所述构建有限状态机子模块中等价节点判定方法为:
假设q1和q2是树R中的两个节点,若其满足下列三个条件之一,则q1和q2等价;
1)k-tails(q1)=k-tails(q2)
2)
Figure FDA0004048189380000081
或者/>
Figure FDA0004048189380000082
3)存在一个节点q,使得边(q,q1)与(q,q2)关联的构件行为及参数均相同所述节点的k-tails是指节点所能接受的最大长度为k的构件行为交互序列构成的集合。
CN201910929085.4A 2019-09-28 2019-09-28 一种构件行为模型挖掘方法与装置 Active CN110688368B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910929085.4A CN110688368B (zh) 2019-09-28 2019-09-28 一种构件行为模型挖掘方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910929085.4A CN110688368B (zh) 2019-09-28 2019-09-28 一种构件行为模型挖掘方法与装置

Publications (2)

Publication Number Publication Date
CN110688368A CN110688368A (zh) 2020-01-14
CN110688368B true CN110688368B (zh) 2023-06-20

Family

ID=69110861

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910929085.4A Active CN110688368B (zh) 2019-09-28 2019-09-28 一种构件行为模型挖掘方法与装置

Country Status (1)

Country Link
CN (1) CN110688368B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112381615B (zh) * 2020-11-27 2022-09-02 华中科技大学 基于用户重复行为模式挖掘的短序列推荐方法
CN112433655B (zh) * 2020-12-04 2021-09-07 武汉迈异信息科技有限公司 基于云计算的信息流交互处理方法及云计算验证互动中心

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072876B1 (en) * 2000-09-19 2006-07-04 Cigital System and method for mining execution traces with finite automata
CN102135940A (zh) * 2011-04-22 2011-07-27 北京理工大学 一种基于有限自动机的行为自动建模方法
CN103761084B (zh) * 2013-12-31 2017-01-18 宁波城市职业技术学院 基于扩展活性顺序图模型检测的物联网可信性评价方法

Also Published As

Publication number Publication date
CN110688368A (zh) 2020-01-14

Similar Documents

Publication Publication Date Title
Chen et al. A decision-theoretic rough set approach for dynamic data mining
Küster et al. Validation of model transformations–first experiences using a white box approach
US7926026B2 (en) Graphical analysis to detect process object anomalies
CN112101562A (zh) 机器学习建模过程的实现方法和系统
WO2021045818A1 (en) Protecting machine learning models from privacy attacks
US20030023413A1 (en) Generalized software modeling tool
Dwivedi et al. Software design pattern mining using classification-based techniques
CN110688368B (zh) 一种构件行为模型挖掘方法与装置
Faria Non-determinism and failure modes in machine learning
Affleck et al. Non-functional requirements framework: A mathematical programming approach
Naeem et al. Scalable mutation testing using predictive analysis of deep learning model
Dwivedi et al. Applying learning-based methods for recognizing design patterns
Leno et al. Discovering data transfer routines from user interaction logs
Chouchen et al. Learning to predict code review completion time in modern code review
CN112766505B (zh) 非单调推理在逻辑动作语言系统刻画中的知识表示方法
CN111694570A (zh) 一种基于静态程序分析的JavaScript函数参数不匹配检测方法
WO2021183382A1 (en) Graph-based method for inductive bug localization
US10705810B2 (en) Automatic code generation
CN116702157A (zh) 一种基于神经网络的智能合约漏洞检测方法
US7904431B1 (en) Method and system for automated request modelling
US11722324B2 (en) Secure and accountable execution of robotic process automation
Kaliuzhna et al. Analysis of machine learning methods in the task of searching duplicates in the software code
Reinhartz-Berger et al. VarMeR-A Variability Mechanisms Recommender for Software Artifacts.
US11971804B1 (en) Methods and systems for an intelligent technical debt helper bot
Dahhani et al. A Graph Matching Algorithm to extend Wise Systems with Semantic

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant