In carding, fraudsters use stolen credit or debit card information to test its validity before using it for large purchases or withdrawals. Card checkers are specialized scripts, bots, or automated tools that perform mass card validation checks. They don't perform actual transactions, but rather send authorization requests to determine whether the card is active, unblocked, and matches the CVV/expiration date.
Checkers are popular because they allow for quick "cleaning" of a database: out of 1,000 live cards, only 10-20% remain. According to industry reports, such attacks generate billions of dollars in losses annually.
These techniques make checkers "invisible" to basic systems, but advanced systems (using ML, like those at Mastercard or HUMAN Security) still detect them using patterns. Open-source frameworks like Selenium with proxy integration are often used for implementation.
The basic principle of how checkers work:
- Data preparation: The attacker downloads a list of "dumps"—databases of cards in the following format: card number, cardholder name, CVV, expiration date, and sometimes address. The data is often purchased on the darknet or stolen from store/bank databases.
- Testing via payment system APIs: The checker connects to the APIs of online stores, services like Stripe, PayPal, or even virtual gift cards (e.g., Amazon, iTunes). Instead of a purchase, the checker initiates:
- Authorization request: A small amount (usually $0.01–$1) so the bank can verify the card without debiting it. If the authorization is successful, the card is considered "live." If it is rejected, it is considered "dead."
- Testing methods:
- Card setup: Add a card to your wallet (e.g. Stripe) without payment.
- Micro-transactions: Automatic purchases of digital goods (gift cards, subscriptions) that can then be cancelled.
- Brute-force options: If part of the data is unknown (for example, CVV), the checker tries options (from 000 to 999).
- Automation: Checkers are powered by bots (using Python, Node.js, or ready-made frameworks like CC Checker), processing thousands of cards per hour. The results are sorted, and live cards are saved for future use (cashout — withdrawal to crypto or purchases with drops).
- Basic validation: Before sending requests, the checker uses the Luhn algorithm — a mathematical algorithm for verifying the card number's checksum. This is a simple checksum: the digits are summed with alternating doublings (modulo 10), and if the sum is a multiple of 10, the number is potentially valid. This doesn't verify the card is genuine, but it does filter out 90% of fake numbers without network requests.
Checkers are popular because they allow for quick "cleaning" of a database: out of 1,000 live cards, only 10-20% remain. According to industry reports, such attacks generate billions of dollars in losses annually.
Algorithms and techniques for detection minimization
Payment systems (Visa, Mastercard, Stripe) actively monitor for suspicious activity: high volumes of microtransactions from a single IP address, repeated refusals, or geo-inconsistencies. To avoid blocking, checkers use "stealth" techniques—a combination of randomization algorithms, behavioral simulation, and network obfuscation. These aren't strict "algorithms" in the sense of ML models, but rather heuristic methods, often implemented in bot code.Key algorithms and techniques:
- Proxy Rotation:
- How it works: The checker automatically changes the IP address for each request or at intervals (every 5-10 requests). Residential proxies (IPs from real devices) or rotating datacenter proxies are used.
- Algorithm: Round-robin (cyclical rotation from a proxy pool) or random selection. For advanced users, exponential backoff: after a failure (timeout or ban), the delay increases exponentially (e.g., 1 sec → 2 sec → 4 sec) to avoid flood detection.
- Effect: Simulates traffic from different users/regions, reducing the risk of IP monitoring. Residential proxies are particularly effective because they appear to be residential traffic.
- Delays and timing randomization (Timing Delays):
- How it works: Random pauses (1–30 seconds) are inserted between requests to avoid creating traffic “waves”.
- Algorithm: Poisson distribution or uniform random for generating delays—these are statistical distributions that mimic natural human behavior (not fixed intervals, but with variation). For example, in Python: time.sleep(random.uniform(5, 15)).
- Effect: Avoids rate-limiting and behavioral analysis in systems like FraudGuard.
- Rotation User-Agent and headers:
- How it works: Changing browser fingerprints (User-Agent, Accept-Language, Referer) from a pool of real values.
- Algorithm: Random shuffle from a database (thousands of rows). Sometimes fingerprint spoofing (masquerading as different devices).
- Effect: Bypasses device fingerprinting and bot detection (e.g. in Cloudflare).
- Geo- and session masking:
- How it works: Proxy selection based on geolocation corresponding to the card address (billing address matching).
- Algorithm: Matching logic — compares IP geolocation with map data; if there is a discrepancy, skip or change the proxy.
- Effect: Reduces flags on AVS (Address Verification System).
- Additional advanced techniques:
- Session hijacking: Using cookies from legitimate sessions to "merge" them with real traffic.
- ML-based evasion: Rarely, but some checkers use simple neural networks to predict "safe" intervals based on historical failures (like reinforcement learning for rotation optimization).
- Low-volume batches: Splitting checks into small batches (10–50 cards per session) with cooldown periods.
These techniques make checkers "invisible" to basic systems, but advanced systems (using ML, like those at Mastercard or HUMAN Security) still detect them using patterns. Open-source frameworks like Selenium with proxy integration are often used for implementation.