ソフトウェアの開発・運用には、社内外問わずさまざまな構成要素が利用されます。強固なセキュリティを施すためには、これらを網羅的に管理した上で、セキュリティリスクを軽減させることが重要です。
ソフトウェアサプライチェーンセキュリティとは?
「ソフトウェアサプライチェーン」とは、ソフトウェアの設計から開発、配備、保守に至るまでの一連の工程(プロセス)および構成要素(コンポーネント)を指します。
ソフトウェア開発においては、人やソースコード、サードパーティーのツール・ライブラリなど、さまざまな構成要素が組み込まれていることが一般的です。これによって、ソフトウェアの構成は複雑になり、脆弱性が潜在していたり、攻撃や脅威などにさらされたりする可能性が高まります。
そこで重要となるものが、「ソフトウェアサプライチェーンセキュリティ」です。これは文字通り、ソフトウェアサプライチェーン全体を保護するための戦略や取り組みを指します。構成要素のサプライチェーン攻撃を受けるリスクを減らし、デジタル資産を守ることが目的です。
ソフトウェアサプライチェーンセキュリティの必要性
従来のソフトウェア開発はゼロからソースコードを書き上げていましたが、近年はオープンソースやサードパーティーのツール・ライブラリなど、既存の構成要素を組み込んで行います。しかし、これらに脆弱性が潜在していると、重大なインシデントが発生するおそれがあります。
実際、過去にはあるベンダー企業が提供するプラットフォームの脆弱性が狙われ、その製品を利用していた多くのユーザー企業が被害を受けた事例が報告されています。
このように、自社が開発・管理していない構成要素によって被害を受けることを避けるためにも、サプライチェーン全体にまたがるセキュリティが必要です。そして、セキュリティと完全性の確保は、ソフトウェアの信頼性を向上させます。
代表的なソフトウェアサプライチェーンにおけるセキュリティリスク
セキュリティを強化するためには、リスクが潜在している可能性がある場所を具体的に把握することが重要です。
悪意のあるコード
第一に警戒すべきは、悪意のあるコードの挿入です。攻撃者はランサムウェアやバックドア、データ流出メカニズムなどを仕込むことで、ソフトウェアを危険にさらそうとします。このようなコードは、正規のソフトウェアに見せかけて被害を拡大させるので、注意が必要です。
安全性が確認できないサードパーティーの構成要素
近年のソフトウェア開発では、サードパーティーのライブラリやフレームワークを利用することが多いです。しかし、これらが適切に管理・保護されていない状態では、脆弱性が潜在しているおそれがあります。この脆弱性を攻撃者に悪用されると、ソフトウェア全体のセキュリティが脅かされてしまいます。
ソフトウェアサプライチェーンセキュリティ攻撃への対策
第一に有効なのは「コードレビュー」です。これは悪意のあるコードや、仕様書にない想定外の動作の有無を検証することを指します。ただし、すべてのコードを手動でレビューすることは、非常に手間がかかるため効率的であるとは言えません。
そこで役立つものが、ソースコードをスキャンして、脆弱性や悪意のあるコードを検知するツール「SAST(Static Application Security Testing=静的アプリケーションセキュリティテスト)」です。これによって、コードを詳細に解析し、ランサムウェアのような潜在的なリスクを早期に見つけられます。
ただし、より効果的なセキュリティ対策を講じるには、さまざまな手段を組み合わせて、多層的な防御の構築が重要です。具体的にはSASTのほかに、サードパーティーが公開している脆弱性情報や、後述する「SBOM」などの活用が求められます。
ソフトウェアサプライチェーンセキュリティ強化に役立つSBOM
なぜソフトウェアサプライチェーンセキュリティ強化にSBOMが役立つのか、概要や必要性、活用要件などからその理由がわかります。
SBOMとは?
SBOM(エスボム)とは、「Software Bill of Materials」の略称で、「ソフトウェア部品表」と訳されます。要するに、ソフトウェアのさまざまな構成要素と、その依存関係をリスト化したものです。
SBOMの活用により、ソフトウェアの構成要素を詳細に可視化し、サードパーティーで開発されたソフトウェアのサプライチェーンリスクに必要な対策を講じやすくなります。
SBOMの導入は経済産業省も推奨しており、下記の手引も公開しています。
参照元:経済産業省「『ソフトウェア管理に向けたSBOM(Software Bill of Materials)の導入に関する手引』を策定しました 」
SBOMの必要性
SBOMの必要性が高い理由として、構成要素に脆弱性を見つけた際に、影響を受ける範囲を迅速に特定・対応できる点が挙げられます。SBOMがない状態では、要素間の依存関係などを把握することが難しくなるため、影響を受ける範囲の特定も遅くなりがちです。
特に、サードパーティーのツール・ライブラリを利用する場合は、ソフトウェアの構成が複雑になります。それらの複雑な情報やセキュリティ、リスクなどの管理の強化にSBOMが欠かせません。
SBOMの活用に必要な要件
SBOMを作成しただけでは、セキュリティ対策は完全に整っていません。セキュリティの実効性を高めるためには、以下の要件を満たすことが重要です。
【継続的な作成と管理】
SBOMはソフトウェアの変更に応じて、継続的に更新する必要があります。これを実行するためには、CI/CDツールと連携して、変更のたびに自動でSBOMを作成・更新できる環境を作ります。
【脆弱性情報の取得とモニタリング】
SBOMにはソフトウェアの構成情報が含まれていますが、その情報に対して脆弱性データベースなどから最新の脆弱性情報をマッピングした上で、モニタリングすることが求められます。これにより、脆弱性が潜在している構成要素がソフトウェアに組み込まれていないかどうかの確認が可能です。
【迅速な開発現場への通知】
もし脆弱性を見つけた場合、開発現場へ迅速に通知し、適切な対応を取れる状態にすることが欠かせません。通知には、脆弱性を修正するためのバージョン情報や対策も含めることが望ましいです。
NTTデータ先端技術のSBOMソリューション
NTTデータ先端技術では、ソフトウェアサプライチェーンセキュリティの強化を目的とした、SBOM導入を包括的にサポートしています。SBOMの導入工程は、主に以下の流れに沿って進められます。
【1. 環境構築・体制整備】
まずは、SBOMを運用する環境や範囲を明確にし、適切なツールの選定と設定、さらにはその利用方法の学習を行います。
【2. SBOMの作成・共有】
次に、構成要素を詳細に分析し、SBOMを作成・共有します。
【3. SBOM運用管理】
最後に、作成されたSBOMをもとに、脆弱性管理やライセンス管理を継続的に実施し、強固なセキュリティ体制を維持します。
まとめ
ソフトウェアのライフサイクル全体にわたって、悪意のあるコードやさまざまな構成要素の脆弱性から企業を守るためには、ソフトウェアサプライチェーンセキュリティが重要です。具体的な対策として、SASTやSBOMなどの導入がとても役立ちます。