脆弱性を管理するためにはSBOMが有効
SQuBOKやBSIの設立背景や目的を語った後、松岡氏は「体系的な知識や仕組みを用いてソフトウェアの品質を管理していくことは非常に重要」と述べる。そのうえで、脆弱性を管理するためにはSBOM (Software bill of materials:ソフトウェア部品表)を用いることが有効なのではないか、というアイデアを示した。
SBOMはコードベースに存在するすべてのオープンソースおよびサードパーティ・コンポーネントの一覧のことだ。SBOMには各コンポーネントのライセンスの種別や、コードベースで使用されるコンポーネントのバージョン、それらのパッチの提供状況も記述される。
SBOMを保守することで、ソフトウェアを構成するソースコードが高品質かつ定められた規格や規制に準拠しており、安全であることを保証できる。このように、ソフトウェアがどのような要素から構成されているのか解析することをSCA(Software Composition Analysis:ソフトウェア・コンポジション解析)という。
SBOMの有益性を示すため、松岡氏はある情報を提示する。日本シノプシスは毎年、各種産業におけるOSSの利用状況を調査した「オープンソース・セキュリティ&リスク分析(Open Source Security and Risk Analysis:OSSRA)レポート」を発行している。
2020年のレポートでは、1,253のアプリケーションを調査したところ、コードベースの7割をオープンソースが占めていることが提示された。つまり脆弱性の管理を行うには「OSSにどのような脆弱性が含まれるのかを見つけ出すこと」が必須となる。そして脆弱性可視化のためには、コードベースに含まれる要素を網羅的に洗い出せるSBOMが有効なのだ。
とはいえ、特定のアプリケーションに含まれるコードベースをすべて調べることは容易ではない。そこで日本シノプシスは、SCAを支援するためにBlack Duck Binary Analysisというソリューションを提供している。松岡氏はBlack Duck Binary Analysisの有用性についてセッション内で解説していった。
セッション終盤では、SBOMの有益性は世界各国で認められており、各所で標準化や推進をする動きが見られることも語られた。また、ソフトウェアの品質向上とリスク低減を目指すためには、SBOMの導入だけではなく、開発プロセスや組織体制の改善も必要であることを松岡氏は解説。「自動化されたセキュリティテストをCI/CDパイプラインのなかに組み込み、コード量の増加に伴う検証負荷の増大を軽減する」「ソフトウェア開発に関わるすべてのメンバーが、セキュリティ向上に対する意識を持つ」などの知見が示された。
最後は以下のまとめが示され、セッションは終了した。
ソフトウェア品質はセキュリティ品質を含む
- みなさんの組織ではセキュリティ品質の指標を含んでいますか?
脆弱性の混入を発見し管理するための手段が必要
- 既知の脆弱性、ライセンス違反の可能性、最新版の情報、更新頻度の情報
- ソースコードやバイナリーの状態を可視化するためにはSCAツールが必要
自前のコードを可視化するためにはSAST(静的解析)ツールが有効
- コード内の脆弱性や、潜在的な危険性を指摘してくれる
常に情報の更新と課題の抽出と対策の検討と適用を繰り返す
- ソフトウェアを使い続ける限り繰り返す
これを組織全体で共有し、ビジネスの課題として扱うことが必要
- リスク分析、脅威分析、ペンテスト、レッドチームなどで対策の選択と保護が適切か検証
- インシデントが発生した際に活用できる
オンラインセミナー:ソフトウェア品質とセキュリティ品質の温故知新
デブサミのセッションでは時間の関係で盛り込み切れなかった内容も含む”ディレクターズカット版”を、シノプシスのオンラインセミナーポータルでご視聴いただけます。