参考链接:https://oasis-open.github.io/cti-documentation/
结构化威胁信息表达 (STIX™) 是一种用于 交换网络威胁情报 (CTI) 的语言和序列化格式。
STIX 信息可以直观地呈现给分析师或存储为 JSON 以便快速机器读取。STIX 的开放性允许集成到现有工具和产品中,或用于满足您的特定分析师或网络需求。
STIX 2.1数据模型
[>] STIX Domain Objects (SDOs): 描述网络安全相关的核心数据,例如攻击模式、威胁行动者、工具、漏洞、攻击活动等。
STIX 2.1 定义了 18 个 STIX 域对象 (SDO):
目的 | 姓名 | 描述 |
---|---|---|
攻击模式 | 一种 TTP,描述了对手试图破坏目标的方式。 | |
活动 | 一组对抗性行为,描述了在一段时间内针对一组特定目标发生的一组恶意活动或攻击(有时称为波)。 | |
行动方针 | 情报生产者向消费者提出的关于他们可能针对该情报采取的行动的建议。 | |
分组 | 显式断言所引用的 STIX 对象具有共享上下文,这与 STIX Bundle(显式不传递上下文)不同。 | |
身份 | 实际的个人、组织或团体(例如 ACME, Inc.)以及个人、组织、系统或团体的类别(例如金融部门)。 | |
指标 | 包含可用于检测可疑或恶意网络活动的模式。 | |
基础设施 | 代表一种 TTP 并描述旨在支持某些目的的任何系统、软件服务和任何相关的物理或虚拟资源(例如,作为攻击一部分的 C2 服务器、作为防御一部分的设备或服务器、由攻击等)。 | |
入侵集 | 一组具有共同属性的对抗性行为和资源的组合,被认为是由单个组织精心策划的。 | |
地点 | 表示地理位置。 | |
恶意软件 | 一种代表恶意代码的 TTP。 | |
恶意软件分析 | 对恶意软件实例或家族执行的特定静态或动态分析的元数据和结果。 | |
笔记 | 传达信息性文本以提供进一步的上下文和/或提供未包含在与注释相关的 STIX 对象、标记定义对象或语言内容对象中的附加分析。 | |
观测数据 | 使用 STIX 网络可观察对象 (SCO) 传达有关网络安全相关实体的信息,例如文件、系统和网络。 | |
观点 | 对不同实体生成的 STIX 对象中信息正确性的评估。 | |
报告 | 威胁情报集合专注于一个或多个主题,例如对威胁参与者、恶意软件或攻击技术的描述,包括上下文和相关详细信息。 | |
威胁演员 | 被认为怀有恶意的实际个人、团体或组织。 | |
工具 | 威胁参与者可以用来执行攻击的合法软件。 | |
漏洞 | 可以被黑客直接用来访问系统或网络的软件错误。 |
[>] STIX Relationship Objects (SROs): 描述SDOs之间的关系,例如攻击模式使用了哪个工具,哪个威胁行动者执行了哪个攻击活动等。
STIX 2 定义了两个 STIX 关系对象 (SRO):
目的 | 姓名 | 描述 |
---|---|---|
关系 | 用于将两个 SDO 或 SCO 链接在一起,以描述它们如何相互关联。 | |
瞄准 | 表示相信看到 CTI 中的某些东西(例如,指示器、恶意软件、工具、威胁参与者等)。 |
[>] STIX Cyber Observable Objects (SCOs): 描述可以在网络环境中观察到的实体和行为,例如IP地址、文件、URL等。
Artifact
: 一些原始的、未处理的数据,比如可能是一个捕获的网络数据包的二进制表示。Autonomous-System
: 自主系统(AS)是一组IP网络,由一个网络运营商运行,具有统一的路由策略。Directory
: 文件系统的目录。Domain-Name
: 域名,例如example.com
。Email-Addr
: 电子邮件地址。Email-Message
: 电子邮件消息及其相关属性。File
: 文件及其相关属性。IPv4-Addr
: IPv4 地址。IPv6-Addr
: IPv6 地址。MAC-Addr
: MAC 地址。Mutex
: 互斥对象,通常用于同步对共享资源的访问。Network-Traffic
: 网络流量,包括源/目标 IP 地址,端口号等。Process
: 操作系统中的进程。Software
: 软件或软件产品。URL
: URL。User-Account
: 用户账户。Windows-Registry-Key
: Windows 注册表项。X509-Certificate
: X.509 数字证书。
[>] STIX Patterning: 用于描述复杂的威胁指标
STIX Patterning 是 STIX 2.1 数据模型中的一个关键组成部分,它提供了一种灵活的方式来描述复杂的观察模式,这些模式可以用于表示各种类型的威胁情报。STIX Pattern 语言是基于 STIX Cyber Observable(观察对象)数据模型的,并且支持用于描述复杂威胁模式的丰富操作符。
STIX Patterning 包含以下主要的组成部分:
- 基础比较操作符:STIX Pattern 支持各种基本的比较操作符,包括等于
=
, 不等于!=
, 大于>
, 小于<
, 大于等于>=
, 小于等于<=
, 匹配MATCHES
, 包含IN
, 像LIKE
等。 - 逻辑操作符:STIX Pattern 支持逻辑操作符
AND
,OR
和NOT
,以表示复杂的逻辑条件。 - 时间和频率操作符:STIX Pattern 支持描述时间和频率的操作符,如
FIRST SEEN
,LAST SEEN
,WITHIN
,REPEATS
等,可以用于描述观察到的行为的时间和频率。 - 集合操作符:STIX Pattern 支持描述集合的操作符,如
ANY
,ALL
,NONE
等,可以用于描述一组观察对象中的某些属性。 - 对象路径:STIX Pattern 使用对象路径(Object Path)来访问 STIX Cyber Observable 对象的具体属性。
- 限定符:STIX Pattern 支持一些限定符,如
SQUARE BRACKETS
来限制范围,或QUALIFIERS
来提供额外的上下文。
[>] Bundle: 用于打包和传输STIX数据,可以包含任何类型的STIX对象
[>] Marking Definitions and Object Markings: 用于标记和处理敏感的STIX数据
在 STIX 2.1 数据模型中,Marking Definitions 和 Object Markings 是用于处理数据标记和访问控制的关键组成部分。
- Marking Definitions: Marking Definitions 用于定义如何标记 STIX 数据对象。它们定义了一种规则或方法,用于描述如何处理和共享 STIX 数据对象。例如,一个 Marking Definition 可能会指定某个 STIX 对象仅限于特定的组织或个人查看。STIX 2.1 支持多种类型的标记定义,包括 TLP (Traffic Light Protocol),以及可以自定义的标记。每个 Marking Definition 都有一个唯一的 ID,并且可以被应用到一个或多个 STIX 对象上。
- Object Markings: Object Markings 是将 Marking Definitions 应用到 STIX 数据对象上的具体操作。一个 STIX 对象可以有一个或多个 Object Marking,每个 Object Marking 都引用一个 Marking Definition,并定义了这个标记应用的范围。例如,一个 Object Marking 可以指定一个特定的 Marking Definition 应用于一个 STIX 对象的所有属性,或者只应用于特定的属性。
通过这种方式,Marking Definitions 和 Object Markings 提供了一种灵活的机制,用于管理 STIX 数据的访问和共享。这对于处理敏感的威胁情报数据尤其重要,因为这些数据可能需要根据不同的访问权限和共享规则进行处理。
[>] Language Content: 提供了一种方式在STIX数据中添加人类可读的内容
Language Content 对象在 STIX 2.1 中用于提供有关 STIX 域对象 (SDO) 和 STIX 关系对象 (SRO) 的翻译和其他语言内容。每个 Language Content 对象都需要有一个特定的对象类型和 ID,以表示它为哪个 STIX 对象提供语言内容。
Language Content 对象有以下主要属性:
type
: 对象类型,在这里总是 “language-content”。id
: 对象的唯一标识符。spec_version
: STIX 规范的版本号,比如 “2.1”。created
: 对象创建的日期和时间。modified
: 对象最后一次修改的日期和时间。object_ref
: 这是一个引用,指向这个 Language Content 对象所提供翻译或其他语言内容的 STIX 对象。object_modified
: 这是一个时间戳,表示被引用对象最后一次修改的日期和时间。这有助于确定 Language Content 对象是否与其所引用的对象的当前版本相匹配。contents
: 这是一个字典,其键是 BCP 47 语言标签,值是具体的翻译或语言内容。
使用 Language Content 对象,可以为 STIX 对象提供多语言支持,使得跨语言的威胁情报共享和协作更加方便。
示例
STIX 2 对象以 JSON 表示。以下是STIX 2.1 Campaign 对象的基于 JSON 的示例:
{
"type": "campaign",
"id": "campaign--8e2e2d2b-17d4-4cbf-938f-98ee46b3cd3f",
"spec_version": "2.1",
"created": "2016-04-06T20:03:00.000Z",
"modified": "2016-04-06T20:03:23.000Z",
"name": "Green Group Attacks Against Finance",
"description": "Campaign by Green Group against targets in the financial services sector."
}