The Open Cybersecurity Schema Framework (OCSF) is an open standard for cybersecurity event logging and data normalization. The framework is made up of a set of categories, event classes, data types, and an attribute dictionary. It is not restricted to cybersecurity nor to events, however the initial focus of the framework has been a schema for cybersecurity events.
This repository contains the core schema definitions that enable consistent representation of security events across different tools and platforms. The core schema for cybersecurity events is intended to be agnostic to implementations. OCSF is intended to be used by both products and devices which produce log events, analytic systems, and logging systems which retain log events.
Explore the Schema: Visit schema.ocsf.io to browse the complete schema interactively.
Key Resources:
- Understanding OCSF - Comprehensive white paper
- Contributing Guide - How to contribute to the schema
- Changelog - Latest updates and changes
├── events/ # Event class definitions organized by category
├── objects/ # Reusable object definitions
├── profiles/ # Schema profiles for specific use cases
├── extensions/ # Schema extensions (Linux, Windows, etc.)
├── metaschema/ # Schema validation rules
├── templates/ # Template definitions
├── categories.json # Event category definitions
├── dictionary.json # Attribute dictionary
└── version.json # Current schema version
OCSF provides:
- Standardized Event Schema: Common structure for cybersecurity events
- Extensible Framework: Support for custom extensions and profiles
- Format Agnostic: Works with JSON, Parquet, Avro, and other formats
- Vendor Neutral: Open standard not tied to any specific vendor
The framework consists of:
- Categories: High-level groupings (Network, System, Application, etc.)
- Event Classes: Specific event types within categories
- Objects: Reusable data structures
- Attributes: Individual data fields with standardized definitions
OCSF is designed for:
- Security Tools: SIEM, SOAR, EDR, and other security platforms
- Log Producers: Applications, devices, and systems generating security events
- Analytics Platforms: Tools processing and analyzing security data
- Data Pipelines: ETL processes normalizing security data
Pull requests to main run these checks:
- Metaschema —
ocsf-validatorconfirms the uncompiled files matchmetaschema/. - Compile —
ocsf-schema-compilermust compile the schema. - Compatibility —
ocsf-libcompares the pull request with the last stable release. The default tag is1.9.0; theLATEST_STABLErepository variable can name another tag. CI checks that tag out and compiles it. Passing a version number toocsf-libdoes not work for1.8.0and newer, because schema.ocsf.io rejects the legacyexport/schemaAPI for those releases. - Developer Certificate of Origin — every non-merge commit must include a
Signed-off-by: Real Name <email>trailer. See CONTRIBUTING.md. - Spellcheck —
cspellreports unknown words as warnings. It does not fail the pull request.
A Claude-powered reviewer (.github/scripts/review_descriptions.py) comments on pull requests that change event classes, objects, the dictionary, or CHANGELOG.md. The comment is advisory and does not fail the check.
How it works:
- The
description-review-compileworkflow compiles the schema withocsf-schema-compilerand saves review context as an artifact. - The
description-review-commentworkflow downloads that artifact, calls Claude, and posts a comment on the pull request.
What it evaluates:
- Description clarity, precision, and self-containedness
- Whether descriptions are specific enough for an LLM to correctly populate fields from raw telemetry
- Semantic anti-patterns (overlap between attributes, incorrect type choices, indirect attribution)
CHANGELOG.mdconvention compliance
On a later push, the reviewer acknowledges suggestions that were fixed and repeats the ones that are still open.
We welcome contributions! Please see our Contributing Guide for details on:
- How to propose schema changes
- Development workflow
- Community guidelines
OCSF follows semantic versioning. Check version.json for the current version.
Licensed under the Apache License 2.0.
Need Help?