implementing-stix-taxii-feed-integration

Implement STIX/TAXII 2.1 feed consumers and producers for cyber threat intelligence integration.

954|172|Updated Mar 13, 2026
One-click install
npx skills add https://github.com/xalgord/xalgorix --skill implementing-stix-taxii-feed-integration
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: implementing-stix-taxii-feed-integration
Source: https://github.com/xalgord/xalgorix/tree/main/internal/tools/skills/data/threat-intelligence/implementing-stix-taxii-feed-integration
Command: npx skills add https://github.com/xalgord/xalgorix --skill implementing-stix-taxii-feed-integration

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires taxii2-client, stix2, cti-taxii-client, medallion, requests.

What problem does it solve?

Integrating cyber threat intelligence feeds into security tooling requires correctly handling the STIX 2.1 data model and TAXII 2.1 transport protocol, where mistakes like dropped pagination or broken incremental polling silently lose intelligence data.

Core Features & Use Cases

  • TAXII Server Discovery & Polling: Connect to TAXII 2.1 servers like MITRE ATT&CK, enumerate API roots and collections, and fetch STIX objects with correct pagination and incremental added_after polling.
  • STIX Object Parsing & IOC Extraction: Parse SDOs, SCOs, and SROs with the stix2 library, query relationships, and extract actionable indicators and observables.
  • Local TAXII Server & Feed Publishing: Run a medallion-based local TAXII server and push STIX bundles to collections for sharing intelligence.
  • Use Case: A SOC analyst builds a Python consumer that polls the MITRE ATT&CK TAXII collection daily, extracts new indicators and observables, and forwards them into the organization's SIEM for detection rule updates.

Quick Start

Ask the AI to write a Python script that connects to the MITRE ATT&CK TAXII server, fetches all objects from the Enterprise ATT&CK collection with pagination, and extracts the indicators.

Frequently Asked Questions about implementing-stix-taxii-feed-integration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fetch STIX objects from a TAXII 2.1 server in Python?

Use the taxii2-client library to connect to a TAXII 2.1 server, enumerate API roots and collections, then call get_objects with as_pages to iterate paginated results. The MITRE ATT&CK TAXII server at cti-taxii.mitre.org is a common public source.

How to extract IOCs from STIX 2.1 indicator objects?

Filter STIX objects where type equals indicator and read the pattern field, which contains the STIX pattern expression. Also extract SCOs like ipv4-addr, domain-name, url, and file objects, since raw observables often live outside indicator objects.

Why does my TAXII polling only return the first page of results?

Calling get_objects once returns only the first envelope page for large collections. Wrap the call in as_pages from taxii2-client and iterate until all pages are exhausted, logging the running total to confirm completeness.

Does TAXII 2.1 incremental polling work with added_after timestamps?

Yes, pass an added_after parameter in UTC format %Y-%m-%dT%H:%M:%S.000Z to fetch only new objects. Persist the server-returned timestamp per collection, since local-time or malformed timestamps cause re-fetching or skipped objects.

Can I run a local TAXII 2.1 server for testing?

Yes, the medallion package from OASIS provides a local TAXII 2.1 server with configurable users and backends. You can push STIX bundles to its collections via POST requests with the application/stix+json;version=2.1 content type.

What is the difference between STIX indicators and SCOs?

Indicators are SDOs containing detection patterns with context like valid_from and confidence, while SCOs such as ipv4-addr and domain-name are raw cyber observables. Consumers must handle both families or they miss actual observable values.