CN116991745B - 一种面向软件变更的适应性弱点检测方法 - Google Patents
一种面向软件变更的适应性弱点检测方法 Download PDFInfo
- Publication number
- CN116991745B CN116991745B CN202311223663.5A CN202311223663A CN116991745B CN 116991745 B CN116991745 B CN 116991745B CN 202311223663 A CN202311223663 A CN 202311223663A CN 116991745 B CN116991745 B CN 116991745B
- Authority
- CN
- China
- Prior art keywords
- change
- disturbance
- sequence
- training
- detection model
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 85
- 238000012549 training Methods 0.000 claims abstract description 65
- 230000008859 change Effects 0.000 claims abstract description 56
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000002347 injection Methods 0.000 claims abstract description 13
- 239000007924 injection Substances 0.000 claims abstract description 13
- 238000005516 engineering process Methods 0.000 claims abstract description 12
- 238000000605 extraction Methods 0.000 claims abstract description 11
- 238000004519 manufacturing process Methods 0.000 claims abstract description 9
- 230000003044 adaptive effect Effects 0.000 claims description 19
- 238000013145 classification model Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004048 modification Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 3
- 238000003860 storage Methods 0.000 claims description 3
- 238000002474 experimental method Methods 0.000 description 6
- 238000010606 normalization Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000000739 chaotic effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 102100038367 Gremlin-1 Human genes 0.000 description 1
- 101001032872 Homo sapiens Gremlin-1 Proteins 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013434 data augmentation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biomedical Technology (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种面向软件变更的适应性弱点检测方法,包括,使用噪声注入技术生成数据模式相同和数据模式存在差异的单元序列对作为训练数据集;构建扰动检测模型,扰动检测模型包括特征提取层和输出分类层;通过训练数据集对扰动检测模型进行训练;针对软件变更前版本和变更后版本配置相同的用户负载,制造相同的扰动事件,收集变更前数据和变更后数据;将变更前数据和变更后数据输入训练完成后的扰动检测模型,通过输出的结果中存在的明显差异的指标指示新引入的系统弱点。通过本发明提出的方法,可以在软件变更时检测系统弱点,避免扰动事件造成重大经济损失,提高微服务系统的可靠性。
Description
技术领域
本发明属于网络安全领域。
背景技术
微服务架构是一种将应用程序构建为松耦合服务集合的架构风格,它凭借灵活的扩展能力和敏捷的开发过程在企业的生产实践中流行开来。采用微服务架构在创造更大价值的同时对服务的可靠性带来了威胁。作为分布式系统,微服务系统的正常运行更容易受到真实生产环境中随机事件的影响,如负载高峰、硬件故障、网络波动等无法预测的扰动事件(Disruption)经常造成服务的中断。这些扰动事件导致服务中断的原因包括软件的错误配置、代码的不恰当实现等,这些瑕疵就是关联扰动事件的系统弱点(System Weakness),也是降低可靠性的罪魁祸首。软件变更(Software Change)是引入系统弱点的重要原因,研究表明谷歌70%的云服务故障的直接或者间接原因就是软件变更。
现有技术中,Analysis-tool需要工程师在混沌实验的过程中全程参与;Gremlin和FILIBUSTER虽然通过断言检测实现了混沌实验的自动化分析,但是每个系统版本都需要工程师针对不同的扰动事件分别配置断言,自动化程度较低;对规模庞大、变更频繁的微服务系统应用上述三种方法会引起庞大的人力开销。
Pystol和ChaosDuck使用统一的行为预期虽然极大地提高了自动化程度,却造成了检测精度的下降,因为指标的复杂模式无法通过阈值范围准确描述,对不同程度的扰动事件设置相同预期也并不合理。此外,上述五种检测方法都需要工程师在软件变更时根据领域知识给出或者更新系统在扰动事件下的行为预期,由于频繁的软件变更会引起领域知识的快速迭代,不同微服务相对独立的开发过程也造成工程师很难把握系统的整体特性,因此借助人力给出的预期容易出现错误和遗漏。
SCWarn和Kontrast可以使用变更场景中历史版本的数据构建混沌实验的系统预期,引入的复杂模型虽然保证了自动化程度和检测精度,但引起了新的问题。SCWarn训练模型学习历史版本的特定数据模式,但是由于不同的扰动事件造成的影响各不相同,扰动下的数据模式存在差异,因此应用SCWarn时必须针对不同的扰动事件分别训练模型,开销过大。Kontrast使用自监督对比学习的方法构建了对不同数据模式具备适应性的模型,在实践中虽然可直接用于分析其他的扰动事件,但会导致检测精度的下降,Kontrast没有对检测精度下降的问题做出进一步优化。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的目的在于提出一种面向软件变更的适应性弱点检测方法,用于在软件变更时检测系统弱点。
为达上述目的,本发明第一方面实施例提出了一种面向软件变更的适应性弱点检测方法,包括:
使用噪声注入技术生成数据模式相同和数据模式存在差异的单元序列对作为训练数据集;
构建扰动检测模型,所述扰动检测模型包括特征提取层和输出分类层;通过所述训练数据集对所述扰动检测模型进行训练;
针对软件变更前版本和变更后版本配置相同的用户负载,制造相同的扰动事件,收集变更前数据和变更后数据;
将所述变更前数据和变更后数据输入训练完成后的扰动检测模型,通过输出的结果中存在的明显差异的指标指示新引入的系统弱点。
另外,根据本发明上述实施例的一种面向软件变更的适应性弱点检测方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述使用噪声注入技术生成数据模式相同和数据模式存在差异的单元序列对作为训练数据集,包括:
用噪声强度定量描述噪声模式,时间序列的噪声强度定义为时间序列不同周期的同一个时间点的数值标准差的均值,具体计算过程为:
,
,
,
其中,表示时间序列/>包含的周期数,/>表示时间序列/>周期的长度,/>表示单个时间点在不同周期的均值,/>表示单个时间点在不同周期的标准差,对应单个时间点的噪声强度/>;一个周期内所有时间点噪声强度的均值就是时间序列/>的噪声强度/>;
设置统一的噪声强度,对于具体的时间序列/>,放缩的计算定义为:
,
将放缩后的时间序列作为训练数据集。
进一步地,在本发明的一个实施例中,所述通过所述训练数据集对所述扰动检测模型进行训练,包括:
使用交叉熵函数计算损失,使用0标签指示二元序列对应的序列对模式无差异,1标签指示有差异,交叉熵损失的计算方法为:
,
其中,对应时间序列对的真实标签,/>对应分类模型输出的标签概率。
进一步地,在本发明的一个实施例中,所述通过所述训练数据集对所述扰动检测模型进行训练,还包括引入批归一化的技术处理输入的二元时间序列,包括:
对输入的每个维度计算批次的经验均值和方差;
使用所述经验均值和方差重新给出新的输入。
进一步地,在本发明的一个实施例中,在将所述变更前数据和变更后数据输入训练完成后的扰动检测模型,通过输出的结果中存在的明显差异的指标指示新引入的系统弱点之后,还包括通过量化比较执行进一步的判断,包括:
对扰动检测模型输入三个序列对:变更前版本的扰动序列和变更后版本的扰动序列、变更前版本的正常序列和变更前版本的扰动序列、变更前版本的正常序列和变更后版本的扰动序列;
通过所述扰动检测模型输出的标签概率量化所述序列对的相似度:对应标签的概率越大,序列对的差异程度越大;
当所述变更前版本和所述变更后版本的扰动序列对存在差异时,进一步比较两个版本的扰动序列和所述变更前版本正常序列的相似度,如果所述变更后版本较所述变更前版本的扰动序列和所述更前版本的正常序列模式存在更大差异,则表明差异指标指示了一个新引入的系统弱点,否则表明软件可靠性通过变更得到增强。
进一步地,在本发明的一个实施例中,还包括:
在将训练好的扰动检测模型应用到其他扰动事件前,使用待检测扰动事件的数据集生成规模更小的训练数据微调分类层参数。
为达上述目的,本发明第二方面实施例提出了一种面向软件变更的适应性弱点检测装置,包括以下模块:
生成模块,用于使用噪声注入技术生成数据模式相同和数据模式存在差异的单元序列对作为训练数据集;
构建模块,用于构建扰动检测模型,所述扰动检测模型包括特征提取层和输出分类层;通过所述训练数据集对所述扰动检测模型进行训练;
获取模块,用于针对软件变更前版本和变更后版本配置相同的用户负载,制造相同的扰动事件,收集变更前数据和变更后数据;
指示模块,用于将所述变更前数据和变更后数据输入训练完成后的扰动检测模型,通过输出的结果中存在的明显差异的指标指示新引入的系统弱点。
为达上述目的,本发明第三方面实施例提出了一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的一种面向软件变更的适应性弱点检测方法。
为达上述目的,本发明第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的一种面向软件变更的适应性弱点检测方法。
本发明实施例提出的面向软件变更的适应性弱点检测方法,设计了面向软件变更的弱点检测自动化流程,解决了人工检测方法耗时且易错的问题,显著减少运维人员的工作负担,实现了软件变更时系统的可靠性保证;其次本方案构建的时间序列分类模型可以利用海量的指标数据快速准确地识别模式存在差异的时间序列;分类模型具备的量化相似度的能力可进一步指示系统弱点的存在;本方案设计的放缩方法、微调方法解决了引入复杂模型(SCWarn、Kontrast)时无法兼顾准确度和效率的问题,在保证检测精度的同时实现了模型的快速构建。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例所提供的一种面向软件变更的适应性弱点检测示意图。
图2为本发明实施例所提供的一种面向软件变更的适应性弱点检测示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的面向软件变更的适应性弱点检测方法。
图1为本发明实施例所提供的一种面向软件变更的适应性弱点检测方法的流程示意图。
如图1所示,该向软件变更的适应性弱点检测方法包括以下步骤:
S101:使用噪声注入技术生成数据模式相同和数据模式存在差异的单元序列对作为训练数据集;
S102:构建扰动检测模型,扰动检测模型包括特征提取层和输出分类层;通过训练数据集对扰动检测模型进行训练;
S103:针对软件变更前版本和变更后版本配置相同的用户负载,制造相同的扰动事件,收集变更前数据和变更后数据;
S104:将变更前数据和变更后数据输入训练完成后的扰动检测模型,通过输出的结果中存在的明显差异的指标指示新引入的系统弱点。
本发明在软件变更时,对变更涉及的两个版本(变更前和变更后)配置相同的用户负载,制造相同的扰动事件,收集两个版本的指标数据并进行比较,存在明显差异的指标指示了新引入的系统弱点。因此,面向软件变更的弱点检测关键是设计算法识别两个版本中模式存在差异的指标数据。
现有工作构建模型识别差异指标的主要问题是模型缺乏对不同数据模式的适应性,导致在应用模型分析不同扰动事件的混沌实验时无法兼顾准确度和效率。为了解决这个问题,将识别差异指标的问题转化为二元时间序列分类问题。用版本1指示变更前版本,版本2指示变更后版本,在混沌实验中对系统的一个具体指标收集数据,版本1对应单元时间序列,版本2对应单元时间序列/>,将两个单元时间序列重构为一个二元时间序列/>(n对应时间序列的长度)。由于目标是判断两个单元序列的模式是否存在差异,因此该二元序列存在两个可能的标签:有差异(1)和无差异(0),这是一个典型的二分类问题。序列模式存在差异有两种可能:第一种是软件变更引入了一个系统弱点,导致系统对该扰动事件的抵抗能力下降;第二种则是软件变更增进了系统对扰动事件的抵抗能力。因此,为了实现软件变更的弱点检测,需要进一步判断指标模式的差异是好是坏。
首先解决二元时间序列的分类问题,将分类模型分为两个部分构建。第一部分负责提取用于二元时间序列分类的特征,即特征提取层。第二部分根据提取的特征输出分类结果,即分类层。对于特征提取层,使用长短期记忆网络(LSTM)提取时间序列的特征。采用LSTM有两个原因:第一是因为LSTM处理复杂序列的能力已经在过往的相关工作中的得到充分验证,使用LSTM能够提取到关于序列形状和模式的丰富信息;第二是因为LSTM对任意长度的输入输出定长的特征序列(l对应特征序列的长度),这种特性能够提高模型的灵活性和适应性,可以直接应用到持续时间不一致的扰动事件分析上。对于特征提取层输出的特征序列,使用全连接层作为分类层进一步输出二元序列的标签概率,指示指标的模式是否存在差异。
为了构建训练分类模型的标注数据集,受图片分类和时间序列分类相关工作的启发,本发明采用了数据扩充(Data Augmentation)的方法生成有伪标签(Pseudo-Label)的二元时间序列,具体来说就是使用噪声注入(Noise Injection)技术生成模式相同和模式存在差异的单元序列对,构成的二元时间序列分别对应标签0和标签1。噪声注入技术用于改变已有时间序列的模式生成新的序列,噪声的强弱决定了二元序列的标签:弱噪声(包括无噪声)对应标签0,强噪声对应标签1。由于不同指标的物理含义各不相同,因此指标本身包含的随机噪声模式存在差异。用噪声强度(Noise Intensity)定量描述噪声模式,时间序列的噪声强度定义为时间序列不同周期的同一个时间点的数值标准差的均值,
进一步地,在本发明的一个实施例中,使用噪声注入技术生成数据模式相同和数据模式存在差异的单元序列对作为训练数据集,包括:
用噪声强度定量描述噪声模式,时间序列的噪声强度定义为时间序列不同周期的同一个时间点的数值标准差的均值,具体计算过程为:
,
,
,
其中,表示时间序列/>包含的周期数,/>表示时间序列/>周期的长度,/>表示单个时间点在不同周期的均值,/>表示单个时间点在不同周期的标准差,对应单个时间点的噪声强度/>;一个周期内所有时间点噪声强度的均值就是时间序列/>的噪声强度/>;
设置统一的噪声强度,对于具体的时间序列/>,放缩的计算定义为:
,
将放缩后的时间序列作为训练数据集。
对于一个时间序列X,注入的弱噪声范围是,强噪声范围是。
在生成训练集时,指标不同的噪声强度会影响模型对模式差异序列对的判断。例如对于噪声强度为10的序列和噪声强度为1000的序列/>,同样注入5倍噪声强度的强噪声,/>对应50,/>对应5000,如果将生成的序列对输入到同一个模型,较/>模型会给/>序列对的1标签(指示模式存在差异)输出更大的概率,最终会导致很低的召回率(recall)。本发明设计了基于噪声强度的放缩(Scaling)技术解决此问题,具体来说,造成低召回率的原因是噪声强度影响了注入噪声的数量大小,因此首先设置一个统一的噪声强度/>,对于一个具体的时间序列/>,放缩的计算定义为:
,
放缩后的时间序列可直接输入到同一个分类模型,在实验中取得了较好的检测结果。
本发明受时间序列分类相关工作的启发,在训练过程中使用交叉熵函数(BinaryCross-Entropy Loss)计算损失。
进一步地,在本发明的一个实施例中,通过训练数据集对扰动检测模型进行训练,包括:
使用交叉熵函数计算损失,使用0标签指示二元序列对应的序列对模式无差异,1标签指示有差异,交叉熵损失的计算方法为:
,
其中,对应时间序列对的真实标签,/>对应分类模型输出的标签概率。
由于标签只有两个类别:0和1,所以,因此令/>,/>,就取得了公式的展开版本。在模型的训练过程中通过输入模式不一致的时间序列对引导模型忽略序列的具体模式,提取指示序列对模式差异的特征。
本发明额外引入批归一化(Batch Normalization)的技术处理输入的二元时间序列,使分类模型的训练过程更快速,更稳定。批归一化强大的实验性能已经在过往的工作中得到验证,一种流行的解释是它能够消除内部协变量偏移(Internal Covariate Shift)的影响。内部协变量偏移指训练过程中模型输入分布(Distribution)的改变,具体表现在均值和方差的变化上,这种偏移会导致训练速度的减慢和过拟合(Overfitting)问题。在应用批归一化技术时,首先对输入的每个维度计算批次的经验均值和方差/>,例如对于任一维度/>:
,
,
m对应批次的大小。然后使用计算获得的均值和方差重新给出新的输入,对于任一
维度k: ,/>和/>是可以学习的参数向量,长度对应输入的特征维度(对于输入的二元时间序列特征维度等于2)。默认情况下,/>的元素设置为1,/>的元素设置为0。
进一步地,在本发明的一个实施例中,通过训练数据集对扰动检测模型进行训练,还包括引入批归一化的技术处理输入的二元时间序列,包括:
对输入的每个维度计算批次的经验均值和方差;
使用经验均值和方差重新给出新的输入。
检测到的差异并不一定对应系统弱点,有可能反映了软件变更引起的改进,本发明通过量化比较执行进一步的判断。
进一步地,在本发明的一个实施例中,在将变更前数据和变更后数据输入训练完成后的扰动检测模型,通过输出的结果中存在的明显差异的指标指示新引入的系统弱点之后,还包括通过量化比较执行进一步的判断,包括:
对扰动检测模型输入三个序列对:变更前版本的扰动序列和变更后版本的扰动序列、变更前版本的正常序列和变更前版本的扰动序列、变更前版本的正常序列和变更后版本的扰动序列;
通过扰动检测模型输出的标签概率量化序列对的相似度:对应标签的概率越大,序列对的差异程度越大;
当变更前版本和变更后版本的扰动序列对存在差异时,进一步比较两个版本的扰动序列和变更前版本正常序列的相似度,如果变更后版本较变更前版本的扰动序列和更前版本的正常序列模式存在更大差异,则表明差异指标指示了一个新引入的系统弱点,否则表明软件可靠性通过变更得到增强。
最后解决分类模型的适应性问题,由于不同的扰动事件对系统行为的影响各不相同,因此指标在扰动事件发生时出现的模式变化存在差异;如果对分类模型输入通过单个扰动事件的指标数据集生成的训练数据,构建的分类模型分析其他扰动事件时检测精度会下降;如果对单个分类模型输入通过多个扰动事件生成的数据集,构建的模型甚至无法保证对这些扰动事件的检测精度。本发明采用微调方法解决此问题,前文指出分类模型尝试提取区分序列模式的特征,因此直觉上造成检测精度下降的原因是不同扰动事件引起的模式差异程度并不一致,需要修改模型的分类层参数。首先使用某个扰动事件的数据集训练模型以获取特征提取层的参数,在将模型应用到其他扰动事件前,使用待检测扰动事件的数据集生成规模更小的训练数据微调分类层参数。微调方法在保证了检测精度的基础上大大减少了模型的训练开销。
进一步地,在本发明的一个实施例中,还包括:
在将训练好的扰动检测模型应用到其他扰动事件前,使用待检测扰动事件的数据集生成规模更小的训练数据微调分类层参数。
本发明实施例提出的面向软件变更的适应性弱点检测方法,设计了面向软件变更的弱点检测自动化流程,解决了人工检测方法耗时且易错的问题,显著减少运维人员的工作负担,实现了软件变更时系统的可靠性保证;其次本方案构建的时间序列分类模型可以利用海量的指标数据快速准确地识别模式存在差异的时间序列;分类模型具备的量化相似度的能力可进一步指示系统弱点的存在;本方案设计的放缩方法、微调方法解决了引入复杂模型(SCWarn、Kontrast)时无法兼顾准确度和效率的问题,在保证检测精度的同时实现了模型的快速构建。
为了实现上述实施例,本发明还提出面向软件变更的适应性弱点检测装置。
图2为本发明实施例提供的一种面向软件变更的适应性弱点检测装置的结构示意图。
如图2所示,该面向软件变更的适应性弱点检测装置包括:生成模块100,构建模块200,获取模块300,指示模块400,其中,
生成模块,用于使用噪声注入技术生成数据模式相同和数据模式存在差异的单元序列对作为训练数据集;
构建模块,用于构建扰动检测模型,扰动检测模型包括特征提取层和输出分类层;通过训练数据集对扰动检测模型进行训练;
获取模块,用于针对软件变更前版本和变更后版本配置相同的用户负载,制造相同的扰动事件,收集变更前数据和变更后数据;
指示模块,用于将变更前数据和变更后数据输入训练完成后的扰动检测模型,通过输出的结果中存在的明显差异的指标指示新引入的系统弱点。
为达上述目的,本发明第三方面实施例提出了一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的面向软件变更的适应性弱点检测方方法。
为达上述目的,本发明第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的面向软件变更的适应性弱点检测方方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种面向软件变更的适应性弱点检测方法,其特征在于,包括以下步骤:
使用噪声注入技术生成数据模式相同和数据模式存在差异的单元序列对作为训练数据集;
构建扰动检测模型,所述扰动检测模型包括特征提取层和输出分类层;通过所述训练数据集对所述扰动检测模型进行训练;
针对软件变更前版本和变更后版本配置相同的用户负载,制造相同的扰动事件,收集变更前数据和变更后数据;
将所述变更前数据和变更后数据输入训练完成后的扰动检测模型,通过输出的结果中存在的明显差异的指标指示新引入的系统弱点;
其中,所述使用噪声注入技术生成数据模式相同和数据模式存在差异的单元序列对作为训练数据集,包括:
用噪声强度定量描述噪声模式,时间序列的噪声强度定义为时间序列不同周期的同一个时间点的数值标准差的均值,具体计算过程为:
,
,
,
其中,表示时间序列/>包含的周期数,/>表示时间序列/>周期的长度,/>表示单个时间点在不同周期的均值,/>表示单个时间点在不同周期的标准差,对应单个时间点的噪声强度/>;一个周期内所有时间点噪声强度的均值就是时间序列/>的噪声强度/>;
设置统一的噪声强度,对于具体的时间序列/>,放缩的计算定义为:
,
将放缩后的时间序列作为训练数据集。
2.根据权利要求1所述的方法,其特征在于,所述通过所述训练数据集对所述扰动检测模型进行训练,包括:
使用交叉熵函数计算损失,使用0标签指示二元序列对应的序列对模式无差异,1标签指示有差异,交叉熵损失的计算方法为:
,
其中,对应时间序列对的真实标签,/>对应分类模型输出的标签概率。
3.根据权利要求2所述的方法,其特征在于,所述通过所述训练数据集对所述扰动检测模型进行训练,还包括引入批归一化的技术处理输入的二元时间序列,包括:
对输入的每个维度计算批次的经验均值和方差;
使用所述经验均值和方差重新给出新的输入。
4.根据权利要求1所述的方法,其特征在于,在将所述变更前数据和变更后数据输入训练完成后的扰动检测模型,通过输出的结果中存在的明显差异的指标指示新引入的系统弱点之后,还包括通过量化比较执行进一步的判断,包括:
对扰动检测模型输入三个序列对:变更前版本的扰动序列和变更后版本的扰动序列、变更前版本的正常序列和变更前版本的扰动序列、变更前版本的正常序列和变更后版本的扰动序列;
通过所述扰动检测模型输出的标签概率量化所述序列对的相似度:对应标签的概率越大,序列对的差异程度越大;
当所述变更前版本和所述变更后版本的扰动序列对存在差异时,进一步比较两个版本的扰动序列和所述变更前版本正常序列的相似度,如果所述变更后版本较所述变更前版本的扰动序列和所述更前版本的正常序列模式存在更大差异,则表明差异指标指示了一个新引入的系统弱点,否则表明软件可靠性通过变更得到增强。
5.根据权利要求1所述的方法,其特征在于,还包括:
在将训练好的扰动检测模型应用到其他扰动事件前,使用待检测扰动事件的数据集生成规模更小的训练数据微调分类层参数。
6.一种面向软件变更的适应性弱点检测装置,其特征在于,包括以下模块:
生成模块,用于使用噪声注入技术生成数据模式相同和数据模式存在差异的单元序列对作为训练数据集;
构建模块,用于构建扰动检测模型,所述扰动检测模型包括特征提取层和输出分类层;通过所述训练数据集对所述扰动检测模型进行训练;
获取模块,用于针对软件变更前版本和变更后版本配置相同的用户负载,制造相同的扰动事件,收集变更前数据和变更后数据;
指示模块,用于将所述变更前数据和变更后数据输入训练完成后的扰动检测模型,通过输出的结果中存在的明显差异的指标指示新引入的系统弱点;
其中,所述使用噪声注入技术生成数据模式相同和数据模式存在差异的单元序列对作为训练数据集,包括:
用噪声强度定量描述噪声模式,时间序列的噪声强度定义为时间序列不同周期的同一个时间点的数值标准差的均值,具体计算过程为:
,
,
,
其中,表示时间序列/>包含的周期数,/>表示时间序列/>周期的长度,/>表示单个时间点在不同周期的均值,/>表示单个时间点在不同周期的标准差,对应单个时间点的噪声强度/>;一个周期内所有时间点噪声强度的均值就是时间序列/>的噪声强度/>;
设置统一的噪声强度,对于具体的时间序列/>,放缩的计算定义为:
,
将放缩后的时间序列作为训练数据集。
7.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-5中任一所述的面向软件变更的适应性弱点检测方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任意一项所述的面向软件变更的适应性弱点检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311223663.5A CN116991745B (zh) | 2023-09-21 | 2023-09-21 | 一种面向软件变更的适应性弱点检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311223663.5A CN116991745B (zh) | 2023-09-21 | 2023-09-21 | 一种面向软件变更的适应性弱点检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116991745A CN116991745A (zh) | 2023-11-03 |
CN116991745B true CN116991745B (zh) | 2023-12-29 |
Family
ID=88525037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311223663.5A Active CN116991745B (zh) | 2023-09-21 | 2023-09-21 | 一种面向软件变更的适应性弱点检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116991745B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108345544A (zh) * | 2018-03-27 | 2018-07-31 | 北京航空航天大学 | 一种基于复杂网络的软件缺陷分布影响因素分析方法 |
CN114266050A (zh) * | 2022-03-03 | 2022-04-01 | 西南石油大学 | 一种跨平台恶意软件对抗样本生成方法及系统 |
CN114816901A (zh) * | 2022-02-28 | 2022-07-29 | 南开大学 | 通过ai的方式对软件变更后的健康状态进行评估的方法 |
CN116486150A (zh) * | 2023-04-20 | 2023-07-25 | 南京大学 | 一种基于不确定性感知的图像分类模型回归误差消减方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021148625A1 (en) * | 2020-01-23 | 2021-07-29 | Debricked Ab | A method for identifying vulnerabilities in computer program code and a system thereof |
-
2023
- 2023-09-21 CN CN202311223663.5A patent/CN116991745B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108345544A (zh) * | 2018-03-27 | 2018-07-31 | 北京航空航天大学 | 一种基于复杂网络的软件缺陷分布影响因素分析方法 |
CN114816901A (zh) * | 2022-02-28 | 2022-07-29 | 南开大学 | 通过ai的方式对软件变更后的健康状态进行评估的方法 |
CN114266050A (zh) * | 2022-03-03 | 2022-04-01 | 西南石油大学 | 一种跨平台恶意软件对抗样本生成方法及系统 |
CN116486150A (zh) * | 2023-04-20 | 2023-07-25 | 南京大学 | 一种基于不确定性感知的图像分类模型回归误差消减方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116991745A (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yan et al. | Unsupervised learning for fault detection and diagnosis of air handling units | |
Guan et al. | Ensemble of Bayesian predictors and decision trees for proactive failure management in cloud computing systems. | |
Tian et al. | BVDetector: A program slice-based binary code vulnerability intelligent detection system | |
CN111190804A (zh) | 一种云原生系统的多层次的深度学习日志故障检测方法 | |
CN113255835A (zh) | 一种水电站泵类设备异常检测方法 | |
Jiang et al. | Performance-driven optimal design of distributed monitoring for large-scale nonlinear processes | |
CN112735541A (zh) | 一种基于简单循环单元神经网络的污水处理水质预测方法 | |
Zhao et al. | Fine-scale modeling and monitoring of wide-range nonstationary batch processes with dynamic analytics | |
CN115129591A (zh) | 面向二进制代码的复现漏洞检测方法及系统 | |
CN116192477A (zh) | 一种基于掩码图自编码器的apt攻击检测方法及装置 | |
CN115776401A (zh) | 基于少样本学习对网络攻击事件进行溯源的方法、装置 | |
CN116991745B (zh) | 一种面向软件变更的适应性弱点检测方法 | |
CN112434783A (zh) | 一种非侵入式负载分解方法及系统 | |
Gao et al. | Decentralized adaptively weighted stacked autoencoder-based incipient fault detection for nonlinear industrial processes | |
CN112905370A (zh) | 拓扑图生成方法、异常检测方法、装置、设备及存储介质 | |
Wei et al. | Hessian semisupervised scatter regularized classification model with geometric and discriminative information for nonlinear process | |
CN115878498A (zh) | 一种基于机器学习预测程序行为的关键字节提取方法 | |
CN114064472B (zh) | 基于代码表示的软件缺陷自动修复加速方法 | |
Wang et al. | Identifying execution anomalies for data intensive workflows using lightweight ML techniques | |
CN104751059A (zh) | 基于函数模板的软件行为分析方法 | |
Brunello et al. | Pairing Monitoring with Machine Learning for Smart System Verification and Predictive Maintenance. | |
CN114385472A (zh) | 一种异常数据的检测方法、装置、设备及存储介质 | |
CN113934714A (zh) | 一种基于概率密度聚类的数据清洗方法及装置 | |
Chen et al. | A naive feature selection method and its application in network intrusion detection | |
CN103995528B (zh) | 一种功率变换器主电路的智能自修复技术 |
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 |