CircleCI や TravisCI などの CI サービスの無料枠を食いつぶす暗号通貨採掘者
CIサービス(Continuous Integration = 継続的インテグレーション)の LayerCI の CEO がブログで指摘したのが、LayerCI やその競合である GitLab, GitHub Actions, TravisCI, CircleCI, Wrecker などのサービスの無料枠を悪用した暗号通貨マイナー(miner = 採掘者)の実例です。
CIサービスの無料枠
CIサービスでは、GitHub や BitBucket などのソースコード管理サービスでコードの変更がある度に、自動的にテストセットを実施し、ソフトウェアが壊れていないかを確認してくれます。CIサービスはこれらのテストを実施するためのコンピューター資源を大量に確保・実行しています。
多数のプロジェクトを持つ企業は毎月の使用料を払ってこれらCIサービスを利用しますが、普及宣伝のために個人開発者やスタートアップ企業、オープンソース開発者向けに少量のサービスを無料で提供する、いわゆるフリーミアムという仕組みも各社が活用してきました。
悪用者のリポジトリ
悪用の実例として出された GitHub 上のリポジトリが testronan/MyFirstRepository-Flask 。
CircleCI, GitHub Actions, TravisCI, Wrecker, LayerCI の5サービス用の定義ファイルが置いてありますね。一つのプロジェクトに5つの異なるCI定義。一つのプロジェクトに対してコードのテストをする競合サービスをここまで同時に使う必要は、普通はないかと思います。
リポジトリ名に Flask と入っていますが、コードの中身に webサービスである Flask に関するものは見当たりません。
GitHub Actions は cron 的に動き、一定時間ごとにコミットを行います。すると、コミットによって他の4つのCIサービスが起動するのでしょう。CircleCI 上で実施されている様子はパブリックに見ることができています。一時間おきに実行されていますね。
CIサービスの上では GitHub からのソースコードを取得し、いくつかのシェルスクリプトを噛ませ、いろいろな(たぶんマイニングに必要な)ライブラリをインストールして、WebDollarをマイニングする Node.js のスクリプトを実行し、採掘した暗号通貨は最終的にはインターネット上の2か所のウォレットに送り付けているそうです。
悪用者の儲け
ブログによれば、このリポジトリから WebDollar のウォレットに4月に送られた WebDollar は70米ドルぐらいということ。
PCとインターネットアクセスがあれば各サービスの無料枠だけでこの仕組みを構築できることを考えると、月70ドルが十分なインセンティブになる物価の地域も多いでしょう。それに、この悪用者が運営しているのがこのリポジトリ一つだけとも限りません。
ブログではもう一つ、CIサービス上でヘッドレスブラウザを動かし(テストとしてはよくある利用)、そのブラウザ上で採掘スクリプトを回している例も紹介されています。こちらは現時点で月2.5ドル程度の暗号コインが得られるようですが、同じようなものを多数仕込めばそれだけ多く入手できることでしょう。自前でサーバを用意して素のコンピューティングパワーを使えばもちろんもっと採掘ができるでしょうに、他人のサーバー・サービスに計算させるために恐ろしく効率の悪い仕組みを使っているということになります。
このブログを書いた LayerCI も、おそらくこういった悪用者のアカウントを見つけて対処することに忙殺されているのでしょう。各社の無料枠が最近になってどんどん減少しているのも、このような隠れた濫用による影響が大きいのかもしれません。
via Hacker News