Attack Patterns

To create, update, or retrieve Attack Pattern entities from the ThreatStream platform.

Request

/api/v1/attackpattern/

HTTP Methods: GET, POST, PATCH

Create a new Attack Pattern POST /api/v1/attackpattern/
Update the specified Attack Pattern PATCH /api/v1/attackpattern/{id}/
Get details of the specified Attack Pattern GET /api/v1/attackpattern/{id}/

 

Get a list of Attack Patterns

Anomali recommends to use the /api/v1/threat_model_search endpoint to retrieve a list of Attack Patterns. See Threat Model Search for details.

For example,

GET /api/v1/threat_model_search/?model_type=attackpattern

Get a list of Attack Patterns associated with the specified observable value or observable ID

GET /api/v1/attackpattern/associated_with_intelligence/?value={value}

GET /api/v1/attackpattern/associated_with_intelligence/?ids={comma_separated_id_list}

For example,

GET /api/v1/attackpattern/associated_with_intelligence/?value=google.com returns all Attack Patterns associated with google.com.

Get a list of a specified entity type (such as Malware, Campaign, and so on) associated with the specified Attack Pattern GET /api/v1/attackpattern/{id}/<entity_type>/

For example,

GET /api/v1/attackpattern/234673/malware/ returns all malware objects associated with the Attack Pattern.

Get a list of observables associated with the specified Attack Pattern GET /api/v1/attackpattern/{id}/intelligence/

Response

Format: JSON

Attributes: See the table below

Notes:
  • Attributes with "related" data type return 0 to N number of values. For example, if a threat model entity belongs to more than one trusted circle, both will be returned.
  • For information on limiting results and returning large datasets while mitigating performance impacts, see Limiting Results.

Attributes

Attribute Type Description
actors related (see item 1 in the Notes above)

Actors associated with the Attack Pattern.

When creating an Attack Pattern, specify the Actor ID. See Actors .

aliases string Other names by which the Attack Pattern is known.
assignee_user integer ID of the user to which the Attack Pattern is assigned
attackpatterns (see item 1 in the Notes above)

Attack Pattern entities associated with the Attack Pattern.

body_content_type string

Format used for the body text of the description: markdown or richtext

Default: markdown

Note: Once specified, body_content_type cannot be modified.
campaigns related (see item 1 in the Notes above)

Campaigns associated with the Attack Pattern.

When creating an Attack Pattern, specify the Campaign ID. See Campaigns .

can_add_public_tags boolean Observable for whether a user can add public tags to an Attack Pattern.
circles related (see item 1 in the Notes above) All Trusted Circles to which the Attack Pattern belongs.
courseofaction related (see item 1 in the Notes above)

Course of action entities associated with the Attack Pattern.

When creating an Attack Pattern, specify the Course of Action ID.

created_ts

datetime

Time stamp of when the Attack Pattern was created on ThreatStream, in UTC format.

Date is in this format: YYYYMMDDThhmmss

where T denotes the start of the value for time.

For example, 2014-10-02T20:44:35.

Note: This attribute is returned in the response to a GET call and is set by ThreatStream; it cannot be configured.
description string

The free-form text associated with the Attack Pattern (as specified in the Description field in the UI).

embedded_content_type string Not used.
embedded_content_url string Not used.
external_references related (see item 1 in the Notes above) Information about the references associated with the Attack Pattern.
feed_id string Numeric ID of the threat feed that provided the threat model entity.
id string ID of the Attack Pattern entity. This ID is automatically assigned to the entity by ThreatStream at the time of creation. You can use this ID to associate the Attack Pattern entity with other threat model entities.
identities related (see item 1 in the Notes above)

Identities associated with the Attack Pattern.

When creating an Attack Pattern, specify the Identity ID.

incidents related (see item 1 in the Notes above)

Incidents associated with the Attack Pattern.

When creating an Attack Pattern, specify the Incident ID.

infrastructure related (see item 1 in the Notes above)

Infrastructure entities associated with the Attack Pattern.

When creating an Attack Pattern, specify the Infrastructure ID.

intelligence related (see item 1 in the Notes above)

Observables associated with the Attack Pattern on the ThreatStream platform.

