Indicator An indicator is a test, or a collection of judgements that define criteria for identifying the activity, or presence of malware, or other unwanted software.
We follow the STiX IndicatorType closely, with the exception of not including observables within the indicator, and preferring a specification object encoded in JSON as opposed to an opaque implementation block.
Additional, you will want to either define judgements against Observables that are linked to this indicator, with the ID in the indicators field of those Judgements, or you can provide a specification value.
Property | Type | Description | Required? |
---|---|---|---|
id | String | Globally unique URI identifying this object. | ✓ |
producer | ShortStringString | ✓ | |
schema_version | String | CTIM schema version for this entity | ✓ |
type | IndicatorTypeIdentifierString | The fixed value indicator | ✓ |
valid_time | ValidTime Object | The time range during which this Indicator is considered valid. | ✓ |
composite_indicator_expression | CompositeIndicatorExpression Object | ||
confidence | HighMedLowString | level of confidence held in the accuracy of this Indicator | |
description | MarkdownString | A description of object, which may be detailed. | |
external_ids | String List | ||
external_references | ExternalReference Object List | Specifies a list of external references which refers to non-CTIM information. This property is used to provide one or more URLs, descriptions, or IDs to records in other systems. | |
indicator_type | IndicatorTypeString List | Specifies the type or types for this Indicator | |
kill_chain_phases | KillChainPhase Object List | relevant kill chain phases indicated by this Indicator | |
language | ShortStringString | The human language this object is specified in. | |
likely_impact | LongStringString | likely potential impact within the relevant context if this Indicator were to occur | |
negate | Boolean | specifies the absence of the pattern | |
revision | Integer | A monotonically increasing revision, incremented each time the object is changed. | |
severity | SeverityString | ||
short_description | MedStringString | A single line, short summary of the object. | |
source | MedStringString | ||
source_uri | String | ||
specification | JudgementSpecification Object | ||
tags | ShortStringString List | Descriptors for this indicator | |
test_mechanisms | MedStringString List | Test Mechanisms effective at identifying the cyber Observables specified in this cyber threat Indicator | |
timestamp | Inst (Date) | The time this object was created at, or last modified. | |
title | ShortStringString | A short title for this object, used as primary display and reference value | |
tlp | TLPString | Specification for how, and to whom, this object can be shared. |
- Reference: IndicatorType
- This entry is optional
- CompositeIndicatorExpression Object Value
- Details: CompositeIndicatorExpression Object
level of confidence held in the accuracy of this Indicator
-
This entry is optional
- Allowed Values:
- High
- Info
- Low
- Medium
- None
- Unknown
- Reference: HighMedLowVocab
- Allowed Values:
A description of object, which may be detailed.
-
This entry is optional
- Markdown Markdown string with at most 5000 characters
- This entry is optional
- This entry's type is sequential (allows zero or more values)
Specifies a list of external references which refers to non-CTIM information. This property is used to provide one or more URLs, descriptions, or IDs to records in other systems.
- This entry is optional
- This entry's type is sequential (allows zero or more values)
- ExternalReference Object Value
- Details: ExternalReference Object
Globally unique URI identifying this object.
-
This entry is required
- IDs are URIs, for example
https://www.domain.com/ctia/judgement/judgement-de305d54-75b4-431b-adb2-eb6b9e546014
for a Judgement. This ID type compares to the STIX id field. The optional STIX idref field is not used.
- IDs are URIs, for example
Specifies the type or types for this Indicator
-
This entry is optional
-
This entry's type is sequential (allows zero or more values)
- Allowed Values:
- Anonymization
- C2
- Compromised PKI Certificate
- Domain Watchlist
- Exfiltration
- File Hash Watchlist
- Host Characteristics
- IMEI Watchlist
- IMSI Watchlist
- IP Watchlist
- Login Name
- Malicious E-mail
- Malware Artifacts
- Private Threat Feed
- URL Watchlist
- Reference: IndicatorTypeVocab
- Allowed Values:
relevant kill chain phases indicated by this Indicator
- This entry is optional
- This entry's type is sequential (allows zero or more values)
- Dev Notes: simplified
- KillChainPhase Object Value
- Details: KillChainPhase Object
The human language this object is specified in.
-
This entry is optional
- ShortString String with at most 1024 characters
likely potential impact within the relevant context if this Indicator were to occur
-
This entry is optional
- LongString String with at most 5000 characters
specifies the absence of the pattern
- This entry is optional
-
This entry is required
-
Dev Notes: TODO - Document what is supposed to be in this field!
- ShortString String with at most 1024 characters
A monotonically increasing revision, incremented each time the object is changed.
-
This entry is optional
- Zero, or a positive integer
CTIM schema version for this entity
-
This entry is required
- A semantic version matching the CTIM version against which this object should be valid.
-
This entry is optional
- Allowed Values:
- Critical
- High
- Info
- Low
- Medium
- None
- Unknown
- Allowed Values:
A single line, short summary of the object.
-
This entry is optional
- MedString String with at most 2048 characters
-
This entry is optional
- MedString String with at most 2048 characters
-
This entry is optional
- A URI
-
This entry is optional
- Only one of the following schemas will match
- JudgementSpecification Object Value
- Details: JudgementSpecification Object
- ThreatBrainSpecification Object Value
- Details: ThreatBrainSpecification Object
- SnortSpecification Object Value
- Details: SnortSpecification Object
- SIOCSpecification Object Value
- Details: SIOCSpecification Object
- OpenIOCSpecification Object Value
- Details: OpenIOCSpecification Object
Descriptors for this indicator
-
This entry is optional
-
This entry's type is sequential (allows zero or more values)
- ShortString String with at most 1024 characters
Test Mechanisms effective at identifying the cyber Observables specified in this cyber threat Indicator
-
This entry is optional
-
This entry's type is sequential (allows zero or more values)
-
Dev Notes: simplified
- MedString String with at most 2048 characters
The time this object was created at, or last modified.
-
This entry is optional
- ISO8601 Timestamp Schema definition for all date or timestamp values. Serialized as a string, the field should follow the rules of the ISO8601 standard.
A short title for this object, used as primary display and reference value
-
This entry is optional
- ShortString String with at most 1024 characters
Specification for how, and to whom, this object can be shared.
-
This entry is optional
- TLP TLP stands for Traffic Light Protocol, which indicates precisely how this resource is intended to be shared, replicated, copied, etc.
- Default: green
- Allowed Values:
- amber
- green
- red
- white
The fixed value indicator
-
This entry is required
- IndicatorTypeIdentifier The fixed value "indicator"
- Must equal: "indicator"
The time range during which this Indicator is considered valid.
- This entry is required
- ValidTime Object Value
- Details: ValidTime Object
ExternalReference External references are used to describe pointers to information represented outside of CTIM. For example, a Malware object could use an external reference to indicate an ID for that malware in an external database or a report could use references to represent source material.
Property | Type | Description | Required? |
---|---|---|---|
source_name | MedStringString | The source within which the external-reference is defined (system, registry, organization, etc.) | ✓ |
description | MarkdownString | ||
external_id | String | An identifier for the external reference content. | |
hashes | String List | Specifies a dictionary of hashes for the contents of the url. | |
url | String | A URL reference to an external resource |
- Reference: External Reference
-
This entry is optional
- Markdown Markdown string with at most 5000 characters
An identifier for the external reference content.
- This entry is optional
Specifies a dictionary of hashes for the contents of the url.
- This entry is optional
- This entry's type is sequential (allows zero or more values)
The source within which the external-reference is defined (system, registry, organization, etc.)
-
This entry is required
- MedString String with at most 2048 characters
A URL reference to an external resource
-
This entry is optional
- A URI
ValidTime Period of time when a cyber observation is valid.
Property | Type | Description | Required? |
---|---|---|---|
end_time | Inst (Date) | If end_time is not present, then the valid time position of the object does not have an upper bound. | |
start_time | Inst (Date) | If not present, the valid time position of the indicator does not have an upper bound |
- Reference: ValidTimeType
If end_time is not present, then the valid time position of the object does not have an upper bound.
-
This entry is optional
- ISO8601 Timestamp Schema definition for all date or timestamp values. Serialized as a string, the field should follow the rules of the ISO8601 standard.
If not present, the valid time position of the indicator does not have an upper bound
-
This entry is optional
- ISO8601 Timestamp Schema definition for all date or timestamp values. Serialized as a string, the field should follow the rules of the ISO8601 standard.
Property | Type | Description | Required? |
---|---|---|---|
indicator_ids | String List | ✓ | |
operator | BooleanOperatorString | ✓ |
- Reference: CompositeIndicatorExpressionType
-
This entry is required
-
This entry's type is sequential (allows zero or more values)
- A URI leading to an indicator
-
This entry is required
- Allowed Values:
- and
- not
- or
- Allowed Values:
KillChainPhase The kill-chain-phase represents a phase in a kill chain, which describes the various phases an attacker may undertake in order to achieve their objectives.
Property | Type | Description | Required? |
---|---|---|---|
kill_chain_name | String | The name of the kill chain. | ✓ |
phase_name | String | The name of the phase in the kill chain. | ✓ |
- Reference: Kill Chain Phase
The name of the kill chain.
-
This entry is required
- SHOULD be all lowercase (where lowercase is defined by the locality conventions) and SHOULD use hyphens instead of spaces or underscores as word separators.
- Must equal: "lockheed-martin-cyber-kill-chain"
- Reference: Open Vocabulary
The name of the phase in the kill chain.
-
This entry is required
- SHOULD be all lowercase (where lowercase is defined by the locality conventions) and SHOULD use hyphens instead of spaces or underscores as word separators.
- Allowed Values:
- actions-on-objective
- command-and-control
- delivery
- exploitation
- installation
- reconnaissance
- weaponization
- Reference: Open Vocabulary
JudgementSpecification An indicator based on a list of judgements. If any of the Observables in it's judgements are encountered, than it may be matches against. If there are any required judgements, they all must be matched in order for the indicator to be considered a match.
Property | Type | Description | Required? |
---|---|---|---|
judgements | String List | ✓ | |
required_judgements | RelatedJudgement Object List | ✓ | |
type | JudgementSpecificationTypeString | ✓ |
-
This entry is required
-
This entry's type is sequential (allows zero or more values)
- A URI leading to a judgement
- This entry is required
- This entry's type is sequential (allows zero or more values)
- RelatedJudgement Object Value
- Details: RelatedJudgement Object
-
This entry is required
- Must equal: "Judgement"
Property | Type | Description | Required? |
---|---|---|---|
judgement_id | String | ✓ | |
confidence | HighMedLowString | ||
relationship | String | ||
source | String |
-
This entry is optional
- Allowed Values:
- High
- Info
- Low
- Medium
- None
- Unknown
- Reference: HighMedLowVocab
- Allowed Values:
-
This entry is required
- A URI leading to a judgement
- This entry is optional
- This entry is optional
ThreatBrainSpecification An indicator which runs in threatbrain...
Property | Type | Description | Required? |
---|---|---|---|
type | ThreatBrainSpecificationTypeString | ✓ | |
variables | String List | ✓ | |
query | String |
- This entry is optional
-
This entry is required
- Must equal: "ThreatBrain"
- This entry is required
- This entry's type is sequential (allows zero or more values)
SnortSpecification An indicator which runs in snort...
Property | Type | Description | Required? |
---|---|---|---|
snort_sig | String | ✓ | |
type | SnortSpecificationTypeString | ✓ |
- This entry is required
-
This entry is required
- Must equal: "Snort"
SIOCSpecification An indicator which runs in snort...
Property | Type | Description | Required? |
---|---|---|---|
SIOC | String | ✓ | |
type | SIOCSpecificationTypeString | ✓ |
- This entry is required
-
This entry is required
- Must equal: "SIOC"
OpenIOCSpecification An indicator which contains an XML blob of an openIOC indicator..
Property | Type | Description | Required? |
---|---|---|---|
open_IOC | String | ✓ | |
type | OpenIOCSpecificationTypeString | ✓ |
- This entry is required
-
This entry is required
- Must equal: "OpenIOC"