Skip to main content

Produce and consume OpenC2 JSON messages

Project description

Lycan

Python Support Build Status Coverage Status

Lycan is an implementation of the OpenC2 OASIS standard for command and control messaging. The current implementation is based on the Language Specification v1.0.

Given the influence of STIX/CyBoX on OpenC2, this library is heavily based on the STIX 2 Python API internals. Property validation and object extension support aligns with STIX2 conventions and OpenC2 custom properties also support stix2 properties.

Installation

Install with pip:

$ pip install openc2

Usage

import openc2
import stix2

# encode
cmd = openc2.v10.Command(
    action="deny",
    target=openc2.v10.IPv4Address(ipv4_net="1.2.3.4"),
    args=openc2.v10.Args(response_requested="complete"),
)
msg = cmd.serialize()

# decode
cmd = openc2.parse(msg)
if cmd.action == "deny" and cmd.target.type == "ipv4_net":

    if cmd.args.response_requested == "complete":
        resp = openc2.v10.Response(status=200)
        msg = resp.serialize()

# custom actuator
@openc2.v10.CustomActuator(
    "x-acme-widget",
    [
        ("name", openc2.properties.StringProperty(required=True)),
        ("version", stix2.properties.FloatProperty()),
    ],
)
class AcmeWidgetActuator(object):
    def __init__(self, version=None, **kwargs):
        if version and version < 1.0:
            raise ValueError("'%f' is not a supported version." % version)

widget = AcmeWidgetActuator(name="foo", version=1.1)

OASIS TC Open Repository: openc2-lycan-python

This GitHub public repository ( https://github.com/oasis-open/openc2-lycan-python ) was created at the request of the OASIS Open Command and Control (OpenC2) TC as an OASIS TC Open Repository to support development of open source resources related to Technical Committee work.

While this TC Open Repository remains associated with the sponsor TC, its development priorities, leadership, intellectual property terms, participation rules, and other matters of governance are separate and distinct from the OASIS TC Process and related policies.

All contributions made to this TC Open Repository are subject to open source license terms expressed in the MIT License. That license was selected as the declared "Applicable License" when the TC Open Repository was created.

As documented in "Public Participation Invited", contributions to this OASIS TC Open Repository are invited from all parties, whether affiliated with OASIS or not. Participants must have a GitHub account, but no fees or OASIS membership obligations are required. Participation is expected to be consistent with the OASIS TC Open Repository Guidelines and Procedures, the open source LICENSE designated for this particular repository, and the requirement for an Individual Contributor License Agreement that governs intellectual property.

Statement of Purpose

Statement of Purpose for this OASIS TC Open Repository (openc2-lycan-python) as proposed and approved [bis] by the TC:

The purpose of this OASIS TC Open repository is to develop and maintain a python implementation of OpenC2, and to provide a python codebase to facilitate other prototype efforts. The python library is designed to support transformations between data-interchange formats (such as JSON) and python language objects.

The OASIS OpenC2 Technical Committee was chartered to address matters as they pertain to command and control of cyber defense technologies, and to maintain a library of prototype implementations.

Additions to Statement of Purpose

Repository Maintainers may include here any clarifications — any additional sections, subsections, and paragraphs that the Maintainer(s) wish to add as descriptive text, reflecting (sub-) project status, milestones, releases, modifications to statement of purpose, etc. The project Maintainers will create and maintain this content on behalf of the participants.

Maintainers

TC Open Repository Maintainers are responsible for oversight of this project's community development activities, including evaluation of GitHub pull requests and preserving open source principles of openness and fairness. Maintainers are recognized and trusted experts who serve to implement community goals and consensus design preferences.

Initially, the associated TC members have designated one or more persons to serve as Maintainer(s); subsequently, participating community members may select additional or substitute Maintainers, per consensus agreements.

Current Maintainers of this TC Open Repository

Feedback

Questions or comments about this TC Open Repository's activities should be composed as GitHub issues or comments. If use of an issue/comment is not possible or appropriate, questions may be directed by email to the Maintainer(s) listed above. Please send general questions about TC Open Repository participation to OASIS Staff at repository-admin@oasis-open.org and any specific CLA-related questions to repository-cla@oasis-open.org.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sim_openc2-1.1.0.tar.gz (27.4 kB view details)

Uploaded Source

Built Distribution

sim_openc2-1.1.0-py3-none-any.whl (31.7 kB view details)

Uploaded Python 3

File details

Details for the file sim_openc2-1.1.0.tar.gz.

File metadata

  • Download URL: sim_openc2-1.1.0.tar.gz
  • Upload date:
  • Size: 27.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for sim_openc2-1.1.0.tar.gz
Algorithm Hash digest
SHA256 0417bbc70024f2765d35c4e8dd96056943c6c6b671705a120e68534c4e5a22a3
MD5 ff7ecb215221833a92f67bffec696459
BLAKE2b-256 a17d91ce1b13b93bc8a7b4ea020a94298210488e2ba0a8741509fdf8b6cd7a5e

See more details on using hashes here.

File details

Details for the file sim_openc2-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: sim_openc2-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 31.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for sim_openc2-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 12e0f4ee9bfa21852ae6f314cce3f2a9e6bfdd27dbc51a5167782185e904d532
MD5 d012fd5e134820df53b3e4a83509a24e
BLAKE2b-256 5c22c505d398fc2740473cf8c22c20e9e3999589934cf4e7a091d8788933f914

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page