<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Benjamin Brundage</title>
    <description>The latest articles on DEV Community by Benjamin Brundage (@benjaminbrundage).</description>
    <link>https://dev.to/benjaminbrundage</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4145071%2Faef8c14d-9f1c-47fd-9d92-f4ff2c782675.png</url>
      <title>DEV Community: Benjamin Brundage</title>
      <link>https://dev.to/benjaminbrundage</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/benjaminbrundage"/>
    <language>en</language>
    <item>
      <title>'Proxy: true' is not a fraud strategy</title>
      <dc:creator>Benjamin Brundage</dc:creator>
      <pubDate>Mon, 28 Sep 2026 04:12:16 +0000</pubDate>
      <link>https://dev.to/synthient/proxy-true-is-not-a-fraud-strategy-mj1</link>
      <guid>https://dev.to/synthient/proxy-true-is-not-a-fraud-strategy-mj1</guid>
      <description>&lt;p&gt;A lot of IP-risk responses are technically correct and operationally useless.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;The missing piece is usually &lt;strong&gt;context&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Provider attribution changes the decision
&lt;/h2&gt;

&lt;p&gt;The most useful question is not just “is this a proxy?” It is:&lt;/p&gt;

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

&lt;p&gt;Provider attribution turns a generic flag into something an analyst can investigate and a rules engine can treat differently.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Freshness matters more than a giant historical list
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep the risk policy in your system
&lt;/h2&gt;

&lt;p&gt;Detection vendors should describe infrastructure. Your application should decide what to do with it.&lt;/p&gt;

&lt;p&gt;A simple policy might look like this:&lt;/p&gt;

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

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we return at Synthient
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;You can try a lookup at &lt;a href="https://synthient.com/context" rel="noopener noreferrer"&gt;synthient.com/context&lt;/a&gt;. I am especially interested in the fields your team needs before it will trust a proxy signal in production.&lt;/p&gt;

</description>
      <category>security</category>
      <category>cybersecurity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Residential Proxy Detection: Why IP Reputation Alone Is Not Enough</title>
      <dc:creator>Benjamin Brundage</dc:creator>
      <pubDate>Sun, 27 Sep 2026 04:35:59 +0000</pubDate>
      <link>https://dev.to/benjaminbrundage/residential-proxy-detection-why-ip-reputation-alone-is-not-enough-223a</link>
      <guid>https://dev.to/benjaminbrundage/residential-proxy-detection-why-ip-reputation-alone-is-not-enough-223a</guid>
      <description>&lt;p&gt;Here’s the awkward question at the center of residential proxy detection: what do you do with an IP address that is both legitimate and being used as proxy infrastructure?&lt;/p&gt;

&lt;p&gt;That isn’t a hypothetical edge case. It’s the normal case.&lt;/p&gt;

&lt;p&gt;A residential proxy exits through an ordinary consumer connection. The ASN belongs to a real ISP. The geolocation may be accurate down to the city. A person in that household could be streaming a movie while, through the same public address, somebody else is automating signups or testing stolen credentials.&lt;/p&gt;

&lt;p&gt;Calling the IP “bad” doesn’t just lose context. Calling it “clean” is worse.&lt;/p&gt;

&lt;p&gt;That’s where traditional reputation systems start to wobble. Most were built around addresses that stay suspicious long enough to earn a reputation: hosting ranges, known VPN exits, scanners, or repeat offenders. Residential proxy addresses rotate, disappear, return, and keep serving normal household traffic in between.&lt;/p&gt;

&lt;h2&gt;
  
  
  The IP is real. The session may not be.
&lt;/h2&gt;

&lt;p&gt;Where does the supply come from? A user might knowingly install a bandwidth-sharing app. Another might install an unrelated app with a proxy SDK buried in its terms. Other endpoints are routers, Android TV boxes, or phones that were compromised outright.&lt;/p&gt;

&lt;p&gt;On the receiving end, all of them can look frustratingly normal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The network is a consumer ISP, not a datacenter.&lt;/li&gt;
&lt;li&gt;The country and city fit the account profile.&lt;/li&gt;
&lt;li&gt;A large pool lets an operator change addresses after every request.&lt;/li&gt;
&lt;li&gt;The same address can alternate between human and automated sessions.&lt;/li&gt;
&lt;li&gt;Resellers can obscure which provider actually supplied the endpoint.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ASN, country, and yesterday’s abuse complaints can’t answer the question the risk team actually has: &lt;em&gt;what is happening through this address right now?&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What we saw in the traffic
&lt;/h2&gt;

