Korzen

ブログ

無料トライアルの悪用:サインアップを妨げずにマルチアカウントを止める方法

同じ人がアカウントを次々に作り、無料トライアルや無料プランを使い続けます。マルチアカウント(multi-accounting)の仕組み、それを見抜く手がかり、そして見込み客のためにトライアルを守る方法。

無料トライアルは賭けです。製品を数日分無料で提供し、ふさわしい人が残ってくれることを期待します。無料トライアルの悪用とは、同じ人や同じスクリプトがその賭けを何度も繰り返すことです。新しいメールアドレス、新しいアカウント、さらに 14 日間、あるいは無料クレジットをもう一回分。市場ではマルチアカウント(multi-accounting)やプロモーション悪用(promo abuse)と呼ばれます。あなたにとっては、アカウントが増えるたびに膨らみ、決して回収できないコストです。

無料トライアルの悪用の手口

  • 手作業。トライアルが終わると、別のアドレスで登録し直します。メールのエイリアス(name+1@)や使い捨てのメールボックスを使えば数秒で済みます。
  • スクリプト。サインアップ bot がアカウントをまとめて作り、それぞれで無料クレジット、API の割り当て、AI のトークンを集めます。転売目的のことも多くあります。
  • ファーム。アンチ検出ブラウザと住宅用プロキシで、アカウントごとに新しい fingerprint と IP アドレスを用意するため、一見すると互いに無関係に見えます。

1 つ目は厄介事にすぎません。お金が消えるのは 2 つ目と 3 つ目で、計算資源、ストレージ、モデル呼び出しを無料で提供する製品ほど損失が大きくなります。

マルチアカウントを見抜く手がかり

悪用する側は、メールアドレス、IP アドレス、ブラウザの fingerprint を変えられます。難しいのは、それ以外のすべてを、アカウントごとに、同時に、矛盾なく変えることです。

  • 1 台の端末、多数のアカウント。同じブラウザが複数のネットワークの背後にいる、あるいは 1 つのセッショントークンが複数の場所から使われる。
  • 1 つの fingerprint、多数のセッション。プロファイルを使い回すアンチ検出ブラウザは、多くのセッションと多くのサブネットに現れます。
  • 新しいセッションの連続。同じサブネットと同じ User-Agent から数分で 10 個の新しいセッションが生まれるのは、一般家庭ではありません。
  • フォームの入力のされ方。人はマウスを動かすか画面に触れ、キーを 1 つずつ打ちます。スクリプトはテキストを貼り付け、動かずにクリックします。
  • 自己矛盾するブラウザ。User-Agent はある OS を名乗っているのに、ブラウザは別の OS を報告している。

どの手がかりも単独では証拠になりません。VPN だけでは決して証拠になりません。ですが、数分の時間枠の中でそろえば、それがファームの姿です。

サインアップで確認し、特典で対応する

アカウントを作成する前に、訪問者の IP、User-Agent、タグがブラウザに残したトークンを添えて、サーバーから判定を求めます。そのうえで、アカウントが存在するかどうかだけでなく、何を受け取るかを決めます。

  • bot high:サインアップを拒否します。
  • bot:無料クレジットなしでアカウントを作成し、メールアドレスの確認、カードの登録、電話番号の確認が済んだ時点でクレジットを付与します。
  • unknown、human、human high:いつもどおり、トライアルをすべて提供します。

フォームをブロックする代わりに特典を保留すれば、誤判定のコストを低く抑えられます。少し変わった環境の本物の見込み客も問題なく登録でき、クレジットを少し待つだけです。クレジットを受け取れないスクリプトには、戻ってくる理由がありません。

ループを閉じる

アカウントが有料顧客になったら、フィードバックで Bot Protection に伝えましょう。悪用だと分かった場合も同じです。良い顧客の次回以降の訪問は信頼され、悪用に結びついた端末は信頼されません。また、新しいアカウントごとにクラスを記録しておけば、トライアルの転換率をスクリプトではなく人で測れます。

fail-open を守る

チェックはサインアップの中にあるので、サインアップを止めることがあってはなりません。短い timeout を使い、どんなエラーでも訪問者を通してください。障害中に少し余分にトライアルが発生しても、動かなくなったサインアップページよりはずっと安く済みます。詳しくはbot チェックが fail-open でなければならない理由をご覧ください。