ticura logoticura logo

STIX/TAXII 2.1 - Data Structure

The TAXII 2.1 server provided by ticura is fully compatible with the TAXII 2.1 and STIX 2.1 standards.

To support the integration of the data we have another dedicated article with guides for specific product integrations as well as some general recommendations

Objects in use

The following STIX object types are used for the following purposes:

kindtypepurpose
SDOindicatormatching content
SDOmalwareindicator related malware information
SDOidentityCTI sources, organizations, reporters
SDOobserved-dataDNS resolution
SDOthreat-actorindicator related threat actor
SDOreportconnecting multiple indicators of same detonation
SDOlocationrelated countries given by CTI sources
SDOvulnerabilityrelated vulnerability
SROrelationship
SROsighting
SCOdomain-nameDNS: Nameserver, PTR
SCOipv4-addrDNS resolvement
SCOipv6-addrDNS resolvement
SCOfileindicator related file information
SCOautonomous-systemindicator related ASN information
SMOmarking-definitionTLP 1.0/2.0
SMOextension-definitionTLP 2.0

Objects by enrichment

Following diagram shows how selected enrichments of a subscription affect the STIX 2.1 objects created.

Object field mapping and meanings

Indicator object

propertyfilled by / meaning
patterndescribes IOC value(s) to be matched to, see STIX patterns section
pattern_typeeither stix pattern or pcre
pattern_versionrefers to 2.0 if STIX pattern is used
spec_versionrefers to 2.1
type"indicator"
idreproducible ID according to guideline
descriptioncontains origins, licenses and reporters of the IOC
name[IOC value]
created_by_refidentifier of the ticura identity object
createdtimestamp of initial object creation due to initial subscription export
modifiedtimestamp of last change
valid_fromtimestamp the IOC was defined to become valid (e.g. DGA domains) or was first seen in CTI sources
valid_untiltimestamp the IOC is valid to, only if exists CTI source (e.g. DGA domains)
revokedtrue, if the IOC needs to be removed from the targeted product. Is used by Ticura for IOC aging to prevent object overflowing
labelslabels/tags describing the IOC and allowing the customer a first understanding (e.g. threat type, mitre IDs, online/offline)
kill_chain_phaseslist of kill chain phase according to given MITRE IDs
external_referencesrefers to CTI source reports, MITRE descriptions, project pages of sinkholes, scanners, infrastructre, or third party info
object_marking_refsused to refer to TLP markings

Malware object

The malware object is mainly used for pivoting purpose.

propertyfilled by / meaning
createdtimestamp of initial object creation due to initial subscription export
modifiedtimestamp of last change
spec_versionrefers to 2.1
type"malware"
idreproducible ID according to guideline
created_by_refidentifier of this ticura identity object
namemalware name
aliasesmalware aliases
is_familytrue, sources always refer to families
revokedtrue, if malware isn´t referenced anymore

Identity object

The identity object is only used for the creator identity. We initially used that kind of object also for CTI sources, reporters, sinkholes etc., but decided to add this as tags/description due to the overhead of relationships/objects.

propertyfilled by / meaning
createdtimestamp of initial object creation due to initial subscription export
modifiedtimestamp of last change
spec_versionrefers to 2.1
type"identity"
idreproducible ID according to guideline
created_by_refidentifier of this ticura identity object
descriptionexplaining the Ticura feed
identity_class"organization"
sectors["cybersecurity" ]
contact_information["support@ticura.io"]
roles["CTI source optimizer and provider"]
x_opencti_organization_type"Vendor", product specific custom property

Observed data object

This kind of object is used by Ticura to show current DNS resolutions of the urls/domains. By pivoting data, it enables analysis of linked threats.

