@openauditmodel/cli 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -157,6 +157,50 @@ changes, privileged operations, data access, data modification, configuration ch
157
157
  approvals, delegation, impersonation, administrative actions, security-relevant actions, external
158
158
  data sharing, resource lifecycle operations, and deployment and operational changes.
159
159
 
160
+ ## Has this been tried before?
161
+
162
+ Yes, several times, and by serious people. This project is not the first attempt to give audit
163
+ events a common shape, and the reason for another one is narrower than "there wasn't a standard".
164
+
165
+ **XDAS** (The Open Group, 1998) defined a set of generic events and a portable audit record format
166
+ so that records from different components of a distributed system could be merged and analysed
167
+ together. It remained a Preliminary Specification.
168
+
169
+ **CEE** (MITRE) is the closest predecessor in shape. It defined an Event Taxonomy, a Field
170
+ Dictionary, an Event Schema with extensions, and Event Profiles — customizable extensions of the
171
+ schema for a particular need — together with JSON and XML encodings and a transport layer that
172
+ covered secure logging and verifiable record logs. That is close enough to this project's structure
173
+ that it should be said plainly rather than discovered. MITRE stopped all work on CEE in 2014 when
174
+ its sponsor's funding ended, and keeps the site as an archive. It stopped for want of funding, not
175
+ because the idea was wrong.
176
+
177
+ **CADF** (DMTF DSP0262) is a full audit event model: schema definitions, extensible taxonomies, and
178
+ interfaces for federating event records between providers. Its framing — initiator, action, target,
179
+ outcome, observer — is reflected here. Its target is cloud and service-provider auditing.
180
+
181
+ **OCSF** is the active one, describing itself as an extensible framework for developing schemas with
182
+ a vendor-agnostic core security schema, initially focused on cybersecurity events. It has real
183
+ adoption across security vendors.
184
+
185
+ ### So why another one?
186
+
187
+ Not because those are wrong, and not because a schema is a novel idea. The differences are of focus:
188
+
189
+ - **The subject is a business operation, not security telemetry or a control-plane action.** The
190
+ questions this model insists on — who authorized it, who approved it, on whose behalf it was done,
191
+ why, and what the record looked like before and after — are the ones that come up when a business
192
+ application is audited, and they are peripheral in models built for other domains.
193
+ - **Conformance is testable rather than asserted.** A canonical JSON Schema, published fixtures and a
194
+ validator mean a producer can be shown to conform, or shown not to, before the data is retained for
195
+ years. Profiles add requirements for a domain and are structurally unable to relax the core.
196
+ - **The specification is reachable by the tooling that writes the code.** Much of this instrumentation
197
+ is now written with a coding agent in the loop, and an agent that can query the model, generate an
198
+ event against it, validate the result and check it for leaked credentials is a different proposition
199
+ from a specification document it has to be told about.
200
+
201
+ None of those parts is individually novel. The combination, and the narrowness of the target, are the
202
+ bet this project is making.
203
+
160
204
  ## Why is an audit event different from an application debug log?
161
205
 
162
206
  An application log line says:
@@ -215,7 +259,7 @@ OpenAuditModel complements existing standards rather than reinventing them. None
215
259
  | **OpenTelemetry** | MAY be used for telemetry transport, collection and trace correlation. |
216
260
  | **ECS** | Supported through an informative export mapping. |
217
261
  | **OCSF** | Supported through an informative security-event mapping. |
218
- | **CADF** | A conceptual reference for audit semantics. |
262
+ | **CADF** | A DMTF audit event standard. Prior art; not an export target in v0.1. |
219
263
  | **OSCAL** | May later be used for control and assessment mappings. Not addressed in v0.1. |
220
264
  | **JSON Schema Draft 2020-12** | Defines the canonical machine-verifiable structure. |
221
265
 
@@ -238,9 +282,11 @@ event is valid standalone. See [mappings/cloudevents.md](mappings/cloudevents.md
238
282
 
239
283
  ### Specifically, ECS, OCSF and CADF
240
284
 
241
- ECS is a field vocabulary for search; OCSF is a schema for security telemetry; CADF is a conceptual
242
- model for cloud audit. OpenAuditModel exports to the first two and takes conceptual framing from the
243
- third. All three mappings are informative, one-directional, and honest about what does not map see
285
+ ECS is a field vocabulary for search; OCSF is a schema for security telemetry; CADF (DMTF DSP0262) is
286
+ a complete audit event model with its own schema definitions, taxonomies and federation interfaces,
287
+ aimed at cloud and service-provider auditing. OpenAuditModel exports to the first two and takes
288
+ conceptual framing from the third — the difference there is domain, not completeness. All three
289
+ mappings are informative, one-directional, and honest about what does not map — see
244
290
  [mappings/](mappings/).
245
291
 
246
292
  ## Why is the model backend-independent?
@@ -263,7 +309,7 @@ See [ADR 0003](decisions/0003-backend-and-transport-independence.md).
263
309
  specification/ 15 normative documents defining the model
264
310
  schemas/v0.1/ the canonical JSON Schema (Draft 2020-12)
265
311
  semantic-conventions/ recommended event names and vocabularies
266
- profiles/ ten enforceable domain profiles, 127 rules
312
+ profiles/ ten enforceable domain profiles, 127 rules (113 error-severity, 14 advisory)
267
313
  mappings/ informative mappings to CloudEvents, OTel, ECS, OCSF, CADF
268
314
  examples/ 11 valid and 7 invalid conformance fixtures
269
315
  examples/integrity/ generated tamper-evidence fixtures, valid and invalid
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openauditmodel/cli",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Conformance toolchain for OpenAuditModel: validate audit events against the canonical JSON Schema, verify tamper-evidence, lint for leaked secrets and check domain profiles. Offline and deterministic.",
5
5
  "keywords": [
6
6
  "audit",
@@ -31,7 +31,8 @@ without it is fully conforming. When the object is present it MUST contain at le
31
31
  | `signature` | Digital signature over the canonicalized event. |
32
32
 
33
33
  `signature` is an object requiring `algorithm` and `value`, and optionally `keyId`. `keyId` MUST NOT
34
- contain key material. Signature verification is **not** part of v0.1; see §9.
34
+ contain key material. v0.1 tooling verifies Ed25519 signatures when a public key is supplied out of
35
+ band; signing and key management are not part of v0.1. See §6.1 and §9.
35
36
 
36
37
  ### 2.1 What `batchId` is not
37
38