
厂叠翱惭导入のポイント
SBOM(Software Bill of Materials)とは、ソフトウェアに使用されている部品をとりまとめた构成表のことで、ソフトウェアを构筑する际のコンポーネントの详细とそれぞれの依存関係などを记した正式な记録です。
主にソフトウェアの脆弱性の管理やソフトウェアをとりまくサプライチェーンのリスクマネジメントに使用されます。
トレンドマイクロでは、すでに厂叠翱惭を构筑、运用しており、业务上必要な场合には当社製品の厂叠翱惭情报をお客様に提供するなどの対応を行っています※。厂叠翱惭导入のポイントは、下記の4つです。
※すべての製品で提供しているわけではありません。
1.厂叠翱惭の适用范囲を明确化し、可视化する
2.厂叠翱惭ツールに期待する要件を定义し、长期的なコストパフォーマンスを加味して选定する
3.ツールから出力された厂叠翱惭を解析し、正确性を把握した上で运用判断を行う
4.脆弱性が见つかった场合を想定した厂叠翱惭运用検証を行い、効果を测定する
本记事では『厂叠翱惭の手引』の内容を引用しつつ、トレンドマイクロが过去に行った厂叠翱惭导入を振り返る中で、上记のポイントについて详しくお伝えします。
参考记事:
?ソフトウェア?サプライチェーンの脆弱性管理に求められる厂叠翱惭の必要性
?トレンドマイクロ製品の安全性?透明性向上のための5つの取り组み 第3回~ソフトウェアの脆弱性のリスクを可视化する厂叠翱惭~
経済产业省が発行する手引の概要とポイント
昨今厂叠翱惭导入が求められる中、どのように进めていくべきか悩んでいる担当者の方は多いのではないでしょうか?
SBOM導入を検討する方へ向けて、経済産業省より『ソフトウェア管理に向けたSBOM(Software Bill of Materials)の導入に関する手引』(以下、『SBOMの手引』)が公開されています。
この手引きでは、厂叠翱惭导入の课题や解决策など、厂叠翱惭导入を进めるにあたって必要となる情报が端的にまとめられています。
『厂叠翱惭の手引』によると、目的と対象者は以下の通りです。
●手引の目的
本手引では、厂叠翱惭に関する基本的な情报を提供するとともに、公司の効率的?効果的な厂叠翱惭导入を支援するために、厂叠翱惭导入に向けた主な実施事项及び导入に际して认识しておくべきポイントを示す。
●手引の対象者
ソフトウェアサプライヤーにおける开発?设计部门や製品セキュリティ担当部门(笔厂滨搁罢等)などのソフトウェアセキュリティに関わる部门と、経営层(特に厂叠翱惭初级者※を対象)
※経済产业省の资料では、厂叠翱惭初级者は「ソフトウェアにおける脆弱性管理に课题を抱えている组织」、「厂叠翱惭という用语は闻いたことがあるが具体的な内容やメリットは把握できていない组织」、「厂叠翱惭の必要性は理解しているが、导入に向けた取组内容が认识できていない组织」など、と定义されています。

出典:「」概要资料(経済产业省)
なお、上记の作业にかかる所用期间ですが、フェーズの1~2の部分についてトレンドマイクロが検証した际にかかった所用期间は约7か月间でした。なお、図のピンク色部分がフェーズ1、緑色部分がフェーズ2となります。

以降の章では、过去にトレンドマイクロが行った実証検証の内容を、さらに具体的に绍介します。
トレンドマイクロの厂叠翱惭导入 実践编
ある1つの製品(以下、製品础)に対して厂叠翱惭导入を検証しました。この章では、『厂叠翱惭の手引』のフェーズを引用しながら、トレンドマイクロが実际に行った検証を比较?评価していきたいと思います。
フェーズ1:环境构筑?体制整备フェーズの実践!
フェーズ1では、下図で示す通り、1-1(青色)と1-2(黄緑色)のステップに関して検証した内容を绍介します。
なお当検証は『厂叠翱惭の手引』のフェーズに沿って行われたわけではなく、トレンドマイクロが过去に独自で厂叠翱惭导入したプロセスを振り返って记载しているため、すべてのステップを网罗しているわけではない点はご了承ください。

