sgcWebSockets が自身の SBOM をインストールするようになりました | eSeGeCe ブログ

sgcWebSockets が自身の SBOM をインストールするようになりました

· コンポーネント

欧州市場向けにソフトウェアを開発しているなら、すでに誰かからソフトウェア部品表を求められたことがあるでしょう。サイバーレジリエンス法は、製造者が部品表を作成し、技術文書として保持することを義務づけています。そして規制当局が動くよりずっと前に、顧客からの要求が増えていきます。製品がコンポーネントライブラリを組み込んでいる場合、その問いは私たちのところに届きます。

今回のリリースから、すべての sgcWebSockets セットアップがその問いに答えます。インストーラーはインストールフォルダーに sbom.cdx.json として CycloneDX 形式の部品表を書き出し、ライブラリを構成する最上位コンポーネントとそのバージョン、ライセンスを一覧にします。

手作業ではなく、インストーラーが生成します

興味深いのはファイルそのものではなく、それがどこから来るかです。誰かが手作業で更新する部品表は、気づかないうちに古くなります。すでに出荷していないバージョンを報告するコンプライアンス文書は、文書がまったくない状態よりも悪いものです。

そのため、手作業では管理しません。インストーラースクリプトはビルド時にジェネレーターを実行し、そのジェネレーターは各バージョンを、それを実際に管理しているファイルから読み取ります。製品バージョンは history.txt から、Indy は IdVers.inc から、zlib は zlib.h から、OpenSSL は静的リンク用のユニットから読み取ります。これらの値のいずれかが読み取れない場合、ジェネレーターはエラーで停止し、インストーラーのビルドは失敗します。推測することは決してなく、誰かが一度入力した値にフォールバックすることもありません。

実際の効果として、SBOM が実態から乖離することはありません。zlib を更新すれば、次にビルドしたインストーラーがそのことを伝えます。誰も覚えておく必要はありません。

汎用的な製品ではなく、あなたのエディションを記述します

ここがおそらく最も重要な部分です。部品表はエディションごとに同じではありません。エディションによって含まれるサードパーティコードが同じではないからです。

Enterprise と All-Access は sgcWebSockets に同梱されるカスタマイズ版 Indy をコンパイルし、そのフォークは独自の zlib を含みます。Core、Standard、Professional は、あなたの Delphi や C++ Builder のインストールに付属する Indy に対してビルドされます。この Indy を私たちはフォークも再配布もしていません。これらのエディションについては、バージョンが IDE の提供するもの次第であるため、Indy のバージョンを正確に記載することはできません。

したがって、単一の汎用的な SBOM ではほとんどのインストールにとって誤ったものになります。その代わりに、インストーラーはパッケージ対象のエディション向けに文書を生成するため、受け取るファイルは実際に手元にあるものを記述します。

エディションIndyzlib
Core、Standard、ProfessionalIDE から提供され、当社は再配布しません同じ Indy を経由して製品に取り込まれます
Enterprise、All-Accessカスタマイズ版 Indy フォーク、バージョンを記載同梱されたコピー、バージョンを記載

中身

この文書は CycloneDX 1.6 JSON 形式です。インベントリツールやスキャンツールがすでに理解している、一般的な機械可読フォーマットです。コンポーネントに加えて、それぞれのライセンス、当社が再配布しているのか IDE が提供しているのか、そしてソースツリー内のどこに存在するかを記録します。

また、有用な場合には VEX ステートメントも含みます。既知の CVE があるコンポーネントバージョンに影響するものの、当社のコードからは到達できない場合、文書はその理由とともに明示的にそう述べます。判断をあなたに委ねることはありません。これらのエントリは、コンポーネントのバージョンが変わるにつれて自動的に現れたり消えたりします。ジェネレーターが、誰かが残したメモではなく、読み取ったバージョンから判断するからです。

ファイルの場所

インストール先のフォルダー、history.txt とライセンスの隣を見てください。

C:\Program Files (x86)\sgcWebSockets\sbom.cdx.json

インベントリ管理に使っているツールに読み込ませたり、サプライヤー向けの質問票に添付したり、自社製品向けに作成する部品表にエントリを取り込んだりしてください。コンプライアンス部門が別の形式を必要とする場合や、特定のビルドについてサプライヤー評価フォームへの記入を求める場合は、ご利用の製品、エディション、バージョンを添えてお問い合わせフォームからご連絡ください。

あえて行わなかったこと

当社はこのウェブサイトで SBOM を公開しません。サイバーレジリエンス法は、製造者が部品表を作成し技術文書として保持することを求めていますが、公開までは求めていません。また、求められるままにコンポーネントの一覧を誰にでも渡すことに得るものはほとんどありません。製品内に同梱することで、それを受け取る権利のある人々、つまりライセンス保有者と、要請があれば市場監視当局の手に渡ります。

当社が本規則にどう取り組んでいるかについては、サイバーレジリエンス法のページで詳しくご覧いただけます。