当前位置: 首页 > news >正文

【网络安全】日志文件格式

日志文件格式概览

    • 1. 简介
    • 2. JSON(JavaScript 对象表示法)
      • 2.1 JSON 语法元素包括:
    • 2.2 系统日志 (Syslog)
      • 2.3 Syslog 日志示例
      • 2.4 Header
      • 2.5 Structured-data
      • 2.6 Message
      • 2.7 优先级 (PRI)
    • 3. XML (可扩展标记语言)
      • 3.1 标签
      • 3.2 元素
      • 3.3 属性
    • 4. CSV (逗号分隔值)
    • 5. CEF (Common Event Format 通用事件格式)
    • 6. 总结

1. 简介

在网络或系统中,日志记录着事件的发生情况。在信息安全领域,日志提供了组织内部各项活动的重要细节,比如某个用户在特定时间登录了某个应用程序。作为一名安全分析师,你将会使用**日志分析(Log Analysis)**来识别感兴趣的事件。掌握多种日志格式的结构和含义,对于你识别异常或恶意活动至关重要。本文将介绍以下几种常见的日志格式:

  • JSON
  • Syslog
  • XML
  • CSV
  • CEF

2. JSON(JavaScript 对象表示法)

JSON 是一种用于存储和传输数据的轻量级文件格式,语法简洁,易于阅读和编写。它常用于 Web 和云环境中的数据交换。

2.1 JSON 语法元素包括:

  • 键值对(Key-Value Pair)
    键值对是一组表示两个关联项的数据:一个键及其对应的值。键值对由一个键、一个冒号和一个值组成。键值对的一个示例为 "Alert": "Malware"

  • 逗号(,)
    用于分隔不同的键值对: "Alert": "Malware", "Alert code": 1090, "severity": 10"

  • 双引号(" ")
    双引号用于括起文本数据(也称为字符串),例如: "Alert": "Malware"。包含数字的数据无需用引号括起来,例如:"Alert code": 1090

  • 花括号({ })
    用于包裹一个对象,该数据类型将数据存储在以逗号分隔的键值对列表中。对象通常用于描述给定键的多个属性。JSON 日志条目以大括号开头和结尾。在此示例中, User是包含多个属性的对象:"User": {"id": "1234", "name": "user", "role": "engineer"}

  • 方括号([ ])
    用于包裹一个数组,数组是一种以逗号分隔的有序列表形式存储数据的数据类型。当您想要将数据存储为有序集合时,数组非常有用:["Administrators", "Users", "Engineering"]

2.2 系统日志 (Syslog)

Syslog 是用于记录和传输数据的标准。它可用于指代其三种不同功能中的任何一种:

  1. 协议:syslog 协议用于将日志传输到集中式日志服务器进行日志管理。它使用端口 514 传输明文日志,使用端口 6514 传输加密日志。

  2. 服务:Syslog 服务充当日志转发服务,将来自多个来源的日志整合到单个位置。该服务的工作原理是接收所有 syslog 日志条目,然后将其转发到远程服务器。

  3. 日志格式:Syslog 日志格式是最常用的日志格式之一,也是您将要关注的。它是 Unix® 系统中使用的原生日志格式。它由三个部分组成:头部、结构化数据和消息。

2.3 Syslog 日志示例

下面是一个包含所有三个组件的系统日志条目的示例:Header、Structured-data 和 Message :

<236>1 2022-03-21T01:11:11.003Z virtual.machine.com evntslog - ID01
[user@32473 iut="1" eventSource="Application" eventID="9999"] 
This is a log entry!

2.4 Header

标头包含时间戳、主机名(即发送日志的机器的名称)、应用程序名称和消息 ID 等详细信息。

时间戳:本例中的时间戳为2022-03-21T01:11:11.003Z,其中2022-03-21是 YYYY-MM-DD 格式的日期。T用于分隔日期和时间。01 :11:11.003是 24 小时制的时间,包含毫秒数003Z表示时区,即协调世界时 (UTC) 。

主机名:virtual.machine.com

应用程序:eventslog

消息ID:ID01

2.5 Structured-data

日志条目的结构化数据部分包含额外的日志信息。这些信息括在方括号中,并以键值对的形式组织起来。此处有三个键及其对应的值:[user@32473 iut="1" eventSource="Application" eventID="9999"]

2.6 Message

该消息包含有关该事件的详细日志消息。此处,该消息为This is a log entry!

2.7 优先级 (PRI)

优先级 (PRI) 字段指示已记录事件的紧急程度,并以尖括号括起来。在本例中,优先级值为<236>。通常,优先级越低,事件越紧急。

注意:Syslog 标头可以与 JSON 和 XML 格式组合使用。此外,还可以使用自定义日志格式。


3. XML (可扩展标记语言)

XML(可扩展标记语言)是一种用于存储和传输数据的语言和格式。XML 是 Windows 系统使用的原生文件格式。XML 语法使用以下内容:

  • 标签
  • 元素
  • 属性

3.1 标签

XML 使用标签来存储和识别数据。标签是一对必须包含起始标签和结束标签的标签。起始标签用尖括号括起数据,例如<tag>,而结束标签则用尖括号和正斜杠括起数据,例如</tag>

3.2 元素

