ocsf
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseOCSF
OCSF
Look up OCSF reference documentation and answer from those sources. Only state
facts from files you read. Never invent schema details. If the documentation
does not cover the question, say so.
查阅OCSF参考文档并从中获取答案。仅陈述你从文档中读取到的事实内容,切勿编造架构细节。如果文档未覆盖相关问题,请直接说明。
Versions
版本
Use the latest stable version unless the user requests a specific one. Stick to
one version per answer.
- 1.0.0
- 1.1.0
- 1.2.0
- 1.3.0
- 1.4.0
- 1.5.0
- 1.6.0
- 1.7.0 ← latest stable
- 1.8.0-dev ← unreleased development snapshot
Each version page links to its classes, objects, profiles, extensions, and
types.
除非用户指定特定版本,否则使用最新稳定版本。每次回答仅使用一个版本。
- 1.0.0
- 1.1.0
- 1.2.0
- 1.3.0
- 1.4.0
- 1.5.0
- 1.6.0
- 1.7.0 ← 最新稳定版
- 1.8.0-dev ← 未发布的开发快照
每个版本页面都链接到对应的类、对象、配置文件、扩展和类型文档。
File layout
文件结构
introduction.md # OCSF overview and conceptual sections
introduction/{section}.md
faqs.md # Schema design rationale
faqs/{slug}.md
articles.md # Deep-dive guides on specific topics
articles/{slug}.md
{version}.md # Version summary (what's new, counts)
{version}/classes.md # Class index grouped by category
{version}/classes/{name}.md
{version}/objects.md
{version}/objects/{name}.md
{version}/profiles.md
{version}/profiles/{name}.md
{version}/extensions.md
{version}/extensions/{name}/index.md
{version}/extensions/{name}/events/{event}.md
{version}/extensions/{name}/objects/{object}.md
{version}/extensions/{name}/profiles/{profile}.md
{version}/types.mdintroduction.md # OCSF概述及概念章节
introduction/{section}.md
faqs.md # 架构设计原理
faqs/{slug}.md
articles.md # 特定主题的深度指南
articles/{slug}.md
{version}.md # 版本概要(新增内容、统计信息)
{version}/classes.md # 按类别分组的类索引
{version}/classes/{name}.md
{version}/objects.md
{version}/objects/{name}.md
{version}/profiles.md
{version}/profiles/{name}.md
{version}/extensions.md
{version}/extensions/{name}/index.md
{version}/extensions/{name}/events/{event}.md
{version}/extensions/{name}/objects/{object}.md
{version}/extensions/{name}/profiles/{profile}.md
{version}/types.mdQuestion routing
问题路由
Pick the shortest reading path for the question type.
| Question pattern | Start here |
|---|---|
| Which class fits event X? | Category table below → version classes index → candidate class pages |
| What attributes does class/object Y have? | Version classes or objects index → the specific page |
| How do profiles work? / Which profile for X? | Introduction: Profiles → version profiles index |
| How do I extend the schema? | Introduction: Extensions or Patching the Core Schema |
| How do I populate observables / model alerts? | FAQs and Articles |
| What changed between versions? | Compare the two version pages |
| Conceptual / design question | Introduction → FAQs |
When the question asks you to pick a class, read multiple candidates and explain
trade-offs.
根据问题类型选择最短的查阅路径。
| 问题类型 | 起始查阅位置 |
|---|---|
| 事件X适合哪个类? | 下方类别表 → 对应版本的类索引 → 候选类页面 |
| 类/对象Y有哪些属性? | 对应版本的类或对象索引 → 具体页面 |
| 配置文件如何工作?/ 场景X适合哪个配置文件? | 简介:配置文件 → 对应版本的配置文件索引 |
| 如何扩展架构? | 简介:扩展 或 使用扩展修补核心架构 |
| 如何填充可观测数据 / 建模告警? | 常见问题 和 深度指南 |
| 版本之间有哪些变化? | 对比两个版本的概要页面 |
| 概念性/设计类问题 | 简介 → 常见问题 |
当问题要求选择某个类时,请查阅多个候选类并解释取舍原因。
Domain knowledge
领域知识
Core concepts
核心概念
Attributes are named fields with a data type. Every OCSF field has a
requirement level: required, recommended, or optional.
Objects group related attributes into reusable structures. Objects can nest
other objects.
Event classes define schemas for specific security events. Each class belongs
to a category and inherits from Base Event.
Base Event provides universal attributes and serves as a catch-all when no
more specific class fits.
Profiles are mix-ins that add cross-cutting attributes. A class can apply
multiple profiles.
Extensions add vendor-specific attributes without modifying the core schema.
属性是带有数据类型的命名字段。每个OCSF字段都有一个要求级别:必填、推荐或可选。
对象将相关属性分组为可复用的结构。对象可以嵌套其他对象。
事件类为特定安全事件定义架构。每个类都属于一个类别并继承自基础事件(Base Event)。
**基础事件(Base Event)**提供通用属性,当没有更具体的类适用时作为通用备选。
配置文件是添加跨领域属性的混合模块。一个类可以应用多个配置文件。
扩展用于添加厂商特定属性,无需修改核心架构。
Event categories
事件类别
Use the category range to narrow scope before diving into individual class
pages.
| Range | Category | Focus |
|---|---|---|
| 1xxx | System Activity | OS-level: process, file, module, memory, kernel, registry |
| 2xxx | Findings | Detections, vulnerabilities, incidents, compliance |
| 3xxx | IAM | Authentication, authorization, account and group changes |
| 4xxx | Network Activity | General traffic and protocol-specific activity |
| 5xxx | Discovery | Device, user, service, and resource enumeration |
| 6xxx | Application Activity | Web resources, API calls, file hosting, datastore operations |
| 7xxx | Remediation | File, process, network, and entity remediation actions |
| 8xxx | Unmanned | Drones, vehicles, and robots |
在深入单个类页面之前,可使用类别范围缩小查阅范围。
| 范围 | 类别 | 关注点 |
|---|---|---|
| 1xxx | 系统活动 | 操作系统级别:进程、文件、模块、内存、内核、注册表 |
| 2xxx | 检测结果 | 威胁检测、漏洞、事件、合规性 |
| 3xxx | 身份与访问管理(IAM) | 认证、授权、账户和组变更 |
| 4xxx | 网络活动 | 通用流量和特定协议活动 |
| 5xxx | 发现 | 设备、用户、服务和资源枚举 |
| 6xxx | 应用活动 | Web资源、API调用、文件托管、数据存储操作 |
| 7xxx | 修复操作 | 文件、进程、网络和实体修复操作 |
| 8xxx | 无人系统 | 无人机、车辆和机器人 |
Naming conventions
命名规范
- everywhere:
snake_case,process_activity.network_endpoint - Arrays use plural names: ,
answers,enrichments.attacks - When is
_id(Other), the sibling string must be populated with the source value.99
Key suffixes:
| Suffix | Meaning |
|---|---|
| Enum integer identifier with a sibling string (same name minus |
| Schema-unique or external unique identifier (integer for classification attrs, string otherwise). Sibling uses |
| Globally unique 128-bit identifier (string). No sibling. |
| Friendly name / caption sibling for |
| Timestamp ( |
| Datetime ( |
| Object carrying supplementary information. |
| Reference to a Process object. |
| Version string. |
| Array of values. |
- 所有命名使用:
snake_case、process_activity。network_endpoint - 数组使用复数名称:、
answers、enrichments。attacks - 当为
_id(值为Other)时,必须填充对应的字符串字段(名称为99去掉后缀)。_id
关键后缀:
| 后缀 | 含义 |
|---|---|
| 枚举整数标识符,对应一个字符串字段(名称去掉 |
| 架构唯一或外部唯一标识符(分类属性为整数,其他为字符串)。对应字段使用 |
| 全局唯一的128位标识符(字符串类型),无对应字段。 |
| 与 |
| 时间戳( |
| 日期时间( |
| 承载补充信息的对象。 |
| 指向Process对象的引用。 |
| 版本字符串。 |
| 值的数组。 |
Answering principles
回答原则
- Read before answering. Every claim must trace back to a file you read.
- Use the question routing table and category table to narrow scope before reading class or object pages.
- Consult FAQs for schema design rationale and ambiguous mappings.
- Consult Articles for deep-dive topics like observables, alerts, process parentage, and extensions.
- Read Introduction sections for conceptual questions about the framework itself.
- 先查阅再回答。所有陈述必须能追溯到你读取的文档内容。
- 在查阅类或对象页面之前,使用问题路由表和类别表缩小范围。
- 关于架构设计原理和模糊映射的问题,查阅常见问题。
- 关于可观测数据、告警、进程父级关系和扩展等深度主题,查阅深度指南。
- 关于框架本身的概念性问题,查阅简介章节。