+1 in agreement with Sean’s assessment.
I will restate the FireEye position again. Based on both our operational experience (currently generating, exchanging, analyzing, consuming and presenting this data amongst a large FireEye ecosystem and externally to customers/partners) and our experience with
scores of developers writing code against this data in dozens of systems we very strongly suggest option #1, strongly oppose option #3 and very strongly oppose option #2.
The names of properties in these standards are for human intuition and understanding. They are not for machines as machines would be fine with just using numbers for the properties.
We would assert that option #1 is far and away the most intuitive and clear naming approach for the information we are trying to capture/convey. The vast majority of developers or consumers of STIX information when handed a Malware object with a malware_type
property are going to immediately understand what that property is intended to convey. The same cannot be said for labels, tags or classifications. I say this from experience of having to explain the current structure to developers many times.
The current approach of using labels for this info and for user-defined ad-hoc labeling/tagging has two main issues we are trying to overcome:
1. By munging the object “type” (e.g., malware_type) content into the ad-hoc list there is no way for consumers of the data to inherently know which “labels” represent specific object “type” info and which are user
2. The name is very ambiguous and very non-intuitive for conveying a specific structured assertion of what type of object it is (malware_type=”backdoor”, indicator_type=”IP blacklist”, etc.). This leads to confusion
for producing developers to know where to put object “type” info as well as confusion for consuming developers or users to know where to look for such info and how to distinguish it from other info.
Option #1 presented here clearly solves both of these issues.
Option #2 solves the first issue (though will require a developer to really read the spec to know how) and does not solve the second issue. In fact, it actually makes the second issue worse as now there are two ambiguous non-intuitive terms being used heightening
the likelihood of confusion.
Option #3 solves the first issue but does not solve the second issue. While it does not increase the confusion as option #2 does, it still uses an ambiguous and non-intuitive term that has clear and conflicting semantic meaning to entire sub-portions of the
I would also like to remind people that not every object has one of these vocabs that cause the issue. So you can’t, as Jeff mentioned, always look in each object and expect to find the same data, because sometimes it’s not there.
My preference would be for 1, 2, 3. I don’t like using the word classifications, though as John said, they would all work.
Did we ever officially agree if we were going to make these (labels/tags/classifications, whatever they wind up being) all optional? Currently, the ones with defined vocabs are required.
I wanted to bump this discussion on the “labels” topic being tracked as issue 37 . We discussed it on the May 8 working call  but unfortunately still don’t seem to be at consensus on this topic. It’s a blocker for releasing the STIX 2.1 CSD so getting
to a resolution is important.
Along those lines, one other option came up on Slack recently: while we typically avoid using “classification” because of connotations for the government community (and those supporting them), the feeling maybe we should reconsider it. Given that new option,
to restate the proposals:
1. *_types (indicator_types, malware_types, threat_actor_types, etc.) for the categorizations/types, and use “labels” for user-defined tagging
2. Keep these values from the vocab in “labels” (as they are now), add a new property called “tags” to capture the user-defined tagging
3. Use the name “classifications” for the categorizations/types, and use “labels” for user-defined tagging
We could really use more input on these, in particular if you’re now open to different options or have not yet weighed in. I’d suggest we just list an order of preference to see if maybe there’s a compromise that gets us somewhere. My order of preference is
1, 3, 2 but any of them seem fine.
Jeff, I think you hit on a really important point that we need to all remember. STIX is a serialization format for COMPUTERS. What you display in the UI is independent. So proposal 2 really seems like
a better solution for our design principles.
From: Mates, Jeffrey CIV DC3/TSD <Jeffrey.Mates@dc3.mil>
Sent: Friday, April 27, 2018 11:41:04 AM
To: Terry MacDonald; Sean Barnum
Cc: Bret Jordan; Wunder, John A.; email@example.com
Subject: RE: [Non-DoD Source] Re: [cti-stix] Re: [EXT] [cti-stix] New property names for previous label properties
I’m strongly in favor of having a single named field for this (proposal 2). The primary purpose that was being
discussed for this was to allow display information to be sent using STIX for specific products. As a programmer it’s a lot easier for me to know that every object type will have the same field that I should query for if I want this value rather than having
to fill in a special configuration entry for each and every STIX object type.
That way when a STIX viewer application reads an entry it knows it always needs to look at 2 fields to determine
what icon to display.
Look at tags and see if any match my icon rules. If one does use it, if more than one does decide which to use.
Look at the TLO and use the default icon for this type. If it is an unknown TLO use a fallback icon.
If we go with options that make more sense to a human then it ends up requiring an additional lookup step:
Lookup the key for tag names and see what field or fields to use.
If a tag name exists for this type see if any match my icon rules. If one does use it, if more than one does decide which to use.
Look at the TLO and use the default icon for this type. If it is an unknown TLO use a fallback icon.
Jeffrey Mates, Civ DC3/DCCI
Defense Cyber Crime Institute
On Behalf Of Terry MacDonald
Sent: Thursday, April 26, 2018 2:11 AM
To: Sean Barnum <firstname.lastname@example.org>
Cc: Bret Jordan <email@example.com>; Wunder,
John A. <firstname.lastname@example.org>;
Subject: [Non-DoD Source] Re: [cti-stix] Re: [EXT] [cti-stix] New property names for previous label properties
I also strongly support #1, but with the caveat that we don't always user _types if another word makes more sense e.g. roles for the Identity object. I like the list that Jason posted in the
issue comments, with a slight tweak as suggested by Sean:
Threat Actor: threat_actor_types
Terry MacDonald | Chief Product Officer
On 25 April 2018 at 10:11, Sean Barnum <email@example.com> wrote:
I strongly support #1 as it meets what is needed and is by far the most intuitively clear on what it means. I would suggest the large majority of people would understand what it means.
I would strongly disagree with #2. I would suggest that it would be found almost universally to be confusing and unclear on what labels are, what tags are and what the difference is. “Labels”
is far too general to convey the specific meaning of a specific type of something (malware, threat actor, indicator, etc).
I like #2, this is what we had originally in STIX 2.0 before we merged them.
We discussed this on the working call and had a quick straw poll. The options we discussed were:
1. *_types (indicator_types, malware_types, threat_actor_types, etc.): 5 votes
2. Keep these values from the vocab in labels (as they are now), add a new property called tags to capture the user-defined tagging: 4 votes
3. Something else: 0 votes
4. Abstain: 5
If you haven’t weighed in on this topic yet, can you please shoot a message to the list to help us decide? It can be just a quick “I like #3”, or it can be something with a longer description, or it can be a new suggestion to consider. You can also comment
We need to resolve this issue before we can finish CSD01 so any feedback is appreciated.
Agree with Bret’s issues. I posted my comment to the github repo and suggested an alternative.
Per Issue 37 (https://github.com/oasis-tcs/cti-stix2/issues/37),
the TC has decided to stop using the labels property for the default vocabularies we have on some object types that generally categorizes the object. Given that change, we need to name the new properties on each of the objects that the change applies to.
After hearing from Jason on Slack, I captured some potential names in the last comment on that github issue (https://github.com/oasis-tcs/cti-stix2/issues/37#issuecomment-379361610).
Can you please take a moment and review those suggestions? If you agree, please +1 my comment or respond over e-mail. If you disagree and have a different suggestion, please comment in Github or respond over e-mail. I’d like to get at least a few people to
positively agree to these decisions…especially if you were a proponent of making the change called out in the issue.
You can find the vocabs themselves in Part 1 (https://docs.google.com/document/d/1ShNq4c3e1CkfANmD9O--mdZ5H0O_GLnjN28a_yrEaco/edit)
and the definitions for how they’re used in the objects in Part 2 (https://docs.google.com/document/d/1bkMmU1PxlwlAwjrMmyWV147rvLcRs2x62FicHbpH2gU/edit).
Just search for the object name.
Many of the suggestions are “_type”…just note that there’s already a “type” property on the objects, so it would lead to both a required “type” property and a required “indicator_type” property on Indicator, for example. That
may be fine, it was just pointed out already in Slack so I wanted to bring it up here.
This email and any attachments thereto may contain private, confidential, and/or privileged material for the sole use of the intended recipient. Any review, copying, or distribution of this
email (or any attachments thereto) by others is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email and any attachments thereto.
This email and any attachments thereto may contain private, confidential, and/or privileged material for the sole use of the intended recipient. Any review, copying, or distribution of this email (or any attachments thereto) by others is strictly prohibited.
If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email and any attachments thereto.
This email and any attachments thereto may contain private, confidential, and/or privileged material for the sole use of the intended recipient. Any review, copying, or distribution
of this email (or any attachments thereto) by others is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email and any attachments thereto.