Resources Docs Free Blog Contact
Log inGet started
Back to Case Studies
E-Commerce · Attack playbook
Mechanics and signals are what Maskbreak sees in production. The arithmetic below is a worked model — swap in your own inputs.

Stolen cards behind residential proxies

The orders look domestic, the billing address matches, and the IP belongs to a consumer ISP two towns from the delivery address. Every blocklist says clean. The chargebacks arrive six weeks later, by which time the goods have shipped and the acquirer has started counting. This is how that traffic is built and where it stops being invisible.

1
Fresh residential IP per order — velocity rules see nothing
0
Blocklist hits on a consumer ISP exit
~6 wks
Typical lag before the first dispute lands
~125ms
Median server-side verdict latency
Threat signals detected
Residential Proxy
VPN
Bot Automation

How the attack works

Card fraud against a D2C store is a logistics problem for the attacker, not a payments one. The card details are already bought. What has to be solved is arriving at checkout looking like a customer the risk engine wants.

Residential proxies solve most of it in one purchase. The order exits through a real consumer connection, ideally geographically near the billing address on the card, so:

  • IP reputation returns clean, because a subscriber line has no history of abuse.
  • IP-to-billing geolocation matches, which is a positive signal in most scoring models — the attack turns one of your defences into evidence in its favour.
  • Velocity rules see nothing, because each order has its own address.
  • AVS passes, because the billing address is the real one from the stolen card. AVS was never a fraud control; it is an address-match control, and it does exactly what it says.

3DS is the genuinely effective layer, and its coverage is uneven: exemptions, out-of-scope regions and frictionless flows all leave gaps, and the liability shift only helps where the challenge actually ran.

Why the usual defences miss it

Nearly every control in a standard stack is asking about the card or the address. Both are genuine. The stolen part is the authority to use them, and no amount of validating the details surfaces that.

The IP is the one field that could carry the signal, and it is the field the proxy was bought to neutralise. A datacenter check is not enough: the entire product being sold to the attacker is "our exits are not datacenters". If your risk engine treats not datacenter as clean, the proxy vendor is being paid specifically to exploit that assumption.

What the verdict returns

One request at checkout, before the authorisation:

{
  "decision": "block",
  "risk_score": 88,
  "reasons": [
    "residential_proxy",
    "automation_detected"
  ],
  "network": {
    "vpn": false,
    "proxy": true,
    "datacenter": false,
    "tor": false,
    "provider": "residential pool"
  },
  "device": {
    "antidetect": false,
    "automation": true,
    "linked_accounts": 6
  }
}

proxy: true with datacenter: false is the residential signature, and it is the field combination the rest of your stack cannot produce. Everything else on the order — card, address, email, geolocation — is designed to look correct, and does.

Where to put the decision

Before the authorisation, not after. A declined authorisation still costs a gateway fee and still tells a card tester which numbers are live, which is the actual product they came for. Screening at the checkout request means a refusal is free and silent.

For the middle band, step up rather than refuse: force 3DS on review, or hold the order for manual release. A genuine customer on a VPN completes a challenge; an operation running volume does not find it worth the friction.

The arithmetic

A worked model. Replace the inputs with yours.

InputModel valueYours
Monthly orders9,000
Average order value€72
Dispute rate2.3%
Chargeback fee charged by your acquirer€18

That is 207 disputes a month: €14,904 in lost goods and revenue plus €3,726 in fees, before any staff time. The compounding cost is the ratio itself — card scheme monitoring programmes are keyed to dispute rate, and entering one brings per-dispute fees and remediation requirements that dwarf the underlying losses. Check your acquirer's current published thresholds rather than any number quoted on a vendor page, including this one.

What the model is really for: it shows the dispute rate is the term to move, not the absolute loss. A store can grow its way out of a loss number and cannot grow its way out of a ratio.

Why residential proxies are hard to stop

A residential proxy network resells access to real consumer connections — sourced through SDK bundling in free apps, browser extensions, or outright compromise, with varying degrees of consent from the person whose line it is. The address genuinely belongs to an ISP subscriber, which is why the reputation answer is truthfully clean.

Detection therefore cannot come from the address's history. It comes from knowing the networks as operators: which ranges are being resold, how exits rotate, and what the routing looks like from the outside. That is a maintained intelligence problem rather than a list lookup, and it is the reason a static blocklist download will never solve this. More in the residential proxy detection guide.

Screen your own checkout

A verdict before the authorisation, so a refusal costs no gateway fee. Free tier: 1,000 requests per hour, no card.

Get Free API Key
Fraud BriefOnce a month · no spam · unsubscribe anytime
Get the new VPN, proxy & bot patterns we see each month
Short, technical breakdowns of what fraudsters changed last month — written for engineers, not marketers.