Common Event Format
Common Event Format (CEF) — это открытый текстовый формат представления данных о событиях информационной безопасности, разработанный компанией ArcSight (впоследствии приобретена Hewlett Packard Enterprise). Формат предназначен для унификации и стандартизации передачи журналов событий (логов) от различных источников (межсетевых экранов, антивирусов, серверов, систем обнаружения вторжений) в централизованные системы управления информацией и событиями безопасности (SIEM). CEF обеспечивает возможность автоматического разбора и анализа событий без необходимости написания индивидуальных парсеров для каждого типа устройств.
История и предпосылки создания
До появления CEF и аналогичных форматов (например, Syslog, LEEF, WELF) каждое устройство или программное обеспечение генерировало журналы событий в собственном, часто проприетарном, формате. Это создавало серьёзные трудности при интеграции разнородных систем в единую SIEM-платформу: для каждого источника требовалась разработка отдельного парсера, что было трудоёмко и дорого.
Компания ArcSight, основанная в 2000 году и ставшая одним из пионеров рынка SIEM, столкнулась с этой проблемой при создании своей платформы ArcSight ESM (Enterprise Security Manager). В середине 2000-х годов инженеры ArcSight разработали CEF как стандартизированное расширение протокола Syslog. Формат был призван упростить интеграцию устройств и снизить порог входа для производителей оборудования, желающих отправлять события в ArcSight. В 2010 году Hewlett Packard (HP) приобрела ArcSight за 1,5 миллиарда долларов, после чего формат CEF получил более широкое распространение, хотя и остался тесно связанным с экосистемой HP ArcSight.
Структура формата
Сообщение CEF состоит из двух частей: обязательного заголовка (CEF header) и расширения (extension), содержащего переменные пары «ключ-значение». Формат может передаваться как по протоколу Syslog, так и через другие транспортные механизмы (например, TCP, UDP, файлы).
Заголовок (CEF Header)
Заголовок имеет фиксированную структуру и начинается с префикса CEF:. Он содержит несколько полей, разделённых вертикальной чертой (|). Общий вид заголовка:
CEF:Version|Device Vendor|Device Product|Device Version|Signature ID|Name|Severity|
Описание полей:
- Version (версия) — целое число, указывающее версию формата CEF. Наиболее распространена версия 0.
- Device Vendor (производитель устройства) — строка, идентифицирующая производителя источника события (например,
Cisco,Microsoft,Palo Alto Networks). - Device Product (продукт) — название продукта или устройства (например,
ASA,Windows,Firewall). - Device Version (версия продукта) — версия программного обеспечения или прошивки устройства.
- Signature ID (идентификатор сигнатуры) — уникальный идентификатор типа события (например,
100,LOGIN_FAILED,Virus_Found). Может быть строкой или числом. - Name (название) — человекочитаемое описание события (например,
Authentication Failure,Malware Detected). - Severity (серьёзность) — целое число от 0 до 10, отражающее критичность события. 0 — наименее критично, 10 — наиболее критично. В некоторых реализациях используются строковые эквиваленты (Low, Medium, High, Critical).
Расширение (Extension)
Часть расширения следует за заголовком и отделяется от него пробелом. Она состоит из одной или нескольких пар «ключ=значение», разделённых пробелами. Ключи являются предопределёнными идентификаторами, а значения могут быть строками, числами, IP-адресами, датами и временем.
Пример пары: src=192.168.1.100 dst=10.0.0.1 dpt=80
Стандарт CEF определяет множество ключей расширения, которые делятся на категории:
- Сетевые ключи:
src(IP-адрес источника),dst(IP-адрес назначения),spt(порт источника),dpt(порт назначения),proto(протокол, например, TCP, UDP). - Ключи пользователя и устройства:
duser(пользователь назначения),suser(пользователь источника),fname(имя файла),fpath(путь к файлу). - Ключи времени:
rt(время получения события),deviceReceiptTime(время, когда устройство зафиксировало событие). - Ключи контента:
msg(текстовое сообщение),cs1,cs2, ...,cs6(пользовательские строки),c1,c2, ...,c6(пользовательские числа),flexString1,flexString2(гибкие строки).
Для экранирования специальных символов (например, знака равенства =, пробела, обратной косой черты \) в значениях используется обратная косая черта. Например, msg=Hello\=World будет интерпретировано как значение Hello=World.
Пример сообщения CEF
CEF:0|Microsoft|Windows|10.0.17763|4625|Logon Failure|5|src=192.168.1.100 dst=10.0.0.1 duser=Administrator msg=Account locked out due to multiple failed logon attempts rt=Dec 21 2024 14:30:00
В этом примере:
- Заголовок: Версия 0, производитель Microsoft, продукт Windows, версия 10.0.17763, идентификатор события 4625 (событие Windows), название «Logon Failure», серьёзность 5.
- Расширение: IP-адрес источника 192.168.1.100, IP-адрес назначения 10.0.0.1, пользователь Administrator, сообщение «Account locked out due to multiple failed logon attempts», время получения 21 декабря 2024 года 14:30:00.
Применение в SIEM-системах
Основное применение CEF — интеграция устройств и приложений с SIEM-системами. Большинство современных SIEM-платформ, включая HP ArcSight, Splunk, IBM QRadar, Elastic Security, и другие, поддерживают разбор сообщений CEF «из коробки». Это позволяет:
- Автоматически классифицировать события: По полям
Signature IDиNameсистема может определить тип события и применить к нему соответствующие правила корреляции. - Обогащать данные: Поля расширения, такие как
src,dst,duser, позволяют связывать события с активами, пользователями и сетевыми топологиями. - Снижать нагрузку на парсинг: Администраторам не нужно писать сложные регулярные выражения для каждого нового источника — достаточно настроить его на отправку событий в формате CEF.
Производители сетевого оборудования и программного обеспечения часто включают в свои продукты возможность отправки логов в формате CEF. Например, межсетевые экраны Palo Alto Networks, системы предотвращения вторжений (IPS) от Cisco, веб-прокси и антивирусные решения могут быть настроены на генерацию CEF-сообщений.
Критика и ограничения
Несмотря на широкое распространение, формат CEF имеет ряд недостатков:
- Привязка к ArcSight: Формат был разработан под нужды одной компании, и его эволюция долгое время была тесно связана с развитием HP ArcSight. Это могло ограничивать его внедрение в других экосистемах.
- Отсутствие строгой схемы: Стандарт CEF определяет лишь набор ключей, но не обязывает производителей использовать их единообразно. Одно и то же событие может быть описано разными наборами ключей разными устройствами, что снижает эффективность автоматической нормализации.
- Ограниченная поддержка сложных структур: CEF не поддерживает вложенные структуры данных (JSON), что делает его менее гибким для описания сложных событий с большим количеством вложенных атрибутов.
- Проблемы с экранированием: Неправильное экранирование специальных символов в значениях может приводить к ошибкам разбора, особенно если источник генерирует нестандартные строки.
Альтернативные форматы
Помимо CEF, существуют другие форматы для представления событий безопасности:
- LEEF (Log Event Extended Format) — формат, разработанный компанией IBM для платформы QRadar. Он также основан на парах «ключ-значение», но имеет другую структуру заголовка.
- Syslog (RFC 3164 / RFC 5424) — традиционный протокол для передачи логов, который не имеет строгой структуры для событий безопасности, но широко используется.
- JSON (JavaScript Object Notation) — современный формат, который становится всё более популярным благодаря своей гибкости, поддержке вложенных структур и простоте обработки. Многие современные SIEM-системы и облачные сервисы (например, AWS CloudTrail, Azure Monitor) используют JSON для представления событий.
Интересные факты
- Формат CEF не является официальным стандартом (например, RFC), но де-факто стал индустриальным стандартом для интеграции с SIEM-системами.
- В документации HP ArcSight существует подробное руководство по написанию парсеров для CEF, которое используется разработчиками по всему миру.
- Некоторые производители устройств безопасности, такие как Check Point и Fortinet, поддерживают отправку логов в нескольких форматах одновременно, включая CEF, LEEF и Syslog.
Источники
- Документация HP ArcSight: «Common Event Format (CEF) Standard» (версия 25).
- Руководство по интеграции устройств с ArcSight ESM.
- Статья «Understanding CEF (Common Event Format)» на портале Splunk.
- Материалы конференций по информационной безопасности (например, RSA Conference, Black Hat).
- Аналитические отчёты Gartner по рынку SIEM (Magic Quadrant for SIEM).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →