Skip to content

Auditing#6

Open
hilmarf wants to merge 18 commits into
mainfrom
auditing
Open

Auditing#6
hilmarf wants to merge 18 commits into
mainfrom
auditing

Conversation

@hilmarf

@hilmarf hilmarf commented Apr 28, 2026

Copy link
Copy Markdown
Member

Project Proposal: Audit Logging SIG #2409

Overview

This pull request introduces a new Audit Logging signal to OpenTelemetry—a purpose-built observability pipeline for security-relevant events that satisfies compliance requirements such as ISO 27001, SOC 2, PCI-DSS, and HIPAA.

Motivation

The existing OpenTelemetry Logs signal is designed for general-purpose observability and intentionally permits sampling, back-pressure shedding, and record transformation. These behaviors are incompatible with audit logging, where:

  • Every record MUST be delivered without loss or modification to the designated audit sink
  • Records MUST NOT be sampled or dropped for any reason
  • Integrity verification is mandatory for tamper-evidence

A dedicated Audit Logging signal provides:

  • A purpose-built SDK pipeline with no sampling and at-least-once delivery semantics
  • A distinct OTLP endpoint (/v1/audit) for network-level isolation from observability backends
  • A dedicated data model with mandatory integrity fields and optional digital signatures
  • Clear separation of audit records from operational logs

Changes

This PR adds comprehensive specification documentation and establishes the complete audit logging framework:

New Documents

  • OTEP 0267 – Complete Audit Logging Signal proposal (motivations, design rationale, trade-offs)
  • README.md – Introduction and signal overview
  • api.md – Audit Logging API specification (AuditProvider, AuditLogger, emit semantics)
  • data-model.md – AuditRecord and AuditReceipt data models with detailed field specifications
  • sdk.md – SDK implementation requirements (queuing, processors, exporters, failure handling)
  • collector.md – Tier-2 Collector specification for enterprise multi-sink deployments

Key Features

Guaranteed Delivery – At-least-once delivery with durable (disk-backed) queuing
Integrity Protection – Optional asymmetric signatures or symmetric HMACs for tamper-evidence
No Partial Success – OTLP receivers reject entire batches if any record fails
Clock Skew Detection – Dual timestamps (event vs. observed) enable clock synchronization verification
Idempotency – RecordId as idempotency key prevents duplicate audit entries on retries
Hash-Chain Support – Optional SequenceNo and PrevHash fields for ordered stream integrity
Compliance Ready – ISO 27001 Annex A requirements built into the core design

Data Model Highlights

AuditRecord – Mandatory fields:

  • RecordId, Timestamp, ObservedTimestamp, EventName
  • Actor, ActorType, Action, Outcome
  • Optional: TargetResource, SourceIP, Signature, Algorithm, Certificate, Hmac, SequenceNo, PrevHash

AuditReceipt – Proof-of-delivery returned by sink:

  • RecordId (echoed), IntegrityHash (SHA-256), SinkTimestamp

Specification Status

  • Status: Development
  • Prototype Implementations: Planned for Java and Go SDKs
  • OTLP Transport: Uses standard LogRecord protobuf with audit=true flag; dedicated /v1/audit endpoint

References

  • Implements compliance requirements from ISO 27001 Annex A, SOC 2, PCI-DSS, HIPAA
  • Extends OTEP 0092 (Logs Vision) and OTEP 0202 (Events and Logs API) patterns
  • Reuses OTLP LogRecord as transport container for efficiency

@hilmarf hilmarf mentioned this pull request Apr 28, 2026
hilmarf added a commit that referenced this pull request Apr 28, 2026
replaces #1

Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
hilmarf added a commit that referenced this pull request Apr 28, 2026
replaces #1

Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
hilmarf added a commit that referenced this pull request Apr 29, 2026
replaces #1

Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
hilmarf added a commit that referenced this pull request May 8, 2026
replaces #1

Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
@CLAassistant

CLAassistant commented May 8, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

hilmarf added a commit that referenced this pull request May 28, 2026
replaces #1

Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
hilmarf added a commit that referenced this pull request May 29, 2026
replaces #1

Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
@hilmarf
hilmarf force-pushed the main branch 2 times, most recently from a1a9327 to 0c832ef Compare June 1, 2026 11:03
hilmarf added a commit that referenced this pull request Jun 1, 2026
replaces #1

Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
hilmarf added 7 commits June 1, 2026 13:10
Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
Durability at the sink is out of scope

Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
#2

Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
hilmarf added 6 commits June 1, 2026 13:11
replaces #1

Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
... that uses the standard dedicated
`LogRecord` fields for universal concepts and carries all
audit-specific data as `Attributes` following the `audit.*` semantic
convention namespace

Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
@hilmarf hilmarf moved this from Backlog to In progress in OTel-Audit-Logging Jun 1, 2026
Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
hilmarf added 2 commits June 3, 2026 11:51
Signed-off-by: Hilmar Falkenberg <hilmar.falkenberg@sap.com>
@hilmarf hilmarf added the do-not-merge Do not merge this PR yet! label Jun 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge Do not merge this PR yet!

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

3 participants