一种日志数据的解析方法与流程

文档序号:23897720发布日期:2021-02-09 12:44阅读:61来源:国知局
一种日志数据的解析方法与流程

[0001]
本发明属于网络安全技术领域,尤其涉及一种采集以及解析处理设备日志数据的方法。


背景技术:

[0002]
网络安全日志,包括操作系统产生的系统日志和网络安全设备产生的报警日志等,主要记录了系统和网络环境中发生的各种安全事件,为网络异常诊断和网络攻击威胁的发现提供重要的线索。在网络安全日志的分析中,日志解析是一个至关重要的步骤。
[0003]
现如今,每个用户网络包含大量的信息资产,包括各种网络设备、安全设备、主机、应用及数据库等,每种设备类型的日志格式都不相同,即使是记录同一事件,也都有各自的日志规格。例如同样的登录失败信息,防火墙中的描述和主机操作系统中的描述格式就可能根本不相同,这样会迫使审计人员去了解每种设备类型的格式。同时,每个产品的日志量又是巨大的,例如一个标准的入侵检测系统每天可能产生超过千万数量的事件日志,海量日志数据的采集、解析、存储等处理过程,常常让运维审计工作变得毫无头绪,因此如何高效的采集解析和处理日志数据,成为许多设备和业务稳定运行的关键所在。


技术实现要素:

