• 作成:

HaskellライブラリをビルドしていたらCircleCIに暗号通貨をマイニングしてると誤認されて一時BANされた話

突然CircleCIが動かなくなりました

2021年07月05日に、 CircleCIが動かなくなりました。

何をしていたのかと言うと、自作のHaskellライブラリを新しいStackageでビルドできることを確認するためにLTSを上げたPRを作っていました。そしたらCircleCIがビルドをCanceledにしてきて、調子悪いのかなと思ってRerunしてみたら、新しいジョブがNot Runになって動かない。

クレジットが無くなったのかと思いましたが、月始めですし、そもそもOSSは無料で動かせるはずです。

前からCircleCIの構文は動いてたものを使ってたのになと思ったら、他のプロジェクトもNot Runになって、こういう画面が出てきました。

Not Runの画面

利用規約に違反したとか書かれている…? しかしCircleCIの利用規約に違反するような行為をした記憶はないです。まあ利用規約に私の想定してない内容が書かれているかもと思ったのでお問い合わせを出すことにしました。

お問い合わせ(1回目)

今日新しくプロジェクトをCircleCIに追加しました。

そしたらビルドがcanceledになりました。おかしいなと思ってRerunしました。そうしたらNot Runのまま進みません。

元々ビルドが動いていた、 Pipelines - ncaq/yesod-recaptcha2 などもビルドが動きません。

何故だろうなと思ってbuildページを見てみると、以下の文章が表示されていました。

We have detected an anomaly that violates the CircleCI Terms of Service.

We did not test this push because the project has been suspended. Please contact us if you think this is a mistake.

利用規約に違反しているため停止されているという通告を受けましたが、私は利用規約に違反しているつもりはありませんし、もし違反しているならば、速やかに修正しようと思います。

よって表示の指示通りサポートに連絡を行っています。

CircleCI側の回答(1回目)(要約)

ncaqアカウントとncaq/yesod-recaptcha2に禁止フラグがついていました。よくあるケースとしてはマイニングを行っているということがあります。フラグを解除します。

お問い合わせ(2回目)

お世話になっております。

返信を見て他のプロジェクトに関してはビルドを再開できたようなのですが、

Pipelines - ncaq/yesod-form-bootstrap4

についてはビルドが同じく利用規約違反ということで動かないようです。

誓ってマイニングは行っておりません。

Haskellソースコードのビルド作業がCPUに負荷がかかるため、マイニングと誤認されているのか危惧しています。

CircleCI側の回答(2回目)(要約)

github/ncaq/yesod-form-bootstrap4も禁止フラグを解除しました。 CPU負荷がかかると誤認される可能性があります。再発したらまた連絡してください。

お問い合わせ(3回目)

Pipelines - ncaq/yesod-form-bootstrap4

を再度ビルドし直しましたが、やはり利用規約違反となって止まってしまいます。

これはOSSなので、そちらで何をしようとしているのか動作は確認出来ると思います。

CircleCIの設定ファイルもGitHubに上がっています。

cryptonite :: Stackage Server

をビルドする所で止まっていたので、暗号ライブラリを暗号通貨のマイニングとして誤認識しているのではと疑っています。

TLSなどに対応するために暗号ライブラリをビルドすることは、webアプリケーションのライブラリとして必要不可欠なものです。

これを取り除くことは困難です。

どうかビルドを可能にしていただけないでしょうか。

CircleCI側の回答(3回目)(要約)

プロジェクトに禁止フラグを回避するフラグをセットしました。他にも似たようなプロジェクトがあれば連絡ください。

お問い合わせ(4回目)

Pipelines - ncaq/yesod-recaptcha2

の方も同じくHTTPS通信を行うため暗号ライブラリをビルドしています。

前回は運が良かったのか何故かビルドに成功しましたが、これも回避フラグをお願いしたいです。

CircleCI側の回答(4回目)(要約)

こちらのプロジェクトにも回避フラグをセットしました。

不法マイナーいい加減にしろとなった

多分HaskellライブラリはTemplate Haskellでソースコードの量の割にCPU負荷が高く、 (C++とかもテンプレートあるけどソースコード自体もそれなりに大きい) その上で暗号アルゴリズムのライブラリをビルドしてたから誤認されたのだと思いますね。

CircleCIのサポートは一日かからず返答が来て非常に親切でした。

CIサービスを一部無料で提供している関係上、無料マイニングを回避する設定はかけざるを得ないのでしょう。多少の誤検知は仕方ないですね。

しかし不法マイナーはいい加減にしてほしいですね。共有地を荒らして迷惑をかけてくるのはやめてほしい。