-
Notifications
You must be signed in to change notification settings - Fork 143
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
Addressed a few issues with recent Script Activity PR. #1198
Conversation
I would suggest to add "is_truncated" instead of "is_script_truncated" to a dictionary. Then this attribute can be used in multiple classes/objects to indicate truncation not only in scripts but also in payloads, logs, command lines etc. |
Thanks for the suggestion. This was also suggested during an internal discussion on this issue. I can see the usefulness of a general purpose attribute like First I should clarify that the attribute I'm adding here is actually But maybe I'm overthinking it and I don't have a very strong opinion either way. If other reviewers think that a generic |
This is an interesting topic to discuss. Note that, an attribute called However, I think the specificity is quite important for this attribute. As exemplified in this PR's case, what is being truncated is quite important. Also, as evident here, we cannot always rely on the context provided by the corresponding object as it may not be sufficient to help distinguish. We might risk creating a bunch of Thoughts? @pagbabian-splunk @davemcatcisco @irakledibm |
I think that it is a fundamental problem with OCSF. An attributes defined in a dictionary should represent a common generic values, such as is_truncated with associated common properties, such as boolean_t, is_array etc. Event/Object/Profile attributes should point to those dictionary attributes, however they may have an alias, such as is_script_content_truncated. This way a dictionary will not blow out of proportions and still address different use cases. |
Agree about aliases. OCSF could easily add the meta schema alias which I’ve
always wished for. But an alias for a consumer or a data table is a
different column name and if it always collapsed to its root name it would
defeat the purpose and lose the specific name. The system consuming would
need to do a translation (like Splunk does for its aliases at read time).
In the end a particular OCSF event is a static entity. An attribute without its surrounding context will be as specific as its name implies. A consumer would need a more specific predicate that includes the class name or event type. We don't serialize object names in events so object context is lost.
Some further thought - this is particularly a problem with `boolean` attributes, since the values are limited and themselve generic. When we have enums that are "See specific usage" the values are specific to the class or object, and at least in a query can be specific in most cases. For `string` types less so but their values can have great variance.
We just have been reviewing another generic `boolean`, `is_deleted` which isn't too different from `is_truncated`. We aren't very consistent in other words. The problem is more acute when within objects, as both `is_deleted` (File) and `is_truncated` (Script) would have been.
Paul (from my mobile device)
…On Fri, Oct 11, 2024 at 8:52 AM irakledibm ***@***.***> wrote:
I think that it is a fundamental problem with OCSF. An attributes defined
in a dictionary should represent a common generic values, such as
is_truncated with associated common properties, such as boolean_t, is_array
etc. Event/Object/Profile attributes should point to those dictionary
attributes, however they may have an alias, such as
is_script_content_truncated. This way a dictionary will not blow out of
proportions and still address different use cases.
—
Reply to this email directly, view it on GitHub
<#1198 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AS5LBZQARB3BXW3TZMFEH43Z27X4VAVCNFSM6AAAAABPSB4OKOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBXGY4TENRYGU>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
One thought is to distinguish between classes and objects, such that within objects, the object name is carried, while within classes, the generic name is used (because the event is always of a specific |
Did a quick check: almost all of our |
Great discussion! But do we have a conclusion? Do I change FWIW, I still think that in this case, an |
Just to make a more general comment in the spirit of the discussion, was consideration ever given to supporting attributes that are scoped to a specific object (or local to that object if that phraseology is clearer)? I think this would avoid a lot of the issues we see with naming things. |
I think we would need to think about how to do that, likely we would need to change the framework as today all attributes need to be pre-defined in the dictionary. In fact, the way we make them local is by embedding the scope into the name, as we are trying to do here. Given that this attribute, Note that from a self-documenting standpoint, |
Signed-off-by: Dave McCormack <[email protected]>
Attn reviewers (@Aniak5, @zschmerber, @pagbabian-splunk, @floydtree, @mikeradka): As just discussed on the weekly call, the discussion in this PR is regarded as finalised, and this PR can now be merged once it has the necessary approval. I have just fixed conflicts that had arisen. Thanking you in advance. |
Related Issue:
#1197
Description of changes:
As described in the issue but to recap:
is_script_truncated
is_script_content_truncated
flag.type_id
enum in thescript
object.