[0004]
有鉴于此,本发明旨在提供一种日志数据的解析方法,支持多设备的多种采集方式,提高日志处理效率,具体的技术方案如下所述。
[0005]
日志数据的解析方法,包括:根据当前日志源ip确定日志源类型与对应的解析规则,从正则库编译解析规则规定的正则表达式,生成正则集加入日志源信息;将采集方式、日志源ip、日志字符串、日志源信息封装为解析对象加入待解析队列;依次读取解析对象,对其中的日志字符串进行正则匹配,生成事件对象加入待入库队列,批量定时存入事件数据库。
[0006]
所述采集方式包括数据包接收与文件读取;所述数据包接收,包括采用udp收包方式接收日志源发送的日志数据包;所述文件读取,包括odbc采集、文件定时采集与文件导入采集;以及,同一种采集方式中的日志源ip不能重复。
[0007]
较佳的,确定日志源信息的过程,具体包括:维护:包括日志源id、ip、类型与解析规则对应关系的资产表,包括解析规则与正则集对应关系的规则表,包括事件类型、正则表达式、正则表达式对应字段的正则表;根据日志源ip查询资产表确定日志源类型与解析规则,根据解析规则查询规则表确定正则集;取出日志源id、日志源类型、正则集组成日志源信息。
[0008]
作为优选的,若为数据包接收的日志采集方式:接收日志数据包,调用资产表校验
当前日志源ip,若ip正确则取出数据包的原始日志字符串,与采集方式、日志源ip、根据日志源ip获取的日志源信息封装为解析对象,加入解析队列。
[0009]
若为文件读取的日志采集方式:判断日志数据文件是否为压缩文件,若为压缩文件则解压并按行读取每一个文件的日志内容,若非压缩文件则直接按行读取文件的日志内容;将日志内容生成命名为“采集方式_日志源类型_日志源ip_文件保存时间”的临时文件存入规定路径,其中采集方式与日志源类型使用预设的数字编号表示,文件保存时间使用时间戳表示;将:从临时文件读取的日志原始字符串,从文件名获取的采集方式与日志源ip,根据日志源ip获取的日志源信息封装为解析对象,加入解析队列。
[0010]
作为优选的,若为数据包接收的日志采集方式,每一个日志数据文件读取完成后,若判断不存在下一个文件,则删除所有已读取完成的日志数据文件;以及,若为文件导入采集,则在文件导入后,根据导入时间与日志源ip更新该文件的执行状态与执行结果。
[0011]
作为优选的,对解析对象的解析过程,包括:取出解析对象中的原始日志字符串与正则集,将日志字符串与每一个正则表达式进行匹配,若匹配成功则表示命中正则表达式对应的事件类型,将日志源ip、日志源类型、事件类型、发生时间、匹配成功的日志字符串与设备当前运行信息生成一个事件对象;以及,若匹配成功的日志字符串中具有表示事件等级的字段,将事件等级加入到事件对象。
[0012]
采用上述技术方案后,本发明的日志数据解析方法,至少具有以下有益效果:采用收包方式接收日志源发送的日志数据包,或者通过读取日志文件的方式获取日志数据,根据日志源类型确定解析规则以及正则集,通过正则表达式与日志中的原始字符串进行匹配,从而确定日志是否具有安全事件以及安全事件的类型,并将相应的事件数据进行存储。实现对不同类型的日志数据的解析处理,特别是对于文件读取方式的日志解析,提高了处理效率,对于及时发现安全事件具有积极意义。
附图说明
[0013]
图1为本发明的日志数据解析方法实施例,工作流程示意图;图2为图1中日志数据的采集流程示意图;图3为图1中日志数据的解析流程示意图。
具体实施方式
[0014]
下面结合附图与实施例对本发明的技术方案进行详细说明。
[0015]
日志数据的解析方法,根据当前日志源ip确定日志源类型与对应的解析规则,从正则库编译解析规则规定的正则表达式,生成正则集加入日志源信息;将采集方式、日志源ip、日志字符串、日志源信息封装为解析对象加入待解析队列;依次读取解析对象,对其中的日志字符串进行正则匹配,生成事件对象加入待入库队列,批量定时存入事件数据库。
[0016]
如图1所示,上述的日志数据解析方法,具体包括以下步骤:
s100,通过不同方式采集各设备的日志数据。
[0017]
网络设备、安全设备、主机、应用及数据库等产生的日志格式各异,有的日志以数据包形式可以直接读取,有的是生成特定的文件,有的遵循特定的协议。因此针对不同日志源类型需要使用不同的日志采集方式。
[0018]
具体到本发明中,采集方式可以包括数据包接收与文件读取;所述数据包接收,包括采用udp收包方式接收日志源发送的日志数据包;而所述文件读取,包括odbc方式采集、agent代理方式采集、文件定时采集(包括ftp采集)与文件导入方式采集等。
[0019]
s200,维护包括日志源id、ip、类型与解析规则对应关系的资产表,根据日志源ip,确定日志源类型与日志解析规则。
[0020]
作为较佳的实施方式,同一种采集方式中的日志源ip不能重复,即如果一个日志源支持至少两种采集方式,则在一次解析过程中,日志的采集方式应当保持一致。
[0021]
s300,根据日志解析规则,确定日志源信息,具体包括:还维护有包括解析规则与正则集对应关系的规则表,包括事件类型、正则表达式、正则表达式对应字段的正则表;根据日志源ip查询资产表确定日志源类型与解析规则,根据解析规则查询规则表确定正则集;取出日志源id、日志源类型、正则集组成日志源信息。
[0022]
s400,将前述步骤确定的采集方式、日志源ip、日志原始字符串与日志源信息封装为解析对象。
[0023]
若为数据包接收的日志采集方式:接收日志数据包,调用资产表校验当前日志源ip,若ip正确则取出数据包的原始日志字符串,与采集方式、日志源ip、根据日志源ip获取的日志源信息封装为解析对象。
[0024]
若为文件读取的日志采集方式:读取文件的日志内容;将日志内容生成命名为“采集方式_日志源类型_日志源ip_文件保存时间”的临时文件存入规定路径;将日志原始字符串,采集方式,日志源ip,日志源信息封装为解析对象。
[0025]
s500,读取解析对象,对原始字符串进行正则解析,生成事件对象并批量存入事件数据库。
[0026]
将日志字符串与正则集的正则表达式进行匹配,若匹配成功则表示命中正则表达式对应的事件类型,将日志源ip、日志源类型、事件类型、发生时间、匹配成功的日志字符串与设备当前运行信息生成一个事件对象;如图2所示,日志数据的采集过程。
[0027]
如前所述,进行日志数据采集前,预先维护有以下数据表:采集方式表:采集方式id、采集方式名称、采集方式描述;资产表:日志源ip、日志源id、日志源类型、日志源解析规则(规则id集),日志源类型如防火墙、交换机等设备类型;规则表:解析规则id、正则集(正则表达式id集合);正则表:正则表达式id、正则表达式、正则表达式对应字段、事件类型(包括大类与小类),其中大类如防火墙、交换机等设备类别,小类如dns异常、非法外连等安全事件类别;以及:
日志源信息表:日志源id、日志源类型、正则集(正则表达式id集合);解析对象表:采集方式、日志源ip、原始日志字符串、日志源信息。
[0028]
获取到日志数据后,通过日志源ip可以查询资产表获取日志源id、日志源类型与解析规则id,进而查询规则表得到正则集;取出日志源id、日志源类型与正则集组成日志源信息存入日志源信息表。
[0029]
若日志采集为数据包接收方式:开始接收日志数据包,调用资产表校验当前数据包的ip是否存在,若ip存在则取出数据包中的原始日志字符串,并且取出已经获取的采集方式、日志源ip、以及根据日志源ip获取的日志源信息封装为解析对象,加入解析队列。
[0030]
若日志采集为文件读取方式:首先判断日志数据文件格式是否为压缩文件,若为压缩文件则解压并按行读取每一个文件的日志内容,若非压缩文件则直接按行读取文件的日志内容;将日志内容生成命名为“采集方式_日志源类型_日志源ip_文件保存时间”的临时文件存入规定路径,其中采集方式与日志源类型使用预设的数字编号表示,文件保存时间使用时间戳表示;将:从临时文件读取的日志原始字符串,从文件名获取的采集方式与日志源ip,根据日志源ip获取的日志源信息封装为解析对象。
[0031]
作为优选的实施方式,每一个日志数据文件读取完成后,若判断不存在下一个文件,则删除所有已读取完成的日志数据文件;以及,若为文件导入采集,则在文件导入后,根据导入时间与日志源ip更新该文件的执行状态与执行结果。
[0032]
如图3所示,日志数据的解析过程:在采集流程得到存储解析对象的解析队列后,按照一定的顺序,如按加入队列的时间先后取出解析对象中的原始日志字符串与正则集的每一个正则表达式进行匹配,若匹配成功则表示命中正则表达式对应的事件类型,将日志源ip、日志源类型、事件类型、发生时间、匹配成功的日志字符串与设备当前运行信息生成一个事件对象;所述的设备当前运行信息包括当前设备的mac与端口,cpu使用率,内存占用率,当前连接数,发送与接收流量,网口信息,进程信息以及设备当前的管理员或用户等。
[0033]
以及,若匹配成功的日志字符串中具有表示事件等级的字段,将事件等级加入到事件对象。
[0034]
作为一种优选的实施方式,对于所有的事件对象,可以根据事件类型(包括大类与小类)进行归并,进而对同类型的事件进行关联分析以得到安全事件并且根据其级别做出相应的处置措施。
[0035]
如上所述的技术方案,实现对不同类型的日志数据的采集与解析处理,提高了处理效率,对于及时发现安全事件具有积极意义。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1