叡智の三猿

〜森羅万象を情報セキュリティで捉える

SBOMはソフトウェアの信頼性を確保する立役者

たまに、家族向けにスィーツを作ります。

今回はハロウィーンなので、かぼちゃのチーズケーキを作ってみました。


  1. ボウルにクリームチーズ(200g)と、砂糖(70g)をよく混ぜる。
  2. 1に卵を加えかき混ぜる。
  3. かぼちゃ(250g)を蒸かす。
  4. 2に3を加えかき混ぜる。
  5. 4に生クリーム(200g)を入れてかき混ぜる。
  6. 210度で余熱したオーブンに35分焼く。
  7. 冷蔵庫で冷やす。

かぼちゃの量が多めなので、かぼちゃたっぷりの濃厚さを感じるチーズケーキでした。

かぼちゃのチーズケーキを作るのに必要な原料を構成図で書くと、このようになります。こんな感じでまとめれば、作りたい物に必要な原料が揃っているかを簡単に確認することができます。

かぼちゃのチーズケーキ

製造業のモノづくりでは、製造する製品を構成図(部品表)として表記します。

これをBOM(bill of material)と呼びます。BOMを確認すれば、製品を作るのに使用する部品・原材料の必要量がひと目で分かります。BOMは生産計画に基づく資材所要量計画(MRPと呼びます)の中核情報です。製品設計や原価計算などの場面でも使われます。

BOMは、主に製造業で利用されていますが、BOMをソフトウェア製品の製造に転用したのが、SBOMです。

SBOMは、Software Bill Of Materialsの頭文字をとった言葉で「エスボム」と読みます。いわばソフトウェアの構成図です。

ソフトウェアの製品開発において、ボトルネックなのが、プログラマーの開発工数です。ゼロからプログラムを作るのは非効率的です。製造したプログラムは不具合を含み、それをテストによって発見し、修正を繰り返します。プログラマーは品質を確保したプログラムを納期に間に合わせるため、勤務時間は長くなり、休日出勤も多くなる傾向にあります。

IT業界が、新3k(きつい、厳しい、帰れない)職種といわれる所以です。

いまのソフトウェア開発の現場では、OSS(オープンソースソフトウェア)やライブラリーといった物を使用することで、開発のボトルネックを解消する取り組みが出来ています。

SBOMは製品に含まれるOSSなどのコンポーネント、ライセンスの依存関係を示します。SBOMによって、ライセンスに準拠しているか、セキュリティ対策が適切か、ソフトウェアの品質が確保されているかを見える化します。

昨年の12月から、Javaで書かれたログ出力ライブラリ「Apache Log4j」(以下、Log4j)に、複数の脆弱性が潜んでいることが明らかになりました。

Log4jはログを入出力するための便利な機能です。デバッグ情報やエラー情報をコンソール、ファイル、ログサーバなどに出力します。

Log4jの脆弱性は、JPCERT/CC(日本国内に関するインシデント等の報告の受け付け、対応の支援、発生状況の把握、手口の分析、再発防止のための対策の検討や助言などを、技術的な立場から行なう組織)はもちろんですが、一般のニュースでも幅広く取り上げられました。
www.jpcert.or.jp

Log4jの脆弱性は「CVE-2021-44228」の識別コードが割り振られています。遠隔の第三者が細工した文字列を送信し、Log4jがログとして記録することで任意のコードを実行する可能性があることが指摘されています。

CVE(共通脆弱性識別子)

CVEは米国の非営利団体であるMITRE社により、情報セキュリティにおける脆弱性やインシデントにそれぞれ固有の名前や番号を付与したものです。CVEによってひとつひとつの脆弱性に固有の番号が付与されるようになりました。CVEの識別子は「CVE-西暦-連番」の形式で附番します。

わたしはSalesforceを使った営業システムの構築に携わっているのですが、データローダ機能の脆弱性が見つかり、バージョンを最新化する必要に迫られました。

ソフトウェアを管理する組織では、Log4jに関係しているソフトウェアをすぐに見つけ組織長への報告や対応をいち早くする必要があります。しかし、多くの組織がLog4jとの関係を発見するのに苦心し、混乱を招きました。

SBOMを採用している組織であれば、ソフトウェアの脆弱性の有無の判断が迅速になるので、対応も対応も迅速に行えたはずです。

SBOMは、ソフトウェアの信頼性を維持するための立役者です。