ソフトウェアに常に欠けていた「栄養成分表示」

2021年12月9日、あるセキュリティ研究者がLog4jと呼ばれるJavaライブラリに脆弱性を発見しました。それから72時間以内に、数億ものシステムがリスクにさらされました。

問題は単なる脆弱性だけではありませんでした。真の問題は「可視性」にありました。ほとんどの企業は、自社のソフトウェアの中にLog4jが含まれているかどうかさえ把握していなかったのです。

この出来事により、Software Bill of Materials (SBOM) は企業の取締役会にとって優先事項となりました。

SBOMとは、ソフトウェアに含まれるすべてのコンポーネントの目録です。コードにおける「栄養成分表示」のような役割を果たします。オープンソースライブラリ、サードパーティ製パッケージ、内部コンポーネントなどがリスト化され、バージョンやライセンス情報も含まれます。

現代のソフトウェアは複雑です。一つのアプリケーションが500から1,500ものサードパーティ製パーツを使用していることも珍しくありません。これらをすべて手動で追跡することは不可能です。

現在、主に2つの標準規格が存在します。

• SPDX: ライセンス・コンプライアンスに重点を置いています。法務チームに適しています。 • CycloneDX: セキュリティに重点を置いています。DevSecOpsチームに適しています。

対応のスピードはSBOMにかかっています。Log4jの危機において、SBOMを保有していた企業は数時間以内にリスクを特定できました。一方で、保有していなかった企業は手動の監査に数週間を費やすことになりました。

XZ Utilsのような最近の攻撃は、この格差がいまだに存在していることを証明しています。攻撃者は一般的なライブラリの中にバックドアを隠します。自動化されていなければ、それを見つけることはできません。

規制も変化しています。

• 米国大統領令14028号: 連邦政府のベンダーはSBOMを提供しなければなりません。 • FDAガイダンス: 医療機器にはSBOMが求められます。 • EUサイバーレジリエンス法: 2027年までにEU内のソフトウェアに対してSBOMを義務付けます。

開始方法:

  1. 標準規格を選ぶ。セキュリティにはCycloneDX、ライセンスにはSPDXを使用します。
  2. 生成を自動化する。イメージにはSyft、パイプラインにはSnykなどのツールを使用します。
  3. データベースと連携する。リストをNIST NVDやOSVに接続します。
  4. スケジュールを設定する。ビルドのたびにSBOMを生成します。

全ポートフォリオを一度に修正しようとしないでください。まずは一つのアプリケーションから始めましょう。

忘れないでください、SBOMは診断ツールです。それは「何を持っているか」を教えてくれますが、問題を解決してくれるわけではありません。SBOMが23個の脆弱性を示した場合、それらをパッチ適用するための計画が別途必要になります。

優れた企業は、単にツールを持っているだけではありません。プロセスを持っています。彼らは危機が訪れる前に、誰が依存関係を管理しているのかを把握しています。

Source: https://dev.to/spicykim/the-nutrition-label-that-software-always-lacked-213 Full details: lucas8.com/what-is-sbom-software-bill-of-materials