propertyfilled by / meaning
createdtimestamp of initial object creation due to initial subscription export
modifiedtimestamp of last change
spec_versionrefers to 2.1
type"observed-data"
idreproducible ID according to guideline
created_by_refidentifier of this ticura identity object
revokedtrue in case of no current DNS resolution
first_observedfirst seen of this DNS resolution
last_observedfirst seen of this DNS resolution
number_observedalways set to 1
object_refsrefers to object of DNS resolution such as ips and nameservers
labels["dns resolution", "updates on changes"]

Domain name object

Used to show PTR records which resulted from a DNS request.

propertyfilled by / meaning
type"domain-name"
idreproducible ID according to guideline
spec_versionrefers to 2.1
valuedomain name

IPv4 address object

propertyfilled by / meaning
type"ipv4-addr"
idreproducible ID according to guideline
spec_versionrefers to 2.1
valueIPv4

IPv6 address object

propertyfilled by / meaning
type"ipv6-addr"
idreproducible ID according to guideline
spec_versionrefers to 2.1
valueIPv6

File object

propertyfilled by / meaning
type"file"
idreproducible ID according to guideline
spec_versionrefers to 2.1
hashesdictionary of file specific md5, sha1, sha256, sha512,ssdeep, tlsh
mime_typefile mime type
sizefile size, in bytes
namefilenames concatenated by OR

Autonomous system object

propertyfilled by / meaning
type"autonomous-system"
idreproducible ID according to guideline
spec_versionrefers to 2.1
numberAS number of the object referring to this object
namename of this AS

Location object

The location object is mainly used for pivoting purpose.

propertyfilled by / meaning
createdtimestamp of initial object creation due to initial subscription export
modifiedtimestamp of last change
spec_versionrefers to 2.1
type"location"
idreproducible ID according to guideline
created_by_refidentifier of this ticura identity object
revokedtrue in case the relationship was dropped
countryISO 3166-1 ALPHA-2 code of country
namename of the country
descriptiondescription

Vulnerability object

The vulnerability object is mainly used for pivoting purpose.

propertyfilled by / meaning
createdtimestamp of initial object creation due to initial subscription export
modifiedtimestamp of last change
spec_versionrefers to 2.1
type"vulnerability"
idreproducible ID according to guideline
created_by_refidentifier of this ticura identity object
revokedtrue in case relationship was dropped
namename of the vulnerability

Threat actor object

The threat actor object is mainly used for pivoting purpose.

propertyfilled by / meaning
createdtimestamp of initial object creation due to initial subscription export
modifiedtimestamp of last change
spec_versionrefers to 2.1
type"threat-actor"
created_by_refidentifier of this ticura identity object
revokedtrue in case of relationship was dropped
namename of the threat actor

Report object

This kind of object is used to keep the relationship in between multiple IOCs resulting from a common analysis such as a malware sandbox detonation. It also refers to all other objects which were created out of the specific IOCs.

propertyfilled by / meaning
createdtimestamp of initial object creation due to initial subscription export
modifiedtimestamp of last change
spec_versionrefers to 2.1
type"report"
idreproducible ID according to guideline
created_by_refidentifier of this ticura identity object
revokedtrue in case all IOCs were dropped
report_types"observed-data"
external_referencescombining all external references of all objects referenced by this report
publishedtimestamp of initial object creation due to initial subscription export
object_refsreferring to all objects related to this common analysis
namename of the report

Relationship object

propertyfilled by / meaning
createdtimestamp of initial object creation due to initial subscription export
modifiedtimestamp of last change
spec_versionrefers to 2.1
type"relationship"
idreproducible ID according to guideline
created_by_refidentifier of this ticura identity object
revokedtrue in case of dropped relationship
source_refsource identifier
target_reftarget identifier
relationship_typerelationship type defines the semantical relation source<->target
descriptiondetails about the relation
start_timeonly for some relations: timestamp of first observation of this relation

Sighting object

