Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Delphi

Delphi開発者のためのSBOM作成ガイド

この記事について

近年、ソフトウェアの安全性を確保するための取り組みとして、SBOM(Software Bill of Materials/ソフトウェア部品表)が注目されています。RAD Studioで作成されたアプリケーションも例外ではなく、将来的には品質管理に関する記録の一つとして、SBOMの作成や提出を求められることも考えられます。

こうした背景を踏まえ、本記事ではSBOMとは何か?その概要を整理したうえで、Delphiプロジェクトを対象に、サードパーティ製ツール「DX.Comply」を利用したSBOM作成の一例をご紹介します 。

SBOMとは

SBOMとは、ソフトウェアの構成要素を一覧化したリストです。脆弱性の管理、ライセンス管理、サプライチェーンの可視化などに役立ちます。

昨今では、大企業のシステムがサイバー脅威の被害を被り業務が停止したりと世間的にも大きなインパクトのある事件も多く発生しており、サイバー脅威への対抗手段を構築することが世界的な風潮となっています。

サポート窓口にて、CVE-2021-44228(Log4jの任意のコード実行の脆弱性)について、お客様よりお問合せがありました。内容は、利用中の製品が今回の脆弱性の対象に該当するか確認したいとの内容でした。サポートでは、該当するバージョンを調査し、対象ではない旨、回答しました。

今回のSBOMは、サービスやアプリケーションにおいて利用されているライブラリやモジュールなどを透明化し、セキュリティへの脅威を管理しやすくする為の仕組みとなります。あらかじめ、サービスや製品にSBOM情報があれば、利用しているライブラリやそのバージョンまで即座に確認できるので調査にかかる時間も節約することができます。

世界に目を向けてみると、米国では大統領令にてSBOMの利用が推奨され、EUのCRA法では、デジタル要素を含むソフトウェアやハードウェア製品を購入する消費者と企業を保護することを目的として、サプライヤーはSBOMを保持することが義務化されています。
https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act

また、日本国内でも、経済産業省やIPA(情報処理推進機構)からSBOMの導入や運用に関する手引きが公開されるなど、その活用に向けた取り組みが進められています。

SBOMのフォーマットにはSPDX、CycloneDX、WIDがあり、それぞれに適した用途があります。フォーマットや適した用途などを比較しているサイトなどもありますので、興味がある方は調査してみてください。

エンバカデロでは、Ian Baker 氏が、セキュリティとSBOMについてのブログ記事を公開しています。また、DefScannerのValerie Kim 氏とコードのセキュリティ、SBOMとその重要性について対談を行っている動画も紹介されています。DefScannerはDelphiをサポートするいわゆる静的解析ツールで、SBOMの出力機能があります。

What Is SBOM And Why Is It So Important This Year?
DefScanner

DelphiでのSBOM

今回は、Delphi を利用してアプリケーションのSBOMを生成するサードパーティーのツールについて紹介したいと思います。

今回はDX.Complyを利用しました。SBOMフォーマットはCycloneDXが採用されています。
DX.Comply

準備

注意点:Delphi 13.1環境にGetIt経由でバージョン1.01をインストールしてみましたが、IDEにメニューが表示されなかったので、別途 GitHubから1.3のソースをダウンロードしてビルド、インストールしてみました。

※サードパーティー製のツールについては、エンバカデロではサポートしておりませんので、
ご利用前にライセンスをご確認の上ご利用ください。

ビルドとインストール

現時点(2026/7/30)での最新版は1.3 ですので、ソースコードをダウンロードします。
※Tess.exeを含めてビルドする場合は、あらかじめDUnitをインストールしてください。

以下は Instalation セクションにあるように以下の手順でインストールします。

  1. RAD Studio 13.1で DX.Comply.groupproj を開きます
  2. DX.Comply.IDE を右クリックして、メニューからインストールします

vcl13_01

使い方

インストール後は、IDEの[ツール] – [オプション]からオプションダイアログを開き、[サードパーティー] – [DX-Cmply]でオプションの設定が可能です。実行時のダイアログや出力の制御が可能になっています。

vcl13_01

実行するには、IDEから目的のプロジェクトを開き、プロジェクトメニューから [DX-Comply – CRA Compliance] [ Generate documentation…]をクリックします。今回はサンプルのRichEditプロジェクトを試しています。

vcl13_01

処理中はダイアログが出て進捗が見れます。終わったらCloseボタンをクリックします。

vcl13_01

ブラウザが起動し、HTMLでレポートが表示されます。

vcl13_01

ターゲットとなるexeファイルのSHA-256ハッシュが出力されています。また、利用されているUnit DCUの名前とそれぞれのハッシュが出力されているのが確認できます。

また、プロジェクトのルートにbom.jsonが出力されています。見たところスキーマのバージョンは15とありますので、以下のスキーマを利用しているようです。
https://cyclonedx.org/docs/1.5/json/

vcl13_01

IDEのメニューから1クリックでSBOM情報が出力できるので大変便利です。
出力は、JSON、 MD、 HTMLがツールのオプションで制御可能です。

DX.Complyは、コマンドライン CLIも提供されていますので、ビルドプロセスに組み込み、デイリーのビルドで出力を比較して、意図しないライブラリの改ざんなどを未然に防止し、トラッキングなどの用途でも利用が可能です。

その他、DelphiとSBOMに関連するリンク

Kai for RAD Studio is Now Available! Special Live Webinar: Introducing Kai - A New Chapter for RAD Studio RAD Studio 13.1 Florence Now Available

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.

Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES