ソフトウェア開発がソフトウェアサプライチェーンライフサイクルに沿って進むにつれて、パッケージング段階はソースコードを配布用に準備された実行可能な成果物に変換する重要な分岐点となります。しかし、この重要な段階も脆弱性とは無縁ではなく、ソフトウェアの完全性とセキュリティを損なおうとする悪意のある攻撃者にとって格好の標的となります。このブログ記事では、この段階で発生する可能性のある一般的な脅威を掘り下げ、それらを軽減するための効果的な戦略を概説します。このコンテンツは、ソフトウェア開発のセキュリティを探求するブログシリーズの続編です。 software supply chain security 越えて SDLC.
ソフトウェア開発ライフサイクルにおけるパッケージング段階
ソフトウェアサプライチェーンライフサイクルのパッケージング段階は、ソフトウェアをパッケージ化し、ユーザーへの配布準備を行うプロセスを指します。この段階では、インストールパッケージの作成、依存関係の管理、ソフトウェアのメタデータの生成などが含まれます。
ビルド整合性の脅威とは、攻撃者がパッケージングプロセス中にソフトウェアに不正な変更を加えることを可能にする脆弱性のことです。これらの脅威は、パッケージレジストリの侵害、パッケージングツールの脆弱性の悪用、サードパーティの依存関係の操作など、さまざまな方法で発生する可能性があります。
現代のソフトウェアにおけるオープンソースコンポーネントへの完全な依存により、この段階は最も頻繁にSSCA ターゲット。人気のあるオープンソースコンポーネントにステルスマルウェアを仕込むことは、多くのサイバー犯罪者にとって夢のようなことです。これが、 2023年には24万5000件の悪意のあるパッケージが発見された。.
の例 Software Supply Chain Security パッケージ段階における脅威
侵害されたパッケージを使用する
これは、攻撃者によって改ざんまたは変更されたソフトウェアパッケージを展開または使用する行為を指します。
これは、パッケージが公式パッケージレジストリから削除された後に、ユーザーのシステムへの直接アクセス、またはユーザーを騙して悪意のあるパッケージをダウンロードまたはインストールさせるソーシャルエンジニアリングの手法によって発生する可能性があります。このベクトルの例としては、 Browserify しゃがんだ 攻撃。
LinuxおよびMacシステムを侵害しようとする攻撃者が、人気のNode.jsライブラリであるBrowserifyの開発プロセスに侵入しました。攻撃者は、NPMパッケージレジストリを通じて配布する目的で、悪意のあるコードをプロジェクトのソースコードに紛れ込ませました。汚染されたBrowserifyパッケージがNPMにアップロードされると、何も知らない開発者は正規版だと信じてダウンロードしてインストールします。パッケージに埋め込まれた悪意のあるコードは、感染したシステムのセキュリティを損なうことなく静かに実行されます。これにより、データ窃盗、システムの不安定化、さらには攻撃者によるリモートアクセスにつながる可能性があります。
侵害パッケージレジストリ
侵害されたパッケージレジストリとは、攻撃者がレジストリの管理インターフェースまたはインフラストラクチャに不正アクセスし、ソフトウェアリポジトリに侵入した状態のことです。
これにより、攻撃者は正規のソフトウェアパッケージを悪意のあるものに改変または置き換えることができ、それを疑いなくインストールしたユーザーに配布することができます。この種の脅威の例としては、 パッケージミラーへの攻撃: ある研究者がオープンソースソフトウェアの普及を目的として、Maven Central、NPM、RubyGemsなど、複数の人気パッケージレジストリを侵害した。これらのレジストリへのアクセス権を取得することで、研究者は元のリポジトリのミラーやレプリカを作成し、開発者がパッケージをダウンロードするための便利な代替手段を提供した。
しかし、これらのミラーサイトには邪悪な目的が隠されていた。侵害されたミラーサイトは、研究者が悪意のあるパッケージを配布するための経路として機能した。これらのパッケージは正規のパッケージに取って代わり、主要なレジストリでは検出されず、何も知らない開発者は知らず知らずのうちにダウンロードしてインストールしてしまった。インストールされると、これらの悪意のあるパッケージはペイロードを解き放ち、任意のコードを実行したり、機密データを盗み出したり、業務を妨害したりした。
変更されたパッケージをアップロード
攻撃者は、悪意のあるコードやペイロードを含む改変されたパッケージをリポジトリまたは配布チャネルにアップロードします。これは、パッケージのソースコード、パッケージング、またはメタデータを改変することによって行われます。
この種の脅威の中で最も悪名高いものの一つは 2021年のCodeCov攻撃. CodeCov を使用したソフトウェア プロジェクトを侵害しようとする攻撃者 (CodeCov は、人気の継続的インテグレーションおよび継続的デリバリー (CI/CD攻撃者は、漏洩した認証情報を使用して、プロジェクトの Google Cloud Storage (GCS) バケットに不正アクセスしました。攻撃者は GCS バケットへのアクセス権を取得すると、CodeCov パッケージの改変版である悪意のあるアーティファクトをアップロードし、CodeCov サービスを通じてユーザーに配布しました。自動更新機能に依存していた開発者は、正規のパッケージだと信じて悪意のあるパッケージをダウンロードしてインストールしました。インストールされると、悪意のあるコードは静かに実行され、感染したシステムの整合性を損ないました。これにより、データの盗難、システムの不安定化、さらには攻撃者によるリモートアクセスにつながる可能性がありました。
パッケージレジストリへの攻撃は非常に一般的であるため、一部の攻撃パターンには名前が付けられています。
In タイポスコーティング悪意のある攻撃者は、正規の人気パッケージとわずかなスペルミスや類似した名前の悪意のあるパッケージを複数レジストリにアップロードし、開発者が意図したパッケージ名を誤って悪意のある名前で入力することを期待します。多くの場合、悪意のあるパッケージは正規のパッケージになりすまして検出されずに通過し、スターゲイジング攻撃を受ける可能性を高めます。
依存関係の混乱 この脆弱性は、一部のパッケージマネージャが複数のレジストリから要求されたパッケージを解決する方法を悪用します。組織が内部レジストリに公開された内部コンポーネントを使用している場合、その事実を知っている攻撃者は、同じ名前の悪意のあるコンポーネントを公開レジストリに公開する可能性があります。内部コンポーネントに使用されている名前がスコープ指定されていない場合、一部のパッケージマネージャは内部コンポーネントではなく悪意のあるコンポーネントを取得します。
自律的AI トロイアンパッケージサイバー犯罪者は、マルウェアを有効なコードの中に紛れ込ませます。これは、実際の作者、またはパッケージのメンテナンスを申し出た貢献者によって使用される可能性があります。これは、 荷物の乗っ取り攻撃者は、既存のパッケージを乗っ取るために、次のような多くの手法を使用しました。 ドメイン乗っ取り 攻撃者が、放棄された期限切れドメインを取得し、古い管理者メールアドレスを再作成してパスワード復旧を行い、管理者アカウントを乗っ取った。
最終的な備考
組織が自動化と継続的デリバリーを優先するソフトウェア開発手法をますます採用するようになるにつれ、ソフトウェアパッケージ段階のセキュリティ確保の重要性はかつてないほど高まっています。この重要な段階全体にわたって堅牢なセキュリティ対策を実施することで、組織はソフトウェアの完全性とセキュリティを損なう可能性のある悪意のある攻撃に陥るリスクを大幅に軽減できます。
このブログ記事で概説されている戦略と提供されている事例は、パッケージング段階がソフトウェアサプライチェーンにおける脆弱なポイントであることを改めて強く認識させるものです。企業はこれらの脅威に注意を払い、ソフトウェアを攻撃から守るために必要なセキュリティ対策を実施しなければなりません。そうすることで、ユーザーと顧客に対してソフトウェアの完全性、セキュリティ、信頼性を保証することができます。
安全なソフトウェアエコシステムを目指す私たちの旅に参加しませんか?
の分野で一歩先を行くチャンスを逃さないでください software supply chain security今すぐブログにご登録いただくと、最新の情報をいち早くお届けし、進化し続ける脅威の中でも組織の回復力とセキュリティを確保します。共に、すべての人にとってより強固で安全なソフトウェアエコシステムを構築していきましょう。
覚えておいて、 software supply chain security セキュリティは目的地ではなく、継続的な旅です。組織は、新たな脅威に対処するためにセキュリティ対策を継続的に評価し、適応させることで、ソフトウェアサプライチェーンを保護し、ユーザーに信頼できるソフトウェアを提供することができます。
ビデオデモをご覧ください