XML 元素既包含标签内的数据,也包含标签本身。所有 XML 条目必须至少包含一个根元素。根元素包含位于其下方的其他元素,这些元素称为子元素。

以下是一个例子:

<Event>	<EventID>4688</EventID><Version>5</Version>
</Event>

在此示例中,<Event>是根元素,并包含两个子元素<EventID><Version>。每个相应的子元素中都包含数据。

3.3 属性

XML 元素也可以包含属性。属性用于提供有关元素的附加信息。属性包含在标签本身的第二部分中,并且必须始终使用单引号或双引号括起来。

例如:

<EventData><Data Name='SubjectUserSid'>S-2-3-11-160321</Data><Data Name='SubjectUserName'>JSMITH</Data><Data Name='SubjectDomainName'>ADCOMP</Data><Data Name='SubjectLogonId'>0x1cf1c12</Data><Data Name='NewProcessId'>0x1404</Data>
</EventData>

在此示例的第一行中,标签为<Data> 它使用属性 Name='SubjectUserSid' 来描述标签 S-2-3-11-160321中包含的数据。


4. CSV (逗号分隔值)

CSV(逗号分隔值)使用逗号分隔数据值。在 CSV 日志中,数据的位置与其字段名称相对应,但字段名称本身可能不包含在日志中。了解源设备(例如 IPS、防火墙、扫描仪等)在日志中包含哪些字段至关重要。

以下是一个例子:

2009-11-24T21:27:09.534255,ALERT,192.168.2.7,
1041,x.x.250.50,80,TCP,ALLOWED,1:2001999:9,
"ET MALWARE BTGrab.com Spyware Downloading Ads",1

5. CEF (Common Event Format 通用事件格式)

通用事件格式 (CEF)是一种日志格式,它使用键值对来构造数据并标识字段及其对应的值。CEF 语法定义为包含以下字段:

CEF:Version|Device Vendor|Device Product|Device Version|Signature ID|Name|Severity|Extension  

所有字段都用竖线字符|分隔。但是, CEF 日志条目扩展部分的任何内容都必须以键值格式写入。Syslog 是传输 CEF 等日志的常用方法。使用 Syslog 时,时间戳和主机名将添加到 CEF 消息的前面。以下是一条 CEF 日志条目的示例,其中详细说明了与蠕虫感染相关的恶意活动:

Sep 29 08:26:10 host CEF:1|Security|threatmanager|1.0|100|worm successfully stopped|10|src=10.0.0.2 dst=2.1.2.2 spt=1232

以下是各个字段的细分:

  • Syslog 时间戳: Sep 29 08:26:10
  • Syslog 主机名:host
  • 版本:CEF:1
  • 设备供应商:Security
  • 设备产品:threatmanager
  • 设备版本:1.0
  • 签名ID:100
  • 名称:worm successfully stopped
  • 严重程度:10
  • 扩展名:此字段包含以键值对形式写入的数据。有两个
    IP 地址:src=10.0.0.2dst=2.1.2.2,以及一个源端口号spt=1232。扩展名不是必需的,可以选择添加。

此日志条目包含有关名为threatmanager的安全应用程序的详细信息,该应用程序成功阻止了蠕虫病毒从内部网络10.0.0.2通过端口1232传播到外部网络2.1.2.2 。报告的严重性级别为10 。

注意:扩展名和 syslog 前缀是可选的,可以添加到 CEF 日志中。


6. 总结

关键点总结:

  • 日志格式没有统一标准,每种系统和设备可能使用不同的格式。
  • 了解多种日志格式对于事件调查和威胁检测至关重要。
  • 掌握格式结构可以帮助你快速提取关键数据,如时间、主机名、IP、告警信息等。
http://www.dtcms.com/a/313256.html

相关文章:

  • 数据结构——单向链表
  • Kali基础知识点【1】
  • Pytorch-04 搭建神经网络架构工作流
  • TikTokShop-美国本土跨境-达人邀约_影刀RPA源码解读
  • 8.1.3 TiDB集群方案雨Replication原理
  • 关于逻辑回归的相关知识大全
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘scikit-learn’问题
  • 【AI】持久化聊天记忆(隔离对话)
  • ELECTRICAL靶机攻略
  • Linux驱动学习(四)字符设备
  • PyTorch生成式人工智能(24)——使用PyTorch构建Transformer模型
  • HBK公司核心产品和业务简析
  • 架构——异地多活成熟的架构模式
  • useSelector useDispatch
  • 高级开发 | 零人工干预的 @Value 实时刷新
  • 直流无刷电机(一)
  • ElementUI之使用以及表单验证
  • lumerical——锥形波导偏振转换
  • 第九章:了解特殊场景下的redis
  • 解决dify前端页面中公式显示的问题
  • 字典序最小的拼接字符串(贪心+全排列)详解
  • 数据分析—numpy库
  • Pytorch-03数据的Transform
  • 2106. 摘水果,梳理思路
  • 新手向:Python制作贪吃蛇游戏(Pygame)
  • Redis面试精讲 Day 9:Redis模块开发与扩展
  • 信创数据库-DM(达梦)数据库安装教程
  • Rust:如何访问 *.ini 配置文件?
  • 【项目日志|苍穹外卖】 Day1:项目环境搭建与架构设计
  • 反向代理+网关部署架构