おれさまラボの実験ノート

実際に手を動かして理解を深めるブログ。

Syslog 形式とメッセージフォーマット(CEF、LEEF)

はじめに

SIEM やデータレイクなんてことばが流行りはじめて早数年経ちますが、運悪く業務ではなかなか関わることができていない今日このごろです。この界隈の情報収集をしているとよく CEF や LEEF ってことばを見かけます。説明しろと言われても今の自分にはできなさそうだったので、調べてみました。

Syslog の形式

Syslog の形式を規定する文書には、RFC 3164 (BSD Syslog Format) と RFC 5424 (Syslog Format) があり、RFC 5424 が IETF による標準化規格となっています。

RFC 3164 と RFC 5424 ではフォーマットの構造が異なりますが、MSG(メッセージ)以外の部分(RFC 3164 であれば PRI + HEADER、RFC 5424 であれば HEADER + STRUCTURED-DATA)を慣例的に Syslog ヘッダー と呼ぶようです。

Syslog Format の MSG(メッセージ)部分は可変長で任意のデータを格納することができますが、そのメッセージ内容を規格化しようとする動きがあり、その中で代表的なものに CEF や LEEF と呼ばれる形式があるということが調べてわかりました。

BSD Syslog Format - RFC 3164

  • RFC 3164 - The BSD Syslog Protocol
  • NOT規格、あくまで慣習をまとめたもの
  • PRI + HEADER + MSG の形式
  • PRI (Priority) は (Facility * 8 + Severity) で計算される。

PRI (Priority)
Header
MSG
3~5 Byte
可変長
可変長
← 1024 Byte 未満 (MUST) →

出典:Azure Sentinel | エンジニアの何でもメモ帳

RFC 3164 Syslog ヘッダのフォーマット>

<優先度タグ ><タイム・スタンプ> <IP アドレスまたはホスト名>
  • ※優先度タグはオプション
  • ※優先度タグは 1 桁 から 3 桁、またその周りを不等号括弧で囲む必要がある。

RFC 3164 ヘッダーの例:

<13>Jan 18 11:07:53 192.168.1.1

出典:LEEF イベント・コンポーネント

Syslog Format - RFC 5424

  • RFC 5424 - The Syslog Protocol
  • IETF 形式と呼ばれ、RFC3164 を規格化したもの
  • HEADER + STRUCTURED-DATA + MSG の形式
  • HEADER の部分は、BSDフォーマットとの互換性を保つため (provide some interoperability with older BSD-based syslog ) のもの。BSD syslog の Facility や Severity から計算される PRI(Priority) は、Header の中の値として存在している。
  • STRUCTURED-DATA は、新しく導入された仕組み。好きな情報を入れる事ができる。例として”トラフィック・カウンター”だったり”IPアドレス”などの このsyslog に関係する「メタ情報」を入れ込む事ができる。
  • MSG の部分は 2048 Byte 以上は、受け手がサポートしていなかった場合、2048 Byte を超えた所を Truncate (SHOULD) か、メッセージを破棄 (MAY) する。
Header
Structured-Data
MSG
3~5 Byte
可変長
可変長
← 最大 2048 Byte (SHOULD) →

出典:Azure Sentinel | エンジニアの何でもメモ帳

RFC 5424 Syslog ヘッダのフォーマット>

<優先度タグ>1 <タイム・スタンプ> <IP アドレスまたはホスト名>
  • ※優先度タグは必須
  • ※優先度タグは 1 桁 から 3 桁、またその周りを不等号括弧で囲む必要がある。
  • ※タイムスタンプのフォーマットは yyyy-MM-ddTHH:mm:ss.SSSZ である必要がある。

RFC 5424 ヘッダーの例:

<13>1 2019-01-18T11:07:53.520Z 192.168.1.1

出典:LEEF イベント・コンポーネント

Common Event Format (CEF)

Syslog Format
Header
Structured-Data
MSG
CEF Format
Syslog Header
CEF Header
Extension
  • 特定ベンダーに依存しない、一般的なメッセージフォーマット
  • 項目をパイプ(|)で区切る

CEF:Version|Device Vendor|Device Product|Device Version|deviceEventClassId|Name|Severity|Extension

<CEF ヘッダの項目とその意味>

Version CEF 形式のバージョンを特定する整数値
Device Vendor 送信デバイスのタイプを一意に識別する文字列
Device Product
Device Version
deviceEventClassId イベントタイプごとの一意の識別子 (文字列または整数値)
Name イベントを表す文字列
Sevirity イベントの重要度を表す整数値 (0 ~ 10、10 が最重要イベント)
Extension 任意の値

出典:共通イベント形式(CEF) - McAfee Enterprise Security Manager 10.2.0

Log Event Extended Format (LEEF)

Syslog Format
Header
Structured-Data
MSG
LEEF Format
Syslog Header
CEF Header
Predefined Key Entries
  • IBM 製の SIEM 製品である QRadar 用にカスタマイズされたメッセージフォーマット
  • 項目をパイプ(|)で区切る
  • UTF-8 を使用する必要がある。
  • IBM という特定ベンダー用のフォーマットではあるが、ネットワーク機器などで標準的に対応しているケースがある。

出典:Azure Sentinel | エンジニアの何でもメモ帳

<LEEF ヘッダのフォーマット>

LEEF:Version|Vendor|Product|Version|EventID|

<LEEF ヘッダの項目とその意味>

LEEF:Version LEEF 形式のバージョンを特定する整数値
Vendor 送信デバイスのタイプを一意に識別する文字列
Product
Product Version
EventID イベントタイプごとの一意の識別子 (文字列または整数値)
Delimiter Character MSG部分の区切り文字(デリミタ)の指定
Predefined Key Entries デリミタ区切りの任意の値

出典:LEEF event components

以上