GitLab にも GitHub スタイルの コメント悪用の問題:マルウェアのホスティングが容易になる

GitLab affected by GitHub-style CDN flaw allowing malware hosting

2024/04/22 BleepingComputer — 先日に BleepingComputer は、GitHub の欠陥 (あるいは設計上の仕様) を悪用する脅威アクターが、Microsoft のリポジトリに関連付けられた URL を介して、信頼できるファイルを装いながら、マルウェアを配布していることを報告した。この問題は、GitLab に対しても影響を及ぼすものであり、同様の方法で悪用される可能性が生じることが判明した。このマルウェアに関連する活動の大半は、Microsoft GitHub の URL に基づくものだった。しかしこの “欠陥” は、GitHub や GitLab の、あらゆる公開リポジトリで悪用が可能であり、きわめて説得力のあるルアーを、脅威アクターたちは作成できるという。

GitLab のコメントもマルウェアのプッシュに悪用が可能

GitHub のコメントを悪用して、マルウェアをプッシュする脅威アクターの存在が、4月20日の BleepingComputer の投稿により明らかになった。

新たに発見された攻撃で使用された以下の URL は、これらの ZIP が、まるで Microsoft のソースコード・リポジトリに存在するように見せかけていた:

https://github%5B.%5Dcom/microsoft/vcpkg/files/14125503/Cheat.Lab.2.7.2.zip
https://github%5B.%5Dcom/microsoft/STL/files/14432565/Cheater.Pro.1.6.0.zip

しかし、調査の結果として、これらのファイルはマルウェアであり、Microsoft のコード・リポジトリには存在しないことが判明した。

これらのマルウェアは、GitHub の CDN 上に存在しており、脅威アクターが同プラットフォームのコメント機能を悪用して、アップロードしたものである可能性が高いという。

GitHub では、commit や pull request にコメントを残す際に、アーカイブやドキュメントなどのファイルを添付できる。そのファイルは、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: BleepingComputer

それらの悪意のファイルは 、コメント投稿の中止や投稿後の削除が行われる状況でも、GitHub の CDN から削除されず、ダウンロード URL は永遠に機能し続ける。

2024年3月に、自動マルウェア解析サービス UNPACME の Sergei Frankoff は、このバグについて Twitch でライブ・ストリームを行い、脅威アクターが積極的に、このバグを悪用していると述べている。

この問題を、BleepingComputer が報告した直後に、GitLab も無縁ではないとの指摘が、読者からあった。そして、GitLab のコメント機能を、ユーザーが同じように悪用できることが確認された。

BleepingComputer のテストでは、Inkscape や Wireshark といった人気の OSS プロジェクトの、GitLab リポジトリに存在するかのように見えるファイルを、GitLab の CDN にアップロードアップロードできた:

https://gitlab%5B.%5Dcom/inkscape/inkscape/uploads/edfdbc997689255568a7c81db3f3dc51/InkScape-2024-Latest.exe
https://gitlab%5B.%5Dcom/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 のコメントにファイルを追加した際に自動生成されるダウンロード・リンク
Source: BleepingComputer

GitHub のケースと同様に、生成された GitLab のファイル・リンクは、そのコメントが攻撃者により投稿されない場合でも、後に削除された場合にも生き続ける。

GitLab では、これらのファイルをアップロード/ダウンロードする前に、ユーザーに対してサインインを促す。しかし、脅威アクターたちによる、これらの悪意のファイルのアップロードを防ぐことはできない。

事実上、ほとんど全てのソフトウェア企業が GitHub や GitLab を利用しているため、この欠陥を悪用する脅威アクターは、きわめて巧妙で信頼できそうな、ルアー情報を作成できる。

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

このような URL は、その企業のリポジトリに属しているように見えるため、きわめて信頼性が高いものと誤認されやすくなる。

残念ながら、たとえ自社のリポジトリが、マルウェア配布に悪用されることを、それぞれの企業が知ったとしても、プロジェクトに添付された悪意のファイルを、見つけ出すことは不可能だろう。

4月18日の時点で BleepingComputer は、この悪用について GitHub と Microsoft に問い合わせたが、回答は得られていない。また、公開に先立って GitLab にもコメントを求め、回答を待っているところだ。