リスク管理の重要性が高まるソフトウェアサプライチェーン――その背景と対策とは? | 東京エレクトロンデバイス

Publickey新野淳一IT羅針盤

リスク管理の重要性が高まるソフトウェアサプライチェーン――その背景と対策とは?

ソフトウェアの脆弱性による社会的混乱を警戒する機運が高まっている。米国政府などを中心にソフトウェアサプライチェーンの整備を進める動きも活発化している。今回はこうした動きの背景を探るとともに、その対策として注目を集める「SBOM」(Software Bill of Materials、ソフトウェア部品表)についても解説する。

気づかないうちに社会の大きな痛手へ

2022年5月、東京・赤坂の迎賓館で行われた「QUAD」(日米豪印首脳会合)で、米国のジョー・バイデン大統領、オーストラリアのアンソニー・アルバニージー首相、インドのナレンドラ・モディ首相、日本の岸田文雄首相の4人による日米豪印首脳会合共同声明が発表されました。その中のサイバーセキュリティの項目には「デジタル対応の製品・サービスのサプライチェーンにおける潜在的リスクを特定・評価すること」という一文が含まれました。

この声明からも明らかなように、IT業界におけるサプライチェーンの重要性は国際的な枠組みの中で言及されるほどに高まっているのです。ここでは、とくにソフトウェアにおけるサプライチェーンについて、その重要性が高まる理由や状況をまとめてみます。

サプライチェーン(Supply Chain)とは、ある製品が原材料の調達から始まって、生産、加工、流通、そして販売されるまでの一連の流れを指します。このサプライチェーンのどこかで、事故や不備、あるいは悪意ある処理などがあった場合、製品の提供に問題が発生することになります。

その極端な例が2024年9月に起きました。中東レバノンなどで「ヒズボラ」と呼ばれる組織のメンバーが使っているポケベルのような通信機器が相次いで爆発したことが報道されたことをご記憶の方は多いでしょう。これはヒズボラと敵対する組織が、通信機器のサプライチェーンのどこかに入り込んで、爆発物を仕掛けたことが原因だとされています。

このようにサプライチェーンのどこかで攻撃を受けると、気づかないうちに大きな痛手を被ることになるのです。これはソフトウェア製品においても同様です。

現在のソフトウェアシステムは、OS、ランタイム、Webサーバー、ライブラリなど多数のソフトウェアで構成された複雑なシステムです。その背後には大規模なソフトウェアのサプライチェーンが存在しており、その一つひとつの開発が適切に行われ、すべてが正常に動作することで、現在のソフトウェアシステムは成立しているのです。

日米豪印首脳会合共同声明」(外務省)のスクリーンショット

ピンチアウトで拡大

Log4jの脆弱性がソフトウェアサプライチェーン注目の契機に

ソフトウェアにおけるサプライチェーンの問題が大きくクローズアップされたのは、2021年12月に発生したJavaライブラリ「Apache Log4j」の脆弱性の発覚でした。

この脆弱性が悪用されると、第三者が勝手にサーバーを操作して悪意のあるソフトウェアを組み込んだり、悪意のある攻撃を行う際の踏み台にされたりといったさまざまな攻撃が可能になります。Apache Log4jは種々のJavaアプリケーションで広く使われているため、脆弱性は広範囲に影響しました。

この時に問題となったのは、いったいどのソフトウェアでApache Log4jが使われているのかがすぐに把握できなかったことです。ユーザーも、そして開発者も、どのソフトウェアがApache Log4jを組み込んでいるのかどうか、すぐに知る手段がなかったのです。開発元に連絡をとって尋ねるか、難易度の高いソースコード解析を行うか、いずれも手間のかかる作業が必要でした。

このApache Log4jのトラブルによって、あるソフトウェアに脆弱性が発見されたとき、あるいは悪意を持ったソフトウェアが発見されたとき、それがどのソフトウェアに影響するのかをまず知ることが、ソフトウェアサプライチェーンの安全性を確保するために重要であることが広く知らしめられました。

米国政府は以前からSBOMへの取り組みを示唆

実はこのApache Log4j のトラブルの前から、米国政府はソフトウェアサプライチェーン問題に取り組んでいました。2021年5月に米国のバイデン大統領が署名した大統領令「Executive Order on Improving the Nation’s Cybersecurity」(サイバーセキュリティ強化のための大統領令)には、対策として「SBOM」(Software Bill of Materials)に取り組むことが記されていました。

SBOMは、日本語では「ソフトウェア部品表」と呼ばれています。簡単に言えば、あるソフトウェアがどのようなソフトウェアコンポーネントで構成されているかを示す一覧表です。

これがあれば、例えばApache Log4jのように何らかのソフトウェアに脆弱性が発覚したとき、その影響の範囲をすぐに特定し、脆弱性が解決されたバージョンへ入れ替えることも速やかに可能となります。

つまり、SBOMはソフトウェアサプライチェーンにおけるリスクを管理する上で重要な仕組みとされているのです。日本でも2023年8月に経済産業省が「ソフトウェア管理に向けたSBOM(Software Bill of Materials)の導入に関する手引」を公開しており、SBOMの普及を推進しています。

そこでもSBOMの意義として、次のように説明されています。

「ソフトウェアサプライチェーンが複雑化し、OSS(オープンソースソフトウェア)の利用が一般化する中で、自社製品において利用するソフトウェアであっても、コンポーネントとしてどのようなソフトウェアが含まれているのかを把握することが困難な状況という課題があります。このようなソフトウェアの脆弱性管理に関し、ソフトウェアの開発組織と利用組織双方の課題を解決する一手法として、『ソフトウェア部品表』とも呼ばれるSBOM(Software Bill of Materials)を用いた管理手法が注目されています」

 

SBOMへの対応は正攻法で

このようにソフトウェアの脆弱性が社会的影響度を高める中で、その安全性を確保する「ソフトウェアサプライチェーンのリスク管理手法」として、SBOMが注目されてきているのです。

現時点では、SBOMが広く普及しているとは言えません。しかし、QUAD、米国政府、経済産業省をはじめとする政府機関がSBOMを積極的に推進し始めていることもあり、今後はこれら政府機関のソフトウェア調達などにおいてSBOMが必須となる可能性も高いでしょう。

そうなると、公共性の高い金融や高い安全性が要求される施設や交通機関などにおいても、徐々にSBOMが普及していくことが十分に予想されます。

SBOMは手作業でつくることも不可能ではありませんが、現実的にはソフトウェアの開発工程においてソースコードの管理やビルドなどのツールと連係するツールによって、自動的に生成させることが一般的な手法となるでしょう。すなわち、ソフトウェア開発プロセス全体のモダン化を進めるという正攻法的なアプローチをしている組織であれば、SBOMへの対応も早晩容易となるはずです。

ソフトウェア管理に向けたSBOM(Software Bill of Materials)の導入に関する手引」(経済産業省)のスクリーンショット

ピンチアウトで拡大

IT羅針盤

※このコラムは不定期連載です。
※会社名および商標名は、それぞれの会社の商標あるいは登録商標です。

新野淳一

新野淳一Junichi Niino

ブログメディア「Publickey」( http://www.publickey1.jp/ )運営者。IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求。