When creating an Attack Pattern, specify the observable ID. See Intelligence.

intelligence_initiatives related (see item 1 in the Notes above)

Intelligence Initiatives associated with the Attack Pattern.

Note: This attribute is returned in the response to a GET call and is set an intelligence source; it cannot be configured.
intrusionsets related (see item 1 in the Notes above)

Intrusion sets associated with the Attack Pattern.

When creating an Attack Pattern, specify the Intrusion Set ID.

is_anonymous boolean

Whether the Attack Pattern user and organization information is anonymized.

True—if information is anonymized

False—if information is not anonymized

is_cloneable string

Whether the Attack Pattern entity can be cloned.

is_mitre boolean

Whether the Attack Pattern is described in the MITRE list.

True—if the Attack Pattern is described

False—if the Attack Pattern is not described

is_public boolean

Whether the Attack Pattern is public or private (including belonging to a trusted circle).

False—if the Attack Pattern is private or belongs to a Trusted Circle

True—if the Attack Pattern is public

Default: False

kill_chain_phases array

Name of the attack structure model.

Value: {"lockheed-martin": ["action-on-objectives", "command-and-control", "delivery", "exploitation", "installation", "reconnaissance", "weaponization"]}

killchainstages related (see item 1 in the Notes above)

List of attack structure phases.

Values: "action-on-objectives", "command-and-control", "delivery", "exploitation", "installation", "reconnaissance", "weaponization"

Note: You can set this attribute with the PATCH API call only for the Attack Patterns with the is_mitre=false attribute.
malwares related (see item 1 in the Notes above)

Malware entities associated with the Attack Pattern.

modified_ts datetime

Time stamp of when Attack Pattern was last updated on ThreatStream, in UTC format.

Date is in this format: YYYYMMDDThhmmss

where T denotes the start of the value for time.

For example, 2014-10-02T20:44:35.

Note: This attribute is returned in the response to a GET call and is set by ThreatStream; it cannot be configured.
name string

Name of the Attack Pattern.

Attack Pattern name is associated with your organization. Therefore, the name must be unique within your organization. However, two Attack Patterns with the same name can exist on ThreatStream as long as they belong to different organizations.

The name can contain up to 255 characters.

Note: This is a required parameter.

organization array of strings Information about the organization that created the entity on ThreatStream.
organization_id integer ID of the organization that created the entity on ThreatStream.
owner_user array of strings Information about the user that created the entity on ThreatStream.
owner_user_ID integer ID of the user that created the entity on ThreatStream.
parent N/A The attribute is for internal use and can be ignored.
publication_status string

Attack Pattern entities can be in new, pending_review, review_requested, reviewed, or published statuses.

Note: Attack Pattern entities must be in published status for it to be visible to other users outside your organization.
published_ts datetime

Time stamp of when Attack Pattern was published on ThreatStream, in UTC format.

Date is in this format: YYYYMMDDThhmmss

where T denotes the start of the value for time.

For example, 2014-10-02T20:44:35.

Note: This attribute is returned in the response to a GET call and is set by ThreatStream; it cannot be configured.
remote_api (for ThreatStream OnPrem only) boolean

Whether the entity is remote (stored on Cloud).

Value returned for this attribute is true when the entity is remote.

resource_uri string URI of the Attack Pattern entity on ThreatStream
signatures related (see item 1 in the Notes above)

Signatures associated with the Attack Pattern.

When creating an Attack Pattern, specify the Signature ID. See Signatures.

skip_associations

(On ThreatStream OnPrem only)

boolean

By default, up to 1000 threat model and observable associations are returned with GET requests for details of a threat model entity on ThreatStream OnPrem. When a threat model entity has a large number of associations, association retrieval can take a long time and impact performance. Therefore, Anomali recommends setting the skip_associations parameter to true. This parameter is only applicable to ThreatStream OnPrem.

For example,

GET /api/v1/attackpattern/{id}/?skip_associations=true

skip_intelligence

(On ThreatStream OnPrem only)

boolean

By default, up to 1000 threat model and observable associations are returned with GET requests for details of a threat model entity on ThreatStream OnPrem. When a threat model entity has a large number of associations, association retrieval can take a long time and impact performance. Therefore, Anomali recommends setting the skip_intelligence parameter to true. This parameter is only applicable to ThreatStream OnPrem.

