【第2回】CRAが求める「開発・設計段階」の必須セキュリティ要件とSBOMの重要性
はじめに
第1回で解説した通り、CRA(欧州サイバーレジリエンス法)は広範な電気電子機器を対象としています。では、実際に製品を作るにあたり、メーカーは何をしなければならないのでしょうか。
CRAの附属書I(Annex I)には、製品を市場に投入する前に満たさなければならない「必須セキュリティ要件(Part I)」と「脆弱性処理要件(Part II)」が明記されています。
本記事では、設計・開発部門が直面する技術的な義務と、必須対応となる「SBOM(ソフトウェア部品表)」について解説します。
必須セキュリティ要件(Annex I Part I)の具体的内容
CRAが要求する具体的な技術要件は多岐にわたるため、設計者は以下の要件を製品の仕様段階から組み込む必要があります。
(1)セキュアなデフォルト設定
製品を出荷時の状態で使用しても安全であること。
不要なポートや機能はデフォルトで無効化し、ユーザーに初期パスワードの変更を強制するなどの措置が必要です。(2)アクセス制御と認証
誰が(何が)データや機能にアクセスできるかを厳密に制御し、リスクに応じて、認証、ID管理、アクセス管理などの適切な制御を実装すること。管理者機能や高リスク機能では、多要素認証も有力な選択肢となります。
(3)データの保護(機密性と完全性)
保存されているデータ(Data at rest)、通信中のデータ(Data in transit)、その他処理中のデータについて、リスクに応じ、最先端(state of the art)の暗号化その他の技術的手段により機密性を保護すること。
(4)データ最小化の原則
製品の機能提供に必要不可欠なデータのみを収集・処理すること。
(5)悪影響の最小化
当該製品が乗っ取られた場合でも、接続されている他の機器やネットワーク全体への被害(DDoS攻撃の踏み台になるなど)を防ぐよう設計すること。
SBOM(ソフトウェア部品表)の作成と管理の義務(Annex I Part II)
CRAにおいて、開発プロセスにおける最大の技術的課題の一つが「SBOM(Software Bill of Materials:ソフトウェア部品表)」の作成義務です。
現代のソフトウェア開発において、コードの大部分はサードパーティ製のライブラリやオープンソースソフトウェア(OSS)で構成されています。CRAでは、製品に含まれる脆弱性やコンポーネントを特定・文書化するため、少なくともトップレベル依存関係を含むSBOMを、一般的かつ機械可読な形式で作成することが求められます。SPDXやCycloneDXは実務上有力な形式ですが、最終的な形式・要素については、今後の実施法や整合規格の動向も確認する必要があります。
SBOMを作成・維持することで、将来OSSに重大な脆弱性(例:Log4Shellのようなゼロデイ脆弱性)が発見された際、自社のどの製品に影響があるかを即座に特定することが可能となります。逆に言えば、手動でのコンポーネント管理や表計算ソフトだけに依存した管理では、機械可読性、継続的な脆弱性監視、更新履歴・監査証跡の観点から、CRA対応として不十分となる可能性が高いと考えられます。