セキュリティ研究者のMoe Ghasemisharif氏、Ruian Duan氏、Zhanhao Chen氏、Daiping Liu氏は、人気のRuby用ライブラリの改ざん版を配布するRubyGemsを悪用したクリプトジャッキングキャンペーンを発見しました。
悪意あるパッケージは実行を5時間遅延させ、サンドボックス環境かどうかを確認した上で、XMRigマイナーを展開し、侵害したシステム上で密かにMoneroを採掘します。
このキャンペーンには少なくとも2つの公開者アカウント、Prvaz12_marsとmonib110が関与しており、両者は似たようなパッケージ名を使用していましたが、悪意ある機能の実装度合いは異なっていました。
3つ目のアカウントAndrey78は、同様の名前を持つgemを数百個公開しており、この攻撃の準備・テスト段階を担っていた可能性があります。
最も高度な活動が確認されたのは、jdvrie98@gmail[.]comに関連付けられたRubyGemsアカウントPrvaz12_marsでした。
このアカウントは2026年7月13日に113個の悪意あるgemを公開し、これらは合計14,253回ダウンロードされました。
これらのパッケージは正規のRubyライブラリになりすまし、ultra-smart-tool、nano-sharp-kit、hyper-safe-hubといった、いかにもそれらしい3単語構成の名前を使用していました。
各gemには、同梱されたライブラリのエントリーポイントファイルに埋め込まれた、同一のXMRigベースのクリプトジャッキング用ペイロードが含まれていました。
このペイロードは、sleep 18000を含むバックグラウンドのRubyスレッドを起動し、悪意あるルーチンの実行を5時間遅延させます。
このタイミング調整により、パッケージを短時間だけ実行して安全と判定しがちな自動セキュリティシステムからの検知を回避しやすくなります。
マイニングを開始する前に、このマルウェアはVMware、VirtualBox、QEMUといった仮想マシンの有無を確認します。
また、/.dockerenvやcgroup関連の痕跡といったコンテナを示す指標や、デバッガに関連する痕跡も探索します。分析環境であると判断した場合は、実行を停止します。
このマルウェアは、ホストが高負荷状態にある場合はマイニング活動を抑制し、XMRigのCPUスレッド使用率の上限を50%に設定します。これにより、開発者やシステム管理者に気付かれるような明白なパフォーマンス低下を抑えています。
Prvaz12_marsのペイロードは、単なるマイナーにとどまりません。~/.bashrcの改変、crontabタスクの追加、systemdユーザーサービスの作成によって永続化を図ります。
さらに、~/.ssh/id_rsaや~/.ssh/known_hostsを読み取ることで、既知のSSHホストへの拡散を試みる横展開機能も備えています。
研究者らは、ローカルの開発プロジェクトを改変できる、複数の言語をまたいだ拡散機能も発見しました。
このワームのような機能は、Node.jsのpackage.json内post-installスクリプト、Pythonのsetup.pyファイル、Rubyの.gemspecファイル、Dockerfile、Gitのpre-commitフック、そしてVisual Studio Code拡張機能を標的としています。
この設定情報は、AES-256-GCM、RSA-4096、ChaCha20による多層暗号化で保護されています。
このマイナーは、pool.moneroocean[.]stream、p2pool[.]io、pool.supportxmr[.]com、de.monero.herominers[.]comを含む複数のプールに接続し、以下のMoneroウォレットを使用します。
悪意あるコードはlib/.threadpool.rbに格納されており、当該gemのメインエントリーポイントから読み込まれます。プレーンテキストのXMRigLauncherモジュールを用いて、GitHub API経由で最新版のXMRigをダウンロードします。
exec()を通じてマイナーを起動します。最初のクラスターとは異なり、こちらには永続化機能、拡散機能、難読化機能、サンドボックス検知機能は備わっていません。
開発者は直ちに、Gemfile、ロックファイル、ビルドシステム、CIランナー、開発者端末を対象に、記載されたパッケージ名や侵害の痕跡(IOC)がないか監査すべきです。
各チームは、不審なgemを削除し、侵害が疑われる場合はSSH鍵やリポジトリの認証情報をローテーションし、永続化の仕組みを調査した上で、プロジェクトファイルやGitフックへの最近の変更内容を確認する必要があります。
依存関係のバージョン固定、パッケージの許可リスト運用、タイポスクワッティング検知、自動化されたソフトウェアサプライチェーンスキャンは、こうした攻撃への露出を減らすのに役立ちます。
ANY.RUNでSOC調査の死角を減らし、脅威を早期に封じ込めることで対応コストと業務への支障を軽減しましょう。
翻訳元: https://cyberpress.org/rubygems-evade-sandboxes-mine-monero/