|
2.4 自定义解析的效率
日志解析使用不同的技术对效率的影响是不一样的,目前主流的几种方式主要有模板方式、正则表达式方式等。这几种方式的效率有比较大的区别,模板方式的灵活性比正则表达式方式稍微低一些,但从效率上来看,模板方式比正则表达方式高很多。比较理想的方式是大部分解析用模板的方式去实现,少量复杂的解析用正则表达式的方式去实现。这样就达到了灵活性和效率之间的平衡。
上面列出了日志解析的常用关键内容,这些内容支持的灵活性越高越好。在实施SOC、态势感知等产品的时候,经常会花费大量的时间在解析上面,如果能灵活支持,可以大幅度提高效率和效果。
三、小结
前面介绍的是目前日志标准化解析的一些关键内容,可以作为安全分析产品中日志解析灵活性评判的一个参考。提高日志解析的准确性、灵活性也是一个非常复杂的过程,这部分的处理对后续的关联分析等起到非常重要的作用。日志解析存储后,如何在海量数据中进行搜索,也是个非常重要的问题。
存储只是解决了“有”的问题,但如何更高效便捷地从中找到想要的数据,支持什么样的接口可以让客户快速准确地找到想要的内容也是非常重要的,后面有时间再详细介绍这方面的内容。日志解析本身是一个比较复杂的话题,我尽量保证内容观点正确,但本人才学疏浅,文中若有不足之处欢迎大家批评指正。
常用的解析语法主要包括XML、配置文件、数据库存储,这几种存储结构可以满足大多数的场景需求,提供XML的存储结构的大多是通过工具进行生成。
目前解析语法大多用的是grok或者类似grok语法的结构,大多都支持正则表达式、函数等方式,从大的方面都支持,要对比解析的优劣主要依靠细节。
字符串:
字符串提取,比如想在字符串123-445-789-012中提取445-789是否方便;
字符串拼接,比如两个字段拼接成一个字段,add(sourceIp,eventId);
字符串替换,比如把字符串中的-替换成空格,replaceAll (“-”,””);
IF函数:
比如很多日志中可能是0表示成功,if(“0”,”success”,”fail”);
比如日志源IP信息,在解析的时候需要添加到目标IP和日志源IP中;
比如http请求中的useragent,这里面含有大量的信息,是否能把里面的浏览器、操作系统、版本等分析出来;
在日志中有很多数据是有含义的,尤其是业务日志,但在日志保存的时候很多日志存储的是编码,这个时候需要通过字典把编码对应的名称添加进来;
在日志中有直接含义也有间接含义的数据,比如日志源IP,需要知道这个IP是哪个人在用,属于哪个部门的;比如日志中有账号信息,需要了解这个账号的部门,姓名等信息;
有很多日志会存在不一致的地方,比如sftp登录日志中有账号信息,但操作日志中没有账号信息,这个时候需要在操作日志中把登录的账号补全进来,这样才有利于进一步的分析;
很多公网IP通过IP知识库是可以知道国家、省、市、地理信息的,这个在做分析的时候比较有用;如果是内网,可以通过配置国家、省、市、地理信息达到同样的效果;
比如非上班时间处理的支持:国内有法定假,法定假可能存在调休等,而且每年的法定假都不一样,所以还要等到年底国家才能颁布下一年的法定休假的方案;很多客户也有会调班的情况,这种情况的工作日和非工作日就比较特殊。在很多告警规则中都有非上班时间的诉求,比如非上班时间登录服务器,非上班时间进行了敏感文件操作等,这个时候对非上班能力的支持就很重要。

(编辑:南通站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|