RubyGemsパッケージリポジトリのメンテナーは、11のRubyライブラリから、バックドアが仕込まれた18のバージョンを削除した。
これらの悪質なコードは、米国時間8月19日に極めて人気の高いRubyライブラリである「rest-client」の4つのバージョンで最初に発見された。
オランダ人Ruby開発者であるJan Dintel氏の分析によれば、rest-clientで発見された悪質なコードは、侵害されたシステムからURLと環境変数の内容を収集し、ウクライナにあるサーバーに送信していた。
また、このコードにはバックドアが仕込まれており、攻撃者が侵害されたプロジェクトにクッキーファイルを送り込むことで、任意のコードを実行できるようになっていた。
その後、RubyGemsスタッフの調査によって、この仕組みが仮想通貨マイニングのためのコードを送り込むために悪用されていたことが明らかになった。RubyGemsのスタッフはまた、他にも10のプロジェクトに同様のコードが存在することを突き止めた。影響を受けていたプロジェクトは以下の通りだ。
- rest-client: 1.6.10(2019年8月13日から、ダウンロード回数176回)、1.6.11(2019年8月14日から、ダウンロード回数2回)、1.6.12(2019年8月14日から、ダウンロード回数3回)1.6.13(2019年8月14日から、ダウンロード回数1061回)
- bitcoin_vanity: 4.3.3(2019年5月12日から、ダウンロード回数8回)
- lita_coin: 0.0.3(2019年7月17日から、ダウンロード回数210回)
- coming-soon: 0.2.8(2019年7月17日から、ダウンロード回数211回)
- omniauth_amazon: 1.0.1(2019年7月26日から、ダウンロード回数193回)
- cron_parser: 0.1.4(2019年7月8日から、ダウンロード回数2回)、1.0.12(2019年7月8日から、ダウンロード回数3回)、1.0.13(2019年7月8日から、ダウンロード回数248回)
- coin_base: 4.2.1(2019年7月9日から、ダウンロード回数206回)、4.2.2(2019年7月16日から、ダウンロード回数218回)
- blockchain_wallet: 0.0.6(2019年7月10日から、ダウンロード回数201回)、0.0.7(2019年7月16日から、ダウンロード回数222回)
- awesome-bot: 1.18.0(2019年7月15日から、ダウンロード回数232回)
- doge-coin: 1.0.2(2019年7月17日から、ダウンロード回数213回)
- capistrano-colors: 0.5.5(2019年8月1日から、ダウンロード回数175回)
この攻撃を実行した人物は、1カ月以上前から活動していたが、その活動は発見されずにいた。
しかし、このハッカーがあるrest-clientの開発者のRubyGemsアカウントへのアクセスを獲得し、このアカウントを使用して悪質なバージョンのrest-clientをRubyGemsにプッシュすると、状況は変わった。
これまで1億1300万回もダウンロードされている有名なプロジェクトをターゲットにしたことで、このハッカーの活動は明るみになり、問題のライブラリは、rest-clientのライブラリに悪質なコードが発見されてから数時間以内に削除された。
影響を受けたライブラリのバージョンは全部で18で、これらがRubyGemsから削除されるまでに、合計で3584件ダウンロードされていた。
依存関係ツリーにこれらのライブラリが存在するプロジェクトは、これらのライブラリを削除するか、安全なバージョンにアップグレードまたはダウングレードすべきだ。
クッキーを利用して任意のコードを実行するバックドアの仕組みは、4月に「Bootstrap-Sass」プロジェクトで発見されたものや、7月に「strong_password」プロジェクトで発見されたものと驚くほど似ている。しかし、これらの3つの試みに繋がりがあるかどうかは明らかになっていない。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。