propertyfilled by / meaning
createdtimestamp of initial object creation due to initial subscription export
modifiedtimestamp of last change
spec_versionrefers to 2.1
type"sighting"
idreproducible ID according to guideline
created_by_refidentifier of ticura identity object
revokedtrue in case of dropped relationship
first_seenstart of the period of this measurement
last_seenend of the period of this measurement
count# observations of referenced indicator for specified period and specified countries
sighting_of_refidentifier of observed indicator
descriptiondetails about the sighting context
where_sighted_refslist of countries included in observations
summarytrue if this is the initial sighting object of the indicator, summing up all previous sightings

Marking & extension definition object

Ticura takes care to keep the number of marking definition objects as low as possible in order to avoid inconsistent data due to missing references on the target machines. For this reason the only used marking definitions are

STIX patterns of indicators

The STIX standard defines indicator matches by use of matching patterns. This also allows the description of complex behavioral schemes of malicious software. Ticura uses the following STIX/pcre patterns for the respective IOC types:

IOC main typeIOC sub typePattern(example)
URLDOMAIN[ url:value = 'http://example.com' ]
URLIPV4[ url:value = 'http://172.1.1.1' ]
URLIPV6[ url:value = 'http://[2001:0db8:3333:4444:5555:6666:7777:8888]/abc' ]
URLIPV4PORT[ url:value = 'http://172.1.1.1:8080/abc' ]
URLIPV6PORT[ url:value = 'http://[2001:0db8:3333:4444:5555:6666:7777:8888]:8080/abc' ]
DOMAINDOMAIN[ domain-name:value = 'sakir.hack-free.net' ]
IPV4IPV4[ ipv4-addr:value = '172.1.1.1' ]
IPV4IPV4RANGE[ ipv4-addr:value = '172.0.0.0/8' ]
IPV4IPV4PORT[ ipv4-addr:value = '172.1.1.1:8080' ]
IPV6IPV6[ ipv6-addr:value = '[2001:db8:3333:4444:5555:6666:7777:8888]' ]
IPV6IPV6RANGE[ ipv6-addr:value = '[2001:db8:3333:4444:5555:6666:7777:8888]/64' ]
IPV6IPV6PORT[ ipv6-addr:value = '[2001:db8:3333:4444:5555:6666:7777:8888]:8080' ]
HASHHASHMD5[ file:hashes.'MD5' = '838ece1033bf7c7468e873e79ba2a3ec' ]
HASHHASHSHA1____OR [ file:hashes.'SHA-1' = '1257ee4cb238affd46ef15d06714525c2c7c9018' ]
HASHHASHSHA256____OR [ file:hashes.'SHA-256' = '20f679a763b8f8dd853dd617d3fb102faf087735c9e3bed31396d87186939db2' ]
HASHHASHSHA512____OR [ file:hashes.'SHA-512' = '9d4224dba01771e56fe29e620cb713a2d30ed03a015504455781569b6d6979f69d8fbf40e005533666bfeea11f4807d7cd0a459ba2934dc970a50bf48fd0c84a' ]
HASHHASHSSDEEP____OR [ file:hashes.'SSDEEP' = '24:Ol9rFBzwjx5ZKvBBi8RuM4Pp6rG5Yg+q8wIXhMC:qrFBzKx5L8sM4grq8wIXht' ]
HASHTLSH____OR [ file:hashes.'TLSH' = 'T1E0A022C8330203338E88008038882A80FF820A0C203203222C00000023030200022C88' ]
EMAILEMAILtest@test.de
CRYPTOCURRENCYADRESSBITCOIN(?i) bc1q5lm8v27uf9v8nz6yczg3gxraflxlas4jvr0zuf (uses pattern type pcre)
CRYPTOCURRENCYADRESSETHEREUM(?i) 0x52908400098527886E0F7030069857D2E4169EE7 (uses pattern type pcre)
CRYPTOCURRENCYADRESSMONERO(?i) 888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H (uses pattern type pcre)
About this document
Created:
March 26, 2024
Updated:
May 13, 2025
Keywords:
stix
taxii
implementation
integration
guide
export
data
structure