Open Source Summit Japan 2023から、組込系システムにおけるサプライチェーンに関するセッションを紹介
Open Source Summit Japan 2023から、The Linux Foundationにおける組込系システムのVPが解説するサプライチェーンをセキュアにするための仕組みと新しいツールに関するセッションを紹介する。プレゼンテーションを行ったのはKate Stewart氏だ。動画は以下から参照して欲しい。
●動画:Building Dependable Systems with Open Source
Stewart氏はまずクルマを例に挙げて、多くのハードウェアコンポーネント、ソフトウェアが連係してモダンなクルマが構成されていること、GPSセンサーなどによるナビゲーションなどの機能が利用できることが必要だと語った。
しかし最先端を行っているクルマにおける障害、特にTeslaによるさまざまなトラブルのニュースを示しながら、機能が豊富にあるからと言って安全性が高められるわけではないことを説明した。
その上でこれまでエグゼクティブオーダーなどで注目を集められるようになったSBOM(Software Bill of Materials)に言及。ソフトウェアだけに限定せずにシステムの安全性に関わるすべてのコンポーネント、データセットなどについてもその構成要素と依存関係を明らかするべきだとして、SBOMはSystem BOMになるべきだと強調した。
ただしその際にベンダーごと、業界ごとの独自のデータフォーマットが乱立するべきではないとして、標準フォーマットでメタデータが提供される必要があると主張し、そこからSBOMのフォーマットであるSPDXにトピックを移した。
SPDXはLFがホスティングするSBOMフォーマットの一種で、同様のフォーマットとしてOWASPが推進するCycloneDXが存在する。LFとしてはSPDXが主流のフォーマットとして業界標準となることを望んでいると思われるが、素性の良さや機能の多さではなく最終的に多くのサポーター、ユーザーを集めた側が勝つというこれまでのIT業界の常識が適用されることになるだろう。すでにSPDXはバージョン3.1まで開発が進んでおり、Stewart氏が冒頭で説明したソフトウェアだけではなくハードウェアやサービス、データセットまで含めたBOMを生成できるようになることが示されている。
そして本来のソフトウェアにおけるBOM、SBOMについてはライフサイクルのすべてのプロセスでBOMが必要だと説明した。単にソースコードのビルドだけでインストールやデザインの段階でもBOMを生成できるようになることで、ライフサイクルのすべてを網羅するBOMとなるという意味だろう。
具体的にソフトウェアの仕様からコーディング、実装、テストなどのプロセスにおいて相互の関係を示しながら、どのような生成物が発生するのかを図で示しながら説明。
ここではソースコードをビルドしてテストするという主なプロセスの解説ではなく、コーディングのガイドラインからコードレビューのスクリプトが生成され実行形式モジュールであるアーティファクトとテストレポートが生成されるという成果物の依存関係を整理するフローチャートを使っているところに注目したい。CI/CDが自動化されていることが前提だが、それ以上に派生するすべての生成物を管理することでプロセスにおける成分(Ingredients)が明らかになるべきだというのがStewart氏の主張だ。
またバグ修正などのプロセスにおいても、それぞれのバージョンのソフトウェアから生成されるテストレポートを元にどのバージョンでバグが修正されたのかをトレースできるように「Code to Test」だけではなく「Code to Test to Evidence」という発想でシステム化される必要があることを説明した。
そしてLFが推進するこれの実装形としてELISA、Zephyr、Xenに応用したYoctoプロジェクトを紹介した。
ELISAはLinuxのバリエーション、ZephyrはリアルタイムOS、そしてXenはハイパーバイザーだが、Yoctoはカスタマイズされた組込用Linuxを作るためのツールキットである。
そして新たなツールとして紹介されたのがBASILだ。ELISAプロジェクトのブログ記事として公開されているので参照して欲しい。
BASILはRed Hatで開発されオープンソースとして公開されたツールで、ソフトウェアの仕様やドキュメントなどから仕様の分析、その仕様に合致したテストが実行されているのかなどをWebのユーザーインターフェースからチェックするツールであるという。ソフトウェアを開発したRed HatのQAエンジニアで、上記のブログの著者でもあるLuigi Pellecchiaによる動画も公開されている。
動画のデモを見る限り、ソースコードとコメントを分離し、その中身とマニュアル(man page)、テストコードを比較する方法で求められた仕様が実際のコードやコメントと合致しているのか、テストコードはその仕様のテストを満たしているのか、などをチェックするツールのようだ。セッションの中では深い説明は省いているが、安全性を高めるために仕様書が書かれていてもそれが実際に実装されていなければ意味がないし、その仕様を確認するテストが実行されていなければ意味がない、その部分に注目して作成されたツールということになる。
最後にSPDXや今回紹介されたELISA、Zephyr、Xen、Yoctoなどへの参加を促してセッションを終えた。
安全性を高めることは組込系では特に重要であることを冒頭のTeslaのトラブルで喚起してから、SBOMの重要性、そしてLFが手がけるさまざまなプロジェクトを駆け足で紹介した。日本の自動車メーカーによるテストの偽装が2023年に大きな問題となったが、その製造過程に今回のプロセスをまじめに適用したら不正は防ぐことができたのだろうか? ソフトウェアだけではなく製造業を含むすべての業界においても意識を高める必要があることを感じさせたセッションとなった。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- KuberCon NA 2021、Kubernetesリリースチームが解説するSBOMのセッションを紹介
- 米国のバイデン大統領が署名したことで話題となった「国家のサイバーセキュリティ改善に関する大統領令」とは
- CNSC 2022、SBoMの概要と未来を展望するセッションを紹介
- Open Source Summit NA 2022の2日目のキーノートからSBOMの事例などを解説
- OpenSSFを拡大・支援するため1,000万ドルの新規投資を調達、「The 2021 Open Source Jobs Report」を公開、ほか
- Linux Foundationのさまざまなプロジェクトに新メンバーが相次いで参加を表明
- Intelが推進するEdgeの仮想化、ACRNとは?
- The Linux Foundation、オープンソースコンプライアンスの総合ガイド「企業におけるオープンソース コンプライアンス」最新版を公開
- LFがSBOMの導入によるライセンス順守とソフトウェアセキュリティ強化に関するレポートを発表、ほか
- オープンソースライセンスコンプライアンスのためのプロセスマネジメント標準「OpenChain」が国際規格として承認