NAME
STIX - Structured Threat Information Expression (STIX)
SYNOPSIS
# Object-Oriented interface
use STIX::Indicator;
use STIX::Common::Timestamp;
use STIX::Common::Bundle;
my $bundle = STIX::Common::Bundle->new;
push @{ $bundle->objects }, STIX::Indicator->new(
pattern_type => 'stix',
created => STIX::Common::Timestamp->new('2014-05-08T09:00:00'),
name => 'IP Address for known C2 channel',
description => 'Test description C2 channel.',
indicator_types => ['malicious-activity'],
pattern => "[ipv4-addr:value = '10.0.0.0']",
valid_from => STIX::Common::Timestamp->new('2014-05-08T09:00:00'),
);
# Functional interface
use STIX qw(:all);
my $bundle = bundle(
objects => [
indicator(
pattern_type => 'stix',
created => '2014-05-08T09:00:00',
name => 'IP Address for known C2 channel',
description => 'Test description C2 channel.',
indicator_types => ['malicious-activity'],
pattern => "[ipv4-addr:value = '10.0.0.0']",
valid_from => '2014-05-08T09:00:00',
)
]
);
DESCRIPTION
Structured Threat Information Expression (STIX) is a language for expressing cyber threat and observable information.
https://docs.oasis-open.org/cti/stix/v2.1/os/stix-v2.1-os.html
Tags
- :all
-
Import all STIX objects
- :common
-
Import all common objects
- :sco
-
Import all STIX Cyber-observable Objects
- :sdo
-
Import all STIX Domain Objects
- :sro
-
Import all STIX Relationship Objects
- :tlp
-
Import TLP (Traffic Light Protocol) statement marking
STIX Domain Objects
STIX defines a set of STIX Domain Objects (SDOs): Attack Pattern, Campaign, Course of Action, Grouping, Identity, Indicator, Infrastructure, Intrusion Set, Location, Malware, Malware Analysis, Note, Observed Data, Opinion, Report, Threat Actor, Tool, and Vulnerability. Each of these objects corresponds to a concept commonly used in CTI.
- attack_pattern
-
Return STIX::AttackPattern object.
- campaign
-
Return STIX::Campaign object.
- course_of_action
-
Return STIX::CourseOfAction object.
- grouping
-
Return STIX::Grouping object.
- identity
-
Return STIX::Identity object.
- incident
-
Return STIX::Incident object.
- indicator
-
Return STIX::Indicator object.
- infrastructure
-
Return STIX::Infrastructure object.
- intrusion_set
-
Return STIX::IntrusionSet object.
- location
-
Return STIX::Location object.
- malware
-
Return STIX::Malware object.
- malware_analysis
-
Return STIX::MalwareAnalysis object.
- note
-
Return STIX::Note object.
- observed_data
-
Return STIX::ObservedData object.
- opinion
-
Return STIX::Opinion object.
- report
-
Return STIX::Report object.
- threat_actor
-
Return STIX::ThreatActor object.
- tool
-
Return STIX::Tool object.
- vulnerability
-
Return STIX::Vulnerability object.
STIX Cyber-observable Objects
STIX defines a set of STIX Cyber-observable Objects (SCOs) for characterizing host-based and network-based information. SCOs are used by various STIX Domain Objects (SDOs) to provide supporting context. The Observed Data SDO, for example, indicates that the raw data was observed at a particular time.
STIX Cyber-observable Objects (SCOs) document the facts concerning what happened on a network or host, and do not capture the who, when, or why. By associating SCOs with STIX Domain Objects (SDOs), it is possible to convey a higher-level understanding of the threat landscape, and to potentially provide insight as to the who and the why particular intelligence may be relevant to an organization. For example, information about a file that existed, a process that was observed running, or that network traffic occurred between two IPs can all be captured as SCOs.
- artifact
-
Return STIX::Observable::Artifact object.
- autonomous_system
-
Return STIX::Observable::AutonomousSystem object.
- directory
-
Return STIX::Observable::Directory object.
- domain_name
-
Return STIX::Observable::DomainName object.
- email_addr
-
Return STIX::Observable::EmailAddr object.
- email_message
-
Return STIX::Observable::EmailMessage object.
- file
-
Return STIX::Observable::File object.
- ipv4_addr
-
Return STIX::Observable::IPv4Addr object.
- ipv6_addr
-
Return STIX::Observable::IPv6Addr object.
- mac_addr
-
Return STIX::Observable::MACAddr object.
- mutex
-
Return STIX::Observable::Mutex object.
- network_traffic
-
Return STIX::Observable::NetworkTraffic object.
- process
-
Return STIX::Observable::Process object.
- software
-
Return STIX::Observable::Software object.
- url
-
Return STIX::Observable::URL object.
- user_account
-
Return STIX::Observable::UserAccount object.
- windows_registry_key
-
Return STIX::Observable::WindowsRegistryKey object.
- x509_certificate
-
Return STIX::Observable::X509Certificate object.
Types
- alternate_data_stream_type
-
Return STIX::Observable::Type::AlternateDataStream object.
- email_mime_part_type
-
Return STIX::Observable::Type::EmailMIMEPart object.
- windows_registry_value_type
-
Return STIX::Observable::Type::WindowsRegistryValue object.
- x509_v3_extensions_type
-
Return STIX::Observable::Type::X509V3Extensions object.
Extensions
- archive_ext
-
Return STIX::Observable::Extension::Archive object.
- http_request_ext
-
Return STIX::Observable::Extension::HTTPRequest object.
- icmp_ext
-
Return STIX::Observable::Extension::ICMP object.
- ntfs_ext
-
Return STIX::Observable::Extension::NTFS object.
- pdf_ext
-
Return STIX::Observable::Extension::PDF object.
- raster_image_ext
-
Return STIX::Observable::Extension::RasterImage object.
- socket_ext
-
Return STIX::Observable::Extension::Socket object.
- tcp_ext
-
Return STIX::Observable::Extension::TCP object.
- unix_account_ext
-
Return STIX::Observable::Extension::UnixAccount object.
- windows_process_ext
-
Return STIX::Observable::Extension::WindowsProcess object.
- windows_service_ext
-
Return STIX::Observable::Extension::WindowsService object.
STIX Relationship Objects
A relationship is a link between STIX Domain Objects (SDOs), STIX Cyber-observable Objects (SCOs), or between an SDO and a SCO that describes the way in which the objects are related. Relationships can be represented using an external STIX Relationship Object (SRO) or, in some cases, through certain properties which store an identifier reference that comprises an embedded relationship.
- relationship
-
Return STIX::Relationship object.
- sighting
-
Return STIX::Sighting object.
Common Objects
STIX Domain Objects (SDOs) and Relationship Objects (SROs) all share a common set of properties which provide core capabilities such as versioning and data markings (representing how data can be shared and used). All STIX Cyber-observable Objects (SCOs) likewise share a common set of properties that are applicable for all SCOs. Similarly, STIX Meta Objects (SMOs) use some but not all of the common properties.
- bundle
-
Return STIX::Common::Bundle object.
- extension_definition
-
Return STIX::Common::ExtensionDefinition object.
- external_reference
-
Return STIX::Common::ExternalReference object.
- granular_marking
-
Return STIX::Common::GranularMarking object.
- kill_chain_phase
-
Return STIX::Common::KillChainPhase object.
- marking_definition
-
Return STIX::Common::MarkingDefinition object.
TLP
- tlp_white
-
Return STIX::Marking::TLP::White object.
- tlp_green
-
Return STIX::Marking::TLP::Green object.
- tlp_amber
-
Return STIX::Marking::TLP::Amber object.
- tlp_red
-
Return STIX::Marking::TLP::Red object.
SUPPORT
Bugs / Feature Requests
Please report any bugs or feature requests through the issue tracker at https://github.com/giterlizzi/perl-STIX/issues. You will be notified automatically of any progress on your issue.
Source Code
This is open source software. The code repository is available for public review and contribution under the terms of the license.
https://github.com/giterlizzi/perl-STIX
git clone https://github.com/giterlizzi/perl-STIX.git
AUTHOR
Giuseppe Di Terlizzi <gdt@cpan.org>
LICENSE AND COPYRIGHT
This software is copyright (c) 2024 by Giuseppe Di Terlizzi.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.