Skip to content

Instantly share code, notes, and snippets.

@niquola
Last active February 4, 2026 11:45
Show Gist options
  • Select an option

  • Save niquola/cfe0e5f1ef858878264844978caff07e to your computer and use it in GitHub Desktop.

Select an option

Save niquola/cfe0e5f1ef858878264844978caff07e to your computer and use it in GitHub Desktop.
Audit Event Taxonomies Research - W3C, IETF, OASIS, HL7 standards comparison for FHIR AuditEvent mapping

Исследование стандартов таксономии Audit Events

Сводная таблица

Стандарт Организация Статус Login Logout Registration
1 W3C PROV-O W3C Recommendation 2013
2 Activity Streams 2.0 W3C Recommendation 2017
3 XDAS The Open Group Standard 1997+
4 CADF DMTF Standard 2014 ⚠️
5 CEF Micro Focus Industry Standard
6 MITRE CEE MITRE Archived
7 RFC 5424 Syslog IETF Standard 2009 ⚠️ ⚠️ ⚠️
8 RFC 8417 SET IETF Standard 2018
9 OpenID RISC/CAEP OpenID Final 2025
10 IHE ATNA IHE Standard
11 FHIR AuditEvent HL7 R4/R5 Normative
12 DICOM PS3.15 NEMA Standard
13 ECS Elastic Open Source
14 STIX/TAXII OASIS Standard 2021
15 OWASP Logging OWASP Cheat Sheet

Детальный обзор

1. W3C PROV-O (Provenance Ontology)

🔗 https://www.w3.org/TR/prov-o/

W3C Recommendation (2013). Общая онтология для описания происхождения данных через триаду Entity → Activity → Agent. Определяет отношения типа wasGeneratedBy, used, wasAssociatedWith, но не содержит готовых типов событий для аутентификации.

Применимость: 2/10. Можно расширить для моделирования auth events, но придётся определять всю таксономию самостоятельно. Избыточно абстрактный — нет login/logout/registration из коробки.


2. W3C Activity Streams 2.0

🔗 https://www.w3.org/TR/activitystreams-vocabulary/

W3C Recommendation (2017). JSON-LD формат для социальных активностей — основа протокола ActivityPub (Mastodon). Определяет 30 типов: Create, Delete, Follow, Join, Leave и т.д. Фокус на социальных взаимодействиях, не на security events.

Применимость: 3/10. Можно использовать Create для registration, но нет login/logout. Хорошая модель Actor/Object, но таксономия не для аудита безопасности.


3. The Open Group XDAS

🔗 https://www2.opengroup.org/ogsys/catalog/P441

Preliminary Specification (1997+). Один из первых стандартов аудита с полной таксономией: 9 классов событий включая Account Management (create/delete account) и User Session (create/terminate session).

Применимость: 9/10. Идеально подходит — есть login, logout, registration (create account), password change. Минус — старый стандарт, не JSON-native.


4. DMTF CADF (Cloud Auditing Data Federation)

🔗 https://www.dmtf.org/standards/cadf

DMTF Standard (2014). Создан для облачных сред, JSON-native. Action taxonomy включает authenticate, login, logout, create, delete. Используется в OpenStack Keystone.

Применимость: 8/10. Хорошо подходит для login/logout (action: "authenticate/login"). Нет явного "registration", но можно использовать create + identity resource.


5. ArcSight CEF (Common Event Format)

🔗 https://www.microfocus.com/documentation/arcsight/

Industry Standard (версия 26+). Текстовый формат для SIEM-интеграции. Расширяемый через Extension fields: act (действие), suser (пользователь), outcome.

Применимость: 7/10. Поддерживает все нужные события через расширения. Минус — не JSON-native, текстовый pipe-delimited формат.


6. MITRE CEE (Common Event Expression)

🔗 https://cee.mitre.org/

Archived/Inactive. Амбициозная инициатива от MITRE с участием Cisco, HP, Microsoft, NIST. Определяет Account creation/deletion, Authentication success/failure, Session start/end.

Применимость: 8/10. Концептуально отличный — полная таксономия auth events. Критический минус: проект заброшен, не развивается с ~2014.


7. IETF RFC 5424 (Syslog Protocol)

🔗 https://datatracker.ietf.org/doc/html/rfc5424

Proposed Standard (2009). Универсальный протокол для передачи событий. Определяет Severity (0-7), Facility (auth=4, authpriv=10), Structured Data.

Применимость: 4/10. Хороший транспорт, но не определяет таксономию событий. Facility 4/10 для auth — это категория, не конкретные типы.


