# カードテスティングの被害を防ぐ

この不正使用行為の詳細とその防止方法について説明します。

カードテスティングは不正利用行為のひとつで、盗まれたカード情報について、有効で購入に使用できるかどうかを確認しようとする行為です。不正利用者は、盗まれたクレジットカード情報を購入して、それらのカードで認証や買物を試み、まだ有効であるカードを特定することがあります。カードテスティングは、「カーディング」、「アカウントテスト」、「エニュメレーション」、「カードチェック」とも呼ばれます。

カードテスティングのような不正使用行為は、オンラインコマースでは避けられないことです。しかしながら、カードテスティングは決済エコシステム全体に影響を及ぼすため、加盟店、カードネットワーク、Stripe は共同で責任を負って防止に努めます。Stripe では、不正使用を検出し低減するためにツールやシステムの改善を続けていますが、お客様も不正使用に対して常に警戒しておく必要があります。

## カードテスティングの仕組み

カードテスターはカード設定と決済の両方を利用し、盗難または列挙されたカード情報が有効かどうかを判断します。また、複数のカード番号を迅速に検証するため、スクリプトを使用して大量のカード情報を一度にテストし、3DS またはカード発行会社の回答を収集してどのカード情報が有効かを検証します。有効なカードを識別した後には、加盟店でカードを現金化するか、ダークウェブで確認済みのカードとして販売します。

- **カードの設定**: カード設定時のカードの検証やオーソリは通常、カード会員の明細書に表示されません。そのため、これは悪意のあるユーザーに好まれる手法です。これにより、カード会員が不正利用に気づいて報告する可能性が低くなります。
- **決済**: カードテスターは少額の決済を行うため、カード保有者が気づきにくく、不正利用として報告されにくくなります。

## カードテスティングの結果

カードテスティングには多くの悪影響があり、その中にはカードテスティングが続くにつれてさらに悪化するものがあります。

- **不審請求の申請**: カードテスティングの類型の多くが支払いに関連するもので、その一部は成功してしまいます。支払いが成功すると、顧客はこれに気付き、不正利用として報告します。これにより、[不正利用の早期警告](https://docs.stripe.com/disputes/measuring.md#early-fraud-warnings)や[不審請求の申請](https://docs.stripe.com/disputes.md)が発生し、時間と費用を割かざるを得なくなります。
- **高い支払いの拒否率**: カードテスティングは、ビジネスに対する支払いの拒否率の悪化にも関連しています。拒否率が高くなると、カード発行会社とカードネットワークでのビジネスの評価が下がり、その結果、お客様の取引のすべてが疑わしく見えるようになりかねません。さらに、カードテスティングが行われなくなった後でも、正当な支払いに対して拒否率が高まる可能性があります。
- **追加手数料:** カードテスティング行為により、カスタム料金プランのオーソリ手数料や不審請求の申請手数料など、追加手数料が発生することがあります。
- **インフラへの負担**: カードテスティングにより、一般的に多くのネットワークリクエストや操作が発生します。これにより増大したトラフィックがインフラに負担をかけ、正当なアクティビティーに影響することがあります。
- **エコシステムの健全性への影響**: カードテスティングは金融システム全体に悪影響を及ぼします。そのため、Stripe と Stripe の金融パートナーはお客様がカードテスティングを防止できるように支援いたします。大量のカードテストによって不正使用の早期警告や不審請求の申請が発生した場合、お客様は[カードモニタリングプログラム](https://docs.stripe.com/disputes/monitoring-programs.md)に登録される可能性があります。
- **ビジネス運営に必要なデータの質の低下**: カードテスティングからの収益は、データ上では優良な新規顧客によるものと誤認しかねるため、実質的なお客様のビジネスの成長を明確に把握することが難しくなります。

## カードテスティングに関する有効なチェックリスト

カードテスターによって組み込みが悪用されている場合には、直ちに以下のアクションをとることをお勧めします。

- カードテスティング行為を[識別](https://docs.stripe.com/disputes/prevention/card-testing.md#identify-card-testing)します。
- 不正な支払いを[返金](https://docs.stripe.com/refunds.md)し、不審請求の申請を回避します。
- カードテスティングを抑制するには、[Stripe の推奨システムを使用](https://docs.stripe.com/disputes/prevention/card-testing.md#optimize-integration)するか、[対策](https://docs.stripe.com/disputes/prevention/card-testing.md#control-implementation)を追加します。
- 導入をモニタリングし、対策に効果があることを確認します。

## カードテスティングを識別する

ほとんどのカードテスティング行為は、オーソリと支払いの失敗の著しい増加によって判別できます。ほとんどの攻撃は、Stripe ダッシュボードで確認可能です。注意を必要とする一般的な兆候として、以下のようなものがあります。

- **支払いの失敗またはブロックの急増**: この傾向は[ダッシュボードのホームページ](https://dashboard.stripe.com/dashboard)、[取引](https://dashboard.stripe.com/payments)のリストビューで確認できます。また、支払いの詳細ページでブロックの理由を調べることも可能です。
- **402 エラーのリクエストの急増**: [開発者](https://dashboard.stripe.com/developers)ページでエラー件数の急増を確認したり、[失敗ログ](https://dashboard.stripe.com/logs?error_type=card_error)ページで 402 エラーを調べたり、[「generic_decline」の結果](https://docs.stripe.com/declines/codes.md)で Webhook や API レスポンスをリッスンしたりすることができます。
- **取引額の少ない疑わしい支払いの急増**: 多くの場合、不自然な顧客名やメールアドレスが使用されています。不審請求の申請を回避するために、疑わしい取引が既存の対策を通過した場合は返金することをお勧めします。

## カードテスティングを防止する

カードテスターは、その不正使用行為が防止されないように広範なテクニックを駆使します。そのため、IP アドレスのような単一のヒューリスティックに基づく単純なファイアウォール規則やフィルタだけではカードテスティングを防止することはできません。

カードテスターは公開可能キーを使用して、お客様のウェブサイトで複数の支払いを再試行することがあります。このような攻撃に対しては、主に 2 つの対策を用意できます。

- **Stripe の推奨システムの使用:** Stripe が推奨するシステムを選択して、効果実証済みのカードテスティング保護を利用できます。
- **制御の実装**: 制御システムを実装することで、カードテスターによる脆弱なエンドポイントへの攻撃を防止できます。

リスク対策を導入するだけでなく、キーを安全に保管し、シークレットキーを公開しないようにする必要があります。認証情報が漏洩または盗まれた場合、カードテスターはシークレットキーを使用して支払いを作成し、カードを設定することができてしまいます。

> 開発者ではない場合、またはプラグインやプラットフォームを使用している場合、カードテスティングの防止や軽減には通常、コードレベルの変更が必要です。コードを作成した開発者またはベンダーにこのドキュメントを提示し、協力してカードテスティングを防いでください。

### Stripe の推奨システムを使用する

最新の Stripe Payment Element または Checkout を使用している場合、カードテスティングを軽減するために、レート制限、AI モデル、CAPTCHA トリガー、継続的な審査など、多くの自動および手動の制御機能が用意されています。カードテスティング攻撃を受けていることが検出されると、攻撃を可能な限り抑制するための介入が動的に選択されます。その間も、正当なユーザーは最小限の影響で取引を行うことができます。このような決済は、`Blocked by Stripe` としてマークされます。

ただし、Stripe による対策が成功するかどうかは、実装状況や Stripe に送信されるリスク要因によって異なります。Stripe では、カードテスティングと正規の支払いを区別するために多数のリスク要因を使用しています。これらのリスク要因の一部は自動的に計算されますが、その多くは実装から提供される情報に依存しています。一般的に、実装から提供されるデータが多いほど、カードテスティングの防止はより効果的になります。

自動化された [CAPTCHA](https://www.hcaptcha.com/) に基づく保護を活用するには、Stripe の[推奨される導入方法](https://docs.stripe.com/payments/online-payments.md#compare-features-and-availability)のいずれかを使用することをお勧めします。最新の CAPTCHA ソリューションは、複数のリスク要因を適用して高リスク行動へのハードルを上げる一方で、サービスを利用する正規ユーザーにはほとんど見えません。CAPTCHA 実装をオプトアウトするには、[Stripe Support](https://support.stripe.com/contact/login) にお問い合わせください。

推奨される決済連携のいずれかを使用すると、Stripe のカードテスティング防止機能を最大限に活用できます。推奨される連携を使用できない場合は、可能な限り多くのデータを含めるか、独自の管理機能を導入してください。カードテスティング管理機能は、不審請求の申し立てから保護する Radar の機能とは別ですが、[Radar で使用されるのと同じリスク要因](https://docs.stripe.com/radar/optimize-risk-factors.md)を活用しています。

決済に以下の情報を含めると、Stripe のカードテスティングモデルのパフォーマンスに大きな影響を与えることができます。Stripe の推奨システムを使用するとこの情報を収集できますが、直接実装する場合はこのデータを明示的に含める必要があります。

- [高度な不正利用検出](https://docs.stripe.com/disputes/prevention/advanced-fraud-detection.md) (最も大きな影響)
- IP アドレス
- 顧客のメールアドレス
- 顧客の名前
- 請求先住所

### 実装を管理する

対象のエンドポイントに制限を追加すると、カードテスティングを抑制および防止できます。追加する制限によって、カードテスティングを非実際的に使用することができますが、正当なトラフィックにはほとんど影響を与えません。

通常、カードテスターは標的とするエンドポイントで以下のいずれかを行います。

- カードを保存すること。
- 支払いを行います。

システムに追加する具体的なセキュリティ対策は、お客様の状況とビジネスニーズによって異なります。一般的な方法を以下でいくつかご説明します。

### CAPTCHA を連携する

多くの場合、カードテスターは CAPTCHA をブロックできる自動スクリプトを使用します。このスクリプトは、CAPTCHA をサポートする推奨システムが使用されていないような場合に特に効果的です。最新の CAPTCHA ソリューションは、お客様の要望に合わせて、表示および非表示の CAPTCHA オプションを両方ご利用いただけます。システムに CAPTCHA を追加してもカードテスティングを阻止できなかった場合は、以下を確認してください。

- Stripe でのカード検証や支払いを可能にするすべてのリクエストで、CAPTCHA による検証を求めるようにします。
- CAPTCHA のドキュメントを見直して、CAPTCHA がサーバー側で連携されていることを確認します。
- スコアを提供する CAPTCHA ソリューションを使用している場合は、リクエストが成功しなくなるレベルまでしきい値を調整します。
- 不可視の CAPTCHA から可視の CAPTCHA へ切り替えたり、まったく異なるソリューションを使用するなど、別の CAPTCHA ソリューションを試します。

### 決済フォームへのアクセスを制限する

(ゲスト決済を利用するなどして) 不正利用者が決済フォームにアクセスしやすくなれば、不正使用者はカードテスティング攻撃を実行しやすくなります。ログインまたはセッションの検証をカードテスターが支払いを行う前に要求することで、カードテスターによる被害は減らせます。クロスサイトリクエストフォージェリ (CSRF) 攻撃への[対抗策](https://owasp.org/www-project-cheat-sheets/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html)の中には、CSRF トークンのように、特定のタイプのカードテスティングに対しても効果的なものがあります。

### レート制限を追加する

場合によっては、(ウェブショップのフロントエンドなどで) ネットワークのレート制限を追加することで、カードテスティングを抑制することができます。現在被害を受けている特定のタイプのカードテスティングを防止できるレベルにレート制限を調整してください。たとえば、カードテスターが構築済みのシステムを使用し、カードを新しい顧客に結び付けて検証している場合には、1 つの IP アドレスで 1 日に作成できる新規顧客数を制限することが効果的な防止策となり得ます。

ネットワークレート制限に加え、支払いやカート決済フローにレート制限を追加することで、ログイン後や登録後であっても[異常な動作を検出・防止する](https://docs.stripe.com/disputes/prevention/card-testing.md#prevent-unusual-behavior)ことができます。

### 異常な動作を検出して防止する

ダッシュボード、[Webhook](https://docs.stripe.com/webhooks.md)、[Stripe Sigma や Data Pipelines](https://stripe.com/guides/improve-fraud-management-with-radar-for-fraud-teams-and-stripe-data) の継続的なモニタリングを利用して、トラフィックの異常を追跡します。カードテスティングのアクティビティを通常の正当なトラフィックと比較した後、カードテスティングのアクティビティのみを制限または防止するフィルターを構築できます。

たとえば、以下のようにシステムを変更します。

- アカウントに追加できるカード数を制限する
- 1 つの IP アドレスで作成できる顧客数を制限する
- 同一商品の購入回数を制限する
- 作成できる同じタイプの顧客数を制限する
- 特定のユーザーエージェントやその他のパラメーターでリクエストをフィルタリングして除外する

[ご利用のプラン](https://docs.stripe.com/radar/how-radar-works.md#compare-plans)で機能がサポートされている場合は、Radar の[カスタムルール](https://docs.stripe.com/radar/rules/reference.md#velocity-rules)を使用してこれを実行できます。

### 複数の対策を使用する

正当なトラフィックに悪影響を与えずに不正行為を最大限抑制するには、複数のアプローチを組み合わせて用いると効果的な場合があります。たとえば、CAPTCHA とレート制限を組み合わせて、ある IP アドレスからの初回の支払いを制限なく成功させ、その後数時間、同じ IP アドレスからのリクエストに CAPTCHA 検証を要求することができます。

### 慎重に再試行する

決済の過度な再試行 (督促) は、成功率が低く急激に増加した場合、カードテスティングのように見えることがあります。督促と実際のカードテスティング攻撃は、カード発行会社がリスク基準を厳格化するなど、ビジネスに同様の影響を及ぼす可能性があります。元の攻撃を繰り返すことになるため、カードテスティング攻撃の後に、不正な顧客に設定されたカードの再試行を続けないようにしてください。Stripe の [Smart Retries](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md#non-retryable-decline-codes) では、すでにこの点が考慮されています。

### リスク選好に基づいて保護機能をカスタマイズする

対策を追加するだけでなく、Radarを使用して保護機能をさらに細かく調整できます。Rader には、*セキュリティコード* (The card verification code (CVC) or card verification value (CVV) is a three- or four-digit number printed directly on a card used to verify the entered card number)チェックなどの[銀行の認証](https://docs.stripe.com/radar/rules.md#traditional-bank-checks)に基づいてブロックする構築済みのルールが組み込まれています。

顧客の行動を把握しており、それを基に支払いの利用頻度の詳細をカスタマイズするには、[ご利用のプラン](https://docs.stripe.com/radar/how-radar-works.md#compare-plans)で機能がサポートされている場合は Radar で[カスタムルール](https://docs.stripe.com/radar/rules/reference.md#velocity-rules)を構築できます。

[Radar の基本ガイド](https://stripe.com/guides/radar-rules-101#rules-that-help-prevent-card-testing-or-card-cashing)で例を確認できます。

## See also

- [高度な不正利用検知機能](https://docs.stripe.com/disputes/prevention/advanced-fraud-detection.md)
- [Radar 連携の最適化](https://docs.stripe.com/radar/optimize-risk-factors.md)
- [キーを安全に保管する](https://docs.stripe.com/keys-best-practices.md)
- [Radar の基本ガイド](https://stripe.com/guides/radar-rules-101)
