STIX/TAXII - Complete Knowledge

Apr 10, 2022    #stix   #taxii   #threat-intelligence   #python  

Introduction

STIX

What is STIX and what is TAXII? In the most simple terms STIX is a model of Threat Intelligence that is represented in motivations, abilities, capabilities and response objects. Those objects are then represented in either JSON (STIX 2) or XML (STIX 1).

Here is a very simple representation of STIX Objects in a graph.

STIX Example

Explanation of the example

The data can be helpful for preventing or mitigating various kinds of attacks that can be expressed with STIX. All the list of the examples you can find in their official example page .

TAXII

The STIX data has to be relayed in some way, that’s why we have the TAXII Server. It is a simple web server specifically created for storing and sharing that kind of data.

TAXII 1.x Structure

The TAXII 1.2 Server has the following structure:

The full list of features for TAXII1 can be found in their official documentation:

TAXII 2.x Structure

For the newer versions of the TAXII Server we have the following structure:

Image description

You can see that this is very similar to the TAXII 1.x servers, there isn’t much of a difference in the structure besides that the collection_management_url is api_root in TAXII 2.x.

The full list of features for TAXII2 can be found in their official documentation .

TAXII Servers and Threat Intelligence Providers

The information about this is very scarce so I’ve gathered a quick list of the known providers for STIX data.

ResourceURLDescriptionData Type
AlienVault OTXhttps://otx.alienvault.com/apiRequires an account, provides data in various ways including a TAXII Server.STIX 1.x
Threat Connecthttps://threatconnect.com/stix-taxii/Requires an account, Paid service, (consumes and provides) threat intel.STIX 1.x/2.x
EcleticIQhttps://www.taxiistand.com/Test TAXII (v1x) server. (quite unstable and inconsistent)STIX 1.x
Limo - Anomalihttps://www.anomali.com/resources/limoTest TAXII (v1x/v2x) server. Somewhat unstable but mostly fine during tests.STIX 1.x/2.x

Tools for STIX/TAXII

The main tool for creating/parsing or generating STIX data is going to be Python, since that all of the tools created are written in Python. Of course there are other alternatives but currently that’s the most common one.

Other tools that might come in handy.

ToolDescriptionVersion
stix-shifterTranslates STIX to various other Threat Intelligence formats such as Carbon Black Cloud Query and othersSTIX 1.x/2.x
stix2The main python package to parse and use/create STIX2 data.STIX 2.x
stix2-validatorProvides a validation for the STIX2 data, can be used to validate your data from your sources.STIX 2.x
stix2-sliderTransforms STIX2 content to STIX1.2STIX 2.x
stix2-elevatorTransforms STIX1 data to STIX2.xSTIX 1.x
stixThe main python package for STIX1 data.STIX 1.x
stix-validatorValidating STIX1 data.STIX 1.x
stix2-patternsValidator and Pattern Parser for STIX 2.x PatternsSTIX 2.x
taxii2-clientPython Client for TAXII 2 ServersTAXII 2.x
cabbyPython Client for TAXII 1 ServersTAXII 1.x

Snippets and Gists