I was meaning that if we had this object:
"name ": "exploit",
And the object was corrupted in transit and became
"name ": "exploit",
Having the illegal fields ignored means that the vocab field is invalid. The whole name_ext object is invalid as all the required fields
aren’t present, so that ultimately the only bit that gets through the parser is:
"name ": "exploit"
Which is different to what the producer was meaning to have.
I know it is an edge case and one that only warrants a small amount of thought, but we will need to ensure that the ambiguity is removed
in some way in a way that negates this from happening. It could be as simple as saying exactly what Bret suggested – that the default vocab chosen must be as close approximation as possible to the custom vocab selection.
Senior STIX Subject Matter Expert
SOLTRA | An FS-ISAC and DTCC Company
+61 (407) 203 206 |
From: Jordan, Bret [mailto:email@example.com]
Sent: Saturday, 30 January 2016 8:40 AM
To: Terry MacDonald <firstname.lastname@example.org>
Cc: Jason Keirstead <Jason.Keirstead@ca.ibm.com>; email@example.com; Eric Burger <Eric.Burger@georgetown.edu>
Subject: Re: [cti] Missing MTI - what to do?
Not sure I follow. If your tool does not support custom vocabs then you will not have the data in them. I would suggest as a best practice people should always, when possible, pick a fallback option instead of using "other".
Sent from my Commodore 64
This could be problematic for the vocabs extensions if the _ext object is used (custom vocab) and the extension object field is corrupted and ignored. It means that the logic will not see that the extension object exists, and will just use the value selected
within the default vocab...
Maybe we could avert this by specifying a 'custom-vocab' option for all enums to explicitly specify that there is an extension to the custom vocab?
I can see this happening a lot. And the nice thing is most JSON parsers will just silently drop fields it does not understand. I am thinking it might actually be hard to figure out if there is in fact extra data there that it does not
know what to do with.
The way I see this working is vendors communications in side a closed system (network / eco-system) may use all kinds of extra stuff. Then at the board TAXII server, it would get stripped out.
Bret Jordan CISSP
Director of Security Architecture and Standards | Office of the CTO
PGP Fingerprint: 63B4 FC53 680A 6B7D 1447 F2C0 74F8 ACAE 7415 0050
"Without cryptography vihv vivc ce xhrnrw, however, the only thing that can not be unscrambled is an egg."
As someone who is *extremely likely* to have to make use of both provisional portions of future versions of our specifications and also proprietary enhancements for internal use
- I would strongly advocate for option (b) (ignore the field). We need to be able to add fields to the JSON and have them be silently ignored if unsupported by the receiver.
STSM, Product Architect, Security Intelligence, IBM Security Systems
Without data, all you are is just another person with an opinion - Unknown
<graycol.gif>Eric Burger ---01/29/2016 08:28:38 AM---There are only three choices if one is missing or has an odd MTI field: Fail the transaction / rejec
From: Eric Burger <Eric.Burger@georgetown.edu>
To: "firstname.lastname@example.org" <email@example.com>
Date: 01/29/2016 08:28 AM
Subject: [cti] Missing MTI - what to do?
Sent by: <firstname.lastname@example.org>
There are only three choices if one is missing or has an odd MTI field:
Fail the transaction / reject to document
Ignore the field
Fix the field if you can
I would offer we say what we mean. There are two places to do that. The first is in the spec itself. For example, if “id” is missing, I think we would say in the spec the serialization is malformed and return an error (or silently
go away). The second is to tag the transaction, perhaps at the TAXII level, with what you want to have happen. For example, if I have private extensions, I can tag them as something you can freely ignore or drop. Conversely, if I have extensions or optional
fields that you really need to understand to process the message, I can tag them as something that if you do not recognize them, fail the document so I know you do not know.
For an example of this working in email system gateways, see
On Jan 27, 2016, at 10:57 AM, Paul Patrick <email@example.com>
As a side note, I’ve not seen a statement about what the appropriate behavior should be when a JSON MTI compliant consumer receives a document with a field it doesn’t understand (maybe due to a typo or somebody tried to make a
private extension). But if the specified behavior was to ignore the field rather than fail the processing of the entire document, then under the situation where a JSON-LD language binding document was inadvertently sent to a consumer that only excepts JSON
MTI language binding, the behavior would still allow the document to be processed as a compliant JSON MTI document since the @nodes and @fields would be ignored or skipped.