によると、 ガートナーレポート、45 年までに世界中の組織の最大 2025% がソフトウェア サプライ チェーンへの攻撃を経験すると予想されます。最近のソフトウェア製品の構築方法の変化により、この種の攻撃は頻繁になり、対処が困難になっています。
現在、ソフトウェア エンジニアはアプリケーションをゼロから構築する必要はありません。できるだけ アプリの 90% サードパーティのコード、個別のライブラリ、オープンソース ソフトウェアを使用して構築できます。ソフトウェア開発に対するこのアプローチは、アプリの構築プロセスを簡素化し、時間を大幅に節約するのに役立ちますが、悪意のあるパッケージがサードパーティのコードやソフトウェアを通じて配信される可能性があるため、脅威やセキュリティの脆弱性も増大します。
結局のところ、それは ますます難しくなる ソフトウェアサプライチェーンの完全性を維持するため。最近のソフトウェア サプライ チェーンのリスクの増加と、それによって引き起こされる注目を集める侵害は、サプライ チェーンにおける脆弱性の問題がいかに深刻であるかを示しています。
この傾向に伴い、組織はソフトウェアの整合性とセキュリティを確保するための措置を講じることが不可欠になっています。この投稿では、一般的なソフトウェア サプライ チェーンのリスクと、組織がこれらの脆弱性を軽減し、ソフトウェアを攻撃から保護できるさまざまな方法について説明します。
ソフトウェア サプライ チェーンの既知の脆弱性
サードパーティ ソフトウェアは、ソフトウェア サプライ チェーンにいくつかの脅威をもたらす可能性があります。攻撃者は、さまざまな方法を利用して、このサードパーティ ソフトウェアに依存するシステムの脆弱性を悪用する可能性があります。これらの攻撃方法には、ソフトウェアへの悪意のあるコードの導入、依存関係の混乱、タイポスクワッティングなどが含まれます。
しかし、ソフトウェア開発の複雑さと、今日の競争の激しいデジタル市場では新しいアプリを配信する必要がある速度が速いため、ソフトウェア エンジニアは、アプリケーションをできるだけ早く作成するためにサードパーティのツールや外部ライブラリに頼らざるを得ません。 。
次のような結果として、アプリケーションに脆弱性が導入される可能性があります。
- あなたが書いたコード: 自分で書いたカスタム コードの不十分なセキュリティ慣行
- 構築に使用するもの: アプリの構築に使用されるソフトウェア開発ツールが侵害される可能性があり、ソフトウェアがセキュリティの脆弱性にさらされる可能性があります。
- 購入するもの: アプリ開発に使用される一部の既製の Software-as-a-Service (SaaS) アプリケーションには脆弱性が含まれている可能性があります
- 使用するもの: 多くのアプリケーションは、サプライ チェーンの弱点として機能する可能性のあるサードパーティのオープンソース ライブラリに依存しています。
すべてのソフトウェア サプライ チェーンには多数の潜在的な脆弱性があることを考慮し、組織は予防と修復に積極的に取り組む必要があります。 ソフトウェアサプライチェーンの脆弱性。これを行うには、ソフトウェア エンジニアは、ソフトウェア プロジェクトが直面する可能性のあるこれらの潜在的なリスクや脅威を理解する必要があります。これらの脅威には次のようなものがあります。
埋め込まれた悪意のあるコード パッケージ
ソフトウェア サプライ チェーン攻撃において攻撃者が行うことの 1 つは、影響を受けるエンドポイントを悪意のあるソフトウェアで感染させることです。このマルウェアは、影響を受けるソフトウェアやコンピュータ システムに大損害を与える可能性のあるウイルス、ランサムウェア、トロイの木馬、またはスパイウェアである可能性があります。
攻撃者は、システムがユーザー デバイス上で高レベルの認証を持っているターゲットを選択することがよくあります。このような攻撃の注目すべき例は、2021 年に被害を受けたサイバー攻撃です。 カセヤは、マネージド サービス プロバイダーやエンタープライズ クライアントを顧客とする IT ソリューション開発者です。
Kaseya が提供する主要な IT ソリューションの 1 つは、統合リモート監視および管理ツールである VSA です。 VSA サーバーは顧客のデバイス上で非常に信頼されており、攻撃者はこれに侵入することで、接続されているクライアントの認証制御を回避することができました。このようにして、悪意のあるペイロードを支障なくアップロードできます。カセヤの攻撃は次のようなものです。 SolarWindsのセキュリティの大失敗、攻撃者は悪意のあるアップデートを何千もの顧客にプッシュすることができ、その結果、追加のセキュリティ脆弱性にさらされることになります。
機密データの抜き取り
データ窃盗を目的としたあらゆる攻撃は、データ引き出し攻撃として分類できます。データの引き出しは、悪意のある攻撃者がターゲット システムから別の場所に機密データを不正に転送するときに発生するといわれています。サプライ チェーン攻撃の結果として発生したデータ漏洩攻撃の注目すべき例は、次のとおりです。 2013 年 XNUMX 月のターゲットへの攻撃, 米国最大の小売企業の 1 つ。
攻撃者は、サードパーティ ベンダーから盗んだ認証情報を使用して Target のシステムに侵入しました。この攻撃により、Target の顧客サービス データベースに不正にアクセスされ、顧客の名前、電話番号、電子メール アドレス、支払いカード情報、その他の機密データが取得されるようになりました。標的顧客 41 万人のペイメント カード情報が攻撃者のサーバーに流出し、60 万人以上の顧客の連絡先情報が流出しました。
リモートコード実行
リモート コード実行 (任意コード実行とも呼ばれます) は、攻撃者がアクセスしてデバイスやコンピューターの操作をリモートで制御するサイバー攻撃の一種です。通常、攻撃者は、被害者がシステム上で実行しようとしているファイル、文字列、またはパッケージ全体に悪意のあるコードを挿入します。これにより、攻撃者は Web アプリまたは Web サーバー全体を侵害する可能性のある本格的な攻撃を開始できるようになります。ソフトウェア サプライ チェーン攻撃でリモート コード実行攻撃が発生する一般的な 2 つの方法は、タイポスクワッティングと依存関係の混乱によるものです。
タイポスコーティング
このタイプの攻撃を実行するために、悪意のある攻撃者は通常、インストールしようとしている依存関係と同一の侵害されたパッケージを作成します。通常、悪意のあるパッケージのスペルはわずかに異なります。その目的は、インストール コマンドのタイプミスの可能性を利用することです。悪意のあるパッケージは、通常、エンジニアがインストールしようとした依存関係と同じように機能しますが、同時に、パッケージに埋め込まれた悪意のあるコードも実行します。
依存関係の混乱
依存関係の混乱は、ソフトウェア サプライ チェーン攻撃で攻撃者がリモート コード実行を開始するために使用するもう 1 つのアプローチです。このタイプの攻撃では、悪意のある攻撃者は、内部の依存関係パッケージと同じ名前のパッケージを外部ライブラリ上に作成します。両方の依存関係の名前が同じであるため、パッケージ マネージャーが代わりに悪意のあるコードをインストールする可能性があります。これにより、攻撃者は開発中のソフトウェア アプリケーションの継続的統合/継続的展開 (CI/CD) 環境に侵入することができます。
ソフトウェア サプライ チェーンのリスクを軽減するにはどうすればよいでしょうか?
過去数年にわたり、ソフトウェア サプライ チェーン攻撃は、世界中の組織が直面する最大のサイバー脅威の 1 つとなっています。このような攻撃のリスクを軽減することは、あらゆる組織、特にサードパーティ製ソフトウェアに依存している組織において、サイバー セキュリティとリスク管理の重要な部分となっています。サードパーティのプラットフォームやパブリックリポジトリを盲目的に信頼するのではなく、予防策を講じ、システムに何がインポートされているかについて必要なチェックを実行することをお勧めします。ソフトウェア サプライ チェーンのリスク管理計画を作成する場合、次の方法を使用してソフトウェア サプライ チェーン攻撃のリスクを軽減できます。
ソフトウェアを監査する
サプライチェーン攻撃への対処が非常に難しいのは、リスクが自社のシステムを超えて及ぶためです。これらの攻撃のリスクを軽減するには、単に自分自身の境界を保護する以上のことを行う必要があります。代わりに、戦略は、自分のシステムに接続されている外部ソフトウェア システムの安全性を確保することに重点を置く必要があります。
ただし、特に、接続している外部システムやアプリケーション内で使用されているコードの依存関係についての十分な情報さえない場合、これを達成するのは困難なことがよくあります。サプライ チェーン攻撃のリスクを軽減するための最初のステップは、ソフトウェア サプライ チェーンの包括的な監査を行うことです。
つい最近、いくつかの米国政府機関に影響を与えた 2020 年の SolarWinds 攻撃を受けて、 米国連邦政府はソフトウェア監査を法的要件としました 米国政府機関にソフトウェアを販売するすべての企業に。すべてのシステムに対しても同じことを行う必要があります。すべてのソフトウェアの依存関係を明確に記録しておくことが、システムがサプライ チェーン攻撃のリスクにさらされているかどうかを知る唯一の方法です。
ソフトウェアの依存関係をすぐに監査するだけでなく、ソフトウェアの新しいリリースごとにシステムを再度監査する必要もあります。また、手動監査を超えて、一時的な依存関係を含むあらゆる種類の依存関係を特定できる、より徹底的な監査を実行する必要がある場合もあります。
自動監査
システムを手動で監査する以外に、監査を自動操縦に設定する必要がある場合もあります。自動化は、ソフトウェアのあらゆる部分の脆弱性を特定する上で重要な役割を果たします。自動スキャンは、ソフトウェア コードの脆弱性を迅速に検出し、コードが運用環境にプッシュされる前に脆弱性に対処できるようにするのに役立ちます。ソフトウェア開発におけるサードパーティ コードの使用は今後も増加し、悪意のある攻撃者はバリュー チェーン上のソフトウェアに対する攻撃を開始する弱点としてこれらのシステムを継続的にターゲットにします。これらを阻止する唯一の方法は、システムを継続的に監査することでシステムの安全性を常に把握し続けることです。
ソフトウェア部品表を準備する
ソフトウェア部品表 (SBOM) は、ソフトウェアのセキュリティを確保し、サプライ チェーンのリスクを軽減するための重要な方法の 1 つとなっています。このドキュメントは、ソフトウェア パッケージのすべてのコンテンツを識別するように設計された、正式な機械可読メタデータです。また、ソフトウェア製品の構築に使用されるすべてのコンポーネントのライセンス データや著作権など、その他の重要な情報も詳しく説明します。
部品表を作成するという概念は、まったく新しいものではありません。歴史的には、その起源は製造業にあります。ここで、すべての製造製品には、その製品の製造プロセスに含まれるすべてのアイテムの在庫として機能する部品表が作成されます。
同じ原則がソフトウェア サプライ チェーンのリスク管理にも適用できます。 SBOM には、アプリケーションの最初から構築した部分の詳細が記載されるとともに、サードパーティのサプライヤーから入手したすべての部分もリストされます。こうすることで、脆弱性が発見されたときに、その原因を簡単に追跡できます。
SBOM は、ソフトウェア コンポーネントを利用するさまざまな組織間で共有されることを目的としています。これにより、ソフトウェア サプライ チェーン全体の全員が使用しているすべてのコンポーネントの透明性が実現します。ソフトウェアのセキュリティを懸念する組織として、SBOM を最優先にする必要があります。ソフトウェア製品にコンポーネントを追加する前に、ベンダーから部品表を入手すると役立ちます。これにより、課題やセキュリティの脆弱性への対応が容易になります。
リスク管理フレームワークの開発
ソフトウェア サプライ チェーン攻撃のリスクを軽減するには、攻撃が発生するまで待つよりも、積極的なアプローチを取ることが常に賢明です。事前に考えられる攻撃シナリオの概要を説明しておくことで、将来の攻撃に対する準備を整えることができます。
ソフトウェア サプライ チェーンのリスク管理の取り組みの一環として、攻撃者がシステムを侵害する可能性を評価する方法を開発する必要があります。これにより、これらのリスクを制限するために採用する必要がある予防戦略と、リスクに対処するために導入する必要がある緊急時対応計画を決定できます。
サプライ チェーン攻撃への対応方法について組織内の全員をトレーニングすることも、リスク管理フレームワークの重要な部分です。これにより、誰もがそのような攻撃を警戒し、実際に攻撃が発生した場合に適切に対応できるようになります。
まとめ
ソフトウェア サプライ チェーン攻撃は今後も組織をさまざまな形のリスクにさらすことになります。したがって、エンジニアは、ソフトウェア アプリケーションの構築、展開、保守に使用するサードパーティ パッケージが安全で適切に保守されていると想定できなくなります。実際、ソフトウェア サプライ チェーン攻撃が以前よりも一般的になった主な理由の 1 つは、ソフトウェア アプリの構築におけるサードパーティ コードへの依存度の増加にあります。これらのリスクを軽減するには、ソフトウェア サプライ チェーンの在庫を確認し、重大な違反とそれに伴う結果を防ぐために、システムに対するこれらの脅威の影響を最小限に抑えるための対策を講じる必要があります。