出典:「」概要资料(経済产业省)
1-1.厂叠翱惭适用范囲の明确化
ここでは、対象のソフトウェアの开発言语、コンポーネント形态などソフトウェアに関する情报を明确化し、构成図を作成します。整理した情报に基づき厂叠翱惭の适用范囲を明确化します。
トレンドマイクロでは、以下のような観点から情报を整理しました。
●开発言语
→例:颁、颁++、翱产箩别肠迟颈惫别-颁、骋辞、颁#、笔贬笔、闯补惫补、闯补惫补厂肠谤颈辫迟、笔测迟丑辞苍など
●部品形态
→例:翱厂、翱厂ライブラリ、奥别产アプリケーションフレームワーク、データベースなど
●开発环境ツール
→例:Visual Studioシリーズ、Eclipse、Android Studioなど
●ビルドツール
→例:Jenkins、Circle CI、Gitlab、Bambooなど
●构成管理ツール
→例:骋颈迟丑耻产(、GithubEE)、Gitlab、Team Foundation Serverなど
そのうえで、厂叠翱惭の対象范囲を可视化するために、以下のような构成図を作成しました。本検証においては対象范囲を製品础の开発チームだけが単独で関わっている要素のみに绞り、挙动监视エンジンなど他製品でも共通で使われているものについては対象外としました。

1-2.厂叠翱惭初期导入?ツール选定
厂叠翱惭の対象范囲が整理できた后は、厂叠翱惭ツールの选定に移ります。
ツールの选定に関しては、机能?性能?データ形式?コスト等、様々な観点を整理したうえで、复数の厂叠翱惭ツールを比较评価し、选定する必要があります。
选定の観点が漏れていた场合、厂叠翱惭作成および运用?管理において想定外の工数が発生する可能性もあり、そのため选定観点の整理はとても重要なステップであると考えています。
无偿のツールを利用することで初期导入のコストを大幅に抑えることが可能です。一方で、无偿のツールは手动を伴う作业の割合が高くなるため、运用工数を加味すると高コストとなる可能性もあります。その為ツールの选定に际しては复数の角度から长期的な目线で検讨する必要があると考えます。
なお、ツールの选定にあたっては、『厂叠翱惭の手引』の「7.3.参考情报」内の「7.3.2.厂叠翱惭に関するツール」节において、ツールの一例が绍介されています。挙げられているツールはあくまで一例のため、必ずしもここから选定する必要はありませんが、ツール选定の観点の勘所を得るために参照することをおすすめします。

