CN105938451A - 不完全反馈模糊测试框架 - Google Patents
不完全反馈模糊测试框架 Download PDFInfo
- Publication number
- CN105938451A CN105938451A CN201510845116.XA CN201510845116A CN105938451A CN 105938451 A CN105938451 A CN 105938451A CN 201510845116 A CN201510845116 A CN 201510845116A CN 105938451 A CN105938451 A CN 105938451A
- Authority
- CN
- China
- Prior art keywords
- seed
- distribution
- test
- framework
- testing framework
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 88
- 238000005070 sampling Methods 0.000 claims description 5
- 238000004088 simulation Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 11
- 238000004519 manufacturing process Methods 0.000 abstract description 2
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 238000007630 basic procedure Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000037452 priming Effects 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明基于变异生成测试案例的情况,提出了一种不完全反馈模糊测试框架,该测试框架在CERT基本模糊测试框架的基础上引入隐式狄利克雷分布LDA。本发明提出的不完全反馈模糊测试框架,解决了模糊测试时,当目标系统的详细故障信息不能获取,而只能通过外部观测器获取部分信息时,现行方法失效的问题。与现行方法相比,本发明的测试框架可最大程度上发现目标系统应用的特定错误。本测试框架既不对种子的预选做任何前提假设,也不对测试案例的生产方式做任何限制。因此,本框架可与多种相关方法接合。另外,对测试环境和仪器也没有任何特殊要求。
Description
技术领域
本发明涉及软件系统安全性检测领域,具体涉及一种在仅能获取目标系统部分故障信息的情况下进行模糊测试的方法框架。此框架考虑了问题的随机性并创新性地利用隐式狄利克雷分布(LDA)通过系统的外部监测将测试输入与目标系统内部错误联系起来。
背景技术
发现目标系统的所有漏洞,关键在于能否获取目标系统报错信息的详细内容,也即列举攻击面的能力非常重要。在时间充足的情况下,目前通过核心文件的信息来联系测试输入和系统错误。然而,在例如工业控制系统等情况下,核心文件无法获取,测试框架就必须通过外部的一些指标来对错误状态进行估测。因为只能获取关于目标系统内部错误状态的不完整信息,联系测试输入与系统错误变得非常困难。
模糊测试或称为模糊检验是一种检测软件系统安全性的方法。模糊测试将目标系统的应用接口暴露给未经验证或无任何预期结果的输入,其目的在于诱发系统故障,如错误断言、例外、崩溃和内存泄露等。模糊测试在生成测试输入时不对目标系统做任何已知假设,因此是一种“黑箱”技术。模糊测试的基本流程如图1所示。
生成用于测试的案例有两种方式:一种是随机生成,另一种是由一个种子和一定的“变异”规则生成。种子一般根据所感兴趣的领域进行选择。例如,用于测试电子邮件程序的SMTP模糊测试器所选的种子不同于TCP/IP模糊测试器。种子选取、变异方式、以及目标系统的状态对测试结果都会产生影响。
通常情况下,可以获得系统故障信息的详细内容,故障信息的反馈是 “完整”的。例如核心文件(内存转储)允许分析员进行回溯进而确定导致系统故障的根本原因。在本文作所考虑的情况下,如核心文件这样的详细输出是没有的,仅能获取一些观测指标,而这些指标只能反映出一部分系统的故障信息。由于信息的“不完整”性,对故障模式的分类也会变的不完整和粗糙。现行方法便会失效,不能推断出导致系统故障的相关输入案例的特征。
目前模糊测试的发展主要集中在如何生成测试案例,例如网络协议的模糊测试主要关心如何生成测试数据包使其能绕过防火墙。尽管存在例如Sulley这样的框架可提供有效的工具对例外情况进行监控,但仍然要解决整个模糊测试过程。因为其目的是自动发现尽量多的特定错误信息,对输入空间进行有效探索的算法是解决整个问题的关键。
CERT-BFF(CERT基本模糊测试框架)是一个近来发明的自动模糊测试框架。它通过统计模型来指导种子的选取。整体流程如图2所示。
CERT-BFF的具体步骤如下:
1.初始化种子集和种子的分布
2.进行如下循环直到停止:
a)从种子分布中抽样一个种子
i.从当前种子生成一个测试案例
ii.运行目标应用
iii.得到错误状态
iv.更新错误密度
b)更新种子分布
其中,错误密度指的是对于一个给定种子,找到一种特定错误所需测试案例所占的比例。种子分布指的是分配给每个种子一个概率值,它可通过对所有种子的错误密度进行正则化得到。因为种子分布反映的是每个种子引发某种错误的概率,所以从种子分布进行抽样其目的一方面在于最大化引发某种错误的次数,另一方面在于尽量扩大其编码的覆盖范围,例如, 并没有任何一个种子被完全排除在抽样过程之外。用来判断种子所引发错误的信息可从核心文件中获取。
LDA最初是对文本进行建模的概率模型。对于给定的一组语料,其中包括D个文档,文档由包含V个词的词典生成。利用LDA可得到(i)每个文档关于K个隐含主题的概率分布,(ii)对于词典中每个词所分配的主题。另外,LDA可用来预测词出现在文档中的概率。此概率模型可描述为公式(1):
φk~Dirichlet(β) 从词典中抽样一个词
θj~Dirichlet(α) 抽样一个主题分布
其中α是一个K维的参数向量,β是一个K×V维的矩阵,θj,φi都是K维的参数向量。
式(1)中:每个文档服从一个K维的狄利克雷分布(K个主题),其参数服从另一个参数为α的狄利克雷分布。文档中的词从给定的词典中以一定概率进行选择。每个词属于某一隐含的主题,主题又决定上了词在词典中的概率分布。换句话说,一个词在某个文档中出现的可能性依赖于主题。LDA的概率图模型如图3所示。
LDA对每个种子进行建模,给每个种子设定一个概率分布(亦被称为“主题分布”),并对测试案例进行聚类。虽然可直接根据观测到的故障模式对测试案例进行分类,但由于观测到的信息并非真正的系统内部故障模式,因而得到的聚类结果会比较粗糙甚至不包含有用的信息。
发明内容
针对现有模糊测试的缺点与不足,本发明基于变异生成测试案例的情况,提出一种不完全反馈模糊测试框架,该测试框架在CERT基本模糊测试框架的基础上引入隐式狄利克雷分布LDA,其具体步骤如下:
1)初始化种子集和种子分布;
2)进行如下循环直到停止:
a)从种子分布中抽样一个种子:
i.从当前种子生成一个测试案例;
ii.运行目标应用;
iii.获取并保存种子、测试案例和错误状态;
b)估计/更新LDA模型;
c)更新种子分布;
其中,在所述LDA中:
文档对应于种子;
词对应于可观测错误状态;
主题对应于错误状态。
进一步地,在模糊测试的过程中收集种子,测试案例和观测到的错误状态的数据,通过基于变分的算法或使用基于模拟的算法完成估计LDA模型。
进一步地,其中,所述更新种子分布具体为:
每个种子服从一个K维的分布,采用熵来衡量分布的覆盖大小。概率分布q的熵H(q)定义如下:
通过正则化各种子的熵得到种子的分布。
例如,种子s1,...,sN分别具有分布p1,...,pN,种子的分布有下式得到
基于此分布来抽取种子对输入空间进行探索。
进一步地,其中,步骤a中的步骤i、ii及iii由外部测试器执行。
进一步地,其中,步骤a中的步骤iii包含以下步骤:
获取错误状态后,将错误模式数据写入数据库;
判断是否已超过最大测试案例数,如是否,返回至i继续该循环;否则断续判断是否停止测试,如果是则结束测试,如果否则将种子集及测试案例存入数据库中用于之后更新模型。
本发明中,LDA将系统内部故障模式建模为隐类型并把它与外部观测到的故障模式联系起来。由此,相比上面提到的直接聚类方法,LDA是一个更贴近问题本身的模型。基于此模型,通过概率后验的推断分析,可得到每个种子的隐类型概率分布,并且可得到每个测试案例所属于的隐类型。
本发明提出的不完全反馈模糊测试框架,适用于模糊测试时,当目标系统的详细故障信息不能获取,而只能通过外部观测器获取部分信息的情况。与现行方法相比,本测试框架具有一定的先进性,可最大程度上发现目标系统应用的特定错误。本测试框架既不对种子的预选做任何前提假设,也不对测试案例的生产方式做任何限制。因此,本框架可与多种相关方法接合。另外,对测试环境和仪器也没有任何特殊要求。
附图说明
图1为模糊测试的基本流程示意图;
图2为现有技术中CERT-BFF的流程图;
图3为LDA的概率图模型;
图4为本发明的不完全反馈模糊测试框架的流程图。
具体实施方式
为了更好地理解并实施本发明,下面以具体实施例的方式对本发明进 行详细阐述。应当注意的是,下面的实施仅用于对本发明进行说明而非作为对本发明的限制。
首先,为了将LDA应用于模糊测试以形成本发明的不完全反馈模糊测试,做出以下联系:
文档对应于种子;
词对应于可观测错误状态;
主题对应于错误状态。
即为如下联系:
·
·
·
基于LDA的模糊测试框架与图2所示的CERT-BFF的框架类似,只是在其外层循环加入了LDA,具体图4所示:程序开始之后首先初始化种子集和种子分布;然后进行如下循环直到停止:
a)从种子分布中抽样一个种子,并由测试器执行以下操作:
i.从当前种子生成一个测试案例
ii.运行目标应用
iii.获取并保存种子、测试案例和错误状态,并将错误模式数据写入数据库;判断是否已超过最大测试案例数,如是否,返回至i继续该循环;否则断续判断是否停止测试,如果是则结束测试,如果否则将种子集及测试案例存入数据库中;
b)估计/更新LDA模型;
c)更新种子分布。
至此,完成一个不完全反馈模糊测试循环,并且可以继续执行下一个模糊测试。
其中种子分布更新可为:
在CERT-BFF中,种子分布的定义如下:
其中di是种子si的错误密度。
因为在LDA中,“主题”对应于目标系统内部的错误状态,为了最大化可覆盖错误的范围,应当选择对各个内部错误状态概率分布比较均匀的种子。此处可采用熵来衡量一个分布的覆盖大小。一个概率分布q的熵H(q)的定义如下
因为熵是一个凸函数且当取均匀分布时其值达到最大,因此种子的分布可通过正则化各种子的熵得到。
在上述模糊测试的过程中收集种子,测试案例和观测到的错误状态的数据。假设共有F+1个可能的观测状态,种子s每个状态观测到的计数分别为n1,...nF。这些计数为LDA的输入,可用矩阵表示:
LDA模型的估计可利用例如David M.Blei等人及Yee W.The等人提出的基于变分的算法,或使用例如Porteous等提出的基于模拟的算法。
以上所述实例仅表达了本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利的限制。应该指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围 应以所附权利要求为准。
Claims (5)
1.一种不完全反馈模糊测试框架,该测试框架在CERT基本模糊测试框架的基础上引入隐式狄利克雷分布LDA,其具体步骤如下:
1)初始化种子集和种子分布;
2)进行如下循环直到停止:
a)从种子分布中抽样一个种子:
i.从当前种子生成一个测试案例;
ii.运行目标应用;
iii.获取并保存种子、测试案例和错误状态;
b)估计/更新LDA模型;
c)更新种子分布;
其中,在所述LDA中:
文档对应于种子;
词对应于可观测错误状态;
主题对应于错误状态。
2.根据权利要求1所述的不完全反馈模糊测试框架,其中,在模糊测试的过程中收集种子,测试案例和观测到的错误状态的数据,通过基于变分的算法或使用基于模拟的算法完成估计LDA模型。
3.根据权利要求1所述的不完全反馈模糊测试框架,其中,所述更新种子分布具体为:
每个种子服从一个K维的分布,采用熵来衡量分布的覆盖大小。概率分布q的熵H(q)定义如下:
通过正则化各种子的熵得到种子的分布。
4.根据权利要求1所述的不完全反馈模糊测试框架,其中,步骤a中的步骤i、ii及iii由外部测试器执行。
5.根据权利要求1所述的不完全反馈模糊测试框架,其中,步骤a中的步骤iii包含以下步骤:
获取错误状态后,将错误模式数据写入数据库;
判断是否已超过最大测试案例数,如是否,返回至i继续该循环;否则断续判断是否停止测试,如果是则结束测试,如果否则将种子集及测试案例存入数据库中用于之后更新模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510845116.XA CN105938451A (zh) | 2015-11-26 | 2015-11-26 | 不完全反馈模糊测试框架 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510845116.XA CN105938451A (zh) | 2015-11-26 | 2015-11-26 | 不完全反馈模糊测试框架 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105938451A true CN105938451A (zh) | 2016-09-14 |
Family
ID=57152856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510845116.XA Pending CN105938451A (zh) | 2015-11-26 | 2015-11-26 | 不完全反馈模糊测试框架 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105938451A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647145A (zh) * | 2018-05-10 | 2018-10-12 | 清华大学 | 软件内存安全检测方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007011571A (ja) * | 2005-06-29 | 2007-01-18 | Advanced Telecommunication Research Institute International | 情報処理装置、およびプログラム |
WO2010069587A1 (en) * | 2008-12-18 | 2010-06-24 | Nec Europe Ltd. | Method and device for supporting penetration testing of a computer system |
CN102402481A (zh) * | 2010-10-06 | 2012-04-04 | 微软公司 | 异步程序代码的模糊测试 |
US20130340083A1 (en) * | 2012-06-19 | 2013-12-19 | Lucian Petrica | Methods, systems, and computer readable media for automatically generating a fuzzer that implements functional and fuzz testing and testing a network device using the fuzzer |
US20150254328A1 (en) * | 2013-12-26 | 2015-09-10 | Webtrends Inc. | Methods and systems that categorize and summarize instrumentation-generated events |
-
2015
- 2015-11-26 CN CN201510845116.XA patent/CN105938451A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007011571A (ja) * | 2005-06-29 | 2007-01-18 | Advanced Telecommunication Research Institute International | 情報処理装置、およびプログラム |
WO2010069587A1 (en) * | 2008-12-18 | 2010-06-24 | Nec Europe Ltd. | Method and device for supporting penetration testing of a computer system |
CN102402481A (zh) * | 2010-10-06 | 2012-04-04 | 微软公司 | 异步程序代码的模糊测试 |
US20130340083A1 (en) * | 2012-06-19 | 2013-12-19 | Lucian Petrica | Methods, systems, and computer readable media for automatically generating a fuzzer that implements functional and fuzz testing and testing a network device using the fuzzer |
US20150254328A1 (en) * | 2013-12-26 | 2015-09-10 | Webtrends Inc. | Methods and systems that categorize and summarize instrumentation-generated events |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647145A (zh) * | 2018-05-10 | 2018-10-12 | 清华大学 | 软件内存安全检测方法及系统 |
CN108647145B (zh) * | 2018-05-10 | 2020-01-03 | 清华大学 | 软件内存安全检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Taleb-Berrouane et al. | Bayesian Stochastic Petri Nets (BSPN)-A new modelling tool for dynamic safety and reliability analysis | |
Shitharth | An enhanced optimization based algorithm for intrusion detection in SCADA network | |
Karimipour et al. | Intelligent anomaly detection for large-scale smart grids | |
CN108769051B (zh) | 一种基于告警融合的网络入侵态势意图评估方法 | |
Coble et al. | Applying the general path model to estimation of remaining useful life | |
CN106341414A (zh) | 一种基于贝叶斯网络的多步攻击安全态势评估方法 | |
Wang et al. | A probabilistic framework for remaining useful life prediction of bearings | |
CN102298978A (zh) | 船用核动力装置基于多层流模型的不确定性故障诊断方法 | |
Qin et al. | Association analysis-based cybersecurity risk assessment for industrial control systems | |
Frank et al. | Metrics and methods to assess building fault detection and diagnosis tools | |
Zhou | A fuzzy petri-net approach for fault analysis considering factor influences | |
Chen et al. | AI maintenance: a robustness perspective | |
Rani et al. | Fault detection and isolation using probabilistic wavelet neural operator auto-encoder with application to dynamic processes | |
Xu et al. | A new approach for dynamic reliability analysis of reactor protection system for HPR1000 | |
Jyotish et al. | Reliability and performance measurement of safety-critical systems based on petri nets: a case study of nuclear power plant | |
Roberts et al. | Robust mitigation of EOVs using multivariate nonlinear regression within a vibration-based SHM methodology | |
Lamberts et al. | SoK: Evaluations in Industrial Intrusion Detection Research | |
CN105938451A (zh) | 不完全反馈模糊测试框架 | |
CN117309067A (zh) | 水资源实时监控方法、系统和电子设备 | |
Gaurav et al. | Intelligent fault monitoring and reliability analysis in safety–critical systems of nuclear power plants using SIAO-CNN-ORNN | |
Jyotish et al. | Availability analysis of safety-critical systems of nuclear power plant using ordinary differential equations and reachability graph | |
Liu | Reliable predictability of failure events for decentralized discrete-event systems | |
Nouioua et al. | Probabilistic analysis of predictability in discrete event systems | |
Yang et al. | Model and fault inference with the framework of probabilistic SDG | |
Chen et al. | A two-stage approach based on Bayesian deep learning for predicting remaining useful life of rolling element bearings |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination |