stix2
A Rust implementation of STIX 2.1 (Structured Threat Information Expression) for representing and exchanging cyber threat intelligence.
Features
- STIX Domain Objects (SDOs): Attack Pattern, Campaign, Course of Action, Grouping, Identity, Incident, Indicator, Infrastructure, Intrusion Set, Location, Malware, Malware Analysis, Note, Observed Data, Opinion, Report, Threat Actor, Tool, Vulnerability
- STIX Relationship Objects (SROs): Relationship, Sighting
- STIX Cyber Observable Objects (SCOs): Artifact, Autonomous System, Directory, Domain Name, Email Address, Email Message, File, IPv4/IPv6 Address, MAC Address, Mutex, Network Traffic, Process, Software, URL, User Account, Windows Registry Key, X.509 Certificate
- Data Markings: TLP (Traffic Light Protocol), Statement markings
- Pattern Language: Full parser for STIX indicator patterns
- DataStore Abstractions: Memory store, FileSystem store, Composite data sources
- Validation: Property validation per STIX specification
- Versioning: Object versioning and revocation utilities
- Equivalence: Semantic equivalence and similarity checking
- Graph Analysis: Relationship graph traversal and analysis
- Canonicalization: Deterministic JSON canonicalization with hashing
- STIX 2.0 Compatibility: Parse and detect STIX 2.0 content
Installation
Add to your Cargo.toml:
[]
= "0.1"
Feature Flags
default- Core functionality (no async)async- Enables async datastore operations with tokio and reqwesttaxii- Enables TAXII client support (includesasync)
# With async support
= { = "0.1", = ["async"] }
Quick Start
use *;
Working with Bundles
use *;
DataStore Usage
use *;
STIX Pattern Parsing
use Pattern;
License
BSD-3-Clause