はじめに
近年では、企業の新たなサービス展開や新機能のリリースなどシステム開発に対するスピード感が求められており、クラウドサービスやOSSの利用が進んでいます。
クラウドサービスやOSSは、開発の利便性が高い反面、それぞれのサービスの内部に使われているライブラリやモジュールが複雑化しており、使用されているライブラリやモジュールを管理する負荷が上がっています。
そのため、ライブラリやモジュールで脆弱性が発見された際にはシステムで実際に使用されているか特定することが困難になっています。
2021年12月にJavaで多く利用されているLog4jライブラリの脆弱性発生時には、各企業が自社のサービスでLog4jの使用状況を調査するのに膨大な時間と工数がかかり、その間もシステムは危険に晒されている状態でした。
従来の脆弱性管理における課題
調査時間と工数がかかった背景には、下記のような課題が考えられます。
課題1.非効率な脆弱性調査方法の踏襲
各システムで利用されているライブラリやモジュールがアナログな台帳で管理されていて、人手で脆弱性のあるソフトウェアと突合する方法がとられており、脆弱性発生時に迅速な対応ができない。
課題2.ライブラリやモジュールの管理品質のばらつき
各システムの担当者による管理では、管理するライブラリやモジュールの粒度にばらつきが出ていて、正しい脆弱性調査を行うことができない。
このようなソフトウェアの脆弱性調査の課題を解決する手法の一つとして、Software Bill of Materials(SBOM)を用いた脆弱性の継続的管理が注目を集めています。
SBOMとは、ソフトウェア製品やシステムに含まれるすべてのコンポーネントの情報(構成情報)や依存関係を一覧化した文書またはデータのことを指し、各コンポーネントのサプライヤー名、コンポーネント名、依存関係、タイムスタンプなどの詳細情報が含まれ、脆弱性管理の高度化を実現することができます。

SBOMのイメージ:米国商務省電気通信情報局(NTIA)より引用
Framing Software Component Transparency: Establishing a Common Software Bill of Materials(SBOM)
SBOMを活用した脆弱性管理事例
SBOMを活用した脆弱性管理を行っているNTTデータの支援事例を紹介いたします。
事例1.脆弱性管理の共通基盤化
A社では、複数のクラウドサービス上で多数のシステムを開発しており、各サービスごとに脆弱性管理を実施している状況でした。
また、一部のサービスでは独自の脆弱性セキュリティスキャンシステムを運用しており、セキュリティスキャンシステムが乱立し、重複した運用作業が行われている状況でした。
大規模なシステム環境においてリアルタイムかつ網羅的な統合脆弱性管理を実現するために、全社の脆弱性をSBOM形式で管理する共通基盤システムを導入しました。
秘匿性が高い業務データを別のシステム環境へ移動させることなく脆弱性検査を実施する必要があったため、エージェント型のスキャン方式を採用しました。
これにより脆弱性発生時の調査期間を従来の約2週間から最短で2日に短縮し、さらにSBOMを活用することで従来の脆弱性調査方法では見逃されていた脆弱性の検知が可能となりました。

事例2.CICDへの脆弱性チェックプロセスの組み込み
B社では、新規事業の開発に向けた実証実験を行うため、多数のシステム開発が高速で進められていました。
アジリティを優先していたため脆弱性に関するチェック対応が後手に回っており、後工程で実施された脆弱性検査で大量の脆弱性が検知され、大幅な対応工数がとられてしまっている問題がありました。
また、開発現場では、オフショア、ニアショア、業務委託、個人事業主等で開発が行われており、開発現場での脆弱性対応に関するガバナンスが行き届かない状況でした。
脆弱性の早期検出・対処(シフトレフト)を実現するため、CICDへSBOMを活用した脆弱性チェックを導入しました。
CIの工程での脆弱性対処が行われ、後工程での手戻りや修正対応の工数を抑えることが可能となりました。
さらに、開発段階で脆弱性の是正対応を行うことによる学習効果で、ソースコードに埋め込まれる脆弱性の数が削減されました。
このように、CICDへの脆弱性チェックプロセスを組み込むことで、緊急性の高い脆弱性は即時に検知し、即日修正させることで開発者側も効率的に開発に取り組むことができ、管理者側としてもガバナンスの徹底を実現することができました。

脆弱性管理の目指すべき姿
現在、日本国内では経済産業省や総務省が注力してSBOMの調査と検討を行っています。
経済産業省では「ソフトウェア管理に向けたSBOMの導入に関する手引き」を策定し、導入時のポイントがまとめられており、セキュアなソフトウェアの流通にむけたSBOMの活用を促進する動きとなっています。
これからの脆弱性管理の効率化には、事例の中で紹介した「脆弱性管理の共通基盤化」「CICDへの脆弱性チェックプロセスの組み込み」が重要なポイントになると考えています。

まとめ
今回SBOMを活用した脆弱性管理事例と目指すべき姿について紹介いたしました。
諸外国においては、政府調達ソフトウェア 等に対して、SBOMの作成や提供を義務化する動きがあり、日本国内においても経済産業省を中心に導入を促進するための実証実験やSBOMへの対応を評価する仕組みが検討されています。
今後、SBOMの導入が必須化され、脆弱性管理レベルの高いサービスが評価され、マーケットから選択される将来が訪れるかもしれません。
そのような将来に備えて、効率的な脆弱性管理の仕組みを構築していきましょう。
