カテゴリー
ネットの事件

Curl プロジェクトが Travis-CI 無料枠を外されそうだとして対応を開始

URL転送ライブラリとそのコマンドラインツールとして有名な Curl プロジェクトの GitHub issues で、travis-ci の無料枠が使えなくなる(travis-ci shuts down the free tier for us)というチケットが上がっています。

有名CIサービスである travis-ci にはオープンソースをサポートする無料枠があり、GitHub 上の多くの OSS プロジェクトで travis-ci が利用されているのもそれによるものです。

curlプロジェクトでも 2013 年から travis-ci で CI を回しており、現在は33個のジョブが走っているそう。今年の3月までは、特別にCPUブーストもしてもらえていたということですが、このブーストは予告なしに止まっていたそう。

travis.ci は今 travis-ci.org から travis-ci.com へのドメイン移行を進めているのですが、この移転でオープンソース無料枠を再度申請したいが、他のプロジェクトに対するメールでの返答にあった「無料枠を使える条件」が引っ掛かりそうだ、とCurl作者のダニエル・ステンバーグ氏(Daniel Stenberg)が述べています。

  • 申請者はプロジェクトのリードかレギュラー貢献者である
  • プロジェクトは3か月以上の歴史を持ちアクティブである
  • プロジェクトはオープンソースの定義(OSD)に合致する
  • プロジェクトは営利企業や組織にスポンサードされていない
  • プロジェクトは有料サービスやソフトウェアの有料版の配布をしていない

ステンバーグ氏はwolfSSL社に属し、勤務時間中にCurl プロジェクトの管理やサポートをしてよいことになっているのですが、これが上記の5つの4番目にどうしても抵触してしまうだろうということ。

氏は「他の無料枠のあるCIサービスへの移行」「CIツールをセルフホストして使う」「寄付を募ってTravis-ci を有料枠で使い続ける」などの取りうる選択肢を示し、意見を求めています

コメント欄や twitter ではすでにいくつかの他のCIサービスから引っ越しの提案が出たり、CIツールの変更についての作業を手伝いたいという人も出てきています。

今のところ、あくまで他のOSSプロジェクトに対しての Travis-ci の返答から出ている話のようで、Curl プロジェクトの CI が止められているとか止められそうというわけではなさそうです。ただ新しいルールがあるならそれに違反したまま使い続けるのは後日のリスクとなるかもしれないですね。

コメントの中には、「Travis-ci は内部で Curl を使ってるだろう。Travis-ci が Curl を無料で使えるように、Curl が Travis-ci を無料で使えるよう例外扱いしてもらえばいい」と言ったものもあります。これは Travis-ci も応じるかもしれませんが、その他の多くの同様の OSS プロジェクトについてこのような例外が得られるわけではないですね。

OSSプロジェクトを支援するためにOSS開発者を社員にしたり、スポンサーとして援助したりというケースは多く、そのおかげで続いているOSSプロジェクトもあるでしょう。Travis-ci を含めた各CIサービスも無料枠の abuse などで無料枠の継続がたいへんな状況になっていることもあり、この後も他プロジェクトで同じような話が出てくるのではと思います。

カテゴリー
ネットの事件

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米ドル(7700円)ぐらいということ。

PCとインターネットアクセスがあれば各サービスの無料枠だけでこの仕組みを構築できることを考えると、月70ドル(7700円)が十分なインセンティブになる物価の地域も多いでしょう。それに、この悪用者が運営しているのがこのリポジトリ一つだけとも限りません。

ブログではもう一つ、CIサービス上でヘッドレスブラウザを動かし(テストとしてはよくある利用)、そのブラウザ上で採掘スクリプトを回している例も紹介されています。こちらは現時点で月2.5ドル(220円)程度の暗号コインが得られるようですが、同じようなものを多数仕込めばそれだけ多く入手できることでしょう。自前でサーバを用意して素のコンピューティングパワーを使えばもちろんもっと採掘ができるでしょうに、他人のサーバー・サービスに計算させるために恐ろしく効率の悪い仕組みを使っているということになります。

このブログを書いた LayerCI も、おそらくこういった悪用者のアカウントを見つけて対処することに忙殺されているのでしょう。各社の無料枠が最近になってどんどん減少しているのも、このような隠れた濫用による影響が大きいのかもしれません。

via Hacker News