OASIS Open Command and Control (OpenC2) TC

Join TC     TC Page     Send a comment to this TC

Creating a standardized language for the command and control of technologies that provide or support cyber defenses.

Duncan Sparrell, duncan@sfractal.com, Chair
Joe Brule, jmbrule@radium.ncsc.mil, Chair
David Lemire, dave.lemire@g2-inc.com, Secretary

Table of Contents


Announcements

See press release: "International Community Comes Together at OASIS to Advance OpenC2 Standard for Automated Defense Against Cyber-Attacks."

Third Public Review Of the OpenC2 Specifications. The third public review of the OpenC2 TC's three specifications runs 13-21 June 2019. Information about the public review and links to the documents are here.

A high level overview of OpenC2 featuring insights from the Technical Director of NSA's Capabilities Directorate can be viewed at OpenC2 Overview.

You may join the OASIS OpenC2 TC at any time. Contact join@oasis-open.org for more information.


Overview

The OpenC2 TC was chartered to draft documents, specifications, lexicons or other artifacts to fulfill the needs of cyber security command and control in a standardized manner. The Technical Committee will leverage pre-existing standards to the greatest extent practical, identifying gaps pertaining to the command and control of technologies that provide or support cyber defenses. The TC will base its initial efforts on artifacts generated by the OpenC2 Forum, a community of cyber-security stakeholders that was facilitated by the National Security Agency; the Forum has published a language description document (RC4), actuator profiles, and open source prototype implementations.

For more information on the OpenC2 TC, see the TC Charter.

OpenC2 TC standing rules can be found under Additional Information.


Subcommittees

The following subcommittees are active in the OpenC2 TC:


TC Liaisons

No TC Liaisons have been announced for this TC.


TC Tools and Approved Publications

  • OpenC2 Resources -- a "Table of Contents" in a Google Document
  • TC Wiki
  • Version Control (GitHub Repositories):
    • openc2-jadn - Specifying a vocabulary to describe the meaning of structured data, to provide hints for user interfaces working with structured data, and to make assertions about what a valid instance must look like.
    • openc2-transf-odxl - This specification describes the use of the Open Data Exchange Layer (OpenDXL) as a transport mechanism for OpenC2 messages.
    • openc2-transf-mqtt — This GitHub repository supports development of content and change tracking for the OpenC2 MQTT transfer specification as new working draft level revisions are created and the associated CSDs mature.
    • openc2-oc2ls — A repository used to propose and track changes to the OpenC2 Language Specification as new working draft level revisions are created and the associated CSDs mature
    • openc2-usecases — Repository for submitting and reviewing OpenC2 use cases relevant to TC work, originally supporting the OpenC2 Language Subcommittee
    • openc2-apsc-stateless-packet-filter — A repository to provide configuration management and to aid in the development of the first generation OpenC2 firewall profile
    • openc2-impl-https - A repository used by TC members to propose and track changes to the OpenC2 HTTPS implementation specification.
    • openc2-cap - A repository for use by TC members to collaborate on development of OpenC2 "cap" profiles (custom actuator profiles).
    • openc2-glossary — A repository to support development of an OpenC2 Glossary as one of the TC's chartered deliverables

Technical Work Produced by the Committee

The TC is actively developing three related specifications:

  • OpenC2 Language Specification v1.0 — The OpenC2 Language 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. (CSD07 was approved at the October 2018 TC meeting, publication is pending.)
  • Open Command and Control (OpenC2) Profile for Stateless Packet Filtering Firewall Functions v1.0 — 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 Open Command and Control (OpenC2) command set. (CSD04 was approved at the October 2018 TC meeting, publication is pending.)
  • Specification for Transfer of OpenC2 Messages via HTTPS v1.0 — 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. (CSD03 was approved at the October 2018 TC meeting, publication is pending.)

The links above point to the latest available version of each specification in HTML format.


OASIS TC Open Repositories Sponsored by the Committee

