Overview
This page provides the publication history of OpenC2 TC work products, with links to the most recent “approved” version as well as the current work-in-progress for the product. An entry is provided for each work product. For each document the reference includes the full title, a brief descriptions, and a table with dates and links for the approved versions. with information for “approved” versions. Table contents are ordered in reverse chronological order, newest version first. An explanation of the table details can be found at the end of the page
The following documents histories are provided on this page. For information regarding TC work products that have not yet reached the Committee Specification Draft (CSD) level, consult the list of GitHub repositories on the Specifications page.
Overarching Documents | Actuator Profiles | Transfer Specifications | Informative Work |
---|---|---|---|
Architecture Specification | Stateless Packet Filtering | MQTT | Information Modeling with JADN CN |
Language Specification | Packet Filtering AP | HTTPS | Actuator Profile Development Process CN |
JSON Abstract Data Notation (JADN) | Threat Hunting AP |
OpenC2 Architecture Specification
Cyber attacks are increasingly sophisticated, less expensive to execute, dynamic and automated. The provision of cyber defense via statically configured products operating in isolation is untenable. Standardized interfaces, protocols and data models will facilitate the integration of the functional blocks within a system and between systems. Open Command and Control (OpenC2) is a concise and extensible language to enable machine-to-machine communications for purposes of command and control of cyber defense components, subsystems and/or systems in a manner that is agnostic of the underlying products, technologies, transport mechanisms or other aspects of the implementation. The Architecture Specification describes the abstract architecture of OpenC2 to define a common understanding of the messages and interactions for all bindings and serializations.
Version | Approval Level | Publication Date |
---|---|---|
v1.0 WIP | Working meeting: 11 May 2022 | 11 May 2022 |
v1.0 | CS01 | 30 September 2022 |
v1.0 | CSD 01 | 18 May 2022 |
Open Command and Control (OpenC2) Language Specification
The Language Specification is an overarching OpenC2 document, which defines the basic conventions of the language, the set of available actions, and the base set of targets to which actions can be applied. This specification provides the semantics for the essential elements of the language, the structure for commands and responses, and the schema that defines the proper syntax for the language elements that represents the command or response.
Version | Approval Level | Publication Date |
---|---|---|
v2.0 WIP | Working Meeting: 4 January 2023 | 22 September 2021 |
v2.0 | CSD 02 | 15 May 2024 |
v2.0 | CSD 01 | 16 November 2022 |
v1.1 | CSD 01 | 18 August 2021 |
v1.0 | CS 02 | 24 November 2019 |
v1.0 | CS 01 | 11 July 2019 |
v1.0 | CSD 08 / PRD 02 | 04 April 2019 |
v1.0 | CSD 07 / PRD 01 | 17 October 2018 |
v1.0 | CSD 06 | 17 October 2018 |
v1.0 | CSD 05 | 20 July 2018 |
v1.0 | CSD 04 | 31 May 2018 |
v1.0 | CSD 03 | 03 April 2018 |
v1.0 | CSD 02 | 14 February 2018 |
v1.0 | CSD 01 | 14 November 2017 |
Specification for JSON Abstract Data Notation (JADN)
JSON Abstract Data Notation (JADN) is a UML-based information modeling language that defines data structure independently of data format. Information models are used to define and generate physical data models, validate information instances, and enable lossless translation across data formats. A JADN specification consists of two parts: type definitions that comprise the information model, and serialization rules that define how information instances are represented as data. The information model is itself an information instance that can be serialized and transferred between applications. The model is documented using a compact and expressive interface definition language, property tables, or entity relationship diagrams, easing integration with existing design processes and architecture tools.
Version | Approval Level | Publication Date |
---|---|---|
v1.X WIP | Working Meeting: 16 June 2021 | 16 June 2021 |
v1.0 | CS 01 | 17 August 2021 |
v1.0 | CSD 02 (public review) | 16 June 2021 |
v1.0 | CSD 01 (public review) | 21 October 2020 |
OpenC2 Actuator Profile for Stateless Packet Filtering (SLPF)
OpenC2 Actuator Profiles specify the subset of the OpenC2 language relevant in the context of specific actuator functions. This actuator profile specifies the set of actions, targets, specifiers, and command arguments that integrates Stateless Packet Filtering functionality with the OpenC2 command set.
Version | Approval Level | Publication Date |
---|---|---|
v1.x WIP | 16 October 2020 | 16 October 2020 |
v1.0 | CS 01 | 11 July 2019 |
v1.0 | CSD 06 / PRD 03 | 31 May 2019 |
v1.0 | CSD 05 / PRD 02 | 04 April 2019 |
v1.0 | CSD 04 / PRD 01 | 17 October 2018 |
v1.0 | CSD 03 | 04 October 2018 |
v1.0 | CSD 02 | 20 July 2018 |
v1.0 | CSD 01 | 31 May 2018 |
OpenC2 Actuator Profile for Packet Filtering (PF)
OpenC2 Actuator Profiles specify the subset of the OpenC2 language relevant in the context of specific actuator functions. Packet filtering is a cyber defense mechanism that denies or allows traffic based on static or dynamic properties of the traffic, such as address, port, protocol, etc. This profile defines the Actions, Targets, Specifiers and Options that are consistent with the Version 1.0 of the OpenC2 Language Specification in the context of packet filtering (PF).
Version | Approval Level | Publication Date |
---|---|---|
v1.0 WIP | Working Meeting: 7 August 2024 | 7 August 2024 |
v1.0 | CSD 01 | 21 July 2021 |
OpenC2 Actuator Profile for Threat Hunting (TH)
OpenC2 Actuator Profiles specify the subset of the OpenC2 language relevant in the context of specific actuator functions. This specification defines an actuator profile to automate management of cyber threat hunting activities using OpenC2. Threat hunting is the process of proactively and iteratively searching through networks and on endpoints to detect and isolate cyber observables that may indicate threats that evade existing security solutions. This actuator profile defines the OpenC2 Actions, Targets, Arguments, and Specifiers along with conformance clauses to enable the operation of OpenC2 Producers and Consumers in the context of cyber threat hunting. It covers the identification and invocation of stored hunting processes (e.g., “hunt flows”), passing of hunt parameters, and the expected type(s) and format(s) of information returned by hunting processes.
Version | Approval Level | Publication Date |
---|---|---|
v1.0 WIP | Working Meeting: 5 December 2023 | 5 December 2023 |
v1.0 | CSD 02 | 21 February 2024 |
v1.0 | CSD 01 | 20 September 2023 |
Specification for Transfer of OpenC2 Messages via MQTT
OpenC2 transfer specifications utilize existing protocols and standards to implement OpenC2 in specific environments. Message Queuing Telemetry Transport (MQTT) is a widely-used publish / subscribe (pub/sub) transfer protocol. This specification describes the use of MQTT Version 5.0 as a transfer mechanism for OpenC2 messages.
Version | Approval Level | Publication Date |
---|---|---|
v1.0 WIP | Working Meeting: 13 October 2021 | 13 October 2021 |
v1.0 | CS 01 | 19 November 2021 |
v1.0 | CSD 04 | 18 August 2021 |
v1.0 | CSD 03 | 17 February 2021 |
v1.0 | CSD 02 | 24 September 2020 |
v1.0 | CSD 01 | 07 July 2020 |
Specification for Transfer of OpenC2 Messages via HTTPS
OpenC2 transfer specifications utilize existing protocols and standards to implement OpenC2 in specific environments. This specification describes the use of HTTP over TLS as a transfer mechanism for OpenC2 messages.
Version | Approval Level | Publication Date |
---|---|---|
v1.1 WIP | Working Meeting: 8 Septenber 2021 | 8 September 2021 |
v1.1 | CS 01 | 30 November 2021 |
v1.1 | CSD 01 (public review) | 15 September 2021 |
v1.0 | CS 01 | 11 July 2019 |
v1.0 | CSD 05 / PRD 03 | 21 May 2019 |
v1.0 | CSD 04 / PRD 02 | 04 April 2019 |
v1.0 | CSD 03 / PRD 01 | 17 October 2018 |
v1.0 | CSD 02 | 04 October 2018 |
v1.0 | CSD 01 | 23 August 2018 |
Information Modeling With JADN
Information models (IMs) are used to define and generate physical data models, validate information instances, and enable lossless translation across data formats. JSON Abstract Data Notation (JADN) is a UML-based information modeling language that defines data structure independently of data format. This Committee Note describes the use of IMs, explains how to construct IMs using JADN, and contrasts IMs with other modeling approaches, such as Entity-Relationship models for databases, and knowledge models / ontologies.
Version | Approval Level | Publication Date |
---|---|---|
v1.X WIP | Working Meeting: 12 April 2023 | 12 April 2023 |
v1.0 | CN 01 | 19 April 2023 |
v1.0 | CND 01 | 18 January 2023 |
OpenC2 Actuator Profile Development Process Version 1.0
OpenC2 Actuator Profiles (APs) specify the subset of the OpenC2 language relevant in the context of specific actuator functions. A profile refines the meaning of language elements used to perform the actuator function, and often defines additional elements that are relevant and/or unique to that function. This Committee Note describes the TC’s process for using the JSON Abstract Data Notation (JADN) information modeling language in the development of APs, resulting in a rigorous schema for an AP properly integrated with the base OpenC2 language.
Version | Approval Level | Publication Date |
---|---|---|
v1.0 WIP | Working Meeting: 8 Nov 2023 | 10 Nov 2023 |
v1.0 | CN01 | 17 January 2024 |
Explanation of History Table Details
- Version
- Approval Level -- A link to a specific
version of the document. The first row in each table is
a link to the current working version on GitHub,
reflecting either the latest change to in-progress
content, or the starting point for future changes,
depending on the document's current development status.
Subsequent rows are identified by approval level, which
is one of:
- OASIS Standard (OS) -- an official OASIS publication approved by the OASIS membership (none of the TC’s work products have yet reached this level).
- Committee Specification (CS) -- an official OASIS publication approved by a special majority vote of the TC as a complete and usable document.
- Committee Specification Draft (CSD) -- an official OASIS publication approved by a majority vote of the TC, a mostly-stable and usable but unfinished specification.
- Committee Specification / Public Review Draft (CS/PRD) -- an official OASIS publication approved by a majority vote of the TC and specified for release for public review (this terminology only applies to the TC’s original three specifications).
- Working Draft (WD) -- a snapshot version of a work-in-progress document posted to OASIS by the work product editors NOTE: for OS-, CS-, and CSD-level documents this item will be a link to the published HTML version of the work product; for WD-level documents the public link to the WD package in the TC’s document repository will be used.
- Publication Date -- the date when this version / approval level document was published. For an OS, CS, or CSD this will be the date contained in the published HTML version of the document. Unapproved WDs will instead have the date the WD package was uploaded to OASIS.