メインコンテンツへ
Section 07第2部 Control Layer

Catalog を仕上げる

カタログに、実装例と 2 つ目の Function を足し、公式の CSF 2.0 と見比べてみましょう。社内基準カタログには条文の本文を入れて完成させます。

  • 管理策の本文を補う example パートを書ける。
  • Function から Subcategory までの 3 階層を、自分の力で組み立てられる。
  • 廃止された管理策が status と links でどう表されているかを読み取れる。
  • 社内基準カタログの条文本文を、CSF 2.0 と同じ流儀で書ける。

抜粋カタログには、本文(statement)までが入りました。この章では残りの部品を足して、2 つの Catalog モデルを完成させます。足すものは 3 つです。本文を補う実装例、2 つ目の Function、そして後回しにしてきた社内基準カタログの条文本文です。

本文を補う実装例:example パート

CSF 2.0 の各 Subcategory には、本文のほかに「実装例(Implementation Examples)」が付いています。本文が「あるべき状態」を 1 文で述べるのに対し、実装例は「たとえばこういう取り組みをすれば近づける」という具体例です。公式ファイルでは、GV.OC-01 の parts はこうなっています。

              parts:
                - id: GV.OC-01_statement
                  name: statement
                  prose: The organizational mission is understood and informs cybersecurity risk management
                - id: GV.OC-01.001
                  name: example
                  ns: https://csrc.nist.gov/ns/csf
                  prose: Share the organization's mission (e.g., through vision and mission statements, marketing, and service strategies) to provide a basis for identifying risks that may impede that mission

statement と example が、同じ parts のリストに並んでいます。前のセクションで「parts はリストなので、本文のほかに補足や例を何件でも並べられる」と述べたのは、まさにこの形のことです。

見慣れない項目が 1 つあります。ns は、name の名前空間(namespace)を示す URL です。statement のような OSCAL 共通の part 種別と違い、example は CSF のために定義された種別なので、「この名前は NIST の CSF 用の定義です」という出どころを URL で示しています。深入りは不要で、抜粋カタログでは省略します(必須項目ではありません)。

クイズ(コードを書く)

GV.OC-01 に実装例を書き足してください。id は公式と同じ GV.OC-01.001、本文の訳は「組織のミッションを(ビジョンやミッションステートメント、マーケティング、サービス戦略などを通じて)共有し、ミッションを妨げるおそれのあるリスクを特定する土台にする」です。ns は省略します。

2 つ目の Function:識別(IDENTIFY)

ここまで統治(GOVERN)だけを書いてきました。階層の書き方が本当に身に付いたか、2 つ目の Function を素材から丸ごと組み立てて確かめます。素材は次のとおりです。

階層id名前本文・概要文
FunctionID識別(IDENTIFY)組織の現在のサイバーセキュリティリスクが理解されている
CategoryID.AM資産管理組織が事業の目的を達成するために用いる資産(データ、ハードウェア、ソフトウェア、システム、施設、サービス、人など)が特定され、組織の目標とリスク戦略に照らした重要度に応じて管理されている
SubcategoryID.AM-01(短い名前なし)組織が管理するハードウェアの一覧が維持されている

ID.AM-01 は、いわば資産台帳の管理策です。Excel の機器一覧を思い浮かべながら書いてください。props は今回の演習では省略します。

クイズ(コードを書く)

上の素材から、識別(IDENTIFY)の Function を丸ごと組み立ててください。class、title、parts の書き方(name と id の付け方)は、すべて自分で決めます。Function の概要文の name は overview です。

書き上げられたでしょうか。これで抜粋カタログには GOVERN と IDENTIFY の 2 つの Function が入りました。ちなみに、公式に合わせて sort-id と label の props も足した完成形は、次のようになります(GOVERN 側は前のセクションの完成形と同じなので省略します)。

  groups:
    - id: GV
      # …略(前のセクションの完成形のとおり)…
    - id: ID
      class: function
      title: 識別(IDENTIFY)
      props:
        - name: sort-id
          value: "00002"
        - name: label
          value: IDENTIFY (ID)
      parts:
        - id: ID_overview
          name: overview
          prose: 組織の現在のサイバーセキュリティリスクが理解されている
      controls:
        - id: ID.AM
          class: category
          title: 資産管理
          props:
            - name: sort-id
              value: "00002.00001"
            - name: label
              value: Asset Management (ID.AM)
          parts:
            - id: ID.AM_statement
              name: statement
              prose: 組織が事業の目的を達成するために用いる資産(データ、ハードウェア、ソフトウェア、システム、施設、サービス、人など)が特定され、組織の目標とリスク戦略に照らした重要度に応じて管理されている
          controls:
            - id: ID.AM-01
              class: subcategory
              title: ID.AM-01
              props:
                - name: sort-id
                  value: 00002.00001.00001
                - name: label
                  value: ID.AM-01
              parts:
                - id: ID.AM-01_statement
                  name: statement
                  prose: 組織が管理するハードウェアの一覧が維持されている

公式ファイルには、今回作成した抜粋カタログに入れていないものがもう 1 種類あります。廃止された管理策です。CSF は 1.1 から 2.0 への改定で管理策を大きく組み替えたので、旧版にあって現行にない項目が生まれました。公式ファイルはそれを消さずに残し、廃止であることを示すしるしを付けています。実物の ID.AM-06 を見てください。

            - id: ID.AM-06
              class: subcategory
              title: ID.AM-06
              props:
                - name: sort-id
                  value: 00002.00001.00006
                - name: label
                  value: ID.AM-06
                - name: status
                  value: withdrawn
              links:
                - href: GV.RR-02
                  rel: incorporated_into
                - href: GV.SC-02
                  rel: incorporated_into
              parts:
                # …略…

