GitHub Bug Exposed Repositories to Hijacking
2022/10/27 InfoSecurity — セキュリティ研究者が新たに発見した GitHub の欠陥は、攻撃に成功した攻撃者がリポジトリを制御し、関連するアプリやコードにマルウェアを拡散する可能があるものだ。現時点において GitHub は、”popular repository namespace retirement” 機能のバグを修正しているが、将来において同じツールが、脅威者の標的となる可能性があると Checkmarx は警告している。
実際のところ、今年の初めには同ツールの別の脆弱性が悪用され、数百万のダウンロード数を持つ人気 PHP パッケージが、ハッカーにハイジャックされポイズニングされるという事件が発生している。

人気リポジトリの名前空間リタイアメント (popular repository namespace retirement) は、いわゆる RepoJacking を防ぐために、GitHub が作成したものだ。
GitHub のリポジトリは、作成者のユーザー・アカウントに関連した一意の URL を持っている。したがって、ユーザーがアカウント名を変更する場合には、新しい URL が生成され、GitHub はリポジトリの元 URL からのトラフィックをリダイレクトしている。
Checkmarx は、「RepoJacking は、元のリダイレクトを壊す論理的な欠陥を悪用し、リネームされたリポジトリのトラフィックを乗っ取り、攻撃者のリポジトリへとルーティングする手法である」と説明している。
同社は、「GitHub のリポジトリでは、古いユーザー名が登録可能な状態で、作成者がユーザー名の変更を決定した場合に、RepoJacking の脆弱性が生じ得る。つまり、既存のユーザーが使用する古いリポジトリ URL と、同じ組み合わせを持つ新しい GitHub アカウントが、攻撃者により作成される可能性を意味する」と指摘している。
一般的なリポジトリの名前空間リタイアメントでは、ユーザー・アカウントの名前が変更された時点で、100以上のクローンがあるリポジトリは [引退] したとみなされ、他者による使用を阻止し、乗っ取りに歯止めをかけるものだった。
しかし、この保護措置の回避を Checkmarx が証明したことで、Packagist/Go/Swift など複数のパッケージ・マネージャにおいて、人気のコード・パッケージの乗っ取りの可能性が生じてきた。

Checkmarx は、「これらのパッケージ・マネージャにおいて、ユーザー名を変更した 10,000 以上のパッケージを確認しており、新たなバイパスが発見された場合には、この手法による脆弱性を抱える危険性がある。さらに、このバイパスの悪用に成功した攻撃者が、GitHub の名前空間を指定することで、人気の GitHub アクションを乗っ取る可能性もある。人気の GitHub アクションがポイズニングされると、大きな影響を及ぼすサプライチェーン攻撃につながる可能性もある」と警告している。
Vulcan Cyber の Senior Technical Engineer である Mike Parkin は、このバグにより深刻な影響が生じた可能性があると主張している。
彼は、「何百万人ものエンド・ユーザーを抱える何千ものプロジェクトが、オープンソースのライブラリやコードリポジトリに依存しているため、脅威アクターにとってのリポジトリは、非常に魅力的なターゲットになっている。もし、彼らがリポジトリを制御し、広く利用されているプロジェクトに悪意のコードを挿入するならば、わずかな作業で数万〜数百万のホストに感染させること可能になるかもしれない」とも述べている。
Mike Parkin は、「つまり、まだ広く利用されているが、それほど活発に保守されていない古いプロジェクトに当てはまることであり、コードを監視する目が少なく、悪意のコードが挿入されても気づかれないという可能性がある」と指摘している。
GitHub も大変ですね。オープンソースが壮大な実験なら、各種のリポジトリも壮大な実験です。そして、これらの実験の上に、大きな世界の経済が乗っかっているという現実があります。GitHub に論理的な欠陥があっても、実験であれば仕方のないことであり、修正しながら前へ進むしかありません。そのための支援が必要ですね。

You must be logged in to post a comment.