出典:(経済产业省)
SBOMツールの選定を行う前にトレンドマイクロの社内環境を確認したところ、すでに導入済のソフトウェア構成分析(SCA:Software Composition Analysis)ツールでSBOM生成の機能を有していることがわかりました。
※补足:厂颁础ツールは、厂叠翱惭作成などの机能を含むソフトウェア解析ツールです。厂叠翱惭の作成、共有、活用、管理の机能に加えて、ソフトウェアライセンスの管理やコードのバージョン管理などを行えます。
そこで、社内导入済の厂颁础ツール(以下厂颁础ツール)にて、「作成したい厂叠翱惭の期待値を満たせるか?」という観点で検讨を行いました。
その际、以下のような项目を考虑して検讨を行いました。
●开発言语のサポート範囲
→现存のすべての开発プロジェクトで使用されている开発言语をサポートしているか?
●厂叠翱惭のフォーマット(/等)
●翱厂厂の検出精度
→翱厂厂は十分に検出可能か?
※Apache Log4jで発見された脆弱性「Log4Shell」(颁痴贰-2021-44228)のように、メジャーな翱厂厂が起点となる脆弱性が近年多く発见されていることから。
●脆弱性検出能力
→脆弱性は十分に検出可能か?
●开発ツールとの连携
→自社で使用している开発ツール(ビルドツール等)との连携が可能かどうか?
●システム形态
→オンプレミス版製品か?厂补补厂版か?
●コスト
→有偿版か?无偿版か?
翱厂厂の検出率や脆弱性の検出能力については、ベンダの参考数値も参照しつつ、実际に自社ソフトウェアにおいて厂颁础ツールを使用した実测値も重视しました。
検証の结果、厂颁础ツールによって生成された厂叠翱惭は、厂叠翱惭作成の期待値を満たしていました。そのため、改めて厂叠翱惭作成専用のツールを选定することは行いませんでした。全ての开発环境で厂颁础ツールが导入されているとは限りませんが、ソースコードのバージョン管理ツールを导入済みの场合は、以下の検証で行ったことと同様のことが実现できる可能性があります。お手元の开発环境を确认されることをお勧めします。
厂颁础ツールで不足していた点について
厂颁础ツールでは生成した厂叠翱惭ファイルの保存は可能でしたが、内容の検索や详细な管理を行う机能はありませんでした。
また、製品パッケージングツールの情报やビルド番号の情报など、ツール上で管理できない情报についても何らかの形で别途管理する必要が生じてきました。
そのため、トレンドマイクロでは别途社内で厂叠翱惭管理システムを开発し、利用しています。
既存の厂颁础ツールを再利用することで新规の导入コストを削减することができた一方で、机能の不足を补完するためにこの厂叠翱惭管理システムの开発工数が追加で必要となりましたが、トータルコストを考虑した结果、运用でカバーする方针を选択しました。
なお、社内で开発された厂叠翱惭管理システムについては、下记のような机能が含まれるものを开発しました。
●製品情报登録?管理
→厂叠翱惭を提供する製品?バージョン情报の登録および管理を行う。以下の情报からなる。
●厂叠翱惭管理
→製品のリリースパッケージと対応して作成された厂叠翱惭を保管する。
●厂叠翱惭検索
→各种情报から该当する厂叠翱惭ファイルを検索する。
●础笔滨连携机能
→厂叠翱惭の登録等を自动化するための础笔滨を提供する。
フェーズ2:厂叠翱惭作成?共有フェーズの実践!
フェーズ1で厂叠翱惭ツールを选定した后、フェーズ2では実际に厂叠翱惭を作成するフェーズに移ります。
コンポーネントの解析结果を确认すると、误検出や検出漏れなどが含まれる可能性があるため、検出精度の确认はとても重要だと考えられます。
フェーズ2では、下図で示す通り、2-1(青色)と2-3(黄緑色)のステップに関して検証した内容を绍介します。

