GitLab

先日、GitHubの欠陥、あるいはおそらく設計上の決定が、脅威行為者によって悪用され、マイクロソフトのリポジトリに関連するURLを使ってマルウェアを配布し、そのファイルが信頼できるように見えるという問題が報告された。

GitLabもこの問題の影響を受けており、同様の方法で悪用される可能性があることが判明した。

マルウェアに関連する活動のほとんどはMicrosoft GitHubのURLに基づいていたが、この「欠陥」はGitHubやGitLabのあらゆる公開リポジトリで悪用される可能性があり、脅威行為者は非常に説得力のあるルアーを作成することができる。

GitLabのコメントもマルウェアのプッシュに悪用できる

土曜日に、脅威行為者がGitHubのコメントを悪用してマルウェアをプッシュし、あたかも悪質なファイルが信頼できる組織の公式ソースコードレポジトリにホストされているかのように見せかける方法を報告した。

例えば、攻撃で使用された以下のURLは、これらのZIPがMicrosoftのソースコードレポに存在するように見せかけたものだ:

https://github[.]com/microsoft/vcpkg/files/14125503/Cheat.Lab.2.7.2.zip https://github[.]com/microsoft/STL/files/14432565/Cheater.Pro.1.6.0.zip

しかし、調査の結果、これらのファイルはマルウェアであり、マイクロソフト社のコード・レポのどこにも存在しないことがわかった。

むしろ、これらはGitHubのCDN上に存在し、同プラットフォームの「コメント」機能を悪用した脅威行為者によってアップロードされた可能性が高い。

コミットやプルリクエストにコメントを残す際、GitHubユーザーはファイル(アーカイブやドキュメントなど)を添付することができる。このファイルはGitHubのCDNにアップロードされ、一意のURLを使って関連プロジェクトに関連付けられる:‘https://www.github.com/{project_user}/{repo_name}/files/{file_id}/{file_name}.

動画や画像の場合、ファイルは代わりに/assets/パスに保存されます。

GitHubは、コメントを投稿した後にURLを生成するのではなく、以下のように、保存されていないコメントにファイルを追加した後にダウンロードリンクを自動的に生成します。これにより、脅威行為者は知らないうちにマルウェアをリポジトリに添付できるようになります。

Download link auto-generated when adding a file to a comment
コメントにファイルを追加するとダウンロードリンクが自動生成される
Source

コメントが実際に投稿されなかったり、後にユーザー(または攻撃者)によって削除されたとしても、ファイルへのリンクはライブのままです。

自動マルウェア解析サービスUNPACMEのSergei Frankoff氏は先月、このバグについてライブ配信を行い、脅威行為者が積極的にこのバグを悪用していると述べていた。

私たちが報告した直後、読者からGitLabもこの問題と無縁ではないとの指摘があった。

GitLabの “コメント “機能も同様の方法で悪用できることが確認できました。

私たちのテストでは、GitLabのCDNにアップロードされるファイルをアップロードすることができましたが、InkscapeやWiresharkのような人気のあるオープンソースプロジェクトのGitLabリポジトリに存在しているように見えました:

https://gitlab[.]com/inkscape/inkscape/uploads/edfdbc997689255568a7c81db3f3dc51/InkScape-2024-Latest.exehttps://gitlab[.]com/wireshark/wireshark/uploads/b4162053fbb4dc6ee4f673c532009e16/WireShark-v4.2.4-stable-release.exe

このテストに使用したファイルは良性のJPG画像で、この機能を悪用することで、脅威行為者がいかにユーザーを欺き、マルウェアが混入した偽造ソフトウェアリリースをダウンロードさせることができるかを示すために、.exeにリネームされています。

GitLab CDNにアップロードされたこのようなファイルのフォーマットは以下の通りです:

https://gitlab.com/{project_group_namr}/{repo_name}/uploads/{file_id}/{file_name}です。

ここでのfile_idは MD4 や MD5 のハッシュのようなもので、単純な数値の識別子とは異なります。

GitLab also vulnerable to GitHub-style comments flaw
GitLabのコメント
にファイルを追加すると、ダウンロードリンクが自動生成されます:

GitHubと同じように、生成されたGitLabのファイルリンクは、たとえそのコメントが攻撃者によって投稿されなかったとしても、あるいは後に削除されたとしても、生き続ける。

GitLabはこれらのファイルをアップロードしたりダウンロードしたりする前に、ユーザーにサインインするよう促しているが、そもそも脅威行為者がこれらのファイルをアップロードするのを防ぐことはできない。

事実上すべてのソフトウェア会社がGitHubやGitLabを利用しているため、この欠陥によって脅威行為者は非常に巧妙で信頼できる誘い文句を開発することができる。

例えば、ある脅威者は、NVIDIAのドライバ・インストーラ・レポに、人気ゲームの問題を修正する新しいドライバのふりをしたマルウェア実行ファイルをアップロードすることができます。あるいは、Google Chromiumのソースコードへのコメントでファイルをアップロードし、ウェブブラウザの新しいテストバージョンであるかのように装うこともできる。

このようなURLは、その企業のリポジトリに属しているように見えるため、はるかに信頼性が高くなる。

残念ながら、企業が自社のリポジトリがマルウェア配布に悪用されていることを知ったとしても、プロジェクトに添付されたファイルを管理したり削除したりできるような設定は見つからなかった。

この悪用について、4月18日木曜日にGitHubとMicrosoftの両方に問い合わせましたが、回答は得られませんでした。また、公開に先立ちGitLabにもコメントを求めたが、回答を待っているところである。