-
Notifications
You must be signed in to change notification settings - Fork 9
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
Preservation of STIX content #262
Comments
Sent this to the mailing list copying here. The spec is very clear on this... if you are not the object producer, and yet you change the data in the object in any way when you retransmit, then you must generate a new ID for it. This includes dropping fields, adding fields, or any other change whatsoever.
TIPs and other systems that consume an SDO and then retransmit it later, but with different fields, MUST do so with new object IDs (which start over at version 1) - and ideally, a new created_by_ref (in the previous 2.0, interop tests, created_by_ref was required as part of interop) If a system is simply dropping fields and re-transmitting with the same ID, then they are not compliant with the spec. What a system that is not re-transmitting does internally with STIX after it is consumed, is totally out of scope of the spec, it is an implementation matter. |
Looking at the conformance section it is silent on what to do with optional properties. It only defines required properties. To address this in Section 12.1 the consumer conformance clause, we would need to add a statement that says that consumers MUST support the optional properties that are defined in this specification. However, that would be a material change. If we end up making material change, then we should do this as part of that. The proposed text would be something like:
|
If a source includes optional properties then they must be included if the entity that is redistributing them is doing so without recreating a new object with a new ID. For the original object, its ID and all properties (whether optional or not) the object in its entirety must be published as-is. This also includes any included extensions that might be added to the object also. This is the intent of the specification. Any deviation from this would be a problem for multiple reasons. |
Here is the response I sent to the email list.
|
We talked about this on the call today, and decided to push any changes to address this to a future release. |
The STIX WG discussed this issue and the duplicate today. The outcome of the discussion is that while the specification may not contain text that explicitly addresses the question, the intent of the specification is nonetheless clear, especially in light of this discussion. Please reopen this issue if you disagree. |
The spec is ambiguous with regards to what STIX content needs to be preserved across implementations.
The now deprecated section 11 says
Section 7.3 says
But they don't address other STIX content, such as predefined objects or optional properties.
A table was sent to the mailing list with a table outlining different possible scenarios on which consensus should be arrived: https://urldefense.us/v3/__https:/lists.oasis-open.org/archives/cti/202104/msg00006.html__;!!BClRuOV5cvtbuNI!U1W06SWBdEqItvQPJ46AuOqy-XG-9oJOK5Ki-jSw-zPncaP1fi9wzz1NbVop6pLKDFh0yf0$
If someone parses an object and doesn't blow up but doesn't preserve an optional property when converting it to their internal data model and propogating the data, have they violated the spec?
This also touches on interop as it requires respondents be able to "parse and display" STIX content in several of its use cases.
Duplicate of #263.
The text was updated successfully, but these errors were encountered: