GitHubに潜む闇:トロイの木馬を配布する1万個のリポジトリを発見しました
I found 10k GitHub repositories distributing Trojan malware
I found 10k GitHub repositories distributing Trojan malware
GitHub上でトロイの木馬を拡散しているリポジトリが1万個も存在していることが判明しました。皆さんのプロジェクトでも、信頼できない外部ライブラリやスクリプトを不用意にクローンしていないか、今一度チェックすることをお勧めします。
ここにあったサンプル(https://github.com/alexct142010-cell/McBackuper )をGenus Codesにアップロードしてみた(要アカウント:https://genuscodes.com/results/7ad4b911d05a12f91ab27ba3baa35... )。どうやらdiscoトロイの木馬ファミリーに関連しているみたいだ。悪意のあるファイル(https://genuscodes.com/results/eddbc29db4677e00c1a901aadbadb... )と正規化された関数マッチングで50%一致してて、もう一つの(https://genuscodes.com/results/fdb6cff68a2a8c08779d64a7cf61d... )とも50%一致してる。Virustotalのリンクはこちら:https://www.virustotal.com/gui/file/fdb6cff68a2a8c08779d64a7...
「プロジェクト名をGoogleで検索したら自分のリポジトリが出てきたけど、Bingで同じ検索をしたら他人のリポジトリが出てきた」っていう話、まさにこれが理由で私はBingを使うのをやめたんだよね。デフォルトの検索エンジンとして使ってたんだけど(Bingって最悪だけど、少なくともGoogleじゃないからマシだと思ってた)、ある時銀行のフィッシングページに飛ばされた。見た目は完璧なコピーで、もし「セキュリティ認証」のためにターミナルでコードを実行しろというモーダルが出てこなかったら、普通に引っかかるところだったよ。「あれ、なんかおかしいな……URL合ってるか? うわっ、これ.ruドメインじゃん!」ってなった。Googleで検索しててフィッシングサイトやタイポスクワッティングのサイトが1ページ目に出てくることなんてまずないけど、Bingはしょっちゅう検索結果の上位にそういうのが出てくる。
「なんで数時間おきにコミットを削除して新しくプッシュしてるの?」っていう疑問だけど、おそらく検索したときにリポジトリが「最終更新日」のトップに来るようにするためだろうね。そうすれば、本来の作者のリポジトリじゃなくて、トロイの木馬に感染したリポジトリをユーザーがクローンするように仕向けられるからさ。
NYMagの最近のカバー記事(WSJでも報じられていた内容[0])にある、DisneyのエンジニアがGitHubからAI生成ツールをダウンロードした時の逸話を思い出したよ。彼は「自分でコードを確認して、問題なさそうだった」と言っていたのに…。https://archive.is/yAUNy 「なぜハッカーが彼を標的にしたのか、彼らが何を企んでいたのかは不明だ。家族の資産を奪うつもりだったのか、自宅を特定しようとしていたのかもわからない。結局、別のアンチウイルスソフトを実行して初めて、GitHubからダウンロードしたプラグインにマルウェアが隠されていることに気づいた。その日は2月で、AI画像生成ツールをいじっていた時だった。コードは自分で確認して問題ないように見えたし、他のユーザーからの評価も高かった。しかし、そこにはPCをハッカーの思うがままに操れるトロイの木馬が仕込まれていた。一度侵入してしまえば、あとは彼が1Passwordにログインするのを待つだけだった。そこから認証情報や多要素認証のコードがすべて盗まれ、彼がアプリやウェブサイトにログインするたびに、ハッカーたちは後を追ってアクセスできてしまった。なんと数ヶ月間も侵入されていたんだ。」[0] https://www.wsj.com/tech/cybersecurity/disney-employee-ai-tool-hacker-cyberattack-3700c931
2024年2月に、明らかにnulled(クラック)されたソフトウェアを含んでいるリポジトリをGitHubに報告したよ。タイトルは「nulled WHMCS」で、コピープロテクトを外した完全に丸パクリの代物だ。これ以上ないほど明らかな著作権侵害なのに、2年以上経った今もそのリポジトリは残ったままで、GitHubは何も対処していない。明らかな海賊版ソフトを指摘するチケットにすら対応できないなら、GitHubは誰が何をアップロードしようが全く気にしていないんだろうね。
「なんで人気のあるリポジトリじゃなくて新しいリポジトリばかりクローンするの?」とか「数時間おきにコミットを入れ替えるのはなぜ?」っていう疑問だけど、これは人間相手じゃなくて、エージェント(AIや自動プログラム)を標的にしてるからだよ。エージェントが依存関係を追加しようと検索したときに、検索結果に少しでも引っかかって、運良く何度か感染の連鎖が始まればそれでいいんだ。で、一番面白い質問の「なぜ今なのか」だけど。1. あらゆる場所にエージェントが溢れているから。2. 今年は世界中で大規模な選挙があるから(米中間選挙やブラジルの総選挙など)。これはアカウントを盗むワームのようで、おそらくFacebook、Instagram、TikTok、WhatsAppなどの美味しいアカウントを乗っ取って、ボットの軍団に変えようと狙ってるんじゃないかな。
これは悪用のほんの一例に過ぎない。GitHubはマルウェアの蔓延という問題の規模なんて全く気にしてないよ。私はGitHubトレンドのニュースレター [1] を作っている過程で、暗号資産、NFT、KMS関連など、ありとあらゆる形式のマルウェアリポジトリを見てきた。プロジェクトの初期段階では、トレンドのリポジトリを装ったマルウェアリポジトリが何十個もあって驚かされたよ。それらには共通点が多くて、フィルタリングはある程度可能だったんだ:・作成したばかりのGitHubユーザー(ここ数日で作られたものがほとんど)。・スターを付けているアカウントの平均作成日が、リポジトリの作成日と非常に近い。この時間差の平均を取れば、悪質なリポジトリはすぐ浮き彫りになる。何十件ものマルウェアリポジトリを報告したけど、GitHubが対策に本気じゃないと感じてやめたよ。「あいつらが気にしてないのに、なんで自分一人が頑張らなきゃいけないんだ?」って思ったからね。GitHub上のマルウェアで一体何人の被害者が出ているのか、神のみぞ知るだね。--- [1] https://github.com/mhadidg/gh-trends
全く同じことが自分にも起きているよ。中規模のオープンソースプロジェクトをいくつか持ってるんだけど、自分とは何の関係もない新しいプロジェクトに自分の名前が使われていたり、自分のプロジェクトの派生品を装って未知のサイトへリダイレクトさせたりしている。自分の正規のプロジェクト:https://github.com/jimmc414/onefilellm https://github.com/jimmc414/Kosmos https://github.com/jimmc414/cctrace 自分の名前が勝手に使われているプロジェクト(無関係、あるいは自分のコードにURLが注入されたもの):https://hub.decision.ai/skills/jimmc414/benchling-integration https://lobehub.com/skills/jimmc414-claude-code-plugin-marketplace-local-llm https://mcpmarket.com/tools/skills/geniml-genomic-machine-learning https://mcpmarket.com/tools/skills/biopython-for-molecular-biology
2月に自分のリポジトリでも全く同じことが起きた。スクリーンショット付きで詳細をまとめたよ。https://reducibl.com/writing/someone-used-my-repo-to-distribute-malware