For example,

GET /api/v1/attackpattern/{id}/?skip_intelligence=true

source_created datetime

Time stamp of when the Attack Pattern was originally created by the source, in UTC format.

Date is in this format: YYYYMMDDThhmmss

where T denotes the start of the value for time.

For example, 2014-10-02T20:44:35.

source_modified datetime

Time stamp of when the Attack Pattern was last modified by the source, in UTC format.

Date is in this format: YYYYMMDDThhmmss

where T denotes the start of the value for time.

For example, 2014-10-02T20:44:35.

starred_by_me boolean

Whether the user has starred the Attack Pattern—added it to their favorites.

True—if the Attack Pattern is starred

False—if the Attack Pattern is not starred

starred_total_count integer How many times the Attack Pattern was starred by all users.
tags list

Tags assigned to the Attack Pattern.

A tag is a meaningful name or any other string value assigned to identify the information.

For example, spear phishing,exploitation.

tags_v2 related (see item 1 in the Notes above) Additional information on the tags assigned to the Attack Pattern.
tipreports related (see item 1 in the Notes above)

Threat bulletins associated with the Attack Pattern.

When creating an Attack Pattern, specify the ID of the threat bulletin.

tlp string

Traffic Light Protocol designation for the Attack Pattern—red, amber, amber+strict, green, clear.

Note: The value is case-sensitive and must be specified in lower case.
tools related (see item 1 in the Notes above)

Tools associated with the Attack Pattern.

ttps related (see item 1 in the Notes above)

TTP (Threat Bulletins) associated with the Attack Pattern.

When creating an Attack Pattern, specify the TTP ID. See TTPs (Tactics, Techniques, and Procedures).

uuid string UUID (universally unique identifier) assigned to the observable for STIX compliance.
votes array of integers How many times the users voted for the Attack Pattern.
vulnerability related (see item 1 in the Notes above)

Vulnerabilities associated with the Attack Pattern.

When creating an Attack Pattern, specify the ID of the vulnerability.

watched_by_me boolean

Whether the Attack Pattern is watched by the user.

True—if the Attack Pattern is watched

False—if the Attack Pattern is not watched

watched_total_count integer How many users are watching the Attack Pattern.
workgroups list of strings Workgroups to which the Attack Pattern is visible.

Examples

  1. To create a private Attack Pattern entity that is associated with a TTP whose ID is 63:

    Copy
    curl --request POST --data '{"name": "dummy test attack pattern", "tlp": "red", "tags": ["attack pattern", "example tag"], "ttps": [63]}'  'https://api.threatstream.com/api/v1/attackpattern/' -H 'Authorization: apikey <username>:<api_key>' -H 'Content-Type:application/json'
  2. To update an existing Attack Pattern entity whose ID is 27:

    Copy
    curl --request PATCH --data '{"name": "another dummy test attack pattern", "tlp": "orange"}' 'https://api.threatstream.com/api/v1/attackpattern/27/' -H 'Authorization: apikey <username>:<api_key>' -H 'Content-Type:application/json'
  3. To get the details of an existing Attack Pattern entity whose ID is 27:

    Copy
    curl 'https://api.threatstream.com/api/v1/attackpattern/27/' -H 'Authorization: apikey <username>:<api_key>'
  4. To get the first 10 Attack Pattern entities from ThreatStream:

    Copy
    curl 'https://api.threatstream.com/api/v1/attackpattern/?limit=10' -H 'Authorization: apikey <username>:<api_key>'
  5. (Only on ThreatStream OnPrem) To get details of a remote attack patten whose ID is 28:

    Copy
    curl 'https://<ThreatStream_OnPrem_IP_or_FQDN>/api/v1/attackpattern/28/?remote_api=true' -H 'Authorization: apikey <username>:<api_key>'
  6. (Only on ThreatStream OnPrem) To skip associations when retrieving details of a local Attack Pattern with ID 234678:

    Copy
    curl 'https://<ThreatStream_OnPrem_IP_or_FQDN>/api/v1/attackpattern/234678/?skip_associations=true' -H 'Authorization: apikey <username>:<api_key>'