All articles Network & IP

IPv6 Fraud Signals: Why /64 Prefixes Beat Single Addresses for Risk Scoring

An IPv6 device can cycle through billions of unique source addresses in a day without any proxy at all. If your fraud rules count events per IP address, IPv6 quietly makes every attacker look brand new on every request.

IPv4 gave a device roughly one address at a time, so per-IP counting was crude but workable. IPv6 hands each connection a 128-bit address from an enormous allocation, and privacy extensions (RFC 4941) rotate the host portion continuously. The address you saw a minute ago is gone. Rules written for IPv4 silently stop working.

The /64 is the real unit of identity

The key insight: ISPs almost always assign a /64 prefix (or larger, like a /56 or /48) to a single subscriber line or device. Everything inside that /64 belongs to the same customer. So the address rotates, but the prefix does not.

That reframes everything:

  • Aggregate to the prefix. Count signups, logins, and abuse events per /64, not per full address. A device burning through a million addresses collapses back into one /64.
  • Watch the allocation size. A residential line gets a /64 or /56. A hosting provider may route a /48 or /32 and spray addresses across it. The prefix length an ASN advertises is itself a risk hint.
  • Reputation lives at the prefix. Build blocklists and reputation history keyed on /64 (and roll up to /48 for hosting ranges). A per-address blocklist in IPv6 is worthless within hours.

IPv6-specific abuse patterns

Fraudsters have learned the gaps. Watch for these:

  1. Intra-/64 rotation. Hundreds of accounts, each from a different address but all inside one /64. This is one actor pretending to be a crowd. Easy to catch once you aggregate.
  2. Hosting /48 spraying. Cloud and VPS providers get large blocks. An attacker on a single VPS can present thousands of “distinct” addresses. Datacenter-versus-ISP classification on the prefix cuts through it.
  3. Dual-stack evasion. A user connects over IPv4 for signup and IPv6 for login (or vice versa) to fragment their trail. Correlating the two requires an identifier that is independent of network layer.

That last point is where IP alone always loses. The fix is a stable device identity that survives IPv4-to-IPv6 hops and address rotation entirely.

Pairing IPv6 with device identity

Prynt resolves IPv6 to its /64 (and hosting ranges to their routed prefix), classifies the owning ASN as residential, mobile, or datacenter, and attaches a stable visitorId that does not change when the address rotates. A device that flips through ten thousand IPv6 addresses still returns one visitorId, so your velocity and reputation rules keep working exactly as they did under IPv4. Explore how VPN and proxy detection extends to IPv6 prefixes and dual-stack egress.

Practical rules to adopt now:

  • Normalize before you count. Truncate every IPv6 source to its /64 at ingest, then apply velocity logic to the normalized value.
  • Classify the prefix owner. Score mobile and residential prefixes softly; treat datacenter/hosting prefixes as elevated risk regardless of how fresh the address looks.
  • Correlate across stacks. Join IPv4 and IPv6 sessions on visitorId so a dual-stack switch does not reset an attacker’s history.
  • Alert on impossible prefix churn. One visitorId appearing across dozens of unrelated /64s in different ASNs within minutes is a proxy or emulator signal, not a real subscriber.

Migrating existing rules to prefixes

If your logging pipeline still stores full IPv6 addresses, retrofitting is straightforward. Add a normalization step that truncates each source to its /64 at ingest and stores both values, the full address for forensics and the prefix for logic. Rewrite velocity, reputation, and rate-limit lookups to key on the prefix. Backfill historical data by re-normalizing stored addresses so your baselines stay comparable. Teams that do this typically find their IPv6 false-positive rate drops immediately, because rules that were treating every rotated address as a new subject suddenly collapse those addresses back into the handful of prefixes that actually represent distinct subscribers.

Don’t over-block prefixes either

Aggregation cuts both ways. Some carrier deployments and CGNAT-over-IPv6 setups place multiple subscribers behind shared prefixes, so a /64 can occasionally represent more than one household. As with IPv4 CGNAT, prefer device-level challenges over hard prefix blocks, and let the visitorId decide who actually gets stopped.

IPv6 adoption is past the tipping point on mobile and climbing fast on broadband. Teams still counting events per full address are already blind to a large slice of traffic. Move to prefix-level scoring backed by device identity and IPv6 becomes just another network layer, not a hole in your defenses.

Want to see /64 aggregation and visitorId stability in action? Start free on the pricing page and test IPv6 traffic against your own rules.

Try it free

Prynt is device intelligence with a free tier — visitor IDs, bot & fraud Smart Signals, and behavioral biometrics, powered by a cross-site network. Start free.

Keep reading