ソフトウェアセキュリティ企業Socketの脅威調査チームは2025年8月8日、RubyGemsエコシステムで長期間にわたるサプライチェーン攻撃を確認したと発表しました。
2023年3月以降、攻撃者は「zon」「nowon」「kwonsoonje」「soonje」といった複数のエイリアスを使い分け、合計60個の悪意あるRuby Gems(パッケージ)を公開。
これらはInstagram、TikTok、Twitter/X、Telegram、Naver、WordPress、Kakaoなどの自動化ツールを装いながら、利用者が入力した認証情報を窃取していました。
主な偽装パッケージ例
-
WordPress系自動化:
wp_posting_duo、wp_posting_zon -
Telegram系ボット:
tg_send_duo、tg_send_zon -
SEO/バックリンク系:
backlink_zon、back_duo -
Naver Café関連:
cafe_basics[_duo]、cafe_buy[_duo]、*_blog_comment -
ブログ自動投稿:
nblog_duo、tblog_duopack、tblog_zon
これらは一部 タイポスクワッティング(名前の類似性を悪用した偽装)で、正規ツールと見分けがつきにくくなっています。
攻撃の手口と特徴
悪意あるGemsは、表面上はSNS自動投稿やSEO支援などの機能を持つGUIツールとして動作します。
しかし内部には、入力されたID・パスワード・MACアドレスなどを攻撃者が管理するC2サーバー(例:programzon[.]com、appspace[.]kr、marketingduo[.]co[.]kr)へ送信するコードが組み込まれていました。
窃取コードは以下の特徴を持ちます。
-
韓国語UI(「아이디(ID)」「비밀번호(パスワード)」など)で入力を促す
-
入力値をそのままHTTP POSTで外部サーバへ送信
-
送信先は韓国向けマーケティングサービス風サイトや複数のC2ドメイン
-
実際のAPI認証は行わず、偽の成功・失敗メッセージを表示
-
MACアドレス収集による端末識別と感染追跡
被害範囲と標的
Socketの分析によれば、60個の悪意あるパッケージは合計で27万5,000回以上ダウンロードされており、特に韓国の自動化ツール利用者を主な標的としていました。
被害者の多くは、いわゆるグレーゾーンのマーケター(スパム投稿やSEO操作、SNSの水増しエンゲージメントを行う事業者)で、使い捨てアカウントを多用するため、認証情報が漏えいしても気づかず新しいアカウントに移行するケースが多く、攻撃が長期間発覚しませんでした。
さらに一部のGems(例:njongto_duo、jongmogtolon)は株式掲示板の自動投稿機能を装い、金融関連コミュニティでの情報操作や株価印象操作にも利用可能な設計になっていました。
攻撃者インフラと流通経路
攻撃者は以下の複数ドメインを利用し、認証情報の収集やツールの宣伝を行っていました。
-
programzon[.]com -
appspace[.]kr -
marketingduo[.]co[.]kr -
seven1.iwinv[.]netほか
また、攻撃者は韓国語のTelegram・Kakaoオープンチャットなどで「자동 백링크 프로그램(自動バックリンクプログラム)」「무료 상위노출 툴(無料上位表示ツール)」などと宣伝し、標的層を直接誘導していました。
現状と対策
発覚時点で16個の悪意あるGemsがRubyGems上で依然利用可能でしたが、Socketはすべての該当パッケージをRubyGemsセキュリティチームに報告し、削除とアカウント停止を要請済みです。
開発者・利用者への推奨対応は以下の通りです。
-
未知または信用度の低いパブリッシャーのパッケージを避ける
-
コードに難読化や不自然な外部通信がないか確認
-
依存関係を既知の安全なバージョンに固定
-
ダウンロードしたGemsの更新履歴・公開者を精査
-
インストール環境におけるネットワーク監視を強化
まとめ
今回の事案は、特定の業界コミュニティを狙い撃ちしたサプライチェーン攻撃の典型例です。悪意あるパッケージは正規機能を提供しながら密かに情報窃取を行うため、利用者が被害に気づきにくく、長期間にわたって活動が継続されます。
開発者は依存パッケージ選定時に警戒を強め、組織はオープンソース依存のセキュリティリスクを監視・検証する仕組みを整えることが求められます。
参照
https://socket.dev/blog/60-malicious-ruby-gems-used-in-targeted-credential-theft-campaign








