[RFC] Create Threat Fieldset - Stage 2 Proposal#1293
Conversation
ebeahan
left a comment
There was a problem hiding this comment.
Leaving observations here that I couldn't easily add into the file diff:
- I noticed in both usage examples the
threat.indicator.typefield is an array. Is that expected? If so, let's update the field definition to reflect. - I originally proposed using
wildcardforthreat.indicator.description. Since we're reevaluatingwildcardusage in ECS for now, I suggest we revert tokeyword. threat.indicator.datasethas a typo in theExamplecolumn: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 (REDvs.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 anestedobject? - @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.😃
Co-authored-by: Eric Beahan <eric.beahan@elastic.co>
|
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 <eric.beahan@elastic.co>
devonakerr
left a comment
There was a problem hiding this comment.
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 <ebeahan@gmail.com> * 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 <ebeahan@gmail.com> Co-authored-by: Eric Beahan <eric.beahan@elastic.co>
rylnd
left a comment
There was a problem hiding this comment.
All my comments have been addressed. I defer to @devonakerr for official approval, but LGTM!
…into create-threat-stage-2
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`.
ebeahan
left a comment
There was a problem hiding this comment.
LGTM!
I'll set the date and merge 🎉 🚢
make test? NAmakeand committed those changes? NACC
Preview of the markdown proposal