CN106339322A - 一种基于hmm‑aco的软件行为预测的方法 - Google Patents
一种基于hmm‑aco的软件行为预测的方法 Download PDFInfo
- Publication number
- CN106339322A CN106339322A CN201610821508.7A CN201610821508A CN106339322A CN 106339322 A CN106339322 A CN 106339322A CN 201610821508 A CN201610821508 A CN 201610821508A CN 106339322 A CN106339322 A CN 106339322A
- Authority
- CN
- China
- Prior art keywords
- point
- sequence
- hmm
- parameter
- short sequence
- 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
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
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及计算机软件技术领域,具体涉及一种基于HMM‑ACO的软件行为预测的方法。本发明包括:(1)建立知识库;知识库包括模型参数集、可观测序列集对应的标准隐状态短序列集、判定待检测序列是否异常的阈值;(2)进行软件行为识别,得到软件运行过程中产生的待检测系统调用序列集;(3)进行软件行为预测。本发明通过研究HMM在软件行为预测方面存在应用上的缺陷,即HMM会因为参数B的问题而陷入局部最优,导致模型精度下降,建立了蚁群算法与HMM相结合的新模型HMM‑ACO,有效地提高了模型的精度,进而提高了软件行为预测的准确率。
Description
技术领域
本发明涉及计算机软件技术领域,具体涉及一种基于HMM-ACO的软件行为预测的方法。
背景技术
随着计算机的普及和应用,各个企业对大型软件管理系统需求越来越高,各式各样的软件管理系统成为各个企业安全、可靠和稳定运行的重要保障。因此,迫切需要提出以评估软件系统运行状态为基础的系统评估和预测机制,以提高软件系统运行的可靠性,以保证软件系统中各项功能的正常、安全使用。
软件行为预测是评估软件系统运行状态的重要依据,软件行为预测通常是指将软件运行过程中产生的系统调用长序列作为软件行为预测的数据源,通过历史信息及软件系统当前状态信息,对软件未来时间可能出现的状态进行预测,准确的预测软件行为状态,有助于运维人员及早发现和处理可能的问题,防止功能降级或者系统崩溃,软件行为预测理论技术当前正处在初级发展阶段。
现有的软件行为预测方法主要基于时间序列法,即从以往软件行为状态序列中找到一定模式进而推测未来软件的行为状态,该方法预测准确率低,而且当前该方法并不能发掘软件实际状态和观测参数之间的联系,具有很大的局限性。目前关于软件行为状态预测的文献不多,公开的《一种基于隐马尔科夫模型的软件系统状态预测方法》的申请号为201510099169.1的专利文件通过使用HMM(Hidden Markov Model,隐马尔科夫模型)模型,在软件行为预测方面比较成功,但是由于HMM具有对初始参数,尤其是参数B敏感的缺陷,该方法很容易出现陷入局部最优的问题,因此亟须提出一种更优的、适用面更广的软件行为预测方法。
发明内容
本发明的目的在于克服HMM方法在软件行为预测中的缺点与不足,提出将蚁群优化算法ACO与HMM相结合的理论,并建立新的模型HMM-ACO,提高模型的精度,进而提高软件行为预测的准确率的基于HMM-ACO的软件行为预测的方法。
本发明的目的是这样实现的:
(1)建立知识库;知识库包括模型参数集、可观测序列集对应的标准隐状态短序列集Φ、判定待检测序列是否异常的阈值ψ;
(1.1)获取模型λ的参数π、A、B;标准的HMM可用一个五元组来表示,即λ=(N,M,π,A,B),由于N、M对模型λ影响较小,因此通常将模型λ的状态数目N、观测序列的观测值数目M忽略,简写为λ=(π,A,B);训练数据采用软件运行过程中产生的正常系统调用短序列集作为正常系统调用的短序列集,将正常系统调用短序列集使用B-W算法对模型λ进行训练,得到训练后的新模型λ=(π,A,B),将新模型中的参数π、A和B存入知识库中;
(1.2)获取标准隐状态短序列集Φ;使用Viterbi算法计算得到软件运行过程中产生的正常系统调用短序列集最匹配的隐状态序列集,将得到的隐状态序列集进行去重,将去重后的隐状态短序列集作为标准隐状态短序列集Φ,并存入到新知识库中;对于待检测系统调用短序列对应的最佳隐状态短序列,如果某个最佳隐状态短序列被包含在Φ中,则当前待检测系统调用短序列不是异常,反之则是异常的;
(1.3)判断待检测系统调用长序列是否异常的阈值ψ;阈值ψ为小于1的常数。假设标准隐状态短序列集Φ中隐状态短序列的个数为n',待检测系统调用长序列对应的最佳隐状态短序列集中有m个短序列被包含在Φ中,如果m/n'>ψ,那么判定该待检测系统调用长序列为正常,反之判定该待检测系统调用长序列为异常;
(2)进行软件行为识别,得到软件运行过程中产生的待检测系统调用序列集,进一步,该过程包含以下步骤:
(2.1)长序列切分;当有待检测系统调用长序列到来时,利用切分窗口对其进行切分,得到为一系列宽度均为K的待检测系统调用短序列,进而组合得到待检测系统调用短序列集;
(2.2)对于步骤(2.1)中得到的每一个待检测系统调用短序列,均使用Viterbi算法计算得到与其对应的最佳的隐状态短序列,然后将得到的所有隐状态短序列作为一个集合;
(2.3)判断步骤(2.2)中得到的每一个隐状态短序列是否在知识库中的标准隐状态短序列集Φ中,将不存在于标准隐状态序列集中的短序列个数记为p,获取判断待检测系统调用序列是否异常的阈值ψ,记标准隐状态短序列集中系统调用短序列的个数为n',如果p/n'<ψ,则说明该待检测系统调用长序列是正常的;否则说明是异常的,需进行异常处理;
当待检测系统调用长序列进行新知识库中的阈值ψ检测正常,通过待检测序列进行软件行为预测,转入步骤(3),否则不能通过当前待检测序列进行软件行为预测;
(3)进行软件行为预测:
(3.1)优化HMM算法中的参数B形成模型HMM-ACO;利用蚁群算法对HMM的参数B优化之后形成新的模型HMM-ACO,其中,参数A、参数π、参数B的初始值均为任意赋值;
使用蚁群算法优化HMM的参数B的具体流程如下:
(3.1.1)建立连续的搜索空间Ω代表HMM中λ=(π,A,B),搜索空间的维数为参数A,B,π个数之和,根据隐马尔科夫模型中参数A,B,π的取值范围得到搜索空间Ω有N*M+N*N+N维,即x=(π1,...,πN,a11,...,aNN,b11,..,bNM)T,x也就是模型λ表示为x=(x1,x2,...,xn),0≤xi≤1,i=1,2,...,n,n=N*M+N*N+N,搜索空间Ω中的一个点对应代表参数A,B,π的连续空间一个解,如果x确定,则HMM的参数B也确定;
确定x,定义度量函数其中Oi是HMM的观测序列,Oi∈{O1,O2,…,Oq,…,On},n是观测序列个数,P(Oi/x)由HMM的Forward算法得到;
确定搜寻最优解x=(x1,x2,...,xn)步骤为:
m只蚂蚁组成蚁群Q,m为正整数,m只蚂蚁在由参数A,B,π组成的搜索空间Ω中寻找最优点xbest,使得度量函数f(xbest)的值最大;将搜索空间Ω划分为R个区域,其中R为正整数;蚁群Q在最优解搜索的初始化阶段为搜索空间Ω中各个区域赋予相同的信息素含量τ0,τ0为正数;m只蚂蚁通过遍历R个区域来代替对搜索空间Ω的搜索,将区域的中心点位置记为x',使用各个区域中心代替各个区域,所有区域的中心点组成集合XR;
(3.1.1.1)定义区域概率选择规则
其中,X'f为区域中心点x'所对应的度量函数值,τ(x')为区域中心点x'的信息素含量值,η(x')表示区域中心点x'的启发性信息,每个区域中心点x'的信息素含量值、启发性信息各不相同,v,w均为正值且为可变量,蚂蚁根据上述规则选择区域,每只蚂蚁均位于所选中区域的区域中心点上,将区域的中心点当作蚁穴,在各个区域选择若干点作为蚂蚁的狩猎点,其中,狩猎点满足隐马尔科夫模型的约束条件;
(3.1.1.2)在搜索开始时,m只蚂蚁被随机分配到各个区域中;根据区域概率选择规则P(x'|X'f),蚂蚁进行区域选择;
(3.1.1.3)定义可行解生成规则:将区域的区域中心点x'作为输入点,并将输入点记为x'=(x'1,x'2,...,x'n),x′i表示区域中心点x'在维数i处的向量,其中i∈[N×N+N+1,N×N+N+M×N],定义微调变量δ∈[0,r],其中r→0;在模型λ=(π,A,B)中,前两个参数π,A对应x'的前N+N×N位且参数π,A都已经赋定合适的初始值,参数B对应于x'后面的M×N位,在x'的所有向量中,前N×N+N个向量保持不变,即x1',x'2,...,x'N×N+N不变,进而得到维数i仅对应于x'的后M×N位;
对于所有的i∈[N×N+N+1,N×N+N+M×N]的x′i,从中选取(M×N)/2个可行点使得每个x′i←x′i+δ,再选取(M×N)/2个可行点使得每个x′i←x′i-δ,然后判断新生成(M×N)个可行点x′i各向量值是否满足x′i-ri≤x′i≤x′i+ri,r=(r1,r2,...,rM*N),如不满足就放弃该点;
(3.1.1.4)m只蚂蚁从蚁穴出发,根据可行解生成规则生成由M×N个可行点组成的点集Θ,改变微调变量δ大小直至使得所有的可行点在整个区域内的分布均匀,在初始时,蚁群算法随机选择p个狩猎点,在此基础上开始搜寻,即随机选择一个狩猎点xs进行搜索,并设当前狩猎点的最优点为xb,初始时令xb=xs,在该狩猎点局部搜索最优点;
(3.1.1.4.1)设定蚂蚁的搜索半径为δ',蚂蚁在搜索半径δ'构造的搜索区域内进行局部搜索;
(3.1.1.4.2)以当前狩猎点作为输入点,由可行解生成规则在以半径δ'为输入半径生成候选搜索点集;
(3.1.1.4.3)若在限定次数k内,使得f(x)>f(xb),则令xb←x;如果在限定次数k内不存在x使得f(x)>f(xb),则停止搜索,直接执行步骤(3.1.1.4.5);
(3.1.1.4.4)将k值重置,转到步骤(3.1.1.4.3)执行,直至遍历候选点集,转到步骤(3.1.1.4.5);
(3.1.1.4.5)若xs=xb,则增大搜索半径,转到步骤(3.1.1.4.2)继续搜索,否则令xs←xb,执行增加信息素的操作,转入步骤(3.1.1.4.1),若在规定的最大忍耐次数n内仍然没有找到比狩猎点xs更优的点,就重新选取狩猎点xs,继续执行搜索,直至找到所有狩猎点的局部最优点为xb;
(3.1.1.5)求出所有狩猎点的最优点xb对应的f(x)值,进而得到f(x)的最大值,最大的f(x)对应的参数B最优;
(3.2)求取待检测的系统调用长序列对应的隐状态序列,根据其最后一个隐状态预测下一步发展隐状态;
(3.2.1)切分数据;根据待检测正常系统调用序列,利用切分窗口技术截取出宽度K的系统调用短序列O1O2O3......OK;
(3.2.2)求出O1O2O3......OK对应的最佳隐状态序列;对于步骤(3.2.1)中截取出的系统调用短序列O1O2O3......OK,根据知识库中存储的优化模型HMM-ACO以及Viterbi算法,求出O1O2O3......OK对应的最佳隐状态序列q1q2q3......qK;
(3.2.3)根据(3.2.2)中得到的隐状态序列的最后一个状态的值qK以及模型HMM-ACO的状态转移矩阵A求出qK的下一个可能性最大的隐状态;具体来说就是在隐状态转移概率矩阵A的第qK行中,寻找得到所有元素中数值最大元素所在的列号,该列号表示的状态即是预测的下一个可能性最大的隐状态。
本发明的有益效果是:通过研究HMM在软件行为预测方面存在应用上的缺陷,即HMM会因为参数B的问题而陷入局部最优,导致模型精度下降,建立了蚁群算法与HMM相结合的新模型HMM-ACO,有效地提高了模型的精度,进而提高了软件行为预测的准确率。
附图说明
图1是一种基于HMM-ACO的软件行为预测的方法原理流程图;
图2是本发明方法中知识库组成结构图;
图3是基于HMM-ACO的软件行为预测方法的流程图。
具体实施方式
下面结合附图对本发明做进一步描述。
本发明针对现有技术的不足,提出一种基于HMM-ACO的软件行为预测的方法,克服了HMM方法在软件行为预测中由于参数B陷入局部最优、导致模型精度下降的缺点,通过将蚁群优化算法与HMM结合,建立新的模型HMM-ACO对软件行为进行预测,提高了软件行为预测的准确率,下面结合附图对本发明方法进行进一步的解释和说明。
如图1所示为一种基于HMM-ACO的软件行为预测方法流程图,包括如下步骤:
步骤1:建立知识库;如图2所示本发明方法中知识库包括模型参数集、可观测序列集(即正常系统调用的短序列集)对应的标准隐状态短序列集Φ、判定待检测序列是否异常的阈值ψ。
步骤1包括以下步骤:
步骤11:获取模型λ的参数π、A、B;标准的HMM可用一个五元组来表示,即λ=(N,M,π,A,B),由于N、M对模型λ影响较小,因此通常将模型λ的状态数目N、观测序列的观测值数目M忽略,简写为λ=(π,A,B)。本发明方法中的训练数据采用软件运行过程中产生的正常系统调用短序列集(即新墨西哥大学Forrest教授研究入侵检测时使用的系统调用序列,可以从网站http://www.cs.unm.edu/~immsec/data/上下载,这里选取的数据与sendmail相关)作为正常系统调用的短序列集,将正常系统调用短序列集使用B-W算法对模型λ进行训练,得到训练后的新模型λ=(π,A,B),将新模型中的参数π、A和B存入知识库中。
步骤12:获取标准隐状态短序列集Φ;使用Viterbi算法计算得到软件运行过程中产生的正常系统调用短序列集最匹配的隐状态序列集,将得到的隐状态序列集进行去重,将去重后的隐状态短序列集作为标准隐状态短序列集Φ,并存入到新知识库中。本发明方法中,对于待检测系统调用短序列对应的最佳隐状态短序列,如果某个最佳隐状态短序列被包含在Φ中,则当前待检测系统调用短序列不是异常,反之则是异常的。
步骤13:判断待检测系统调用长序列是否异常的阈值ψ;阈值ψ为小于1的常数。假设标准隐状态短序列集Φ中隐状态短序列的个数为n',待检测系统调用长序列对应的最佳隐状态短序列集中有m个短序列被包含在Φ中,如果m/n'>ψ,那么判定该待检测系统调用长序列为正常,反之判定该待检测系统调用长序列为异常。
步骤2:进行软件行为识别,得到软件运行过程中产生的待检测系统调用序列集,进一步,该过程包含以下步骤:
步骤21:长序列切分;当有待检测系统调用长序列到来时,利用切分窗口(党小超,马峻,郝占军.基于Improved-HMM的进程行为异常检测[J].计算机工程与设计,2011,32(4):1264-1267.)对其进行切分,得到为一系列宽度均为K的待检测系统调用短序列,进而组合得到待检测系统调用短序列集;
步骤22:对于步骤21中得到的每一个待检测系统调用短序列,均使用Viterbi算法计算得到与其对应的最佳的隐状态短序列,然后将得到的所有隐状态短序列作为一个集合。
步骤23:判断步骤22中得到的每一个隐状态短序列是否在知识库中的标准隐状态短序列集Φ中,将不存在于标准隐状态序列集中的短序列个数记为p,获取判断待检测系统调用序列是否异常的阈值ψ,记标准隐状态短序列集中系统调用短序列的个数为n',如果p/n'<ψ,则说明该待检测系统调用长序列是正常的;否则说明是异常的,需进行异常处理。
当待检测系统调用长序列进行新知识库中的阈值ψ检测正常,则本发明方法能够通过待检测序列进行软件行为预测,转入步骤3,否则本发明方法不能通过当前待检测序列进行软件行为预测。
步骤3:进行软件行为预测
步骤31:优化HMM算法中的参数B形成模型HMM-ACO;由于HMM算法中参数B对模型λ的整体性能影响较大,而参数A和π的影响较小,可以忽略,所以利用蚁群算法对HMM的参数B优化(即将参数A、π赋合适的初始值,参数B随机赋初始值,然后再对参数B进行优化)之后形成新的模型HMM-ACO,其中,本发明方法中参数A、参数π、参数B的初始值均为任意赋值。
进一步,使用蚁群算法优化HMM的参数B的具体流程如下:
步骤311:本发明方法利用蚁群算法在解决连续优化问题中的优势,并结合HMM模型约束条件的特点,将HMM模型的参数估计问题转化为连续优化问题,因此建立连续的搜索空间Ω代表HMM中λ=(π,A,B),搜索空间的维数为参数A,B,π个数之和,根据隐马尔科夫模型中参数A,B,π的取值范围可以得到搜索空间Ω有N*M+N*N+N维,即x=(π1,...,πN,a11,...,aNN,b11,..,bNM)T,进而x也就是模型λ可以表示为x=(x1,x2,...,xn),0≤xi≤1,i=1,2,...,n,n=N*M+N*N+N,搜索空间Ω中的一个点对应代表参数A,B,π的连续空间一个解,如果x确定,则HMM的参数B也确定。
若要确定x,需定义度量函数其中Oi是HMM的观测序列,Oi∈{O1,O2,…,Oq,…,On},n是观测序列个数,P(Oi/x)可由HMM的Forward算法得到,由于P(Oi/x)的值可能很小,计算机的精度有时无法表示,所以本专利采用其对数形式表示。确定x的过程就是蚁群算法中蚂蚁在搜索空间Ω进行搜寻解操作、寻找最优的可行解,当寻找到较优解时,调用信息素更新操作增加当前较优解对应点的信息素浓度,吸引其他蚂蚁到当前较优解对应点附近做进一步搜索,直至找到最优解。
进一步,确定搜寻最优解x=(x1,x2,...,xn)步骤为:
假设m只蚂蚁组成蚁群Q,m为正整数,m只蚂蚁在由参数A,B,π组成的搜索空间Ω中寻找最优点xbest,使得度量函数f(xbest)的值最大。本发明方法将搜索空间Ω划分为R个区域,其中R为正整数。蚁群Q在最优解搜索的初始化阶段为搜索空间Ω中各个区域赋予相同的信息素含量τ0(τ0为正数)。m只蚂蚁通过遍历R个区域来代替对搜索空间Ω的搜索,将区域的中心点位置记为x',使用各个区域中心代替各个区域,所有区域的中心点组成集合XR。
步骤3111:定义区域概率选择规则
其中,X'f为区域中心点x'所对应的度量函数值,τ(x')为区域中心点x'的信息素含量值,η(x')表示区域中心点x'的启发性信息,每个区域中心点x'的信息素含量值、启发性信息各不相同,v,w均为正值且为可变量,二者对信息素和启发性信息起到了调节的作用,v越大表示蚂蚁选择搜索过区域中心点x'的可能性越大,w越大表示蚂蚁探索未探索的区域中心点x'的可能性越大。蚂蚁根据上述规则选择区域,每只蚂蚁均位于所选中区域的区域中心点上,将区域的中心点当作蚁穴,在各个区域选择若干点作为蚂蚁的狩猎点,其中,狩猎点满足隐马尔科夫模型的约束条件。
步骤3112:因此在搜索开始时,m只蚂蚁被随机分配到各个区域中;根据区域概率选择规则P(x'|X'f),蚂蚁进行区域选择。
步骤3113:定义可行解生成规则。将区域的区域中心点x'作为输入点,并将输入点记为x'=(x'1,x'2,...,x'n),x′i表示区域中心点x'在维数i处的向量,其中i∈[N×N+N+1,N×N+N+M×N],定义微调变量δ∈[0,r],其中r→0。因为在模型λ=(π,A,B)中,前两个参数π,A对应x'的前N+N×N位且参数π,A都已经赋定合适的初始值,参数B对应于x'后面的M×N位,因此本发明方法在x'的所有向量中,前N×N+N个向量保持不变,即x′1,x′2,...,x'N×N+N不变,进而得到本发明方法中维数i仅对应于x′的后M×N位。
对于所有的i∈[N×N+N+1,N×N+N+M×N]的x′i,从中选取(M×N)/2个可行点使得每个x′i←x′i+δ,再选取(M×N)/2个可行点使得每个x′i←x′i-δ,然后判断新生成(M×N)个可行点x′i各向量值是否满足x′i-ri≤x′i≤x′i+ri,r=(r1,r2,...,rM*N),如不满足就放弃该点.
步骤3114:m只蚂蚁从蚁穴出发,根据上述可行解生成规则生成由M×N个可行点组成的点集Θ,改变微调变量δ大小直至使得所有的可行点在整个区域内的分布均匀,避免可行点的集中造成的不利影响。本发明方法在初始时,蚁群算法随机选择p个狩猎点,在此基础上开始搜寻,即随机选择一个狩猎点xs进行搜索,并设当前狩猎点的最优点为xb,初始时令xb=xs,在该狩猎点局部搜索最优点。
进一步,搜索局部最优点具体步骤如下,
步骤31141:设定蚂蚁的搜索半径为δ',蚂蚁在搜索半径δ'构造的搜索区域内进行局部搜索。
步骤31142:以当前狩猎点作为输入点,由可行解生成规则在以半径δ'为输入半径生成候选搜索点集。
步骤31143:若在限定次数k内,使得f(x)>f(xb),则令xb←x;如果在限定次数k内不存在x使得f(x)>f(xb),则停止搜索,直接执行步骤31145。
步骤31144:将k值重置,转到步骤31143执行,直至遍历候选点集,转到步骤31145。
步骤31145:若xs=xb,则增大搜索半径,转到步骤31142继续搜索,否则令xs←xb,执行增加信息素的操作,转入步骤31141,若在规定的最大忍耐次数n内仍然没有找到比狩猎点xs更优的点,就重新选取狩猎点xs,继续执行搜索,直至找到所有狩猎点的局部最优点为xb。
步骤3115:求出所有狩猎点的最优点xb对应的f(x)值,进而得到f(x)的最大值,最大的f(x)对应的参数B最优。
步骤32:求取待检测的系统调用长序列对应的隐状态序列,根据其最后一个隐状态预测下一步发展隐状态。
进一步,步骤32包含以下步骤:
步骤321:切分数据;根据待检测正常系统调用序列,利用切分窗口技术(步骤21)截取出宽度K的系统调用短序列O1O2O3......OK;
步骤322:求出O1O2O3......OK对应的最佳隐状态序列;对于步骤321中截取出的系统调用短序列O1O2O3......OK,根据知识库中存储的优化模型HMM-ACO以及Viterbi算法,求出O1O2O3......OK对应的最佳隐状态序列q1q2q3......qK;
步骤323:根据上一步中得到的隐状态序列的最后一个状态的值qK以及模型HMM-ACO的状态转移矩阵A求出qK的下一个可能性最大的隐状态。具体来说就是在隐状态转移概率矩阵A的第qK行中,寻找得到所有元素中数值最大元素所在的列号,该列号表示的状态即是预测的下一个可能性最大的隐状态。
例如:如果隐状态转移概率矩阵A的值如下表1所示,并且假设qK=2,那么就可以预测出qK的下一个最有可能的状态是3。
表1HMM的参数A示例
综上,一种基于HMM-ACO的软件行为预测的方法流程图如图3所示。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种基于HMM-ACO的软件行为预测的方法,其特征在于,包括如下步骤:
(1)建立知识库;知识库包括模型参数集、可观测序列集对应的标准隐状态短序列集Φ、判定待检测序列是否异常的阈值ψ;
(1.1)获取模型λ的参数π、A、B;标准的HMM可用一个五元组来表示,即λ=(N,M,π,A,B),由于N、M对模型λ影响较小,因此通常将模型λ的状态数目N、观测序列的观测值数目M忽略,简写为λ=(π,A,B);训练数据采用软件运行过程中产生的正常系统调用短序列集作为正常系统调用的短序列集,将正常系统调用短序列集使用B-W算法对模型λ进行训练,得到训练后的新模型λ=(π,A,B),将新模型中的参数π、A和B存入知识库中;
(1.2)获取标准隐状态短序列集Φ;使用Viterbi算法计算得到软件运行过程中产生的正常系统调用短序列集最匹配的隐状态序列集,将得到的隐状态序列集进行去重,将去重后的隐状态短序列集作为标准隐状态短序列集Φ,并存入到新知识库中;对于待检测系统调用短序列对应的最佳隐状态短序列,如果某个最佳隐状态短序列被包含在Φ中,则当前待检测系统调用短序列不是异常,反之则是异常的;
(1.3)判断待检测系统调用长序列是否异常的阈值ψ;阈值ψ为小于1的常数。假设标准隐状态短序列集Φ中隐状态短序列的个数为n',待检测系统调用长序列对应的最佳隐状态短序列集中有m个短序列被包含在Φ中,如果m/n'>ψ,那么判定该待检测系统调用长序列为正常,反之判定该待检测系统调用长序列为异常;
(2)进行软件行为识别,得到软件运行过程中产生的待检测系统调用序列集,进一步,该过程包含以下步骤:
(2.1)长序列切分;当有待检测系统调用长序列到来时,利用切分窗口对其进行切分,得到为一系列宽度均为K的待检测系统调用短序列,进而组合得到待检测系统调用短序列集;
(2.2)对于步骤(2.1)中得到的每一个待检测系统调用短序列,均使用Viterbi算法计算得到与其对应的最佳的隐状态短序列,然后将得到的所有隐状态短序列作为一个集合;
(2.3)判断步骤(2.2)中得到的每一个隐状态短序列是否在知识库中的标准隐状态短序列集Φ中,将不存在于标准隐状态序列集中的短序列个数记为p,获取判断待检测系统调用序列是否异常的阈值ψ,记标准隐状态短序列集中系统调用短序列的个数为n',如果p/n'<ψ,则说明该待检测系统调用长序列是正常的;否则说明是异常的,需进行异常处理;
当待检测系统调用长序列进行新知识库中的阈值ψ检测正常,通过待检测序列进行软件行为预测,转入步骤(3),否则不能通过当前待检测序列进行软件行为预测;
(3)进行软件行为预测:
(3.1)优化HMM算法中的参数B形成模型HMM-ACO;利用蚁群算法对HMM的参数B优化之后形成新的模型HMM-ACO,其中,参数A、参数π、参数B的初始值均为任意赋值;
使用蚁群算法优化HMM的参数B的具体流程如下:
(3.1.1)建立连续的搜索空间Ω代表HMM中λ=(π,A,B),搜索空间的维数为参数A,B,π个数之和,根据隐马尔科夫模型中参数A,B,π的取值范围得到搜索空间Ω有N*M+N*N+N维,即x=(π1,...,πN,a11,...,aNN,b11,..,bNM)T,x也就是模型λ表示为x=(x1,x2,...,xn),0≤xi≤1,i=1,2,...,n,n=N*M+N*N+N,搜索空间Ω中的一个点对应代表参数A,B,π的连续空间一个解,如果x确定,则HMM的参数B也确定;
确定x,定义度量函数其中Oi是HMM的观测序列,Oi∈{O1,O2,…,Oq,…,On},n是观测序列个数,P(Oi/x)由HMM的Forward算法得到;
确定搜寻最优解x=(x1,x2,...,xn)步骤为:
m只蚂蚁组成蚁群Q,m为正整数,m只蚂蚁在由参数A,B,π组成的搜索空间Ω中寻找最优点xbest,使得度量函数f(xbest)的值最大;将搜索空间Ω划分为R个区域,其中R为正整数;蚁群Q在最优解搜索的初始化阶段为搜索空间Ω中各个区域赋予相同的信息素含量τ0,τ0为正数;m只蚂蚁通过遍历R个区域来代替对搜索空间Ω的搜索,将区域的中心点位置记为x',使用各个区域中心代替各个区域,所有区域的中心点组成集合XR;
(3.1.1.1)定义区域概率选择规则
其中,X'f为区域中心点x'所对应的度量函数值,τ(x')为区域中心点x'的信息素含量值,η(x')表示区域中心点x'的启发性信息,每个区域中心点x'的信息素含量值、启发性信息各不相同,v,w均为正值且为可变量,蚂蚁根据上述规则选择区域,每只蚂蚁均位于所选中区域的区域中心点上,将区域的中心点当作蚁穴,在各个区域选择若干点作为蚂蚁的狩猎点,其中,狩猎点满足隐马尔科夫模型的约束条件;
(3.1.1.2)在搜索开始时,m只蚂蚁被随机分配到各个区域中;根据区域概率选择规则P(x'|X'f),蚂蚁进行区域选择;
(3.1.1.3)定义可行解生成规则:将区域的区域中心点x'作为输入点,并将输入点记为x'=(x'1,x'2,...,x'n),x'i表示区域中心点x'在维数i处的向量,其中i∈[N×N+N+1,N×N+N+M×N],定义微调变量δ∈[0,r],其中r→0;在模型λ=(π,A,B)中,前两个参数π,A对应x'的前N+N×N位且参数π,A都已经赋定合适的初始值,参数B对应于x'后面的M×N位,在x'的所有向量中,前N×N+N个向量保持不变,即x'1,x'2,...,x'N×N+N不变,进而得到维数i仅对应于x'的后M×N位;
对于所有的i∈[N×N+N+1,N×N+N+M×N]的x'i,从中选取(M×N)/2个可行点使得每个x'i←x'i+δ,再选取(M×N)/2个可行点使得每个x'i←x'i-δ,然后判断新生成(M×N)个可行点x'i各向量值是否满足x'i-ri≤x'i≤x'i+ri,r=(r1,r2,...,rM*N),如不满足就放弃该点;
(3.1.1.4)m只蚂蚁从蚁穴出发,根据可行解生成规则生成由M×N个可行点组成的点集Θ,改变微调变量δ大小直至使得所有的可行点在整个区域内的分布均匀,在初始时,蚁群算法随机选择p个狩猎点,在此基础上开始搜寻,即随机选择一个狩猎点xs进行搜索,并设当前狩猎点的最优点为xb,初始时令xb=xs,在该狩猎点局部搜索最优点;
(3.1.1.4.1)设定蚂蚁的搜索半径为δ',蚂蚁在搜索半径δ'构造的搜索区域内进行局部搜索;
(3.1.1.4.2)以当前狩猎点作为输入点,由可行解生成规则在以半径δ'为输入半径生成候选搜索点集;
(3.1.1.4.3)若在限定次数k内,使得f(x)>f(xb),则令xb←x;如果在限定次数k内不存在x使得f(x)>f(xb),则停止搜索,直接执行步骤(3.1.1.4.5);
(3.1.1.4.4)将k值重置,转到步骤(3.1.1.4.3)执行,直至遍历候选点集,转到步骤(3.1.1.4.5);
(3.1.1.4.5)若xs=xb,则增大搜索半径,转到步骤(3.1.1.4.2)继续搜索,否则令xs←xb,执行增加信息素的操作,转入步骤(3.1.1.4.1),若在规定的最大忍耐次数n内仍然没有找到比狩猎点xs更优的点,就重新选取狩猎点xs,继续执行搜索,直至找到所有狩猎点的局部最优点为xb;
(3.1.1.5)求出所有狩猎点的最优点xb对应的f(x)值,进而得到f(x)的最大值,最大的f(x)对应的参数B最优;
(3.2)求取待检测的系统调用长序列对应的隐状态序列,根据其最后一个隐状态预测下一步发展隐状态;
(3.2.1)切分数据;根据待检测正常系统调用序列,利用切分窗口技术截取出宽度K的系统调用短序列O1O2O3......OK;
(3.2.2)求出O1O2O3......OK对应的最佳隐状态序列;对于步骤(3.2.1)中截取出的系统调用短序列O1O2O3......OK,根据知识库中存储的优化模型HMM-ACO以及Viterbi算法,求出O1O2O3......OK对应的最佳隐状态序列q1q2q3......qK;
(3.2.3)根据(3.2.2)中得到的隐状态序列的最后一个状态的值qK以及模型HMM-ACO的状态转移矩阵A求出qK的下一个可能性最大的隐状态;具体来说就是在隐状态转移概率矩阵A的第qK行中,寻找得到所有元素中数值最大元素所在的列号,该列号表示的状态即是预测的下一个可能性最大的隐状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610821508.7A CN106339322A (zh) | 2016-09-13 | 2016-09-13 | 一种基于hmm‑aco的软件行为预测的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610821508.7A CN106339322A (zh) | 2016-09-13 | 2016-09-13 | 一种基于hmm‑aco的软件行为预测的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106339322A true CN106339322A (zh) | 2017-01-18 |
Family
ID=57840048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610821508.7A Pending CN106339322A (zh) | 2016-09-13 | 2016-09-13 | 一种基于hmm‑aco的软件行为预测的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106339322A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107608778A (zh) * | 2017-09-30 | 2018-01-19 | 广东欧珀移动通信有限公司 | 应用程序管控方法、装置、存储介质及电子设备 |
CN108881194A (zh) * | 2018-06-07 | 2018-11-23 | 郑州信大先进技术研究院 | 企业内部用户异常行为检测方法和装置 |
CN109657452A (zh) * | 2018-12-20 | 2019-04-19 | 广东电网有限责任公司 | 一种移动应用行为动态可信评估方法及装置 |
CN110362065A (zh) * | 2019-07-17 | 2019-10-22 | 东北大学 | 一种航空发动机防喘控制系统的状态诊断方法 |
CN110737268A (zh) * | 2019-10-14 | 2020-01-31 | 哈尔滨工程大学 | 一种基于Viterbi算法的确定指令的方法 |
CN114511039A (zh) * | 2022-02-28 | 2022-05-17 | 智汇(中山)信息技术有限公司 | 一种软件开发行为监控系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308473A (zh) * | 2008-06-27 | 2008-11-19 | 浙江大学 | 一种基于序列模式挖掘的程序级操作系统调试方法 |
CN104699606A (zh) * | 2015-03-06 | 2015-06-10 | 国网四川省电力公司电力科学研究院 | 一种基于隐马尔科夫模型的软件系统状态预测方法 |
CN105528286A (zh) * | 2015-09-28 | 2016-04-27 | 北京理工大学 | 一种基于系统调用的软件行为评估方法 |
-
2016
- 2016-09-13 CN CN201610821508.7A patent/CN106339322A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308473A (zh) * | 2008-06-27 | 2008-11-19 | 浙江大学 | 一种基于序列模式挖掘的程序级操作系统调试方法 |
CN104699606A (zh) * | 2015-03-06 | 2015-06-10 | 国网四川省电力公司电力科学研究院 | 一种基于隐马尔科夫模型的软件系统状态预测方法 |
CN105528286A (zh) * | 2015-09-28 | 2016-04-27 | 北京理工大学 | 一种基于系统调用的软件行为评估方法 |
Non-Patent Citations (1)
Title |
---|
ZIYING ZHANG等: "《CYCSEE 2016,Part I,CCIS 623》", 23 August 2016 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107608778A (zh) * | 2017-09-30 | 2018-01-19 | 广东欧珀移动通信有限公司 | 应用程序管控方法、装置、存储介质及电子设备 |
CN107608778B (zh) * | 2017-09-30 | 2020-01-14 | Oppo广东移动通信有限公司 | 应用程序管控方法、装置、存储介质及电子设备 |
CN108881194A (zh) * | 2018-06-07 | 2018-11-23 | 郑州信大先进技术研究院 | 企业内部用户异常行为检测方法和装置 |
CN108881194B (zh) * | 2018-06-07 | 2020-12-11 | 中国人民解放军战略支援部队信息工程大学 | 企业内部用户异常行为检测方法和装置 |
CN109657452A (zh) * | 2018-12-20 | 2019-04-19 | 广东电网有限责任公司 | 一种移动应用行为动态可信评估方法及装置 |
CN110362065A (zh) * | 2019-07-17 | 2019-10-22 | 东北大学 | 一种航空发动机防喘控制系统的状态诊断方法 |
CN110362065B (zh) * | 2019-07-17 | 2022-07-19 | 东北大学 | 一种航空发动机防喘控制系统的状态诊断方法 |
CN110737268A (zh) * | 2019-10-14 | 2020-01-31 | 哈尔滨工程大学 | 一种基于Viterbi算法的确定指令的方法 |
CN110737268B (zh) * | 2019-10-14 | 2022-07-15 | 哈尔滨工程大学 | 一种基于Viterbi算法的确定指令的方法 |
CN114511039A (zh) * | 2022-02-28 | 2022-05-17 | 智汇(中山)信息技术有限公司 | 一种软件开发行为监控系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106339322A (zh) | 一种基于hmm‑aco的软件行为预测的方法 | |
CN112640380B (zh) | 用于对事件的输入流进行异常检测的设备和方法 | |
Long et al. | Understanding membership inferences on well-generalized learning models | |
US8903824B2 (en) | Vertex-proximity query processing | |
Mongiovi et al. | Mining evolving network processes | |
Ortet Lopes et al. | Towards effective detection of recent DDoS attacks: A deep learning approach | |
Bateni et al. | Using Artificial Immune System and Fuzzy Logic for Alert Correlation. | |
Liu et al. | Ud-gnn: Uncertainty-aware debiased training on semi-homophilous graphs | |
Yujie | A survey on information diffusion in online social networks | |
Mythreya et al. | Prediction and prevention of malicious URL using ML and LR techniques for network security: machine learning | |
US11665185B2 (en) | Method and apparatus to detect scripted network traffic | |
Nápoles et al. | Hybrid model based on rough sets theory and fuzzy cognitive maps for decision-making | |
Yolcu et al. | An enhanced fuzzy time series forecasting method based on artificial bee colony | |
Kalanat et al. | A fuzzy method for discovering cost-effective actions from data | |
CN113835973B (zh) | 一种模型训练方法及相关装置 | |
CN114048328B (zh) | 基于转换假设和消息传递的知识图谱链接预测方法及系统 | |
US20230179607A1 (en) | Blocking or allowing a file stream associated with a file based on an initial portion of the file | |
Bateni et al. | Alert correlation using artificial immune recognition system | |
Li et al. | A new bayesian network structure learning algorithm mechanism based on the decomposability of scoring functions | |
Stavropoulos et al. | Optimizing complex event forecasting | |
Saha et al. | FLIP: active learning for relational network classification | |
Prashanthi et al. | A feed-forward and back propagation neural network approach for identifying network anomalies | |
CN110766338A (zh) | 一种基于人工智能和区块链技术eos.io的dpos分叉预测模型方法 | |
Faysal et al. | Fast stochastic block partitioning using a single commodity machine | |
Hwang et al. | A multi‐objective optimization using distribution characteristics of reference data for reverse engineering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170118 |
|
RJ01 | Rejection of invention patent application after publication |