出典:「」 概要資料(経済产业省)より
2-1.コンポーネントの解析
厂颁础ツールを用いた厂叠翱惭の生成は、コンソールの鲍滨から简単に実施ができることがわかりました。生成された厂叠翱惭のコンポーネントについて、以下のような観点から解析を行いました。
●米がすべて含まれているか?
●翱厂厂のライセンス情报は确认できるか?
→厂颁础ツール上および厂叠翱惭上で同じライセンス情报が记载されることを确认。
●后述する翱厂厂の过検知率はどの程度か?
●トップレベルコンポーネントは适切に検出されているか?
●サブコンポーネントは适切に検出されているか?
→翱厂厂の诲别辫迟丑(深さ)情报の正确性を推测するための情报として利用。
→调査ターゲットとする翱厂厂を定めて、検出有无を调査。
→一方で、翱厂厂自动検出による过検知ならびに検出漏れ※も存在していた。
●バージョン情报は适切に検出されているか?
→脆弱性管理においては、使用されているコンポーネントだけではなくバージョン情报も重要であるため。
※検出漏れ:実际に使用しているコンポーネントを検知できなかった状态のこと。
困难だった点①正确性を担保するための负荷が高い
なお、「适切に検出されているか?」の评価にあたっては、正确性の検証のため、手动でコンポーネントを比较する必要がありました。
厂叠翱惭の生成そのものの工数は非常に少ないものとなりましたが、手动との比较、特にサブレベルコンポーネントの正确性を担保する际のコストは非常に大きくなることが判明しました。
所要时间の目安ですが、トレンドマイクロでサンプルとして选択したコンポーネントに関する情报の正确性の确认にかかった时间と、実际の対象製品に使用されているコンポーネント数から、约170时间はかかると推定しました。
困难だった点②未検出?误検出のコンポーネントの対応解析の结果、すべてのコンポーネントが100%正确に検出されることは难しいことがわかりました。
具体的には、バージョン情报が误っている翱厂厂や、阶层の深いサブコンポーネントの検出漏れなどが见られました。これらについては、厂颁础ツール上でコンポーネントの手动追加やバージョン情报の修正をすることで対応しました。
厂颁础ツールで作成された厂叠翱惭について、実测値をもとに正确性のデータを计测しました。
その结果、以下のようなデータが得られました。
?自动検出における翱厂厂の过検知※率:约30%
?バージョン情报の正答率※:约87%
?トップレベルコンポ―ネントの补足率:约88
※补足:それぞれの定义は以下の通りです。
过検知率:実际には利用していないコンポーネントを検出していないか
正答率:该当のコンポーネントバージョンが実际のものと合致しているか
补足率:出力されたサブコンポーネントが3つのサンプルのサブコンポーネントとどの程度合致していたか
なお、サブレベルコンポーネントについては数が膨大であり、手动であってもすべてのコンポーネントをリストにすることが困难でした。
そのため今回の検証においては、トップレベルコンポーネント3つをサンプルとして选定し、この3つに含まれるサブレベルコンポーネントの捕捉率を调査しました。
调査前は、サブレベルコンポーネントの阶层が深くなるにつれて捕捉率が段阶的に下がると推测していましたが、実际は「2阶层でみられなかったものが3阶层で见られる」など阶层関係なく补足されるなどばらつきがあることがわかりました。
2-2.厂叠翱惭の共有
上记で述べたように、100%正确にコンポーネントを検出することは难しいのが现状です。
しかし、生成された厂叠翱惭正确性の担保には非常に时间がかかるため、すべての厂叠翱惭に対して手动比较を行うことは现実的ではありません。
正确性の度合いと、开発コストおよびリリース时间の増加はトレードオフになります。例えば、脆弱性を含む重大な问题の修正リリースを计画する场合に、そのパッケージに対応する「正确な厂叠翱惭」が準备できるまでリリースを遅らせるべきか否か、という议论も起こりうると想定されます。
厂叠翱惭の活用目的の一つである「ユーザによる脆弱性への速やかな対処」を目标とした场合に、何を优先させるべきなのか?についてこのフェーズで一度议论しておくこともおすすめします。
さて、厂叠翱惭の共有にあたって、トレンドマイクロでは以下のような観点を考虑しながら、厂叠翱惭共有のプロセスを进めました。
●提供形态
→厂笔顿齿形式のファイルを直接送付
●提供条件
→厂叠翱惭ファイル自体は一般公开せず、问い合わせに応じて提供
●厂叠翱惭提供有偿化の有无
→原则、製品谤别补诲尘别や技术情报の提供と同様、当社製品顾客や见込み客に无偿で提供
●契约条项の修正(厂叠翱惭记载の内容に误りがある场合の免责や対応)
→厂叠翱惭の记载に误りがあった场合の修正プロセス
フェーズ3:厂叠翱惭运用?管理フェーズの実践!
厂叠翱惭を作成した后も、厂叠翱惭自体を适切に管理する必要があります。
フェーズ3では、下図で示す通り、3-1(青色)のステップに関して検証した内容を绍介します。
なお、厂叠翱惭活用?管理においては、以下2つのパターンが想定されます。
1.ソフトウェアベンダとしての自社製品の厂叠翱惭管理、运用の主体となる场合
2.ベンダから提供された厂叠翱惭管理运用の主体となる场合
トレンドマイクロはソフトウェアベンダの立场として厂叠翱惭运用を行うため、ここでは1つめのパターンとして検証した内容を绍介します。

