概要
ソフトウェア・サプライチェーンのセキュリティは、リスク管理とサイバーセキュリティのベストプラクティスを組み合わせて、ソフトウェア・サプライチェーンを潜在的な脆弱性から保護します。ソフトウェア・サプライチェーンは、アプリケーション開発から CI/CD パイプライン、デプロイメントまで、ソフトウェア開発ライフサイクル (SDLC) においてコードに関わるすべてのものや人で構成されています。
サプライチェーンには、コンポーネント (インフラストラクチャ、ハードウェア、オペレーティングシステム (OS) 、クラウドサービスなど)、それらを書いた人、レジストリ、GitHub リポジトリ、コードベース、その他のオープンソース・プロジェクトなどのソースなど、ソフトウェアに関する情報のネットワークが含まれます。また、ソフトウェアのセキュリティに悪影響を及ぼす可能性のある脆弱性も含まれるため、そこで出番となるのが、ソフトウェア・サプライチェーンのセキュリティです。
ソフトウェア・サプライチェーンのセキュリティが重要な理由
現在のソフトウェアのほとんどはゼロから書かれたものではなく、オープンソース・ソフトウェアを含むソフトウェア・アーティファクトの組み合わせであることが一般的です。しかし、こういったソフトウェア・アーティファクトには脆弱性が存在する場合があるうえ、開発者はサードパーティからのソースコードや、ソフトウェア・アーティファクトに対する変更について自分で制御することはできません。パッチが適用されていないソフトウェアは、セキュリティ上の問題が発生しやすくなっています。ソフトウェアは日々の業務遂行に不可欠であるため、サプライチェーンのセキュリティは、すべての組織とセキュリティチームの重要な責務です。
2020 年、ソフトウェア会社の SolarWinds が侵害され、大企業や政府機関の間で使用されているプラットフォームである同社の IT 監視・管理ソフトウェア「Orion」を介して攻撃者が悪質なコードを起動させました。ハッカーはサプライチェーンを攻撃することで、SolarWinds 社だけでなく、その顧客にも侵入したのです。Log4j は広く使用されていますが、悪用されやすいオープンソース・ソフトウェアでもあり、無数のユーザーや組織がデータ漏洩や攻撃の影響を受けやすい状況に置かれています。2021 年、米国大統領はソフトウェアのサプライチェーンとセキュリティの重要性を強調し、ホワイトハウスはサプライチェーンとサイバーセキュリティに関する 2 つの大統領令を出しました。
ソフトウェア・サプライチェーンにおけるセキュリティリスクとは
ソフトウェア・サプライチェーンの構成要素に対するあらゆるリスクが、そのサプライチェーンの構成要素に依存するすべてのソフトウェア・アーティファクトに対する潜在的リスクとなります。ハッカーはマルウェアやバックドアなどの悪意のあるコードを挿入し、あらゆるコンポーネントとその関連サプライチェーンを危険にさらします。ソフトウェア・サプライチェーンに対する攻撃は、一般的に営利目的の脅威行為者や国家的行為者によって行われることが多く、デジタルと物理の世界の両方に劇的な影響を与える可能性があります。これらは、一般的に 4 種類のリスクのいずれかに分類されます。
- 脆弱性:ソフトウェアのコードに存在する欠陥のことで、これが悪用されることにより侵害が起きます。このリスクを最小化するために、ソフトウェア・アーティファクトのパッチとアップデートを行います。
- ライセンス:構築したソフトウェア・アーティファクトをオープンソース化し、特許権を無効にすることを義務付けられる可能性のある法的リスクです。この分野の法律の専門家にご相談ください。
- サードパーティへの依存:ソフトウェア・サプライチェーンの一部として、外部の組織に依存しているもので、把握が困難です。すべてのサードパーティコードを分析し、サプライヤーがどのように保護しているかについて聞くと良いでしょう。
- プロセスやポリシー:確立されていない場合に問題となります。開発者のためのポリシーと、脆弱性に対応するためのプロセス (またはプレイブック) を作成します。
一般的な攻撃経路は、アップデートの乗っ取り、コード署名の弱体化、オープンソースコードの侵害などです。
DevSecOps とソフトウェアセキュリティ
DevSecOps は、文化、自動化、およびソフトウェア設計へのアプローチであり、IT ライフサイクル全体を通じてセキュリティを共有責任として統合します。DevSecOps とは、アプリケーションとインフラストラクチャのセキュリティを、開始時点から考慮することです。また、DevOps ワークフローの速度が低下しないよう、一部のセキュリティゲートを自動化することも必要です。セキュリティ機能を搭載した統合開発環境 (IDE) を全員で使用するなど、継続的にセキュリティを統合するための適切なツールを選択すると、このような目標を達成しやすくなります。
Red Hat Advanced Cluster Security for Kubernetes は、セキュリティチェックをソフトウェア・サプライチェーンと開発者ワークフローに統合し、リスクの高いセキュリティ問題を検出して修正できるようにします。また、開発者に既存のワークフローでセキュリティコンテキストを提供することにより、DevOps でのセキュリティを自動化します。
ソフトウェア・サプライチェーンのセキュリティとアプリケーション・セキュリティ
ソフトウェア・サプライチェーンは、コードに関わるべての人々で構成されていますが、アプリケーション・セキュリティは、コードそのものを攻撃や脆弱性から保護するものです。ソフトウェア・サプライチェーンのセキュリティと同様に、アプリケーション・セキュリティも開発の各段階で適用される必要があります。
アプリケーション・セキュリティは、ソフトウェア開発ライフサイクルに始まり、システムに対する不正アクセスの防止や専有データの保護を目標に、アプリケーション・ライフサイクル全体を通じて拡張されています。サプライチェーンの整合性を強化することは、ひいてはアプリケーションの安全性を高めることにつながります。攻撃者がアプリケーションを危険にさらさないようにするための方法には、設定の強化、攻撃対象の最小化、権限の制限、ソフトウェアの署名、システムのさまざまな部分へのビルドの分散などがあります。
ソフトウェア・サプライチェーンの脅威を軽減させる
ソフトウェア・サプライチェーンのセキュリティは、組織、顧客、そしてオープンソースのコントリビューションに依存するすべての組織にとって重要です。どの組織も侵害されることを望んでいませんし、また他の組織が同様の事象に遭遇した場合の原因にもなりたくありません。そのために重要なのが、ソフトウェア・サプライチェーンを保護することです。
以下は、セキュリティチームが考慮すべきセキュリティ・ベストプラクティスの概要です。
- サプライチェーン全体のリソース (開発者ツール、ソースコードレポジトリ、その他のソフトウェアシステムなど) に対して最小権限のアクセスを付与し、多要素認証を有効にし、強力なパスワードを使用します。
- 従業員へのセキュリティ教育を定期的に実施します。
- 接続されたすべてのデバイスと機密データのセキュリティを強化します。
- 一次サプライヤーから順に、サプライヤーとその取引先を把握します。リスクアセスメントを実施し、各サプライヤーのサイバーセキュリティ態勢と脆弱性に関する公共政策を評価します。
- 脆弱性のあるシステムを定期的にスキャンし、パッチを適用します。
また、セキュアコーディングの実践、ロックファイルの使用など、セキュリティに重点を置いた取り組みも検討する必要があります。
- チェックサムの検証を行います。
- ソース制御にベンダーの依存関係を含めます。
- ソフトウェア部品表 (SBOM) を発行し、利用します。
- 以下を含む SLSA (Supply-chain Levels for Software Artifacts) を採用します。
- ソフトウェア・アーティファクトにデジタル署名を付与し、出所を認証する機能。
- プロセスやポリシーに自動化を活用。
- ソフトウェア・コンポジション分析 (SCA)、静的アプリケーション・セキュリティ・テスト (SAST)、動的アプリケーション・セキュリティ・テスト (DAST)などの自動セキュリティテストツールで、ソフトウェアをスキャンします。
Red Hat を選ぶ理由
Red Hat はソフトウェアコンポーネントと依存関係をソフトウェア開発ライフサイクルの早期段階でセキュリティ保護する必要性を理解しており、DevSecOps プラクティスを通じてあらゆる段階でセキュリティの統合を自動化します。アップストリームのサプライチェーンを理解するプロセスを Red Hat にお任せください。お客様が信頼してビジネスを 24 時間 365 日委ねることができる製品をご提供します。Red Hat とパートナーは、専門知識、包括的な DevSecOps エコシステム、お客様がソフトウェア開発ライフサイクル全体にソフトウェア・サプライチェーン・セキュリティを実装できるよう支援する能力を提供します。