ソフトウェアサプライチェーンを強化し、サイバー攻撃対策を向上

はじめに
昨今、ソフトウェアサプライチェーン攻撃はますます巧妙化し、深刻な影響を及ぼしています。本稿では、こうした攻撃への対策として有効な、ソフトウェアサプライチェーンを強化するための3つの重要な要素を解説していきます。
巧妙化する
ソフトウェアサプライチェーン攻撃への備え
昨年話題になったXZ Utilsのバックドア事件からPolyfill JSプロジェクトの乗っ取りとマルウェア配布に至るまで、ソフトウェアサプライチェーン攻撃はDevSecOpsコミュニティにとって大きな課題となっています。こうした攻撃はますます巧妙化し、経験豊富な専門家をも驚かせることがあります。これらの脅威は避けられないものであり、壊滅的な影響を与える可能性があることを改めて世に知らしめました。
組織は、ソフトウェアサプライチェーン攻撃への対策として、ソフトウェア開発の構築環境における3大要素である「可視性」「ガバナンス」「継続的デプロイメント」を強化し、サイバーレジリエンスを高める必要があります。これらの領域に注力することで防御力を高め、次のサイバー攻撃からの復旧時間を短縮できます。その詳細を、順を追って以下に説明していきます。
可視性:動的システムでの状態の把握
セキュリティ担当者は、限られた一時的な情報をもとにソフトウェアシステムを保護しなければなりません。システム運用を支える情報は、動的で複雑なコンピューティングシステムの一時的な記録であり、セキュリティ管理の情報も、その時点のセキュリティ状態を示すに過ぎません。生成AIによって一部のセキュリティ制御はより動的で柔軟になりつつありますが、現在のセキュリティ境界の大半は依然として静的または経験則に基づいたものです。
一方で、大規模コンピューティング環境における未知の要素は、常にほぼ無限に存在します。コードは日々数百回から数千回更新され、インフラの変更によって既存のセキュリティ境界が消滅することもあります。さらに、アップストリームの依存関係が大きなセキュリティリスクを引き起こす可能性もあります。
次の攻撃に備えるには、セキュリティ担当者がリアルタイムで環境を把握し、未知の要素を減らす必要があります。例えば、商業ソフトウェアとオープンソースソフトウェア(OSS)の双方において、ソフトウェア部品表(SBOM)の活用は不可欠です。SBOMによってソフトウェアの構成要素を網羅的に把握することで、新たな脆弱性が発覚した際に迅速な特定が可能になります。資産インベントリは、その有用性と価値を最大化するために、すべての資産を一元的に管理できるカノニカル(最も信頼できる唯一の情報源)として機能し、インデックス作成、拡張可能なAPI(アプリケーション・プログラミング・インターフェース)、検索可能なインターフェースを備えている必要があります。
また、組織のソフトウェアの導入時期を把握することも、セキュリティ対策を講じる上で重要です。古いサービスは、更新やメンテナンスの頻度が低いため、外部からの攻撃や脆弱性の影響を受けやすくなります。一方、新しいソフトウェアは、ビジネスロジックの欠陥などの「ファーストパーティ」問題や、まれにまったく新しい攻撃手法の影響を受けやすくなります。新旧のソフトウェアを組み合わせると、セキュリティ境界の前提が変わっていたり、すでに有効でなくなっていたりする場合に、予期せぬリスクが生じる可能性があります。
ガバナンス:ソフトウェアサプライチェーンの管理
組織のソフトウェアシステムを把握するだけでは不十分です。ソフトウェアライフサイクル全体でセキュリティを維持し、責任を明確化するためには、適切なガバナンスが欠かせません。ガバナンスとは、リーダーシップの監督のもと、安全な運用を保証するためのポリシー、プロセス、管理体制の枠組みを指します。
セキュア・バイ・デザインなソフトウェアを構築するために、以下の点を考慮しましょう。
- 再現可能なソフトウェアを構築し、各サービスにセキュリティ保証の指標を維持する
- セキュリティ境界が期待どおり機能しているかを確認するチェックを実施する
- 事前に構築されたInfrastructure-as-Code(IaC)の設計パターンを活用する
- セキュリティ運用や脆弱性アラートチーム、およびツールで活用できるSBOMを構築する
- セキュア・バイ・デフォルトの原則が守られるように、セキュリティチェックを自動化する
- ソフトウェア開発ライフサイクル(SDLC)に生成AI検証を組み込んで、効率性の向上、エラーの削減、開発プロセスに関する深いインサイトの取得を可能にする
- Policy as Code(PaC))を適用して、クラウドサービス、アプリケーション、ネットワーク、データ全体のセキュリティポリシーの管理と適用を自動化し、一貫性のある包括的なセキュリティ対策を実現する
- 障害ドメインをあらかじめ制約するようにセキュリティ境界を設計する
また、OSSのセキュリティを強化するために、オープンソースプログラムオフィス(OSPO)を設立することも検討しましょう。OSPOとは、OSSの使用の管理、セキュリティ対策の監督、オープンソースコミュニティとの関係強化、最新のセキュリティとコンプライアンス動向の把握、オープンソースコンポーネントの信頼性とセキュリティの監視を担うチームです。
継続的評価:未知の脅威に備える
ソフトウェアサプライチェーンの脆弱性に対する耐性を高めるには、環境を継続的にテストしモニタリングすることが重要です。継続的デプロイメントとは、コードの変更が自動テストを通過すると即座に本番環境へ自動的にデプロイされる仕組みを指し、1日に数百回から数千回行われることもあります。これは、継続的インテグレーションとデリバリーをさらに発展させたもので、デプロイプロセス全体を自動化してソフトウェアの品質向上とリリースの加速を実現します。ただし、継続的デプロイメントを実現するには、可視性とガバナンスの要素が適切に整備されている必要があります。
多くのデベロッパーはテストを書くことを好まず、時間があれば理想的なテストカバレッジを確保したいと思っていても、実際には十分に達成できていないことがほとんどです。単体テストや統合テストを含む包括的なテストカバレッジを確保することで、環境内のすべての要素が、単独でもほかのコンポーネントと連携した状態でもエラーがないか検証されます。この分野では、生成AIが単調な作業の自動化や加速に大いに役立ちます。生成AIを活用することで、開発チームは開発速度を向上させるだけでなく、ソフトウェアのセキュリティと耐性を継続的に確認できるようになります。
また、セキュリティ境界を自動的にチェックすることで、その維持・管理が確実に行われ、潜在的な侵害に対する最初の防御線として機能します。本番環境をモニタリングすることも、セキュリティ問題の兆候となる不整合や予期しない挙動を検知できるようにする重要な要素です。さらに、資産インベントリの完全性と一貫性を維持するには、継続的なプログラムによる自動検出が不可欠です。
未知の脅威に対する耐性の構築
組織が今後のセキュリティ脅威を未然に防ぐために、どれだけ柔軟に適応し、防御態勢を進化させられるかで、サイバーレジリエンスの真価が問われます。事前の対策として、セキュリティ担当者は、効果的な対応と復旧を可能にするために、ソフトウェアエコシステムを適切に整備し、脆弱性が発見されてから修正されるまでの時間を最小限に抑えなければなりません。
可視性による状況把握、ガバナンスによる管理、継続的デプロイメントによる予測を行うことで、組織は次のソフトウェアサプライチェーン攻撃に対する備えを強化できます。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- テクマトリックス、SBOMソリューションの販売を開始
- OpenSSFがソフトウェアのサプライチェーンセキュリティのための仕様「SLSA(サルサ)」のVersion 1.0を公開
- 「OpenSSF Meetup」開催、「OpenSSF Day North America」で発表された「OSSセキュリティのための動員プラン」の内容を解説
- CNSC 2022、SBoMの概要と未来を展望するセッションを紹介
- KuberCon/CloudNativeCon NA 2021開催、3日間のキーノートを紹介
- 米国のバイデン大統領が署名したことで話題となった「国家のサイバーセキュリティ改善に関する大統領令」とは
- LFがSBOMの導入によるライセンス順守とソフトウェアセキュリティ強化に関するレポートを発表、ほか
- LFとOpenSSF、OSSのセキュリティを向上させる具体的な計画を日本で発表
- KubeCon NA 2021、ソフトウェア開発工程のタンパリングを防ぐSLSAを解説
- KubeCon Europe 2024にて、グラフを用いてSBOMを可視化するGUACのコントリビューターにインタビュー