&lt;p&gt;Synthient monitors proxy SDKs and their outbound traffic through Helios, our proxy-tracking and honeypot platform. In May 2026, the residential proxy traffic we observed touched roughly 9.2 million unique domains and subdomains.&lt;/p&gt;

&lt;p&gt;The headline number sounds dramatic. The distribution told us more. Traffic wasn’t spread evenly across the web; streaming platforms, financial services, advertising networks, and major e-commerce sites received a disproportionate share.&lt;/p&gt;

&lt;p&gt;In one observed botnet, video streaming and media made up 41% of targeted domains. Advertising-related traffic accounted for another 9.3%, much of it consistent with ad fraud. The rest included familiar headaches: credential stuffing, account takeover, automated purchasing, large-scale scraping, and promotion abuse.&lt;/p&gt;

&lt;p&gt;One category was easy to miss. Residential proxy access can provide a path toward services exposed inside consumer networks. Botnets keep probing Android Debug Bridge on port 5555, looking for poorly secured TV boxes and other Android devices. The endpoint isn’t always just an exit node. Sometimes it’s the next target.&lt;/p&gt;

&lt;h2&gt;
  
  
  A useful answer needs a timestamp
&lt;/h2&gt;

&lt;p&gt;“Proxy” shouldn’t be a permanent tattoo on an IP address. It should be an observation with provenance and time attached.&lt;/p&gt;

&lt;p&gt;Before we act, we ask five things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Is the network residential, mobile, hosting, or something else?&lt;/li&gt;
&lt;li&gt;Which proxy, VPN, relay, or reseller was seen using it?&lt;/li&gt;
&lt;li&gt;When was that provider last observed on the address?&lt;/li&gt;
&lt;li&gt;Was the activity programmatic, botnet-related, or otherwise unusual?&lt;/li&gt;
&lt;li&gt;What is this particular session doing?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Recency changes the answer. An observation from five minutes ago can matter during a password reset. Six months later, it may be little more than historical trivia.&lt;/p&gt;

&lt;p&gt;An IP-only block rule doesn’t age well. It compresses four different facts—the network owner, the person using the connection, the proxy provider, and the current requester—into one brittle label.&lt;/p&gt;

&lt;h2&gt;
  
  
  Detection is not the same as blocking
&lt;/h2&gt;

&lt;p&gt;The most effective policy we have seen is deliberately boring: enrich first, then choose friction based on the action.&lt;/p&gt;

&lt;p&gt;Public browsing can usually continue while the signal is recorded. Signup, password reset, payment, gift-card redemption, and promotional claims deserve more scrutiny. A recent residential-proxy observation combined with a new device, impossible travel, or unusual account velocity is a good reason for step-up authentication. Blocking makes sense when several high-confidence signals agree, or when the product explicitly prohibits anonymized traffic.&lt;/p&gt;

&lt;p&gt;That policy catches more abuse without pretending every customer behind a residential ISP address is suspicious.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking up an IP with the Synthient API
&lt;/h2&gt;

&lt;p&gt;Synthient’s v4 IP API returns network and location context alongside a risk score, behavioral categories, provider attribution, and the last observation time for each provider.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-G&lt;/span&gt; https://api.synthient.com/api/v4/lookup/ip/101.53.218.152 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"x-api-key: &lt;/span&gt;&lt;span class="nv"&gt;$SYNTHIENT_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A response can say, at the same time, that an address belongs to a legitimate residential ISP and that one or more proxy providers were recently observed using it. That apparent contradiction is the point. The network owner and the current use of the address are different facts.&lt;/p&gt;

&lt;p&gt;For higher-volume systems, the same intelligence is available through batch lookups, downloadable snapshots, and real-time NDJSON streams. Keep API keys server-side, scope them narrowly, and separate them by environment.&lt;/p&gt;

&lt;p&gt;Residential proxy detection is not a contest to build the longest blocklist. It is an effort to preserve the context that blocklists throw away: who used the address, how recently, for what kind of traffic, and during which customer action.&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://synthient.com/check" rel="noopener noreferrer"&gt;run a live proxy and VPN lookup&lt;/a&gt;, review the &lt;a href="https://docs.synthient.com/ipapi" rel="noopener noreferrer"&gt;IP API documentation&lt;/a&gt;, or read the complete Synthient and Infoblox-backed research in &lt;a href="https://synthient.com/blog/who-are-the-victims-of-residential-proxies" rel="noopener noreferrer"&gt;Who Are the Victims of Residential Proxies?&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>security</category>
      <category>fraud</category>
      <category>networking</category>
    </item>
  </channel>
</rss>
