Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Observable Datatype's relationship to Observable Objects #32

Open
mikeradka opened this issue Oct 2, 2023 · 2 comments
Open

Observable Datatype's relationship to Observable Objects #32

mikeradka opened this issue Oct 2, 2023 · 2 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@mikeradka
Copy link
Contributor

mikeradka commented Oct 2, 2023

Originated from ocsf-schema PR ocsf/ocsf-schema#807

I believe there is an important relationship between the observable datatypes and how the observable objects are identified.

For instance, I believe the OCSF translator looks at the datatype, and when the datatype of a given object matches an observable type, it identifies that object as an observable.

Therefore, removal of an observable datatype from an object could be a breaking change.

We should find some way to work this into our documentation (and our process)

@mikeradka
Copy link
Contributor Author

mikeradka commented Oct 2, 2023

  1. I tested this locally by translating an event with observables using a schema.json where the user object was of datatype username_t:
$ ocsf-cli -p WinEventLog -R rules -r rule-4624-m -S schema-test1.json -o data/4624_0.event | jq -S .observables

...
{
    "name": "user",
    "type": "User",
    "type_id": 21
  },
  {
    "name": "user.name",
    "type": "User Name",
    "type_id": 4,
    "value": "iiwu"
  },
  {
    "name": "logon_process",
    "type": "Process",
    "type_id": 25
  },
...
  1. Next, I removed the username_t as the datatype for the user object, and translated the same event with observables using the new schema.json:
$ ocsf-cli -p WinEventLog -R rules -r rule-4624-m -S schema-test2.json -o data/4624_0.event | jq -S .observables

...
{
    "name": "user",
    "type": "User",
    "type_id": 21
  },
  {
    "name": "logon_process",
    "type": "Process",
    "type_id": 25
  },
...

The result: when removing the datatype username_t from the user object, the 'nested' observables (in this case user.name) are not identified.

This leads me to conclude that removing an observable datatype from an object qualifies as a breaking change, as an observable datatype is required for nested observables.

@mikeradka mikeradka self-assigned this Oct 2, 2023
@mikeradka mikeradka added the documentation Improvements or additions to documentation label Oct 2, 2023
@pagbabian-splunk
Copy link
Contributor

We should add this to the breaking changes restrictions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants