ソフトウェアサプライチェーン***(依存関係の混乱***)がシステムのセキュリティを破壊しています

写真1.pngセキュリティ研究者は、35を超えるハイテク企業システムを破壊することに成功しました。これは、新しいソフトウェアサプライチェーン*** (依存関係の混乱***)と呼ばれています。利用することでこれを呼ばれ、依存関係の混乱ネームスペース混乱***方法特にレジストリNPMより影響を受けやすいサプライチェーンの名前スペースを混乱効果を。

それが依存関係と混同されます

例から始めましょう:

あなたがシークレットアルモと呼ばれる非常に秘密のプロジェクトに取り組んでいると私が言ったと想像してみてくださいコンポーネントの座標はorg.acme:secret-almo:1.0であり、競合他社に知られたくない場合があります。しかし、同僚が誤ってorg.acme:secret-almo:1.1または存在しないバージョンをライブラリの依存関係として追加し、ビルドを実行した場合はどうなりますか?これが起こることです:

 

プライベートサーバーのグループウェアハウス(グループへのアクセスを要求し最初ローカルリソースライブラリを確認します同僚が間違いを犯さず、バージョンとして1.0を使用している場合、ソリューションはそこで停止し、正しいアーティファクトが取得されます。しかし、1.1が見つからないため、会社の依存プライベートサーバーは引き続き1.1探します。

プライベートサーバーはグループウェアハウス(グループ)の一部であるリモートリポジトリプロキシ1対1で表示し、秘密のプロジェクト名含むURLリクエスト外部のサードパーティリポジトリに送信ます。

この場合、依存関係の混乱とはソフトウェアビルドが依存するコンポーネントが、内部でプライベートに作成されたパッケージなの、パブリックソフトウェアリポジトリ内の同じ名前のパッケージなのかを開発環境で区別できないことを指します

***への依存関係の難読化の使用方法

例を挙げ続けましょう:

さんは背中に行こう、前のシーン仕事上の秘密アルモがまだ進行中です。のは、アルモ共通-utilの、プロジェクトの別のコンポーネントを見てみましょうS、で書かれているノードとあるWebアプリケーションのすべての依存コンポーネントの一部。プライベートサーバグループウェアハウス(の剤を含む基)、リモートのグループ倉庫(エージェントNPM公式レジストリ)、ローカル(内部共有モジュール用)

次のことを考慮してください。

1.  NPMレジストリがある市場誰もKEYIは、上記の公開、未知の範囲のNPMのコンポーネントを、そして、彼らがやりたい呼び出すためというアルモ-utilのコモンS

2.  npmレジストリに「  almo-common-utils  」という名前のパッケージがないため(内部の企業ライブラリであるため)、名前の競合はありません。

3. ほとんどのnpm依存関係は、バージョン範囲宣言を使用して互換性のある最新バージョンを要求します。

***人々が***保護されていない組織に望んでいる唯一の情報は、使用中ライブラリのメジャーバージョンあるalmo-common-utilsの存在です(バージョン3が組織で広く使用されていることを知っていると仮定します)。ソースコードを知っています。

彼らはソースコードのクローンを作成して変更し、マルウェアを埋め込むことができますが、元のコードとの互換性を維持し、それをsecret-almo:3.99.99としてnpmレジストリにアップロードします。もそうすることを止めることはできません

ここでsecret-almo:^ 3.0.0が要求されたときのプライベートサーバーの動作モードを見てみましょう

1. ローカルリポジトリで最新の互換性のあるシークレットAlmoを見つけます3.2.4が見つかりました

2. 最新の互換性の検索秘密アルモにおけるNPM-レジストリプロキシリモートリポジトリを3.99.99が見つかりました

3.  npmレジストリからの偽のシークレットアルモ勝ち、サプライチェーンが乗っ取られました

 

依存関係の混乱を解決する方法***

使用Artifactoryは、あなたのリモートリポジトリ上の排他モードを使用します!

npmレジストリalmo-common-utilsのメソッドを見つけることができないことご存知ですか?倉庫管理者に伝えてくださいプライベート依存関係を除外モードで追加し、深刻なサプライチェーンから身を守ります***。それはとても単純なので、ほとんど無視できます。

 写真2.png

同時に、サードパーティコンポーネントの座標をローカルウェアハウスから除外して、サードパーティの信頼できるバージョンの内部的なプライベートな共謀を回避できます。

 


おすすめ

転載: blog.51cto.com/jfrogchina/2665617