Skip to content

Roadmap

Joshua Brulé edited this page Oct 6, 2016 · 1 revision

Roadmap

Dispatch (@action)

It is not obvious how to support distributing the logic for multiple actions across multiple 'profiles' (.py files loaded in the proxy). Currently, yuuki.dispatch searches the contents of dir() for a var that is an instance of OpenC2Action whose name matches the requested action. This is not expected to scale cleanly.

One possibility is to explicitly expose the variable PROFILE in each profile file and change the decorator to:

@PROFILE.action(target="some:target")
def action_name(...

Or even more explicitly:

@PROFILE.action(name="action_name", target="some:target")
def any_function_name(...

Or implicitly bind all actions to the variable PROFILE, but keep the @action(name="action_name", ...) syntax

By gathering all action multimethods into a single collection per profile file, it will be straightforward to 'merge' them in the proxy (e.g. profile1.py contains the definition for DENY on target1, profile2.py contains the definition for DENY on target2).

This would likely be a breaking change, so it would be nice to get it right the first time.

Unit tests

Need to provide unit test coverage.

Other

  • logging support
  • improved debug shell
  • validators for commands and responses
  • framework for ALERT openc2 commands
  • more example profiles

Clone this wiki locally