tenzir-ocsf について
OCSF の参照ドキュメントを調べ、その内容に基づいて回答するスキルです。セキュリティイベントのスキーマを扱う人向けで、関連ファイルを読んだうえで、記載された事実のみを述べます。
主な機能
- 01質問に応じて資料を選択
- 02バージョン・クラス・オブジェクトを検索
- 03OCSF の主要概念を説明
- 04参照した資料に基づいて回答
活用シーン
- 01セキュリティイベントに適したクラスの選択
- 02クラスやオブジェクトの属性確認
- 03スキーマのバージョン変更の確認
- 04拡張とプロファイルの調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tenzir/ skills --skill tenzir-ocsfインストール後、Claude Code で/tenzir-ocsfを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
articles.mdfaqs.mdintroduction.mdv1.0.0.mdarticles/defining-and-using-observables.mdmodeling-alerts.mdOCSF-Storage-Strategies.mdpatching-core-using-extensions.mdprofiles-are-powerful.mdrepresenting-process-parentage.mdfaqs/schema-faq.mdintroduction/appendix-a-guidelines-and-conventions.mdappendix-b-data-types.mdappendix-c-schema-construction-and-extension.mdattributes.mdcategories.mdevent-classes.mdextensions.mdintroduction-to-the-framework-and-schema.mdnotes.mdprofiles.mdunderstanding-the-open-cybersecurity-schema-framework.mdv1.0.0/classes.mdv1.0.0/classes/account_change.mdapi_activity.mdapplication_lifecycle.mdapplication.mdauthentication.mdauthorize_session.mdbase_event.md詳細
OCSF
OCSF のリファレンスドキュメントを参照し、その情報に基づいて回答してください。読んだファイルに記載されている事実のみを述べてください。スキーマの詳細を決して捏造しないでください。ドキュメントに質問への記載がない場合は、その旨を伝えてください。
バージョン
ユーザーが特定のバージョンを指定しない限り、最新の安定版を使用してください。1 つの回答では、1 つのバージョンに統一してください。
各バージョンのページから、クラス、オブジェクト、プロファイル、拡張機能、型に関するページに移動できます。
ファイル構成
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.md
質問に応じた参照先
質問の種類に応じて、最短の参照経路を選んでください。
| 質問のパターン | 最初に参照する場所 |
|---|---|
| イベント X に適したクラスはどれですか? | 下記のカテゴリ表 → バージョン別のクラス一覧 → 候補となるクラスのページ |
| クラス/オブジェクト Y の属性は何ですか? | バージョン別のクラスまたはオブジェクトの一覧 → 該当するページ |
| プロファイルはどのように機能しますか?/X にはどのプロファイルが適していますか? | Introduction: Profiles → バージョン別のプロファイル一覧 |
| スキーマを拡張するにはどうすればよいですか? | Introduction: Extensions または Patching the Core Schema |
| オブザーバブルの設定/アラートのモデル化はどのように行いますか? | FAQs および Articles |
| バージョン間で何が変更されましたか? | 2 つのバージョンのページを比較 |
| 概念や設計に関する質問 | Introduction → FAQs |
質問でクラスの選定が求められている場合は、複数の候補を読み、トレードオフを説明してください。
ドメイン知識
基本概念
属性は、データ型を持つ名前付きのフィールドです。OCSF のすべてのフィールドには、必須、推奨、任意のいずれかの要件レベルがあります。
オブジェクトは、関連する属性を再利用可能な構造にまとめたものです。オブジェクトには、ほかのオブジェクトをネストできます。
イベントクラスは、特定のセキュリティイベントのスキーマを定義します。各クラスはカテゴリに属し、Base Event を継承します。
Base Eventは、共通の属性を提供し、より具体的なクラスが適合しない場合の包括的なクラスとして機能します。
プロファイルは、複数の領域にまたがる属性を追加するミックスインです。1 つのクラスに複数のプロファイルを適用できます。
拡張機能は、コアスキーマを変更せずに、ベンダー固有の属性を追加します。
イベントカテゴリ
個々のクラスのページを詳しく確認する前に、カテゴリの範囲を使って対象を絞り込んでください。
| 範囲 | カテゴリ | 対象 |
|---|---|---|
| 1xxx | システムアクティビティ | OS レベル:プロセス、ファイル、モジュール、メモリ、カーネル、レジストリ |
| 2xxx | 検出結果 | 検知、脆弱性、インシデント、コンプライアンス |
| 3xxx | IAM | 認証、認可、アカウントおよびグループの変更 |
| 4xxx | ネットワークアクティビティ | 一般的なトラフィックおよびプロトコル固有のアクティビティ |
| 5xxx | 検出 | デバイス、ユーザー、サービス、リソースの列挙 |
| 6xxx | アプリケーションアクティビティ | Web リソース、API 呼び出し、ファイルホスティング、データストア操作 |
| 7xxx | 修復 | ファイル、プロセス、ネットワーク、エンティティの修復アクション |
| 8xxx | 無人 | ドローン、車両、ロボット |
命名規則
- すべて
snake_caseを使用します:process_activity、network_endpoint。 - 配列には複数形の名前を使用します:
answers、enrichments、attacks。 _idがOther(99)の場合、対応する文字列フィールドにソース値を必ず設定します。
主なサフィックス:
| サフィックス | 意味 |
|---|---|
_id | 対応する文字列フィールド(同じ名前から _id を除いたもの)を持つ列挙型の整数識別子です。0 は Unknown、99 は Other です。 |
_uid | スキーマ内で一意、または外部で一意の識別子です(分類属性では整数、それ以外では文字列)。対応するフィールドには _name を使用します。 |
_uuid | グローバルに一意な 128 ビット識別子(文字列)です。対応するフィールドはありません。 |
_name | _uid または _id 属性に対応する、わかりやすい名前/キャプションです。 |
_time | タイムスタンプ(timestamp_t、エポックからの経過時間をミリ秒で表します)。 |
_dt | 日時(datetime_t、RFC 3339 文字列)です。Date/Time プロファイルによって、_time 属性とともに追加されます。 |
_info / _detail | 補足情報を格納するオブジェクトです。 |
_process | Process オブジェクトへの参照です。 |
_ver | バージョン文字列です。 |
_list | 値の配列です。 |
回答の原則
- 回答する前に読みます。すべての主張は、読んだファイルに基づいている必要があります。
- クラスやオブジェクトのページを読む前に、質問のルーティング表とカテゴリ表を使って対象範囲を絞ります。
- スキーマ設計の根拠や曖昧なマッピングについては、FAQs を参照します。
- オブザーバブル、アラート、プロセスの親子関係、拡張機能などの詳しいトピックについては、Articles を参照します。
- フレームワーク自体に関する概念的な質問には、Introduction の各セクションを読みます。