《日志管理与分析权威指南》一2.2.2 日志语法

2.2.2 日志语法

任何格式的日志文件都具有语法,日志语法在概念上与语言(如英语)语法相似。人类语言语法中的句子通常包含一个主语、一个谓语、有时还包含一个表语,当然还有补语和定语。句子的语法涵盖句子成员之间的关系和他们的含义。需要注意的是,语法并不涉及消息的内容。换句话说,语法处理的是如何构造我们所要表述的内容,而不是我们使用的具体词语。
那么,在日志消息的环境下语法又有什么意义呢?当然,每条日志消息都有表征它的结构。一些类型的日志消息自身具有人类语言的部分语法,日志消息每部分由各种类型的信息模式组成。基于规则,可以定义一组通用的日志字段。而正是由于其必要性,故应存在于每条日志条目中。例如,常见的一组字段如下:
1)日期/时间(理想的情况下应包含时区)
2)日志条目的类型
3)产生该条目的系统
4)产生该条目的应用程序或组件
5)成功与失败的指示
6)日志消息的严重性、优先级或重要性(通常存在于所有syslog消息)
7)和该日志相关的任何用户活动,也可记录用户名
网络设备制造商通常在其日志中遵循上述结构,但是,缺乏某些细节的例外情况也很多。
日志的句子中有哪些内容?让我们试着对syslog的单行记录做次“语法分析”。作为最灵活(也最混乱)的日志格式的例子,我们将使用syslog的一条日志消息。

