
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[ The Cloudflare Blog ]]></title>
        <description><![CDATA[ Get the latest news on how products at Cloudflare are built, technologies used, and join the teams helping to build a better Internet. ]]></description>
        <link>https://blog.cloudflare.com</link>
        <atom:link href="https://blog.cloudflare.com/" rel="self" type="application/rss+xml"/>
        <language>en-us</language>
        <image>
            <url>https://blog.cloudflare.com/favicon.png</url>
            <title>The Cloudflare Blog</title>
            <link>https://blog.cloudflare.com</link>
        </image>
        <lastBuildDate>Fri, 03 Apr 2026 17:06:11 GMT</lastBuildDate>
        <item>
            <title><![CDATA[Introducing Programmable Flow Protection: custom DDoS mitigation logic for Magic Transit customers]]></title>
            <link>https://blog.cloudflare.com/programmable-flow-protection/</link>
            <pubDate>Tue, 31 Mar 2026 13:00:00 GMT</pubDate>
            <description><![CDATA[ Magic Transit customers can now program their own DDoS mitigation logic and deploy it across Cloudflare’s global network. This enables precise, stateful mitigation for custom and proprietary UDP protocols. ]]></description>
            <content:encoded><![CDATA[ <p>We're proud to introduce <a href="https://developers.cloudflare.com/ddos-protection/advanced-ddos-systems/overview/programmable-flow-protection/"><u>Programmable Flow Protection</u></a>: a system designed to let <a href="https://www.cloudflare.com/network-services/products/magic-transit/"><u>Magic Transit</u></a> customers implement their own custom DDoS mitigation logic and deploy it across Cloudflare’s global network. This enables precise, stateful mitigation for custom and proprietary protocols built on UDP. It is engineered to provide the highest possible level of customization and flexibility to mitigate DDoS attacks of any scale. </p><p>Programmable Flow Protection is currently in beta and available to all Magic Transit Enterprise customers for an additional cost. Contact your account team to join the beta or sign up at <a href="https://www.cloudflare.com/en-gb/lp/programmable-flow-protection/"><u>this page</u></a>.</p>
    <div>
      <h3>Programmable Flow Protection is customizable</h3>
      <a href="#programmable-flow-protection-is-customizable">
        
      </a>
    </div>
    <p>Our existing <a href="https://www.cloudflare.com/ddos/"><u>DDoS mitigation systems</u></a> have been designed to understand and protect popular, well-known protocols from DDoS attacks. For example, our <a href="https://developers.cloudflare.com/ddos-protection/advanced-ddos-systems/overview/advanced-tcp-protection/"><u>Advanced TCP Protection</u></a> system uses specific known characteristics about the TCP protocol to issue challenges and establish a client’s legitimacy. Similarly, our <a href="https://blog.cloudflare.com/advanced-dns-protection/"><u>Advanced DNS Protection</u></a> builds a per-customer profile of DNS queries to mitigate DNS attacks. Our generic DDoS mitigation platform also understands common patterns across a variety of other well known protocols, including NTP, RDP, SIP, and many others.</p><p>However, custom or proprietary UDP protocols have always been a challenge for Cloudflare’s DDoS mitigation systems because our systems do not have the relevant protocol knowledge to make intelligent decisions to pass or drop traffic. </p><p>Programmable Flow Protection addresses this gap. Now, customers can write their own <a href="https://ebpf.io/"><u>eBPF</u></a> program that defines what “good” and “bad” packets are and how to deal with them. Cloudflare then runs the program across our entire global network. The program can choose to either drop or challenge “bad” packets, preventing them from reaching the customer’s origin. </p>
    <div>
      <h3>The problem of UDP-based attacks</h3>
      <a href="#the-problem-of-udp-based-attacks">
        
      </a>
    </div>
    <p><a href="https://www.cloudflare.com/learning/ddos/glossary/user-datagram-protocol-udp/"><u>UDP</u></a> is a connectionless transport layer protocol. Unlike TCP, UDP has no handshake or stateful connections. It does not promise that packets will arrive in order or exactly once. UDP instead prioritizes speed and simplicity, and is therefore well-suited for online gaming, VoIP, video streaming, and any other use case where the application requires real-time communication between clients and servers.</p><p>Our DDoS mitigation systems have always been able to detect and mitigate attacks against well-known protocols built on top of UDP. For example, the standard DNS protocol is built on UDP, and each DNS packet has a well-known structure. If we see a DNS packet, we know how to interpret it. That makes it easier for us to detect and drop DNS-based attacks. </p><p>Unfortunately, if we don’t understand the protocol inside a UDP packet’s payload, our DDoS mitigation systems have limited options available at mitigation time. If an attacker <a href="https://www.cloudflare.com/learning/ddos/udp-flood-ddos-attack/"><u>sends a large flood of UDP traffic</u></a> that does not match any known patterns or protocols, Cloudflare can either entirely block or apply a rate limit to the destination IP and port combination. This is a crude “last line of defense” that is only intended to keep the rest of the customer’s network online, and it can be painful in a couple ways. </p><p>First, a block or a generic <a href="https://www.cloudflare.com/learning/bots/what-is-rate-limiting/"><u>rate limit</u></a> does not distinguish good traffic from bad, which means these mitigations will likely cause legitimate clients to experience lag or connection loss — doing the attacker’s job for them! Second, a generic rate limit can be too strict or too lax depending on the customer. For example, a customer who expects to receive 1Gbps of legitimate traffic probably needs more aggressive rate limiting compared to a customer who expects to receive 25Gbps of legitimate traffic.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/L8PZ6eWn9nkpATaNcUinB/b6c12b4be815fbd4e71166b6f0c30329/BLOG-3182_2.png" />
          </figure><p><sup><i>An illustration of UDP packet contents. A user can define a valid payload and reject traffic that doesn’t match the defined pattern.</i></sup></p><p>The Programmable Flow Protection platform was built to address this problem by allowing our customers to dictate what “good” versus “bad” traffic actually looks like. Many of our customers use custom or proprietary UDP protocols that we do not understand — and now we don’t have to.</p>
    <div>
      <h3>How Programmable Flow Protection works</h3>
      <a href="#how-programmable-flow-protection-works">
        
      </a>
    </div>
    <p>In previous blog posts, we’ve described how “flowtrackd”, our <a href="https://blog.cloudflare.com/announcing-flowtrackd/"><u>stateful network layer DDoS mitigation system</u></a>, protects Magic Transit users from complex TCP and DNS attacks. We’ve also described how we use Linux technologies like <a href="https://blog.cloudflare.com/l4drop-xdp-ebpf-based-ddos-mitigations/"><u>XDP</u></a> and <a href="https://blog.cloudflare.com/cloudflare-architecture-and-how-bpf-eats-the-world/"><u>eBPF</u></a> to efficiently mitigate common types of large scale DDoS attacks. </p><p>Programmable Flow Protection combines these technologies in a novel way. With Programmable Flow Protection, a customer can write their own eBPF program that decides whether to pass, drop, or challenge individual packets based on arbitrary logic. A customer can upload the program to Cloudflare, and Cloudflare will execute it on every packet destined to their network. Programs are executed in userspace, not kernel space, which allows Cloudflare the flexibility to support a variety of customers and use cases on the platform without compromising security. Programmable Flow Protection programs run after all of Cloudflare’s existing DDoS mitigations, so users still benefit from our standard security protections. </p><p>There are many similarities between an XDP eBPF program loaded into the Linux kernel and an eBPF program running on the Programmable Flow Protection platform. Both types of programs are compiled down to BPF bytecode. They are both run through a “verifier” to ensure memory safety and verify program termination. They are also executed in a fast, lightweight VM to provide isolation and stability.</p><p>However, eBPF programs loaded into the Linux kernel make use of many Linux-specific “helper functions” to integrate with the network stack, maintain state between program executions, and emit packets to network devices. Programmable Flow Protection offers the same functionality whenever a customer chooses, but with a different API tailored specifically to implement DDoS mitigations. For example, we’ve built helper functions to store state about clients between program executions, perform cryptographic validation, and emit challenge packets to clients. With these helper functions, a developer can use the power of the Cloudflare platform to protect their own network.</p>
    <div>
      <h3>Combining customer knowledge with Cloudflare’s network</h3>
      <a href="#combining-customer-knowledge-with-cloudflares-network">
        
      </a>
    </div>
    <p>Let’s step through an example to illustrate how a customer’s protocol-specific knowledge can be combined with Cloudflare’s network to create powerful mitigations.</p><p>Say a customer hosts an online gaming server on UDP port 207. The game engine uses a proprietary application header that is specific to the game. Cloudflare has no knowledge of the structure or contents of the application header. The customer gets hit by DDoS attacks that overwhelm the game server and players report lag in gameplay. The attack traffic comes from highly randomized source IPs and ports, and the payload data appears to be random as well. </p><p>To mitigate the attack, the customer can use their knowledge of the application header and deploy a Programmable Flow Protection program to check a packet’s validity. In this example, the application header contains a token that is unique to the gaming protocol. The customer can therefore write a program to extract the last byte of the token. The program passes all packets with the correct value present and drops all other traffic:</p>
            <pre><code>#include &lt;linux/ip.h&gt;
#include &lt;linux/udp.h&gt;
#include &lt;arpa/inet.h&gt;

#include "cf_ebpf_defs.h"
#include "cf_ebpf_helper.h"

// Custom application header
struct apphdr {
    uint8_t  version;
    uint16_t length;   // Length of the variable-length token
    uint8_t  token[0]; // Variable-length token
} __attribute__((packed));

uint64_t
cf_ebpf_main(void *state)
{
    struct cf_ebpf_generic_ctx *ctx = state;
    struct cf_ebpf_parsed_headers headers;
    struct cf_ebpf_packet_data *p;

    // Parse the packet headers with provided helper function
    if (parse_packet_data(ctx, &amp;p, &amp;headers) != 0) {
        return CF_EBPF_DROP;
    }

    // Drop packets not destined to port 207
    struct udphdr *udp_hdr = (struct udphdr *)headers.udp;
    if (ntohs(udp_hdr-&gt;dest) != 207) {
        return CF_EBPF_DROP;
    }

    // Get application header from UDP payload
    struct apphdr *app = (struct apphdr *)(udp_hdr + 1);
    if ((uint8_t *)(app + 1) &gt; headers.data_end) {
        return CF_EBPF_DROP;
    }

    // Perform memory checks to satisfy the verifier
    // and access the token safely
    if ((uint8_t *)(app-&gt;token + token_len) &gt; headers.data_end) {
        return CF_EBPF_DROP;
    }

    // Check the last byte of the token against expected value
    uint8_t *last_byte = app-&gt;token + token_len - 1;
    if (*last_byte != 0xCF) {
        return CF_EBPF_DROP;
    }

    return CF_EBPF_PASS;
}</code></pre>
            <p><sup><i>An eBPF program to filter packets according to a value in the application header.</i></sup></p><p>This program leverages application-specific information to create a more targeted mitigation than Cloudflare is capable of crafting on its own. <b>Customers can now combine their proprietary knowledge with the capacity of Cloudflare’s global network to absorb and mitigate massive attacks better than ever before.</b></p>
    <div>
      <h3>Going beyond firewalls: stateful tracking and challenges</h3>
      <a href="#going-beyond-firewalls-stateful-tracking-and-challenges">
        
      </a>
    </div>
    <p>Many pattern checks, like the one performed in the example above, can be accomplished with traditional firewalls. However, programs provide useful primitives that are not available in firewalls, including variables, conditional execution, loops, and procedure calls. But what really sets Programmable Flow Protection apart from other solutions is its ability to statefully track flows and challenge clients to prove they are real. A common type of attack that showcases these abilities is a <i>replay attack</i>.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6Pgo9uUQDY1GTrxAOAOgiK/52c6d6a329cce05ff11ba3e4694313b2/BLOG-3182_3.png" />
          </figure><p>In a replay attack, an attacker repeatedly sends packets that were valid at <i>some</i> point, and therefore conform to expected patterns of the traffic, but are no longer valid in the application’s current context. For example, the attacker could record some of their valid gameplay traffic and use a script to duplicate and transmit the same traffic at a very high rate.</p><p>With Programmable Flow Protection, a user can deploy a program that challenges suspicious clients and drops scripted traffic. We can extend our original example as follows:</p>
            <pre><code>
#include &lt;linux/ip.h&gt;
#include &lt;linux/udp.h&gt;
#include &lt;arpa/inet.h&gt;

#include "cf_ebpf_defs.h"
#include "cf_ebpf_helper.h"

uint64_t
cf_ebpf_main(void *state)
{
    // ...
 
    // Get the status of this source IP (statefully tracked)
    uint8_t status;
    if (cf_ebpf_get_source_ip_status(&amp;status) != 0) {
        return CF_EBPF_DROP;
    }

    switch (status) {
        case NONE:
		// Issue a custom challenge to this source IP
             issue_challenge();
             cf_ebpf_set_source_ip_status(CHALLENGED);
             return CF_EBPF_DROP;


        case CHALLENGED:
		// Check if this packet passes the challenge
		// with custom logic
             if (verify_challenge()) {
                 cf_ebpf_set_source_ip_status(VERIFIED);
                 return CF_EBPF_PASS;
             } else {
                 cf_ebpf_set_source_ip_status(BLOCKED);
                 return CF_EBPF_DROP;
             }


        case VERIFIED:
		// This source IP has passed the challenge
		return CF_EBPF_PASS;

	 case BLOCKED:
		// This source IP has been blocked
		return CF_EBPF_DROP;

        default:
            return CF_EBPF_PASS;
    }


    return CF_EBPF_PASS;
}
</code></pre>
            <p><sup><i>An eBPF program to challenge UDP connections and statefully manage connections. This example has been simplified for illustration purposes.</i></sup></p><p>The program statefully tracks the source IP addresses it has seen and emits a packet with a cryptographic challenge back to unknown clients. A legitimate client running a valid gaming client is able to correctly solve the challenge and respond with proof, but the attacker’s script is not. Traffic from the attacker is marked as “blocked” and subsequent packets are dropped.</p><p>With these new abilities, customers can statefully track flows and make sure only real, verified clients can send traffic to their origin servers. Although we have focused the example on gaming, the potential use cases for this technology extend to any UDP-based protocol.</p>
    <div>
      <h3>Get started today</h3>
      <a href="#get-started-today">
        
      </a>
    </div>
    <p>We’re excited to offer the Programmable Flow Protection feature to Magic Transit Enterprise customers. Talk to your account manager to learn more about how you can enable Programmable Flow Protection to help keep your infrastructure safe.</p><p>We’re still in active development of the platform, and we’re excited to see what our users build next. If you are not yet a Cloudflare customer, let us know if you’d like to protect your network with Cloudflare and Programmable Flow Protection by signing up at this page: <a href="https://www.cloudflare.com/lp/programmable-flow-protection/"><u>https://www.cloudflare.com/lp/programmable-flow-protection/</u></a>.</p> ]]></content:encoded>
            <category><![CDATA[Beta]]></category>
            <category><![CDATA[DDoS]]></category>
            <category><![CDATA[UDP]]></category>
            <category><![CDATA[eBPF]]></category>
            <category><![CDATA[Magic Transit]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">64lPEfE3ML34AycHER46Tz</guid>
            <dc:creator>Anita Tenjarla</dc:creator>
            <dc:creator>Alex Forster</dc:creator>
            <dc:creator>Cody Doucette</dc:creator>
            <dc:creator>Venus Xeon-Blonde</dc:creator>
        </item>
        <item>
            <title><![CDATA[How we mitigated a vulnerability in Cloudflare’s ACME validation logic]]></title>
            <link>https://blog.cloudflare.com/acme-path-vulnerability/</link>
            <pubDate>Mon, 19 Jan 2026 14:00:00 GMT</pubDate>
            <description><![CDATA[ A vulnerability was recently identified in Cloudflare’s automation of certificate validation. Here we explain the vulnerability and outline the steps we’ve taken to mitigate it.  ]]></description>
            <content:encoded><![CDATA[ <p><i>This post was updated on January 20, 2026.</i></p><p>On October 13, 2025, security researchers from <a href="https://fearsoff.org/"><u>FearsOff</u></a> identified and reported a vulnerability in Cloudflare's ACME (Automatic Certificate Management Environment) validation logic that disabled some of the <a href="https://developers.cloudflare.com/waf/"><u>WAF</u></a> features on specific ACME-related paths. The vulnerability was reported and validated through Cloudflare’s <a href="https://hackerone.com/cloudflare?type=team"><u>bug bounty</u></a> program.</p><p>The vulnerability was rooted in how our edge network processed requests destined for the ACME HTTP-01 challenge path (<code><i>/.well-known/acme-challenge/*</i></code>). </p><p>Here, we’ll briefly explain how this protocol works and the action we took to address the vulnerability. </p><p><b>Cloudflare has patched this vulnerability and there is no action necessary for Cloudflare customers.</b> There is no evidence of any malicious actor abusing this vulnerability.</p>
    <div>
      <h3>How ACME works to validate certificates</h3>
      <a href="#how-acme-works-to-validate-certificates">
        
      </a>
    </div>
    <p>ACME is a protocol used to <a href="https://www.cloudflare.com/application-services/solutions/certificate-lifecycle-management/">automate the issuance, renewal, and revocation</a> of <a href="https://www.cloudflare.com/application-services/products/ssl/"><u>SSL/TLS certificates</u></a>. When an HTTP-01 challenge is used to validate domain ownership, a Certificate Authority (CA) will expect to find a validation token at the HTTP path following the format of <i>http://{customer domain}/.well-known/acme-challenge/{token value}</i>. </p><p>If this challenge is used by a certificate order managed by Cloudflare, then Cloudflare will respond on this path and provide the token provided by the CA to the caller. If the token provided does not correlate to a Cloudflare managed order, then this request would be passed on to the customer origin, since they may be attempting to complete domain validation as a part of some other system. Check out the flow below for more details — other use cases are discussed later in the blog post.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6myH4sEuRj4hhBPYiITWsB/9be3e62bdd7001ab1ef9b01db094de5b/BLOG-3067_2.png" />
          </figure>
    <div>
      <h3>The underlying logic flaw </h3>
      <a href="#the-underlying-logic-flaw">
        
      </a>
    </div>
    <p>Certain requests to<i> /.well-known/acme-challenge/*</i> would cause the logic serving ACME challenge tokens to disable WAF features on a challenge request, and allow the challenge request to continue to the origin when it should have been blocked.</p><p>Previously, when Cloudflare was serving a HTTP-01 challenge token, if the path requested by the caller matched a token for an active challenge in our system, the logic serving an ACME challenge token would disable WAF features, since Cloudflare would be directly serving the response. This is done because those features can interfere with the CA’s ability to validate the token values and would cause failures with automated certificate orders and renewals.</p><p>However, in the scenario that the token used was associated with a different zone and not directly managed by Cloudflare, the request would be allowed to proceed onto the customer origin without further processing by WAF rulesets.</p>
    <div>
      <h3>How we mitigated this vulnerability</h3>
      <a href="#how-we-mitigated-this-vulnerability">
        
      </a>
    </div>
    <p>To mitigate this issue, a code change was released. This code change only allows the set of security features to be disabled in the event that the request matches a valid ACME HTTP-01 challenge token for the hostname. In that case, Cloudflare has a challenge response to serve back.</p>
    <div>
      <h3>Cloudflare customers are protected</h3>
      <a href="#cloudflare-customers-are-protected">
        
      </a>
    </div>
    <p>As we noted above,<b> Cloudflare has patched this vulnerability and Cloudflare customers do not need to take any action.</b> In addition, there is no evidence  of any malicious actor abusing this vulnerability.</p>
    <div>
      <h3>Moving quickly with vulnerability transparency</h3>
      <a href="#moving-quickly-with-vulnerability-transparency">
        
      </a>
    </div>
    <p>As always, we thank the external researchers for responsibly disclosing this vulnerability. We encourage the Cloudflare community to submit any identified vulnerabilities to help us continually improve the security posture of our products and platform. </p><p>We also recognize that the trust you place in us is paramount to the success of your infrastructure on Cloudflare. We consider these vulnerabilities with the utmost concern and will continue to do everything in our power to mitigate impact. We deeply appreciate your continued trust in our platform and remain committed not only to prioritizing security in all we do, but also acting swiftly and transparently whenever an issue does arise. </p> ]]></content:encoded>
            <category><![CDATA[Vulnerabilities]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">lHLq8aIK0VMgRiInLXnrw</guid>
            <dc:creator>Hrushikesh Deshpande</dc:creator>
            <dc:creator>Andrew Mitchell</dc:creator>
            <dc:creator>Leland Garofalo</dc:creator>
        </item>
        <item>
            <title><![CDATA[A closer look at a BGP anomaly in Venezuela]]></title>
            <link>https://blog.cloudflare.com/bgp-route-leak-venezuela/</link>
            <pubDate>Tue, 06 Jan 2026 08:00:00 GMT</pubDate>
            <description><![CDATA[ There has been speculation about the cause of a BGP anomaly observed in Venezuela on January 2. We take a look at BGP route leaks, and dive into what the data suggests caused the anomaly in question. ]]></description>
            <content:encoded><![CDATA[ <p>As news unfolds surrounding the U.S. capture and arrest of Venezuelan leader Nicolás Maduro, a <a href="https://loworbitsecurity.com/radar/radar16/?cf_target_id=8EBD08FC8E3F122A23413E8273CF4AF3"><u>cybersecurity newsletter</u></a> examined <a href="https://radar.cloudflare.com/"><u>Cloudflare Radar</u></a> data and took note of a routing leak in Venezuela on January 2.</p><p>We dug into the data. Since the beginning of December there have been eleven route leak events, impacting multiple prefixes, where AS8048 is the leaker. Although it is impossible to determine definitively what happened on the day of the event, this pattern of route leaks suggests that the CANTV (AS8048) network, a popular Internet Service Provider (ISP) in Venezuela, has insufficient routing export and import policies. In other words, the BGP anomalies observed by the researcher could be tied to poor technical practices by the ISP rather than malfeasance.</p><p>In this post, we’ll briefly discuss Border Gateway Protocol (BGP) and BGP route leaks, and then dig into the anomaly observed and what may have happened to cause it. </p>
    <div>
      <h3>Background: BGP route leaks</h3>
      <a href="#background-bgp-route-leaks">
        
      </a>
    </div>
    <p>First, let’s revisit what a <a href="https://blog.cloudflare.com/route-leak-detection-with-cloudflare-radar/"><u>BGP route leak</u></a> is. BGP route leaks cause behavior similar to taking the wrong exit off of a highway. While you may still make it to your destination, the path may be slower and come with delays you wouldn’t otherwise have traveling on a more direct route.</p><p>Route leaks were given a formal definition in <a href="https://datatracker.ietf.org/doc/html/rfc7908"><u>RFC7908</u></a> as “the propagation of routing announcement(s) beyond their intended scope.” Intended scope is defined using <a href="https://en.wikipedia.org/wiki/Pairwise"><u>pairwise</u></a> business relationships between networks. The relationships between networks, which in BGP we represent using <a href="https://en.wikipedia.org/wiki/Autonomous_system_(Internet)"><u>Autonomous Systems (ASes)</u></a>, can be one of the following: </p><ul><li><p>customer-provider: A customer pays a provider network to connect them and their own downstream customers to the rest of the Internet</p></li><li><p>peer-peer: Two networks decide to exchange traffic between one another, to each others’ customers, settlement-free (without payment)</p></li></ul><p>In a customer-provider relationship, the provider will announce <i>all routes to the customer</i>. The customer, on the other hand, will advertise <i>only the routes</i> from their own customers and originating from their network directly.</p><p>In a peer-peer relationship, each peer will advertise to one another <i>only their own routes and the routes of their downstream customers</i>. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/16jXNbH5R5Q4evGm4oRY5p/08d0474000111923f37a7e53b809b5c2/BLOG-3107_2.png" />
          </figure><p>These advertisements help direct traffic in expected ways: from customers upstream to provider networks, potentially across a single peering link, and then potentially back down to customers on the far end of the path from their providers. </p><p>A valid path would look like the following that abides by the <a href="https://ieeexplore.ieee.org/document/6363987"><u>valley-free routing</u></a> rule: </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3qKtxTWTrGcpMm8u3nAjYT/dd19181418076c0e12b6035154639e75/BLOG-3107_3.png" />
          </figure><p>A <b>route leak</b> is a violation of valley-free routing where an AS takes routes from a provider or peer and redistributes them to another provider or peer. For example, a BGP path should never go through a “valley” where traffic goes up to a provider, and back down to a customer, and then up to a provider again. There are different types of route leaks defined in RFC7908, but a simple one is the Type 1: Hairpin route leak between two provider networks by a customer. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4XdHugzuQAVhucuninsUfB/43912258386debc0500e3ceb7c8abab2/BLOG-3107_4.png" />
          </figure><p>In the figure above, AS64505 takes routes from one of its providers and redistributes them to their other provider. This is unexpected, since we know providers should not use their customer as an intermediate IP transit network. AS64505 would become overwhelmed with traffic, as a smaller network with a smaller set of backbone and network links than its providers. This can become very impactful quickly. </p>
    <div>
      <h3>Route leak by AS8048 (CANTV)</h3>
      <a href="#route-leak-by-as8048-cantv">
        
      </a>
    </div>
    <p>Now that we have reminded ourselves what a route leak is in BGP, let’s examine what was hypothesized  in <a href="https://loworbitsecurity.com/radar/radar16/?cf_history_state=%7B%22guid%22%3A%22C255D9FF78CD46CDA4F76812EA68C350%22%2C%22historyId%22%3A106%2C%22targetId%22%3A%2251107FD345D9B86C319316904C23F966%22%7D"><u>the newsletter post</u></a>. The post called attention to a <a href="https://radar.cloudflare.com/routing/as8048#bgp-route-leaks"><u>few route leak anomalies</u></a> on Cloudflare Radar involving AS8048. On the <a href="https://radar.cloudflare.com/routing/anomalies/leak-462460"><u>Radar page</u></a> for this leak, we see this information:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7d1gGdOtSEvPxciyfNswhw/619965acdc1a7a4d3eafbd99b0ccb9f3/BLOG-3107_5.png" />
          </figure><p>We see the leaker AS, which is AS8048 — CANTV, Venezuela’s state-run telephone and Internet Service Provider. We observe that routes were taken from one of their providers AS6762 (Sparkle, an Italian telecom company) and then redistributed to AS52320 (V.tal GlobeNet, a Colombian network service provider). This is definitely a route leak. </p><p>The newsletter suggests “BGP shenanigans” and posits that such a leak could be exploited to collect intelligence useful to government entities. </p><p>While we can’t say with certainty what caused this route leak, our data suggests that its likely cause was more mundane. That’s in part because BGP route leaks happen all of the time, and they have always been part of the Internet — most often for reasons that aren’t malicious.</p><p>To understand more, let’s look closer at the impacted prefixes and networks. The prefixes involved in the leak were all originated by AS21980 (Dayco Telecom, a Venezuelan company):</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/42cmmWdskKqGw7bByd3tGs/c3841ffa205b241798593b91194d25b1/BLOG-3107_6.png" />
          </figure><p>The prefixes are also all members of the same 200.74.224.0/20 <a href="https://www.cloudflare.com/learning/network-layer/what-is-a-subnet/"><u>subnet</u></a>, as noted by the newsletter author. Much more intriguing than this, though, is the relationship between the originating network AS21980 and the leaking network AS8048: AS8048 is a <i>provider</i> of AS21980. </p><p>The customer-provider relationship between AS8048 and AS21980 is visible in both <a href="https://radar.cloudflare.com/routing/as21980#connectivity"><u>Cloudflare Radar</u></a> and <a href="https://bgp.tools/as/21980#upstreams"><u>bgp.tools</u></a> AS relationship interference data. We can also get a confidence score of the AS relationship using the monocle tool from <a href="https://bgpkit.com/"><u>BGPKIT</u></a>, as you see here: </p><p><code>➜  ~ monocle as2rel 8048 21980
Explanation:
- connected: % of 1813 peers that see this AS relationship
- peer: % where the relationship is peer-to-peer
- as1_upstream: % where ASN1 is the upstream (provider)
- as2_upstream: % where ASN2 is the upstream (provider)</code></p><p><code>Data source: https://data.bgpkit.com/as2rel/as2rel-latest.json.bz2</code></p><p><code>╭──────┬───────┬───────────┬──────┬──────────────┬──────────────╮
│ asn1 │ asn2  │ connected │ peer │ as1_upstream │ as2_upstream │
├──────┼───────┼───────────┼──────┼──────────────┼──────────────┤
│ 8048 │ 21980 │    9.9%   │ 0.6% │     9.4%     │ 0.0%         │
╰──────┴───────┴───────────┴──────┴──────────────┴──────────────╯</code></p><p>While only 9.9% of route collectors see these two ASes as adjacent, almost all of the paths containing them reflect AS8048 as an upstream provider for AS21980, meaning confidence is high in the provider-customer relationship between the two.</p><p>Many of the leaked routes were also heavily prepended with AS8048, meaning it would have been <a href="https://blog.cloudflare.com/prepends-considered-harmful/"><u>potentially</u></a> <i>less</i> attractive for routing when received by other networks. <b>Prepending</b> is the padding of an AS more than one time in an outbound advertisement by a customer or peer, to attempt to switch traffic away from a particular circuit to another. For example, many of the paths during the leak by AS8048 looked like this: “52320,8048,8048,8048,8048,8048,8048,8048,8048,8048,23520,1299,269832,21980”. </p><p>You can see that AS8048 has sent their AS multiple times in an advertisement to AS52320, because by means of BGP loop prevention the path would never actually travel in and out of AS8048 multiple times in a row. A non-prepended path would look like this: “52320,8048,23520,1299,269832,21980”. </p><p>If AS8048 was intentionally trying to become a <a href="https://en.wikipedia.org/wiki/Man-in-the-middle_attack"><u>man-in-the-middle (MITM)</u></a> for traffic, why would they make the BGP advertisement less attractive instead of <i>more </i>attractive? Also, why leak prefixes to try and MITM traffic when you’re <i>already</i> a provider for the downstream AS anyway? That wouldn’t make much sense. </p><p>The leaks from AS8048 also surfaced in multiple separate announcements, each around an hour apart on January 2, 2026 between 15:30 and 17:45 UTC, suggesting they may have been having network issues that surfaced in a routing policy issue or a convergence-based mishap. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4LrT6YC3j7V9p6ab0OYEmA/cebeba76857f7976d8dd4912371c1c43/BLOG-3107_7.png" />
          </figure><p>It is also noteworthy that these leak events begin over twelve hours prior to the <a href="https://www.nytimes.com/2026/01/03/world/americas/venezuela-maduro-capture-trump.html"><u>U.S. military strikes in Venezuela</u></a>. Leaks that impact South American networks <a href="https://radar.cloudflare.com/routing/br#routing-anomalies"><u>are common</u></a>, and we have no reason to believe, based on timing or the other factors I have discussed, that the leak is related to the capture of Maduro several hours later.</p><p>In fact, looking back the past two months, we can see plenty of leaks by AS8048 that are just like this one, meaning this is not a new BGP anomaly:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2Md8BdHtP1GIDkyNT8PTbD/3915068dc6f47046665410b665e29853/BLOG-3107_8.png" />
          </figure><p>You can see above in the history of Cloudflare Radar’s route leak alerting pipeline that AS8048 is no stranger to Type 1 hairpin route leaks. Since the beginning of December alone there have been <b>eleven route leak events</b> where AS8048 is the leaker.</p><p>From this we can draw a more innocent possible explanation about the route leak: AS8048 may have configured too loose of export policies facing at least one of their providers, AS52320. And because of that, redistributed routes belong to their customer even when the direct customer BGP routes were missing. If their export policy toward AS52320 only matched on <a href="https://blog.cloudflare.com/monitoring-as-sets-and-why-they-matter/"><u>IRR-generated</u></a> prefix list and not a <i>customer</i> BGP <a href="https://datatracker.ietf.org/doc/html/rfc1997"><u>community</u></a> tag, for example, it would make sense why an indirect path toward AS6762 was leaked back upstream by AS8048. </p><p>These types of policy errors are something <a href="https://datatracker.ietf.org/doc/rfc9234/"><u>RFC9234</u></a> and the Only-to-Customer (OTC) attribute would help with considerably, by coupling BGP more tightly to customer-provider and peer-peer roles, when supported <a href="https://blog.apnic.net/2025/09/05/preventing-route-leaks-made-simple-bgp-roleplay-with-junos-rfc-9234/"><u>by all routing vendors</u></a>. I will save the more technical details on RFC9234 for a follow-up blog post.</p>
    <div>
      <h3>The difference between origin and path validation</h3>
      <a href="#the-difference-between-origin-and-path-validation">
        
      </a>
    </div>
    <p>The newsletter also calls out as “notable” that Sparkle (AS6762) does not implement <a href="https://rpki.cloudflare.com/"><u>RPKI (Resource Public Key Infrastructure)</u></a> Route Origin Validation (ROV). While it is true that AS6762 appears to have an <a href="https://stats.labs.apnic.net/rpki/AS6762?a=6762&amp;c=IT&amp;ll=1&amp;ss=0&amp;mm=1&amp;vv=1&amp;w=7&amp;v=0"><u>incomplete deployment</u></a> of ROV and is flagged as “unsafe” on <a href="http://isbgpsafeyet.com"><u>isbgpsafeyet.com</u></a> <a href="https://isbgpsafeyet.com/#faq"><u>because of it</u></a>, origin validation would not have prevented this BGP anomaly in Venezuela. </p><p>It is important to separate BGP anomalies into two categories: route misoriginations, and path-based anomalies. Knowing the difference between the two helps to understand the solution for each. Route misoriginations, often called BGP hijacks, are meant to be fixed by RPKI Route Origin Validation (ROV) by making sure the originator of a prefix is who rightfully owns it. In the case of the BGP anomaly described in this post, the origin AS was correct as AS21980 and <b>only</b> the path was anomalous. This means ROV wouldn’t help here.</p><p>Knowing that, we need path-based validation. This is what <a href="https://datatracker.ietf.org/doc/draft-ietf-sidrops-aspa-verification/"><u>Autonomous System Provider Authorization (ASPA)</u></a>, an upcoming draft standard in the IETF, is going to provide. The idea is similar to RPKI Route Origin Authorizations (ROAs) and ROV: create an ASPA object that defines a list of authorized providers (upstreams) for our AS, and everyone will use this to invalidate route leaks on the Internet at various vantage points. Using a concrete example, AS6762 is a <a href="https://en.wikipedia.org/wiki/Tier_1_network"><u>Tier-1</u></a> transit-free network, and they would use the special reserved “AS0” member in their ASPA signed object to communicate to the world that they have no upstream providers, only lateral peers and customers. Then, AS52320, the other provider of AS8048, would see routes from their customer with “6762” in the path and reject them by performing an ASPA verification process.</p><p>ASPA is based on RPKI and is exactly what would help prevent route leaks similar to the one we observed in Venezuela.</p>
    <div>
      <h3>A safer BGP, built together </h3>
      <a href="#a-safer-bgp-built-together">
        
      </a>
    </div>
    <p>We felt it was important to offer an alternative explanation for the BGP route leak by AS8048 in Venezuela that was observed on Cloudflare Radar. It is helpful to understand that route leaks are an expected side effect of BGP historically being based entirely on trust and carefully-executed business relationship-driven intent. </p><p>While route leaks could be done with malicious intent, the data suggests this event may have been an accident caused by a lack of routing export and import policies that would prevent it. This is why to have a safer BGP and Internet we need to work together and drive adoption of RPKI-based ASPA, for which <a href="https://www.ripe.net/manage-ips-and-asns/resource-management/rpki/aspa/"><u>RIPE recently released object creation</u></a>, on the wide Internet. It will be a collaborative effort, just like RPKI has been for origin validation, but it will be worth it and prevent BGP incidents such as the one in Venezuela. </p><p>In addition to ASPA, we can all implement simpler mechanisms such as <a href="https://github.com/job/peerlock"><u>Peerlock</u></a> and <a href="https://archive.nanog.org/sites/default/files/Snijders_Everyday_Practical_Bgp.pdf"><u>Peerlock-lite</u></a> as operators, which sanity-checks received paths for obvious leaks. One especially promising initiative is the adoption of <a href="https://datatracker.ietf.org/doc/rfc9234/"><u>RFC9234</u></a>, which should be used in addition to ASPA for preventing route leaks with the establishing of BGP roles and a new Only-To-Customer (OTC) attribute. If you haven’t already asked your routing vendors for an implementation of RFC9234 to be on their roadmap: <i>please</i> <i>do</i>. You can help make a big difference.</p><p><i>Update: Sparkle (AS6762) finished RPKI ROV deployment and </i><a href="https://github.com/cloudflare/isbgpsafeyet.com/pull/829"><i><u>was marked safe</u></i></a><i> on February 3, 2026.</i></p> ]]></content:encoded>
            <category><![CDATA[BGP]]></category>
            <category><![CDATA[RPKI]]></category>
            <category><![CDATA[Routing]]></category>
            <category><![CDATA[Routing Security]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">4WOdNrtTGvlrQDV7Apw8R1</guid>
            <dc:creator>Bryton Herdes</dc:creator>
        </item>
        <item>
            <title><![CDATA[One IP address, many users: detecting CGNAT to reduce collateral effects]]></title>
            <link>https://blog.cloudflare.com/detecting-cgn-to-reduce-collateral-damage/</link>
            <pubDate>Wed, 29 Oct 2025 13:00:00 GMT</pubDate>
            <description><![CDATA[ IPv4 scarcity drives widespread use of Carrier-Grade Network Address Translation, a practice in ISPs and mobile networks that places many users behind each IP address, along with their collected activity and volumes of traffic. We introduce the method we’ve developed to detect large-scale IP sharing globally and mitigate the issues that result.  ]]></description>
            <content:encoded><![CDATA[ <p>IP addresses have historically been treated as stable identifiers for non-routing purposes such as for geolocation and security operations. Many operational and security mechanisms, such as blocklists, rate-limiting, and anomaly detection, rely on the assumption that a single IP address represents a cohesive<b>, </b>accountable<b> </b>entity or even, possibly, a specific user or device.</p><p>But the structure of the Internet has changed, and those assumptions can no longer be made. Today, a single IPv4 address may represent hundreds or even thousands of users due to widespread use of <a href="https://en.wikipedia.org/wiki/Carrier-grade_NAT"><u>Carrier-Grade Network Address Translation (CGNAT)</u></a>, VPNs, and proxy<b> </b>middleboxes. This concentration of traffic can result in <a href="https://blog.cloudflare.com/consequences-of-ip-blocking/"><u>significant collateral damage</u></a> – especially to users in developing regions of the world – when security mechanisms are applied without taking into account the multi-user nature of IPs.</p><p>This blog post presents our approach to detecting large-scale IP sharing globally. We describe how we <a href="https://www.cloudflare.com/learning/ai/how-to-secure-training-data-against-ai-data-leaks/">build reliable training data</a>, and how detection can help avoid unintentional bias affecting users in regions where IP sharing is most prevalent. Arguably it's those regional variations that motivate our efforts more than any other. </p>
    <div>
      <h2>Why this matters: Potential socioeconomic bias</h2>
      <a href="#why-this-matters-potential-socioeconomic-bias">
        
      </a>
    </div>
    <p>Our work was initially motivated by a simple observation: CGNAT is a likely unseen source of bias on the Internet. Those biases would be more pronounced wherever there are more users and few addresses, such as in developing regions. And these biases can have profound implications for user experience, network operations, and digital equity.</p><p>The reasons are understandable for many reasons, not least because of necessity. Countries in the developing world often have significantly fewer available IPs, and more users. The disparity is a historical artifact of how the Internet grew: the largest blocks of IPv4 addresses were allocated decades ago, primarily to organizations in North America and Europe, leaving a much smaller pool for regions where Internet adoption expanded later. </p><p>To visualize the IPv4 allocation gap, we plot country-level ratios of users to IP addresses in the figure below. We take online user estimates from the <a href="https://data.worldbank.org/indicator/IT.NET.USER.ZS"><u>World Bank Group</u></a> and the number of IP addresses in a country from Regional Internet Registry (RIR) records. The colour-coded map that emerges shows that the usage of each IP address is more concentrated in regions that generally have poor Internet penetration. For example, large portions of Africa and South Asia appear with the highest user-to-IP ratios. Conversely, the lowest user-to-IP ratios appear in Australia, Canada, Europe, and the USA — the very countries that otherwise have the highest Internet user penetration numbers.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2YBdqPx0ALt7pY7rmQZyLQ/049922bae657a715728700c764c4af16/BLOG-3046_2.png" />
          </figure><p>The scarcity of IPv4 address space means that regional differences can only worsen as Internet penetration rates increase. A natural consequence of increased demand in developing regions is that ISPs would rely even more heavily on CGNAT, and is compounded by the fact that CGNAT is common in mobile networks that users in developing regions so heavily depend on. All of this means that <a href="https://datatracker.ietf.org/doc/html/rfc7021"><u>actions known to be based</u></a> on IP reputation or behaviour would disproportionately affect developing economies. </p><p>Cloudflare is a global network in a global Internet. We are sharing our methodology so that others might benefit from our experience and help to mitigate unintended effects. First, let’s better understand CGNAT.</p>
    <div>
      <h3>When one IP address serves multiple users</h3>
      <a href="#when-one-ip-address-serves-multiple-users">
        
      </a>
    </div>
    <p>Large-scale IP address sharing is primarily achieved through two distinct methods. The first, and more familiar, involves services like VPNs and proxies. These tools emerge from a need to secure corporate networks or improve users' privacy, but can be used to circumvent censorship or even improve performance. Their deployment also tends to concentrate traffic from many users onto a small set of exit IPs. Typically, individuals are aware they are using such a service, whether for personal use or as part of a corporate network.</p><p>Separately, another form of large-scale IP sharing often goes unnoticed by users: <a href="https://en.wikipedia.org/wiki/Carrier-grade_NAT"><u>Carrier-Grade NAT (CGNAT)</u></a>. One way to explain CGNAT is to start with a much smaller version of network address translation (NAT) that very likely exists in your home broadband router, formally called a Customer Premises Equipment (or CPE), which translates unseen private addresses in the home to visible and routable addresses in the ISP. Once traffic leaves the home, an ISP may add an additional enterprise-level address translation that causes many households or unrelated devices to appear behind a single IP address.</p><p>The crucial difference between large-scale IP sharing is user choice: carrier-grade address sharing is not a user choice, but is configured directly by Internet Service Providers (ISPs) within their access networks. Users are not aware that CGNATs are in use. </p><p>The primary driver for this technology, understandably, is the exhaustion of the IPv4 address space. IPv4's 32-bit architecture supports only 4.3 billion unique addresses — a capacity that, while once seemingly vast, has been completely outpaced by the Internet's explosive growth. By the early 2010s, Regional Internet Registries (RIRs) had depleted their pools of unallocated IPv4 addresses. This left ISPs unable to easily acquire new address blocks, forcing them to maximize the use of their existing allocations.</p><p>While the long-term solution is the transition to IPv6, CGNAT emerged as the immediate, practical workaround. Instead of assigning a unique public IP address to each customer, ISPs use CGNAT to place multiple subscribers behind a single, shared IP address. This practice solves the problem of IP address scarcity. Since translated addresses are not publicly routable, CGNATs have also had the positive side effect of protecting many home devices that might be vulnerable to compromise. </p><p>CGNATs also create significant operational fallout stemming from the fact that hundreds or even thousands of clients can appear to originate from a single IP address. <b>This means an IP-based security system may inadvertently block or throttle large groups of users as a result of a single user behind the CGNAT engaging in malicious activity.</b></p><p>This isn't a new or niche issue. It has been recognized for years by the Internet Engineering Task Force (IETF), the organization that develops the core technical standards for the Internet. These standards, known as Requests for Comments (RFCs), act as the official blueprints for how the Internet should operate. <a href="https://www.rfc-editor.org/rfc/rfc6269.html"><u>RFC 6269</u></a>, for example, discusses the challenges of IP address sharing, while <a href="https://datatracker.ietf.org/doc/html/rfc7021"><u>RFC 7021</u></a> examines the impact of CGNAT on network applications. Both explain that traditional abuse-mitigation techniques, such as blocklisting or rate-limiting, assume a one-to-one relationship between IP addresses and users: when malicious activity is detected, the offending IP address can be blocked to prevent further abuse.</p><p>In shared IPv4 environments, such as those using CGNAT or other address-sharing techniques, this assumption breaks down because multiple subscribers can appear under the same public IP. Blocking the shared IP therefore penalizes many innocent users along with the abuser. In 2015 Ofcom, the UK's telecommunications regulator, reiterated these concerns in a <a href="https://oxil.uk/research/mc159-report-on-the-implications-of-carrier-grade-network-address-translators-final-report"><u>report</u></a> on the implications of CGNAT where they noted that, “In the event that an IPv4 address is blocked or blacklisted as a source of spam, the impact on a CGNAT would be greater, potentially affecting an entire subscriber base.” </p><p>While the hope was that CGNAT was only a temporary solution until the eventual switch to IPv6, as the old proverb says, nothing is more permanent than a temporary solution. While IPv6 deployment continues to lag, <a href="https://blog.apnic.net/2022/01/19/ip-addressing-in-2021/"><u>CGNAT deployments have become increasingly common</u></a>, and so do the related problems. </p>
    <div>
      <h2>CGNAT detection at Cloudflare</h2>
      <a href="#cgnat-detection-at-cloudflare">
        
      </a>
    </div>
    <p>To enable a fairer treatment of users behind CGNAT IPs by security techniques that rely on IP reputation, our goal is to identify large-scale IP sharing. This allows traffic filtering to be better calibrated and collateral damage minimized. Additionally, we want to distinguish CGNAT IPs from other large-scale sharing (LSS) IP technologies, such as VPNs and proxies, because we may need to take different approaches to different kinds of IP-sharing technologies.</p><p>To do this, we decided to take advantage of Cloudflare’s extensive view of the active IP clients, and build a supervised learning classifier that would distinguish CGNAT and VPN/proxy IPs from IPs that are allocated to a single subscriber (non-LSS IPs), based on behavioural characteristics. The figure below shows an overview of our supervised classifier: </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7tFXZByKRCYxVaAFDG0Xda/d81e7f09b5d12e03e39c266696df9cc3/BLOG-3046_3.png" />
          </figure><p>While our classification approach is straightforward, a significant challenge is the lack of a reliable, comprehensive, and labeled dataset of CGNAT IPs for our training dataset.</p>
    <div>
      <h3>Detecting CGNAT using public data sources </h3>
      <a href="#detecting-cgnat-using-public-data-sources">
        
      </a>
    </div>
    <p>Detection begins by building an initial dataset of IPs believed to be associated with CGNAT. Cloudflare has vast HTTP and traffic logs. Unfortunately there is no signal or label in any request to indicate what is or is not a CGNAT. </p><p>To build an extensive labelled dataset to train our ML classifier, we employ a combination of network measurement techniques, as described below. We rely on public data sources to help disambiguate an initial set of large-scale shared IP addresses from others in Cloudflare’s logs.   </p>
    <div>
      <h4>Distributed Traceroutes</h4>
      <a href="#distributed-traceroutes">
        
      </a>
    </div>
    <p>The presence of a client behind CGNAT can often be inferred through traceroute analysis. CGNAT requires ISPs to insert a NAT step that typically uses the Shared Address Space (<a href="https://datatracker.ietf.org/doc/html/rfc6598"><u>RFC 6598</u></a>) after the customer premises equipment (CPE). By running a traceroute from the client to its own public IP and examining the hop sequence, the appearance of an address within 100.64.0.0/10 between the first private hop (e.g., 192.168.1.1) and the public IP is a strong indicator of CGNAT.</p><p>Traceroute can also reveal multi-level NAT, which CGNAT requires, as shown in the diagram below. If the ISP assigns the CPE a private <a href="https://datatracker.ietf.org/doc/html/rfc1918"><u>RFC 1918</u></a> address that appears right after the local hop, this indicates at least two NAT layers. While ISPs sometimes use private addresses internally without CGNAT, observing private or shared ranges immediately downstream combined with multiple hops before the public IP strongly suggests CGNAT or equivalent multi-layer NAT.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/57k4gwGCHcPggIWtSy36HU/6cf8173c1a4c568caa25a1344a516e9e/BLOG-3046_4.png" />
          </figure><p>Although traceroute accuracy depends on router configurations, detecting private and shared IP ranges is a reliable way to identify large-scale IP sharing. We apply this method to distributed traceroutes from over 9,000 RIPE Atlas probes to classify hosts as behind CGNAT, single-layer NAT, or no NAT.</p>
    <div>
      <h4>Scraping WHOIS and PTR records</h4>
      <a href="#scraping-whois-and-ptr-records">
        
      </a>
    </div>
    <p>Many operators encode metadata about their IPs in the corresponding reverse DNS pointer (PTR) record that can signal administrative attributes and geographic information. We first query the DNS for PTR records for the full IPv4 space and then filter for a set of known keywords from the responses that indicate a CGNAT deployment. For example, each of the following three records matches a keyword (<code>cgnat</code>, <code>cgn</code> or <code>lsn</code>) used to detect CGNAT address space:</p><p><code>node-lsn.pool-1-0.dynamic.totinternet.net
103-246-52-9.gw1-cgnat.mobile.ufone.nz
cgn.gsw2.as64098.net</code></p><p>WHOIS and Internet Routing Registry (IRR) records may also contain organizational names, remarks, or allocation details that reveal whether a block is used for CGNAT pools or residential assignments. </p><p>Given that both PTR and WHOIS records may be manually maintained and therefore may be stale, we try to sanitize the extracted data by validating the fact that the corresponding ISPs indeed use CGNAT based on customer and market reports. </p>
    <div>
      <h4>Collecting VPN and proxy IPs </h4>
      <a href="#collecting-vpn-and-proxy-ips">
        
      </a>
    </div>
    <p>Compiling a list of VPN and proxy IPs is more straightforward, as we can directly find such IPs in public service directories for anonymizers. We also subscribe to multiple VPN providers, and we collect the IPs allocated to our clients by connecting to a unique HTTP endpoint under our control. </p>
    <div>
      <h2>Modeling CGNAT with machine learning</h2>
      <a href="#modeling-cgnat-with-machine-learning">
        
      </a>
    </div>
    <p>By combining the above techniques, we accumulated a dataset of labeled IPs for more than 200K CGNAT IPs, 180K VPNs &amp; proxies and close to 900K IPs allocated that are not LSS IPs. These were the entry points to modeling with machine learning.</p>
    <div>
      <h3>Feature selection</h3>
      <a href="#feature-selection">
        
      </a>
    </div>
    <p>Our hypothesis was that aggregated activity from CGNAT IPs is distinguishable from activity generated from other non-CGNAT IP addresses. Our feature extraction is an evaluation of that hypothesis — since networks do not disclose CGNAT and other uses of IPs, the quality of our inference is strictly dependent on our confidence in the training data. We claim the key discriminator is diversity, not just volume. For example, VM-hosted scanners may generate high numbers of requests, but with low information diversity. Similarly, globally routable CPEs may have individually unique characteristics, but with volumes that are less likely to be caught at lower sampling rates.</p><p>In our feature extraction, we parse a 1% sampled HTTP requests log for distinguishing features of IPs compiled in our reference set, and the same features for the corresponding /24 prefix (namely IPs with the same first 24 bits in common). We analyse the features for each of the VPNs, proxies, CGNAT, or non LSS IP. We find that features from the following broad categories are key discriminators for the different types of IPs in our training dataset:</p><ul><li><p><b>Client-side signals:</b> We analyze the aggregate properties of clients connecting from an IP. A large, diverse user base (like on a CGNAT) naturally presents a much wider statistical variety of client behaviors and connection parameters than a single-tenant server or a small business proxy.</p></li><li><p><b>Network and transport-level behaviors:</b> We examine traffic at the network and transport layers. The way a large-scale network appliance (like a CGNAT) manages and routes connections often leaves subtle, measurable artifacts in its traffic patterns, such as in port allocation and observed network timing.</p></li><li><p><b>Traffic volume and destination diversity:</b> We also model the volume and "shape" of the traffic. An IP representing thousands of independent users will, on average, generate a higher volume of requests and target a much wider, less correlated set of destinations than an IP representing a single user.</p></li></ul><p>Crucially, to distinguish CGNAT from VPNs and proxies (which is absolutely necessary for calibrated security filtering), we had to aggregate these features at two different scopes: per-IP and per /24 prefixes. CGNAT IPs are typically allocated large blocks of IPs, whereas VPNs IPs are more scattered across different IP prefixes. </p>
    <div>
      <h3>Classification results</h3>
      <a href="#classification-results">
        
      </a>
    </div>
    <p>We compute the above features from HTTP logs over 24-hour intervals to increase data volume and reduce noise due to DHCP IP reallocation. The dataset is split into 70% training and 30% testing sets with disjoint /24 prefixes, and VPN and proxy labels are merged due to their similarity and lower operational importance compared to CGNAT detection.</p><p>Then we train a multi-class <a href="https://xgboost.readthedocs.io/en/stable/"><u>XGBoost</u></a> model with class weighting to address imbalance, assigning each IP to the class with the highest predicted probability. XGBoost is well-suited for this task because it efficiently handles large feature sets, offers strong regularization to prevent overfitting, and delivers high accuracy with limited parameter tuning. The classifier achieves 0.98 accuracy, 0.97 weighted F1, and 0.04 log loss. The figure below shows the confusion matrix of the classification.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/26i81Pe0yjlftHfIDrjB5X/45d001447fc52001a25176c8036a92cb/BLOG-3046_5.png" />
          </figure><p>Our model is accurate for all three labels. The errors observed are mainly misclassifications of VPN/proxy IPs as CGNATs, mostly for VPN/proxy IPs that are within a /24 prefix that is also shared by broadband users outside of the proxy service. We also evaluate the prediction accuracy using <a href="https://scikit-learn.org/stable/modules/cross_validation.html"><u>k-fold cross validation</u></a>, which provides a more reliable estimate of performance by training and validating on multiple data splits, reducing variance and overfitting compared to a single train–test split. We select 10 folds and we evaluate the <a href="https://developers.google.com/machine-learning/crash-course/classification/roc-and-auc"><u>Area Under the ROC Curve</u></a> (AUC) and the multi-class logloss. We achieve a macro-average AUC of 0.9946 (σ=0.0069) and log loss of 0.0429 (σ=0.0115). Prefix-level features are the most important contributors to classification performance.</p>
    <div>
      <h3>Users behind CGNAT are more likely to be rate limited</h3>
      <a href="#users-behind-cgnat-are-more-likely-to-be-rate-limited">
        
      </a>
    </div>
    <p>The figure below shows the daily number of CGNAT IP inferences generated by our CDN-deployed detection service between December 17, 2024 and January 9, 2025. The number of inferences remains largely stable, with noticeable dips during weekends and holidays such as Christmas and New Year’s Day. This pattern reflects expected seasonal variations, as lower traffic volumes during these periods lead to fewer active IP ranges and reduced request activity.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7hiYstptHAK6tFQrM2kEsf/7f8192051156fc6eaecdf26a829ef11c/BLOG-3046_6.png" />
          </figure><p>Next, recall that actions that rely on IP reputation or behaviour may be unduly influenced by CGNATs. One such example is bot detection. In an evaluation of our systems, we find that bot detection is resilient to those biases. However, we also learned that customers are more likely to rate limit IPs that we find are CGNATs.</p><p>We analyze bot labels by analyzing how often requests from CGNAT and non-CGNAT IPs are labeled as bots. <a href="https://www.cloudflare.com/resources/assets/slt3lc6tev37/JYknFdAeCVBBWWgQUtNZr/61844a850c5bba6b647d65e962c31c9c/BDES-863_Bot_Management_re_edit-_How_it_Works_r3.pdf"><u>Cloudflare assigns a bot score</u></a> to each HTTP request using CatBoost models trained on various request features, and these scores are then exposed through the Web Application Firewall (WAF), allowing customers to apply filtering rules. The median bot rate is nearly identical for CGNAT (4.8%) and non-CGNAT (4.7%) IPs. However, the mean bot rate is notably lower for CGNATs (7%) than for non-CGNATs (13.1%), indicating different underlying distributions. Non-CGNAT IPs show a much wider spread, with some reaching 100% bot rates, while CGNAT IPs cluster mostly below 15%. This suggests that non-CGNAT IPs tend to be dominated by either human or bot activity, whereas CGNAT IPs reflect mixed behavior from many end users, with human traffic prevailing.</p><p>Interestingly, despite bot scores that indicate traffic is more likely to be from human users, CGNAT IPs are subject to rate limiting three times more often than non-CGNAT IPs. This is likely because multiple users share the same public IP, increasing the chances that legitimate traffic gets caught by customers’ bot mitigation and firewall rules.</p><p>This tells us that users behind CGNAT IPs are indeed susceptible to collateral effects, and identifying those IPs allows us to tune mitigation strategies to disrupt malicious traffic quickly while reducing collateral impact on benign users behind the same address.</p>
    <div>
      <h2>A global view of the CGNAT ecosystem</h2>
      <a href="#a-global-view-of-the-cgnat-ecosystem">
        
      </a>
    </div>
    <p>One of the early motivations of this work was to understand if our knowledge about IP addresses might hide a bias along socio-economic boundaries—and in particular if an action on an IP address may disproportionately affect populations in developing nations, often referred to as the Global South. Identifying where different IPs exist is a necessary first step.</p><p>The map below shows the fraction of a country’s inferred CGNAT IPs over all IPs observed in the country. Regions with a greater reliance on CGNAT appear darker on the map. This view highlights the geodiversity of CGNATs in terms of importance; for example, much of Africa and Central and Southeast Asia rely on CGNATs. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4P2XcuEebKfcYdCgykMWuP/4a0aa86bd619ba24533de6862175e919/BLOG-3046_7.png" />
          </figure><p>As further evidence of continental differences, the boxplot below shows the distribution of distinct user agents per IP across /24 prefixes inferred to be part of a CGNAT deployment in each continent. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7bqJSHexFuXFs4A8am1ibQ/591be6880e8f58c9d61b147aaf0487f5/BLOG-3046_8.png" />
          </figure><p>Notably, Africa has a much higher ratio of user agents to IP addresses than other regions, suggesting more clients share the same IP in African <a href="https://www.cloudflare.com/learning/network-layer/what-is-an-autonomous-system/"><u>ASNs</u></a>. So, not only do African ISPs rely more extensively on CGNAT, but the number of clients behind each CGNAT IP is higher. </p><p>While the deployment rate of CGNAT per country is consistent with the users-per-IP ratio per country, it is not sufficient by itself to confirm deployment. The scatterplot below shows the number of users (according to <a href="https://stats.labs.apnic.net/aspop/"><u>APNIC user estimates</u></a>) and the number of IPs per ASN for ASNs where we detect CGNAT. ASNs that have fewer available IP addresses than their user base appear below the diagonal. Interestingly the scatterplot indicates that many ASNs with more addresses than users still choose to deploy CGNAT. Presumably, these ASNs provide additional services beyond broadband, preventing them from dedicating their entire address pool to subscribers. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/34GKPlJWvkwudU5MbOtots/c883760a7c448b12995997e3e6e51979/BLOG-3046_9.png" />
          </figure>
    <div>
      <h3>What this means for everyday Internet users</h3>
      <a href="#what-this-means-for-everyday-internet-users">
        
      </a>
    </div>
    <p>Accurate detection of CGNAT IPs is crucial for minimizing collateral effects in network operations and for ensuring fair and effective application of security measures. Our findings underscore the potential socio-economic and geographical variations in the use of CGNATs, revealing significant disparities in how IP addresses are shared across different regions. </p><p>At Cloudflare we are going beyond just using these insights to evaluate policies and practices. We are using the detection systems to improve our systems across our application security suite of features, and working with customers to understand how they might use these insights to improve the protections they configure.</p><p>Our work is ongoing and we’ll share details as we go. In the meantime, if you’re an ISP or network operator that operates CGNAT and want to help, get in touch at <a><u>ask-research@cloudflare.com</u></a>. Sharing knowledge and working together helps make better and equitable user experience for subscribers, while preserving web service safety and security.</p> ]]></content:encoded>
            <category><![CDATA[Research]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Web Application Firewall]]></category>
            <category><![CDATA[Better Internet]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Bots]]></category>
            <category><![CDATA[IPv4]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">9cTCNUkDdgVjdBN6M6JLv</guid>
            <dc:creator>Vasilis Giotsas</dc:creator>
            <dc:creator>Marwan Fayed</dc:creator>
        </item>
        <item>
            <title><![CDATA[Network performance update: Birthday Week 2025]]></title>
            <link>https://blog.cloudflare.com/network-performance-update-birthday-week-2025/</link>
            <pubDate>Fri, 26 Sep 2025 13:00:00 GMT</pubDate>
            <description><![CDATA[ On the Internet, being fast is what matters and at Cloudflare, we are committed to being the fastest network in the world. ]]></description>
            <content:encoded><![CDATA[ <p>We are committed to being the fastest network in the world because improvements in our performance translate to improvements for the own end users of your application. We are excited to share that Cloudflare continues to be the fastest network for the most peered networks in the world.</p><p>We relentlessly measure our own performance and our performance against peers. We publish those results routinely, starting with our first update in <a href="https://blog.cloudflare.com/benchmarking-edge-network-performance/"><u>June 2021</u></a> and most recently with our last post in <a href="https://blog.cloudflare.com/tr-tr/network-performance-update-birthday-week-2024/"><u>September 2024</u></a>.</p><p>Today’s update breaks down where we have improved since our update last year and what our priorities are going into the next year. While we are excited to be the fastest in the greatest number of last-mile ISPs, we are never done improving and have more work to do.</p>
    <div>
      <h3>How do we measure this metric, and what are the results?</h3>
      <a href="#how-do-we-measure-this-metric-and-what-are-the-results">
        
      </a>
    </div>
    <p>We measure network performance by attempting to capture what the experience is like for Internet users across the globe. To do that we need to simulate what their connection is like from their last-mile ISP to our networks.</p><p>We start by taking the 1,000 largest networks in the world based on estimated population. We use that to give ourselves a representation of real users in nearly every geography.</p><p>We then measure performance itself with TCP connection time. TCP connection time is the time it takes for an end user to connect to the website or endpoint they are trying to reach. We chose this metric because we believe this most closely approximates what users perceive to be Internet speed, as opposed to other metrics which are either too scientific (ignoring real world challenges like congestion or distance) or too broad.</p><p>We take the trimean measurement of TCP connection times to calculate our metric. The trimean is a weighted average of three statistical values: the first quartile, the median, and the third quartile. This approach allows us to reduce some of the noise and outliers and get a comprehensive picture of quality.</p><p>For this year’s update, we examined the trimean of TCP connection times measured from August 6 to September 4, Cloudflare is the #1 provider in 40% of the top 1000 networks. In our September 2024 update, we shared that we were the #1 provider in 44% of the top 1000 networks.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6aMHnKc3pQMa8oHds3N1uZ/fce6e2eecf2e7e8c257d6a2409befcdc/image2.png" />
          </figure><p>The TCP Connection Time (Trimean) graph shows that we are the fastest TCP connection time in 383 networks, but that would make us the fastest in 38% of the top 1,000. We exclude networks that aren’t last-mile ISPs, such as transit networks, since they don’t reflect the end user experience, which brings the number of measured networks to 964 and makes Cloudflare the fastest in 40% of measured ISPs and the fastest across the top networks.</p>
    <div>
      <h3>How do we capture this data? </h3>
      <a href="#how-do-we-capture-this-data">
        
      </a>
    </div>
    <p>A Cloudflare-branded error page does more than just display an error; it kicks off a real-world speed test. Behind the scenes, on a selection of our error pages, we use Real User Measurements (RUM), which involves a browser retrieving a small file from multiple networks, including Cloudflare, Amazon CloudFront, Google, Fastly and Akamai.</p><p>Running these tests lets us gather performance data directly from the user's perspective, providing a genuine comparison of different network speeds. We do this to understand where our network is fastest and, more importantly, where we can make further improvements. For a deeper dive into the technical details, the <a href="https://blog.cloudflare.com/introducing-radar-internet-quality-page/"><u>Speed Week blog post</u></a> covers the full methodology.</p><p>By using RUM data, we track key metrics like TCP Connection Time, Time to First Byte (TTFB), and Time to Last Byte (TTLB). These are widely recognized, industry-standard metrics that allow us to objectively measure how quickly and efficiently a website loads for actual users. By monitoring these benchmarks, we can objectively compare our performance against other networks.</p><p>We specifically chose the top 1000 networks by estimated population from APNIC, excluding those that aren’t last-mile ISPs. Consistency is key: by analyzing the same group of networks in every cycle, we ensure our measurements and reporting remain reliable and directly comparable over time.</p>
    <div>
      <h3>How do the results compare across countries?</h3>
      <a href="#how-do-the-results-compare-across-countries">
        
      </a>
    </div>
    <p>The map below shows the fastest providers per country and Cloudflare is fastest in dozens of countries. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/b6jJn6IQTCWQDhjHdtb9P/9a324658130c08caf865a81f604b2000/image5.png" />
          </figure><p>The color coding is generated by grouping all the measurements we generate by which country the measurement originates from. Then we look at the trimean measurements for each provider to identify who is the fastest… Akamai was measured as well, but providers are only represented in the map if they ranked first in a country which Akamai does not anywhere in the world.</p><p>These slim margins mean that the fastest provider in a country is often determined by <a href="https://www.cloudflare.com/learning/performance/glossary/what-is-latency/"><u>latency</u></a> differences so small that the fastest provider is often only faster by less than 5%. As an example, let’s look at India, a country where we are currently the second-fastest provider.</p><table><tr><td><p><b>India (IN)</b></p></td><td><p></p></td><td><p></p></td><td><p></p></td></tr><tr><td><p><b>Rank</b></p></td><td><p><b>Entity </b></p></td><td><p><b>Connect Time (Trimean)</b></p></td><td><p><b>#1 Diff</b></p></td></tr><tr><td><p>#1</p></td><td><p>CloudFront</p></td><td><p>107 ms</p></td><td><p>-</p></td></tr><tr><td><p>#2</p></td><td><p>Cloudflare</p></td><td><p>113 ms</p></td><td><p>+4.81% (+5.16 ms)</p></td></tr><tr><td><p>#3</p></td><td><p>Google</p></td><td><p>117 ms</p></td><td><p>+8.74% (+9.39 ms)</p></td></tr><tr><td><p>#4 </p></td><td><p>Fastly</p></td><td><p>133 ms</p></td><td><p>+24% (+26 ms)</p></td></tr><tr><td><p>#5</p></td><td><p>Akamai</p></td><td><p>144 ms</p></td><td><p>+34% (+37 ms)</p></td></tr></table><p>In India, Cloudflare is 5ms behind Cloudfront, the #1 provider (To put milliseconds into perspective, the average human eye blink lasts between 100ms and 400ms). The competition for the number one spot in many countries is fierce and often shifts day by day. For example, in Mexico on Tuesday, August 5th, Cloudflare was the second-fastest provider by 0.73 ms but then on Tuesday, August 12th, Cloudflare was the fastest provider by 3.72 ms. </p><table><tr><td><p><b>Mexico (MX)</b></p></td><td><p></p></td><td><p></p></td><td><p></p></td><td><p></p></td></tr><tr><td><p><b>Date</b></p></td><td><p><b>Rank</b></p></td><td><p><b>Entity </b></p></td><td><p><b>Connect Time (Trimean)</b></p></td><td><p><b>#1 Diff</b></p></td></tr><tr><td><p>August 5, 2025</p></td><td><p>#1</p></td><td><p>CloudFront</p></td><td><p>116 ms</p></td><td><p>-</p></td></tr><tr><td><p></p></td><td><p>#2</p></td><td><p>Cloudflare</p></td><td><p>116 ms</p></td><td><p>+0.63% (+0.73 ms)</p></td></tr><tr><td><p>August 12, 2025</p></td><td><p>#1</p></td><td><p>Cloudflare</p></td><td><p>106 ms</p></td><td><p>-</p></td></tr><tr><td><p></p></td><td><p>#2</p></td><td><p>CloudFront</p></td><td><p>109 ms</p></td><td><p>+3.52% (+3.72 ms)</p></td></tr></table><p>Because ranking reorderings are common, we also review country and network level rankings to evaluate and benchmark our performance. </p>
    <div>
      <h3>Focusing on where we are not the fastest yet</h3>
      <a href="#focusing-on-where-we-are-not-the-fastest-yet">
        
      </a>
    </div>
    <p>As mentioned above, in September 2024, Cloudflare was fastest in 44% of measured ISPs. These values can shift as providers constantly make improvements to their networks. One way we focus in on how we are prioritizing improving is to not just observe where we are not the fastest but to measure how far we are from the leader.</p><p>In these locations we tend to pace extremely close to the fastest provider, giving us an opportunity to capture the spot as we <a href="https://blog.cloudflare.com/20-percent-internet-upgrade/">relentlessly improve</a>. In networks where Cloudflare is 2nd, over 50% of those networks have a less than 5% difference (10ms or less) with the top provider.</p><table><tr><td><p><b>Country</b></p></td><td><p><b>ASN</b></p></td><td><p><b>#1</b></p></td><td><p><b>Cloudflare Rank</b></p></td><td><p><b>#1 Diff (ms)</b></p></td><td><p><b>#1 Diff (%)</b></p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS36352</b></p></td><td><p>Google</p></td><td><p><b>2</b></p></td><td><p>25 ms</p></td><td><p>32%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS46475</b></p></td><td><p>Google</p></td><td><p><b>2</b></p></td><td><p>35 ms</p></td><td><p>29%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS29802</b></p></td><td><p>Google</p></td><td><p><b>2</b></p></td><td><p>8.03 ms</p></td><td><p>21%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS20473</b></p></td><td><p>Google</p></td><td><p><b>2</b></p></td><td><p>15 ms</p></td><td><p>13%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS7018</b></p></td><td><p>CloudFront</p></td><td><p><b>2</b></p></td><td><p>23 ms</p></td><td><p>13%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS4181</b></p></td><td><p>CloudFront</p></td><td><p><b>2</b></p></td><td><p>8.19 ms</p></td><td><p>11%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS62240</b></p></td><td><p>Google</p></td><td><p><b>2</b></p></td><td><p>18 ms</p></td><td><p>9.77%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS22773</b></p></td><td><p>CloudFront</p></td><td><p><b>2</b></p></td><td><p>12 ms</p></td><td><p>9.48%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS6167</b></p></td><td><p>CloudFront</p></td><td><p><b>2</b></p></td><td><p>13 ms</p></td><td><p>7.55%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS11427</b></p></td><td><p>Google</p></td><td><p><b>2</b></p></td><td><p>9.33 ms</p></td><td><p>5.27%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS6614</b></p></td><td><p>CloudFront</p></td><td><p><b>2</b></p></td><td><p>6.68 ms</p></td><td><p>4.12%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS4922</b></p></td><td><p>Google</p></td><td><p><b>2</b></p></td><td><p>3.38 ms</p></td><td><p>3.86%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS11492</b></p></td><td><p>Fastly</p></td><td><p><b>2</b></p></td><td><p>3.73 ms</p></td><td><p>3.33%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS11351</b></p></td><td><p>Google</p></td><td><p><b>2</b></p></td><td><p>5.14 ms</p></td><td><p>3.04%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS396356</b></p></td><td><p>Google</p></td><td><p><b>2</b></p></td><td><p>4.12 ms</p></td><td><p>2.23%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS212238</b></p></td><td><p>Google</p></td><td><p><b>2</b></p></td><td><p>3.42 ms</p></td><td><p>1.35%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS20055</b></p></td><td><p>Fastly</p></td><td><p><b>2</b></p></td><td><p>1.22 ms</p></td><td><p>1.33%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS40021</b></p></td><td><p>CloudFront</p></td><td><p><b>2</b></p></td><td><p>2.06 ms</p></td><td><p>0.91%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS12271</b></p></td><td><p>Fastly</p></td><td><p><b>2</b></p></td><td><p>1.26 ms</p></td><td><p>0.89%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS141039</b></p></td><td><p>CloudFront</p></td><td><p><b>2</b></p></td><td><p>1.26 ms</p></td><td><p>0.88%</p></td></tr></table><p>In networks where Cloudflare is 3rd, 50% of those networks are less than a 10% difference with the top provider (10ms or less). Margins are small and suggest that in instances where Cloudflare isn’t number one across networks, we’re extremely close to our competitors and the top networks change day over day. </p><table><tr><td><p><b>Country</b></p></td><td><p><b>ASN</b></p></td><td><p><b>#1</b></p></td><td><p><b>Cloudflare Rank</b></p></td><td><p><b>#1 Diff (ms)</b></p></td><td><p><b>#1 Diff (%)</b></p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS6461</b></p></td><td><p>Google</p></td><td><p><b>3</b></p></td><td><p>33 ms</p></td><td><p>39%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS81</b></p></td><td><p>Fastly</p></td><td><p><b>3</b></p></td><td><p>43 ms</p></td><td><p>35%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS14615</b></p></td><td><p>Google</p></td><td><p><b>3</b></p></td><td><p>24 ms</p></td><td><p>24%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS13977</b></p></td><td><p>CloudFront</p></td><td><p><b>3</b></p></td><td><p>21 ms</p></td><td><p>19%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS33363</b></p></td><td><p>Google</p></td><td><p><b>3</b></p></td><td><p>29 ms</p></td><td><p>18%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS63949</b></p></td><td><p>Google</p></td><td><p><b>3</b></p></td><td><p>9.56 ms</p></td><td><p>14%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS14593</b></p></td><td><p>Fastly</p></td><td><p><b>3</b></p></td><td><p>17 ms</p></td><td><p>13%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS23089</b></p></td><td><p>CloudFront</p></td><td><p><b>3</b></p></td><td><p>7.4 ms</p></td><td><p>11%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS16509</b></p></td><td><p>Fastly</p></td><td><p><b>3</b></p></td><td><p>10 ms</p></td><td><p>9.48%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS209</b></p></td><td><p>CloudFront</p></td><td><p><b>3</b></p></td><td><p>9.69 ms</p></td><td><p>6.87%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS27364</b></p></td><td><p>CloudFront</p></td><td><p><b>3</b></p></td><td><p>8.76 ms</p></td><td><p>6.61%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS11404</b></p></td><td><p>CloudFront</p></td><td><p><b>3</b></p></td><td><p>6.11 ms</p></td><td><p>6.16%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS46690</b></p></td><td><p>CloudFront</p></td><td><p><b>3</b></p></td><td><p>5.91 ms</p></td><td><p>5.43%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS136787</b></p></td><td><p>CloudFront</p></td><td><p><b>3</b></p></td><td><p>8.23 ms</p></td><td><p>5.18%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS6079</b></p></td><td><p>Fastly</p></td><td><p><b>3</b></p></td><td><p>5.45 ms</p></td><td><p>4.49%</p></td></tr><tr><td><p><b>US</b></p></td><td><p><b>AS5650</b></p></td><td><p>Google</p></td><td><p><b>3</b></p></td><td><p>3.91 ms</p></td><td><p>3.35%</p></td></tr></table><p>Countries with an abundance of networks, like the United States, have a lot of noise we need to calibrate against. For example, the graph below represents the performance of all providers for a major ISP like AS701 (Verizon Business).</p><p><sub>AS701 (Verizon Business) Connect Time (P95) between 2025-08-09 and 2025-09-09</sub></p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7kiADi8Ld1teDWjMgnE4Qq/d6d3b1ca387ac12de1aac86b415129d1/image6.png" />
          </figure><p>In this chart, the “P95” value, or 95th percentile, refers to one point of a percentile distribution. The P95 shows the value below which 95% of the data points fall and is specifically good at helping identify the slowest or worst-case user experiences, such as those on poor networks or older devices. Additionally, we review the other numbers lower on the percentile chain in the table below, which tell us how performance varies across the full range of data. When we do so, the picture becomes more nuanced.</p><table><tr><td><p><b>AS701 (Verizon Business) Provider Rankings for Connect Time at P95, P75 and P50</b></p></td><td><p></p></td><td><p></p></td><td><p></p></td><td><p></p></td></tr><tr><td><p><b>Rank</b></p></td><td><p><b>Entity </b></p></td><td><p><b>Connect Time (P95)</b></p></td><td><p><b>Connect Time (P75)</b></p></td><td><p><b>Connect Time (P50)</b></p></td></tr><tr><td><p>#1</p></td><td><p>Fastly</p></td><td><p>128 ms</p></td><td><p>66 ms</p></td><td><p>48 ms</p></td></tr><tr><td><p>#2</p></td><td><p>Google</p></td><td><p>134 ms</p></td><td><p>72 ms</p></td><td><p>54 ms</p></td></tr><tr><td><p>#3</p></td><td><p>CloudFront</p></td><td><p>139 ms</p></td><td><p>67 ms</p></td><td><p>47 ms</p></td></tr><tr><td><p>#4 </p></td><td><p>Cloudflare</p></td><td><p>141 ms</p></td><td><p>68 ms</p></td><td><p>49 ms</p></td></tr><tr><td><p>#5</p></td><td><p>Akamai</p></td><td><p>160 ms</p></td><td><p>84 ms</p></td><td><p>61 ms</p></td></tr></table><p>At the 95th percentile for AS701, Cloudflare ranks 4th but at the 75th and 50th, Cloudflare is only 2 milliseconds slower than the fastest provider. In other words, when reviewing more than one point along the distribution at the network level, Cloudflare is keeping up with the top providers for the less extreme samples. To capture these details, it’s important to look at the range of outcomes, not just one percentile.</p><p>To better reflect the full spectrum of user experiences, we started using the trimean in July 2025 to rank providers. This metric combines values from across the distribution of data - specifically the 75th, 50th and 25th percentiles - which gives a more balanced representation of overall performance, rather than only focusing on the extremes. Summarizing user experience with a single number is always challenging, but the trimean helps us compare providers in a way that better reflects how users actually experience the Internet.</p><p>Cloudflare is the fastest provider in 40% of networks in the majority of real-world conditions, not just in worst-case scenarios. Still, the 95th percentile remains key to understanding how performance holds up in challenging conditions and where other providers might fall behind in performance. When we review the 95th percentile across the same date range for all the networks, not just AS701, Cloudflare is fastest across roughly the same amount of networks but by 103 more networks than the next fastest provider. Being faster in such a wide margin of networks tells us that Cloudflare is particularly strong in the challenging, long-tail cases that other providers struggle with.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3jOvjHJBG1fefaz25yi8sk/4e649bdeaf743b3bbeb8cd696fe9669d/image4.png" />
          </figure><p>Our performance data shows that even when we are not the top-ranked provider, we remain exceptionally competitive, often trailing the leader by a mere handful of percentage points. Our strength at the 95th percentile also highlights our superior performance in the most challenging scenarios. Cloudflare’s ability to outperform other providers, in the worst-case, is a testament to the resilience and efficiency of our network.</p><p>Moving forward, we'll continue to share multiple metrics and continue to make improvements to our network —and we’ll use this data to do it! Let’s talk about how. </p>
    <div>
      <h3>How does Cloudflare use this data to improve?</h3>
      <a href="#how-does-cloudflare-use-this-data-to-improve">
        
      </a>
    </div>
    <p>Cloudflare applies this data to identify regions and networks that need prioritization. If we are consistently slower than other providers in a network, we want to know why, so we can fix it.</p><p>For example, the graph below shows the 95th percentile of Connect Time for AS8966. Prior to June 13, 2025, our performance was suffering, and we were the slowest provider for the network. By referencing our own measurement data, we prioritized partner data centers in the region and almost immediately performance improved for users connecting through AS8966.</p><p>Cloudflare’s partner data centers consist of collaborations with local service providers who host Cloudflare's equipment within their own facilities. This allows us to expand our network to new locations and get closer to users more quickly. In the case of AS8966, adding a new partner data center took us from being ranked last to ranked first and improved latency by roughly 150ms in one day. By using a data-driven approach, we made our network faster and most importantly, improved the end user experience.</p><p><sub>TCP Connect Time (P95) for AS8966</sub></p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1kX76JFqDOZq0FF798XLRM/4dc346e0a33dd564f7d42db24f91cae1/image3.png" />
          </figure>
    <div>
      <h3>What’s next?</h3>
      <a href="#whats-next">
        
      </a>
    </div>
    <p>We are always working to build a faster network and will continue sharing our process as we go. Our approach is straightforward: identify performance bottlenecks, implement fixes, and report the results. We believe in being transparent about our methods and are committed to a continuous cycle of improvement to achieve the best possible performance. Follow our blog for the latest performance updates as we continue to optimize our network and share our progress.</p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Network Performance Update]]></category>
            <category><![CDATA[Performance]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">6pNJpwIyHtXuRYh4AhebeR</guid>
            <dc:creator>Lai Yi Ohlsen</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare’s commitment to CISA Secure-By-Design pledge: delivering new kernels, faster]]></title>
            <link>https://blog.cloudflare.com/cloudflare-delivers-on-commitment-to-cisa/</link>
            <pubDate>Fri, 04 Apr 2025 13:00:00 GMT</pubDate>
            <description><![CDATA[ Cloudflare’s commitment to the CISA pledge reflects our dedication to transparency and accountability to our customers. This blog post outlines how we deliver newly patched kernels across our  ]]></description>
            <content:encoded><![CDATA[ <p>As cyber threats continue to exploit systemic vulnerabilities in widely used technologies, the <a href="https://www.cisa.gov/"><u>United States Cybersecurity and Infrastructure Agency (CISA)</u></a> produced best practices for the technology industry with their <a href="https://www.cisa.gov/securebydesign/pledge"><u>Secure-by-Design pledge</u></a>. Cloudflare proudly signed this pledge on May 8, 2024, reinforcing our commitment to creating resilient systems where security is not just a feature, but a foundational principle.</p><p>We’re excited to share and provide transparency into how our security patching process meets one of CISA’s goals in the pledge: <i>Demonstrating actions taken to increase installation of security patches for our customers.</i></p>
    <div>
      <h3>Balancing security patching and customer experience </h3>
      <a href="#balancing-security-patching-and-customer-experience">
        
      </a>
    </div>
    <p>Managing and deploying Linux kernel updates is one of Cloudflare’s most challenging security processes. In 2024, over <a href="https://www.cvedetails.com/vulnerability-list/vendor_id-33/product_id-47/year-2024/Linux-Linux-Kernel.html"><u>1000 CVEs were logged against the Linux kernel and patched</u></a>. To keep our systems secure, it is vital to perform critical patch deployment across systems while maintaining the user experience. </p><p>A common technical support phrase is “Have you tried turning it off and then on again?”.  One may be  surprised how often this tactic is used — it is also an essential part of how Cloudflare operates at scale when it comes to applying our most critical patches. Frequently restarting systems exercises the restart process, applies the latest firmware changes, and refreshes the filesystem. Simply put, the Linux kernel requires a restart to take effect.</p><p>However, considering that a single Cloudflare server may be processing hundreds of thousands of requests at any point in time, rebooting it would impact user experience. As a result, a calculated approach is required, and traffic must be carefully removed from the server before it can safely reboot. </p><p>First, the server is marked for maintenance. This action alerts our load balancing system, <a href="https://blog.cloudflare.com/unimog-cloudflares-edge-load-balancer/"><u>unimog</u></a>, to stop sending traffic to this server. Next, the server waits for this flow of traffic to terminate, and once public traffic is gone, the server begins to disable internal traffic. Internal traffic has multiple purposes, such as determining optimal routing, service discovery, and system health checks. Once the server is no longer actively serving any traffic, it can safely restart, using the new kernel.</p>
    <div>
      <h3>Kernel lifecycle at Cloudflare</h3>
      <a href="#kernel-lifecycle-at-cloudflare">
        
      </a>
    </div>
    <p>This diagram is a high level view of the lifecycle of the Linux kernel at Cloudflare. The list of kernel versions shown is a point in time example snapshot from <a href="https://kernel.org"><u>kernel.org</u></a>.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3CTWS8T4bPfoSFVrGyKPQA/6feade777d7358bce76f12f0aebce7dd/BLOG-2754_2.png" />
          </figure><p>First, a new kernel is released by the upstream kernel developers. We follow the <a href="https://cdn.kernel.org/"><u>longterm stable branch of the kernel</u></a>. Each new kernel release is pulled into our internal repository automatically, where the kernel is built and tested. Once all testing has successfully passed, several flavors of the kernel are built and readied for a preliminary deployment.</p><p>The first stage of deployment is an internal environment that receives no traffic. Once it is confirmed that there are no crashes or unintended behavior, it is promoted to a production environment with traffic generated by Cloudflare employees as eyeballs.</p><p>Cloudflare employees are connected via Zero Trust to this environment. This allows our telemetry to collect information regarding CPU utilization, memory usage, and filesystem behavior, which is then analyzed for deviations from the previous kernel. This is the first time that a new kernel is interacting with live traffic and real users in a Cloudflare environment. </p><p>Once we are satisfied with kernel performance and behavior, we begin to deploy this kernel to customer traffic. This progression starts as a small percentage of traffic in multiple datacenters and ends in one large regional datacenter. This is an important qualification phase for a new kernel, as we need to collect data on real world traffic. Once we are satisfied with performance and behavior, we have a candidate release that can go everywhere.</p><p>When a new kernel is ready for release, an <a href="https://blog.cloudflare.com/how-the-cloudflare-global-network-optimizes-for-system-reboots-during-low-traffic-periods/"><u>automated cycle named the Edge Reboot Release</u></a> is initiated. The Edge Reboot Release begins and completes every 30 days. This guarantees that we are running an up-to-date kernel in our infrastructure every month.</p><p>What about patches for the kernel that are needed faster than the standard cycle? We can live patch changes <a href="https://blog.cloudflare.com/live-patch-security-vulnerabilities-with-ebpf-lsm/"><u>to close those gaps faster</u></a>, and we have even <a href="https://blog.cloudflare.com/cve-2022-47929-traffic-control-noqueue-no-problem/"><u>written about closing one of these CVE’s</u></a>.</p>
    <div>
      <h3>Automating kernel updates in our Control Plane </h3>
      <a href="#automating-kernel-updates-in-our-control-plane">
        
      </a>
    </div>
    <p>The Cloudflare network is 50 ms from 95% of the world’s Internet-connected population. The Control Plane runs different workloads than our network, and is composed of 80 different clustered workloads responsible for persistence of information and decisions that feed the Cloudflare network. Until 2024, the Control Plane kernel maintenance was performed ad-hoc, and this caused the working kernel for Control Plane workloads to fall behind on patches. Under the pledge, this had to change and become just as consistent as the rest of our network.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/WtlwbERX7MysNbZ3ZwVya/31813f69bedc166406d1fca241eba184/BLOG-2754_3.png" />
          </figure><p>Consider a relational database as an example workload, as illustrated in the diagram above. One would need a copy available to restart the original in order to provide a seamless end user experience. This copy is called a database replica. That replica should then be promoted to become the primary serving database. Now that a new primary is serving traffic, the old primary is free to restart. If a database replica reboot is needed, an additional replica would be needed to take its place, allowing another safe restart. In this example, we have 2 different ways to restart a member of the clustered workload. Every clustered workload has different safe methodologies to restart one of its members.</p><p>Reboau (short for reboot automation) is an internally-built tool to manage custom reboot logic in the Control Plane. Reboau offers additional efficiencies described as “rack aware”, meaning it can operate on a rack of servers vs. a single server at a time. This optimization is helpful for a clustered workload, where it may be more efficient to drain and reboot a rack versus a single server. It also leverages metrics to determine when it is safe to lose a clustered member, execute the reboot, and ensure the system is healthy through the process.</p><p>In 2024, Cloudflare migrated Control Plane workloads to leverage Reboau and follow the same kernel upgrade cadence as the network. Now all of our infrastructure benefits from faster patching of the Linux kernel, to improve security and reliability for our customers.</p>
    <div>
      <h3>Conclusion </h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>Irrespective of the industry, if your organization builds software, we encourage you to familiarize yourself with <a href="https://www.cisa.gov/securebydesign"><u>CISA’s ‘Secure by Design’ principles</u></a> and create a plan to implement them in your company. The CISA Secure by Design pledge is built around seven security goals, prioritizing the security of customers, and challenges organizations to think differently about security. </p><p>By implementing automated security patching through kernel updates, Cloudflare has demonstrated measurable progress in implementing functionality that allows automatic deployment of software patches by default. This process highlights Cloudflare's commitment to protecting our infrastructure and keeping our customers against emerging vulnerabilities.</p><p>For more updates on our CISA progress, you check out our<a href="https://blog.cloudflare.com/tag/cisa/"><u> blog</u></a>. Cloudflare has delivered five of the seven CISA Secure by Design pledge goals, and we aim to complete the entirety of the pledge goals by May 2025. </p> ]]></content:encoded>
            <category><![CDATA[CISA]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">1wYPNsYVEGTxAPyJnjt04N</guid>
            <dc:creator>Brandon Harris</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing Cloudy, Cloudflare’s AI agent for simplifying complex configurations]]></title>
            <link>https://blog.cloudflare.com/introducing-ai-agent/</link>
            <pubDate>Thu, 20 Mar 2025 13:10:00 GMT</pubDate>
            <description><![CDATA[ Cloudflare’s first AI agent, Cloudy, helps make complicated configurations easy to understand for Cloudflare administrators. ]]></description>
            <content:encoded><![CDATA[ <p>It’s a big day here at Cloudflare! Not only is it Security Week, but today marks Cloudflare’s first step into a completely new area of functionality, intended to improve how our users both interact with, and get value from, all of our products.</p><p>We’re excited to share a first glance of how we’re embedding <a href="https://www.cloudflare.com/learning/ai/what-is-artificial-intelligence/">AI</a> features into the management of Cloudflare products you know and love. Our first mission? Focus on security and streamline the rule and policy management experience. The goal is to automate away the time-consuming task of manually reviewing and contextualizing Custom Rules in <a href="https://www.cloudflare.com/application-services/products/waf/">Cloudflare WAF</a>, and Gateway policies in Cloudflare One, so you can instantly understand what each policy does, what gaps they have, and what you need to do to fix them.</p>
    <div>
      <h3>Meet Cloudy, Cloudflare’s first AI agent</h3>
      <a href="#meet-cloudy-cloudflares-first-ai-agent">
        
      </a>
    </div>
    <p>Our initial step toward a fully AI-enabled product experience is the introduction of <i>Cloudy</i>, the first version of Cloudflare AI agents, assistant-like functionality designed to help users quickly understand and improve their Cloudflare configurations in multiple areas of the product suite. You’ll start to see Cloudy functionality seamlessly embedded into two Cloudflare products across the dashboard, which we’ll talk about below.</p><p>And while the name <i>Cloudy</i> may be fun and light-hearted, our goals are more serious: Bring Cloudy and AI-powered functionality to every corner of Cloudflare, and optimize how our users operate and manage their favorite Cloudflare products. Let’s start with two places where Cloudy is now live and available to all customers using the WAF and Gateway products.</p>
    <div>
      <h3>WAF Custom Rules</h3>
      <a href="#waf-custom-rules">
        
      </a>
    </div>
    <p>Let’s begin with AI-powered overviews of <a href="https://developers.cloudflare.com/waf/custom-rules/"><u>WAF Custom Rules</u></a>. For those unfamiliar, Cloudflare’s Web Application Firewall (WAF) helps protect web applications from attacks like <a href="https://www.cloudflare.com/learning/security/threats/sql-injection/">SQL injection</a>, <a href="https://www.cloudflare.com/learning/security/threats/cross-site-scripting/">cross-site scripting (XSS)</a>, and other vulnerabilities. </p><p>One specific feature of the WAF is the ability to create WAF Custom Rules. These allow users to tailor security policies to block, challenge, or allow traffic based on specific attributes or security criteria.</p><p>However, for customers with dozens or even hundreds of rules deployed across their organization, it can be challenging to maintain a clear understanding of their security posture. Rule configurations evolve over time, often managed by different team members, leading to potential inefficiencies and security gaps. What better problem for Cloudy to solve?</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4zcFRfhRWGQWhoza9TolDu/25e1357540db32e59150609e6eddd1e0/BLOG-2692_2.png" />
          </figure><p>Powered by <a href="https://developers.cloudflare.com/workers-ai/"><u>Workers AI</u></a>, today we’ll share how Cloudy will help review your WAF Custom Rules and provide a summary of what's configured across them. Cloudy will also help you identify and solve issues such as:</p><ul><li><p><b>Identifying redundant rules</b>: Identify when multiple rules are performing the same function, or using similar fields, helping you streamline your configuration.</p></li><li><p><b>Optimising execution order</b>: Spot cases where rules ordering affects functionality, such as when a terminating rule (block/challenge action) prevents subsequent rules from executing.</p></li><li><p><b>Analysing conflicting rules</b>: Detect when rules counteract each other, such as one rule blocking traffic that another rule is designed to allow or log.</p></li><li><p><b>Identifying disabled rules</b>: Highlight potentially important security rules that are in a disabled state, helping ensure that critical protections are not accidentally left inactive.</p></li></ul><p>Cloudy won't just summarize your rules, either. It will analyze the relationships and interactions between rules to provide actionable recommendations. For security teams managing complex sets of Custom Rules, this means less time spent auditing configurations and more confidence in your security coverage.</p><p>Available to all users, we’re excited to show how Cloudflare AI Agents can enhance the usability of our products, starting with WAF Custom Rules. But this is just the beginning.</p>
    <div>
      <h3>Cloudflare One Firewall policies</h3>
      <a href="#cloudflare-one-firewall-policies">
        
      </a>
    </div>
    
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4CXHQVlO3GGqwp6DGyOklJ/3068c434c4a303cf22c328c302947fcb/BLOG-2692_3.png" />
          </figure><p>We've also added Cloudy to <a href="https://www.cloudflare.com/static/e9ea5dfaa69c554cc1cbaa7f3e441acf/Cloudflare_One_at_a_glance.pdf"><u>Cloudflare One</u></a>, our SASE platform, where enterprises manage the security of their employees and tools from a single dashboard.</p><p>In <a href="https://www.cloudflare.com/zero-trust/products/gateway/"><u>Cloudflare Gateway</u></a>, our Secure Web Gateway offering, customers can configure policies to manage how employees do their jobs on the Internet. These Gateway policies can block access to malicious sites, prevent data loss violations, and control user access, among other things.</p><p>But similar to WAF Custom Rules, Gateway policy configurations can become overcomplicated and bogged down over time, with old, forgotten policies that do who-knows-what. Multiple selectors and operators working in counterintuitive ways. Some blocking traffic, others allowing it. Policies that include several user groups, but carve out specific employees. We’ve even seen policies that block hundreds of URLs in a single step. All to say, managing years of Gateway policies can become overwhelming.</p><p>So, why not have Cloudy summarize Gateway policies in a way that makes their purpose clear and concise?</p><p>Available to all Cloudflare Gateway users (create a free Cloudflare One account <a href="https://www.cloudflare.com/zero-trust/products/"><u>here</u></a>), Cloudy will now provide a quick summary of any Gateway policy you view. It’s now easier than ever to get a clear understanding of each policy at a glance, allowing admins to spot misconfigurations, redundant controls, or other areas for improvement, and move on with confidence.</p>
    <div>
      <h3>Built on Workers AI</h3>
      <a href="#built-on-workers-ai">
        
      </a>
    </div>
    <p>At the heart of our new functionality is <a href="https://www.cloudflare.com/developer-platform/products/workers-ai/"><u>Cloudflare Workers AI</u></a> (yes, the same version that everyone uses!) that leverages advanced <a href="https://www.cloudflare.com/learning/ai/what-is-large-language-model/">large language models (LLMs) </a>to process vast amounts of information; in this case, policy and rules data. Traditionally, manually reviewing and contextualizing complex configurations is a daunting task for any security team. With Workers AI, we automate that process, turning raw configuration data into consistent, clear summaries and actionable recommendations.</p>
    <div>
      <h4><b>How it works</b></h4>
      <a href="#how-it-works">
        
      </a>
    </div>
    <p>Cloudflare Workers AI ingests policy and rule configurations from your Cloudflare setup and combines them with a purpose-built LLM prompt. We leverage the same <a href="https://developers.cloudflare.com/workers-ai/models/"><u>publicly-available LLM models</u></a> that we offer our customers, and then further enrich the prompt with some additional data to provide it with context. For this specific task of analyzing and summarizing policy and rule data, we provided the LLM:</p><ul><li><p><b>Policy &amp; rule data</b>: This is the primary data itself, including the current configuration of policies/rules for Cloudy to summarize and provide suggestions against.</p></li><li><p><b>Documentation on product abilities:</b> We provide the model with additional technical details on the policy/rule configurations that are possible with each product, so that the model knows what kind of recommendations are within its bounds.</p></li><li><p><b>Enriched datasets</b>: Where WAF Custom Rules or CF1 Gateway policies leverage other ‘lists’ (e.g., a WAF rule referencing multiple countries, a Gateway policy leveraging a specific content category), the list item(s) selected must be first translated from an ID to plain-text wording so that the LLM can interpret which policy/rule values are actually being used.</p></li><li><p><b>Output instructions</b>: We specify to the model which format we’d like to receive the output in. In this case, we use JSON for easiest handling.</p></li><li><p><b>Additional clarifications</b>: Lastly, we explicitly instruct the LLM to be sure about its output, valuing that aspect above all else. Doing this helps us ensure that no hallucinations make it to the final output.</p></li></ul><p>By automating the analysis of your WAF Custom Rules and Gateway policies, Cloudflare Workers AI not only saves you time but also enhances security by reducing the risk of human error. You get clear, actionable insights that allow you to streamline your configurations, quickly spot anomalies, and maintain a strong security posture—all without the need for labor-intensive manual reviews.</p>
    <div>
      <h4>What’s next for Cloudy</h4>
      <a href="#whats-next-for-cloudy">
        
      </a>
    </div>
    <p>Beta previews of Cloudy are live for all Cloudflare customers today. But this is just the beginning of what we envision for AI-powered functionality across our entire product suite.</p><p>Throughout the rest of 2025, we plan to roll out additional <a href="https://www.cloudflare.com/learning/ai/what-is-agentic-ai/">AI agent capabilities</a> across other areas of Cloudflare. These new features won’t just help customers manage security more efficiently, but they’ll also provide intelligent recommendations for optimizing performance, streamlining operations, and enhancing overall user experience.</p><p>We’re excited to hear your thoughts as you get to meet Cloudy and try out these new AI features – send feedback to us at <a><u>cloudyfeedback@cloudflare.com</u></a>, or post your thoughts on X, LinkedIn, or Mastodon tagged with #SecurityWeek! Your feedback will help shape our roadmap for AI enhancement, and bring our users smarter, more efficient tooling that helps everyone get more secure.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5gGseiyO6pbddpdSVQ5wfJ/ae1d0d5a2f8ec01f571de7a85b655370/BLOG-2692_4.png" />
          </figure>
    <div>
      <h3>Watch on Cloudflare TV</h3>
      <a href="#watch-on-cloudflare-tv">
        
      </a>
    </div>
    <div>
  
</div><p></p> ]]></content:encoded>
            <category><![CDATA[Workers AI]]></category>
            <category><![CDATA[Cloudflare Workers]]></category>
            <category><![CDATA[Developer Platform]]></category>
            <category><![CDATA[Developers]]></category>
            <category><![CDATA[LLM]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[SASE]]></category>
            <category><![CDATA[Secure Web Gateway]]></category>
            <category><![CDATA[Beta]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">7ywSxti5U7fxjKbqmVXpGW</guid>
            <dc:creator>Alex Dunbrack</dc:creator>
            <dc:creator>Harsh Saxena</dc:creator>
        </item>
        <item>
            <title><![CDATA[Resolving a Mutual TLS session resumption vulnerability]]></title>
            <link>https://blog.cloudflare.com/resolving-a-mutual-tls-session-resumption-vulnerability/</link>
            <pubDate>Fri, 07 Feb 2025 20:13:14 GMT</pubDate>
            <description><![CDATA[ Cloudflare patched a Mutual TLS (mTLS) vulnerability (CVE-2025-23419) reported via its Bug Bounty Program. The flaw in session resumption allowed client certificates to authenticate across different ]]></description>
            <content:encoded><![CDATA[ <p>On January 23, 2025, Cloudflare was notified via its <a href="https://www.cloudflare.com/en-gb/disclosure/"><u>Bug Bounty Program</u></a> of a vulnerability in Cloudflare’s <a href="https://www.cloudflare.com/en-gb/learning/access-management/what-is-mutual-tls/"><u>Mutual TLS</u></a> (mTLS) implementation. </p><p>The vulnerability affected customers who were using mTLS and involved a flaw in our session resumption handling. Cloudflare’s investigation revealed <b>no</b> evidence that the vulnerability was being actively exploited. And tracked as<a href="https://nvd.nist.gov/vuln/detail/CVE-2025-23419"> <u>CVE-2025-23419</u></a>, Cloudflare mitigated the vulnerability within 32 hours after being notified. Customers who were using Cloudflare’s API shield in conjunction with <a href="https://developers.cloudflare.com/waf/custom-rules/"><u>WAF custom rules</u></a> that validated the issuer's Subject Key Identifier (<a href="https://developers.cloudflare.com/ruleset-engine/rules-language/fields/reference/cf.tls_client_auth.cert_issuer_ski/"><u>SKI</u></a>) were not vulnerable. Access policies such as identity verification, IP address restrictions, and device posture assessments were also not vulnerable.</p>
    <div>
      <h2>Background</h2>
      <a href="#background">
        
      </a>
    </div>
    <p>The bug bounty report detailed that a client with a valid mTLS certificate for one Cloudflare zone could use the same certificate to resume a TLS session with another Cloudflare zone using mTLS, without having to authenticate the certificate with the second zone.</p><p>Cloudflare customers can implement mTLS through Cloudflare <a href="https://developers.cloudflare.com/api-shield/security/mtls/"><u>API Shield</u></a> with Custom Firewall Rules and the <a href="https://developers.cloudflare.com/cloudflare-one/identity/devices/access-integrations/mutual-tls-authentication/"><u>Cloudflare Zero Trust</u></a> product suite. Cloudflare establishes the TLS session with the client and forwards the client certificate to Cloudflare’s Firewall or Zero Trust products, where customer policies are enforced.</p><p>mTLS operates by extending the standard TLS handshake to require authentication from both sides of a connection - the client and the server. In a typical TLS session, a client connects to a server, which presents its <a href="https://www.cloudflare.com/application-services/products/ssl/">TLS certificate</a>. The client verifies the certificate, and upon successful validation, an encrypted session is established. However, with mTLS, the client also presents its own TLS certificate, which the server verifies before the connection is fully established. Only if both certificates are validated does the session proceed, ensuring bidirectional trust.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2FXDaK0R6cpH4IZwSlCyXk/e8f6764656d2672f9eadf4e60851614f/BLOG-2667_2.png" />
          </figure><p>mTLS is useful for <a href="https://developers.cloudflare.com/api-shield/security/mtls/"><u>securing API communications</u></a>, as it ensures that only legitimate and authenticated clients can interact with backend services. Unlike traditional authentication mechanisms that rely on credentials or <a href="https://www.cloudflare.com/en-gb/learning/access-management/token-based-authentication/"><u>tokens</u></a>, mTLS requires possession of a valid certificate and its corresponding private key.</p><p>To improve TLS connection performance, Cloudflare employs <a href="https://blog.cloudflare.com/tls-session-resumption-full-speed-and-secure/"><u>session resumption</u></a>. Session resumption speeds up the handshake process, reducing both latency and resource consumption. The core idea is that once a client and server have successfully completed a TLS handshake, future handshakes should be streamlined — assuming that fundamental parameters such as the cipher suite or TLS version remain unchanged.</p><p>There are two primary mechanisms for session resumption: session IDs and session tickets. With session IDs, the server stores the session context and associates it with a unique session ID. When a client reconnects and presents this session ID in its ClientHello message, the server checks its cache. If the session is still valid, the handshake is resumed using the cached state.</p><p>Session tickets function in a stateless manner. Instead of storing session data, the server encrypts the session context and sends it to the client as a session ticket. In future connections, the client includes this ticket in its ClientHello, which the server can then decrypt to restore the session, eliminating the need for the server to maintain session state.</p><p>A resumed mTLS session leverages previously established trust, allowing clients to reconnect to a protected application without needing to re-initiate an mTLS handshake.</p>
    <div>
      <h3>The mTLS resumption vulnerability</h3>
      <a href="#the-mtls-resumption-vulnerability">
        
      </a>
    </div>
    <p>In Cloudflare’s mTLS implementation, however, session resumption introduced an unintended behavior.  <a href="https://boringssl.googlesource.com/boringssl"><u>BoringSSL</u></a>, the TLS library that Cloudflare uses, will store the client certificate from the originating, full TLS handshake in the session. Upon resuming that session, the client certificate is not revalidated against the full chain of trust, and the original handshake's verification status is respected. To avoid this situation, BoringSSL provides an API to partition session caches/tickets between different “contexts” defined by the application. Unfortunately, Cloudflare’s use of this API was not correct, which allowed TLS sessions to be resumed when they shouldn’t have been. </p><p>To exploit this vulnerability, the security researcher first set up two zones on Cloudflare and configured them behind Cloudflare’s proxy with mTLS enabled. Once their domains were configured, the researcher authenticated to the first zone using a valid client certificate, allowing Cloudflare to issue a TLS session ticket against that zone. </p><p>The researcher then changed the TLS Server Name Indication (SNI) and HTTP Host header from the first zone (which they had authenticated with) to target the second zone (which they had <i>not</i> authenticated with). The researcher then presented the session ticket when handshaking with the second Cloudflare-protected mTLS zone. This resulted in Cloudflare resuming the session with the second zone and reporting verification status for the cached client certificate as successful,bypassing the mTLS authentication that would normally be required to initiate a session.</p><p>If you were using additional validation methods in your API Shield or Access policies – for example, checking the issuers SKI, identity verification, IP address restrictions, or device posture assessments – these controls continued to function as intended. However, due to the issue with TLS session resumption, the mTLS checks mistakenly returned a passing result without re-evaluating the full certificate chain.</p>
    <div>
      <h2>Remediation and next steps</h2>
      <a href="#remediation-and-next-steps">
        
      </a>
    </div>
    <p>We have disabled TLS session resumption for all customers that have mTLS enabled. As a result, Cloudflare will no longer allow resuming sessions that cache client certificates and their verification status.</p><p>We are exploring ways to bring back the performance improvements from TLS session resumption for mTLS customers.</p>
    <div>
      <h2>Further hardening</h2>
      <a href="#further-hardening">
        
      </a>
    </div>
    <p>Customers can further harden their mTLS configuration and add enhanced logging to detect future issues by using Cloudflare's <a href="https://developers.cloudflare.com/rules/transform/"><u>Transform Rules</u></a>, logging, and firewall features.</p><p>While Cloudflare has mitigated the issue by disabling session resumption for mTLS connections, customers may want to implement additional monitoring at their origin to enforce stricter authentication policies. All customers using mTLS can also enable additional request headers using our <a href="https://developers.cloudflare.com/rules/transform/managed-transforms/reference/#add-tls-client-auth-headers"><u>Managed Transforms</u></a> product. Enabling this feature allows us to pass additional metadata to your origin with the details of the client certificate that was used for the connection.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7eYFaZUrBYTESAZEQHsnHS/8bdb9135ab58648529cb8339c48ebb2b/BLOG-2667_3.png" />
          </figure><p>Enabling this feature allows you to see the following headers where mTLS is being utilized on a request.</p>
            <pre><code>{
  "headers": {
    "Cf-Cert-Issuer-Dn": "CN=Taskstar Root CA,OU=Taskstar\\, Inc.,L=London,ST=London,C=UK",
    "Cf-Cert-Issuer-Dn-Legacy": "/C=UK/ST=London/L=London/OU=Taskstar, Inc./CN=Taskstar Root CA",
    "Cf-Cert-Issuer-Dn-Rfc2253": "CN=Taskstar Root CA,OU=Taskstar\\, Inc.,L=London,ST=London,C=UK",
    "Cf-Cert-Issuer-Serial": "7AB07CC0D10C38A1B554C728F230C7AF0FF12345",
    "Cf-Cert-Issuer-Ski": "A5AC554235DBA6D963B9CDE0185CFAD6E3F55E8F",
    "Cf-Cert-Not-After": "Jul 29 10:26:00 2025 GMT",
    "Cf-Cert-Not-Before": "Jul 29 10:26:00 2024 GMT",
    "Cf-Cert-Presented": "true",
    "Cf-Cert-Revoked": "false",
    "Cf-Cert-Serial": "0A62670673BFBB5C9CA8EB686FA578FA111111B1B",
    "Cf-Cert-Sha1": "64baa4691c061cd7a43b24bccb25545bf28f1111",
    "Cf-Cert-Sha256": "528a65ce428287e91077e4a79ed788015b598deedd53f17099c313e6dfbc87ea",
    "Cf-Cert-Ski": "8249CDB4EE69BEF35B80DA3448CB074B993A12A3",
    "Cf-Cert-Subject-Dn": "CN=MB,OU=Taskstar Admins,O=Taskstar,L=London,ST=Essex,C=UK",
    "Cf-Cert-Subject-Dn-Legacy": "/C=UK/ST=Essex/L=London/O=Taskstar/OU=Taskstar Admins/CN=MB ",
    "Cf-Cert-Subject-Dn-Rfc2253": "CN=MB,OU=Taskstar Admins,O=Taskstar,L=London,ST=London,C=UK",
    "Cf-Cert-Verified": "true",
    "Cf-Client-Cert-Sha256": "083129c545d7311cd5c7a26aabe3b0fc76818495595cea92efe111150fd2da2",
    }
}
</code></pre>
            <p>Enterprise customers can also use our <a href="https://developers.cloudflare.com/logs/"><u>Cloudflare Log</u></a> products to add these headers via the Logs <a href="https://developers.cloudflare.com/logs/reference/custom-fields/"><u>Custom Fields</u></a> feature. For example:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3D864CsepB5U2wM1AWhYVu/ca7d3d1ca144bc4fb7ac7edddfdf5987/BLOG-2667_4.png" />
          </figure><p>This will add the following information to Cloudflare Logs.</p>
            <pre><code>"RequestHeaders": {
    "cf-cert-issuer-ski": "A5AC554235DBA6D963B9CDE0185CFAD6E3F55E8F",
    "cf-cert-sha256": "528a65ce428287e91077e4a79ed788015b598deedd53f17099c313e6dfbc87ea"
  },
</code></pre>
            <p>Customers already logging this information — either at their origin or via Cloudflare Logs — can retroactively check for unexpected certificate hashes or issuers that did not trigger any security policy.</p><p>Users are also able to use this information within their <a href="https://developers.cloudflare.com/learning-paths/application-security/firewall/custom-rules/"><u>WAF custom rules</u></a> to conduct additional checks. For example, checking the <a href="https://developers.cloudflare.com/ruleset-engine/rules-language/fields/reference/cf.tls_client_auth.cert_issuer_ski/"><u>Issuer's SKI</u></a> can provide an extra layer of security.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1YWZe9P1hhYEPJrWH4gpqi/b0a6f3c70a203032404c1ca0e2fc517c/BLOG-2667_5.png" />
          </figure><p>Customers who enabled this <a href="https://developers.cloudflare.com/api-shield/security/mtls/configure/#expression-builder"><u>additional check</u></a> were not vulnerable.</p>
    <div>
      <h2><b>Conclusion</b></h2>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>We would like to thank Sven Hebrok, Felix Cramer, Tim Storm, Maximilian Radoy, and Juraj Somorovsky of Paderborn University who responsibly disclosed this issue via our <a href="https://hackerone.com/cloudflare?type=team"><u>HackerOne Bug Bounty Program</u></a>, allowing us to identify and mitigate the vulnerability. We welcome further submissions from our community of researchers to continually improve our products' security.</p><p>Finally, we want to apologize to our mTLS customers. Security is at the core of everything we do at Cloudflare, and we deeply regret any concerns this issue may have caused. We have taken immediate steps to resolve the vulnerability and have implemented additional safeguards to prevent similar issues in the future. </p>
    <div>
      <h2><b>Timeline </b></h2>
      <a href="#timeline">
        
      </a>
    </div>
    <p><i>All timestamps are in UTC</i></p><ul><li><p><b>2025-01-23 15:40</b> – Cloudflare is notified of a vulnerability in Mutual TLS and the use of session resumption.</p></li><li><p><b>2025-01-23 16:02 to 21:06</b> – Cloudflare validates Mutual TLS vulnerability and prepares a release to disable session resumption for Mutual TLS.</p></li><li><p><b>2025-01-23 21:26</b> – Cloudflare begins rollout of remediation.</p></li><li><p><b>2025-01-24 20:15</b> – Rollout completed. Vulnerability is remediated.</p></li></ul><p></p> ]]></content:encoded>
            <category><![CDATA[Vulnerabilities]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[SASE]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">4gJhafUsmUjkevKu55304a</guid>
            <dc:creator>Matt Bullock</dc:creator>
            <dc:creator>Rushil Mehra</dc:creator>
            <dc:creator>Alessandro Ghedini</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare thwarts over 47 million cyberthreats against Jewish and Holocaust educational websites]]></title>
            <link>https://blog.cloudflare.com/cloudflare-thwarts-over-47-million-cyberthreats-against-jewish-and-holocaust/</link>
            <pubDate>Mon, 27 Jan 2025 22:07:41 GMT</pubDate>
            <description><![CDATA[ January 27 marks the International Holocaust Remembrance Day — a solemn occasion to honor the memory of the six million Jews who perished in the Holocaust, along with countless others who fell victim ]]></description>
            <content:encoded><![CDATA[ <p></p><p>January 27 marks the <a href="https://en.wikipedia.org/wiki/International_Holocaust_Remembrance_Day"><u>International Holocaust Remembrance Day</u></a> — a solemn occasion to honor the memory of the six million Jews who perished in the Holocaust, along with countless others who fell victim to the Nazi regime's campaign of hatred and intolerance. This tragic chapter in human history serves as a stark reminder of the catastrophic consequences of prejudice and extremism. </p><p>The United Nations General Assembly designated January 27 — the anniversary of the liberation of <a href="https://en.wikipedia.org/wiki/Auschwitz_concentration_camp"><u>Auschwitz-Birkenau</u></a> —  as International Holocaust Remembrance Day. This year, we commemorate the 80th anniversary of the liberation of this infamous extermination camp.</p><p>As the world reflects on this dark period, a troubling resurgence of antisemitism underscores the importance of vigilance. This growing hatred has spilled into the digital realm, with cyberattacks increasingly targeting Jewish and Holocaust remembrance and educational websites — spaces dedicated to preserving historical truth and fostering awareness.</p><p>For this reason, here at Cloudflare, we began to publish annual reports covering cyberattacks that target these organizations. These cyberattacks include <a href="https://www.cloudflare.com/learning/ddos/what-is-a-ddos-attack/"><u>DDoS attacks</u></a> as well as <a href="https://www.cloudflare.com/learning/bots/what-is-a-bot/"><u>bot</u></a> and <a href="https://www.cloudflare.com/en-gb/learning/security/what-is-web-application-security/"><u>application attacks</u></a>. The insights and trends are based on websites protected by Cloudflare. This is our fourth report, and you can view our previous Holocaust Remembrance Day blogs <a href="https://blog.cloudflare.com/tag/holocaust/"><u>here</u></a>.</p>
    <div>
      <h2>Project Galileo</h2>
      <a href="#project-galileo">
        
      </a>
    </div>
    <p>At Cloudflare, we are proud to support these vital organizations through <a href="https://www.cloudflare.com/en-gb/galileo/"><u>Project Galileo</u></a>, an initiative providing free security protections to vulnerable groups worldwide. If you or your organization could benefit from this program, consider applying today to help protect these essential platforms and the invaluable work they do.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3tyusSSEjith2HMfONmpfZ/d7a47e9faa2b0003ae4e3c2ab1c01722/BLOG-2659_2.png" />
          </figure><p><sup><i>Project Galileo overview. Source: </i></sup><a href="https://cf-assets.www.cloudflare.com/slt3lc6tev37/7bEraZE4BmpaCFfYYHxbaU/20dda9014ac14793e61daaff0783eee5/2024_Cloudflare_Impact_Report.pdf"><sup><i><u>Cloudflare 2024 Impact Report</u></i></sup></a><sup><i></i></sup></p><p>One of the organizations that we protect through Project Galileo is <a href="https://muzeon.ro/en/"><u>Muzeon</u></a>, a museum dedicated to preserving Jewish history in Cluj-Napoca, Romania. Muzeon faced significant cyberattacks that impacted their website’s performance and hindered operations before using Cloudflare.</p><p>As part of Project Galileo, Muzeon implemented Cloudflare's <a href="https://www.cloudflare.com/en-gb/ddos/"><u>DDoS mitigation</u></a>, <a href="https://www.cloudflare.com/en-gb/application-services/products/waf/"><u>Web Application Firewall (WAF)</u></a>, <a href="https://www.cloudflare.com/application-services/products/dns/"><u>Managed DNS</u></a>, and other services. These measures drastically reduced the attacks and allowed Muzeon to focus on its important mission of storytelling and preserving cultural heritage. </p><p>Cloudflare’s solutions not only protected their digital infrastructure but also freed up time for Muzeon to expand its interactive exhibits, ensuring they could continue sharing their essential work globally. You can read more about this case study <a href="https://www.cloudflare.com/en-gb/case-studies/muzeon/"><u>here</u></a>. </p>
    <div>
      <h2>Significant rise in antisemitism around the world</h2>
      <a href="#significant-rise-in-antisemitism-around-the-world">
        
      </a>
    </div>
    <p>Following the October 7, 2023, <a href="https://en.wikipedia.org/wiki/October_7_Hamas-led_attack_on_Israel"><u>Hamas-led attack</u></a> on Israel, there has been a <a href="https://en.wikipedia.org/wiki/Antisemitism_during_the_Israel%E2%80%93Hamas_war"><u>surge in global antisemitic incidents</u></a>. In the <a href="https://www.adl.org/resources/press-release/over-10000-antisemitic-incidents-recorded-us-oct-7-2023-according-adl"><u>U.S. alone</u></a> there have been more than 10,000 antisemitic incidents from October 7, 2023 to September 24, 2024, representing an over 200-percent increase compared to the incidents reported during the same period a year before. As we’ve seen, the digital world is often a mirror to the real world. As a result, it is not surprising that websites dedicated to sharing information about the Holocaust, as well as Jewish memorial and education platforms, are now increasingly being targeted online. </p>
    <div>
      <h2>Cyberattacks against Jewish and Holocaust educational websites </h2>
      <a href="#cyberattacks-against-jewish-and-holocaust-educational-websites">
        
      </a>
    </div>
    <p>For the years 2020, 2021, and 2022, the number of cyberthreats targeting Holocaust and Jewish educational and memorial websites protected by Cloudflare was, on average, 736,339 malicious HTTP requests annually.</p><p>After the October 7 Hamas-led attack, cyberattacks skyrocketed. In 2023, the amount of blocked HTTP requests surged by 872% to 35.7 million compared to 2022. Most of these cyberattacks occurred after October 7, 2023. </p><p>In 2024, the number of blocked HTTP requests exceeded 47 million — representing a 30% increase compared to 2023. Over 3 out of every 100 HTTP requests towards Holocaust and Jewish memorial and education websites protected by Cloudflare were malicious and blocked. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6p2NxGtyK3jDccp2G0MMvF/c7777304675f36f8cbe301f92a6dc5ec/BLOG-2659_3.png" />
          </figure><p><sup><i>Cyber threats against Holocaust and Jewish memorial and educational websites by year</i></sup></p>
    <div>
      <h3>Cyberattacks by quarter</h3>
      <a href="#cyberattacks-by-quarter">
        
      </a>
    </div>
    <p>In the fourth quarter of 2023, the volume of malicious requests exceeded 27 million. Throughout the first three quarters of 2024, we saw a gradual decrease in the quantity of malicious requests. But in the fourth quarter of 2024, cyberattacks spiked by 33%, to 36 million requests, following the one-year anniversary of the October 7 assault.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1YFVY3jTbMYsgbenBdor1P/6634fdf6edce5a5f3d44f34fdf017b3d/BLOG-2659_4.png" />
          </figure><p><sup><i>Cyber threats against Holocaust and Jewish memorial and educational websites by quarter</i></sup></p>
    <div>
      <h3>Cyberattacks by month</h3>
      <a href="#cyberattacks-by-month">
        
      </a>
    </div>
    <p>Breaking down the quarters into months, we can see an initial peak in October 2023 after the October 7 Hamas-led attack. The volume of cyberattacks remained elevated during November and December 2023.</p><p>Afterward, as we entered 2024, the quantity and percentage of cyberattacks against these websites significantly decreased. In November, over a third (34%) of all requests towards these websites were blocked, with over 36 million requests blocked that month alone.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5JGzGCm49GBBZMYfriSTpl/1f47b7b90bb5607461216fd2788c2f34/BLOG-2659_5.png" />
          </figure><p><sup><i>Cyber threats against Holocaust and Jewish memorial and educational websites by month</i></sup></p>
    <div>
      <h2>Helping build a safer Internet and a better world</h2>
      <a href="#helping-build-a-safer-internet-and-a-better-world">
        
      </a>
    </div>
    <p>On the International Holocaust Remembrance Day, we reflect on the importance of standing against both antisemitism and cyber threats — issues that have escalated since the October 7, 2023, Hamas-led attack. </p><p>At Cloudflare, we are unwavering in our commitment to create a safer, more inclusive Internet. The rise in antisemitism has made it even more critical to protect educational websites and communities from harmful cyber attacks. We invite everyone to join us in this fight. Even with our <a href="https://www.cloudflare.com/en-gb/plans/"><u>free plan</u></a>, we offer strong security and performance, ensuring that vital resources and websites remain safe and accessible. By working together, we can protect the lessons of history and foster a more secure digital world for all.</p> ]]></content:encoded>
            <category><![CDATA[DDoS]]></category>
            <category><![CDATA[DDoS Reports]]></category>
            <category><![CDATA[Attacks]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Network Services]]></category>
            <category><![CDATA[Judeoflare]]></category>
            <category><![CDATA[Holocaust]]></category>
            <guid isPermaLink="false">4tycw0mGr6bpp3AbV17wEK</guid>
            <dc:creator>Omer Yoachimik</dc:creator>
        </item>
        <item>
            <title><![CDATA[Global elections in 2024: Internet traffic and cyber threat trends]]></title>
            <link>https://blog.cloudflare.com/elections-2024-internet/</link>
            <pubDate>Mon, 23 Dec 2024 14:00:00 GMT</pubDate>
            <description><![CDATA[ In 2024, as elections took place across over 60 countries, the Internet became both a battleground for cyberattacks and a vital platform for democratic engagement. ]]></description>
            <content:encoded><![CDATA[ <p>Elections define the course of <a href="https://en.wikipedia.org/wiki/History_of_democracy#/media/File:Age_of_democracies_at_the_end_of_2015,_OWID.svg"><u>democracies</u></a> (even as there are <a href="https://en.wikipedia.org/wiki/History_of_democracy#/media/File:Electoral_democracies.svg"><u>several </u></a>types of democracies), and 2024 was a landmark year, with over 60 countries — plus the European Union — holding national elections, impacting half the world’s population. As highlighted in <a href="https://www.pewresearch.org/global/2024/12/11/global-elections-in-2024-what-we-learned-in-a-year-of-political-disruption/"><u>Pew Research’s global elections report</u></a>, this was a year of “political disruption,” where the Internet was a relevant stage for both democratic engagement and cyber threats.</p><p>At Cloudflare, with our presence in <a href="https://www.cloudflare.com/network/"><u>over 330 cities and 120 countries and interconnection with 12,500 networks</u></a>, we’ve witnessed firsthand the digital impact of these elections. From monitoring Internet traffic patterns to mitigating cyberattacks, we’ve observed trends that reveal how elections increasingly play out online. As detailed in our just-published <a href="https://www.cloudflare.com/impact/"><u>Cloudflare Impact report</u></a>, we’ve also worked to protect media outlets, political campaigns, and help elections worldwide.</p><p>Here’s the map of countries with national elections that took place in 2024, from our <a href="https://radar.cloudflare.com/reports/elections-2024"><u>elections report</u></a>.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3lto8GbhqRNphtxGcSipqj/9422932d5766cd35a050b499161c874f/BLOG-2648_2.png" />
          </figure><p>
We’ve been monitoring 2024 elections worldwide on our <a href="https://blog.cloudflare.com/tag/election-security/"><u>blog</u></a> and in the <a href="https://radar.cloudflare.com/reports/elections-2024"><u>2024 Election Insights report</u></a> available on <a href="https://radar.cloudflare.com/reports/elections-2024"><u>Cloudflare Radar</u></a>.</p><p>In terms of Internet patterns, we’ve observed how cyber activity in 2024 continues to intersect with real-world events. Online attacks are clearly a significant part of elections, even when unsuccessful in disrupting candidates or election-related websites due to strong protections. Additionally, Internet traffic patterns often vary on election day depending on the country, and government-directed <a href="https://radar.cloudflare.com/year-in-review/2024#internet-outages"><u>Internet shutdowns</u></a> continue, including ones related to elections. Email activity is also influenced, especially for more popular candidates in “<a href="https://www.pewresearch.org/global/2024/12/11/global-elections-in-2024-what-we-learned-in-a-year-of-political-disruption/"><u>polarized battles</u></a>.”</p><p>Let’s start our review with attacks. </p>
    <div>
      <h2>Rising threats: political and election-related cyberattacks in 2024</h2>
      <a href="#rising-threats-political-and-election-related-cyberattacks-in-2024">
        
      </a>
    </div>
    <p>During 2024, elections saw a rise in DDoS attacks targeting political campaigns, parties, and election infrastructure.</p><p>In the <b>United States</b>, over 6 billion malicious requests were blocked between November 1-6. A set of DDoS attacks leading up to Election Day on November 5 targeted one of the campaigns with multiple days of attacks, peaking at 700,000 requests per second and sustaining 8 Gbps during major strikes. Key attack tactics included cache-busting, geodiverse patterns, and randomized user agents.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2LUqmbf6tgYWBxAUhux8tf/401681b4b325ff8a90acae824060cd32/BLOG-2648_3.png" />
          </figure><p>State and local websites also faced increased threats, with 290 million malicious requests blocked since September under Cloudflare’s Athenian Project. Compared to 2020, attacks in 2024 were far more intense, underscoring the growing need for robust cybersecurity to protect elections from disruption.</p><p>In <b>France</b>, DDoS attacks plagued multiple political parties, with peaks reaching 96,000 requests per second (rps) on election day, July 7. Additional details are available in our related <a href="https://blog.cloudflare.com/2024-french-elections-political-cyber-attacks-and-internet-traffic-shifts/"><u>blog post</u></a>.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2vXeTFoMMMprBcFQHtGT4E/d799e896740ebd74a2803e6d21e6b1d1/BLOG-2648_4.png" />
          </figure><p>In the <b>United Kingdom</b>, DDoS attacks targeted political parties, with the most severe incident affecting a campaign website, reaching 156,000 rps shortly after the results were announced on election day. Additional details are available in our related <a href="https://blog.cloudflare.com/uk-election-day-2024-traffic-trends-and-attacks-on-political-parties/"><u>blog post</u></a>.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/43DeCSFeJHsPMK3MqgGhMJ/b0cf8050e2751e4fc2cb745ccb93f839/BLOG-2648_5.png" />
          </figure><p>During the European parliamentary elections in early June, cyberattacks targeted several political websites around election days. Notably, a significant DDoS attack focused on two politically-related websites in the <b>Netherlands</b> on June 5–6 (with June 6 being election day), peaking at 73,000 rps.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1Z5F68CqmuIftAd7mNyzht/e5181cdf2fc64bd2f5b3c3a61fbf0374/BLOG-2648_6.png" />
          </figure><p>In <b>Romania</b>, the weeks leading up to the election cycle culminating in the December 1 parliamentary elections saw DDoS attacks targeting political party websites and news organizations.</p><p>In <b>South Africa</b>, where the general election took place on May 29, there was a relevant DDoS attack in the weeks leading up to the election, targeting a major news site within the country for several days, with a peak on May 7 of 54,000 requests per second.</p><p>In <b>Portugal</b>, several DDoS attacks targeted political party websites on election day, March 10, particularly after polling stations closed. One political party’s websites experienced a peak of 69,000 rps on May 11 at 00:50 UTC.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3Bh3PXP8WCMOz2hW1ndHJO/84f89609bd8d232104ee682ed04d5fe8/BLOG-2648_7.png" />
          </figure><p>In <b>Taiwan</b>, a local fact-checking website faced a DDoS attack three days before the election, on January 10.</p><p>In <b>Japan</b>, a DDoS attack targeted a website used to report scams and misinformation a week before the October 27 election.</p><p>While some of these rates may seem small to Cloudflare, they can be devastating for websites not well-protected against such high levels of traffic. DDoS attacks not only overwhelm systems but also serve, if successful, as a distraction for IT teams while attackers attempt other types of breaches.</p>
    <div>
      <h3>Election-related Internet shutdowns </h3>
      <a href="#election-related-internet-shutdowns">
        
      </a>
    </div>
    <p>Several times in 2024, election-related Internet shutdowns were imposed by authorities for various reasons, such as in the Comoros and Pakistan.</p><p><b>Comoros</b>, a small archipelago country in Southeastern Africa with a population of less than 1 million, held presidential elections on January 14, which led to <a href="https://www.bbc.com/news/world-africa-68027892"><u>protests</u></a> against the re-election of President Azali Assoumani. Authorities shut down the Internet on January 17, causing a <a href="https://x.com/CloudflareRadar/status/1748326986936635764"><u>50%</u></a> drop in traffic compared to the previous week, lasting for two days.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/72ba6O4SEVjDesw4W9hUTP/7a5e06d815f8dcefc91599d030ef5e99/BLOG-2648_8.png" />
          </figure><p><b>Pakistan’s</b> general election day on February 8 was marked by <a href="https://blog.cloudflare.com/q1-2024-internet-disruption-summary/#pakistan"><u>an Internet shutdown targeting mobile networks</u></a>. The outage began around 02:00 UTC, reducing Internet traffic by 50% compared to the previous week. Traffic only began recovering after 15:00, highlighting the severe impact of government-initiated shutdowns on Internet connectivity.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7J1emwVOlzOXIqgQicFF0j/76b7410baba969406a138a9a2ce444d9/BLOG-2648_9.png" />
          </figure><p>In <b>Mauritius</b>, an island nation in the Indian Ocean with under 2 million residents, the <a href="https://apnews.com/article/mauritius-social-media-suspension-elections-pravind-jugnauth-2e4e13fcd2ab37c32f85e4d042726022"><u>government suspended access to social media</u></a> platforms from November 1 to November 11 ahead of the November 10 parliamentary elections. </p>
    <div>
      <h2>Other election-related Internet traffic trends </h2>
      <a href="#other-election-related-internet-traffic-trends">
        
      </a>
    </div>
    <p>Election-day Internet traffic patterns often reflect a country’s dominant device usage, with mobile-first nations like Indonesia, Mozambique, and Ghana experiencing noticeable traffic drops after polling stations closed. While mobile-friendly countries generally see steady or higher weekend traffic compared to desktop-focused regions like Europe and the Americas, no consistent trend emerged linking device preference to overall election-day traffic increases or decreases.</p><p>Here’s a world map from our <a href="https://radar.cloudflare.com/year-in-review/2024/"><u>Year in Review 2024</u></a> showing countries where mobile (purple) or desktop (green) dominates Internet traffic.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/PkHEsQJb6AQXtjWkRYfXP/f3d1c9d2d5190f9bd76cbbb1491b3e05/BLOG-2648_10.png" />
          </figure><p>Now, let’s explore a selection of relevant elections with Internet traffic impacts, ordered by election dates:</p><p><b>Taiwan (January 13)
</b>Taiwan’s presidential election saw traffic drop slightly during polling hours, especially in the morning with an 8% drop. Traffic returned to usual levels after 17:00 local time. Post-election, traffic rose by 5% the next morning compared to the previous week.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6C1idfrGkUZFDdZY8NJXm4/4cc00af6e267508a622505fccac9571a/BLOG-2648_11.png" />
          </figure><p><b>Finland (January 28)
</b>On January 28, Finland held its presidential election. Internet traffic dropped by 24% at 11:00 local time, coinciding with higher voter turnout in the morning. A second noticeable drop of 13% occurred at 20:00 when polling stations closed and TV stations broadcast initial projections, though traffic was slightly higher than usual afterward.</p><p><b>Indonesia (February 14) 
</b>Indonesia held its general election on February 14. With over 200 million voters spread across 17,000 islands, it likely had the highest number of voters on a single day, unlike India’s multi-week election. During polling hours (08:00 to 13:00 local time), Internet traffic dropped by up to 15%. Traffic remained lower than the previous week for the rest of the day, with drops ranging from 8% to 16% throughout the night. Mobile device usage surged to 77%, the highest of the year, reflecting Indonesia’s mobile-first Internet culture. Traffic recovered the next morning, surpassing the previous week’s levels.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6GW0q1qUfbJcPbFjd21Vv/965626dabdc6ca4e3eb9e961cdec858a/BLOG-2648_12.png" />
          </figure><p><b>Portugal (March 10)
</b>Portugal’s parliamentary election on March 10 saw a sharp 16% traffic drop at 20:00 local time when TV stations began broadcasting projections. Traffic picked up after that and remained stable during the day.</p><p><b>Russia (March 17)
</b>Russia’s presidential election showed steady Internet traffic throughout the day but experienced a 7% decrease after polls closed as results and reactions were broadcast on TV. Unlike other countries, where post-election traffic surges are common, Russia’s pattern reflects the strong influence of broadcast media on election coverage.</p><p><b>South Korea (April 10)
</b>South Korea held legislative elections on April 10. Traffic was higher than usual before 05:00 local time but dropped 14% by 07:15 after polling stations opened at 06:00. By 11:45, traffic had rebounded above typical levels. After polling stations closed at 18:00, traffic dropped again, with a 7% decline compared to the previous week.</p><p><b>India (April 19–June 1) - </b><a href="https://blog.cloudflare.com/internet-insights-on-2024-elections-in-the-netherlands-south-africa-iceland-india-and-mexico/"><b><u>related blog post</u></b></a>
India’s seven-phase general election saw significant Internet traffic fluctuations. May 7 recorded the largest nationwide traffic dip of 6%, with populous states like Uttar Pradesh seeing a 9% drop and Maharashtra experiencing a 17% decline. On the final election day (June 1), mobile device usage peaked at 68%, the highest of the year. These patterns underscore India’s mobile-first Internet habits and its diverse election timelines.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3G1p1RGYaAJy2t85MQkOmf/1b9e666380db8ca6cb5a241092466e3f/BLOG-2648_13.png" />
          </figure><p><b>North Macedonia (April 24 &amp; May 8)
</b>North Macedonia’s two-round presidential election featured a 56% traffic increase after 11:00 local time on May 8, sustained throughout the day. Similar, albeit smaller, trends were observed during the first round on April 24.</p><p><b>Panama (May 5)
</b>On May 5, Panama’s presidential and parliamentary election day, Internet traffic dropped significantly while voting stations were open, with a 23% decrease in the afternoon and 25% lower traffic at 21:30 local time as results were announced. Traffic picked up after that.</p><p><b>South Africa (May 29) - </b><a href="https://blog.cloudflare.com/internet-insights-on-2024-elections-in-the-netherlands-south-africa-iceland-india-and-mexico/"><b><u>related blog post</u></b></a>
On May 29, South Africa’s general election saw Internet traffic decrease by 16% at 05:45 and remain lower throughout polling hours. Traffic surged by 25% the night before the election, peaking at midnight. Post-election, traffic increased by up to 12% early on May 30, highlighting the transition from offline to online engagement.</p><p><b>Mexico (June 2) - </b><a href="https://blog.cloudflare.com/internet-insights-on-2024-elections-in-the-netherlands-south-africa-iceland-india-and-mexico/"><b><u>related blog post</u></b></a>
Mexico’s general election on June 2 saw a 3% daily traffic drop, with hourly dips of up to 11% during polling hours (08:00–20:00 local time). Traffic surged by 14% at 01:30 the following day as results were announced, peaking at 8% above the previous week by 22:00 local time.</p><p><b>Iceland (June 1)
</b>Iceland’s presidential election on June 1 saw minor Internet traffic drops, including a 12% dip between 14:00 and 16:00 local time, but traffic increased at night by as much as 11% at 20:00. The day after, traffic rose by 26% compared to the previous week. Iceland elected Halla Tómasdóttir as its second female president.</p><p><b>European Union (June 6–9) - </b><a href="https://blog.cloudflare.com/exploring-the-2024-eu-election-internet-traffic-trends-and-cybersecurity-insights/"><b><u>related blog post</u></b></a>
The 2024 European Parliament elections showed notable Internet traffic shifts and cybersecurity challenges. The Czech Republic and Slovakia experienced traffic drops of over 10%, while Finland and Ireland saw moderate declines. Key speeches, such as Belgian Prime Minister Alexander De Croo’s resignation and French President Macron’s snap election announcement, also caused traffic fluctuations.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7s9Gc0c394zNszAUuc23Jb/e63c55e6477c875b8427469b881f0ec8/BLOG-2648_14.png" />
          </figure><p><sup><i>Source: Cloudflare; created with Datawrapper</i></sup></p><p><b>Iran (June 28)
</b>Iran’s presidential election saw significant traffic fluctuations, with traffic falling by 16% after 17:30 local time. Extended polling hours (including at night) led to continued drops, falling to 24% lower by 22:30. After midnight, traffic rebounded, showing a 13% increase compared to the previous week.</p><p><b>France (June 30 &amp; July 7) - </b><a href="https://blog.cloudflare.com/2024-french-elections-political-cyber-attacks-and-internet-traffic-shifts/"><b><u>related blog post</u></b></a>
France’s legislative elections brought significant Internet and cybersecurity activity. On July 7, Internet traffic dropped 16% at 20:00 local time as polling stations closed and TV broadcasts announced results. Mobile device usage surged to 58%, and DNS traffic to news outlets spiked by 250% during the first round and by 244% on runoff day, reflecting heightened public interest.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3X3WZo3RMQu9944oUtc23V/2e2c61c3cc0d77045ff8fcd7ff0af8e2/BLOG-2648_15.png" />
          </figure><p><b>United Kingdom (July 4) - </b><a href="https://blog.cloudflare.com/uk-election-day-2024-traffic-trends-and-attacks-on-political-parties/"><b><u>related blog post</u></b></a>
The UK’s general election on July 4 saw the Labour Party win a majority after 14 years of Conservative rule. Internet traffic declined slightly during voting hours, with a 2% drop at noon, before surging in the evening as results were announced. Northern Ireland experienced the sharpest traffic drop (10%), compared to 6% in Scotland and 5% in Wales. DNS traffic to election-related domains peaked with increases of 600% at 22:00 and 671% at 04:00 the following day.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1O4VzkC2RZXUoSiaULXHir/b74a889b506a40ba0ff8f5894055b0b0/BLOG-2648_16.png" />
          </figure><p><b>Sri Lanka (September 21)
</b>Sri Lanka’s presidential election caused a 9% morning traffic dip and an 18% post-election surge after polls closed. Results triggered a 109% traffic increase at 03:00 local time on September 22.</p><p><b>Tunisia (October 6)
</b>Tunisia’s presidential election saw a 15% traffic dip at 17:00, followed by a 13% decline at 19:30 when results started arriving. The steady traffic decrease highlights the evening focus on offline engagement and result tracking.</p><p><b>Mozambique (October 9)
</b>Mozambique’s election drove an Internet traffic drop throughout the day, falling as much as 51% by 20:30 local time, and continuing lower than usual after that. A post-election surge of 16% occurred at 01:30. The election, held on a public holiday, resulted in a 31% daily traffic drop compared to the previous week.</p><p><b>Georgia (October 26)
</b>When Georgia held its parliamentary election on October 26, Internet traffic was 11% higher than the previous week, peaking at 67% above normal around 23:00 when results were announced. Unlike other countries, traffic only dipped slightly (2%) in the afternoon during polling hours.</p><p><b>Japan (October 27)
</b>Japan’s House of Representatives election saw Internet traffic decrease by 4% at 20:00 after polling stations closed, but it rose later in the evening.</p><p><b>Botswana (October 30)
</b>A traffic drop was observed throughout the day of Botswana’s general election, with a 42% decrease around 21:30 local time compared to the previous week.</p><p><b>United States (November 5) - </b><a href="https://blog.cloudflare.com/exploring-internet-traffic-shifts-and-cyber-attacks-during-the-2024-us-election/"><b><u>related blog post</u></b></a>
The US elections saw a 15% spike in Internet traffic, particularly after polls closed, with the Midwest leading. There were also specific spikes related to key moments during election night, as the next chart shows: </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1pSMZDroAQWViUyhwvvLEs/ccb47a566c67069350ca19ef6b241ce6/BLOG-2648_17.png" />
          </figure><p>DNS traffic surged by 756% to polling services and 325% to news sites. As highlighted in our recent <a href="https://cfl.re/4ipIdhZ"><u>Internet Services Year in Review blog post</u></a>, the US election also boosted DNS traffic and ranking positions for CNN, Fox News, and The New York Times, underscoring the Internet’s critical role during major political events.</p><p>In the US, beyond <a href="https://blog.cloudflare.com/exploring-internet-traffic-shifts-and-cyber-attacks-during-the-2024-us-election/"><u>election day</u></a>, we also reported in 2024 on trends surrounding the first <a href="https://blog.cloudflare.com/how-the-first-2024-us-presidential-debate-influenced-internet-traffic-and-security-trends"><u>Biden vs. Trump debate</u></a>, the <a href="https://blog.cloudflare.com/exploring-internet-traffic-during-the-2024-us-republican-national-convention"><u>attempted assassination of Trump and the Republican National Convention</u></a>, the <a href="https://blog.cloudflare.com/internet-security-trends-2024-us-democratic-convention"><u>Democratic National Convention</u></a>, and the <a href="https://blog.cloudflare.com/how-the-harris-trump-us-presidential-debate-influenced-internet-traffic"><u>Harris-Trump presidential debate</u></a>.</p><p><b>Ghana (December 7)
</b>Ghana’s general election caused mid-morning traffic drops of 11%, followed by declines of 13% and 14% after polling stations closed at 17:00. These patterns indicate offline focus during results announcements.</p><p><b>Romania (December 1)
</b>Romania’s parliamentary election showed minimal traffic fluctuations during the day, though its November 24 presidential election remains disputed.</p>
    <div>
      <h2>Email perspectives on the US presidential election</h2>
      <a href="#email-perspectives-on-the-us-presidential-election">
        
      </a>
    </div>
    <p>From a cybersecurity perspective, trending <a href="https://blog.cloudflare.com/paris-2024-olympics-recap"><u>events</u></a>, topics, and individuals often attract more emails, including malicious, phishing, and spam messages. In our analysis <a href="https://blog.cloudflare.com/exploring-internet-traffic-shifts-and-cyber-attacks-during-the-2024-us-election/"><u>earlier</u></a> this year, we focused on the US presidential elections and the two major party candidates.</p><p>From June 1 to November 5, 2024, Cloudflare processed over 19 million emails mentioning "Donald Trump" or "Kamala Harris," with Trump appearing more frequently and in higher rates of spam (12%) and malicious emails (1.3%) compared to Harris (0.6% spam, 0.2% malicious). Nearly half were sent after September, with a surge in the final 10 campaign days.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6uAzBIxewULmhPPjNaWLYu/4464d2e3953d3a527651d78252f8aa8b/BLOG-2648_18.png" />
          </figure>
    <div>
      <h2>Conclusion: the election cycle doesn’t stop</h2>
      <a href="#conclusion-the-election-cycle-doesnt-stop">
        
      </a>
    </div>
    <p>As a global election year, 2024 underscored how deeply the Internet is woven into the democratic process, serving both as a tool for engagement and a target for disruption. From relevant DDoS attacks to government-imposed Internet shutdowns, the challenges faced during these elections reflect a growing need for robust cybersecurity measures to safeguard critical infrastructure and ensure free, fair electoral processes.</p><p>In this context, Germany has announced an anticipated <a href="https://en.wikipedia.org/wiki/2025_German_federal_election"><u>federal election for February 23, 2025</u></a>, following the collapse of its governing coalition during the 2024 government crisis. This snap election joins others in France and the UK, reflecting a growing trend of political instability requiring urgent electoral responses.</p><p>Looking ahead, the increasing frequency and complexity of cyber threats, such as DDoS attacks on campaigns and election infrastructure, demand proactive defenses. Shutdowns like those in Pakistan and Comoros, along with surges in phishing and misinformation, highlight the need for closer collaboration between governments, technology providers, and civil society to safeguard democracy in the digital era.</p><p>If you want to follow more trends and insights about the Internet and elections in particular, you can check <a href="https://radar.cloudflare.com/"><u>Cloudflare Radar</u></a>, and more specifically our new <a href="https://radar.cloudflare.com/reports/elections-2024"><u>2024 Elections Insights</u></a> report.</p> ]]></content:encoded>
            <category><![CDATA[Radar]]></category>
            <category><![CDATA[Elections]]></category>
            <category><![CDATA[DDoS]]></category>
            <category><![CDATA[Trends]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">20PQRE3QVidqRIeb9OYby8</guid>
            <dc:creator>João Tomé</dc:creator>
        </item>
        <item>
            <title><![CDATA[Robotcop: enforcing your robots.txt policies and stopping bots before they reach your website]]></title>
            <link>https://blog.cloudflare.com/ai-audit-enforcing-robots-txt/</link>
            <pubDate>Tue, 10 Dec 2024 14:00:00 GMT</pubDate>
            <description><![CDATA[ The AI Crawl Control (formerly AI Audit) now allows you to quickly see which AI services are honoring your robots.txt policies and then automatically enforce the policies against those that aren’t.
 ]]></description>
            <content:encoded><![CDATA[ <p>Cloudflare’s <a href="https://blog.cloudflare.com/cloudflare-ai-audit-control-ai-content-crawlers/"><u>AI Crawl Control </u><i><u>(formerly AI Audit)</u></i></a><i> </i>dashboard allows you to easily understand how AI companies and services access your content. AI Crawl Control gives a summary of request counts broken out by bot, detailed path summaries for more granular insights, and the ability to filter by categories like <b>AI Search</b> or <b>AI Crawler</b>.</p><p>Today, we're going one step further. You can now quickly see which AI services are honoring your robots.txt policies, which aren’t, and then programmatically enforce these policies. </p>
    <div>
      <h3>What is robots.txt?</h3>
      <a href="#what-is-robots-txt">
        
      </a>
    </div>
    <p><a href="https://www.cloudflare.com/learning/bots/what-is-robots-txt/"><u>Robots.txt</u></a> is a plain text file hosted on your domain that implements the <a href="https://www.rfc-editor.org/rfc/rfc9309.html"><u>Robots Exclusion Protocol</u></a>, a standard that has been around since 1994. This file tells crawlers like Google, Bing, and many others which parts of your site, if any, they are allowed to access. </p><p>There are many reasons why site owners would want to define which portions of their websites crawlers are allowed to access: they might not want certain content available on search engines or social networks, they might trust one platform more than another, or they might simply want to reduce automated traffic to their servers.</p><p>With the advent of <a href="https://www.cloudflare.com/learning/ai/what-is-generative-ai/"><u>generative AI</u></a>, AI services have started crawling the Internet to collect training data for their models. These models are often proprietary and commercial and are used to generate new content. Many content creators and publishers that want to exercise control over how their content is used have started using robots.txt to declare policies that cover these AI bots, in addition to the traditional search engines.</p><p>Here’s an abbreviated real-world example of the robots.txt policy from a top online news site:</p>
            <pre><code>User-agent: GPTBot
Disallow: /

User-agent: ChatGPT-User
Disallow: /

User-agent: anthropic-ai
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: Bytespider
Disallow: /
</code></pre>
            <p>This policy declares that the news site doesn't want ChatGPT, Anthropic AI, Google Gemini, or ByteDance’s Bytespider to crawl any of their content.</p>
    <div>
      <h3>From voluntary compliance to enforcement</h3>
      <a href="#from-voluntary-compliance-to-enforcement">
        
      </a>
    </div>
    <p>Compliance with the Robots Exclusion Protocol has historically been voluntary. </p><p>That’s where our new feature comes in. We’ve extended <a href="https://blog.cloudflare.com/cloudflare-ai-audit-control-ai-content-crawlers/"><u>AI Crawl Control</u></a> to give our customers both the visibility into how AI services providers honor their robots.txt policies <i>and</i> the ability to enforce those policies at the network level in your <a href="https://developers.cloudflare.com/waf/"><u>WAF</u></a>. </p><p>Your robots.txt file declares your policy, but now we can help you enforce it. You might even call it … your Robotcop.  </p>
    <div>
      <h3>How it works</h3>
      <a href="#how-it-works">
        
      </a>
    </div>
    <p>AI Crawl Control takes the robots.txt files from your web properties, parses them, and then matches their rules against the AI bot traffic we see for the selected property. The summary table gives you an aggregated view of the number of requests and violations we see for every Bot across all paths. If you hover your mouse over the Robots.txt column, we will show you the defined policies for each Bot in the tooltip. You can also filter by violations from the top of the page. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/o2hHH0Nm68muUzaxmbx7E/0b9c2acfb33f2ca2d59e00625b4d0fc7/BLOG-2619_2.png" />
          </figure><p>In the “Most popular paths” section, whenever a path in your site gets traffic that has violated your policy, we flag it for visibility. Ideally, you wouldn't see violations in the Robots.txt column — if you do see them, someone's not complying.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1o5sChT2d6QK8JNPejImVk/79590e1721644a2fd067784bb9ce862e/BLOG-2619_3.png" />
          </figure><p>But that's not all… More importantly, AI Crawl Control allows you to enforce your robots.txt policy at the network level. By pressing the "Enforce robots.txt rules" button on the top of the summary table, we automatically translate the rules defined for AI Bots in your robots.txt into an advanced firewall rule, redirect you to the WAF configuration screen, and allow you to deploy the rule in our network.</p><p>This is how the robots.txt policy mentioned above looks after translation:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5qYJG3RcvrDxzVDtb28Q2J/d73d7dcea94acb261e9fc525427c2e77/BLOG-2619_4.png" />
          </figure><p>Once you deploy a WAF rule built from your robots.txt policies, you are no longer simply requesting that AI services respect your policy, you're enforcing it.</p>
    <div>
      <h3>Conclusion</h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>With AI Crawl Control, we are giving our customers even more visibility into how AI services access their content, helping them define their policies and then enforcing them at the network level.</p><p>This feature is live today for all Cloudflare customers. Simply log into the dashboard and navigate to your domain to begin auditing the bot traffic from AI services and enforcing your robots.txt directives.</p> ]]></content:encoded>
            <category><![CDATA[AI]]></category>
            <category><![CDATA[Network Services]]></category>
            <category><![CDATA[Application Services]]></category>
            <category><![CDATA[security.txt]]></category>
            <guid isPermaLink="false">6Bi6mGvw8vrskNZ7Mmp73F</guid>
            <dc:creator>Celso Martinho</dc:creator>
            <dc:creator>Will Allen</dc:creator>
            <dc:creator>Nelson Duarte</dc:creator>
        </item>
        <item>
            <title><![CDATA[Reaffirming our commitment to free]]></title>
            <link>https://blog.cloudflare.com/cloudflares-commitment-to-free/</link>
            <pubDate>Fri, 27 Sep 2024 13:00:00 GMT</pubDate>
            <description><![CDATA[ Today Cloudflare reaffirms its commitment to offering a robust Free service tier that continues to improve. We share why Free is a cornerstone of our business strategy, and how it contributes to building a better Internet.
 ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Cloudflare launched our free tier <a href="https://www.cloudflare.com/press-releases/2010/cloudflare-launches-at-techcrunch-disrupt/"><u>at the same time our company launched</u></a> — fourteen years ago, on September 27, 2010. Of course, a bit has changed since then — there are now millions of Internet properties behind Cloudflare. As we’ve grown in size and amassed millions of free customers, one of the questions we often get asked is: how can Cloudflare afford to do this at such scale?</p><p>Cloudflare always has, and always will, offer a generous free version for public-facing applications (<a href="https://www.cloudflare.com/application-services/products/"><u>Application Services</u></a>), internal private networks and people (<a href="https://www.cloudflare.com/zero-trust/products/"><u>Cloudflare One</u></a>), and developer tools (<a href="https://www.cloudflare.com/developer-platform/products/"><u>Developer Platform</u></a>). Counterintuitively: our free service actually helps us keep our costs lower. Not only is it mission-aligned, our free tier is business-aligned. We want to make abundantly clear: our free plan is here to stay, and we reaffirmed that commitment this week with 15 releases across our product portfolio that make the Free plan even better.</p>
    <div>
      <h2>Understanding our Cost of Goods Sold</h2>
      <a href="#understanding-our-cost-of-goods-sold">
        
      </a>
    </div>
    <p>To understand the economics of Free, you need to understand our Cost of Goods Sold (COGS). Cloudflare hasn’t outsourced its <a href="https://www.cloudflare.com/network"><u>network</u></a> — we built it ourselves, and it spans more than 330 cities. We design and ship our own <a href="https://blog.cloudflare.com/gen-12-servers"><u>hardware</u></a> across the world, we <a href="https://www.cloudflare.com/en-gb/partners/peering-portal/"><u>interconnect</u></a> with more than 12,500 networks, and we manage over 300 Tbps of network capacity. We even have a dedicated <a href="https://blog.cloudflare.com/backbone2024/"><u>backbone</u></a> that spans the globe.</p><p>There are three major costs of running our network, which together comprise about 80% of our COGS. First and largest is bandwidth: the traffic that traverses our network. Then there is hardware: the servers that process traffic. And third are colocation costs: the power and space at the data centers where we house our servers. There are other parts of COGS, too, like our SRE team that keeps the network running, and our payment processor fees, without which we couldn’t collect revenue.</p><p>To get traffic across the Internet for a network of our scale, we need a lot of bandwidth. Typically, a network like ours would pay third-party transit networks and Internet Service Providers (ISPs) to transmit data anywhere on the Internet. But there are thousands of ISPs that we don’t have to pay at all, and hundreds that also offer us space in their data center at no cost. How did we manage that? The surprising answer: Free.</p>
    <div>
      <h2>How our Free services keep costs low</h2>
      <a href="#how-our-free-services-keep-costs-low">
        
      </a>
    </div>
    <p>Imagine you run an ISP serving your local community. Your job is to connect your customers to the Internet. You notice that your customers are often visiting sites behind Cloudflare, which sits in front of roughly <a href="https://w3techs.com/technologies/history_overview/proxy/all/q"><u>20% of the web</u></a>. You need to deliver those webpages and facilitate connections to the applications behind Cloudflare, but right now you have to pay a transit provider to reach them. Instead, you could choose to <a href="https://www.internetsociety.org/resources/doc/2020/explainer-what-is-internet-peering/"><u>peer</u></a> directly with Cloudflare and exchange traffic at no cost.</p><p>Cloudflare is one of the <a href="https://bgp.tools/rankings/all?sort=peering"><u>most peered networks in the world</u></a>. We freely exchange traffic with thousands of ISPs, who in turn benefit because they can cut out a third-party transit provider to reach the millions of sites and applications behind Cloudflare.</p><p>Continuing with this hypothetical, if as an ISP, your customers pay for Internet connectivity based on data usage (a common model outside of Western Europe and the US), your revenue scales with data consumption. One simple way to increase data consumption? Make the Internet faster! Hosting Cloudflare’s servers in your facility, as close to your users as possible, reduces latency for millions of websites and apps. So it’s in your best interest to host Cloudflare’s servers in your data centers, too.</p><p>We have hundreds of ISP partnerships that look just like that. The value ISPs get from Cloudflare stems from the breadth of the web that sits behind Cloudflare, a number driven by our Free customers. This arrangement is a big part of why we have a free service, and is part of what enables us to continue to offer one. PS: If you really are an operator for a local ISP and don’t partner with us yet, please connect with us through our <a href="https://www.cloudflare.com/partners/peering-portal/"><u>peering portal</u></a>!</p><p>These days, we are at such a scale that the traffic our customers generate requires much more capacity than can fit within our ISP partners. To reliably serve our enterprise customers, we operate in multiple facilities in every major Internet hub city. And yet, the traffic patterns of our enterprise customers are typically very predictable. They usually follow a diurnal cycle, with peaks and troughs throughout a day. Enterprise customer traffic is prioritized and served as close to end users as possible, regardless of the time of day. But our Free customers use off-cycle headroom. That’s why we’re able to continue to offer unmetered bandwidth on the Free plan: we serve the traffic from across our network, wherever there is spare room. It might not have quite the same performance as our enterprise traffic, but it’s still reliable and fast.</p><p>There do have to be some rules for this to continue to work, however. Free traffic needs to remain a manageable proportion of our total traffic. To ensure that remains true, and that we can continue to offer unmetered traffic to Free customers at no cost, we have to be opinionated about what kind of traffic we serve for free. Our <a href="https://www.cloudflare.com/service-specific-terms-application-services/#content-delivery-network-terms"><u>terms of service</u></a> specify that large assets (like videos) are not supported on our Free plan. So we require that customers pushing large files and videos move onto one of our paid services, like <a href="https://developers.cloudflare.com/images/"><u>Images</u></a> and <a href="https://developers.cloudflare.com/stream/"><u>Stream</u></a>.</p>
    <div>
      <h2>Free customers help us build better products and grow our business</h2>
      <a href="#free-customers-help-us-build-better-products-and-grow-our-business">
        
      </a>
    </div>
    <p>The benefits of our Free plan extend well beyond direct economics.</p><p>Our Free plan gives Cloudflare access to unique threat intelligence. A wide surface area exposes our network to diverse traffic and attacks that we wouldn’t otherwise see, often allowing us to identify potential security and reliability issues at the earliest stage. Like an immune system, we learn from these attacks and adapt to improve our products for all customers. This is a special competitive advantage. <a href="https://radar.cloudflare.com/security-and-attacks"><u>Visibility into attacks</u></a> allows us to build products that no one else could.</p><p>Our Free customers help us do quality assurance (QA) quickly. Free customers are often the first to try new products and features. When we launch something new, we get signal immediately and at an incredible scale. We use that signal to swiftly address bugs and iterate on our products. </p><p>Offering a Free plan challenges us to build more intuitive products. Free customers represent a broad audience, from tech enthusiasts to those simply looking to secure their website or build an application. Building for a broad spectrum of users forces us to create more user-friendly tools for everyone.</p><p>Offering a Free service has other benefits, too. Some of our strongest customer advocates are folks that used our Free plan on their hobby projects before bringing Cloudflare with them to work. Some of them even end up working at Cloudflare!</p>
    <div>
      <h2>Our free plan will keep getting better</h2>
      <a href="#our-free-plan-will-keep-getting-better">
        
      </a>
    </div>
    <p>Our Free offering is a flywheel that helps make Cloudflare’s products, team, and cost structure more efficient. We pay back these efficiencies by continuing to improve our free offerings. Just this week, we’ve announced 16 updates that make our Free plans even better:</p><ul><li><p>Free customers can <a href="https://blog.cloudflare.com/cloudflare-ai-audit-control-ai-content-crawlers?/"><u>audit and control the AI models accessing their content</u></a>.</p></li><li><p><a href="https://developers.cloudflare.com/turnstile/"><u>Turnstile</u></a>, our privacy-first CAPTCHA alternative available to everyone, gets more accurate with <a href="https://blog.cloudflare.com/turnstile-ephemeral-ids-for-fraud-detection?"><u>granular, client-level identification</u></a>.</p></li><li><p>Free customers now have access to our <a href="https://www.cloudflare.com/zero-trust/products/casb/"><u>Cloud Access Security Broker</u></a> (CASB), <a href="https://www.cloudflare.com/zero-trust/products/dlp/"><u>Data Loss Prevention</u></a> (DLP), <a href="https://developers.cloudflare.com/cloudflare-one/insights/dex/"><u>Digital Experience Monitoring</u></a> (DEX), and <a href="https://developers.cloudflare.com/magic-network-monitoring/"><u>Magic Network Monitoring</u></a> (MNM) tools, for up to 50 seats.</p></li><li><p>A new version of <a href="https://developers.cloudflare.com/waf/managed-rules/check-for-exposed-credentials/"><u>Leaked Credential Checks</u></a> (LCC) is available to all customers to help mitigate account takeover (ATO) attacks.</p></li><li><p>All customers can now monitor third-party scripts with <a href="https://developers.cloudflare.com/page-shield/detection/monitor-connections-scripts/"><u>Page Shield Script Monitor</u></a>.</p></li><li><p>Free customers can use <a href="https://developers.cloudflare.com/api-shield/security/schema-validation/"><u>API Shield’s Schema Validation</u></a> to ensure only valid requests to their API make it through to the origin.</p></li><li><p>Free customers get more robust analytics, with versions of <a href="https://developers.cloudflare.com/waf/analytics/security-analytics/"><u>Security Analytics</u></a> and <a href="https://developers.cloudflare.com/dns/additional-options/analytics/"><u>DNS GraphQL</u></a> for everyone.</p></li><li><p>All customers can now log in to the Cloudflare Dashboard using <a href="https://blog.cloudflare.com/a-safer-internet-with-cloudflare/?"><u>Sign in with Google</u></a>.</p></li><li><p>Free customers using our Terraform provider to configure their infrastructure will now benefit from <a href="https://blog.cloudflare.com/automatically-generating-cloudflares-terraform-provider?"><u>autogenerated API SDKs</u></a>.</p></li><li><p><a href="https://developers.cloudflare.com/calls/turn/overview/"><u>Cloudflare Calls managed TURN service</u></a> is now GA and free up to 1,000 GB per month.</p></li><li><p>All customers will benefit from the introduction of <a href="https://blog.cloudflare.com/new-standards?"><u>Zstandard compression</u></a>, which improves web performance by compressing up to 42% faster than Brotli.</p></li><li><p>Free customer traffic is now more private as we roll out <a href="https://developers.cloudflare.com/ssl/edge-certificates/ech/"><u>Encrypted Client Hello</u></a> (ECH) which obfuscates the Server Name Identifier (SNI) during a TLS handshake.</p></li><li><p>All customers can store and query 3 days of logs from their <a href="https://workers.cloudflare.com/"><u>Cloudflare Worker</u></a>.</p></li><li><p>Requests made through <a href="https://developers.cloudflare.com/workers/runtime-apis/bindings/service-bindings/"><u>Service Bindings</u></a> and to <a href="https://developers.cloudflare.com/workers/observability/logging/tail-workers/"><u>Tail Workers</u></a> are now free.</p></li><li><p>Cloudflare <a href="https://developers.cloudflare.com/images/"><u>Image Optimization</u></a> is now available for free to all Cloudflare customers.</p></li><li><p>Free domains just got 45% faster with<a href="https://blog.cloudflare.com/introducing-speed-brain?_gl=1*1i8aixl*_gcl_aw*R0NMLjE3MjczMDQyMTIuQ2p3S0NBanc2YzYzQmhBaUVpd0FGMEVIMUQ3S1gzNVhCOTZXWWxhWU45UkNOYmJrZER5ZmxzemQybkVZVExvS3lfbU43SWp2SERhWGZob0NEVlFRQXZEX0J3RQ..*_gcl_dc*R0NMLjE3MjczMDQyMTIuQ2p3S0NBanc2YzYzQmhBaUVpd0FGMEVIMUQ3S1gzNVhCOTZXWWxhWU45UkNOYmJrZER5ZmxzemQybkVZVExvS3lfbU43SWp2SERhWGZob0NEVlFRQXZEX0J3RQ..*_gcl_au*MTgyNjIxMjU3MC4xNzIyMjMzNDc3*_ga*MjIyMTI3YmItOWQxNC00ZDcyLTljZjgtNTg2NmZiNWIyZjVh*_ga_SQCRB0TXZW*MTcyNzQ3OTM3Ni43NC4xLjE3Mjc0ODExNDYuMjkuMC4w/"> <u>Speed Brain</u></a> enabled.</p></li></ul><p>We offer a Free plan out of more than goodwill — it is a core business differentiator that helps us build better products, drive growth, and keep costs low. And it helps us advance our mission. Building a better Internet is a collective effort. Today, more than 30 million Internet properties, comprising some 20% of the web, sit behind Cloudflare. Our Free plan makes that portion of the web faster, more secure, and more efficient. Free is not just a commitment — it’s a cornerstone of our strategy.</p><p>Become part of a better Internet and <a href="https://www.cloudflare.com/plans/free/"><u>sign up for Cloudflare’s Free plan</u></a>.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3pyDxxVAHg0jqcZTj2TVmw/9f484c51ab42c627b549b4ef7640680e/BLOG-2528_2.png" />
          </figure><p></p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Network Protection]]></category>
            <category><![CDATA[Network Services]]></category>
            <category><![CDATA[Free]]></category>
            <guid isPermaLink="false">P8TeQwTekaAHzlEGB8bLG</guid>
            <dc:creator>Nitin Rao</dc:creator>
            <dc:creator>Liam Reese</dc:creator>
            <dc:creator>James Allworth</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare partners with Internet Service Providers and network equipment providers to deliver a safer browsing experience to millions of homes]]></title>
            <link>https://blog.cloudflare.com/safer-resolver/</link>
            <pubDate>Tue, 24 Sep 2024 13:00:00 GMT</pubDate>
            <description><![CDATA[ Cloudflare is extending the use of our public DNS resolver through partnering with ISPs and network providers to deliver a safer browsing experience directly to families. Join us in protecting every Internet user from unsafe content with the click of a button, powered by 1.1.1.1 for Families. ]]></description>
            <content:encoded><![CDATA[ 
    <div>
      <h3>A committed journey of privacy and security</h3>
      <a href="#a-committed-journey-of-privacy-and-security">
        
      </a>
    </div>
    <p>In 2018, Cloudflare <a href="https://blog.cloudflare.com/announcing-1111/"><u>announced 1.1.1.1</u></a>, one of the fastest, privacy-first consumer DNS services. 1.1.1.1 was the first consumer product Cloudflare ever launched, focused on reaching a wider audience. This service was designed to be fast and private, and <a href="https://developers.cloudflare.com/1.1.1.1/privacy/public-dns-resolver/"><u>does not retain</u></a> information that would identify who is making a request.</p><p>In 2020, Cloudflare <a href="https://blog.cloudflare.com/introducing-1-1-1-1-for-families"><u>announced 1.1.1.1 for Families</u></a>, designed to add a layer of protection to our existing 1.1.1.1 public resolver. The intent behind this product was to provide consumers, namely families, the ability to add a security and adult content filter to block unsuspecting users from accessing specific sites when browsing the Internet.</p><p>Today, we are officially announcing that any ISP and equipment manufacturer can use our DNS resolvers for free. Internet service, network, and hardware equipment providers can sign up and join this program to partner with Cloudflare to deliver a safer browsing experience that is easy to use, industry leading, and <b>at no cost to anyone</b>.</p><p>Leading companies have already partnered with Cloudflare to deliver superior and customized offerings to protect their customers. By delivering this service in a place where the customer is familiar, you can help us make the Internet a safe place for all. </p>
    <div>
      <h2>A need to intentionally focus on families</h2>
      <a href="#a-need-to-intentionally-focus-on-families">
        
      </a>
    </div>
    <p>COVID-19 presented new challenges beginning in 2020 as kids' online activity increased and the reliance on home networks was more present than ever before. Research shows around <a href="https://www.pewresearch.org/internet/2020/07/28/childrens-engagement-with-digital-devices-screen-time/"><u>67% of adolescents</u></a> have access to a tablet, with ages as low as two years old accessing media content. While it is often impressive to watch the ease with which a young child can navigate a smartphone or tablet handed to them and pull up their favorite YouTube show, it becomes increasingly concerning that kids may unintentionally stumble onto harmful content in the process.</p><p>Our launch of 1.1.1.1 for Families in 2020 provided that peace of mind to users around the globe, and it continues to deliver those protections. Today, households can set up this service using our <a href="https://developers.cloudflare.com/1.1.1.1/setup/"><u>guide</u></a>. They can select the DNS resolver they want to use, focusing on just privacy, or include blocking security threats and adult content across their entire home network.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/49EwOARWEuv8TfdzKdWpkc/bf53e440a69ae924ec09d806586ef567/image3.png" />
            
            </figure><p>Although this service is available and free for anyone to use, there are still many users who browse online daily without protections in place. Setting up protection like this can feel daunting, and many users are at a loss on where to begin and/or how to configure this on their devices or home network. Today we are announcing a partnership that will make setup and configuration much easier for users.</p>
    <div>
      <h2>Partnering to extend security even further </h2>
      <a href="#partnering-to-extend-security-even-further">
        
      </a>
    </div>
    <p>ISPs and network providers can use Cloudflare’s different resolver services to provide various offerings to their customers. Our existing partners have taken these offerings and built them into their platforms as an extension of the services that they are already providing to their customers. This built-in model allows for easy adoption and a consistent and comprehensive end customer journey. Each service is designed with a specific purpose in mind, outlined below:</p><p><b>Our core privacy resolver (1.1.1.1)</b> is designed for speed and privacy.  Additionally, DNS requests to our public resolver can be sent over a secure channel using <a href="https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/"><u>DNS over HTTPS (DoH)</u></a> or <a href="https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-tls/"><u>DNS over TLS (DoT)</u></a>, significantly decreasing the odds of any unwanted spying or monster-in-the-middle attacks.</p><p><b>Our security resolver (1.1.1.2)</b> has all the benefits of 1.1.1.1, with the additional benefit of protecting users from sites that contain malware, spam, botnet command and control attacks, or phishing threats.</p><p><b>Our family resolver (1.1.1.3)</b> provides all the benefits of 1.1.1.2, with the additional benefit of blocking unwanted adult content from both direct site navigation, as well as locking public search engines to Safe Search only. This prevents anyone from unknowingly searching for something that might return an unwanted result. </p>
    <div>
      <h3>Premium Safety &amp; Customizations </h3>
      <a href="#premium-safety-customizations">
        
      </a>
    </div>
    <p>If users want even more flexibility than what our public DNS resolvers provide, Cloudflare also offers a Gateway product that allows customized filtering, reporting, logging, analytics, and scheduling. This advanced <a href="https://www.cloudflare.com/lp/ppc/cloudflare-gateway-x/?utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=ao-fy-acq-namer_en_na-umbrella-ge-ge-prospecting-sch_g_brand_alpha&amp;utm_content=Alpha_Brand_ZeroTrust_Gateway&amp;utm_term=cloudflare+gateway&amp;campaignid=71700000110566648&amp;adgroupid=58700008395369395&amp;creativeid=669303241127&amp;&amp;_bt=669303241127&amp;_bk=cloudflare%20gateway&amp;_bm=p&amp;_bn=g&amp;_bg=152212903387&amp;_placement=&amp;_target=&amp;_loc=9194681&amp;_dv=c&amp;awsearchcpc=1&amp;gad_source=1&amp;gclid=CjwKCAjw5qC2BhB8EiwAvqa41kCNIRA_o0KDeWYAgS3YmHunP3DCtEEkHlHM-lzAe02tb5kOLvdhVxoCFAUQAvD_BwE&amp;gclsrc=aw.ds"><u>Gateway</u></a> offering includes over <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/domain-categories/"><u>114 categories</u></a> ranging from social media, online messaging platforms, gaming, and <a href="https://developers.cloudflare.com/cloudflare-one/policies/gateway/dns-policies/#safe-search"><u>“safe search” results</u></a>, all the way to “home &amp; garden”.</p><p>The additional filters and scheduling functionality empowers users to exercise more nuanced and time-based controls, such as limiting social media during school hours or dinner time. </p><p>If you are an ISP or equipment manufacturer looking to provide easily customizable options for your customers, this is also an available option. We have a multi-tenant environment available for our Gateway offering that enables our customers to empower their individual subscribers to configure their own individual filters for their users and homes. If you are a device manufacturer or ISP looking to offer customizable protections for your individual subscribers, this may be a good option for you.</p>
    <div>
      <h2>Our continued commitment to privacy, security, and safety</h2>
      <a href="#our-continued-commitment-to-privacy-security-and-safety">
        
      </a>
    </div>
    
    <div>
      <h3>An easy choice </h3>
      <a href="#an-easy-choice">
        
      </a>
    </div>
    <p>Simply put, Cloudflare is an easy and obvious choice for protecting individuals and families. This is why leading companies have all chosen to partner with Cloudflare to help protect customers and their families. In 2020, after launching <a href="https://developers.cloudflare.com/1.1.1.1/setup/#1111-for-families"><u>1.1.1.1 for Families</u></a>, we were serving 200+ billion DNS queries per day for 1.1.1.1. Today, we serve 1.7 trillion queries per day for 1.1.1.1 and <a href="https://www.cloudflare.com/network/"><u>our network presence spans over 330 cities and interconnects with over 12,500+ other networks</u></a>. It is this network that puts us within a blink of an eye for 95% of the world's Internet-connected population (your customers), ensuring they receive lightning fast speed while browsing.</p><p>Beyond our speed, Cloudflare is used as a reverse proxy by <a href="https://w3techs.com/technologies/overview/proxy/all"><u>nearly ~ 20% of all websites</u></a> across the globe. <a href="https://radar.cloudflare.com/"><u>This gives us incredible insight to the latest Internet trends, threats, and research</u></a>. In partnering with us, you can leverage our strengths — powerful infrastructure, extensive data insights, and a dedicated threat intelligence team - while focusing on your core priorities.  There is no better partner to have than one who provides global reach, excellent performance, and <a href="https://developers.cloudflare.com/1.1.1.1/privacy/public-dns-resolver/"><u>built-in privacy</u></a>.</p>
    <div>
      <h2>Join us in making a safe browsing experience easy for everyone</h2>
      <a href="#join-us-in-making-a-safe-browsing-experience-easy-for-everyone">
        
      </a>
    </div>
    <p>Cloudflare began with a singular goal of helping build a better Internet, and our annual Birthday Week is a catalyst for many developments that have shaped a better Internet for everyone.</p><p>We remain committed to helping to protect and build a better Internet for every user, and to do so, we need to meet them where they are. Our partnerships are critical in making this a reality, and we want you to be a part of the solution with us.</p><p>Whether you are interested in our public DNS resolvers or our more advanced Gateway options, Cloudflare has easy and scalable options for everyone. You can sign up to join this program as a partner today by <a href="https://docs.google.com/forms/d/1WpvFILegBZ7V4RMK4pygP7PCpTgkxG1h-XafI9WHCW4/edit"><u>submitting this form</u></a>, and we will be in touch to understand your needs and bring you on board.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4I2fgl2gyWQ7YVYVyL3xf1/ec25fbe8b8f0d86b7a6b184a5f0c08ac/image1.png" />
          </figure><p></p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[1.1.1.1]]></category>
            <category><![CDATA[Privacy]]></category>
            <category><![CDATA[DNS]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Partners]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">6ZZuN3gorGpsi4nPVR284G</guid>
            <dc:creator>Kelly May Johnston</dc:creator>
            <dc:creator>Morgan Steffen</dc:creator>
        </item>
        <item>
            <title><![CDATA[Network performance update: Birthday Week 2024]]></title>
            <link>https://blog.cloudflare.com/network-performance-update-birthday-week-2024/</link>
            <pubDate>Mon, 23 Sep 2024 13:00:00 GMT</pubDate>
            <description><![CDATA[ Since June 2021, we’ve been measuring and ranking our network performance against the top global networks in the world. We use this data to improve our performance, and to share the results of those initiatives. 

In this post, we’re going to share with you how network performance has changed since our last post in March 2024, and discuss the tools and processes we are using to assess network performance. 
 ]]></description>
            <content:encoded><![CDATA[ <p>When it comes to the Internet, everyone wants to be the fastest. At Cloudflare, we’re no different. We want to be the fastest network in the world, and are constantly working towards that goal. Since <a href="https://blog.cloudflare.com/benchmarking-edge-network-performance/"><u>June 2021</u></a>, we’ve been measuring and ranking our network performance against the top global networks. We use this data to improve our performance, and to share the results of those initiatives. </p><p>In this post, we’re going to share with you how our network performance has changed since our last <a href="https://blog.cloudflare.com/network-performance-update-security-week-2024/"><u>post in March 2024</u></a>, and discuss the tools and processes we are using to assess network performance. </p>
    <div>
      <h3>Digging into the data</h3>
      <a href="#digging-into-the-data">
        
      </a>
    </div>
    <p>Cloudflare has been measuring network performance across these top networks from the top 1,000 ISPs by estimated population (according to the <a href="https://stats.labs.apnic.net/cgi-bin/aspop?c=IN"><u>Asia Pacific Network Information Centre (APNIC)</u></a>), and optimizing our network for ISPs and countries where we see opportunities to improve. For performance benchmarking, we look at TCP connection time. This is the time it takes an end user to connect to the website or endpoint they are trying to reach. We chose this metric to show how our network helps make your websites faster by serving your traffic where your customers are. Back in June 2021, Cloudflare was ranked #1 in 33% of the networks.</p><p>As of September 2024, examining 95th percentile (p95) TCP connect times measured from September 4 to September 19, Cloudflare is the #1 provider in 44% of the top 1000 networks:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6zN4WFnD4yijPB5fCX2wOY/db6d517f4054327beb433b5189e626d4/BLOG-2569_2.png" />
          </figure><p>This graph shows that we are fastest in 410 networks, but that would only make us the fastest in 41% of the top 1,000. To make sure we’re looking at the networks that eyeballs connect from, we exclude networks like transit networks that aren’t last-mile ISPs. That brings the number of measured networks to 932, which makes us fastest in 44% of ISPs.</p><p>Now let’s take a look at the fastest provider by country. The map below shows the top network by 95th percentile TCP connection time, and Cloudflare is fastest in many countries. For those where we weren’t, we were within a few milliseconds of our closest competitor. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7pEP1CiCQKL2lzSg3vH3C2/0f909c05ae4aa926a9ac2e7d39d117ab/BLOG-2569_3.png" />
          </figure><p>This color coding is generated by grouping all the measurements we generate by which country the measurement originates from, and then looking at the 95th percentile measurements for each provider to see who is the fastest. This is in contrast to how we measure who is fastest in individual networks, which involves grouping the measurements by ISP and measuring which provider is fastest. Cloudflare is still the fastest provider in 44% of the measured networks, which is consistent with our March report. Cloudflare is also the fastest in many countries, but the map is less orange than it was when we published our measurements from March 2024:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/MTyot2PbJD2K6eFJ41o5V/00c3957c2e3174ba4e5a00d2f027fed2/BLOG-2569_4.png" />
          </figure><p>This can be explained by the fact that the fastest provider in a country is often determined by latency differences so small it is often less than 5% faster than the second-fastest provider. As an example, let’s take a look at India, a country where we are now the fastest:</p><p><b>India performance by provider</b></p><table><tr><th><p>Rank</p></th><th><p>Entity</p></th><th><p>95th percentile TCP Connect (ms)</p></th><th><p>Difference from #1</p></th></tr><tr><td><p>1</p></td><td><p><b>Cloudflare</b></p></td><td><p>290 ms</p></td><td><p>-</p></td></tr><tr><td><p>2</p></td><td><p>Google</p></td><td><p>291 ms</p></td><td><p>+0.28% (+0.81 ms)</p></td></tr><tr><td><p>3</p></td><td><p>CloudFront</p></td><td><p>304 ms</p></td><td><p>+4.61% (+13 ms)</p></td></tr><tr><td><p>4</p></td><td><p>Fastly</p></td><td><p>325 ms</p></td><td><p>+12% (+35 ms)</p></td></tr><tr><td><p>5</p></td><td><p>Akamai</p></td><td><p>373 ms</p></td><td><p>+29% (+83 ms)</p></td></tr></table><p>In India, we are the fastest network, but we are beating the runner-up by less than a millisecond, which shakes out to less than 1% difference between us and the number two! The competition for the number one spot in many countries is fierce and sometimes can be determined by what days you’re looking at the data, because variance in connectivity or last-mile outages can materially impact this data.</p><p>For example, on September 17, there was <a href="https://economictimes.indiatimes.com/news/india/jio-network-down-several-users-complaint-network-issue-downdetector-confirms-outage/articleshow/113417252.cms?from=mdr"><u>an outage on a major network in India</u></a>, which impacted many users’ ability to access the Internet. People using this network were significantly impacted in their ability to connect to Cloudflare, and you can actually see that impact in the data. Here’s what the data looked like on the day of the outage, as we dropped from the number one spot that day:</p><p><b>India performance by provider</b></p><table><tr><th><p>Rank</p></th><th><p>Entity</p></th><th><p>95th percentile TCP Connect (ms)</p></th><th><p>Difference from #1</p></th></tr><tr><td><p>1</p></td><td><p>Google</p></td><td><p>219 ms</p></td><td><p>-</p></td></tr><tr><td><p>2</p></td><td><p>CloudFront</p></td><td><p>230 ms</p></td><td><p>+5% (+11 ms)</p></td></tr><tr><td><p>3</p></td><td><p><b>Cloudflare</b></p></td><td><p>236 ms</p></td><td><p>+7.47% (+16 ms)</p></td></tr><tr><td><p>4</p></td><td><p>Fastly</p></td><td><p>261 ms</p></td><td><p>+19% (+41 ms)</p></td></tr><tr><td><p>5</p></td><td><p>Akamai</p></td><td><p>286 ms</p></td><td><p>+30% (+67 ms)</p></td></tr></table><p>We were impacted more than other providers here because our automated traffic management systems detected the high packet loss as a result of the outage and aggressively moved all of our traffic away from the impacted provider. After review internally, we have identified opportunities to improve our traffic management to be more fine-grained in our approach to outages of this type, which would help us continue to be fast despite changes in the surrounding ecosystem. These unplanned occurrences can happen to any network, but these events also provide us opportunities to improve and mitigate the randomness we see on the Internet.</p><p>The phenomenon of providers having fluctuating latencies can also work against us. Consider Poland, a country where we were the fastest provider in March, but are no longer the fastest provider today. Digging into the data a bit more, we can see that even though we are no longer the fastest, we’re slower by less than a millisecond, giving us confidence that our architecture is optimized for performance in the region:</p><p><b>Poland performance by provider</b></p><table><tr><th><p>Rank</p></th><th><p>Entity</p></th><th><p>95th percentile TCP Connect (ms)</p></th><th><p>Difference from #1</p></th></tr><tr><td><p>1</p></td><td><p>Google</p></td><td><p>246 ms</p></td><td><p>-</p></td></tr><tr><td><p>2</p></td><td><p><b>Cloudflare</b></p></td><td><p>246 ms</p></td><td><p>+0.15% (+0.36 ms)</p></td></tr><tr><td><p>3</p></td><td><p>CloudFront</p></td><td><p>250 ms</p></td><td><p>+1.7% (+4.17 ms)</p></td></tr><tr><td><p>4</p></td><td><p>Akamai</p></td><td><p>272 ms</p></td><td><p>+11% (+26 ms)</p></td></tr><tr><td><p>5</p></td><td><p>Fastly</p></td><td><p>295 ms</p></td><td><p>+20% (+50 ms)</p></td></tr></table><p>These nuances in the data can make us look slower in more countries than we actually are. From a numbers' perspective we’re neck-and-neck with our competitors and still fastest in the most networks around the world. Going forward, we’re going to take a longer look at how we’re visualizing our network performance to paint a clearer picture for you around performance. But let’s go into more about how we actually get the underlying data we use to measure ourselves.</p>
    <div>
      <h3>How we measure performance</h3>
      <a href="#how-we-measure-performance">
        
      </a>
    </div>
    <p>When you see a Cloudflare-branded error page, something interesting happens behind the scenes. Every time one of these error pages is displayed, Cloudflare gathers Real User Measurements (RUM) by fetching a tiny file from various networks, including Cloudflare, Akamai, Amazon CloudFront, Fastly, and Google Cloud CDN. Your browser sends back performance data from the end-user’s perspective, helping us get a clear view of how these different networks stack up in terms of speed. The main goal? Figure out where we’re fast, and more importantly, where we can make Cloudflare even faster. If you're curious about the details, the original <a href="https://blog.cloudflare.com/introducing-radar-internet-quality-page/"><u>Speed Week blog post</u></a> dives deeper into the methodology.</p><p>Using this RUM data, we track key performance metrics such as TCP Connection Time, Time to First Byte (TTFB), and Time to Last Byte (TTLB) for Cloudflare and the other networks. </p><p>Starting from March, we fixed the list of networks we look at to be the top 1000 networks by estimated population as determined by <a href="https://stats.labs.apnic.net/cgi-bin/aspop?c=IN"><u>APNIC</u></a>, and we removed networks that weren’t last-mile ISPs. This change makes our measurements and reporting more consistent because we look at the same set of networks for every reporting cycle.</p>
    <div>
      <h3>How does Cloudflare use this data?</h3>
      <a href="#how-does-cloudflare-use-this-data">
        
      </a>
    </div>
    <p>Cloudflare uses this data to improve our network performance in lagging regions. For example, in 2022 we recognized that performance on a network in Finland was not as fast as some comparable regions. Users were taking 300+ ms to connect to Cloudflare at the 95th percentile:</p><p><b>Performance for Finland network</b></p><table><tr><th><p>Rank</p></th><th><p>Entity</p></th><th><p>95th percentile TCP Connect (ms)</p></th><th><p>Difference from #1</p></th></tr><tr><td><p>1</p></td><td><p>Fastly</p></td><td><p>15 ms</p></td><td><p>-</p></td></tr><tr><td><p>2</p></td><td><p>CloudFront</p></td><td><p>19 ms</p></td><td><p>+19% (+3 ms)</p></td></tr><tr><td><p>3</p></td><td><p>Akamai</p></td><td><p>20 ms</p></td><td><p>+28% (+4.3 ms)</p></td></tr><tr><td><p>4</p></td><td><p>Google</p></td><td><p>72 ms</p></td><td><p>+363% (+56 ms)</p></td></tr><tr><td><p>5</p></td><td><p><b>Cloudflare</b></p></td><td><p>368 ms</p></td><td><p>+2378% (+353 ms)</p></td></tr></table><p>After investigating, we recognized that one major network in Finland was seeing high latency due to issues resulting from congestion. Simply put, we were using all the capacity we had. We immediately planned an expansion, and within two weeks of that expansion completion, our latency decreased, and we became the fastest provider in the region, as you can see in the map above.</p><p>We are constantly improving our network and infrastructure to better serve our customers. Data like this helps us identify where we can be most impactful, and improve service for our customers. </p>
    <div>
      <h3>What’s next </h3>
      <a href="#whats-next">
        
      </a>
    </div>
    <p>We’re sharing our updates on our journey to become as fast as we can be everywhere so that you can see what goes into running the fastest network in the world. From here, our plan is the same as always: identify where we’re slower, fix it, and then tell you how we’ve gotten faster.</p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Network Performance Update]]></category>
            <category><![CDATA[Performance]]></category>
            <category><![CDATA[Radar]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">1CRWV43VAHSo5XHLkwPw2R</guid>
            <dc:creator>Emily Music</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing Ephemeral IDs: a new tool for fraud detection]]></title>
            <link>https://blog.cloudflare.com/turnstile-ephemeral-ids-for-fraud-detection/</link>
            <pubDate>Mon, 23 Sep 2024 13:00:00 GMT</pubDate>
            <description><![CDATA[ As the Internet evolves, Turnstile does too. Introducing Ephemeral IDs — a new dimension in detecting fraudulent activity, bot or human, that links behavior to a specific client instead of an IP address. This makes Turnstile better for everyone, everywhere. 
 ]]></description>
            <content:encoded><![CDATA[ <p>In the early days of the Internet, a single IP address was a reliable indicator of a single user. However, today’s Internet is more complex. Shared IP addresses are now common, with users connecting via mobile IP address pools, VPNs, or behind <a href="https://en.wikipedia.org/wiki/Carrier-grade_NAT"><u>CGNAT (Carrier Grade Network Address Translation)</u></a>. This makes relying on IP addresses alone a weak method to combat modern threats like automated attacks and fraudulent activity. Additionally, many Internet users have no option but to use an IP address which they don’t have sole control over, and as such, <a href="https://blog.cloudflare.com/consequences-of-ip-blocking/"><u>should not be penalized for that</u></a>.</p><p>At Cloudflare, we are solving this complexity with <a href="https://developers.cloudflare.com/turnstile/"><u>Turnstile</u></a>, our <a href="https://blog.cloudflare.com/turnstile-private-captcha-alternative/"><u>CAPTCHA alternative</u></a>. And now, we’re taking the next step in advancing security with Ephemeral IDs, a new feature that generates a unique short-lived ID, without relying on any network-level information.</p><p>When a website visitor interacts with Turnstile, we now calculate an Ephemeral ID that can link behavior to a specific client instead of an IP address. This means that even when attackers rotate through large pools of IP addresses, we can still identify and block malicious actions. For example, in attacks like <a href="https://www.cloudflare.com/learning/bots/what-is-credential-stuffing/"><u>credential stuffing</u></a> or account signups, where fraudsters attempt to disguise themselves using different IP addresses, Ephemeral IDs allow us to detect abuse patterns more accurately beyond just determining whether the visitor is a human or a bot. Multiple fraudulent actions from the same client are grouped together, improving our detection rate while reducing false positives.</p>
    <div>
      <h3>How Ephemeral IDs work</h3>
      <a href="#how-ephemeral-ids-work">
        
      </a>
    </div>
    <p>Turnstile detects bots by analyzing browser attributes and signals. Using these aggregated client-side signals, we generate a short-lived Ephemeral ID without setting any cookies or using similar client-side storage. These IDs are intentionally not 100% unique and have a brief lifespan, making them highly effective in identifying patterns of fraud and abuse, without compromising user privacy.</p><p>When the same visitor interacts with Turnstile widgets from different Cloudflare customers, they receive different Ephemeral IDs for each one. Additionally, because these IDs change frequently, they cannot be used to track a single visitor over multiple days.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2uGotegS95KA9Ea5qRsQgs/71f01ce9c9a8096e7c64cdfc470ddeb0/BLOG-2548_2.png" />
          </figure><p><sub><i>Blue: A single IP address | Green: A single Ephemeral ID</i></sub><sub>
</sub><sub><i>The bigger the node, the more frequently seen that ID or IP address was in our dataset.</i></sub></p><p>The graphic above illustrates the complex reality of the modern Internet, where the relationship between clients and IP addresses is far from a simple one-to-one mapping. While some straightforward mappings still exist, they are no longer the norm.</p><p>During a period where a site or service is under attack, we observe a “nest” of highly correlated Ephemeral IDs. In the example below, the correlation is based on both Ephemeral ID and IP address.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5Rk4QXW1nkrrIk46XgzXdA/52739f21e6a00643a511de77b47142f1/BLOG-2548_3.png" />
          </figure><p><sub><i>Nest in the center of the diagram visualizes thousands of IP addresses (blue) which are correlated by the commonly identified Ephemeral IDs (green). The bigger the node, the more frequently seen that ID or IP address was in our dataset.</i></sub></p><p>This is real-world data showing fraudulent activity on one of Cloudflare’s public-facing forms. Even with access to a broad range of IP addresses, attackers struggle to completely disguise their requests because Ephemeral IDs are generated based on patterns beyond IP addresses. This means that even if they rotate addresses, the underlying client characteristics are still detected, making it harder for them to evade our security measures. This makes it easier for us to group these requests and apply appropriate business logic, whether that means discarding the requests, requiring further validation, enforcing <a href="https://www.cloudflare.com/learning/access-management/what-is-multi-factor-authentication/"><u>multi-factor authentication (MFA)</u></a>, or other actions. </p><p>This new client identification technology seamlessly integrates into the broader advancements we’ve made to Turnstile over the past year. Whether you’re protecting <a href="https://developers.cloudflare.com/turnstile/tutorials/login-pages/"><u>login forms</u></a>, signup pages, or high value transactions, you’ll immediately benefit from this extra layer of abuse detection <b>without needing to change a single line of code</b>. We’ll take care of all the heavy lifting and analysis behind the scenes, and our system will continue to improve its accuracy and effectiveness over time.</p><p>What does this mean for you? Starting today, <a href="https://www.cloudflare.com/products/turnstile/"><u>Turnstile</u></a> will go beyond just identifying bots. <b>All</b> <b>websites protected by Turnstile will automatically benefit</b> from the integration of Ephemeral IDs into our detection logic. This means we can more effectively identify and penalize offending clients without impacting other users on the same network, or IP address, improving security and user experience for everyone.</p>
    <div>
      <h3>Ephemeral IDs in action</h3>
      <a href="#ephemeral-ids-in-action">
        
      </a>
    </div>
    <p>Everyone benefits from the addition of Ephemeral IDs to the Challenge Platform, but for those who want to use it beyond that, the Ephemeral ID is available through the Turnstile <a href="https://developers.cloudflare.com/turnstile/get-started/server-side-validation/"><u>siteverify</u></a> response. A practical use case for Ephemeral IDs is preventing fraudulent account signups. Imagine a bad actor, a real person using a real device, creating hundreds of fake accounts while rotating IP addresses to avoid detection. By ingesting Ephemeral IDs and logging them alongside your account creation logs, you can set up alerts based on account creation thresholds in real-time or retroactively investigate suspicious activity. Even though Ephemeral IDs are short-lived and may have changed by the time an investigation begins, they still provide valuable insights through aggregate analysis, and provide an extra dimension to identify fraud and abuse.</p><p>For our <b>Turnstile Enterprise </b>and<b> Bot Management Enterprise </b>customers, you now have the option to access Ephemeral IDs directly through the Turnstile siteverify response. Get in touch with your Account Executive to enable it on your account.</p><p>Below is an example of <a href="https://developers.cloudflare.com/turnstile/get-started/server-side-validation/"><u>siteverify</u></a> response for those who have enabled Ephemeral IDs.</p>
            <pre><code>curl 'https://challenges.cloudflare.com/turnstile/v0/siteverify' --data 'secret=verysecret&amp;response=&lt;RESPONSE&gt;'</code></pre>
            
            <pre><code>{
    "success": true,
    "error-codes": [],
    "challenge_ts": "2024-09-10T17:29:00.463Z",
    "hostname": "example.com",
    "metadata": {
        "ephemeral_id": "x:9f78e0ed210960d7693b167e"
    }
}
</code></pre>
            
    <div>
      <h2>What’s next for Turnstile?</h2>
      <a href="#whats-next-for-turnstile">
        
      </a>
    </div>
    <p>We launched Turnstile with a bold mission: to redefine CAPTCHAs with a frictionless, privacy-first solution that eliminates the annoyance of picking puzzles, selecting stoplights, and clicking crosswalks to prove our humanity. It’s incredible to think that Turnstile has been generally available for a whole year now! During this time, it has blocked over <b>one trillion bots</b>, and is actively protecting more than <b>350,000 domains</b> worldwide.</p><p>As we celebrate Turnstile’s second birthday, we’re proud of the progress we’ve made and thrilled to introduce our latest innovations. While Ephemeral IDs represent the newest evolution of Turnstile, they’re part of our ongoing commitment to continuous improvement. Over the past year, we’ve also introduced a <a href="https://blog.cloudflare.com/guide-to-cloudflare-pages-and-turnstile-plugin/"><u>Cloudflare Pages Plugin</u></a> and partnered with <a href="https://developers.cloudflare.com/turnstile/extensions/google-firebase/"><u>Google Firebase</u></a>, ensuring that developers have easy access to Turnstile.</p><p>Earlier this year, we also launched <a href="https://blog.cloudflare.com/integrating-turnstile-with-the-cloudflare-waf-to-challenge-fetch-requests/"><u>Pre-Clearance</u></a> for Turnstile, integrating it with Cloudflare WAF’s Challenge action, making it easier for customers to use Cloudflare’s Application Security products together. If you want to learn more about how to use Turnstile with Cloudflare’s Bot Management and WAF in more detail, check it out <a href="https://developers.cloudflare.com/turnstile/tutorials/integrating-turnstile-waf-and-bot-management"><u>here</u></a>!</p><p>We’re incredibly excited about what’s ahead. The introduction of Ephemeral IDs is just one of many innovations on the horizon. We’re committed to making the Internet a safer, more private place for everyone, eliminating the need for frustrating CAPTCHA puzzles while keeping security our top priority. And with our free tier remaining open and unlimited for all, there’s no barrier to getting started with Turnstile today.</p><p>Join us in revolutionizing online security –<b> </b><a href="https://developers.cloudflare.com/turnstile/get-started/"><b><u>get started with Turnstile</u></b></a><b> </b>now or dive straight into our<b> </b><a href="https://developers.cloudflare.com/turnstile/tutorials/"><b><u>how-to guides</u></b></a>. Let’s help make the Internet a better place, together!</p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Turnstile]]></category>
            <category><![CDATA[CAPTCHA]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Bots]]></category>
            <category><![CDATA[Privacy]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">6V6W6JxQO7bnM0CbhuO1OA</guid>
            <dc:creator>Oliver Payne</dc:creator>
            <dc:creator>Sally Lee</dc:creator>
            <dc:creator>Benedikt Wolters</dc:creator>
        </item>
        <item>
            <title><![CDATA[Removing uncertainty through "what-if" capacity planning]]></title>
            <link>https://blog.cloudflare.com/scenario-planner/</link>
            <pubDate>Fri, 20 Sep 2024 14:01:00 GMT</pubDate>
            <description><![CDATA[ Cloudflare’s Capacity Planning team discusses planning for “what-if” type scenarios, and how they’ve introduced a new “Scenario Planner” system to quickly model hypothetical future changes ]]></description>
            <content:encoded><![CDATA[ <p>Infrastructure planning for a network serving more than 81 million requests at peak and which is globally distributed across <a href="https://www.cloudflare.com/network/"><u>more than 330 cities in 120+ countries</u></a> is complex. The capacity planning team at Cloudflare ensures there is enough capacity in place all over the world so that our customers have one less thing to worry about - our infrastructure, which should just work. Through our processes, the team puts careful consideration into “what-ifs”. What if something unexpected happens and <a href="https://blog.cloudflare.com/post-mortem-on-cloudflare-control-plane-and-analytics-outage/"><u>one of our data centers fails</u></a>? What if one of our largest customers triples, or quadruples their request count?  Across a gamut of scenarios like these, the team works to understand where traffic will be served from and how the Cloudflare customer experience may change.</p><p>This blog post gives a look behind the curtain of how these scenarios are modeled at Cloudflare, and why it's so critical for our customers.</p>
    <div>
      <h2>Scenario planning and our customers</h2>
      <a href="#scenario-planning-and-our-customers">
        
      </a>
    </div>
    <p>Cloudflare customers rely on the data centers that Cloudflare has deployed all over the world, placing us within 50 ms of approximately 95% of the Internet-connected population globally. But round-trip time to our end users means little if those data centers don’t have the capacity to serve requests. Cloudflare has invested deeply into systems that are working around the clock to optimize the requests flowing through our network because we know that failures happen all the time: the Internet can be a volatile place. See <a href="https://blog.cloudflare.com/backbone2024"><u>our blog post from August 2024</u></a> on how we handle this volatility in real time on our backbone, and our <a href="https://blog.cloudflare.com/meet-traffic-manager"><u>blog post from late 2023</u></a> about how another system, Traffic Manager, actively works in and between data centers, moving traffic to optimize the customer experience around constraints in our data centers. Both of these systems do a fantastic job in real time, but there is still a gap — what about over the long term?  </p><p>Most of the volatility that the above systems are built to manage is resolved within shorter time scales than which we build plans for. (There are, of course, some failures that are <a href="https://itweb.africa/content/O2rQGMAEyPGMd1ea"><u>exceptions</u></a>.) Most scenarios we model still need to take into account the state of our data centers in the future, as well as what actions systems like Traffic Manager will take during those periods.  But before getting into those constraints, it’s important to note how capacity planning measures things: in units of CPU Time, defined as the time that each request takes in the CPU.  This is done for the same reasons that <a href="https://blog.cloudflare.com/meet-traffic-manager"><u>Traffic Manager</u></a> uses CPU Time, in that it enables the team to 1) use a common unit across different types of customer workloads and 2) speak a common language with other teams and systems (like Traffic Manager). The same reasoning the Traffic Manager team cited <a href="https://blog.cloudflare.com/meet-traffic-manager"><u>in their own blog post</u></a> is equally applicable for capacity planning: </p><blockquote><p><i>…using requests per second as a metric isn’t accurate enough when actually moving traffic. The reason for this is that different customers have different resource costs to our service; a website served mainly from cache with the WAF deactivated is much cheaper CPU wise than a site with all WAF rules enabled and caching disabled. So we record the time that each request takes in the CPU. We can then aggregate the CPU time across each plan to find the CPU time usage per plan. We record the CPU time in ms, and take a per second value, resulting in a unit of milliseconds per second.</i></p></blockquote><p>This is important for customers for the same reason that the Traffic Manager team cited in their blog post as well: we can correlate CPU time to performance, specifically latency.</p><p>Now that we know our unit of measurement is CPU time, we need to set up our models with the new constraints associated with the change that we’re trying to model.  Specifically, there are a subset of constraints that we are particularly interested in because we know that they have the ability to impact our customers by impacting the availability of CPU in a data center.  These are split into two main inputs in our models: Supply and Demand.  We can think of these as “what-if” questions, such as the following examples:</p>
    <div>
      <h3>Demand what-ifs</h3>
      <a href="#demand-what-ifs">
        
      </a>
    </div>
    <ul><li><p>What if a new customer onboards to Cloudflare with a significant volume of requests and/or bytes?  </p></li><li><p>What if an existing customer increased its volume of requests and/or bytes by some multiplier (i.e. 2x, 3x, nx), at peak, for the next three months?</p></li><li><p>What if the growth rate, in number of requests and bytes, of all of our data centers worldwide increased from X to Y two months from now, indefinitely?</p></li><li><p>What if the growth rate, in number of requests and bytes, of data center facility A increased from X to Y one month from now?</p></li><li><p>What if traffic egressing from Cloudflare to a last-mile network shifted from one location (such as Boston) to another (such as New York City) next week?</p></li></ul>
    <div>
      <h3>Supply what-ifs</h3>
      <a href="#supply-what-ifs">
        
      </a>
    </div>
    <ul><li><p>What if data center facility A lost some or all of its available servers two months from now?</p></li><li><p>What if we added X servers to data center facility A today?</p></li><li><p>What if some or all of our connectivity to other ASNs (<a href="https://www.cloudflare.com/network/"><u>12,500 Networks/nearly 300 Tbps</u></a>) failed now?</p></li></ul>
    <div>
      <h3>Output</h3>
      <a href="#output">
        
      </a>
    </div>
    <p>For any one of these, or a combination of them, in our model’s output, we aim to provide answers to the following: </p><ul><li><p>What will the overall capacity picture look like over time? </p></li><li><p>Where will the traffic go? </p></li><li><p>How will this impact our costs?</p></li><li><p>Will we need to deploy additional servers to handle the increased load?</p></li></ul><p>Given these sets of questions and outputs, manually creating a model to answer each of these questions, or a combination of these questions, quickly becomes an operational burden for any team.  This is what led us to launch “Scenario Planner”.</p>
    <div>
      <h2>Scenario Planner</h2>
      <a href="#scenario-planner">
        
      </a>
    </div>
    <p>In August 2024, the infrastructure team finished building “Scenario Planner”, a system that enables anyone at Cloudflare to simulate “what-ifs”. This provides our team the opportunity to quickly model hypothetical changes to our demand and supply metrics across time and in any of Cloudflare’s data centers. The core functionality of the system has to do with the same questions we need to answer in the manual models discussed above.  After we enter the changes we want to model, Scenario Planner converts from units that are commonly associated with each question to our common unit of measurement: CPU Time. These inputs are then used to model the updated capacity across all of our data centers, including how demand may be distributed in cases where capacity constraints may start impacting performance in a particular location.  As we know, if that happens then it triggers Traffic Manager to serve some portion of those requests from a nearby location to minimize impact on customers and user experience.</p>
    <div>
      <h3>Updated demand questions with inputs</h3>
      <a href="#updated-demand-questions-with-inputs">
        
      </a>
    </div>
    <ul><li><p><b>Question:</b> What if a new customer onboards to Cloudflare with a significant volume of requests?  </p></li><li><p><b>Input:</b> The new customer’s expected volume, geographic distribution, and timeframe of requests, converted to a count of virtual CPUs</p></li><li><p><b>Calculation(s)</b>: Scenario Planner converts from server count to CPU Time, and distributes the new demand across the regions selected according to the aggregate distribution of all customer usage.  </p></li></ul><p>
<br />
</p><ul><li><p><b>Question:</b> What if an existing customer increased its volume of requests and/or bytes by some multiplier (i.e. 2x, 3x, nx), at peak, for the next three months?</p></li><li><p><b>Input</b>: Select the customer name, the multiplier, and the timeframe</p></li><li><p><b>Calculation(s)</b>: Scenario Planner already has how the selected customer’s traffic is distributed across all data centers globally, so this involves simply multiplying that value by the multiplier selected by the user</p></li></ul><p>
<br />
</p><ul><li><p><b>Question:</b> What if the growth rate, in number of requests and bytes, of all of our data centers worldwide increased from X to Y two months from now, indefinitely?</p></li><li><p><b>Input:</b> Enter a new global growth rate and timeframe</p></li><li><p><b>Calculation(s)</b>: Scenario Planner distributes this growth across all data centers globally according to their current growth rate.  In other words, the global growth is an aggregation of all individual data center’s growth rates, and to apply a new “Global” growth rate, the system scales up each of the individual data center’s growth rates commensurate with the current distribution of growth.</p></li></ul><p>
<br />
</p><ul><li><p><b>Question:</b> What if the growth rate, in number of requests and bytes, of data center facility A increased from X to Y one month from now?</p></li><li><p><b>Input:</b> Select a data center facility, enter a new growth rate for that data center and the timeframe to apply that change across.</p></li><li><p><b>Calculation(s)</b>: Scenario Planner passes the new growth rate for the data center to the backend simulator, across the timeline specified by the user</p></li></ul><p>
<br />
</p>
    <div>
      <h3>Updated supply questions with inputs</h3>
      <a href="#updated-supply-questions-with-inputs">
        
      </a>
    </div>
    <ul><li><p><b>Question:</b> What if data center facility A lost some or all of its available servers two months from now?</p></li><li><p><b>Input</b>: Select a data center, and enter the number of servers to remove, or select to remove all servers in that location, as well as the timeframe for when those servers will not be available</p></li><li><p><b>Calculation(s)</b>: Scenario Planner converts the server count entered (including all servers in a given location) to CPU Time before passing to the backend</p></li></ul><p>
<br />
</p><ul><li><p><b>Question:</b> What if we added X servers to data center facility A today?</p></li><li><p><b>Input</b>: Select a data center, and enter the number of servers to add, as well as the timeline for when those servers will first go live</p></li><li><p><b>Calculation(s)</b>: Scenario Planner converts the server count entered (including all servers in a given location) to CPU Time before passing to the backend</p></li></ul><p>
<br />
</p><p>We made it simple for internal users to understand the impact of those changes because Scenario Planner outputs the same views that everyone who has seen our heatmaps and visual representations of our capacity status is familiar with. There are two main outputs the system provides: a heatmap and an “Expected Failovers” view. Below, we explore what these are, with some examples.</p>
    <div>
      <h3>Heatmap</h3>
      <a href="#heatmap">
        
      </a>
    </div>
    <p>Capacity planning evaluates its success on its ability to predict demand: we generally produce a weekly, monthly, and quarterly forecast of 12 months to three years worth of demand, and nearly all of our infrastructure decisions are based on the output of this forecast.  Scenario Planner provides a view of the results of those forecasts that are implemented via a heatmap: it shows our current state, as well as future planned server additions that are scheduled based on the forecast.  </p><p>Here is an example of our heatmap, showing some of our largest data centers in Eastern North America (ENAM). Ashburn is showing as yellow, briefly, because our capacity planning threshold for adding more server capacity to our data centers is 65% utilization (based on CPU time supply and demand): this gives the Cloudflare teams time to procure additional servers, ship them, install them, and bring them live <i>before</i> customers will be impacted and systems like Traffic Manager would begin triggering.  The little cloud icons indicate planned upgrades of varying sizes to get ahead of forecasted future demand well ahead of time to avoid customer performance degradation.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/PXIr1mpsrWPLmWpP9RCPg/5062269f1432a41c8177a7850243ab8c/BLOG-2554_2.png" />
          </figure><p><b></b></p><p>The question Scenario Planner answers then is how this view changes with a hypothetical scenario: What if our Ashburn, Miami, and Atlanta facilities shut down completely?  This is unlikely to happen, but we would expect to see enormous impact on the remaining largest facilities in ENAM. We’ll simulate all three of these failing at the same time, taking them offline indefinitely:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3apNpQAHPs9uY1QTAxOQ6d/6230e0950d3f70b50e17bfb10bca999c/BLOG-2554_3.png" />
          </figure>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6vfWrww4uT8VWtLa0vcDAM/dacf2bf102c8c38672ff08c48bc42542/BLOG-2554_4.png" />
          </figure>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7amWSND6PZ95oVJA5oO0Qc/588c7d7efcccfedca7cec240f830fa01/BLOG-2554_5.png" />
          </figure><p><b></b></p><p>This results in a view of our capacity through the rest of the year in the remaining large data centers in ENAM — capacity is clearly constrained: Traffic Manager will be working hard to mitigate any impact to customer performance if this were to happen. Our capacity view in the heatmap is capped at 75%: this is because Traffic Manager typically engages around this level of CPU utilization. Beyond 75%, Cloudflare customers may begin to experience increased latency, though this is dependent on the product and workload, and is in reality much more dynamic. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5Tse9FexuemDHzExPYnY0i/0cdba516c0b33888b7079d435ec02fd6/BLOG-2554_6.png" />
          </figure><p><b></b></p><p>This outcome in the heatmap is not unexpected.  But now we typically get a follow-up question: clearly this traffic won’t fit in just Newark, Chicago, and Toronto, so where do all these requests get served from?  Enter the failover simulator: Capacity Planning has been simulating how Traffic Manager may work in the long term for quite a while, and for Scenario Planner, it was simple to extend this functionality to answer exactly this question.</p><p>There is currently no traffic being moved by Traffic Manager from these data centers, but our simulation shows a significant portion of the Atlanta CPU time being served from our DFW/Dallas data center as well as Newark (bottom pink), and Chicago (orange) through the rest of the year, during this hypothetical failure. With Scenario Planner, Capacity Planning can take this information and simulate multiple failures all over the world to understand the impact to customers, taking action to ensure that customers trusting Cloudflare with their web properties can expect high performance even in instances of major data center failures. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1iv8nxYdIXOJ626UHpUadI/8581d88d740b6369ba5fc8500d9c7d97/Screenshot_2024-09-18_at_10.27.50_PM.png" />
          </figure><p><b></b></p>
    <div>
      <h2>Planning with uncertainty</h2>
      <a href="#planning-with-uncertainty">
        
      </a>
    </div>
    <p>Capacity planning a large global network comes with plenty of uncertainties. Scenario Planner is one example of the work the Capacity Planning team is doing to ensure that the millions of web properties our customers entrust to Cloudflare can expect consistent, top tier performance all over the world.</p><p>The Capacity Planning team is hiring — check out the <a href="https://www.cloudflare.com/careers/"><u>Cloudflare careers page</u></a> and <a href="https://www.cloudflare.com/careers/jobs/?title=capacity"><u>search for open roles on the Capacity Planning team</u></a>.</p> ]]></content:encoded>
            <category><![CDATA[Data Center]]></category>
            <category><![CDATA[Edge]]></category>
            <category><![CDATA[Cloudflare Network]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">13ueCTf2YFQfu3c1KeOlWj</guid>
            <dc:creator>Curt Robords</dc:creator>
        </item>
        <item>
            <title><![CDATA[Simplify cloud routing and object storage configurations with Cloud Connector]]></title>
            <link>https://blog.cloudflare.com/cloud-connector/</link>
            <pubDate>Fri, 16 Aug 2024 14:00:00 GMT</pubDate>
            <description><![CDATA[ Meet Cloud Connector — a new free product to simplify your cloud routing and object storage configurations. Say goodbye to frustrating Host Header workarounds and hello to protecting your assets, accelerating applications, and routing your traffic between multiple cloud providers seamlessly ]]></description>
            <content:encoded><![CDATA[ 
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5VXjKvnAYhWJ1LYe6rCCyT/ab20954a0ed34a7ce5b23e5f1d7212fa/2472-1-Hero.png" />
          </figure><p>As part of Cloudflare's mission to help build a better Internet, we’re continuously integrating with other networks and service providers, ensuring ease of use for anyone, anywhere, anytime. </p><p>Today, we’re excited to announce Cloud Connector – a brand-new way to put Cloudflare in front of popular public cloud services, protecting your assets, <a href="https://www.cloudflare.com/application-services/solutions/"><u>accelerating applications</u></a>, and routing your traffic between multiple cloud providers seamlessly.</p><p>Cloud Connector is a natural extension of Cloudflare's <a href="https://www.cloudflare.com/connectivity-cloud/"><u>Connectivity Cloud</u></a>, which aims to simplify and secure the complex web of connections across today’s enterprises. Imagine <a href="https://developers.cloudflare.com/rules/origin-rules/"><u>Origin Rules</u></a>, but managed by Cloudflare, available for all plans, created with just a few clicks, and working out of the box without the need for additional rules. It allows you to route traffic to different public clouds without complicated workarounds. This means you can now direct specific requests to AWS S3, Google Cloud Storage, Azure Blob Storage, or our own <a href="https://www.cloudflare.com/developer-platform/r2/"><u>R2</u></a>, even if these services are not set as the DNS target for your hostname.</p><p>Whether you’re an <a href="https://www.cloudflare.com/ecommerce/"><u>e-commerce site</u></a> looking to route image traffic to the best-performing cloud storage for faster load times, a <a href="https://www.cloudflare.com/media-and-entertainment/"><u>media company</u></a> distributing video content efficiently across various cloud providers, or a developer wanting to simplify backend configurations, Cloud Connector is designed for you. It’s available for all Cloudflare plans, with a particular focus on Free, Pro, and Business customers.</p>
    <div>
      <h3>The Host header challenge</h3>
      <a href="#the-host-header-challenge">
        
      </a>
    </div>
    <p>Before Cloud Connector, many of our <a href="https://www.cloudflare.com/plans/free/"><u>Free</u></a>, <a href="https://www.cloudflare.com/plans/pro/"><u>Pro</u></a>, and <a href="https://www.cloudflare.com/plans/business/"><u>Business</u></a> customers faced a significant challenge: it was not straightforward to route traffic for the same hostname to one or more cloud providers on the backend. Something as simple as directing example.com/images to AWS S3 while keeping the rest of your site served by your origin web servers required multiple non-trivial steps to accomplish. Some users changed their setups, leveraging either <a href="https://www.cloudflare.com/developer-platform/workers/"><u>Workers</u></a>, chaining hostnames, or explored putting other service providers in front of their cloud destinations. While functional, this approach added complexity and increased effort, leading to frustration.</p><p>Enterprise customers had <a href="https://developers.cloudflare.com/rules/page-rules/how-to/rewrite-host-headers/"><u>Host Header</u></a> and <a href="https://developers.cloudflare.com/rules/page-rules/how-to/override-url-or-ip-address/"><u>Resolve Override</u></a> features to manage this, but the security and abuse risks associated with Host Header modification kept these features out of reach for everyone else.</p>
    <div>
      <h3>Simplifying multi-cloud routing</h3>
      <a href="#simplifying-multi-cloud-routing">
        
      </a>
    </div>
    <p>Today, we're excited to unveil Cloud Connector, designed to address these challenges head-on.</p><p>Imagine you’re managing a website where images are stored on AWS S3, videos on Google Cloud Storage, and static assets on Azure Blob Storage. Traditionally, routing traffic to these different providers would involve a series of complex steps and configurations. With Cloud Connector, this process is streamlined. You can seamlessly direct traffic for your hostname to multiple origins with just a few clicks. The setup is straightforward and doesn’t require any advanced configurations or additional rules.</p><p>For instance, you can now direct example.com/images to a specific <a href="https://developers.cloudflare.com/r2/buckets/"><u>R2 bucket</u></a> in your Cloudflare account effortlessly. This feature, previously exclusive to Enterprise customers, is now available to all users, ensuring that everyone can benefit from simplified cloud routing.</p>
    <div>
      <h3>How to configure</h3>
      <a href="#how-to-configure">
        
      </a>
    </div>
    <p>Getting started with Cloud Connector is easy. Navigate to the <b>Rules &gt; Cloud Connector</b> tab in your zone dashboard. From there, select your cloud provider:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6Iv4dPgAUh0gC46Y2LGwBz/8c220eca52d1c13662fd837ca594e396/2472-2.png" />
          </figure><p>
You’ll be presented with an interface where you can configure the destination hostname of your object storage bucket. Ensure that your bucket URL matches the expected schema for your cloud provider, such as .amazonaws.com for AWS S3 or storage.googleapis.com for Google Cloud Storage. In case of <a href="https://developers.cloudflare.com/r2/"><u>R2</u></a>, your bucket needs to be public and associated with <a href="https://developers.cloudflare.com/r2/buckets/public-buckets/#connect-a-bucket-to-a-custom-domain"><u>a custom domain</u></a>:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/53gSU119UIYjmFrzLAZMJx/ddd65062c6db6393d88d357515b0bda0/2472-3.png" />
          </figure><p>
Once you’ve configured your bucket, the next step is to determine which traffic is routed by Cloud Connector. Using the familiar rule builder interface that powers all our Rules products, you can filter requests based on hostname, URI path, headers, cookies, source IP, AS number, and more.</p><p>After configuring, deploy your rule, and it will be immediately effective:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1qXv7kCzvwftgAHrlqDgtA/dda2d9aa19de5ab4a5bbee6778db812e/2472-4.png" />
          </figure><p>
Cloud Connector is intentionally placed at the end of the <a href="https://developers.cloudflare.com/ruleset-engine/reference/phases-list/"><u>Ruleset Engine phase sequence</u></a> to ensure it works out of the box, even if there are active origin or configuration rules with matching criteria.</p><p>Cloud Connector simplifies your setup, allowing you to focus on what matters most: delivering a seamless experience for your users. By leveraging Cloudflare’s built-in security, your assets are automatically protected, and direct traffic routing optimizes application performance, accelerating load times and reducing your cloud bandwidth costs.</p>
    <div>
      <h3>Behind the scenes: how Cloud Connector works</h3>
      <a href="#behind-the-scenes-how-cloud-connector-works">
        
      </a>
    </div>
    <p>To build Cloud Connector, we leveraged our powerful, high performance <a href="https://developers.cloudflare.com/ruleset-engine/"><u>Ruleset Engine</u></a> and integrated it with various cloud providers, ensuring compatibility and optimal performance. Throughout this process, we were focused on making the setup as intuitive as possible, reducing the need for additional configurations and making it accessible to users of all technical backgrounds.</p><p>At its core, Cloud Connector builds on Cloudflare's existing Ruleset Engine, the same technology that powers <a href="https://developers.cloudflare.com/rules/origin-rules/"><u>Origin Rules</u></a>. Origin Rules typically operate during the <code>http_request_origin</code> <a href="https://developers.cloudflare.com/ruleset-engine/reference/phases-list/"><u>phase</u></a>, where they manage how requests are routed to different origins. A phase, in Cloudflare's system, represents a specific stage in the life of a request where rulesets can be executed. Each phase has a dedicated purpose, with rules defined at the account and zone levels to control different aspects of a request’s journey through our network.</p><p>Phases are essential because they allow us to apply actions at precise points in the request flow. For example, the http_request_origin phase focuses on routing, ensuring that traffic is directed to the correct origin based on the rules you set. By defining specific phases, we can optimize performance and enforce security measures at the right time without overlap or conflicts between different actions.</p><p>Rather than creating an entirely new system, we extended the existing <a href="https://developers.cloudflare.com/rules/origin-rules/create-api/"><u>"route" action</u></a> within Ruleset Engine to handle a specific set of pre-approved cloud provider endpoints, such as AWS S3, Google Cloud Storage, Azure Blob Storage, and <a href="https://www.cloudflare.com/developer-platform/products/r2/"><u>Cloudflare R2</u></a>.</p><p>To maintain the modularity of our system and avoid introducing product-specific abstractions into our core Ruleset Engine control plane, we developed <a href="https://developers.cloudflare.com/rules/cloud-connector/create-api/"><u>a thin API translator layer</u></a> on <a href="https://developers.cloudflare.com/workers/"><u>Workers</u></a>. This layer acts as an intermediary between the user-facing Cloud Connector API and the underlying Ruleset Engine API.</p><p>When a user <a href="https://developers.cloudflare.com/api/operations/zone-cloud-conenctor-rules-put"><u>creates</u></a> a Cloud Connector rule, it’s translated on the backend into a series of existing Ruleset Engine-based actions. For instance, if a user sets up a rule to route traffic to an AWS S3 bucket, our system translates this into actions that adjust the host header and origin settings to point to the S3 endpoint. This allows a single Cloud Connector rule to be decomposed into multiple rules within a zone’s entry point ruleset.</p><p>These rules are processed in reverse order, adhering to a "last rule wins" approach. This ensures that the final matching rule determines the traffic’s routing, preserving the behavior users expect. For example, if traffic is routed to an AWS S3 bucket, the system will first match the traffic based on the URI, then disable SSL if necessary, and finally route to the S3 origin. Once the appropriate rule is matched, a <a href="https://developers.cloudflare.com/ruleset-engine/managed-rulesets/create-exception/#skip-all-remaining-rules"><u>"skip" action</u></a> is invoked to prevent any further rules from altering the traffic, which prevents unintended behavior like disabling SSL for traffic routed to a different cloud provider.</p><p>When users <a href="https://developers.cloudflare.com/api/operations/zone-cloud-connector-rules"><u>retrieve</u></a> their Cloud Connector rules, the system reverses this process, reconstructing the original actions from the decomposed rules. This ensures that users see their configurations as they originally defined them, without needing to understand the underlying complexities.</p><p>To support Cloud Connector's unique requirements, we introduced a new request phase, <code>http_request_cloud_connector</code>. As the final request phase, this ensures that Cloud Connector rules have the last say in traffic routing decisions. This priority prevents conflicts with other routing rules, ensuring that traffic is securely and accurately routed according to the user’s intent.</p><p>Cloudflare is committed to building Cloudflare products on Cloudflare, leveraging existing technologies while innovating to meet new challenges. By building on <a href="https://developers.cloudflare.com/rules/origin-rules/"><u>Origin Rules</u></a> and <a href="https://developers.cloudflare.com/workers/"><u>Workers</u></a>, introducing the <code>http_request_cloud_connector</code> phase, and creating a thin API translation layer, we’ve developed a solution that simplifies multi-cloud routing without compromising on performance or security.</p>
    <div>
      <h3>What’s next for Cloud Connector?</h3>
      <a href="#whats-next-for-cloud-connector">
        
      </a>
    </div>
    <p>The current version of Cloud Connector is just the beginning. Our vision extends far beyond supporting <a href="https://www.cloudflare.com/learning/cloud/what-is-object-storage/"><u>object storage</u></a>. In the future, we aim to support all kinds of HTTP cloud services, including <a href="https://www.cloudflare.com/learning/performance/what-is-load-balancing/"><u>load balancers</u></a>, compute services, and more. We want Cloud Connector to be the primary way for Cloudflare users to discover and manage the cloud services they use across multiple providers.</p><p>Imagine being able to configure secure traffic routing to any cloud service without having to worry about DNS settings, Host headers, or SSL implementation. Our goal is to make Cloud Connector a comprehensive tool that simplifies the entire process, ensuring that you can focus on what matters most: building and scaling your web applications.</p>
    <div>
      <h3>Get started</h3>
      <a href="#get-started">
        
      </a>
    </div>
    <p>Cloud Connector is available in beta to all plans and is completely free. The rollout has started this month (August) and will be gradually released to all users throughout 2024. Once rolled out, users will start seeing this new product under the <b>Rules &gt; Cloud Connector</b> tab of their zone dashboard. No beta access registration is required.</p>
    <div>
      <h2>Learn more</h2>
      <a href="#learn-more">
        
      </a>
    </div>
    <p>Learn more about setting up and using Cloud Connector in <a href="https://developers.cloudflare.com/rules/cloud-connector/"><u>developer documentation</u></a>. Share your feedback in <a href="https://community.cloudflare.com/t/introducing-cloud-connector-simple-cloud-routing/698185"><u>community forums</u></a> – your opinion is invaluable and directly influences our product and design decisions, helping us to make Rules products even better.</p><p></p> ]]></content:encoded>
            <category><![CDATA[Edge Rules]]></category>
            <category><![CDATA[Cloud Connector]]></category>
            <category><![CDATA[CDN]]></category>
            <category><![CDATA[Connectivity Cloud]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">5JzuBm92IJFYqKUPCHgeFn</guid>
            <dc:creator>Nikita Cano</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing Automatic SSL/TLS: securing and simplifying origin connectivity]]></title>
            <link>https://blog.cloudflare.com/introducing-automatic-ssl-tls-securing-and-simplifying-origin-connectivity/</link>
            <pubDate>Thu, 08 Aug 2024 14:05:00 GMT</pubDate>
            <description><![CDATA[ This new Automatic SSL/TLS setting will maximize and simplify the encryption modes Cloudflare uses to communicate with origin servers by using the SSL/TLS Recommender. ]]></description>
            <content:encoded><![CDATA[ 
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4YIQCIdM9Td1RJfdCkg3o5/6fc5cd824f819658e00007c61f69ce71/1885-1-Hero.png" />
          </figure><p>During Birthday Week 2022, we <a href="https://blog.cloudflare.com/securing-origin-connectivity"><u>pledged</u></a> to provide our customers with the most secure connection possible from Cloudflare to their origin servers automatically. I’m thrilled to announce we will begin rolling this experience out to customers who have the <a href="https://blog.cloudflare.com/ssl-tls-recommender"><u>SSL/TLS Recommender</u></a> enabled on <b>August 8, 2024. </b>Following this, remaining Free and Pro customers can use this feature beginning <b>September 16, 2024</b> with Business and Enterprise customers to follow<b>.</b></p><p>Although it took longer than anticipated to roll out, our priority was to achieve an automatic configuration both transparently and without risking any site downtime. Taking this additional time allowed us to balance enhanced security with seamless site functionality, especially since origin server security configuration and capabilities are beyond Cloudflare's direct control. The new Automatic SSL/TLS setting will maximize and simplify the <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/"><u>encryption modes</u></a> Cloudflare uses to communicate with origin servers by using the <a href="https://blog.cloudflare.com/ssl-tls-recommender"><u>SSL/TLS Recommender</u></a>. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/53WNT2fwr0HuN2L0M5PKnJ/c005f100b455fd699d32d2f602ebf447/1885-2.png" />
          </figure><p>We first talked about this process in <a href="https://blog.cloudflare.com/introducing-universal-ssl"><u>2014</u></a>: at that time, securing connections was hard to configure, prohibitively expensive, and required specialized knowledge to set up correctly. To help alleviate these pains, Cloudflare introduced Universal SSL, which allowed web properties to obtain a <a href="https://www.cloudflare.com/application-services/products/ssl/"><u>free SSL/TLS certificate</u></a> to enhance the security of connections between browsers and Cloudflare. </p><p>This worked well and was easy because Cloudflare could manage the certificates and connection security from incoming browsers. As a result of that work, the number of encrypted HTTPS connections on the entire Internet <a href="https://blog.cloudflare.com/introducing-universal-ssl#:~:text=we%27ll%20have%20doubled%20that"><u>doubled</u></a> at that time. However, the connections made from Cloudflare to origin servers still required <i>manual</i> configuration of the encryption <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/"><u>modes</u></a> to let Cloudflare know the capabilities of the origin. </p><p>Today we’re excited to begin the sequel to Universal SSL and make security between Cloudflare and origins automatic and easy for everyone.</p>
    <div>
      <h2>History of securing origin-facing connections</h2>
      <a href="#history-of-securing-origin-facing-connections">
        
      </a>
    </div>
    <p>Ensuring that more bytes flowing across the Internet are automatically encrypted strengthens the barrier against interception, throttling, and censorship of Internet traffic by third parties. </p><p>Generally, two communicating parties (often a client and server) establish a secure connection using the <a href="https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/"><u>TLS</u></a> protocol. For a simplified breakdown: </p><ul><li><p>The client advertises the list of encryption parameters it supports (along with some metadata) to the server.</p></li><li><p>The server responds back with its own preference of the chosen encryption parameters. It also sends a digital certificate so that the client can authenticate its identity.</p></li><li><p>The client validates the server identity, confirming that the server is who it says it is.</p></li><li><p>Both sides agree on a <a href="https://www.cloudflare.com/learning/ssl/what-is-asymmetric-encryption/#:~:text=What%20is-,symmetric,-encryption%3F"><u>symmetric</u></a> secret key for the session that is used to encrypt and decrypt all transmitted content over the connection.</p></li></ul><p>Because Cloudflare acts as an intermediary between the client and our customer’s origin server, two separate TLS connections are established. One between the user’s browser and our network, and the other from our network to the origin server. This allows us to manage and optimize the security and performance of both connections independently.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6s0NxfVR5tCXuAzhI8pYdw/f1f48be437de48bf1b60495647016fbb/1885-3.png" />
          </figure><p>Unlike securing connections between clients and Cloudflare, the security capabilities of origin servers are not under our direct control. For example, we can manage the <a href="https://www.cloudflare.com/en-gb/learning/ssl/what-is-an-ssl-certificate/"><u>certificate</u></a> (the file used to verify identity and provide context on establishing encrypted connections) between clients and Cloudflare because it’s our job in that connection to provide it to clients, but when talking to origin servers, Cloudflare <i>is</i> the client.</p><p>Customers need to <a href="https://developers.cloudflare.com/ssl/origin-configuration/origin-ca/"><u>acquire and provision</u></a> an origin certificate on their host. They then have to configure Cloudflare to expect the new certificate from the origin when opening a connection. Needing to manually configure connection security across multiple different places requires effort and is prone to human error. </p><p>This issue was discussed in the original <a href="https://blog.cloudflare.com/introducing-universal-ssl"><u>Universal SSL blog</u></a>:</p><blockquote><p><i>For a site that did not have SSL before, we will default to our </i><a href="https://support.cloudflare.com/hc/en-us/articles/200170416-What-do-the-SSL-options-Off-Flexible-SSL-Full-SSL-Full-SSL-Strict-mean-"><i><u>Flexible SSL mode</u></i></a><i>, which means traffic from browsers to Cloudflare will be encrypted, but traffic from Cloudflare to a site's origin server will not. We strongly recommend site owners install a certificate on their web servers so we can encrypt traffic to the origin … Once you've installed a certificate on your web server, you can enable the </i><a href="https://support.cloudflare.com/hc/en-us/articles/200170416-What-do-the-SSL-options-Off-Flexible-SSL-Full-SSL-Full-SSL-Strict-mean-"><i><u>Full or Strict SSL modes</u></i></a><i> which encrypt origin traffic and provide a higher level of security.</i></p></blockquote><p>Over the years Cloudflare has introduced numerous products to help customers configure how Cloudflare should talk to their origin. These products include a <a href="https://blog.cloudflare.com/universal-ssl-encryption-all-the-way-to-the-origin-for-free/"><u>certificate authority</u></a> to help customers obtain a certificate to verify their origin server’s identity and encryption capabilities, <a href="https://developers.cloudflare.com/ssl/origin-configuration/authenticated-origin-pull/"><u>Authenticated Origin Pulls</u></a> that ensures only HTTPS (encrypted) requests from Cloudflare will receive a response from the origin server, and <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/"><u>Cloudflare Tunnels</u></a> that can be configured to proactively establish secure and private tunnels to the nearest Cloudflare data center. Additionally, the <a href="https://datatracker.ietf.org/doc/html/rfc8555/"><u>ACME</u></a> protocol and its corresponding <a href="https://certbot.eff.org/"><u>Certbot</u></a> tooling make it easier than ever to obtain and manage publicly-trusted certificates on customer origins. While these technologies help customers configure how Cloudflare should communicate with their origin server, they still require manual configuration changes on the origin and to Cloudflare settings. </p><p>Ensuring certificates are configured appropriately on origin servers and informing Cloudflare about how we should communicate with origins can be anxiety-inducing because misconfiguration can lead to downtime if something isn’t deployed or configured correctly. </p><p>To simplify this process and help identify the most secure options that customers could be using without any misconfiguration risk, <b>Cloudflare introduced the </b><a href="https://blog.cloudflare.com/ssl-tls-recommender"><b><u>SSL/TLS Recommender</u></b></a><b> in 2021.</b> The Recommender works by probing customer origins with different SSL/TLS settings to provide a recommendation whether the SSL/TLS <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/"><u>encryption mode</u></a> for the web property can be improved. The Recommender has been in production for three years and has consistently managed to provide high quality origin-security recommendations for Cloudflare’s customers. </p><p>The SSL/TLS Recommender system serves as the brain of the automatic origin connection service that we are announcing today. </p>
    <div>
      <h2>How does SSL/TLS Recommendation work?</h2>
      <a href="#how-does-ssl-tls-recommendation-work">
        
      </a>
    </div>
    <p>The Recommender works by actively comparing content on web pages that have been downloaded using different SSL/TLS modes to see if it is safe and risk-free to update the <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/"><u>mode</u></a> Cloudflare uses to connect to origin servers.</p><p>Cloudflare currently offers five SSL/TLS modes:</p><ol><li><p><b>Off</b>: No encryption is used for traffic between browsers and Cloudflare or between Cloudflare and origins. Everything is cleartext HTTP.</p></li><li><p><b>Flexible</b>: Traffic from browsers to Cloudflare can be encrypted via HTTPS, but traffic from Cloudflare to the origin server is not. This mode is common for origins that do not support TLS, though upgrading the origin configuration is recommended whenever possible. A guide for upgrading is available <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/full/#required-setup"><u>here</u></a>.</p></li><li><p><b>Full</b>: Cloudflare matches the browser request protocol when connecting to the origin. If the browser uses HTTP, Cloudflare connects to the origin via HTTP; if HTTPS, Cloudflare uses HTTPS without validating the origin’s certificate. This mode is common for origins that use self-signed or otherwise invalid certificates.</p></li><li><p><b>Full (Strict)</b>: Similar to Full Mode, but with added validation of the origin server’s certificate, which can be issued by a public CA like Let’s Encrypt or by Cloudflare Origin CA.</p></li><li><p><b>Strict (SSL-only origin pull)</b>: Regardless of whether the browser-to-Cloudflare connection uses HTTP or HTTPS, Cloudflare always connects to the origin over HTTPS with certificate validation.</p></li></ol><table><tr><th><p>
</p></th><th><p><b>HTTP from visitor</b></p></th><th><p><b>HTTPS from visitor</b></p></th></tr><tr><td><p><b>Off</b></p></td><td><p>HTTP to origin</p></td><td><p>HTTP to origin</p></td></tr><tr><td><p><b>Flexible</b></p></td><td><p>HTTP to origin</p></td><td><p>HTTP to origin</p></td></tr><tr><td><p><b>Full</b></p></td><td><p>HTTP to origin</p></td><td><p>HTTPS without cert validation to origin</p></td></tr><tr><td><p><b>Full (strict)</b></p></td><td><p>HTTP to origin</p></td><td><p>HTTPS with cert validation to origin</p></td></tr><tr><td><p><b>Strict (SSL-only origin pull)</b></p></td><td><p>HTTPS with cert validation to origin</p></td><td><p>HTTPS with cert validation to origin</p></td></tr></table><p>
The SSL/TLS Recommender works by crawling customer sites and collecting links on the page (like any web crawler). The Recommender downloads content over both HTTP and HTTPS, making GET requests to avoid modifying server resources. It then uses a content similarity algorithm, adapted from the research paper "<a href="https://www.cs.umd.edu/~dml/papers/https_tma20.pdf"><u>A Deeper Look at Web Content Availability and Consistency over HTTP/S"</u></a> (TMA Conference 2020), to determine if content matches. If the content does match, the Recommender makes a determination for whether the <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/"><u>SSL/TLS mode</u></a> can be increased without misconfiguration risk. </p><p>The recommendations are currently delivered to customers via email. </p><p>When the Recommender is making security recommendations, it errs on the side of maintaining current site functionality to avoid breakage and usability issues. If a website is non-functional, blocks all bots, or has SSL/TLS-specific Page Rules or Configuration Rules, the Recommender may not complete its scans and provide a recommendation. It was designed to maximize <a href="https://www.cloudflare.com/application-services/solutions/domain-protection-services/">domain security</a>, but will not help resolve website or domain functionality issues.</p><p>The crawler uses the user agent "<code>Cloudflare-SSLDetector</code>" and is included in Cloudflare’s list of known <a href="https://bots-directory.cfdata.org/bot/cloudflare-ssl-detector"><u>good bots</u></a>. It ignores <code>robots.txt</code> (except for rules specifically targeting its user agent) to ensure accurate recommendations.</p><p>When downloading content from your origin server over both HTTP and HTTPS and comparing the content, the Recommender understands the current SSL/TLS encryption mode that your website uses and what risk there might be to the site functionality if the recommendation is followed.</p>
    <div>
      <h2>Using SSL/TLS Recommender to automatically manage SSL/TLS settings </h2>
      <a href="#using-ssl-tls-recommender-to-automatically-manage-ssl-tls-settings">
        
      </a>
    </div>
    <p>Previously, signing up for the SSL/TLS Recommender provided a good experience for customers, but only resulted in an email recommendation in the event that a zone’s current SSL/TLS modes could be updated. To Cloudflare, this was a positive signal that customers wanted their websites to have more secure connections to their origin servers – over 2 million domains have enabled the SSL/TLS Recommender. However, we found that a significant number of users would not complete the next step of pushing the button to inform Cloudflare that we could communicate over the upgraded settings. <b>Only 30% of the recommendations that the system provided were followed. </b></p><p>With the system designed to increase security while avoiding any breaking changes, we wanted to provide an option for customers to allow the Recommender to help upgrade their site security, without requiring further manual action from the customer. <b>Therefore, we are introducing a new option for managing SSL/TLS configuration on Cloudflare: Automatic SSL/TLS. </b></p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/21q0D6rvhXHQxRe2ko4ITA/d5ca2f9a7139a2f55a16ca8bcf783ee0/1885-4.png" />
          </figure><p></p><p>Automatic SSL/TLS uses the SSL/TLS Recommender to make the determination as to what encryption mode is the most secure and safest for a website to be set to. If there is a <b>more secure</b> option for your website (based on your origin certification or capabilities), Automatic SSL/TLS will find it and apply it for your domain. The other option, <b>Custom SSL/TLS,</b> will work exactly like the setting the encryption mode does today. If you know what setting you want, just select it using Custom SSL/TLS, and we’ll use it. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/jFTSsmxG2WH0FqTklAJwb/eff9f692cdec3d199d32996bb0111441/1885-5.png" />
          </figure><p></p><p>Automatic SSL/TLS is currently meant to service an entire website, which typically works well for those with a single origin. For those concerned that they have more complex setups which use multiple origin servers with different security capabilities, don’t worry. Automatic SSL/TLS will still avoid breaking site functionality by looking for the best setting that works for all origins serving a part of the site’s traffic. </p><p>If customers want to segment the SSL/TLS mode used to communicate with the numerous origins that service their domain, they can achieve this by using <a href="https://developers.cloudflare.com/rules/configuration-rules/"><u>Configuration Rules</u></a>. These rules allow you to set more precise modes that Cloudflare should respect (based on path or subdomain or even IP address) to maximize the security of the domain based on your desired Rules criteria. If your site uses SSL/TLS-specific settings in a Configuration Rule or Page rule, those settings will <b>override the zone-wide Automatic and Custom settings.</b></p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6PCXOjFBtEucRUOP3BoMGQ/6ba2700c18cf4c49782bdf2d0ee33435/1885-6.png" />
          </figure><p></p><p>The goal of Automatic SSL/TLS<b> </b>is to simplify and maximize the origin-facing security for customers on Cloudflare. We want this to be the new default for all websites on Cloudflare, but we understand that not everyone wants this new default, and we will respect your decision for how Cloudflare should communicate with your origin server. If you block the Recommender from completing its crawls, the origin server is non-functional or can’t be crawled, or if you want to opt out of this default and just continue using the same encryption mode you are using today, we will make it easy for you to tell us what you prefer. </p>
    <div>
      <h2>How to onboard to Automatic SSL/TLS</h2>
      <a href="#how-to-onboard-to-automatic-ssl-tls">
        
      </a>
    </div>
    <p>To improve the security settings for everyone by default, we are making the following default changes to how Cloudflare configures the SSL/TLS level for all zones: </p><p>Starting on <b>August 8, 2024</b> websites with the <b>SSL/TLS Recommender currently enabled</b> will have the Automatic SSL/TLS setting enabled by default. Enabling does not mean that the Recommender will begin scanning and applying new settings immediately though. There will be a <b><u>one-month grace period</u></b> before the first scans begin and the recommended settings are applied. Enterprise (ENT) customers will get a <b><u>six-week grace period</u></b>. Origin scans will start getting scheduled by <b>September 9, 2024, for non-Enterprise </b>customers<b> </b>and<b> September 23rd for ENT customers with the SSL Recommender enabled</b>. This will give customers the ability to opt out by removing Automatic SSL/TLS and selecting the Custom mode that they want to use instead.</p><p>Further, during the second week of September <b>all new zones signing up for Cloudflare</b> will start seeing the Automatic SSL/TLS setting enabled by default.</p><p>Beginning <b>September 16, 2024, </b>remaining <b>Free and Pro</b> customers will start to see the new Automatic SSL/TLS setting. They will also have a one-month grace period to opt out before the scans start taking effect. </p><p>Customers in the cohort having the new Automatic SSL/TLS setting applied will receive an email communication regarding the date that they are slated for this migration as well as a banner on the dashboard that mentions this transition as well. If they do not wish for Cloudflare to change anything in their configurations, the process for opt-out of this migration is outlined below. </p><p>Following the successful migration of Free and Pro customers, we will proceed to Business and Enterprise customers with a similar cadence. These customers will get email notifications and information in the dashboard when they are in the migration cohort.</p><p>The Automatic SSL/TLS setting will not impact users that are already in Strict or Full (strict) mode nor will it impact websites that have opted-out. </p>
    <div>
      <h2>Opting out</h2>
      <a href="#opting-out">
        
      </a>
    </div>
    <p>There are a number of reasons why someone might want to configure a lower-than-optimal security setting for their website. Some may want to set a lower security setting for testing purposes or to debug some behavior. Whatever the reason, the options to opt-out of the Automatic SSL/TLS setting during the migration process are available in the dashboard and API.</p><p>To opt-out, simply select <b>Custom SSL/TLS</b> in the dashboard (instead of the enabled Automatic SSL/TLS) and we will continue to use the previously set encryption mode that you were using prior to the migration. Automatic and Custom SSL/TLS modes can be found in the <b>Overview</b> tab of the SSL/TLS section of the dashboard. To enable your preferred mode, select <b>configure</b>.  </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4meNmREGaXd1FJfxUKr5NN/bdbe1e07a2121d2f9ec2a11e64c77b7f/1885-7.png" />
          </figure><p></p><p>If you want to opt-out via the API you can make this API call on or before the grace period expiration date. </p>
            <pre><code>    curl --request PATCH \
        --url https://api.cloudflare.com/client/v4/zones/&lt;insert_zone_tag_here&gt;/settings/ssl_automatic_mode \
        --header 'Authorization: Bearer &lt;insert_api_token_here&gt;' \
        --header 'Content-Type: application/json' \
        --data '{"value":"custom"}'
</code></pre>
            <p></p><p>If an opt-out is triggered, there will not be a change to the currently configured SSL/TLS setting. You are also able to change the security level at any time by going to the SSL/TLS section of the dashboard and choosing the Custom setting you want (similar to how this is accomplished today). </p><p>If at a later point you’d like to opt-in to Automatic SSL/TLS, that option is available by changing your setting from Custom to Automatic.</p>
    <div>
      <h2>What if I want to be more secure now?</h2>
      <a href="#what-if-i-want-to-be-more-secure-now">
        
      </a>
    </div>
    <p>We will begin to roll out this change to customers with the SSL/TLS Recommender enabled on <b>August 8, 2024</b>. If you want to enroll in that group, we recommend enabling the Recommender as soon as possible. </p><p>If you read this and want to make sure you’re at the highest level of backend security already, we recommend <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/full-strict/"><u>Full (strict)</u></a> or <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/ssl-only-origin-pull/"><u>Strict mode</u></a>. Directions on how to make sure you’re correctly configured in either of those settings are available <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/full-strict/#required-setup"><u>here</u></a> and <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/ssl-only-origin-pull/#required-setup"><u>here</u></a>. </p><p>If you prefer to wait for us to automatically upgrade your connection to the maximum encryption mode your origin supports, please watch your inbox for the date we will begin rolling out this change for you.</p> ]]></content:encoded>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Network Services]]></category>
            <category><![CDATA[Encryption]]></category>
            <category><![CDATA[Research]]></category>
            <guid isPermaLink="false">2lhAhlWMei6M2NkhzAuULC</guid>
            <dc:creator>Alex Krivit</dc:creator>
            <dc:creator>Suleman Ahmad</dc:creator>
            <dc:creator>J Evans</dc:creator>
            <dc:creator>Yawar Jamal</dc:creator>
        </item>
        <item>
            <title><![CDATA[Avoiding downtime: modern alternatives to outdated certificate pinning practices]]></title>
            <link>https://blog.cloudflare.com/why-certificate-pinning-is-outdated/</link>
            <pubDate>Mon, 29 Jul 2024 13:00:37 GMT</pubDate>
            <description><![CDATA[ Outages caused by certificate pinning is increasing. Learn why certificate pinning hasn’t kept up with modern standards and find alternatives to improve security while reducing management overhead ]]></description>
            <content:encoded><![CDATA[ <p>In today’s world, technology is quickly evolving and some practices that were once considered the gold standard are quickly becoming outdated. At Cloudflare, we stay close to industry changes to ensure that we can provide the best solutions to our customers. One practice that we’re continuing to see in use that no longer serves its original purpose is certificate pinning. In this post, we’ll dive into certificate pinning, the consequences of using it in today’s <a href="https://www.cloudflare.com/en-gb/learning/ssl/how-does-public-key-encryption-work/">Public Key Infrastructure (PKI)</a> world, and alternatives to pinning that offer the same level of security without the management overhead.   </p><p>PKI exists to help issue and manage <a href="https://www.cloudflare.com/learning/ssl/what-is-an-ssl-certificate/">TLS certificates</a>, which are vital to keeping the Internet secure – they ensure that users access the correct applications or servers and that data between two parties stays encrypted. The mis-issuance of a certificate can pose great risk. For example, if a malicious party is able to issue a TLS certificate for your bank’s website, then they can potentially impersonate your bank and intercept that traffic to get access to your bank account. To prevent a mis-issued certificate from intercepting traffic, the server can give a certificate to the client and say “only trust connections if you see this certificate and drop any responses that present a different certificate” – this practice is called certificate pinning. </p><p>In the early 2000s, it was common for banks and other organizations that handle sensitive data to pin certificates to clients. However, over the last 20 years, TLS certificate issuance has evolved and changed, and new solutions have been developed to help customers achieve the security benefit they receive through certificate pinning, with simpler management, and without the risk of disruption.</p><p>Cloudflare’s mission is to help build a better Internet, which is why our teams are always focused on <a href="https://www.cloudflare.com/application-services/solutions/domain-protection-services/">keeping domains secure and online</a>.</p>
    <div>
      <h2>Why certificate pinning is causing more outages now than it did before</h2>
      <a href="#why-certificate-pinning-is-causing-more-outages-now-than-it-did-before">
        
      </a>
    </div>
    <p>Certificate pinning is not a new practice, so why are we emphasizing the need to stop using it <i>now</i>? The reason is that the PKI ecosystem is moving towards becoming more agile, flexible, and secure. As a part of this change, <a href="https://www.ssl.com/article/what-is-a-certificate-authority-ca/">certificate authorities (CAs)</a> are starting to rotate certificates and their intermediates, certificates that bridge the root certificate and the domain certificate, more frequently to <a href="https://www.cloudflare.com/application-services/solutions/certificate-lifecycle-management/">improve security and encourage automation</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6bcPbw10tESD1qHK6cP9yE/ac3f3df18f10a8a4595386a49a7ecd07/image3-12.png" />
            
            </figure><p>These more frequent certificate rotations are problematic from a pinning perspective because certificate pinning relies on the exact matching of certificates. When a certificate is rotated, the new certificate might not match the pinned certificate on the client side. If the pinned certificate is not updated to reflect the contents of the rotated certificate, the client will reject the new certificate, even if it’s valid and issued by the same CA. This mismatch leads to a failure in establishing a secure connection, causing the domain or application to become inaccessible until the pinned certificate is updated.</p><p>Since the start of 2024, we have seen the number of customer reported outages caused by certificate pinning significantly increase. (As of this writing, we are part way through July and Q3 has already seen as many outages as the last three quarters of 2023 combined.)</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1U4AFw29oL1GCcen93rnYr/5dea495d82170011725de472cfd7f98a/image4-4.png" />
            
            </figure><p>We can attribute this rise to two major events: Cloudflare migrating away from using DigiCert as a certificate authority and Google and Let’s Encrypt intermediate CA rotations.</p><p>Before migrating customer’s certificates away from using DigiCert as the CA, Cloudflare sent multiple notifications to customers to inform them that they should update or remove their certificate pins, so that the migration does not impact their domain’s availability.</p><p>However, what we’ve learned is that almost all customers that were impacted by the change were unaware that they had a certificate pin in place. One of the consequences of using certificate pinning is that the “set and forget” mentality doesn’t work, now that certificates are being rotated more frequently. Instead, changes need to be closely monitored to ensure that a regular certificate renewal doesn't cause an outage. This goes to show that to implement certificate pinning successfully, customers need a robust system in place to track certificate changes and implement them.</p><p>We built our <a href="https://developers.cloudflare.com/ssl/edge-certificates/universal-ssl/">Universal SSL</a> pipeline to be resilient and redundant, ensuring that we can always <a href="https://www.cloudflare.com/application-services/products/ssl/">issue and renew a TLS certificate</a> on behalf of our customers, <a href="/introducing-backup-certificates">even in the event of a compromise or revocation</a>. CAs are starting to make changes like more frequent certificate rotations to encourage a move towards a more secure ecosystem. Now, it’s up to domain owners to stop implementing legacy practices like certificate pinning, which cause breaking changes, and instead start adopting modern standards that aim to provide the same level of security, but without the management overhead or risk.</p>
    <div>
      <h2>Modern standards &amp; practices are making the need for certificate pinning obsolete</h2>
      <a href="#modern-standards-practices-are-making-the-need-for-certificate-pinning-obsolete">
        
      </a>
    </div>
    
    <div>
      <h3>Shorter certificate lifetimes</h3>
      <a href="#shorter-certificate-lifetimes">
        
      </a>
    </div>
    <p>Over the last few years, we have seen certificate lifetimes quickly decrease. Before 2011, a certificate could be valid for up to 96 months (eight years) and now, in 2024, the maximum validity period for a certificate is 1 year. We’re seeing this trend continue to develop, with Google Chrome <a href="https://www.chromium.org/Home/chromium-security/root-ca-policy/moving-forward-together/">pushing</a> for shorter CA, intermediate, and certificate lifetimes, advocating for 3 month certificate validity as the new standard.</p><p>This push improves security and redundancy of the entire PKI ecosystem in several ways. First, it reduces the scope of a compromise by limiting the amount of time that a malicious party could control a TLS certificate or private key. Second, it reduces reliance on certificate revocation, a process that lacks standardization and enforcement by clients, browsers, and CAs. Lastly, it encourages automation as a replacement for legacy certificate practices that are time-consuming and error-prone.</p><p>Cloudflare is moving towards only using CAs that follow the <a href="https://datatracker.ietf.org/doc/html/rfc8555">ACME</a> (Automated Certificate Management Environment) protocol, which by default, issues certificates with 90 day validity periods. We have already started to roll this out to Universal SSL certificates and have removed the ability to issue 1-year certificates as a part of our <a href="https://developers.cloudflare.com/ssl/reference/migration-guides/digicert-update/">reduced usage of DigiCert</a>.</p>
    <div>
      <h3>Regular rotation of intermediate certificates</h3>
      <a href="#regular-rotation-of-intermediate-certificates">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/38pDF476Nnjx7acXBN5eTM/ece6376485bb5232e4574d05c7294564/image2-8.png" />
            
            </figure><p>The CAs that Cloudflare partners with, <a href="https://letsencrypt.org/">Let’s Encrypt</a> and <a href="https://pki.goog/">Google Trust Services</a>, are starting to rotate their intermediate CAs more frequently. This increased rotation is beneficial from a security perspective because it limits the lifespan of intermediate certificates, reducing the window of opportunity for attackers to exploit a compromised intermediate. Additionally, regular rotations make it easier to revoke an intermediate certificate if it becomes compromised, enhancing the overall security and resiliency of the PKI ecosystem.</p><p>Both Let’s Encrypt and Google Trust Services changed their intermediate chains in June 2024. In addition, <a href="https://community.letsencrypt.org/t/lets-encrypt-new-intermediate-certificates/209498">Let’s Encrypt has started to balance their certificate issuance across 10 intermediates</a> (5 RSA and 5 ECDSA).</p><p>Cloudflare customers using <a href="https://www.cloudflare.com/advanced-certificate-manager/">Advanced Certificate Manager</a> have the ability to choose their issuing CA. The issue is that even if Cloudflare uses the same CA for a certificate renewal, there is no guarantee that the same certificate chain (root or intermediate) will be used to issue the renewed certificate. As a result, if pinning is used, a successful renewal could cause a full outage for a domain or application.</p><p>This happens because certificate pinning relies on the exact matching of certificates. When an intermediate certificate is rotated or changed, the new certificate might not match the pinned certificate on the client side. As a result, the client will reject the renewed certificate, even if it’s a valid certificate issued by the same CA. This mismatch leads to a failure on the client side, causing the domain to become inaccessible until the pinned certificate is updated to reflect the new intermediate certificate. This risk of an unexpected outage is a major downside of continuing to use certificate pinning, especially as CAs increasingly update their intermediates as a security measure.</p>
    <div>
      <h3>Increased use of certificate transparency</h3>
      <a href="#increased-use-of-certificate-transparency">
        
      </a>
    </div>
    <p><a href="/introducing-certificate-transparency-and-nimbus">Certificate transparency (CT) logs</a> provide a standardized framework for monitoring and auditing the issuance of TLS certificates. CT logs help detect misissued or malicious certificates and Cloudflare customers can set up <a href="/introducing-certificate-transparency-monitoring">CT monitoring</a> to receive notifications about any certificates issued for their domain. This provides a better mechanism for detecting certificate mis-issuance, reducing the need for pinning.</p>
    <div>
      <h3>Why modern standards make certificate pinning obsolete</h3>
      <a href="#why-modern-standards-make-certificate-pinning-obsolete">
        
      </a>
    </div>
    <p>Together, these practices – shorter certificate lifetimes, regular rotations of intermediate certificates, and increased use of certificate transparency – address the core security concerns that certificate pinning was initially designed to mitigate. Shorter lifetimes and frequent rotations limit the impact of compromised certificates, while certificate transparency allows for real time monitoring and detection of misissued certificates. These advancements are automated, scalable, and robust and eliminate the need for the manual and error-prone process of certificate pinning. By adopting these modern standards, organizations can achieve a higher level of security and resiliency without the management overhead and risk associated with certificate pinning.</p>
    <div>
      <h2>Reasons behind continued use of certificate pinning</h2>
      <a href="#reasons-behind-continued-use-of-certificate-pinning">
        
      </a>
    </div>
    <p>Originally, certificate pinning was designed to prevent <a href="/monsters-in-the-middleboxes/">monster-in-the-middle (MITM)</a> attacks by associating a hostname with a specific TLS certificate, ensuring that a client could only access an application if the server presented a certificate issued by the domain owner.</p><p>Certificate pinning was traditionally used to secure IoT (Internet of Things) devices, mobile applications, and APIs. IoT devices are usually equipped with more limited processing power and are oftentimes unable to perform software updates. As a result, they’re less likely to perform things like certificate revocation checks to ensure that they’re using a valid certificate. As a result, it’s common for these devices to come pre-installed with a set of trusted certificate pins to ensure that they can maintain a high level of security. However, the increased frequency of certificate changes poses significant risk, as many devices have immutable software, preventing timely updates to certificate pins during renewals.</p><p>Similarly, certificate pinning has been employed to secure Android and iOS applications, ensuring that only the correct certificates are served. Despite this, both <a href="https://developer.apple.com/news/?id=g9ejcf8y">Apple</a> and <a href="https://developer.android.com/privacy-and-security/security-ssl">Google</a> warn developers against the use of certificate pinning due to the potential for failures if not implemented correctly.</p>
    <div>
      <h2>Understanding the trade-offs of different certificate pinning implementations</h2>
      <a href="#understanding-the-trade-offs-of-different-certificate-pinning-implementations">
        
      </a>
    </div>
    <p>While certificate pinning can be applied at various levels of the certificate chain, offering different levels of granularity and security, we don’t recommend it due to the challenges and risks associated with its use.</p>
    <div>
      <h3>Pinning certificates at the root certificate</h3>
      <a href="#pinning-certificates-at-the-root-certificate">
        
      </a>
    </div>
    <p>Pinning the root certificate instructs a client to only trust certificates issued by that specific Certificate Authority (CA).</p><p><b>Advantages</b>:</p><ul><li><p><b>Simplified management:</b> Since root certificates have long lifetimes (&gt;10 years) and rarely change, pinning at the root reduces the need to frequently update certificate pins, making this the easiest option in terms of management overhead.</p></li></ul><p><b>Disadvantages:</b></p><ul><li><p><b>Broader trust:</b> Most Certificate Authorities (CAs) issue their certificates from one root, so pinning a root CA certificate enables the client to trust every certificate issued from that CA. However, this broader trust can be problematic. If the root CA is compromised, every certificate issued by that CA is also compromised, which significantly increases the potential scope and impact of a security breach. This broad trust can therefore create a single point of failure, making the entire ecosystem more vulnerable to attacks.</p></li><li><p><b>Neglected Maintenance:</b> Root certificates are infrequently rotated, which can lead to a “set and forget” mentality when pinning them. Although it's rare, CAs do <a href="https://letsencrypt.org/2023/07/10/cross-sign-expiration.html">change their roots</a> and when this happens, a correctly renewed certificate will break the pin, causing an outage. Since these pins are rarely updated, resolving such outages can be time-consuming as engineering teams try to identify and locate where the outdated pins have been set.</p></li></ul>
    <div>
      <h3>Pinning certificates at the intermediate certificate</h3>
      <a href="#pinning-certificates-at-the-intermediate-certificate">
        
      </a>
    </div>
    <p>Pinning an intermediate certificate instructs a client to only trust certificates issued by a specific intermediate CA, issued from a trusted root CA. With lifetimes ranging from 3 to 10 years, intermediate certificates offer a better balance between security and flexibility.</p><p><b>Advantages:</b></p><ul><li><p><b>Better security:</b> Narrows down the trust to certificates issued by a specific intermediate CA.</p></li><li><p><b>Simpler management:</b> With intermediate CA lifetimes spanning a few years, certificate pins require less frequent updates, reducing the maintenance burden.</p></li></ul><p><b>Disadvantages:</b></p><ul><li><p><b>Broad trust:</b> While pinning on an intermediate certificate is more restrictive than pinning on a root certificate, it still allows for a broad range of certificates to be trusted.</p></li><li><p><b>Maintenance:</b> Intermediate certificates are rotated more frequently than root certificates, requiring more regular updates to pinned certificates.</p></li><li><p><b>Less predictability:</b> With CAs like Let’s Encrypt issuing their certificates from varying intermediates, it’s no longer possible to predict which certificate chain will be used during a renewal, making it more likely for a certificate renewal to break a certificate pin and cause an outage.</p></li></ul>
    <div>
      <h3>Pinning certificates at the leaf certificate</h3>
      <a href="#pinning-certificates-at-the-leaf-certificate">
        
      </a>
    </div>
    <p>Pinning the leaf certificate instructs a client to only trust that specific certificate. Although this option offers the highest level of security, it also poses the greatest risk of causing an outage during a certificate renewal.</p><p><b>Advantages:</b></p><ul><li><p><b>High security:</b> Provides the highest level of security by ensuring that only a specific certificate is trusted, minimizing the risk of a monster-in-the-middle attack.</p></li></ul><p><b>Disadvantages:</b></p><ul><li><p><b>Risky:</b> Requires careful management of certificate renewals to prevent outages.</p></li><li><p><b>Management burden:</b> Leaf certificates have shorter lifetimes, with 90 days becoming the standard, requiring constant updates to the certificate pin to avoid a breaking change during a renewal.</p></li></ul>
    <div>
      <h2>Alternatives to certificate pinning</h2>
      <a href="#alternatives-to-certificate-pinning">
        
      </a>
    </div>
    <p>Given the risks and challenges associated with certificate pinning, we recommend the following as more effective and modern alternatives to achieve the same level of security (preventing a mis-issued certificate from intercepting traffic) that certificate pinning aims to provide.</p>
    <div>
      <h3>Shorter certificate lifetimes</h3>
      <a href="#shorter-certificate-lifetimes">
        
      </a>
    </div>
    <p>Using shorter certificate lifetimes ensures that certificates are regularly renewed and replaced, reducing the risk of misuse of a compromised certificate by limiting the window of opportunity for attackers.</p><p>By default, Cloudflare issues 90-day certificates for customers. Customers using Advanced Certificate Manager can request TLS certificates with lifetimes as short as 14 days.</p>
    <div>
      <h3>CAA records to restrict which CAs can issue certificates for a domain</h3>
      <a href="#caa-records-to-restrict-which-cas-can-issue-certificates-for-a-domain">
        
      </a>
    </div>
    <p><a href="https://developers.cloudflare.com/ssl/edge-certificates/caa-records/">Certification Authority Authorization</a> (CAA) DNS records allow domain owners to specify which CAs are allowed to issue certificates for their domain. This adds an extra layer of security by restricting issuance to trusted authorities, providing a similar benefit as pinning a root CA certificate. For example, if you’re using Google Trust Services as your CA, you can add the following CAA DNS record to ensure that only that CA issues certificates for your domain:</p>
            <pre><code>example.com         CAA 0 issue "pki.goog"</code></pre>
            <p>By default, <a href="https://developers.cloudflare.com/ssl/edge-certificates/caa-records/#caa-records-added-by-cloudflare">Cloudflare sets CAA records</a> on behalf of customers to ensure that certificates can be issued from the CAs that Cloudflare partners with. Customers can choose to further restrict that list of CAs by adding their own CAA records.</p>
    <div>
      <h3>Certificate Transparency &amp; monitoring</h3>
      <a href="#certificate-transparency-monitoring">
        
      </a>
    </div>
    <p>Certificate Transparency (CT) provides the ability to monitor and audit certificate issuances. By logging certificates in publicly accessible CT logs, organizations are able to monitor, detect, and respond to misissued certificates at the time they are issued.</p><p>Cloudflare customers can set up <a href="https://developers.cloudflare.com/ssl/edge-certificates/additional-options/certificate-transparency-monitoring/">CT Monitoring</a> to receive notifications when certificates are issued in their domain. Today, we notify customers using the product about all certificates issued for their domains. In the future, we will allow customers to filter those notifications, so that they are only notified when an external party that isn’t Cloudflare issues a certificate for the owner’s domain. This product is available to all customers and can be enabled with the click of a button.</p>
    <div>
      <h3>Multi-vantage point Domain Control Validation (DCV) checks to prevent mis-issuances</h3>
      <a href="#multi-vantage-point-domain-control-validation-dcv-checks-to-prevent-mis-issuances">
        
      </a>
    </div>
    <p>For a CA to issue a certificate, the domain owner needs to prove ownership of the domain by serving Domain Control Validation (DCV) records. While uncommon, one attack vector of DCV validation allows an actor to perform BGP hijacking to spoof the DNS response and trick a CA into mis-issuing a certificate. To prevent this form of attack, CAs have started to perform DCV validation checks from multiple locations to ensure that a certificate is only issued when a full quorum is met.</p><p>Cloudflare has developed <a href="/secure-certificate-issuance">its own solution</a> that CAs can use to perform multi vantage point DCV checks. In addition, Cloudflare partners with CAs like Let’s Encrypt who continue to develop these checks to support <a href="https://community.letsencrypt.org/t/lets-encrypt-is-adding-two-new-remote-perspectives-for-domain-validation/214123/3">new locations</a>, reducing the risk of a certificate mis-issuance.</p>
    <div>
      <h3>Specifying ACME account URI in CAA records</h3>
      <a href="#specifying-acme-account-uri-in-caa-records">
        
      </a>
    </div>
    <p>A new enhancement to the <a href="https://datatracker.ietf.org/doc/html/rfc8555">ACME protocol</a> allows certificate requesting parties to specify an ACME account URI, the ID of the ACME account that will be requesting the certificates, in CAA records to tighten control over the certificate issuance process. This ensures that only certificates issued through an authorized ACME account are trusted, adding another layer of verification to certificate issuance. Let’s Encrypt <a href="https://letsencrypt.org/docs/caa/">supports</a> this extension to CAA records which allows users with a Let’s Encrypt certificate to set a CAA DNS record, such as the following:</p>
            <pre><code>example.com         CAA 0 issue "letsencrypt.org;accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/&lt;account_id&gt;"</code></pre>
            <p>With this record, Let’s Encrypt subscribers can ensure that only Let’s Encrypt can issue certificates for their domain and that these certificates were only issued through their ACME account.</p><p>Cloudflare will look to support this enhancement automatically for customers in the future.</p>
    <div>
      <h2>Conclusion</h2>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>Years ago, certificate pinning was a valuable tool for enhancing security, but over the last 20 years, it has failed to keep up with new advancements in the certificate ecosystem. As a result, instead of providing the intended security benefit, it has increased the number of outages caused during a successful certificate renewal. With new enhancements in certificate issuance standards and certificate transparency, we’re encouraging our customers and the industry to move towards adopting those new standards and deprecating old ones.</p><p>If you’re a Cloudflare customer and are required to pin your certificate, the only way to ensure a zero-downtime renewal is to upload your own custom certificates. We recommend using the <a href="/staging-tls-certificate-every-deployment-safe-deployment">staging network</a> to test your certificate renewal to ensure you have updated your certificate pin.</p> ]]></content:encoded>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Network Services]]></category>
            <category><![CDATA[Certificate Pinning]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[Certificate Transparency]]></category>
            <guid isPermaLink="false">60UVrfwDr6RkKdtneMF0ph</guid>
            <dc:creator>Dina Kozlov</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing notifications for HTTP Traffic Anomalies]]></title>
            <link>https://blog.cloudflare.com/introducing-http-traffic-anomalies-notifications/</link>
            <pubDate>Tue, 31 Oct 2023 13:01:11 GMT</pubDate>
            <description><![CDATA[ Today we're excited to announce Traffic Anomalies notifications, which proactively alert you when your Internet property is seeing an unexpected change in traffic patterns ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5vLGpnj5frsUOqDOTSbbmY/d1b29458a05d13a8b1d1727d08a25592/Traffic-anomalies-1.png" />
            
            </figure><p>When it comes to managing Internet properties, the difference between a small technical hiccup and major incident is often a matter of speed. Proactive alerting plays a crucial role, which is why we were excited when we released <a href="/smarter-origin-service-level-monitoring/">HTTP Error Rate notifications</a> — giving administrators visibility into when end users are experiencing errors.</p><p>But what if there are issues that don't show up as errors, like a sudden drop in traffic, or a spike?</p><p>Today, we're excited to announce Traffic Anomalies notifications, available to enterprise customers. These notifications trigger when Cloudflare detects unexpected changes in traffic, giving another valuable perspective into the health of your systems.</p><p>Unexpected changes in traffic could be indicative of many things. If you run an ecommerce site and see a spike in traffic that could be great news — maybe customers are flocking to your sale, or you just had an ad run on a popular TV show. However, it could also mean that something is going wrong: maybe someone accidentally turned off a firewall rule, and now you’re seeing more malicious traffic. Either way, you might want to know that something has changed.</p><p>Similarly, a sudden drop in traffic could mean many things. Perhaps it’s Friday afternoon and all of your employees are signing off and no longer accessing your company website. Or maybe a link to your site is broken, and now potential customers aren’t able to access it. You could be losing potential revenue every minute that traffic is low, so you’d want to know as soon as possible to investigate.</p>
    <div>
      <h3>How can we tell when to alert?</h3>
      <a href="#how-can-we-tell-when-to-alert">
        
      </a>
    </div>
    <p>Calculating anomalies in time series datasets is difficult to do well. The simplest way to do it is to use basic thresholds. However, as we’ve <a href="/smarter-origin-service-level-monitoring/">previously blogged about</a>, simple thresholds aren’t very accurate when trying to determine when things are actually going wrong. There are too many edge cases for them to work effectively.</p><p>Calculating anomalies in HTTP errors is relatively easy. We know that in general there should be a very low number of errors, so any spike is bad and therefore alertable. That’s why we use <a href="https://sre.google/workbook/alerting-on-slos/">Service Level Objectives (SLOs)</a> to calculate anomalies for our <a href="https://developers.cloudflare.com/notifications/notification-available/#traffic-monitoring">HTTP Error Rate notifications</a>.</p><p>However, analyzing overall HTTP traffic behaves more similarly to <a href="/introducing-thresholds-in-security-event-alerting-a-z-score-love-story/">Cloudflare Security Events</a>: there’s some general baseline of events that is computed from historical trends. Any deviation from that baseline is alertable. Because of those similarities, we decided to use the same calculations for Traffic Anomalies notifications as we have previously used for Security Event notifications: <a href="/get-notified-when-your-site-is-under-attack/">z-scores</a>. This involves comparing the current value to the average over a period of time. However, many standard deviations away from the average the current value is, is the z-score.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4WyyibpRN80C7w0WSsG3OL/a7153af760800ba681676c21c3db9159/image4-6.png" />
            
            </figure><p><i>Plot of HTTP traffic against z-scores. The blue is the HTTP traffic, purple is the positive z-score bound of the traffic, and green is the negative z-score bound of the traffic</i></p><p>For Traffic Anomalies notifications, we’re comparing the traffic over the past 5 minutes (the short window) to the average of the traffic over the past 4 hours (the long window). Positive z-scores indicate a spike, and negative z-scores indicate a drop. If the current value is more than 3.5 standard deviations away from the average, we alert. We measure every 5 minutes, so we can alert on any traffic spike or drop in a timely fashion.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6A3BnkHW9bCc9JUuq2aOW7/40964ec23fd85153ae48dcdfa117f38a/image2-9.png" />
            
            </figure><p><i>Green bucket is the long window and the red bucket is the short window</i></p><p>While our Security Event notifications only trigger when there is a spike in security events (a drop is almost always a good thing), in the case of Traffic Anomalies we send notifications for both spikes <i>and</i> drops. This is because a drop of HTTP traffic is likely indicative of a problem, and a surge could be good or bad.</p><p>As with Security Events, Traffic Anomalies notifications support <a href="/introducing-thresholds-in-security-event-alerting-a-z-score-love-story/">minimum thresholds</a>. This means that, even if we determine that an event is outside 3.5 standard deviations, if the number of events is insignificant, we don’t alert. A spike must be at least 200 requests, and a drop must fall by at least 200 requests. This makes the notifications less noisy, since we aren’t alerting on small spikes and drops.</p>
    <div>
      <h3>Digging a little deeper</h3>
      <a href="#digging-a-little-deeper">
        
      </a>
    </div>
    <p>Cloudflare stores sampled statistics on requests that go through its network <a href="/http-analytics-for-6m-requests-per-second-using-clickhouse/">in Clickhouse</a>. Every minute, we take HTTP traffic from Clickhouse and store it in an instance of VictoriaMetrics, a time-series data storage solution. VictoriaMetrics gives us out-of-the-box algorithmic functions for free, and it has been a good fit for our use case. We chose VictoriaMetrics for a few reasons.</p><p>Firstly, it's easy to configure and operate. As a team, we want to optimize for low operational burden and VictoriaMetrics has been great thus far. Secondly, VictoriaMetrics has the ability to scale horizontally, meaning we can run it in a highly available mode. For a system such as this where we want something reliable to compute time sensitive information for our customers, the high availability requirement is essential. Finally, in our tests, we found that VictoriaMetrics used around ⅓ of the memory that Prometheus, a similar alternative product, did for the same use case.</p><p>Once we have data in VictoriaMetrics, we can run queries against it and determine whether we need to alert our customers or not, based on notification configurations they have created ahead of time. To do this we leverage our existing Alert Notification System, <a href="/new-tools-to-monitor-your-server-and-avoid-downtime/">which we blogged about initially in 2019</a>. We know we can count on our current notification system for the last mile to deliver these critical notifications to our customers.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3Hu0yJDBmf67PqYc7JsAjw/3986029c7ad8e59f91f3f689a9c7a489/image1-9.png" />
            
            </figure><p><i>Data flow from HTTP request to notification</i></p><h6><i>Setting up the Notification</i></h6><p>To configure this notification, navigate to the “Notifications” tab of the dashboard. Select Traffic Anomalies as your notification type. As with all Cloudflare notifications, you’re able to name and describe your notification, and choose how you want to be notified.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3ggeccGOgR8LCHrwXVIOxe/0bc0ec47154d63112398588b25040879/image5-3.png" />
            
            </figure><p><i>Traffic Anomalies notification in the Dashboard</i></p><p>You can choose which domains you want monitored for Traffic Anomalies, whether you want to include traffic that’s already been mitigated by Cloudflare DoS or WAF products, and whether there are specific status codes you want included or excluded. You can also choose whether you want to be alerted on traffic spikes, drops, or both.</p><p>We’re excited to use this system to help serve our Enterprise customers with invaluable notifications regarding the overall health of their systems. Head over to the Notifications tab in the dash to check this new notification out now!</p> ]]></content:encoded>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Notifications]]></category>
            <category><![CDATA[Network Services]]></category>
            <guid isPermaLink="false">3Vmb6kMuhHfnJ1EQgzYsRt</guid>
            <dc:creator>Cathy Chi</dc:creator>
            <dc:creator>Natasha Wissmann</dc:creator>
        </item>
    </channel>
</rss>