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