它看上去是否很晦涩?我们故意选择了相当长且深奥的一行日志。我们可以知道“主语”(表明了“什么”)是一个命名进程,指出用户应该“check_hints”(“谓语”)指定DNS服务器,这个事件发生在11月16日00:26(令人吃惊的是,syslog在其日志时间戳中并不记载年份,这会在本章后面更详细地解释)。满足一下大家的好奇心,这里发生的事件其实就是根DNS服务器中的一个IP地址改变了,但这个DNS服务器(产生上面这条日志的服务器)依旧使用其配置文件中的旧信息发起查询(例如,可以参见论文《Some error message and problems with DNS》:http://www.reedmedia.net/misc/dns/errors.html)。
日志消息的语法有什么意义?日志语法对于任何一种日志数据的自动分析(本书讨论的主题)都非常重要。我们需要按照语法将日志分解成各个组成部分,才能从日志数据中得出明智的结论。
一些日志分析相关的软件产品(商用和开源)已经开发了“消息模式”(message schema)来确定各种日志类型的语法。这种模式被设计成可以满足从各种设备、系统、应用程序和其他来源日志文件产生的任何消息。
对读者来说,大部分上面的日志消息例子显然都适合于这种模式。例如如下的Dragon NIDS消息:

上例很容易融入表2.1所示的通用模式。这条消息表明,服务器10.1.1.3遭到从10.208.231.102发起的IIS Web服务器攻击(可能是由黑客或蠕虫病毒等恶意软件发起的)。此攻击与Internet Information Services(IIS,一个标准的Windows Web服务)的Unicolde解码漏洞相关。

注意,在收集这些消息时还添加了一些数据(由日志分析解决方案提供)。
注意,日志分析系统添加了EVENT和EVENT_TYPE以及变量名称(NDNS,NetBIOS,以及其他),以完成Dragon入侵检测系统所描绘的情景。
来自“不寻常应用程序”(尽管我们不确定是否曾经见过任何“正常”的应用程序日志)等特殊日志来源的数据如何处理呢?这种情况下,人们可能会使用通用的“自定义”字段存储这类数据。虽然这样会使日志结构看上去很混乱,但是很遗憾,当前日志分析的特性就是如此。
总的来说,在做任何一种日志分析之前,对日志文件语法有一定了解都是至关重要的。有些人可以在自己头脑中执行这样的分析,但这并不影响此方法的价值,只是说明这样的分析可能很简单(也凸显了人类对机器有一定的优势)。大多数情况下,自动化日志分析系统需要理解日志语法,这种理解通常被编码成某种模板。
总体上,各种各样的系统和设备供应商会采用少数特定日志记录类型,并结合几种常见语法(在前一小节中定义)。例如,一些安全日志被记录为XML格式,以便进行更简单、信息更丰富的集成。很多运营日志通过syslog记录,采用非结构化文本或半结构化消息。与此相似,许多调试日志采用syslog甚至临时文本文件。而高性能日志记录常常采用二进制和专有格式。
常用设备日志记录选项在表2.2进行了总结。

除了这些知名的日志记录方法之外,少数网络设备还会将日志记录为逗号分隔(CSV)或ELF格式(前文已经提到)。当然这些情况相对较少出现。

时间: 2024-10-23 00:45:12

《日志管理与分析权威指南》一2.2.2 日志语法的相关文章

《日志管理与分析权威指南》一3.2.2 SNMP

3.2.2 SNMP SNMP设计用于满足网络管理员不断增长的需求.从20世纪90年代初起,SNMP已经集成到几乎所有你能想到的网络系统中,包括许多网络安全系统.SNMP是查询和配置设备的一种协议.SNMP陷阱和通知是设备在特定事件发生时生成的特殊SNMP消息.虽然SNMP协议整体来说不是一个日志记录系统,但是SNMP陷阱和通知可以看作日志消息的类型.虽然许多网络设备能够通过syslog发送事件信息,但是有些设备不能,特别是旧设备,因此SNMP陷阱和通知是从设备获得其他途径不能收集的事件信息的一

《日志管理与分析权威指南》一导读

前 言 欢迎阅读本书.本书的目标是向信息技术(IT)专业人士提供理解和处理日志数据的入门知识.各种形式的日志数据是由许多类型的系统生成的.如何处理和分析日志数据是长期存在的一个问题.本书介绍能够帮助你分析日志数据和寻找恶意活动的技术和工具. 过去,系统管理员审阅日志文件,寻找磁盘错误或者内核问题.现在的系统管理员往往还要兼任安全管理员.更好地理解如何处理安全日志数据的需求从未像今天那么重要.安全性分析人员是IT专家组中负责跟踪日志分析技术的人.许多经验丰富的人曾经在"压力测试"的模式下

《日志管理与分析权威指南》一2.1 概述

2.1 概述 在第1章我们已经讨论了日志,但是,我们真正讨论的东西是什么?我们正在讨论的并不是树木.数学,或航海日志等等--让我们从定义开始,该领域中的许多讨论是粗略和模糊的,对安全分析人员或网络工程师没有什么用处,因此探寻一个围绕日志记录数据的清晰定义就变得意义非凡了.定义 在日志记录.日志分析以及日志管理中使用的许多术语(包括我们刚刚使用过的)含义模糊,充满误导或者有多重意义.在某些情况下,术语是从其他学科中"借用"的(我们偶尔会用到这些词),有时,不同的人使用不同的术语.而在另一

《日志管理与分析权威指南》一1.6 人、过程和技术

1.6 人.过程和技术 有效的日志分析策略不单单是一系列的工具,而是人.过程和技术的完美组合.技术是你使用的各种工具的组合.但是只有最新的工具是不够的,你必须知道用它们来做什么.过程决定了你如何使用这些工具.如何管理日志数据,确保它含有你所需要的信息,并从中获取你所需要的信息?过程对于这些问题来说是必需的.在法庭上用日志作为证据时,一个记录在案的日志处理过程是必不可少的.能够展示你平时怎样收集和保存日志数据,会极大地影响到你的日志数据是否可以成为证据.报告可以对此提供帮助,我们会在第12章涉及这

《日志管理与分析权威指南》一1.2.4 日志生态系统

1.2.4 日志生态系统 之前我们已经在概略地讨论了日志数据和日志消息,现在我们来了解日志是怎么在整个日志记录生态系统中使用的.日志记录生态系统,有时也称为日志记录基础设施,是组合在一起实现了日志数据的生成.过滤.规范化.分析和长期存储各项功能的组件和零件.这个系统的最终目标是能够利用日志来解决问题.而需要解决的问题取决于你的环境.例如,如果你是一个处理信用卡交易的零售组织,就必须遵守各种各样的监管和依从性要求.本节中余下的内容将会在后续的章节中展开讲解.让我们从一些在开始规划日志系统架构的时候

《日志管理与分析权威指南》一1.2.2 日志数据是如何传输和收集的

1.2.2 日志数据是如何传输和收集的 日志数据的传输和收集在概念上非常简单.计算机或者其他设备都实现了日志记录子系统,能够在确定有必要的时候生成日志消息,具体的确定方式取决于设备.例如,你可以选择对设备进行配置,设备也可能本身进行了硬编码,生成一系列预设消息.另一方面,你必须有一个用来接收和收集日志消息的地方.这个地方一般被称为日志主机(loghost).日志主机是一个计算机系统,一般来说可能是Unix系统或者Windows服务器系统,它是集中收集日志消息的地方.使用集中日志收集器的优点如下:

《日志管理与分析权威指南》一1.4 被低估的日志

1.4 被低估的日志 在很多企业环境中,日志没有得到重视.日志往往在日常工作中被完全忽视,仅仅在磁盘空间不足的时候才会引起人们的注意.而在这个时候它们往往未经查看就被删除了.某些情况下,日志中的一些消息可能指出磁盘满的原因.我们肯定都有过查看已被入侵的机器的经历,在询问日志保存的位置之后,我们会听到:"噢,它们只会占据空间,所以我们把它们删掉了."在大多数这种情况下,我们没有什么可做的.为什么日志不受重视呢?这是有很多原因的.供应商并不希望你使用它.入侵检测系统的供应商会告诉你需要最新

《日志管理与分析权威指南》一1.5.5 无聊的审计,有趣的发现

1.5.5 无聊的审计,有趣的发现 审计是验证系统或者过程是否如预期般运行的过程.日志是审计过程的一部分,形成审计跟踪的一部分. 审计往往是为了政策或者监管依从性而进行的.例如,公司往往需要做财务审计,以确保他们的财务报表和账簿相符,且所有数字都合情合理.Sarbanes-Oxley(萨班斯-奥克斯利法案)和HIPAA(健康保险便利性与责任法案)等美国法规都要求某种交易日志,以及可以用来验证用户对金融和患者数据的访问的审计跟踪.另一个例子是Payment Card Industry Data S

《日志管理与分析权威指南》一3.2.1 syslog

3.2.1 syslog 在第1章和第2章中你已经看到了syslog消息示例.本节更多的是关于协议本身的.syslog被Unix内核和许多应用程序用来记录日志消息,它最初是用于收集调试信息的.因此,它对于安全日志分析有一些限制,不是最优的.尽管如此,syslog已经成为了基于UNIX的系统中记录应用程序事件的最常用方法. syslog包含syslog守护进程(syslogd).它通常分别在开机和关机时启动和停止.应用程序通过syslog(3)库调用与syslogd通信.syslogd通过Unix

《日志管理与分析权威指南》一2.3 良好日志记录的标准

2.3 良好日志记录的标准 正如这本书中各式例子所示,许多情况下日志记录的信息是不完整的,有时甚至是没用的.那么怎样才算是"良好"的日志呢?对入侵检测.资源管理或审计来说,日志消息必须包含哪些必要的信息?由于日志的种类很多,生成日志的设备更是多种多样,因此很难定义单一的标准. 通常来说,日志应该能够告诉你如下信息: 发生了什么(即What,辅以适当细节信息:单纯的"某事发生"通常并不是特别有用) 发生于何时(即When,若有必要,包含开始时间以及结束时间) 发生于何