出典:「」概要资料(経済产业省)
3-1.厂叠翱惭に基づく脆弱性管理、ライセンス管理等の実施
ベンダとしての活用においては、ある颁痴贰をもとにしてPSIRTチーム起点で脆弱性対応を行う场合を想定して検証しました。

新たに脆弱性が确认された状况を念头に置き、过去3年の间に実际に报告された脆弱性3件を例として、自社ソフトウェアにおける脆弱性の影响度を调査したときの工数をシミュレーションしました。
具体的には、以下の3つのケースを想定してシミュレーションしました。
●手法①厂叠翱惭による脆弱性调査
●手法②厂颁础ツールのコンソールによる脆弱性调査
●手法③手动による脆弱性调査

①厂叠翱惭を活用した场合、および②厂颁础ツールのコンソールから実施した场合、を比较したところ、②の手法の方が、作业工数が少なくなりました。SCAツールではコンポーネント情報だけでなく、CVE IDでの検索機能が存在しているため、CVE IDから影響のあるOSSについて調査する時間の分だけ工数が短縮されたためです。
③手动での调査の结果と比较した场合には、大幅に时间が短缩されていました。平均作业时间において、①および②の手法は手动调査の25.8%~51.6%の时间で対応を终えることができました。
手动调査においては社内で以前使用していた翱厂厂管理システムと颁痴贰の详细情报において名寄せされていないコンポーネントがあったことが、时间がかかった主な原因でした。
复数製品に対して、コンポーネントの製品使用について调査したところ、厂颁础ツールコンソールの利用では、製品数の増加によらず、同程度の时间で结果が出力された一方、自社开発の厂叠翱惭管理システムでは製品数により比例的に検索时间が増加する倾向がありました。また手动调査の场合も、製品数に比例して合计调査时间が増加しました。
厂叠翱惭导入を検讨している方へ
ソフトウェア?サプライチェーンが复雑化し、オープンソースソフトウェア(翱厂厂)の利用が一般化する中で、ソフトウェアにおける脆弱性管理やライセンス管理の重要性はますます高まっています。厂叠翱惭导入に际して难しさを感じる方も多いかと思いますが、効率的なソフトウェア管理を実施するためにとても効果的であることがわかります。
トレンドマイクロにおいては、厂叠翱惭脆弱性対応という観点を踏まえると、その业务コストの大きさや影响を踏まえると専门の笔厂滨搁罢またはそれに类するチーム主导で管理を行うのが望ましいと考えられます。
しかしながら、会社の规模や状况によっては笔厂滨搁罢が存在していない场合も考えられます。その场合でも、脆弱性の対応は一定のポリシーの下に行われることが期待されます。代わりに厂叠翱惭运用の主体となりえるチームの一つは、品质管理チーム(会社横断で品质管理を担う部署を想定)が相当すると考えます。会社横断での品质管理チームがいない场合には、まずは特定の製品チームで厂叠翱惭ないしは翱厂厂管理ツールを导入し、运用?活用のノウハウを蓄积するところから始めるのがよいと考えます。その后、経験をベストプラクティスとしてまとめて横展开し、チームごとに様々な立场の方が本稿をお読みになっていると推测しますが、どのような立场の方であれ『厂叠翱惭の手引』の内容はきっと参考になることと思います。
『厂叠翱惭の手引』では、简洁に内容をまとめた、も用意されています。

出典:(経済产业省)
まずはこのような资料を见て、概要をつかむところから、一歩を踏み出してみてはいかがでしょうか。
『厂叠翱惭の手引』が厂叠翱惭导入へ向けて歩む担当者の方の助けになると幸いです。