新しい項目が 2 つあります。まず props に name: statusvalue: withdrawn(取り下げ済み)の 1 件が増えていて、これが「この管理策は廃止された」という機械向けのしるしです。

その下の links は、他の場所への参照を並べるリストです。1 件が href(参照先)と rel(参照先との関係)を持ちます。ここでは rel が incorporated_into(〜に統合された)なので、2 件合わせて「ID.AM-06 の内容は GV.RR-02 と GV.SC-02 に統合された」と読めます。

規格の改定で管理策番号の対応を追いかける作業を、Excel の新旧対照表でやったことのある方もいるはずです。公式ファイルでは、その新旧対照が廃止された管理策自身に、機械可読の形で紐づいているのです。

公式ファイルとの照合

抜粋カタログはここで完成です。作ったものと公式の CSF 2.0 ファイルを突き合わせて、何が同じで何を省いたかを確認しておきます。

公式と一致させたもの:

  • 階層の構造。Function だけが group で、Category と Subcategory は controls の入れ子。
  • id と class と sort-id、label の値。
  • title の流儀。Category には名前、Subcategory には識別子そのもの。
  • 本文と実装例の置き方。parts の statement と example。

公式にあって、抜粋カタログにないもの:

  • 数。公式は 6 Function、22 Category、106 Subcategory(に加えて廃止済みの項目)を収め、5,328 行あります。抜粋カタログは 2 Function、2 Category、3 Subcategory です。
  • metadata の詳細。公式には、公開日時(published)のほか、改定履歴や、文書を作った組織の連絡先が入っています。
  • CSF 固有の補足。各 Subcategory の props には、第一者・第三者リスクの区分を表す risk-party というしるしも付いています。
  • 実装例の ns と、廃止された管理策の一群。

言い換えると、省いたのは量と付帯情報だけで、構造は実物と同じです。公式ファイルを開いて、自分の書いた GV.OC-01 と同じ場所を見比べてみてください。5,328 行が「知っている形の繰り返し」に見えるはずです。

社内基準カタログに本文を足す

最後に宿題を片づけます。社内基準カタログには条文の本文がまだ入っていません。置き場所の流儀は CSF 2.0 で確かめたとおり、parts の statement です。同じ形をミナト精機の条文に使います。なお、class は規格側の階層(function / category / subcategory)を区別するための値だったので、平らな社内基準カタログでは使いません。必須項目ではないからです。

クイズ(コードを書く)

mk-ac-01 に条文の本文を書き足してください。本文は「情報システムのパスワードは 12 文字以上とし、他のサービスと使い回さない。初期パスワードは初回利用時に変更する。」です。書き方は CSF 2.0 と同じ流儀を使います。

残りの 5 条文も同じ形です。全部に本文を入れ、版を進めた完成形を示します。これが社内基準カタログの版 1.1.0 で、以降のセクションはこれを使います。

catalog:
  uuid: d8a5fecb-3fb7-4d12-8bc3-771238d3d72a
  metadata:
    title: ミナト精機 情報セキュリティ社内基準
    last-modified: "2026-07-08T09:00:00+09:00"
    version: "1.1.0"
    oscal-version: "1.2.2"
  controls:
    - id: mk-ac-01
      title: パスワードの管理
      parts:
        - id: mk-ac-01_statement
          name: statement
          prose: 情報システムのパスワードは 12 文字以上とし、他のサービスと使い回さない。初期パスワードは初回利用時に変更する。
    - id: mk-ac-02
      title: 利用者アカウントの棚卸し
      parts:
        - id: mk-ac-02_statement
          name: statement
          prose: 情報システムの利用者アカウントを半期に 1 度棚卸しし、不要になったアカウントは 5 営業日以内に削除する。
    - id: mk-ph-01
      title: サーバー室の入退室管理
      parts:
        - id: mk-ph-01_statement
          name: statement
          prose: 本社サーバー室への入退室を記録し、記録を 1 年間保存する。入室できるのは情報システム部長が承認した者に限る。
    - id: mk-ph-02
      title: 機密書類の施錠保管
      parts:
        - id: mk-ph-02_statement
          name: statement
          prose: 機密と区分した紙の書類は施錠できる書庫に保管し、離席時に机上へ放置しない。
    - id: mk-bk-01
      title: 業務データのバックアップ
      parts:
        - id: mk-bk-01_statement
          name: statement
          prose: 業務データを毎日バックアップし、復元の試験を年 1 回行う。
    - id: mk-tr-01
      title: 情報セキュリティ教育
      parts:
        - id: mk-tr-01_statement
          name: statement
          prose: 全従業員に対して、年 1 回の情報セキュリティ教育を実施する。

内容を変えたので、uuid・last-modified・version の 3 つを変更しています。

理解の確認

クイズ

廃止された管理策 ID.AM-06 の内容が、いまはどこで扱われているかを機械的に知るには、ファイルのどこを読めばよいですか。

クイズ

statement と example の違いとして、正しいものはどれですか。

次へ

Catalog はこれで一区切りです。ところで、規格の一覧に載っている管理策のすべてを、どのシステムにも一律に適用するわけではありませんよね。次のセクションでは、Catalog から使うものを選び出すモデル、Profile を扱います。まずは NIST が公開している実物のベースラインを読むところからです。

このセクションは OSCAL 1.2.2 系の仕様に基づいて執筆しています。