-
Notifications
You must be signed in to change notification settings - Fork 419
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
[RFC] Create Threat Fieldset - Stage 2 Proposal #1293
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Leaving observations here that I couldn't easily add into the file diff:
- I noticed in both usage examples the
threat.indicator.type
field is an array. Is that expected? If so, let's update the field definition to reflect. - I originally proposed using
wildcard
forthreat.indicator.description
. Since we're reevaluatingwildcard
usage in ECS for now, I suggest we revert tokeyword.
threat.indicator.dataset
has a typo in theExample
column:theatintel
- For
threat.indicator.marking.tlp
, I realized the examples here are using all caps, but the expected values in the field's description are only capitalizing the first letter (RED
vs.Red
). The TLP convention appears to use all caps for TLP colors. Do we imagine most users will search TLP designators using all caps? Do we want to explicitly specify a convention for the field or leave it flexible? - Reviewing the second example mapping,
Adding threat intelligence match/enrichment to another document which could be in a source event index or signals index.
, it looks like theindicator.matched.*
fields could be a list. If these values could be a list, do we see these fields residing under anested
object? - @peasead @dcode, you've both contributed to the proposal extensively, so feel free to also list yourselves as authors in addition to SMEs under
People.
😃
|
…reate-threat-stage-2
As I see it, there are two proposed use cases for this fieldset: the indicator data themselves, and the enrichment of indicator/match data on extant event data. Defining a common mapping for both uses has several options/tradeoffs that should be discussed:
|
Thanks, @rylnd that was my understanding as well and just wanted to double-check. @ebeahan if you were asking if |
In the second example mapping, the
The list of fields in the proposal defines
I wanted to understand better which direction to take and make sure that's captured correctly. Right now, the field definitions don't reflect that these fields are either a list or a nested object: - name: indicator.matched.atomic
level: extended
type: keyword
short: Indicator atomic match
description: >
Identifies the atomic indicator that matched a local environment endpoint or network event.
example: example.com
- name: indicator.matched.field
level: extended
type: keyword
short: Indicator field match
description: >
Identifies the field of the atomic indicator that matched a local environment endpoint or network event.
example: file.hash.sha256
- name: indicator.matched.type
level: extended
type: keyword
short: Indicator type match
description: >
Identifies the type of the atomic indicator that matched a local environment endpoint or network event.
example: domain-name |
Briefly capturing a few notes from recent discussions around this work:
|
Co-authored-by: Eric Beahan <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the move from wildcard to keyword is the right one for threat.indicator.description, and acknowledge the TLP value updates. Also pleased to see the author suggestions incorporated.
Good context to capture to some extent in the RFC proposal doc still, I think.
Yes, we should capture that intent. I imagine it would be implemented like the other proposed field nestings (example)? Can we update the current examples or add another example demonstrating how these fields are intended to be used? |
@rylnd can I help with anything here? |
This is used to preserve the event fields of the original indicator event in the case of said indicator enriching another event.
@peasead @ebeahan as discussed, I added the This brings us back to the point about documentation of use cases: with the exception of the above, I believe that the existing use case documentation, introduced in #1127, sufficiently describe the situation. If these RFCs are meant to be the source for that type of usage data, then I think we're good here! |
@ebeahan to this point, I think the issue that I'm struggling with is that the mappings could be different depending on the usage. I tried to break this down in a previous comment but I haven't seen any responses. |
Ryland, I think both use-cases defined are applicable - what other use-cases do you anticipate? |
fixed a formatting issue for indicatory.type
I feel like we're ready, but I'll wait for @rylnd and @devonakerr to voice any dissent. |
No dissent, I'll start my review. |
* Adds initial Stage 1 information Much of this was taken from what was deleted from #1293 and is in various stages of completion. Will annotate and iterate on the PR. * Undo noisy markdown style changes * Add Stage 1 PR link * Link to filebeat module Co-authored-by: Eric Beahan <[email protected]> * Link to public kibana issue * Fully qualify our proposed fields table * Adds/updates missing enrichment fields in YML form * Update enrichment pipeline pseudocode * Removes unnecessary field renames, as fields no longer conflict * Adds a clause for setting a default array value for `threat.enrichments` * Remove resolved TODO This is in fact redundant, but still useful. * Add event fields to enrichment fieldset * Add Devon K. as RFC sponsor * Add event.reference to example enrichment document This provides a more complete example. * set advancement date for stage 1 Co-authored-by: Eric Beahan <[email protected]> Co-authored-by: Eric Beahan <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All my comments have been addressed. I defer to @devonakerr for official approval, but LGTM!
…into create-threat-stage-2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
The documentation for the `indicator.type` field lists `x-509-certificate` as an expected value. However, the correct STIX 2.0 Cyber Observable type name for X509 Certificates is `x509-certificate`.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
I'll set the date and merge 🎉 🚢
make test
? NAmake
and committed those changes? NACC
Preview of the markdown proposal