ocsf/examples

GitHub: ocsf/examples

一份 OCSF 事件映射与编码示例集合,解决日志标准化与互操作性问题。

Stars: 60 | Forks: 39

# OCSF 示例 免责声明:本仓库绝不是 OCSF 映射的“黄金标准”。它仅作为示例,展示如何将日志解释并映射到 OCSF。这些示例仅供信息参考。 本仓库 OCSF Examples 包含一组 用于 OCSF 的 支持性内容,例如: 1. 示例映射(原始事件到 OCSF 事件), 2. OCSF 转换数据集的演示用例集合, 3. 笔记与工具,用于帮助开发 OCSF 相关技术(例如, 使用不同技术编码 OCSF 事件的最佳实践推荐) ## 映射 映射的核心在于将“原生”事件转换为 OCSF 事件。 也就是说,将来自 未感知 OCSF 的系统的语法与语义,映射到 OCSF 类中的实例。 ### 示例映射 可在本仓库的 `/mappings` 目录中找到多种示例映射。映射根据用于转换的 DSL(领域特定语言)进行组织。此外,部分映射以通用 Markdown 文件形式提供。原始事件及其对应的 OCSF 标准化事件也可在每个映射提交的 /samples 子目录中找到。 ### 如何提交您的映射? 1. 使用与所用映射 DSL 对应的目录。如果目录不存在,请自由创建。若要提交与平台无关的映射,可以使用 [提交规范](https://github.com/ocsf/examples/blob/main/mappings/markdown/submission_spec.md) 中描述的 Markdown 格式。 2. 在平台/DSL 目录中,所有映射按 `厂商 > OCSF 版本 > 产品 > _mappings_` 结构组织。缺失时请相应创建子目录。 3. 每个映射示例必须附带样本输入日志记录及其对应的 OCSF 转换记录。在 `product` 目录中创建 `samples` 子目录,用于存储样本输入记录(文件名为 `*.raw`)及其 OCSF 转换版本(文件名为 `*.ocsf`)。 4. 确保转换后的 OCSF 记录为有效的 OCSF 文件,请使用此处提供的 [验证端点](https://schema.ocsf.io/doc/index.html#/Tools/SchemaWeb_SchemaController_validate)。 5. 上述结构的参考示例可在此处找到:[参考结构](https://github.com/ocsf/examples/tree/main/mappings/markdown/AWS)。 ## 编码与表示 编码关乎 OCSF 事件(OCSF 类的实例)如何序列化,以便在空间(例如在系统之间通过网络传输)或时间(例如保存到磁盘)中传输,也就是将抽象 OCSF 模式的事件转换为字节序列的过程。例如,[JSON](https://www.json.org/json-en.html) 是表示 OCSF 事件为字节序列的一种方式。(由于 OCSF 从一开始就基于 JSON 视角构建,因此对该编码的建议非常明确) 更一般地,表示指的是 OCSF 事件在计算系统中的表示方式。这里,“表示”通常指 OCSF 事件如何在进程的内存中建模,因此更侧重于语言特定的数据结构。例如,在 [Go](https://go.dev/) 中,通常使用 `struct` 类型来表示具有命名字段的对象。 请注意,这些是**指导性**建议,旨在通过分享经验并为开发者提供起步帮助,从而围绕 OCSF 的系统开发;OCSF 事件的权威来源是 OCSF 模式本身。然而,为了实现不同厂商构建的系统之间的互操作性,一致性非常重要。 有关编码与表示的更多细节,请参见 [`encodings/`](encodings/README.md) 目录。 ## raw_sample_log_dataset 此目录用于存储已清理的日志数据集。文本数据集在达到 50MB 时会抛出错误,并在达到 100MB 时无法上传,因此请保持文件小于 100MB。请尽量提供事件类型基数较高的日志文件数据集。数据集中的事件类型越多,条件化映射每个日志源就越容易。感谢您参与 OCSF。文件结构应为“厂商名称”/“厂商产品” -> file.json
标签:Android, DNS解析, DSL, Homebrew安装, Markdown, OCSF, 事件分类, 事件映射, 元数据收集, 原始事件, 安全数据, 安全运营, 平台无关, 开放网络安全框架, 开源项目, 扫描框架, 技术文档, 提交规范, 日志格式, 日志规范化, 日志解析, 日志转换, 映射示例, 最佳实践, 示例代码, 证书伪造, 转换工具, 防御加固