OASIS TC Open Repositories:

  • openc2-custom-aps - A GitHub public repository for collaboratively developing OpenC2 Custom Actuator Profiles
  • openc2-lycan-python — A GitHub public repository for development of a python library to transform between data-interchange formats (such as JSON) and python language objects
  • openc2-lycan-java — A GitHub public repository for development of a java library to transform between data-interchange formats (such as JSON) and java language objects
  • openc2-lycan-beam — Developing a collection of applications and libraries, coded in languages that run on the BEAM virtual machine (e.g., erlang, elixir), for the purpose of implementing OpenC2
  • openc2-compatibility — Supporting the capture of OpenC2 core design principles and development of implementation guidelines so that implementers can agree on language and protocols to build interoperable systems
  • openc2-ocas — OpenC2 API Simulator erlang/OTP application designed to demonstrate and exercise the OpenC2 specification
  • openc2-yuuki — Yuuki is a python package for building an OpenC2 proxy using multiple dispatch on type with updating of actuators without interrupting the operations of the orchestrator or other actuators
  • openc2-pub-sub-on-bsd — A prototype reference implementation that demonstrates OpenC2 working within a pub/sub environment
  • openc2-jadn — Supports Development and maintenance of JADN (JSON Abstract Data Notation), a JSON document format for defining abstract schemas
  • openc2-orchid — OpenC2 proxy built in Django to provide a simple, modular API accepting OpenC2 commands and converting them into Python actions
  • openc2-iacd — Supports development of a Java OpenC2 implementation which implements fifteen OpenC2 actions issued to nine actuators
  • openc2-reactor-master — A feedback-driven GUI master/actuator orchestration framework for the OpenC2 language, written in Python
  • openc2-reactor-relay — A simple, modular API for accepting OpenC2 commands and converting them into Python actions

Expository Work Produced by the Committee

There are no approved expository work products for this TC yet.


External Resources

Although not produced by the OASIS OpenC2 TC, the following information offers useful insights into its work.

External resources have not yet been identified.


Mailing Lists and Comments

openc2: the discussion list used by TC members to conduct Committee work. TC membership is required to post, and TC members are automatically subscribed. The public may view the OASIS list archives, also mirrored by MarkLogic at MarkMail.org.

openc2-comment: a public mailing list for providing feedback on the technical work of the OASIS OpenC2 TC. Send a comment or view the OASIS comment list archives, also mirrored by MarkLogic at MarkMail.org.


Press Coverage and Commentary


Additional Information

The OpenC2 Technical Committee has adopted four standing rules:

SR-1: Suspension Of Standing Rules For The Duration Of The Meeting

  1. The rules of OASIS or Roberts Rule of Order cannot be suspended as they are not standing rules and always apply.
  2. During the course of a meeting, a standing rule may be suspended for the duration of a meeting. A motion to suspend a standing rule is not debatable and must be called to question immediately.
  3. The rule will be suspended if any of the following criteria are met:
    • By a vote of 2/3 majority of the voting members present without prior notice
    • By a simple majority vote of the voting members present with prior notice

SR-2: Consideration Of Artifacts Presented By A Subcommittee To The Committee As A Whole

  1. All artifacts must be provided to the Executive Secretary no later than seven business days prior to the meeting of the technical committee. The topic may be added to the agenda upon approval of the co-chairs or by proposal by members of the TC as described in Rule Three of these standing rules. If approved as an agenda item, the executive secretary will provide the artifacts to the members of the TC no later than three business days prior to the meeting of the technical committee.
  2. Prior to consideration, the chair will call for objections.
  3. Any member present may object. An objection must include a brief reason for the objection.
  4. Any other member present may support one or more objections.
  5. If a threshold of 25% or more of the members present object, then the committee will take it as sufficient cause to send the artifact back to the subcommittee for further deliberation.
  6. If the threshold is not met, then a motion to consider the artifact may proceed.
  7. If the artifact is called to question, then the voting members present may accept, reject or send the artifact back to the subcommittee for further deliberation.

Consideration Of Agenda Items For Committee Meetings

  1. For items that are not artifacts as referenced in rule two, all members may propose agenda items to the technical committee by providing a summary of the item to the executive secretary no later than five days prior to the meeting.
  2. All agenda items are subject to the approval of the co-chairs.

SR-4: Election and Term of OpenC2 Co-chairs

  1. The Technical Committee (TC) and each subcommittee shall elect two co-chairs for a 24 month term.
  2. The period of each co-chair shall be offset by 12 months.
  3. The TC shall hold open elections in the month of March during the during the regular business meeting.
  4. All TC members (to include the incumbent co-chairs whose terms are up) are eligible for nomination for an office.
  5. In the event of a vacancy (such as a co-chair stepping down prior to the conclusion of their term), a replacement will be elected to complete the term.

SR-5: Authority to Create CSD / PRD Ballots

The TC authorizes the TC co-chairs to submit a Working Draft document that has the general consensus of the associated subcommittee for electronic ballot to be a Committee Specification Draft or a Committee Specification Public Review Draft.


Providing Feedback: OASIS welcomes feedback on its technical activities from potential users, developers, and others to better assure the interoperability and quality of OASIS work.