-
Notifications
You must be signed in to change notification settings - Fork 147
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Add several new observable types #1326
base: main
Are you sure you want to change the base?
Conversation
9ca7d3e
to
14abf4d
Compare
--------- Signed-off-by: Michal Dobisek <mdobisek@cisco.com>
--------- Signed-off-by: Michal Dobisek <mdobisek@cisco.com>
--------- Signed-off-by: Michal Dobisek <mdobisek@cisco.com>
--------- Signed-off-by: Michal Dobisek <mdobisek@cisco.com>
--------- Signed-off-by: Michal Dobisek <mdobisek@cisco.com>
14abf4d
to
30632a1
Compare
The compatibility validation complains here, because some attributes changed from I am not sure what is the correct handling of such case - should some label be added to indicate the breakage is expected?
|
@MiDoCisco This was a topic of discussion in the yesterday's weekly community call. While I agree, since we aren't changing the base/physical type and only introducing a new logical type, it technically should not be a breaking change. However, @hmadison had a few concerns (I'll let him expand on those here), that we need to deliberate over before we finalize framework's strategy about such changes going forward. Now, coming to the specific outcome you are looking for in this PR, we can solve it without introducing a new logical type - You just need to add observable definition in the core
By doing this, all instances of |
Thanks @floydtree for the explanation and proposal. I have initially planned to make the
and it seemed to me that it would be wrong to define all of them as single observable. But if this worry would not be shared by others, I am happy to do as you suggest. |
My general concern is that if we are going from a While in the case of |
Thanks @hmadison so if I understand correctly, you are more after opening discussion/defining guidelines than requesting specific action for this PR (like avoid the new types in favour of marking generic |
We are looking at this PR in particular, and this one data type promotion in particular. It's very clear that promoting any base type to some new data type will be hard to corral and likely be breaking. Even for this one, Hence, we can't generally change the validator for |
Related Issue: N/A
Description of changes:
We are populating the observables with values which are notable for correlation or display to the users. There are several values, which we think make good observables, but are not marked as such. This PR tries to add them.
These are the details:
email.subject
,email.uid
andmessage_uid
as an Observable types -type_id: 39
,type_id: 40
and45
.process_entity.uid
as an Observable type -type_id: 41
file_path_t
as an Observable type -type_id: 42
and marked fields as this typelineage
dictionary attributeaffected_package.path
object attributefile.path
object attributeimage.path
object attributekernel.path
object attributemalware.path
object attributeprocess_entity.path
object attributeextensions/windows/reg_key_path_t
as an Observable type -type_id: 43
and marked fields as this typereg_key.path
object attributereg_value.path
object attributereg_value.name
as an Observable type -type_id: 44
I have updated CHANGELOG.md with the same granularity of the information it already uses, but it's not a "single-line" description. Should I reduce the detail to make it single line?
Note On Compatibility
There is a failing compatibility validator, as I changed some fields from
string_t
to the newfile_path_t
andreg_key_path_t
- as this seem to be the only way to mark several different fields as same observable. Since both old and new types are strings (the new one just adds semantics) I don't see how this could break type compatibility (e.g. in generated classes). But I am happy to learn about any concerns and also whether there is a better (more compatible) way to mark multiple fields with the same observable type.