[发明专利]基于日志的复杂软件系统异常行为检测方法有效
申请号: | 201710553032.8 | 申请日: | 2017-07-07 |
公开(公告)号: | CN107391353B | 公开(公告)日: | 2020-07-28 |
发明(设计)人: | 鲍亮;鲁沛瑶;栗殷;路杰;陈平 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F11/34 | 分类号: | G06F11/34;G06F11/30;G06F11/36 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 程晓霞;王品华 |
地址: | 710071 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 日志 复杂 软件 系统 异常 行为 检测 方法 | ||
1.一种基于日志的复杂软件系统异常行为检测方法,其特征在于,包含有如下步骤:
步骤1:分析系统源码:将被检测的复杂软件系统的源码作为输入,使用抽象语法树提取源码中可用信息,获得源码的控制流图和日志模板集,其中日志模板为日志打印语句的结构化定义;根据源码的控制流图,可得日志模板间的可达关系;
步骤2:解析日志语句:对标准化的日志消息进行建模,其信息包括日志行号、级别、时间戳和日志模板信息等;采集被检测的复杂软件系统产生的日志语句,进行有效信息提取,并匹配相应的日志模板,得到完整的日志消息;
步骤3:抽取执行轨迹:结合解析得到的日志消息集合,基于日志模板间的可达关系进行日志执行轨迹提取,并做相应的处理,得到执行轨迹集合;
步骤4:异常检测:采用异常概率树的方法分析执行轨迹集合,将执行轨迹当作数据序列,根据序列与整个网络之间的相似度来判断序列数据中是否存在异常,结合日志执行轨迹的拓扑结构和出现的次数进行异常指数的计算。
2.根据权利要求1所述的一种基于日志的复杂软件系统异常行为检测方法,其特征在于,步骤1所述分析系统源码,获取日志打印语句间的可达关系,具体包括有如下步骤:
1.1定义控制流图、可达关系图和日志模板的表示形式
带有函数调用信息的控制流图,定义为GF=(VF,EF)表示;
日志模板可达关系图,定义为GL=(VL,EL)表示;
日志模板:日志模板为系统源代码中日志输出语句通用的抽象结构,定义为四元组ls=(id,loc,cons,vars)表示;
1.2使用控制流分析实现源码S向GL的转换具体包括有如下步骤:
1.2.1以文件为单位,使用抽象语法树将系统源码转换为AST节点;
1.2.2以函数入口为起点,递归遍历源码S中的所有函数,获得以函数为单位的控制流图Gc=(Vc,Ec),重复执行该步骤获得源码S的控制流图集合CFGs{G1,G2,...,Gn};
1.2.3创建包含函数调用的控制流图GF=(VF,EF),其中VF={G1.VC∪G2.VC∪…∪Gn.VC},EF={G1.EC∪G2.EC∪…∪Gn.EC};
1.2.4给定任意两个和如果存在从节点到另一节点的函数调用,为GF.EF添加边重复该步骤至所有函数被处理完;
1.2.5为日志模板创建可达关系图GL=(VL,EL),其中GL.VL=LS,LS={ls1,ls2,…,lsm}是日志模板集合;
1.2.6为任意两个节点在图GF上使用Floyd-Warshall算法检测节点和节点是否可达;如果可达,为GL.EL添加边重复该步骤至图GL上的所有节点被处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710553032.8/1.html,转载请声明来源钻瓜专利网。