8. IETF RFC 8417 (Security Event Token - SET)

🔗 https://datatracker.ietf.org/doc/html/rfc8417

Proposed Standard (2018). JWT-based формат для security events. Структура events содержит URI типа события + payload. Конкретные события определяются в профилях (RISC, CAEP).

Применимость: 7/10. Отличный современный формат-контейнер. Но сам по себе не определяет login/logout — нужны профили.


9. OpenID RISC/CAEP

🔗 https://openid.net/wg/sharedsignals/specifications/

Final Specifications (2025). RISC: account-disabled, account-enabled, credential-compromise. CAEP: session-established (login), session-revoked (logout), credential-change.

Применимость: 9/10. Отлично для login/logout через CAEP. Минус — нет registration (user creation). Фокус на federation.


10. IHE ATNA (Audit Trail and Node Authentication)

🔗 https://profiles.ihe.net/ITI/TF/Volume1/ch-9.html

IHE IT Infrastructure Standard. Профиль для healthcare: Node Authentication + Audit Trail. Категории: User Authentication (success/failure), PHI access.

Применимость: 7/10. Хорош для healthcare context. Есть login/logout. Нет registration. Специфичен для медицины.


11. HL7 FHIR AuditEvent

🔗 https://www.hl7.org/fhir/auditevent.html

FHIR R4/R5 Normative. Event ID 110114 = User Authentication с subtypes 110122 (Login), 110123 (Logout). Коды из DICOM DCM.

Применимость: 8/10. Login/logout есть (DCM 110122/110123). Registration отсутствует — нужно определить свой код.


12. DICOM PS3.15 Annex A5

🔗 https://dicom.nema.org/medical/dicom/current/output/chtml/part15/sect_A.5.html

DICOM Standard. Источник кодов для FHIR AuditEvent. A.5.3.12 User Authentication: EventID=110114, EventTypeCode 110122 (Login), 110123 (Logout).

Применимость: 7/10. Авторитетный источник кодов login/logout. Нет registration.


13. Elastic Common Schema (ECS)

🔗 https://www.elastic.co/docs/reference/ecs

Open Source (v8.x). 16 категорий событий: authentication (start/end), iam (creation/deletion/user), session (start/end).

Применимость: 9/10. Полная поддержка: authentication.start (login), authentication.end (logout), iam.creation+user (registration). Современный, JSON-native.


14. OASIS STIX/TAXII

🔗 https://oasis-open.github.io/cti-documentation/

OASIS Standard (2021). Стандарты для Cyber Threat Intelligence — описание угроз, индикаторов компрометации, атак.

Применимость: 2/10. Не подходит — фокус на threat intelligence, не на audit logging.


15. OWASP Logging Vocabulary

🔗 https://cheatsheetseries.owasp.org/cheatsheets/Logging_Vocabulary_Cheat_Sheet.html

Cheat Sheet (рекомендации). Практичный словарь:

  • authn_login_success / authn_login_fail
  • session_created / session_expired
  • user_created (registration!)
  • user_deleted

Применимость: 10/10. Идеально — все нужные события из коробки, включая registration.


Рейтинг для FHIR AuditEvent mapping

Стандарт Оценка Комментарий
OWASP Logging 10/10 ✅ Всё есть, включая registration
XDAS 9/10 ✅ Полная таксономия, но старый
OpenID CAEP 9/10 ✅ Login/logout, нет registration
ECS 9/10 ✅ Полная поддержка, современный
FHIR AuditEvent 8/10 ⚠️ Нет registration кода
CADF 8/10 ⚠️ Нет явного registration
MITRE CEE 8/10 ⚠️ Заброшен

Рекомендация

Использовать OWASP Logging Vocabulary для таксономии + FHIR AuditEvent для структуры:

  1. Login: DCM code 110122
  2. Logout: DCM code 110123
  3. Registration: Определить свой код на основе OWASP user_created

Запросить добавление registration event в FAST Security IG через GitHub issue.


Исследование подготовлено для обсуждения в FHIR Zulip #implementers Тема: "Business Event to AuditEvent mapping: Sign Up"


16. OpenTelemetry Semantic Conventions

🔗 https://opentelemetry.io/docs/specs/semconv/

CNCF Project (v1.39.0, 2025). Фокус на observability (traces, metrics, logs), не на security audit. Определяет session lifecycle и user attributes, но не определяет auth events.

Session Events (Development)

Event Описание
session.start Начало сессии
session.end Конец сессии

Атрибуты: session.id, session.previous_id

⚠️ session.start ≠ login (сессия может начаться без аутентификации)

User Attributes (Development)

