@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 +51 -5
- package/package.json +1 -1
- package/specification/integrity.md +2 -1
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
|
|
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
|
|
242
|
-
|
|
243
|
-
|
|
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.
|
|
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.
|
|
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
|
|