<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Peakhour.IO - Threat Intelligence</title><link href="https://www.peakhour.io/" rel="alternate"></link><link href="https://www.peakhour.io/feeds/tag/threat-intelligence.atom.xml" rel="self"></link><id>https://www.peakhour.io/</id><updated>2026-08-03T10:30:00+10:00</updated><entry><title>A Proxy Takedown Is Not a Security Control</title><link href="https://www.peakhour.io/blog/proxy-takedown-is-not-security-control/" rel="alternate"></link><published>2026-08-03T09:00:00+10:00</published><updated>2026-08-03T10:30:00+10:00</updated><author><name>AC</name></author><id>tag:www.peakhour.io,2026-08-03:/blog/proxy-takedown-is-not-security-control/</id><summary type="html">&lt;p&gt;Proxy-network enforcement can reduce supply and protect device owners. Your application still needs current intelligence, behaviour correlation, route-specific controls, and measured request decisions.&lt;/p&gt;</summary><content type="html">&lt;p&gt;A residential proxy network is disrupted on Tuesday. On Wednesday, a password-spraying campaign is still reaching your login route through consumer IP addresses. The takedown changed upstream supply. It did not stop the campaign at your edge.&lt;/p&gt;
&lt;p&gt;Legal action, platform enforcement, domain seizures, malware removal, and industry coordination matter. They can protect device owners, remove capacity, raise operating costs, and expose relationships that were previously difficult to see. They do not inspect the request currently approaching your application or decide whether it should be allowed to change an account.&lt;/p&gt;
&lt;p&gt;That is the boundary security and fraud teams need to keep clear. A takedown is an ecosystem intervention. A provider label is time-bound intelligence. A request decision is a control in the path of the work being attempted.&lt;/p&gt;
&lt;p&gt;The first article in this series compares &lt;a href="/blog/ipidea-netnut-proxy-takedowns/"&gt;what the IPIDEA and NetNut actions changed&lt;/a&gt;. The second examines &lt;a href="/blog/when-proxy-network-dies-ips-survive/"&gt;why a network can disappear while its former IP inventory remains visible elsewhere&lt;/a&gt;. This final article starts after enforcement: when the network has changed, the headlines have moved on, and the application still needs to handle live traffic.&lt;/p&gt;
&lt;h2&gt;Disruption Changes the Network, Not the Destination's Job&lt;/h2&gt;
&lt;p&gt;Google's January 2026 &lt;a href="https://cloud.google.com/blog/topics/threat-intelligence/disrupting-largest-residential-proxy-network"&gt;IPIDEA disruption&lt;/a&gt; combined legal action against control and marketing domains, intelligence sharing, and Google Play Protect enforcement. Google said the action significantly degraded the network and reduced its available device pool by millions. It also warned that reseller agreements created overlap between exit pools and made definitive attribution difficult.&lt;/p&gt;
&lt;p&gt;In July, Google took &lt;a href="https://cloud.google.com/blog/topics/threat-intelligence/google-continued-disruption-residential-proxy-networks"&gt;coordinated action against NetNut&lt;/a&gt;. Google said it disabled accounts and services used for command and control, shared intelligence, and used Play Protect against applications incorporating known NetNut SDKs. It estimated the network at a minimum of two million devices and reported 316 distinct threat clusters using suspected NetNut exits during one week in June.&lt;/p&gt;
&lt;p&gt;Those are Google's findings and estimates, not a claim that every address associated with either provider was malicious. They still show why enforcement deserves support. Reducing compromised supply helps the people whose connections were being used and makes abuse infrastructure more expensive.&lt;/p&gt;
&lt;p&gt;The destination's exposure is different. Google also said that operators affected by the earlier IPIDEA disruption began buying capacity from competitors and acting as resellers. A storefront can lose part of its own pool while continuing to sell access sourced elsewhere. Buyers can move as well. Demand, tooling, accounts, target lists, and attack behaviour do not disappear with a control domain.&lt;/p&gt;
&lt;p&gt;If your production rule is &lt;code&gt;provider = IPIDEA&lt;/code&gt;, the disruption may make that rule less accurate precisely when the incident looks most successful.&lt;/p&gt;
&lt;h2&gt;Expect Migration Before You Expect Silence&lt;/h2&gt;
&lt;p&gt;Post-disruption network-layer observations reinforce that warning, but they need careful attribution. Lumen's Black Lotus Labs reported from its own backbone telemetry that IPIDEA lost traffic and victim population after the January action, then rebuilt infrastructure and recovered. The same &lt;a href="https://www.lumen.com/blog/en-us/symbiotic-parasites-the-modern-proxy-ecosystem"&gt;Black Lotus Labs proxy-ecosystem report&lt;/a&gt; describes backend connections and resale relationships across several networks.&lt;/p&gt;
&lt;p&gt;That report reflects Lumen's visibility, detection methods, and assessments. It is not a complete census of the internet, and an infrastructure relationship does not prove that every request, exit, or customer belongs to one named operator. Its operational lesson is narrower and useful: supplier and reseller relationships can change faster than a static provider label.&lt;/p&gt;
&lt;p&gt;After a disruption, assume four kinds of movement until evidence shows otherwise:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;existing exits reconnect through replacement infrastructure;&lt;/li&gt;
&lt;li&gt;a provider buys or resells another pool;&lt;/li&gt;
&lt;li&gt;customers shift to a different storefront or whitelabel service;&lt;/li&gt;
&lt;li&gt;the same operator rotates through new IPs while keeping its browser, credentials, request sequence, and target set.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The defender's task is not to guess the next brand name. It is to keep the intelligence current and preserve enough behavioural continuity to recognise the work after the address changes.&lt;/p&gt;
&lt;h2&gt;Rebaseline the Intelligence&lt;/h2&gt;
&lt;p&gt;A disruption date should trigger a data review, not an automatic claim of coverage.&lt;/p&gt;
&lt;p&gt;Take a pre-action baseline by route: request volume, proxy prevalence, provider attribution, challenge completion, authentication outcomes, blocks, &lt;code&gt;429&lt;/code&gt; responses, transaction completion, origin work, analyst review, and support contacts. Then compare the same measures immediately after the action and as the market adapts.&lt;/p&gt;
&lt;p&gt;Refresh feeds and internal observations on their own collection cadence. Do not merge a historical provider association into a permanent property of the IP. For each proxy or network result, retain:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;observed_at
indicator or network value
provider attribution, if any
attribution source and dataset version
confidence and reason
first_seen and last_seen where available
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;observed_at&lt;/code&gt; matters because a residential address can leave a pool, return to a different subscriber, or appear under another reseller. Confidence matters because “seen as an exit” and “attributed to this provider” are different claims. Provider attribution should be allowed to decay, be superseded, or remain unknown.&lt;/p&gt;
&lt;p&gt;This is the provenance contract described in &lt;a href="/blog/residential-proxy-decision-logging/"&gt;What a Residential Proxy Decision Log Should Contain&lt;/a&gt;. Keep the current request, the time-bound observation, the policy revision, the selected action, and the outcome connected. A retrospective feed correction should not silently rewrite what the control knew at decision time.&lt;/p&gt;
&lt;h2&gt;Correlate the Actor's Work Across IP Rotation&lt;/h2&gt;
&lt;p&gt;IP rotation is meant to break IP-only memory. Build continuity from the parts of the operation that are harder or more expensive to change together.&lt;/p&gt;
&lt;p&gt;Useful correlation keys include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;account, tenant, API credential, session, or target object;&lt;/li&gt;
&lt;li&gt;credential reuse and failure outcomes across many accounts;&lt;/li&gt;
&lt;li&gt;versioned TLS, HTTP, browser, or device fingerprint cohorts;&lt;/li&gt;
&lt;li&gt;route order, timing, retry behaviour, and automation cadence;&lt;/li&gt;
&lt;li&gt;checkout, promotion, recovery, or payment-instrument patterns;&lt;/li&gt;
&lt;li&gt;request cost and repeated origin or database work.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;None of those fields proves identity by itself. A common browser fingerprint can group many legitimate users, and an account can be shared. The value comes from agreement across independent observations and from the route being protected.&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/residential-proxy-detection-apis-without-javascript/"&gt;Residential Proxy Detection for APIs Without JavaScript&lt;/a&gt; applies the same principle to machine traffic: use network and protocol evidence in the request path, then combine it with the API identities and outcomes already available. Do not make browser JavaScript a prerequisite for detecting rotation against an API.&lt;/p&gt;
&lt;h2&gt;Keep the Action Route-Specific&lt;/h2&gt;
&lt;p&gt;The takedown does not tell you what to do with a request. Neither does the proxy flag. As &lt;a href="/blog/proxy-flag-is-not-a-security-policy/"&gt;A Proxy Flag Is Not a Security Policy&lt;/a&gt; explains, the signal should change how much corroboration or friction a request needs, not select one global response.&lt;/p&gt;
&lt;p&gt;Use the action that fits the route and the cost of error:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Allow&lt;/strong&gt; low-risk activity when the session and behaviour are consistent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Log&lt;/strong&gt; new or uncertain intelligence while measuring the local population.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Challenge&lt;/strong&gt; an interactive client when it can provide more evidence and has a safe recovery path.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rate limit&lt;/strong&gt; repeated or expensive behaviour across the account, client cohort, route, token, and outcome keys that survive IP rotation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step up&lt;/strong&gt; authentication or transaction verification when the request can transfer account control or value.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Block&lt;/strong&gt; when evidence is strong, harm is current, and a narrower action cannot protect the route.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Account creation, login, password reset, checkout, and public APIs have different identities and failure modes. &lt;a href="/blog/route-specific-residential-proxy-controls/"&gt;Five Routes, Five Residential Proxy Decisions&lt;/a&gt; provides a concrete policy split. The important post-disruption change is to tune each contract with current observations rather than adding a site-wide deny rule for yesterday's provider.&lt;/p&gt;
&lt;h2&gt;Measure Protection and Customer Cost Together&lt;/h2&gt;
&lt;p&gt;An enforcement event can make a threat-intelligence chart fall without improving an application's outcome. A provider-labelled cohort may shrink because attribution changed. Attackers may reduce request rate, move to a new pool, or switch routes. Legitimate customers may still be caught behind shared networks.&lt;/p&gt;
&lt;p&gt;Measure the control where the business feels it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;successful login, recovery, checkout, signup, and API completion;&lt;/li&gt;
&lt;li&gt;confirmed abuse, account loss, fraud, scraping, and costly operations;&lt;/li&gt;
&lt;li&gt;challenge presentation, completion, failure, and abandonment;&lt;/li&gt;
&lt;li&gt;blocks and limits overturned by analysts;&lt;/li&gt;
&lt;li&gt;origin work and application cost avoided;&lt;/li&gt;
&lt;li&gt;support contacts, time to resolution, and exception volume;&lt;/li&gt;
&lt;li&gt;policy changes, rollbacks, and rules past their review date.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Support cost is part of control cost. If a policy creates a queue of customers who cannot recover accounts, the team needs to see that beside the reduction in suspicious requests. &lt;a href="/products/residential-proxy-detection/"&gt;Peakhour Residential Proxy Detection&lt;/a&gt; keeps the proxy signal in the live web and API decision. &lt;a href="/products/bot-management/"&gt;Bot Management&lt;/a&gt; and &lt;a href="/products/advanced-rate-limiting/"&gt;Advanced Rate Limiting&lt;/a&gt; add behavioural and route-aware controls, while &lt;a href="/products/api-security/"&gt;API Security&lt;/a&gt; protects machine-facing operations without assuming an interactive browser.&lt;/p&gt;
&lt;p&gt;The objective is a measurable change in harmful outcomes without an unacceptable change in legitimate completion.&lt;/p&gt;
&lt;h2&gt;Questions to Ask a Security or Fraud Vendor&lt;/h2&gt;
&lt;p&gt;Post-disruption due diligence should test operational evidence, not invite another pool-size claim.&lt;/p&gt;
&lt;p&gt;Ask:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Do you retain &lt;code&gt;observed_at&lt;/code&gt;, source, dataset or detector version, confidence, and provider-attribution reason separately?&lt;/li&gt;
&lt;li&gt;How quickly can a provider label decay or change after infrastructure, reseller, or ownership movement?&lt;/li&gt;
&lt;li&gt;Can you show what changed in your coverage after the IPIDEA and NetNut actions, including misses and attribution uncertainty?&lt;/li&gt;
&lt;li&gt;Can your controls correlate behaviour across rotating IPs without treating a fingerprint as a person?&lt;/li&gt;
&lt;li&gt;Can we set different allow, log, challenge, rate-limit, step-up, and block policies by route and API operation?&lt;/li&gt;
&lt;li&gt;Does API detection work in the request path without a JavaScript lookup or a second application call?&lt;/li&gt;
&lt;li&gt;Will the decision record show the inputs, policy revision, reason codes, action, and later outcome?&lt;/li&gt;
&lt;li&gt;Can we compare security outcomes with customer completion, support cases, analyst overturns, and origin cost?&lt;/li&gt;
&lt;li&gt;Who owns an emergency rule, when does it expire, and how quickly can we roll it back?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A credible answer should expose limits. If the vendor cannot distinguish an enforcement event, a provider association, and a request decision, it will be difficult for your team to do so during an incident.&lt;/p&gt;
&lt;h2&gt;Keep the Boundary Honest&lt;/h2&gt;
&lt;p&gt;Takedowns are necessary work. They protect consumers and disrupt infrastructure at a scale an individual destination cannot reach. They should continue.&lt;/p&gt;
&lt;p&gt;Your application still has to judge the request in front of it.&lt;/p&gt;
&lt;p&gt;Refresh the intelligence. Keep its time, source, attribution, and confidence. Follow behaviour across address changes. Apply a route-specific action. Record what happened next, including the customer's cost.&lt;/p&gt;
&lt;p&gt;Enforcement can reduce the supply of abusive infrastructure. Only a control on the destination's current request path can protect the account, transaction, or API operation being attempted now.&lt;/p&gt;</content><category term="Security"></category><category term="Residential Proxies"></category><category term="Bot Management"></category><category term="Fraud Prevention"></category><category term="Threat Intelligence"></category><category term="Account Protection"></category></entry><entry><title>When a Proxy Network Dies but Its IPs Survive</title><link href="https://www.peakhour.io/blog/when-proxy-network-dies-ips-survive/" rel="alternate"></link><published>2026-08-03T08:30:00+10:00</published><updated>2026-08-03T10:30:00+10:00</updated><author><name>AC</name></author><id>tag:www.peakhour.io,2026-08-03:/blog/when-proxy-network-dies-ips-survive/</id><summary type="html">&lt;p&gt;A proxy takedown can erase a brand without removing all of its former exit addresses. Here is what post-takedown IP overlap proves, what it cannot prove, and the sourcing evidence buyers should demand.&lt;/p&gt;</summary><content type="html">&lt;p&gt;A residential proxy network goes dark. Its domains are seized, its control systems are disrupted and its branded pool almost disappears. Two weeks later, many of the same public IP addresses appear through other proxy services.&lt;/p&gt;
&lt;p&gt;Did the takedown fail? Did the same devices move? Were several providers selling the same supply all along?&lt;/p&gt;
&lt;p&gt;The honest answer is narrower: the address inventory overlapped across time. That is valuable evidence, but it is not device identity, ownership or motive.&lt;/p&gt;
&lt;p&gt;This distinction matters to security and fraud teams deciding what to do with traffic. It also matters to buyers, auditors and researchers trying to establish whether a proxy provider controls the supply chain it describes.&lt;/p&gt;
&lt;h2&gt;One Address Sits Above Several Relationships&lt;/h2&gt;
&lt;p&gt;The destination website sees the last layer in a longer chain:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;device -&amp;gt; public IP -&amp;gt; SDK or supplier -&amp;gt; proxy pool -&amp;gt; reseller -&amp;gt; buyer -&amp;gt; destination
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Each arrow represents a separate relationship.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;device&lt;/strong&gt; may be a phone, laptop, streaming box, household gateway or server. Software on it, or elsewhere on the same network, sends a buyer's traffic out through a &lt;strong&gt;public IP&lt;/strong&gt; assigned by an ISP or mobile carrier.&lt;/p&gt;
&lt;p&gt;An &lt;strong&gt;SDK or supplier&lt;/strong&gt; enrols that capacity. A &lt;strong&gt;proxy pool&lt;/strong&gt; makes it selectable. A &lt;strong&gt;reseller&lt;/strong&gt; may buy the service upstream and sell it under another name. A &lt;strong&gt;buyer&lt;/strong&gt; chooses a location or session through an API. The &lt;strong&gt;destination&lt;/strong&gt; sees a request from the exit address, not this commercial history.&lt;/p&gt;
&lt;p&gt;Those layers do not map one-to-one. Several devices can share one public address through a household router or carrier-grade NAT. One device can receive different addresses over time. One supplier can feed several pools. A pool can combine direct supply with upstream inventory. A reseller may not know which device, supplier or SDK produced a particular session.&lt;/p&gt;
&lt;p&gt;Our article on &lt;a href="/blog/bandwidth-sharing-residential-proxy-supply-chain/"&gt;how bandwidth sharing feeds residential proxy networks&lt;/a&gt; covers the ways capacity enters this chain. The question here is different: what can we infer when a named network disappears but addresses associated with it remain visible elsewhere?&lt;/p&gt;
&lt;h2&gt;What the NetNut Measurement Found&lt;/h2&gt;
&lt;p&gt;On 2 July 2026, Google, the FBI, Lumen and other partners took action against the NetNut residential proxy network, also known as Popa. Our &lt;a href="/blog/ipidea-netnut-proxy-takedowns/"&gt;comparison of the IPIDEA and NetNut actions&lt;/a&gt; separates the controls and public claims involved. &lt;a href="https://cloud.google.com/blog/topics/threat-intelligence/google-continued-disruption-residential-proxy-networks"&gt;Google said&lt;/a&gt; it disabled accounts and services used for command and control, shared technical intelligence, and updated Play Protect to disable applications known to contain NetNut SDKs. Google estimated that the network included at least two million devices and said it had high confidence that multiple proxy brands white-labelled NetNut capacity.&lt;/p&gt;
&lt;p&gt;Layer3 Intel then published a useful post-event measurement. Its &lt;a href="https://layer3intel.com/blog/measuring-the-netnut-takedown"&gt;NetNut takedown analysis&lt;/a&gt; says the number of unique NetNut exit IPs it observed per hour fell by &lt;strong&gt;99.92%&lt;/strong&gt; by 5 July. At the brand or gateway layer, that is a decisive decline.&lt;/p&gt;
&lt;p&gt;The cross-network result was less absolute. Layer3 Intel took IPv4 addresses it had observed through NetNut in the 30 days before the shutdown and checked whether they appeared through other networks during the following 14 days. Among addresses seen through NetNut in the final one to two days, &lt;strong&gt;78.81% reappeared&lt;/strong&gt; elsewhere.&lt;/p&gt;
&lt;p&gt;The researchers also tried to account for ordinary churn. They applied reappearance rates from a 4 June placebo cutoff to the July cohort. On that basis, they expected about 17.96 million recent addresses to reappear and observed 16.90 million. The difference produced a baseline-adjusted estimate of &lt;strong&gt;about 1.06 million IP addresses removed from the wider proxy ecosystem beyond normal churn&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;These measurements support three bounded findings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NetNut's branded, observable exit service collapsed.&lt;/li&gt;
&lt;li&gt;Much of the recent public-address inventory associated with NetNut was observable through other proxy networks after the disruption.&lt;/li&gt;
&lt;li&gt;Reappearance was lower than the selected June baseline, consistent with a real takedown effect beyond ordinary address churn.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is already operationally important. A provider name can disappear while some of the address inventory remains commercially reachable.&lt;/p&gt;
&lt;h2&gt;An IP Match Is Not a Device Match&lt;/h2&gt;
&lt;p&gt;The same measurement does not prove that the same physical device survived, moved between suppliers or carried two SDKs.&lt;/p&gt;
&lt;p&gt;Public addresses are assigned to connections, not permanently engraved on devices. DHCP leases expire. Mobile subscribers move between network gateways. Consumer routers reconnect. Carrier-grade NAT lets many subscribers share public addresses from a provider-controlled pool. &lt;a href="https://www.rfc-editor.org/rfc/rfc6598"&gt;RFC 6598&lt;/a&gt; documents shared address space used by service providers for CGNAT, but the ambiguity exists outside that range too: the destination only sees the translated public address.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;203.0.113.x&lt;/code&gt; appears through Network A before a cutoff and Network B afterwards, several explanations fit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the same device was available through both networks;&lt;/li&gt;
&lt;li&gt;different devices behind the same household or carrier address were enrolled;&lt;/li&gt;
&lt;li&gt;an ISP reassigned the address to a different subscriber;&lt;/li&gt;
&lt;li&gt;a shared upstream supplied both pools;&lt;/li&gt;
&lt;li&gt;one provider resold another provider's capacity;&lt;/li&gt;
&lt;li&gt;the enumeration system attributed one of the observations incorrectly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;IP overlap increases confidence that address inventory is shared or recycled across the market. It does not identify which explanation is correct for any one address.&lt;/p&gt;
&lt;p&gt;It also does not prove supplier ownership. A provider may own infrastructure, contract directly with a supplier, buy capacity through an intermediary, or combine all three. Nor does overlap prove that a device owner did not consent. Consent belongs to a specific person, device, software version, disclosure and time. An IP address contains none of those records.&lt;/p&gt;
&lt;p&gt;Most importantly, overlap does not prove motive. It can show that a buyer's request travelled through an observed exit. It cannot establish what the supplier, reseller or provider knew, why a buyer selected the route, or whether the destination request was benign or abusive.&lt;/p&gt;
&lt;p&gt;Google's earlier &lt;a href="https://cloud.google.com/blog/topics/threat-intelligence/disrupting-largest-residential-proxy-network"&gt;IPIDEA investigation&lt;/a&gt; reached beyond address overlap. It analysed applications, Windows binaries, SDK code, command infrastructure and shared server pools, and paired that technical work with platform and legal action. Even then, Google noted that overlaps between exit nodes made definitive quantification and attribution difficult. That is the right standard: use IP observations as one part of a multi-layer attribution, not as a shortcut through the layers.&lt;/p&gt;
&lt;h2&gt;Read the 1.06 Million Estimate as an Estimate&lt;/h2&gt;
&lt;p&gt;Layer3 Intel's analysis is stronger than a simple before-and-after count because it recognises ordinary churn and uses an age-matched comparison. Its scale and high-frequency observation also give it a useful view of the market.&lt;/p&gt;
&lt;p&gt;The public methodology still leaves material uncertainty:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Enumeration is proprietary.&lt;/strong&gt; The post describes the volume and timing of observations, but does not publish the complete sampling system, provider coverage, request selection, deduplication rules or validation set. Readers cannot independently reproduce the population from the article alone.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;An IP is a noisy unit.&lt;/strong&gt; Dynamic addressing and CGNAT break a stable link between address, subscriber and device. Counting distinct IPv4 addresses can overstate devices and obscure shared use.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The windows choose what can reappear.&lt;/strong&gt; The source cohort covers 30 days; the follow-up covers 14. Shorter or longer windows would change both the raw overlap and the churn model.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;There is one published placebo cutoff.&lt;/strong&gt; A single June comparison is useful, but it does not show the normal week-to-week distribution, seasonal effects or whether that period was representative.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No confidence intervals are published.&lt;/strong&gt; The 1.06 million figure is presented as a point estimate. The post does not provide uncertainty bounds, sensitivity analysis or an error rate for network attribution.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The counterfactual is observational.&lt;/strong&gt; The difference from baseline is consistent with the takedown removing capacity. Other simultaneous supplier, demand, enforcement or measurement changes could contribute.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;None of these limits makes the result useless. They set its resolution. “About 1.06 million fewer addresses reappeared than this baseline predicted” is supported by the published method. “Exactly 1.06 million devices were removed” is not.&lt;/p&gt;
&lt;h2&gt;What a Sourcing Claim Can Responsibly Prove&lt;/h2&gt;
&lt;p&gt;A vendor can responsibly prove facts about processes and records it controls.&lt;/p&gt;
&lt;p&gt;It can show which entity contracted each direct supplier, which software package enrolled a device, what disclosure was presented, how affirmative consent was recorded, how withdrawal works, which versions were active, and whether a buyer's session can be traced to that evidence. It can document reseller dependencies, prohibit undisclosed sub-supply, test compliance and publish exceptions.&lt;/p&gt;
&lt;p&gt;A policy page can prove that a policy exists. A contract can prove that parties accepted terms. Neither proves that every active exit followed the policy.&lt;/p&gt;
&lt;p&gt;“Ethically sourced” is therefore too broad unless the provider defines the claim and its coverage. Does it apply only to a proprietary pool? To upstream suppliers? To every session sold by resellers? Does consent come from the device user, the account holder, the network owner or all relevant parties? How quickly is an exit removed after withdrawal?&lt;/p&gt;
&lt;p&gt;The strongest claim is session-level and time-bound: for this delivered connection, the provider can trace the supply path to a named enrolment mechanism and current evidence, subject to stated audit limitations. Anything less should be described at its actual scope.&lt;/p&gt;
&lt;h2&gt;What Auditors and Buyers Should Request&lt;/h2&gt;
&lt;p&gt;Do not ask only whether sourcing is ethical. Ask for evidence that follows the chain:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a current inventory of direct suppliers, upstream pools and white-label dependencies;&lt;/li&gt;
&lt;li&gt;the percentage of delivered traffic covered by direct, auditable sourcing rather than policy language alone;&lt;/li&gt;
&lt;li&gt;SDK names, package hashes, versions, distribution channels and signed build provenance;&lt;/li&gt;
&lt;li&gt;the exact user disclosure and consent event, including timestamp, software version and withdrawal path;&lt;/li&gt;
&lt;li&gt;proof that the person giving consent had authority over the device and network connection;&lt;/li&gt;
&lt;li&gt;controls for CGNAT, reassigned addresses, duplicate exits and concurrent appearance across providers;&lt;/li&gt;
&lt;li&gt;session-level lineage from buyer request to pool, supplier and enrolment record, sampled by an independent auditor;&lt;/li&gt;
&lt;li&gt;contractual limits on sub-suppliers, plus evidence that those limits are tested;&lt;/li&gt;
&lt;li&gt;complaint, removal and incident records, including time to disable an exit across every downstream reseller;&lt;/li&gt;
&lt;li&gt;methodology for advertised pool size, unique-IP counts and active-device counts, with uncertainty and deduplication rules;&lt;/li&gt;
&lt;li&gt;independent test results, exceptions and remediation, not only a clean summary statement.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Buyers should also keep their own record: product and upstream named at purchase time, contract revision, stated sourcing basis, session identifiers where available, destination and purpose, and the control used to prevent abuse. A provider's assurance does not transfer accountability for how the buyer uses the route.&lt;/p&gt;
&lt;h2&gt;Defenders Still Have a Request to Judge&lt;/h2&gt;
&lt;p&gt;Post-takedown research can improve proxy intelligence. It cannot turn an IP address into a verdict.&lt;/p&gt;
&lt;p&gt;An address that reappears across pools may deserve closer observation, especially on login, account recovery, checkout or expensive APIs. The action should still depend on route, account state, client consistency, behaviour and recent outcomes. That is why &lt;a href="/blog/proxy-flag-is-not-a-security-policy/"&gt;a proxy flag is not a security policy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Keep the provenance of the observation as well. Record which network label was seen, when it was observed, which dataset and version supplied it, what other evidence changed the action, and what happened next. Our guide to &lt;a href="/blog/residential-proxy-decision-logging/"&gt;residential proxy decision logging&lt;/a&gt; sets out that operating record.&lt;/p&gt;
&lt;p&gt;A takedown can kill a service without retiring every address that passed through it. The surviving IPs tell us that the market has shared, changing inventory. To say who supplied it, whether a device owner consented, or why a request was sent, we have to follow the rest of the chain.&lt;/p&gt;
&lt;p&gt;For the destination, the work continues with the request. The final article in this series explains why &lt;a href="/blog/proxy-takedown-is-not-security-control/"&gt;a proxy takedown is not a security control&lt;/a&gt; and what security and fraud teams should rebaseline after a disruption.&lt;/p&gt;</content><category term="Residential Proxies"></category><category term="Residential Proxies"></category><category term="Threat Intelligence"></category><category term="Fraud Prevention"></category><category term="Supply Chain"></category><category term="Bot Management"></category><category term="Security Research"></category></entry><entry><title>Public Fingerprint Databases Are Not Ground Truth</title><link href="https://www.peakhour.io/blog/public-fingerprint-databases-are-not-ground-truth/" rel="alternate"></link><published>2026-07-13T09:28:00+10:00</published><updated>2026-07-13T09:28:00+10:00</updated><author><name>AC</name></author><id>tag:www.peakhour.io,2026-07-13:/blog/public-fingerprint-databases-are-not-ground-truth/</id><summary type="html">&lt;p&gt;We reviewed the main public fingerprint resources. The formats are open, but current application labels and auditable ground truth remain scarce.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Network fingerprint formats are public. Reliable labels are not.&lt;/p&gt;
&lt;p&gt;We reviewed the main public JA3, JA4, TLS, TCP, HTTP, SSH, JARM, DHCP, operating-system and service-fingerprint resources. The result was not one large ecosystem of interchangeable databases. It was a set of much narrower things: small mapping samples, old signature lists, active-probe rules, malware feeds, account services and a large observatory whose TLS records are almost entirely unlabelled.&lt;/p&gt;
&lt;p&gt;That is not a criticism of the maintainers. It is a warning about what happens after a fingerprint field reaches a dashboard. A precise-looking value invites a precise-looking name. The evidence behind that name may be a controlled capture, a best guess from 2018, a community submission or a malware sandbox observation that was never compared with benign traffic.&lt;/p&gt;
&lt;p&gt;Those labels should not produce the same decision.&lt;/p&gt;
&lt;h2&gt;The largest public TLS database has almost no TLS labels&lt;/h2&gt;
&lt;p&gt;The relaunched &lt;a href="https://tlsfingerprint.io/"&gt;TLS Fingerprint Observatory&lt;/a&gt; is an unusually valuable public resource. It exposes more than a million distinct TLS fingerprints and billions of passive observations from the University of Colorado Boulder and Merit Network. Records can include first and last seen, counts by source, cipher suites, extensions, groups, signature algorithms, ALPN and other parsed fields.&lt;/p&gt;
&lt;p&gt;At the time of our review, essentially none of the TLS fingerprints had implementation labels.&lt;/p&gt;
&lt;p&gt;That fact makes the observatory more credible, not less. The collection can answer prevalence and protocol-evolution questions without pretending it knows which application created every handshake. Its smaller QUIC corpus has several hundred controlled labels, often tied to generated capture files.&lt;/p&gt;
&lt;p&gt;The limitation is equally clear. A prevalence database cannot become a browser or malware classifier merely because its records are detailed. The labels require another source of truth.&lt;/p&gt;
&lt;h2&gt;The public JA4 database is a sample, not JA4DB&lt;/h2&gt;
&lt;p&gt;FoxIO maintains &lt;a href="https://ja4db.foxio.io/"&gt;JA4DB&lt;/a&gt;, a hosted service covering several JA4-family methods, applications and detection guidance. It is the closest current service to a multi-surface mapping database.&lt;/p&gt;
&lt;p&gt;The public file most people can inspect is different. FoxIO's &lt;a href="https://github.com/FoxIO-LLC/ja4/blob/main/ja4plus-mapping.csv"&gt;&lt;code&gt;ja4plus-mapping.csv&lt;/code&gt;&lt;/a&gt; contains 66 data rows. Only 35 carry a core JA4 value; the other JA4+ columns are sparser.&lt;/p&gt;
&lt;p&gt;That file is useful documentation. It shows how an application, library, device, operating system and several network observations can sit in one row. It is not broad enough to serve as a general browser, bot or malware catalogue.&lt;/p&gt;
&lt;p&gt;The hosted service is now account-oriented. Its bulk-data licence and per-record provenance are not publicly clear enough to call it an open database. Core JA4's BSD licence does not automatically cover the hosted labels, and it does not cover all other JA4+ methods under the same terms.&lt;/p&gt;
&lt;h2&gt;The open JA3 mappings are mostly historical&lt;/h2&gt;
&lt;p&gt;Salesforce's archived &lt;a href="https://github.com/salesforce/ja3/tree/master/lists"&gt;JA3 lists&lt;/a&gt; contain roughly 159 application mappings for macOS and Linux. The repository describes them as example or best-guess material. They have no per-row capture date, client version, source PCAP or confidence.&lt;/p&gt;
&lt;p&gt;Trisul's &lt;a href="https://github.com/trisulnsm/ja3prints"&gt;ja3prints&lt;/a&gt; is larger: 626 JSONL mappings assembled from Salesforce examples, malware-traffic-analysis captures, FingerprinTLS and browser additions. Its last update was in 2018, and the combined dataset does not have a clear repository-wide licence.&lt;/p&gt;
&lt;p&gt;The historical &lt;a href="https://github.com/LeeBrotherston/tls-fingerprinting"&gt;FingerprinTLS&lt;/a&gt; database preserves richer ClientHello fields than JA3, which makes it valuable for research. It is now archived, and many records lack consistent capture dates, operating-system evidence and confidence.&lt;/p&gt;
&lt;p&gt;These sources still matter. They document the lineage and can help with an older incident. They should not silently become current application ground truth.&lt;/p&gt;
&lt;h2&gt;Rules are not observations&lt;/h2&gt;
&lt;p&gt;Some of the strongest public databases are actually matcher corpora.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nmap/nmap/blob/master/nmap-os-db"&gt;Nmap's OS database&lt;/a&gt; contains actively maintained probe-response signatures. &lt;a href="https://github.com/nmap/nmap/blob/master/nmap-service-probes"&gt;Nmap service probes&lt;/a&gt; combine test payloads with regular expressions that extract products and versions. &lt;a href="https://github.com/rapid7/recog"&gt;Rapid7 Recog&lt;/a&gt; maintains XML signatures for SSH, HTTP, SNMP, favicons, JARM and other surfaces. p0f's &lt;code&gt;p0f.fp&lt;/code&gt; contains passive TCP and HTTP traits, although its upstream corpus is now dated.&lt;/p&gt;
&lt;p&gt;These resources can be excellent at their stated job. A rule match means that a response satisfied the signature. It does not establish population prevalence, exclusivity or a particular process behind the connection.&lt;/p&gt;
&lt;p&gt;Flattening a matcher result into the same table as an observed application mapping discards that distinction.&lt;/p&gt;
&lt;h2&gt;Malware observation is not malware identity&lt;/h2&gt;
&lt;p&gt;SSLBL publishes a &lt;a href="https://sslbl.abuse.ch/blacklist/"&gt;JA3 blacklist&lt;/a&gt; under CC0. It records fingerprints observed while analysing more than 25 million malware PCAPs and offers both CSV and Suricata rules.&lt;/p&gt;
&lt;p&gt;SSLBL also says the values were not tested against known-good traffic and may cause substantial false positives.&lt;/p&gt;
&lt;p&gt;That warning is part of the data. A row supports this statement:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;malware samples assigned this family label produced this JA3
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;It does not support this statement:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;every connection with this JA3 is that malware
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Shared libraries make the second statement unsafe. Cisco's &lt;a href="https://arxiv.org/abs/2009.01939"&gt;destination-context research&lt;/a&gt; examined public malware JA3 indicators and found that many were more strongly associated with benign processes in its enterprise observations.&lt;/p&gt;
&lt;p&gt;VirusTotal's behavioural pivots have the same boundary. Files sharing a JA4 may be related malware, come from one developer or merely use the same TLS library. The pivot begins an investigation; it does not finish one.&lt;/p&gt;
&lt;h2&gt;Mercury publishes the schema, not the labels&lt;/h2&gt;
&lt;p&gt;Cisco Mercury offers one of the clearest public designs for a fingerprint knowledge base. Its &lt;a href="https://github.com/cisco/mercury/blob/main/doc/resources.md"&gt;resource documentation&lt;/a&gt; describes mappings from fingerprints to candidate processes, process counts, operating-system observations and destinations. The classifier can use destination address, port and server name to rank those candidates.&lt;/p&gt;
&lt;p&gt;The current Cisco-labelled resource database is not in the public repository.&lt;/p&gt;
&lt;p&gt;This is an honest architectural boundary. The NPF format, collector and database contract are inspectable. The production labels depend on continuously collected endpoint, network and malware-analysis data that Cisco does not publish as an open corpus.&lt;/p&gt;
&lt;h2&gt;What is actually missing&lt;/h2&gt;
&lt;p&gt;The public ecosystem does not mainly need another hash list. It needs evidence attached to each mapping:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the raw or reversible fingerprint;&lt;/li&gt;
&lt;li&gt;the method and implementation version;&lt;/li&gt;
&lt;li&gt;an independent label source;&lt;/li&gt;
&lt;li&gt;capture position and environment;&lt;/li&gt;
&lt;li&gt;first and last seen;&lt;/li&gt;
&lt;li&gt;observation count;&lt;/li&gt;
&lt;li&gt;competing labels;&lt;/li&gt;
&lt;li&gt;confidence and review state;&lt;/li&gt;
&lt;li&gt;a usable dataset licence.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Almost none of the public resources supplies all of these. Some optimise for scale, some for current labels, some for inspectability and some for rules that can run in an existing scanner.&lt;/p&gt;
&lt;p&gt;The practical response is to preserve those categories. Use an observatory for prevalence, a matcher corpus for response signatures, a threat feed for malware observations, and a mapping database for candidate labels. Then validate the result against local evidence before it reaches enforcement.&lt;/p&gt;
&lt;p&gt;The full directory is in &lt;a href="/learning/fingerprinting/public-network-fingerprint-databases/"&gt;Public Network Fingerprint Databases and What They Cover&lt;/a&gt;. The evaluation checklist is in &lt;a href="/learning/fingerprinting/how-to-evaluate-a-fingerprint-database/"&gt;How to Evaluate a Network Fingerprint Database&lt;/a&gt;.&lt;/p&gt;</content><category term="Security"></category><category term="Network Fingerprinting"></category><category term="TLS Fingerprinting"></category><category term="JA3"></category><category term="JA4"></category><category term="Threat Intelligence"></category></entry></feed>