RubyGemパッケージrest-client、バックドア含むバージョン立て続けに公開
2019年8月25日 20:17
RubyGemパッケージ「rest-client」のメインテナーのRubyGem.orgアカウントが不正アクセスを受け、悪意あるコードを含むバージョンが立て続けに公開されていたそうだ(rest-client Issue#713、 The Registerの記事、 CVE-2019-15224)。
不正に公開されたのはバージョン1.6.10/1.6.11/1.6.12/1.6.13の4バージョン。1.6.13では外部にデータを送信するコードをpastebinからダウンロードして実行するコードが含まれていたという。1.6.x系列は2014年に1.7.0で置き換えられた非常に古いバージョンで、何らかの理由により最新版へアップグレードできない場合のために残されているものだが、1.6.13は1,061回ダウンロードされていたそうだ。
不正アクセスを受けたメインテナーのHacker Newsへの投稿によると、RubyGems.orgアカウントと他サービスでパスワードを共有しており、そのパスワードは他サービスから漏洩していたという。RubyGems.orgアカウントは10年以上前に作成したもので、最近はほとんど活動していなかったことからパスワードの安全性にも注意を払っていなかったとのこと。攻撃の流れとしては、価値の高いターゲットライブラリを選んでアカウント名を取得し、流出パスワードのリストと照合したとの見方を示している。
RubyGems.orgは影響を受けるバージョンをすべて公開停止し、1.6.9と同じ内容の1.6.14を新バージョンとしてリリースしている。さらに、二要素認証の使用などメインテナーに求めるセキュリティプラクティスの確立や、アクティブなメインテナーの維持に関するポリシーの導入などを計画しているとのこと。なお、これに関連して不正なコードを含むパッケージが多数見つかり、すべて公開停止となっている。
RubyGems.orgアカウントへの不正アクセスとしては、3月にバックドアを含むbootstrap-sass 3.2.0.3が公開されたことがスラドでも話題になったが、6月にもバックドアを含むstrong_password 0.0.7が公開されていたとのことだ。不正アクセスを受けたstrong_passwordのオーナーも他サービスで流出した古いパスワードの使用していた点や最近活動していなかった点など、rest-clientのメインテナーと状況が似通っている。