-
Notifications
You must be signed in to change notification settings - Fork 144
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
Expand observables
data types, add Name & ID pairs
#960
Comments
observables
data types, add Name & ID pairs (and vice-versa)observables
data types, add Name & ID pairs
Good suggestions / issue, I will add to this week's call agenda (2/13/24). |
My notes from this topic on today's call:
There will be a follow up discussion at 10a PT tomorrow, Feb 14th, to discuss how to proceed. |
Based on notes from today's call (14 FEB 24 @ network activity) will modify #961 and spin off a new PR to add observable IDs to |
Two things. First, the OCSF server needs to be updated to support this new observable capability. I can start that work once we settle on the details. Second, we need to support observable values other than strings somehow. The Here are some possible paths forward: Option 1: In the observable, the Option 2 (much harder): Come up with a way to represent non-string values in the observable object. Here are some variations we might consider:
|
A third option is to add union types, e.g. |
That kind of more explicit union type is interesting, though adding a "tag" to indicate the actual type is probably helpful -- especially if this helps non-JSON encodings. https://en.wikipedia.org/wiki/Tagged_union Paul and I had a chat about this, and we decided to start with converting non-string attributes to string. Let us know if you actually do need the observable value to be of the original type. Specifically, are you OK with |
Converting port to strings in observables satisfies Query's need. |
@query-jeremy : This should be solved now after the recent PR merges. |
Currently the scalar values represented in
observables.type_id
have several "ID" types and several "Name" types without their pair being added which may matter to a source system. Additionally, there are data types defined indictionary.json
that do not have an Observable but should,port_t
andsubnet_t
.My proposal is as follows (PR to come from @query-jeremy or myself)
Add
type_id = 11
toport_t
and addtype_id = 12
tosubnet
Create the following data types and
type_id
pairs, in [brackets] will be the object attributes where the data type would be updated.user_id_t
:type_id = 13
[user.uid
,user.alt_uid
] - this is to match against Username for UPNs, ARNs, and other GUIDs for users in identity/directoriesgroup_name_t
:type_id = 14
[group.name
] - net-new type to denote a variety of "groups" be it IAM, network security or hierarchy. There is an argument to be made to includeorganization.name
andorganization.ou_name
as wellgroup_id_t
:type_id = 15
[group.id
] - pair to group name with an argument to addorganization.id
andorganization.ou_id
vulnerability_id
:type_id = 16
[cve.uid
,cwe.uid
] - could make the argument to also map tovulnerability.title
as a quick reference to any identifier of a form of a vulnerability, weakness or bug such as CVE, CWE, GHSA, etc.process_id_t
:type_id = 17
[process.pid
,process.tid
,process.uid
,process.parent_process.pid
,process.parent_process.tid
,process.parent_process.uid
] - a pair to process name that also accounts for the various identifiers in theprocess
objectresource_name_t
:type_id = 18
[resource.name
,device.name
,endpoint.name
] - a pair to Resource ID, any name, label or value from a "name" tag on a resource, computer, endpoint, etc.user_agent_t
type_id = 19
[http_request.user_agent
] - used as an indicator semi-frequently and adds to the depth of network-related observablesI also noticed that Observables Description and type_id change #891 there was a mention to change some of the values there into scalars such as Location, Registry Key, Registry Value and Container that we could take up to add as scalar types directly after
type_id = 30
The text was updated successfully, but these errors were encountered: