CN115017015B - 一种边缘计算环境下程序异常行为检测方法及系统 - Google Patents

一种边缘计算环境下程序异常行为检测方法及系统 Download PDF

Info

Publication number
CN115017015B
CN115017015B CN202210929602.XA CN202210929602A CN115017015B CN 115017015 B CN115017015 B CN 115017015B CN 202210929602 A CN202210929602 A CN 202210929602A CN 115017015 B CN115017015 B CN 115017015B
Authority
CN
China
Prior art keywords
log
sequence
data
vector
abnormal
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
CN202210929602.XA
Other languages
English (en)
Other versions
CN115017015A (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN202210929602.XA priority Critical patent/CN115017015B/zh
Publication of CN115017015A publication Critical patent/CN115017015A/zh
Application granted granted Critical
Publication of CN115017015B publication Critical patent/CN115017015B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • 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

Abstract

本发明涉及一种边缘计算环境下程序异常行为检测方法及系统,属于边缘应用监测技术领域,本发明的方法采用向量化及日志模板匹配的方式获取与所述待测日志序列相匹配的日志模板序列向量,无需针对不同边缘应用的日志模板,而且本发明基于正常行为预测的异常判别模型进行异常识别,无需负样本,克服了样本不均衡的技术问题,本发明克服了现有方法的缺陷,实现了边缘计算环境下程序异常行为检测。

Description

一种边缘计算环境下程序异常行为检测方法及系统
技术领域
本发明涉及边缘监测技术领域,特别是涉及一种边缘计算环境下程序异常行为检测方法及系统。
背景技术
常见的程序异常行为检测方案通常基于软件日志的行为检测,包括日志收集、日志解析、日志挖掘、异常判定四个部分。首先在开发过程中,为了将来更好地维护系统,通常会接入日志系统,日志于程序运行时生成,通过消息队列等技术即可将各个组件的日志集合至一处。在日志收集完成之后,日志消息将被输入到不同的下游日志挖掘任务中,但是目前大多数日志挖掘工具均需要结构化的输入数据,例如结构化的日志时间列表或矩阵,而日志本身是面向人类自然语言的数据,基于一些模板和具体运行数据生成,因此在日志挖掘之前,需要将半结构化的日志信息解析为结构化的日志事件,日志解析过程也是日志生成的逆过程。最后通过降维、聚类、分类、RNN等深度学习模型等方法进行日志挖掘,识别并判定其中的异常行为。
现有的方法存在如下缺陷,由于边缘应用的编写者不同,编码风格,日志格式多种多样,无法实现预先编写日志模版,因而也无法解析边缘应用不同种类的日志信息。而且由于异常应用仅占系统异常的少部分,这造成了训练数据集中的正负样本不平衡的问题。
发明内容
有鉴于此,本发明提供了一种边缘计算环境下程序异常行为检测方法及系统,以克服现有技术的缺陷实现边缘计算环境下的程序异常行为检测。
为实现上述目的,本发明提供了如下方案:
一种边缘计算环境下程序异常行为检测方法,所述方法包括如下步骤:
对待测日志序列进行向量化及日志模板匹配,获得与所述待测日志序列相匹配的日志模板序列向量,并利用与所述待测日志序列相匹配的日志模板序列向量对向量化得到的待测日志序列向量进行结构化处理,获得待测日志向量;
对所述待测日志向量进行滑窗处理;
分别将每个窗口内的前N-1个数据输入训练后的异常判别模型,获得每个窗口的模型预测结果;其中,N表示窗口的长度;所述异常判别模型用于利用前N-1个数据预测边缘应用在正常运行的情况下输出的第N个数据;
根据每个窗口的模型预设结果与所述窗口的第N个数据的一致性进行异常行为判断。
可选的,所述对待测日志序列进行向量化及日志模板匹配,获得与所述待测日志序列相匹配的日志模板序列向量,具体包括:
采用如下公式,对待测日志序列及日志模板序列进行向量化;
Figure 930033DEST_PATH_IMAGE001
Figure 66617DEST_PATH_IMAGE002
其中,vector(L)表示待测日志序列L的向量,w l 表示待测日志序列L中的第l个数据,n表示待测日志序列L中数据的数量;vector(T)表示日志模板序列T的向量,w t 表示日志模板序列T中的第t个数据,m表示日志模板序列T中数据的数量;f()表示映射函数,pos(w l )表示w l 的位置编码参数,maxMismatch表示待测日志序列L与日志模板序列T中相匹配的不同通配符数量的最大值;
利用如下公式计算待测日志序列L的向量和日志模板序列T的向量的余弦距离;
Figure 656867DEST_PATH_IMAGE003
其中,distance表示余弦距离;
选取与待测日志序列L的向量余弦距离最大的日志模板序列向量,作为与所述待测日志序列相匹配的日志模板序列向量。
可选的,所述对待测日志序列进行向量化及日志模板匹配,获得与所述待测日志序列相匹配的日志模板序列向量,并利用与所述待测日志序列相匹配的日志模板序列向量对向量化得到的待测日志序列向量进行结构化处理,获得待测日志向量,之前还包括:
搭建用于边缘应用运行的虚拟环境;
采用日志增强组件对边缘应用进行字节码插桩处理,获得处理后的边缘应用;
将测试任务和测试数据输入所述虚拟环境,并在所述虚拟环境中运行处理后的边缘应用,获得待测日志序列,并销毁所述虚拟环境。
可选的,所述分别将每个窗口内的前N-1个数据输入训练后的异常判别模型,获得每个窗口的模型预测结果,之前还包括:
获取边缘应用在正常运行时的日志数据,构建数据集;所述数据集中包含多个长度为N的数据序列,数据序列中的前N-1个数据作为特征值,数据序列中的第N个数据作为标签值;
将所述数据集划分为训练集和测试集;
利用所述训练集和交叉熵损失函数,采用梯度下降法训练异常判别模型;
利用测试集对训练后的异常判别模型进行测试;
当测试不通过时,返回步骤“利用所述训练集和交叉熵损失函数,采用梯度下降法训练异常判别模型”,对所述训练后的异常判别模型进行再次训练;
当测试通过时,输出训练后的异常判别模型。
可选的,根据每个窗口的模型预设结果与所述窗口的第N个数据的一致性进行异常行为判断,之后还包括:
当判断结果为假异常的判断结果时,利用假异常的判断结果对应的窗口的数据对训练后的异常判断模型进行再次训练;所述假异常的判断结果为判断结果显示异常,但是经实际确认并不存在异常行为的判断结果。
一种边缘计算环境下程序异常行为检测系统,所述系统包括:
向量化模块,用于对待测日志序列进行向量化及日志模板匹配,获得与所述待测日志序列相匹配的日志模板序列向量,并利用与所述待测日志序列相匹配的日志模板序列向量对向量化得到的待测日志序列向量进行结构化处理,获得待测日志向量;
滑窗处理模块,用于对所述待测日志向量进行滑窗处理;
预测模块,用于分别将每个窗口内的前N-1个数据输入训练后的异常判别模型,获得每个窗口的模型预测结果;其中,N表示窗口的长度;所述异常判别模型用于利用前N-1个数据预测边缘应用在正常运行的情况下输出的第N个数据;
异常行为判断模块,用于根据每个窗口的模型预设结果与所述窗口的第N个数据的一致性进行异常行为判断。
可选的,所述向量化模块,具体包括:
向量化子模块,用于采用如下公式,对待测日志序列及日志模板序列进行向量化,获得待测日志序列L的向量和日志模板序列T
Figure 587914DEST_PATH_IMAGE001
Figure 827396DEST_PATH_IMAGE002
其中,vector(L)表示待测日志序列L的向量,w l 表示待测日志序列L中的第l个数据,n表示待测日志序列L中数据的数量;vector(T)表示日志模板序列T的向量,w t 表示日志模板序列T中的第t个数据,m表示日志模板序列T中数据的数量;f()表示映射函数,pos(w l )表示w l 的位置编码参数,maxMismatch表示待测日志序列L与日志模板序列T中相匹配的不同通配符数量的最大值;
余弦距离计算子模块,用于利用如下公式计算待测日志序列L的向量和日志模板序列T的向量的余弦距离;
Figure 236512DEST_PATH_IMAGE003
其中,distance表示余弦距离;
选择子模块,用于选取与待测日志序列L的向量余弦距离最大的日志模板序列向量,作为与所述待测日志序列相匹配的日志模板序列向量。
可选的,所述系统,还包括:
虚拟环境搭建模块,用于搭建用于边缘应用运行的虚拟环境;
字节码插桩处理模块,用于采用日志增强组件对边缘应用进行字节码插桩处理,获得处理后的边缘应用;
待测日志序列获取子模块,用于将测试任务和测试数据输入所述虚拟环境,并在所述虚拟环境中运行处理后的边缘应用,获得待测日志序列,并销毁所述虚拟环境。
可选的,所述系统还包括:
数据集构建模块,用于获取边缘应用在正常运行时的日志数据,构建数据集;所述数据集中包含多个长度为N的数据序列,数据序列中的前N-1个数据作为特征值,数据序列中的第N个数据作为标签值;
数据集划分模块,用于将所述数据集划分为训练集和测试集;
异常判别模型训练模块,用于利用所述训练集和交叉熵损失函数,采用梯度下降法训练异常判别模型;
异常判别模型测试模块,用于利用测试集对训练后的异常判别模型进行测试;
返回模块,用于当测试不通过时,返回步骤“利用所述训练集和交叉熵损失函数,采用梯度下降法训练异常判别模型”,对所述训练后的异常判别模型进行再次训练;
输出模块,用于当测试通过时,输出训练后的异常判别模型。
可选的,所述系统,还包括:
再次训练模块,用于当判断结果为假异常的判断结果时,利用假异常的判断结果对应的窗口的数据对训练后的异常判断模型进行再次训练;所述假异常的判断结果为判断结果显示异常,但是经实际确认并不存在异常行为的判断结果。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明公开一种边缘计算环境下程序异常行为检测方法及系统,所述方法包括如下步骤:对待测日志序列进行向量化及日志模板匹配,获得与所述待测日志序列相匹配的日志模板序列向量,并利用与所述待测日志序列相匹配的日志模板序列向量对向量化得到的待测日志序列向量进行结构化处理,获得待测日志向量;对所述待测日志向量进行滑窗处理;分别将每个窗口内的前N-1个数据输入训练后的异常判别模型,获得每个窗口的模型预测结果;其中,N表示窗口的长度;所述异常判别模型用于利用前N-1个数据预测边缘应用在正常运行的情况下输出的第N个数据;根据每个窗口的模型预设结果与所述窗口的第N个数据的一致性进行异常行为判断。本发明采用向量化及日志模板匹配的方式获取与所述待测日志序列相匹配的日志模板序列向量,无需针对不同边缘应用的日志模板,而且本发明基于正常行为预测的异常判别模型进行异常识别,无需负样本,克服了样本不均衡的技术问题,本发明克服了现有方法的缺陷,实现了边缘计算环境下程序异常行为检测。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术行人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种边缘计算环境下程序异常行为检测方法的流程图;
图2为本发明实施例1提供的异常判别模型的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术行人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种边缘计算环境下程序异常行为检测方法及系统,以克服现有技术的缺陷实现边缘计算环境下的程序异常行为检测。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例中涉及的相关概念。
日志模板:编码人员在编码时用于生成最终日志的模板字符串。例如:logger.debug(f"Got RESPONSE from worker: {worker_id.hex()} to client:{client_id.hex()}")中,“Got RESPONSE from worker:<*> to client: <*>”就是日志模板。
日志序列:日志序列是模型的输入,是由单条原始日志构成的有序集合,每条日志均为字符串。
日志嵌入:日志嵌入即使用日志向量来表示日志序列特征的过程。对于序列,日志嵌入的目标就是用向量序列
Figure 494318DEST_PATH_IMAGE004
来表示日志序列的特征,其中向量v i 表示对应日志s i 的特征。
主要解决的技术问题即为当前程序异常行为检测方案受限于无法收集边缘应用日志信息、无法解析边缘应用日志、无法判定不同的边缘应用异常行为,无法适用于边缘应用系统。
本发明针对这一问题,设计了一种基于日志分析的边缘应用异常行为检测系统及方法,该系统包括边缘应用运行环境、应用行为增强记录框架、应用日志抽取算法和应用行为判断组件四部分。系统首先构建了一个边缘应用的运行环境,使边缘应用能够在此之中运行而不会破坏真实环境,然后通过应用行为增强,在应用无感知情况下,尽可能多的记录其行为,接着采用基于树结构的日志抽取算法,将原始日志数据进行向量化,最后基于向量化后的日志数据,搭建了用于边缘应用异常行为检测的神经网络,判断边缘应用性质。
实施例1
本发明实施例1提供一种边缘计算环境下程序异常行为检测方法,如图1所示,所述方法包括如下步骤:
步骤101,对待测日志序列进行向量化及日志模板匹配,获得与所述待测日志序列相匹配的日志模板序列向量,并利用与所述待测日志序列相匹配的日志模板序列向量对向量化得到的待测日志序列向量进行结构化处理,获得待测日志向量。
步骤101接收的原始的日志数据,将非结构化的日志数据解析为结构化数据,最后通过异常判别模型进行异常检测。首先,接收原始日志数据,通过多叉树结构按照token(通配符)进行匹配。如果有token匹配则走向下一层;如果未匹配且当前层有通配符时,则看是否可以与该节点下层某一节点对应的模版成功匹配,直到树搜索完毕或者完全没有匹配为止。然后将日志序列和匹配得到的模板序列输入异常判别模型,首先完成日志结构化抽取,生成结构化日志序列和日志模板的多维特征向量,然后结构化的日志序列通过滑动窗口转换为一个个子序列经过异常判别模型计算,完成边缘应用异常行为判定。
如图2所示,异常判别模型的最下层为日志模板嵌入层,日志序列和模版序列在此层完成向量化,同时添加位置编码,以解决自注意力机制对于序列信息的捕捉能力弱的问题。具体的向量化细节如下:
定义日志序列:
Figure 845534DEST_PATH_IMAGE005
定义日志模板序列:
Figure 821580DEST_PATH_IMAGE006
},(n>=m);
其中通配符*已经被剔除;
定义存在映射f:
Figure 782189DEST_PATH_IMAGE007
v表示token w对应的词向量,因此,步骤101所述对待测日志序列进行向量化及日志模板匹配,获得与所述待测日志序列相匹配的日志模板序列向量,具体包括:
采用如下公式,对待测日志序列及日志模板序列进行向量化;
Figure 97764DEST_PATH_IMAGE001
Figure 167351DEST_PATH_IMAGE002
其中,vector(L)表示待测日志序列L的向量,w l 表示待测日志序列L中的第l个数据,n表示待测日志序列L中数据的数量;vector(T)表示日志模板序列T的向量,w t 表示日志模板序列T中的第t个数据,m表示日志模板序列T中数据的数量;f()表示映射函数,pos(w l )表示w l 的位置编码参数,maxMismatch表示待测日志序列L与日志模板序列T中相匹配的不同通配符数量的最大值;此处pos(w l )为位置编码参数,利用Transformer直接得到。引入位置编码参数是因为在模版匹配过程中,通配符<*>可以匹配多个token,匹配位置可能发生错位,这导致算法倾向于用一个通配符取匹配所有日志,故引入位置编码进行错位匹配的惩罚。位置编码在位置完全匹配时最大,随着错位的增大而逐渐减小。
此处
Figure 817644DEST_PATH_IMAGE008
为添加的最长匹配长度限制,该公式的意义为日志模板中的通配符最多匹配
Figure 630880DEST_PATH_IMAGE009
个token。
利用如下公式计算待测日志序列L的向量和日志模板序列T的向量的余弦距离;
Figure 551693DEST_PATH_IMAGE003
其中,distance表示余弦距离;
在向量化的基础上,通过它们的余弦距离作为其相似度,在完成相似度计算后,则得到了与待测日志序列向量相似度最大的日志模版序列向量,这些向量会作为日志模板的特征引入异常判别模型。
步骤102,对所述待测日志向量进行滑窗处理;
步骤103,分别将每个窗口内的前N-1个数据输入训练后的异常判别模型,获得每个窗口的模型预测结果;其中,N表示窗口的长度;所述异常判别模型用于利用前N-1个数据预测边缘应用在正常运行的情况下输出的第N个数据;
如图2所示,注意力机制和前馈网络组成序列特征编码器模块,其具有编码器的功能,进入序列特征编码器模块,该序列特征编码器模块的主要目标是学习输入序列中的序列特征,最终输出整个序列的特征信息。在序列特征编码器模块之后是解码器模块(示例性的采用全连接层实现),该解码器模块负责将序列特征信息映射到实际的日志模板之上,可以视为一个多分类任务。序列的特征信息首先经过一个线性的全连接层降维到k维,k为日志模板数量。接着通过Softmax(归一化指数函数)层来获取每个模板的预测概率。模型采用交叉熵函数来优化模型性能。最后将基于该模型的输出结果做异常判定,具体为,取输出结果中预测概率最大的k组成预测集合S,若实际值不在预测集合之中,则视为应用存在着异常。
异常判别模型基于Deeplog实现,异常判别模型的结构如图2所示,
步骤104,根据每个窗口的模型预设结果与所述窗口的第N个数据的一致性进行异常行为判断。
步骤101所述对待测日志序列进行向量化及日志模板匹配,获得与所述待测日志序列相匹配的日志模板序列向量,并利用与所述待测日志序列相匹配的日志模板序列向量对向量化得到的待测日志序列向量进行结构化处理,获得待测日志向量,之前还包括:
搭建用于边缘应用运行的虚拟环境;采用日志增强组件对边缘应用进行字节码插桩处理,获得处理后的边缘应用;将测试任务和测试数据输入所述虚拟环境,并在所述虚拟环境中运行处理后的边缘应用,获得待测日志序列,并销毁所述虚拟环境。具体的,输入为待检测的基于Storm流式计算框架的流式边缘计算系统,以及其处理的数据,输出为收集到的运行日志数据。在流程控制器的作用下,待监测的边缘应用结合计算数据进入行为监测收集中的虚拟环境。同时在虚拟环境内进行增强日志记录,最后完成日志的收集,生成应用运行日志。
第一步:通过docker(一个开源的应用容器引擎)技术对现有边缘应用进行封装,搭建虚拟环境,使得其满足边缘应用的运行环境需求。结合具体与应用绑定的数据,实现边缘应用在虚拟环境中的正常运行。
第二步:流程控制器通过docker-compose(一个用来定义和运行复杂应用的Docker工具)的api(Application Programming Interface,应用程序编程接口)启动搭建的虚拟环境。然后向虚拟环境中上传测试任务和测试数据。
第三步:使用基于字节码注入技术的日志增强组件,自定义注入内容,在边缘应用的关键位置注入字节码,对其关键行为进行日志记录,解决了由于边缘应用系统隐藏了自己部分行为,而导致传统日志系统无法收集完整的边缘应用系统日志信息的缺陷。具体为通过Storm(命令行) api提交应用,查询应用信息,根据目标方法类型选取不同的字节码注入位置,对于目标方法类型,此处分为通常方法和native方法(一个java调用非java代码的接口)。对于通常方法,其方法体均存在于字节码中,所以对于通常方法方法,直接在方法体的首尾注入字节码即可;而native方法编译后的字节码中没有实际的方法体,但是调用native方法的方法一定是通常方法,所以只要对所有调用native方法的通常方法在方法体首尾注入字节码即可。确定注入位置后,调用日志增强组件完成字节码的插桩。
第四步:启动模拟的Spout(消息源)接口发送数据。一段时间后,收集应用运行结果以及所产生的日志,并销毁整个虚拟环境。
步骤103所述分别将每个窗口内的前N-1个数据输入训练后的异常判别模型,获得每个窗口的模型预测结果,之前还包括:获取边缘应用在正常运行时的日志数据,构建数据集;所述数据集中包含多个长度为N的数据序列,数据序列中的前N-1个数据作为特征值,数据序列中的第N个数据作为标签值;将所述数据集划分为训练集和测试集;利用所述训练集和交叉熵损失函数,采用梯度下降法训练异常判别模型;利用测试集对训练后的异常判别模型进行测试;当测试不通过时,返回步骤“利用所述训练集和交叉熵损失函数,采用梯度下降法训练异常判别模型”,对所述训练后的异常判别模型进行再次训练;当测试通过时,输出训练后的异常判别模型。
在异常判别模型的训练中,训练集为处理后的边缘应用系统结构化数据,过程具体如下:
步骤一:对数据集进行划分,以4:1的比例划分为训练集和验证集,对这两个集合,前n-1个向量值作为特征值,第n个向量值作为标签值;
步骤二:利用训练集训练异常判别模型,模型的结构如上文所述,在训练过程中,模型中的各参数将会不断的根据特征值和标签值进行拟合。在训练过程中,基于每个训练数据的输入输出,使用随机梯度下降的方法,通过损失最小化来更新模型参数,此处的损失我们选取了交叉熵损失函数来定义,即
Figure 57761DEST_PATH_IMAGE010
,其中n为样本总数,x为样本,y为样本的标签值,a为样本预测正确的概率。
步骤三:最后将这种训练好的模型应用于测试集上进行预测,预测过程是为了验证模型的准确性,对于预测集,已知其实际标签值,将实际标签值与模型预测输出的标签值比较,并多次重复步骤二,不断修改模型参数,直到模型在测试集中取得最好的表现,根据模型在测试集上的表现来选择最佳模型。
步骤四:由于本异常判别模型在训练过程中使用的训练数据量有限,不可能涵盖所有可能的正常执行的边缘系统数据,所以本模型在实际使用中将不断的根据输入的数据进行在线更新,从而合并适应新的日志数据,并得到鲁棒性更高的判别模型。为实现这一目的,本模型提供了一反馈机制,即使用“假异常”的方法来调整模型参数。假设在判别模型正常工作过程中,是通过连续四个窗口预测第五个窗口值,假异常模式则对于连续三个窗口的值和已知的第四个窗口值对模型进行优化,例如,对于连续三个输入窗口的数据
Figure 680503DEST_PATH_IMAGE011
,异常判别模型预测的下一个窗口应出现t1,但实际上下一个窗口的值为t2,此时向模型报告出现了一个假异常,异常判别模型便使用输入-输出对
Figure 546697DEST_PATH_IMAGE012
来更新模型参数,通过在实际使用中输入大量的边缘系统日志数据,不断完善模型,使得模型获得更高的鲁棒性。
本发明的步骤102至步骤104的具体实现方式为:
步骤一:将前期步骤处理后的日志数据,作为整体的输入数据,视为一个session;
步骤二:对于输入的session设置一个大小为n的窗口,在该session上进行滑动,从而session被分为若干个窗口;
步骤三:对于每个窗口,将前n-1个窗口输入异常行为判别模型,异常行为判别模型将输出第n个窗口的预测值集合,即对于一个序列
Figure 836864DEST_PATH_IMAGE013
,输入前n-1个窗口,得到第n个窗口的可能集合
Figure 222757DEST_PATH_IMAGE014
步骤四:若
Figure 395112DEST_PATH_IMAGE015
不在集合
Figure 487833DEST_PATH_IMAGE014
中,则视为流程异常。即
Figure 944091DEST_PATH_IMAGE016
总体而言,对于整个日志序列,视为一个session(进程),设置一个大小为n的窗口,在该session上进行滑动,从而将session分为若干个window(窗口),对于每个window,使用异常行为判别模型基于前n-1个窗口去预测第n个窗口,通过实际窗口的值是否预测集合中,来最终判定应用是否存在异常行为。
实施例2
本发明实施例2提供一种边缘计算环境下程序异常行为检测系统,所述系统包括:
向量化模块,用于对待测日志序列进行向量化及日志模板匹配,获得与所述待测日志序列相匹配的日志模板序列向量,并利用与所述待测日志序列相匹配的日志模板序列向量对向量化得到的待测日志序列向量进行结构化处理,获得待测日志向量。
所述向量化模块,具体包括:
向量化子模块,用于采用如下公式,对待测日志序列及日志模板序列进行向量化,获得待测日志序列L的向量和日志模板序列T
Figure 995223DEST_PATH_IMAGE001
Figure 343290DEST_PATH_IMAGE002
其中,vector(L)表示待测日志序列L的向量,w l 表示待测日志序列L中的第l个数据,n表示待测日志序列L中数据的数量;vector(T)表示日志模板序列T的向量,w t 表示日志模板序列T中的第t个数据,m表示日志模板序列T中数据的数量;f()表示映射函数,pos(w l )表示w l 的位置编码参数,maxMismatch表示待测日志序列L与日志模板序列T中相匹配的不同通配符数量的最大值。
余弦距离计算子模块,用于利用如下公式计算待测日志序列L的向量和日志模板序列T的向量的余弦距离。
Figure 302019DEST_PATH_IMAGE003
其中,distance表示余弦距离。
选择子模块,用于选取与待测日志序列L的向量余弦距离最大的日志模板序列向量,作为与所述待测日志序列相匹配的日志模板序列向量。
滑窗处理模块,用于对所述待测日志向量进行滑窗处理;
预测模块,用于分别将每个窗口内的前N-1个数据输入训练后的异常判别模型,获得每个窗口的模型预测结果;其中,N表示窗口的长度;所述异常判别模型用于利用前N-1个数据预测边缘应用在正常运行的情况下输出的第N个数据;
异常行为判断模块,用于根据每个窗口的模型预设结果与所述窗口的第N个数据的一致性进行异常行为判断。
示例性的,所述系统,还包括:
虚拟环境搭建模块,用于搭建用于边缘应用运行的虚拟环境;
字节码插桩处理模块,用于采用日志增强组件对边缘应用进行字节码插桩处理,获得处理后的边缘应用;
待测日志序列获取子模块,用于将测试任务和测试数据输入所述虚拟环境,并在所述虚拟环境中运行处理后的边缘应用,获得待测日志序列,并销毁所述虚拟环境。
示例性的,所述系统还包括:
数据集构建模块,用于获取边缘应用在正常运行时的日志数据,构建数据集;所述数据集中包含多个长度为N的数据序列,数据序列中的前N-1个数据作为特征值,数据序列中的第N个数据作为标签值;
数据集划分模块,用于将所述数据集划分为训练集和测试集;
异常判别模型训练模块,用于利用所述训练集和交叉熵损失函数,采用梯度下降法训练异常判别模型;
异常判别模型测试模块,用于利用测试集对训练后的异常判别模型进行测试;
返回模块,用于当测试不通过时,返回步骤“利用所述训练集和交叉熵损失函数,采用梯度下降法训练异常判别模型”,对所述训练后的异常判别模型进行再次训练;
输出模块,用于当测试通过时,输出训练后的异常判别模型。
示例性的,所述系统,还包括:
再次训练模块,用于当判断结果为假异常的判断结果时,利用假异常的判断结果对应的窗口的数据对训练后的异常判断模型进行再次训练;所述假异常的判断结果为判断结果显示异常,但是经实际确认并不存在异常行为的判断结果。
基于上述实施例,本发明的优点如下:
1.针对边缘应用的异常行为,本发明设计了一种细粒度的边缘应用行为收集模块,该设计模块利用边缘应用是java应用的本质,根据边缘应用类型,进行动态字节码注入,从而解决传统日志系统无法完整收集边缘应用日志信息的问题,能够在应用本身无感知的情况下,收集到边缘应用的关键资源使用数据。
2.针对传统方法无法解析边缘应用日志信息,本发明设计了一种基于树结构启发式的日志抽取算法,结合日志本身特点,根据词性初步提取token,然后在日志模版匹配过程中,采取树结构进行搜索,加快日志模版的匹配速度,对每个新来的日志进行匹配的过程中,不断扩充匹配树的规模,直到所有数据被分入对应的模板。在完成所有日志数据处理之后,通过解析树最底层的链表可以快速将所有日志模板导出,生成向量形式的结构化数据。
3.针对异常边缘应用样本稀少,且没有通用的模型对其异常行为进行判定等传统方案的不足,本发明设计了基于序列预测的异常判别模型,该模型利用了边缘应用的本质是具体数据类型高度绑定的代码段,运行流程有着很大的顺序性的特点,规避了负样本缺失的缺陷。序列预测模型学习的是序列特征,训练数据为正常应用的运行时序数据即可。最后将基于该模型的输出结果做异常判定,若实际值不在预测集合之中,则视为应用存在着异常。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术行人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种边缘计算环境下程序异常行为检测方法,其特征在于,所述方法包括如下步骤:
对待测日志序列进行向量化及日志模板匹配,获得与所述待测日志序列相匹配的日志模板序列向量,并利用与所述待测日志序列相匹配的日志模板序列向量对向量化得到的待测日志序列向量进行结构化处理,获得待测日志向量;
对所述待测日志向量进行滑窗处理;
分别将每个窗口内的前N-1个数据输入训练后的异常判别模型,获得每个窗口的模型预测结果;其中,N表示窗口的长度;所述异常判别模型用于利用前N-1个数据预测边缘应用在正常运行的情况下输出的第N个数据;
根据每个窗口的模型预设结果与所述窗口的第N个数据的一致性进行异常行为判断;
所述对待测日志序列进行向量化及日志模板匹配,获得与所述待测日志序列相匹配的日志模板序列向量,具体包括:
采用如下公式,对待测日志序列及日志模板序列进行向量化;
Figure 377016DEST_PATH_IMAGE001
Figure 553306DEST_PATH_IMAGE002
其中,vector(L)表示待测日志序列L的向量,w l 表示待测日志序列L中的第l个数据,n表示待测日志序列L中数据的数量;vector(T)表示日志模板序列T的向量,w t 表示日志模板序列T中的第t个数据,m表示日志模板序列T中数据的数量;f()表示映射函数,pos(w l )表示w l 的位置编码参数,maxMismatch表示待测日志序列L与日志模板序列T中相匹配的不同通配符数量的最大值;
利用如下公式计算待测日志序列L的向量和日志模板序列T的向量的余弦距离;
Figure 46605DEST_PATH_IMAGE003
其中,distance表示余弦距离;
选取与待测日志序列L的向量余弦距离最大的日志模板序列向量,作为与所述待测日志序列相匹配的日志模板序列向量。
2.根据权利要求1所述的边缘计算环境下程序异常行为检测方法,其特征在于,所述对待测日志序列进行向量化及日志模板匹配,获得与所述待测日志序列相匹配的日志模板序列向量,并利用与所述待测日志序列相匹配的日志模板序列向量对向量化得到的待测日志序列向量进行结构化处理,获得待测日志向量,之前还包括:
搭建用于边缘应用运行的虚拟环境;
采用日志增强组件对边缘应用进行字节码插桩处理,获得处理后的边缘应用;
将测试任务和测试数据输入所述虚拟环境,并在所述虚拟环境中运行处理后的边缘应用,获得待测日志序列,并销毁所述虚拟环境。
3.根据权利要求1所述的边缘计算环境下程序异常行为检测方法,其特征在于,所述分别将每个窗口内的前N-1个数据输入训练后的异常判别模型,获得每个窗口的模型预测结果,之前还包括:
获取边缘应用在正常运行时的日志数据,构建数据集;所述数据集中包含多个长度为N的数据序列,数据序列中的前N-1个数据作为特征值,数据序列中的第N个数据作为标签值;
将所述数据集划分为训练集和测试集;
利用所述训练集和交叉熵损失函数,采用梯度下降法训练异常判别模型;
利用测试集对训练后的异常判别模型进行测试;
当测试不通过时,返回步骤“利用所述训练集和交叉熵损失函数,采用梯度下降法训练异常判别模型”,对所述训练后的异常判别模型进行再次训练;
当测试通过时,输出训练后的异常判别模型。
4.根据权利要求1所述的边缘计算环境下程序异常行为检测方法,其特征在于,根据每个窗口的模型预设结果与所述窗口的第N个数据的一致性进行异常行为判断,之后还包括:
当判断结果为假异常的判断结果时,利用假异常的判断结果对应的窗口的数据对训练后的异常判断模型进行再次训练;所述假异常的判断结果为判断结果显示异常,但是经实际确认并不存在异常行为的判断结果。
5.一种边缘计算环境下程序异常行为检测系统,其特征在于,所述系统包括:
向量化模块,用于对待测日志序列进行向量化及日志模板匹配,获得与所述待测日志序列相匹配的日志模板序列向量,并利用与所述待测日志序列相匹配的日志模板序列向量对向量化得到的待测日志序列向量进行结构化处理,获得待测日志向量;
滑窗处理模块,用于对所述待测日志向量进行滑窗处理;
预测模块,用于分别将每个窗口内的前N-1个数据输入训练后的异常判别模型,获得每个窗口的模型预测结果;其中,N表示窗口的长度;所述异常判别模型用于利用前N-1个数据预测边缘应用在正常运行的情况下输出的第N个数据;
异常行为判断模块,用于根据每个窗口的模型预设结果与所述窗口的第N个数据的一致性进行异常行为判断;
所述向量化模块,具体包括:
向量化子模块,用于采用如下公式,对待测日志序列及日志模板序列进行向量化,获得待测日志序列L的向量和日志模板序列T
Figure 284819DEST_PATH_IMAGE001
Figure 304597DEST_PATH_IMAGE002
其中,vector(L)表示待测日志序列L的向量,w l 表示待测日志序列L中的第l个数据,n表示待测日志序列L中数据的数量;vector(T)表示日志模板序列T的向量,w t 表示日志模板序列T中的第t个数据,m表示日志模板序列T中数据的数量;f()表示映射函数,pos(w l )表示w l 的位置编码参数,maxMismatch表示待测日志序列L与日志模板序列T中相匹配的不同通配符数量的最大值;
余弦距离计算子模块,用于利用如下公式计算待测日志序列L的向量和日志模板序列T的向量的余弦距离;
Figure 258646DEST_PATH_IMAGE003
其中,distance表示余弦距离;
选择子模块,用于选取与待测日志序列L的向量余弦距离最大的日志模板序列向量,作为与所述待测日志序列相匹配的日志模板序列向量。
6.根据权利要求5所述的边缘计算环境下程序异常行为检测系统,其特征在于,所述系统,还包括:
虚拟环境搭建模块,用于搭建用于边缘应用运行的虚拟环境;
字节码插桩处理模块,用于采用日志增强组件对边缘应用进行字节码插桩处理,获得处理后的边缘应用;
待测日志序列获取子模块,用于将测试任务和测试数据输入所述虚拟环境,并在所述虚拟环境中运行处理后的边缘应用,获得待测日志序列,并销毁所述虚拟环境。
7.根据权利要求5所述的边缘计算环境下程序异常行为检测系统,其特征在于,所述系统还包括:
数据集构建模块,用于获取边缘应用在正常运行时的日志数据,构建数据集;所述数据集中包含多个长度为N的数据序列,数据序列中的前N-1个数据作为特征值,数据序列中的第N个数据作为标签值;
数据集划分模块,用于将所述数据集划分为训练集和测试集;
异常判别模型训练模块,用于利用所述训练集和交叉熵损失函数,采用梯度下降法训练异常判别模型;
异常判别模型测试模块,用于利用测试集对训练后的异常判别模型进行测试;
返回模块,用于当测试不通过时,返回步骤“利用所述训练集和交叉熵损失函数,采用梯度下降法训练异常判别模型”,对所述训练后的异常判别模型进行再次训练;
输出模块,用于当测试通过时,输出训练后的异常判别模型。
8.根据权利要求5所述的边缘计算环境下程序异常行为检测系统,其特征在于,所述系统,还包括:
再次训练模块,用于当判断结果为假异常的判断结果时,利用假异常的判断结果对应的窗口的数据对训练后的异常判断模型进行再次训练;所述假异常的判断结果为判断结果显示异常,但是经实际确认并不存在异常行为的判断结果。
CN202210929602.XA 2022-08-04 2022-08-04 一种边缘计算环境下程序异常行为检测方法及系统 Active CN115017015B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210929602.XA CN115017015B (zh) 2022-08-04 2022-08-04 一种边缘计算环境下程序异常行为检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210929602.XA CN115017015B (zh) 2022-08-04 2022-08-04 一种边缘计算环境下程序异常行为检测方法及系统

Publications (2)

Publication Number Publication Date
CN115017015A CN115017015A (zh) 2022-09-06
CN115017015B true CN115017015B (zh) 2023-01-03

Family

ID=83065735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210929602.XA Active CN115017015B (zh) 2022-08-04 2022-08-04 一种边缘计算环境下程序异常行为检测方法及系统

Country Status (1)

Country Link
CN (1) CN115017015B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117148775B (zh) * 2023-10-31 2024-01-23 中国电建集团山东电力管道工程有限公司 管道生产过程远程监控方法、系统、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053906A (zh) * 2009-10-30 2011-05-11 国际商业机器公司 用于收集程序运行时信息的系统和方法
CN111209168A (zh) * 2020-01-14 2020-05-29 中国人民解放军陆军炮兵防空兵学院郑州校区 一种基于nLSTM-self attention的日志序列异常检测框架
CN111949480A (zh) * 2020-08-10 2020-11-17 重庆大学 一种基于组件感知的日志异常检测方法
CN113434357A (zh) * 2021-05-17 2021-09-24 中国科学院信息工程研究所 基于序列预测的日志异常检测方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10679135B2 (en) * 2015-11-09 2020-06-09 Nec Corporation Periodicity analysis on heterogeneous logs
US11307953B2 (en) * 2019-10-03 2022-04-19 Oracle International Corporation Block-based anomaly detection in computing environments
US11379220B2 (en) * 2019-11-25 2022-07-05 International Business Machines Corporation Vector embedding of relational code sets
WO2022047658A1 (zh) * 2020-09-02 2022-03-10 大连大学 日志异常检测系统
CN114553482B (zh) * 2022-01-18 2023-06-27 南京邮电大学 基于异构日志的异常检测网络生成方法及异常检测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053906A (zh) * 2009-10-30 2011-05-11 国际商业机器公司 用于收集程序运行时信息的系统和方法
CN111209168A (zh) * 2020-01-14 2020-05-29 中国人民解放军陆军炮兵防空兵学院郑州校区 一种基于nLSTM-self attention的日志序列异常检测框架
CN111949480A (zh) * 2020-08-10 2020-11-17 重庆大学 一种基于组件感知的日志异常检测方法
CN113434357A (zh) * 2021-05-17 2021-09-24 中国科学院信息工程研究所 基于序列预测的日志异常检测方法及装置

Also Published As

Publication number Publication date
CN115017015A (zh) 2022-09-06

Similar Documents

Publication Publication Date Title
CN109408389B (zh) 一种基于深度学习的代码缺陷检测方法及装置
CN110765265B (zh) 信息分类抽取方法、装置、计算机设备和存储介质
CN108334781B (zh) 病毒检测方法、装置、计算机可读存储介质和计算机设备
CN113434357B (zh) 基于序列预测的日志异常检测方法及装置
CN111914873A (zh) 一种两阶段云服务器无监督异常预测方法
CN113312447B (zh) 基于概率标签估计的半监督日志异常检测方法
CN112215013B (zh) 一种基于深度学习的克隆代码语义检测方法
CN112202726B (zh) 一种基于上下文感知的系统异常检测方法
CN111949535A (zh) 基于开源社区知识的软件缺陷预测装置及方法
CN115017015B (zh) 一种边缘计算环境下程序异常行为检测方法及系统
CN113742733A (zh) 阅读理解漏洞事件触发词抽取和漏洞类型识别方法及装置
CN113672931A (zh) 一种基于预训练的软件漏洞自动检测方法及装置
CN112035345A (zh) 一种基于代码片段分析的混合深度缺陷预测方法
CN110162972B (zh) 一种基于语句联合编码深度神经网络的uaf漏洞检测方法
CN116432184A (zh) 基于语义分析和双向编码表征的恶意软件检测方法
CN116150757A (zh) 一种基于cnn-lstm多分类模型的智能合约未知漏洞检测方法
CN110020190B (zh) 一种基于多示例学习的可疑威胁指标验证方法及系统
CN116702160B (zh) 一种基于数据依赖增强程序切片的源代码漏洞检测方法
CN115221045A (zh) 一种基于多任务多视角学习的多目标软件缺陷预测方法
CN115328753A (zh) 一种故障预测方法及装置、电子设备、存储介质
Mahyari A Hierarchical Deep Neural Network for Detecting Lines of Codes with Vulnerabilities
CN111562943B (zh) 一种基于事件嵌入树及gat网络的代码克隆检测方法和装置
CN112560252A (zh) 一种航空发动机剩余寿命预测方法
CN114139165B (zh) 基于机器学习中的多目标识别的智能合约漏洞检测方法
CN114356743B (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