Create and Manage Associations
An association, one of the most powerful features in ThreatConnect®, models a relationship between two objects. Associating data empowers analysts to pivot to related objects and further investigate their relationships to the primary object in the association.
When creating and updating Artifacts, Cases, Groups, Indicators, Intelligence Requirements (IRs), and Victim Assets with the ThreatConnect v3 API, you may also create and manage associations for those object types.
Supported Association Types
The following table outlines the types of associations you can create when using the API endpoints corresponding to Artifacts, Cases, Groups, Indicators, IRs, and Victim Assets and whether each endpoint supports cross-owner associations.
Endpoint |
Associable Object Types |
Supports Cross-Owner Associations? |
---|---|---|
|
|
Yes |
|
|
Yes |
|
|
Yes |
|
|
Yes |
|
|
Yes |
|
Groups |
No |
|
Groups |
No |
Create Associations
The following sections describe how to associate new and existing Artifacts, Cases, Groups, Indicators, and Victim Assets to select object types. They also provide JSON samples that can be used in the request body of POST and PUT requests to the endpoints listed in the “Supported Association Types” section. While each sample demonstrates how to create an association to a single object, you can create associations to multiple objects in a single POST or PUT request.
Artifact Associations
You can associate newly created and existing Artifacts to Groups, Indicators, and IRs with the v3 API.
New Artifact
To create an Artifact and use it in an association, include the associatedArtifacts
field in the request body and define all fields required to create the Artifact.
"associatedArtifacts": {
"data": [
{
"caseId": 12345,
"summary": "[email protected]",
"type": "Email Address"
}
]
}
Existing Artifact
To use an existing Artifact in an association, include the associatedArtifacts
field in the request body and set the value of the id
field to the ID of the Artifact.
"associatedArtifacts": {
"data": [
{
"id": 12345
}
]
}
Case Associations
You can associate newly created and existing Cases to Groups, Indicators, and IRs with the v3 API.
New Case
To create a Case and use it in an association, include the associatedCases
field in the request body and define all fields required to create the Case.
"associatedCases": {
"data": [
{
"name": "Phishing Investigation",
"severity": "Low",
"status": "Open"
}
]
}
Existing Case
To use an existing Case in an association, include the associatedCases
field in the request body and set the value of the id
field to the ID of the Case.
"associatedCases": {
"data": [
{
"id": 12345
}
]
}
Group Associations
You can associate newly created and existing Groups to Artifacts, Cases, Groups, Indicators, IRs, and Victim Assets with the v3 API.
New Group
To create a Group and use it in an association, include the associatedGroups
field in the request body and define all fields required for the type of Group being created. By default, the Group will be created in your Organization. To create the Group in one of your Communities or Sources, set the value of the ownerId
or ownerName
field to the ID or name, respectively, of the desired Community or Source.
"associatedGroups": {
"data": [
{
"name": "Bad Guy",
"type": "Adversary",
"ownerName": "Demo Source"
}
]
}
Existing Group
To use an existing Group in an association, include the associatedGroups
field in the request body and set the value of the id
field to the ID of the Group.
"associatedGroups": {
"data": [
{
"id": 12345
}
]
}
Indicator Associations
You can associate newly created and existing Indicators to Artifacts, Cases, Groups, Indicators, and IRs with the v3 API.
Note
If creating Indicator-to-Indicator associations, see the “Indicator-to-Indicator Associations” section of Indicators Overview for further instruction.
New Indicator
To create a new Indicator and use it in an association, include the associatedIndicators
field in the request body and define all required fields for the type of Indicator being created. By default, the Indicator will be created in your Organization. To create the Indicator in one of your Communities or Sources, set the value of the ownerId
or ownerName
field to the ID or name, respectively, of the desired Community or Source.
"associatedIndicators": {
"data": [
{
"hostName": "badguy.com",
"type": "Host",
"ownerName": "Demo Source"
}
]
}
Existing Indicator
To use an existing Indicator in an association, include the associatedIndicators
field in the request body and set the value of the id
field to the ID of the Indicator. Alternatively, identify the Indicator by using the type
field and the field representing its summary.
Note
If using an Indicator’s type and summary, the API request will search for the Indicator in your Organization. If the Indicator exists in one of your Communities or Sources, include the ownerId
or ownerName
field and set its value to the ID or name, respectively, of the Community or Source.
Example (Indicator ID)
"associatedIndicators": {
"data": [
{
"id": 12345
}
]
}
Example (Indicator Type and Summary)
"associatedIndicators": {
"data": [
{
"type": "Address",
"ip": "71.6.135.131"
}
]
}
Victim Asset Associations
You can associate newly created and existing Victim Assets to Groups and IRs with the v3 API.
New Victim Asset
To create a Victim Asset and use it in an association, include the associatedVictimAssets
field in the request body and define all fields required to create the Victim Asset.
"associatedVictimAssets": {
"data": [
{
"address": "[email protected]",
"type": "EmailAddress",
"victimId": 12345
}
]
}
Existing Victim Asset
To use an existing Victim Asset in an association, include the associatedVictimAssets
field in the request body and set the value of the id
field to the ID of the Victim Asset.
"associatedVictimAssets": {
"data": [
{
"id": 12345
}
]
}
Retrieve Associations
When retrieving Artifacts, Cases, Groups, Indicators, IRs, Victims, or Victim Assets, use the fields
query parameter to include the object’s associations in the response.
Example
GET /v3/indicators/badguy.com?fields=associatedGroups&fields=associatedIndicators
To retrieve a list of accepted values for the fields
query parameter for each API endpoint, send a request in the following format:
OPTIONS /v3/{objectType}/fields
Remove Associations
When updating an Artifact, Case, Group, Indicator, IR, Victim, or Victim Asset, use the mode
field and set its value to delete
to remove an association for the object. For more information on using the mode
field, see Update an Object’s Metadata.
Attention
When dissociating an object from an Artifact, Case, Group, Indicator, IR, Victim, or Victim Asset, you must identify the object by its ID.
PUT /v3/indicators/badguy.com
Content-Type: application/json
{
"associatedGroups": {
"data": [
{
"id": 12345
}
],
"mode": "delete"
}
}