依存関係攻撃により、PayPal、Microsoft、Apple、Netflix、Uber、その他30社でコードを実行できます

数日前 アプリケーションの依存関係を攻撃できる驚くほど単純な方法がリリースされました これらは内部パッケージリポジトリを使用して開発されています。 問題を特定した研究者 彼らはあなたのコードを実行することができました PayPal、Microsoft、Apple、Netflix、Uber、Tesla、Shopifyを含む35社の内部サーバー上にあります。

ハッキングは、攻撃された企業と協力して、バグバウンティプログラムの一部として実行され、加害者は、脆弱性を特定するためのボーナスとしてすでに130.000万ドルを受け取っています。

この方法は、 多くの企業は、内部アプリケーションでNPM、PyPI、RubyGemsの標準リポジトリ依存関係を使用しています、および独自のリポジトリから公開またはダウンロードされていない内部依存関係。

問題は、パッケージマネージャーが npm、pip、gemのように 彼らは、公開リポジトリからでも、企業の内部依存関係をダウンロードしようとします。 攻撃の場合、 内部依存関係を持つパッケージの名前を定義し、同じ名前で独自のパッケージを作成するだけです NPM、PyPI、RubyGemsの公開リポジトリにあります。

この問題は、NPM、PyPI、RubyGemsに固有のものではなく、NuGet、Maven、Yarnなどの他のシステムでも発生します。

提案された方法のアイデアは、研究者がGitHubに投稿された公開されているコードで誤って気づいた後に生まれました。 多くの企業は、マニフェストファイルから追加の依存関係の言及を削除していません 内部プロジェクトで、または拡張機能を実装するときに使用されます。 同様のトレースが、WebサービスのJavaScriptコード、および多くの企業のNode.JS、Python、Rubyプロジェクトで見つかりました。

主なリークは、コンテンツの埋め込みに関連していました ビルドプロセス中に公開されているJavaScriptコードのpackage.jsonファイルから、および依存関係名を判断するために使用できるrequire()呼び出しで実際のパス要素を使用します。

数百万の企業ドメインをスキャンすると、数千のJavaScriptパッケージ名が明らかになりました NPMリポジトリにはありませんでした。 内部パッケージ名のデータベースを編集した後、研究者はバグバウンティプログラムに参加している企業のインフラストラクチャをハッキングする実験を行うことにしました。 結果は驚くほど効果的でした 研究者は、継続的インテグレーションシステムに基づく構築またはテストを担当する多くの開発コンピューターおよびサーバーでコードを実行することができました。

依存関係をダウンロードする場合、パッケージマネージャーのnpm、pip、およびgemは、主に、優先度が高いと見なされたプライマリパブリックリポジトリNPM、PyPI、およびRubyGemsからパッケージをインストールしました。

民間企業のリポジトリに同じ名前の同様のパッケージが存在することは、警告を表示したりクラッシュを引き起こしたりすることなく無視されました それは管理者の注意を引く可能性があります。 PyPIでは、ダウンロードの優先度はバージョン番号の影響を受けていました(リポジトリに関係なく、パッケージの最新バージョンがダウンロードされました)。 NPMとRubyGemsでは、優先順位はリポジトリにのみ依存していました。

研究者は、見つかった内部依存関係の名前と交差するパッケージをNPM、PyPI、RubyGemsリポジトリに配置し、インストール前に実行されるスクリプト(NPMにプリインストールされている)にコードを追加して、システムに関する情報を収集し、受信した情報をに送信します。外部ホスト。

ハッキングの成功に関する情報を伝達するには、外部トラフィックをブロックするファイアウォールをバイパスします。これは、DNSプロトコルを介して秘密チャネル通信を編成する方法です。 実行中のコードは、攻撃ドメインの制御下にある攻撃ドメインのホストを解決しました。これにより、DNSサーバーでの正常な操作に関する情報を収集できるようになりました。 ホスト、ユーザー名、現在のパスに関する情報が渡されました。

記録されたすべてのコード実行の75%は、主にPythonやRubyの依存関係の名前よりもJavaScriptの内部モジュール名が大幅に多いという事実により、NPMパッケージのダウンロードに関連付けられていました。

出典 https://medium.com/


コメントを最初に

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。