GitHub 上の数百万のリポジトリがハイジャックの危険にさらされる可能性がある

GitHub 上の数百万のリポジトリがハイジャックの危険にさらされる可能性がある

GitHub 上の数百万のリポジトリは、PlatoBlockchain データ インテリジェンスをハイジャックされる可能性があります。垂直検索。あい。

GitHub 上の何百万ものエンタープライズ ソフトウェア リポジトリは、次のような脆弱性があります。 リポジャッキング、比較的単純な種類のソフトウェア サプライ チェーン攻撃で、脅威アクターが特定のリポジトリに依存するプロジェクトを悪意のあるリポジトリにリダイレクトします。

この問題は、GitHub ユーザーまたは組織がプロジェクトの名前を変更したり、その所有権を別のエンティティに譲渡したりするときに、GitHub が依存関係をどのように処理するかに関係していると Aqua Security の研究者らは今週のレポートで述べています。

名前変更のリスク

コードの依存関係の破壊を避けるために、GitHub は元のリポジトリ名と新しいリポジトリ名の間にリンクを作成し、元のリポジトリに依存するすべてのプロジェクトが新しく名前変更されたリポジトリに自動的にリダイレクトされるようにします。 ただし、組織が古いユーザー名を適切に保護できなかった場合、攻撃者はそれを再利用して元のリポジトリのトロイの木馬化されたバージョンを作成するだけで、そのリポジトリに依存していたプロジェクトが再びそのリポジトリから依存関係のダウンロードを開始する可能性があります。

「リポジトリ所有者がユーザー名を変更すると、古いリポジトリから依存関係をダウンロードする人のために、古い名前と新しい名前の間にリンクが作成されます。」 アクアの研究者はこう語った。 今週のブログで。 「しかし、誰でも古いユーザー名を作成してこのリンクを解除することは可能です。」

Aqua の研究者は最近、このようなリポジャッキング (一部のセキュリティ研究者がこの脅威について言及している) に対して脆弱な GitHub 上のリポジトリの蔓延を調査することを決定しました。

広く蔓延している問題

Aqua が発見したことは XNUMX つありました。Google や Lyft などの企業に属するリポジトリを含む数百万のそのようなリポジトリが GitHub 上に存在します。 また、攻撃者がこれらのリポジトリを見つけてハイジャックするためのツールが簡単に入手できます。 これらのツールの XNUMX つは GHTorrent です。これは、コミットやプル リクエストなどのすべての公開イベントのほぼ完全な記録を GitHub 上に維持するプロジェクトです。 攻撃者は GHTorrent を使用して、組織が以前に使用していたリポジトリの GitHub 名を収集できます。 その後、古いユーザー名でリポジトリを登録し、リポジトリを再作成し、それを使用するプロジェクトにマルウェアを配布することができます。

GitHub リポジトリを直接参照するプロジェクトは、リポジトリの所有者がリポジトリのユーザー名を変更または削除した場合に脆弱になります。

「私たちは、攻撃者が組織に属する以前のリポジトリの名前を収集するために利用できる重要なデータセットを提示しました」と、Aqua Nautilus のセキュリティ研究者である Yakir Kadkoda 氏は述べています。

「組織は、古い組織名が非公開のままであると想定すべきではありません」とカドコダ氏は警告します。 「彼らにとって、GitHub 上で古いユーザー名を主張して保持し、コード内の GitHub URL と参照をスキャンして、攻撃者によって主張される可能性のあるリポジトリを特定することが重要です。」

保護のバイパス

Kadkoda氏によると、GitHubは、以前に所有され、現在は他のプロジェクトにリダイレクトされているユーザー名とリポジトリの作成を防ぐことで、この問題に対処しようとしているという。 GitHubも 仕組みを実装した 数年前、この脅威を軽減する手段として、人気のあるリポジトリ名前空間を廃止しました。 「しかし、ここ数年でいくつかのバイパスが発見されました」と彼は言います。 Aqua の調査中に、研究者らは、GitHub によって実装された保護が適用されないリポジトリの例をいくつか発見しました。 「したがって、現時点ではユーザーはこれらの防御に完全に依存することはできません」と彼は言います。

Aqua のブログは、GitHub の脆弱性を指摘しました。 チェックマークスは昨年発見された これは、攻撃者が GitHub のリポジャッキングから保護する試みを回避するために利用できる方法の一例です。 この欠陥には「人気のリポジトリ名前空間の廃止」と呼ばれるメカニズムが関係しており、Swift、Packagist、Go などのパッケージ マネージャー上の 10,000 以上のパッケージを含む、GitHub 上の名前変更されたすべてのユーザー名に影響がありました。 「リポジャッキングは、元のリダイレクトを破壊する論理的欠陥を悪用することで、名前が変更されたリポジトリ URL トラフィックをハイジャックし、攻撃者のリポジトリにルーティングする手法です」と Checkmarx はこの脆弱性に関するレポートで述べています。 「GitHub リポジトリは、古いユーザー名が登録可能な状態で作成者がユーザー名の変更を決定した場合、リポジャッキングに対して脆弱になります。」

組織はコード、リポジトリ、GitHub リンクの依存関係をスキャンすることで、リポジャッキングの脅威にさらされることを軽減できます。「組織は、それらのリンクが GitHub プロジェクトを直接参照しているかどうか、または他のユーザー名またはリポジトリを指しているリダイレクトがあるかどうかを確認する必要があります」と Kadkoda 氏は言います。元のリンクよりも名前が変わります。」 このような場合、組織は、攻撃者がそうするのを防ぐために、利用可能なユーザー名を要求することを試みる必要があります。 「さらに、組織は常に古いユーザー名を GitHub 上で維持する必要があります」と彼は言います。

タイムスタンプ:

より多くの 暗い読書