Safeguard
Security Guides•

STIX and TAXII explained in plain language

STIX is a JSON language for describing threat intelligence and TAXII is the transport that moves it. See the object types and how they fit together.

Safeguard Security Team
4 min read

STIX is a language for describing cyber threat intelligence in a structured, machine readable form. TAXII is the companion specification for moving STIX data between systems. Think of STIX as the contents of the envelope and TAXII as the postal service that carries it.

What STIX 2.1 defines

STIX 2.1 is described by its standards body as a language for expressing cyber threat and observable information. The default serialization is JSON in UTF-8, so a STIX document is plain text that tools can parse.

The three kinds of object

STIX Domain Objects (SDOs) are the higher level concepts analysts work with. Examples in the spec include Attack Pattern, Campaign, Course of Action, Indicator, Intrusion Set, Malware, Report, Threat Actor, Tool and Vulnerability.

STIX Cyber observable Objects (SCOs) record observed facts about a network or host: a file that existed, a running process, traffic between two addresses. The spec points out that they do not say who, when or why. The domain objects add that context.

STIX Relationship Objects (SROs) link objects together. The spec defines the general Relationship object and the Sighting object, which records that someone has seen a thing and can include a count.

There are also meta objects for things like data markings, and a Bundle object that packages STIX content for transfer.

A tiny example in words

A Malware object names a family. An Indicator object holds a pattern that detects it. A Relationship object says the indicator detects the malware. A Sighting says your organization saw it three times. Each piece is separate, so tools can reuse them.

Where TAXII fits

STIX does not depend on any transport. TAXII is the specification designed to carry STIX objects, usually through a server that clients poll or push to. CISA's Automated Indicator Sharing service, for example, tells participants to use a TAXII 2.1 client.

Do you need it?

If you only read reports and copy a few addresses into a blocklist, you can skip it. It starts to pay off when you:

  • ingest several feeds and need consistent fields
  • share your own indicators with a community
  • want a platform to link indicators to campaigns and actors

Pitfalls

Structure does not guarantee quality. A well formed Indicator can still be wrong, old or too broad. Check confidence, validity dates and source before you let a feed block traffic automatically.

Reading a STIX bundle

A bundle is a JSON file with a list of objects. Each has a type, an identifier and timestamps. Look first for Indicator objects, then follow Relationship objects to see what each indicator is tied to. If a bundle has no relationships, you have a flat list, and you lose the context that makes STIX worth using.

Check the validity fields on indicators. They say from when and until when an indicator should be considered meaningful. Ignoring them is how stale items end up in blocklists.

A practical first project

Take one feed that offers STIX, load it into a free platform, and compare what it gives you with what you already had. Count the items you can match against your own logs in a week. If the number is zero, the feed is not helping yet.

Quick check

Is STIX only for indicators?

No. Indicators are one object type among many, including actors, campaigns, malware, tools and vulnerabilities.

Can I use STIX without TAXII?

Yes. The format is transport agnostic. You can exchange bundles by file or any other channel.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.