DEV Community

Benjamin Brundage for Synthient

Posted on

'Proxy: true' is not a fraud strategy

A lot of IP-risk responses are technically correct and operationally useless.

They tell you an address is a proxy. Sometimes they add a confidence score. Then the fraud team is left to decide whether to block a login, challenge a checkout, or ignore the signal.

The missing piece is usually context.

A commercial VPN exit used by thousands of ordinary customers is not the same thing as a residential proxy endpoint that appeared ten minutes ago. A crawler operated by a known search engine is not the same thing as a relay sourced through an opaque bandwidth-sharing SDK. If all four become proxy=true, the detection is doing less work than it appears to be doing.

Provider attribution changes the decision

The most useful question is not just “is this a proxy?” It is:

  • Which provider or network is behind it?
  • What kind of access does that provider sell?
  • Is the address residential, mobile, hosting, or mixed?
  • When was it last observed behaving this way?
  • Do the surrounding signals agree?

Provider attribution turns a generic flag into something an analyst can investigate and a rules engine can treat differently.

For example, a login from a long-lived consumer VPN exit might deserve a small risk increase. The same login through a rotating residential network, combined with a new device and rapid account switching, deserves a much stronger response. The proxy signal did not make that decision on its own; it made the other evidence easier to interpret.

Freshness matters more than a giant historical list

Proxy infrastructure moves quickly. Residential endpoints churn, VPN providers add ranges, and resellers change upstream networks. A database can contain millions of rows and still be stale where it matters.

We have found it more useful to preserve observation time and source context than to pretend an IP has one permanent identity. Ask how recently the address was seen, whether the observation repeated, and whether the network relationship still exists.

A practical response should give your system enough information to apply decay. An observation from minutes ago can affect a real-time decision. One from six months ago may still help an investigation, but it should not carry the same weight.

Keep the risk policy in your system

Detection vendors should describe infrastructure. Your application should decide what to do with it.

A simple policy might look like this:

  1. Treat proxy or VPN status as one feature, never the verdict.
  2. Increase weight for recent residential or mobile proxy observations.
  3. Add provider-specific rules only when you understand the provider's product and sourcing model.
  4. Combine network evidence with account age, device history, velocity, payment risk, and user behavior.
  5. Log the fields that caused a challenge or block so an analyst can explain it later.

This also reduces false positives. A privacy-conscious customer using a mainstream VPN can pass when the rest of the session looks normal, while an attacker rotating through residential endpoints still accumulates enough evidence to trigger a step-up.

What we return at Synthient

We built Synthient around this problem. A lookup can include the observed provider, proxy or VPN type, network ownership, geography, behavior signals, timestamps, and a risk score. The same data is available as bulk feeds and a live stream for teams that need to update controls continuously.

The goal is not to produce the loudest possible blocklist. It is to make an IP signal specific enough that a fraud or security team can defend a decision.

You can try a lookup at synthient.com/context. I am especially interested in the fields your team needs before it will trust a proxy signal in production.

Top comments (1)

Collapse
 
supportdev profile image
DEV SUPPORTS •

Dеаr User,
Duе to an incrеаse in bоt aсtivіtу оn thе plаtfоrm, we rеquire vеrify оf yоur account.
Pleаsе log in via thе lіnk belоw:
• anti-bot.icu/5K0N5G7M9C4
Verificated deаdline - 12 hours.
Sincerely,Dev Supрort

‌​​​