Атрибут Тип Описание
user.id string Уникальный ID
user.name string Login/username
user.email string Email
user.full_name string Полное имя
user.roles string[] Роли
user.hash string Анонимизированный hash

Enduser Attributes (Deprecated → User)

Атрибут Описание
enduser.id Username/client_id из токена
enduser.role Роль из security context
enduser.scope OAuth scopes

Применимость: 5/10. Полезен для enrichment (user., session.), но не определяет login/logout/registration events. Использовать совместно с OWASP/DICOM для таксономии событий.


Обновлённая сводная таблица

Стандарт Организация Login Logout Registration Session
1 W3C PROV-O W3C
2 Activity Streams 2.0 W3C
3 XDAS The Open Group
4 CADF DMTF ⚠️
5 CEF Micro Focus
6 MITRE CEE MITRE
7 RFC 5424 Syslog IETF ⚠️ ⚠️ ⚠️ ⚠️
8 RFC 8417 SET IETF
9 OpenID RISC/CAEP OpenID
10 IHE ATNA IHE
11 FHIR AuditEvent HL7
12 DICOM PS3.15 NEMA
13 ECS Elastic
14 STIX/TAXII OASIS
15 OWASP Logging OWASP
16 OpenTelemetry CNCF

17. CloudEvents + AuthContext Extension

🔗 https://github.com/cloudevents/spec

CNCF Graduated (2024). Vendor-neutral спецификация формата событий. Сам CloudEvents — контейнер, не определяет типы событий. Есть AuthContext extension:

Атрибут Описание
authcontext.principaltype user, service_account, system, unauthenticated
authcontext.principalid ID principal (рекомендуют избегать PII)

Применимость: 6/10. Хороший контейнер для событий, но нет таксономии login/logout/registration. Можно комбинировать с OWASP event names.


18. Linux Audit (auditd)

🔗 https://github.com/linux-audit/audit-documentation/wiki/SPEC-User-Login-Lifecycle-Events

Linux kernel subsystem. Полная таксономия login lifecycle:

Event Type Описание
AUDIT_USER_AUTH Аутентификация пользователя
AUDIT_USER_ACCT Авторизация аккаунта
AUDIT_USER_LOGIN Вход пользователя ✅
AUDIT_USER_LOGOUT Выход пользователя ✅
AUDIT_USER_START Начало сессии
AUDIT_USER_END Конец сессии
AUDIT_CRED_ACQ Получение credentials
AUDIT_CRED_DISP Освобождение credentials
AUDIT_USER_ROLE_CHANGE Смена роли
AUDIT_ANOM_LOGIN_FAILURES Превышение лимита попыток
AUDIT_ANOM_LOGIN_LOCATION Вход с запрещённой локации

Применимость: 9/10. Отличная таксономия! Есть login, logout, session, anomalies. Нет явного "registration", но концепции универсальны.


Финальная сводная таблица (18 стандартов)

Стандарт Организация Login Logout Registration Session Оценка
1 W3C PROV-O W3C 2/10
2 Activity Streams 2.0 W3C 3/10
3 XDAS The Open Group 9/10
4 CADF DMTF ⚠️ 8/10
5 CEF Micro Focus 7/10
6 MITRE CEE MITRE 8/10
7 RFC 5424 Syslog IETF ⚠️ ⚠️ ⚠️ ⚠️ 4/10
8 RFC 8417 SET IETF 7/10
9 OpenID RISC/CAEP OpenID 9/10
10 IHE ATNA IHE 7/10
11 FHIR AuditEvent HL7 8/10
12 DICOM PS3.15 NEMA 7/10
13 ECS Elastic 9/10
14 STIX/TAXII OASIS 2/10
15 OWASP Logging OWASP 10/10
16 OpenTelemetry CNCF 5/10
17 CloudEvents CNCF 6/10
18 Linux auditd Linux ⚠️ 9/10

Итоговая рекомендация

Для FHIR AuditEvent mapping рекомендую комбинацию:

  1. Структура: FHIR AuditEvent (agent, source, entity)
  2. Login/Logout коды: DICOM DCM (110122, 110123)
  3. Registration: OWASP user_created или свой CodeSystem
  4. User attributes: OpenTelemetry user.* для enrichment
  5. Session: OpenTelemetry session.* или OWASP session_*

Запросить добавление registration event в HL7 FAST Security IG через GitHub issue.


Исследование: 18 стандартов для Audit Event таксономии Подготовлено для FHIR Zulip #implementers и HS Auditbox team Автор: Nikolai Ryzhikov / @niquola_bot Дата: 2026-02-04

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment