
<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>Thu, 02 Apr 2026 16:09:21 GMT</lastBuildDate>
        <item>
            <title><![CDATA[Always-on detections: eliminating the WAF “log versus block” trade-off]]></title>
            <link>https://blog.cloudflare.com/attack-signature-detection/</link>
            <pubDate>Wed, 04 Mar 2026 15:00:00 GMT</pubDate>
            <description><![CDATA[ Cloudflare is introducing Attack Signature Detection and Full-Transaction Detection to provide continuous, high-fidelity security insights without the manual tuning of traditional WAFs. By correlating request payloads with server responses, we can now identify successful exploits and data exfiltration while minimizing false positives. ]]></description>
            <content:encoded><![CDATA[ <p>Traditional Web Application Firewalls typically require extensive, manual tuning of their rules before they can safely block malicious traffic. When a new application is deployed, security teams usually begin in a logging-only mode, sifting through logs to gradually assess which rules are safe for blocking mode. This process is designed to minimize false positives without affecting legitimate traffic. It’s manual, slow and error-prone.</p><p>Teams are forced into a trade-off: visibility in log mode, or protection in block mode. When a rule blocks a request, evaluation stops, and you lose visibility into how other signatures would have assessed it — valuable insight that could have helped you tune and strengthen your defenses.</p><p>Today, we’re solving this by introducing the next evolution of our managed rules: Attack Signature Detection.</p><p>When enabled, this detection inspects every request for malicious payloads and attaches rich detection metadata before any action is taken. You get complete visibility into every signature match, without sacrificing protection or performance. Onboarding becomes simple: traffic is analyzed, data accumulates, and you see exactly which signatures fire and why. You can then build precise mitigation policies based on past traffic, reducing the risk of false positives.</p><p>But we’re going one step further. We’re moving beyond request-only analysis to something far more powerful: Full-Transaction Detection.</p><p>Instead of looking at just the incoming request, this new detection correlates the entire HTTP transaction: request and response. By analyzing the full context, we dramatically reduce false positives compared to traditional request-only signature engines. More importantly, we uncover threats others miss, such as reflective SQL injection, subtle data exfiltration patterns, and dangerous misconfigurations that only reveal themselves in the response. </p><p>Attack Signature Detection is available now in Early Access — <a href="https://www.cloudflare.com/lp/attack-detection/"><u>sign up here</u></a> to express interest. Full-Transaction Detection is under development; <a href="https://www.cloudflare.com/lp/full-transaction-detection/"><u>register here</u></a> to be among the first to try it when it’s ready.</p>
    <div>
      <h2>The always-on framework</h2>
      <a href="#the-always-on-framework">
        
      </a>
    </div>
    <p>To provide full visibility on your traffic without slowing down the Internet, we had to change how we think about the request lifecycle. For customers who opt in, Attack Signature detection is now "always on." This means that as soon as traffic is proxied, all detection signatures are executed on every request, and the results are immediately visible in Security Analytics.</p><p>This "always-on" framework separates detection from mitigation. Detections run continuously, enriching analytics with metadata about triggered detections. This metadata is also added to the request as a new field, which customers can use to create custom policies within security rules. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/Vx8m4KODWR1lqusEdBtUj/8339eea7b73eb79bae416ef7fe01b60b/image9.png" />
          </figure><p><sup><i>Separating the detection of malicious payloads from the actions taken by security rules is the core of the always-on framework. This approach enhances the analytics experience and increases confidence when deploying new protections.</i></sup></p><p>Our existing Bot Score and Attack Score detections already follow this method. Attack Signature Detection provides the same coverage as our Managed Rules product but operates within this new framework.</p><p>Does this introduce additional latency to the request? No — this model is designed for efficiency. If a customer has not created a blocking rule based on a detection, the detection can be executed <i>after</i> the request has been sent to the origin server, ensuring that the detection itself introduces no additional latency to the traffic. Therefore, upon onboarding, the detection is enabled by default but does not impact traffic performance. When a rule is created, the detection is moved in-line with the request that might experience additional latency. The exact value depends on the traffic profile of the application. </p>
    <div>
      <h2>Attack Signature Detection</h2>
      <a href="#attack-signature-detection">
        
      </a>
    </div>
    <p>Compared to traditional, rule-based systems like the Cloudflare Managed Ruleset, the new detection offers a substantial advancement in web application security. This approach makes identifying malicious web payloads and deploying security rules significantly more user-friendly.</p><p>The Cloudflare Managed Ruleset is where our analyst team develops detections for common attack vectors, including <a href="https://www.cloudflare.com/learning/security/threats/sql-injection/"><u>SQL injection (SQLi)</u></a>, <a href="https://www.cloudflare.com/learning/security/threats/cross-site-scripting/"><u>Cross Site Scripting (XSS)</u></a>, <a href="https://www.cloudflare.com/learning/security/what-is-remote-code-execution/"><u>Remote Code Execution (RCE)</u></a>, and specific Common Vulnerabilities and Exposures (CVEs). Analysts typically release new rules weekly, with emergency releases deployed for high-profile vulnerabilities (such as the recent <a href="https://react2shell.com/"><u>React2Shell</u></a> <a href="https://blog.cloudflare.com/waf-rules-react-vulnerability/"><u>release</u></a>). Currently, over 700 managed rules are active in our Managed Ruleset. The new detections are also known as <i>signature rules</i> or simply <i>signatures</i>. They employ the same heuristics as Managed Rules but do not directly apply actions to traffic.</p><p>Each signature is uniquely identified by a Ref ID (similar to the Rule ID for the Managed Ruleset) and is tagged with both <i>category</i> and <i>confidence</i>. The category specifies the attack vectors the signature targets, while the confidence level indicates the likelihood of a false positive (a trigger on legitimate traffic). A rule can have only one confidence level but may have multiple categories. </p><p>Category indicates what attack vector the rule refers to. The list of categories is long, but includes tags like SQLi, XSS, RCE or specific CVE with its number.</p><p>The confidence field is divided into two values, based on whether at least one signature from the corresponding group matches the traffic.</p><table><tr><td><p><b>Confidence</b></p></td><td><p><b>Description</b></p></td></tr><tr><td><p>High</p></td><td><p>These signatures aim for high true positives and low false positives, typical for CVEs where payloads are identifiable without blocking legitimate traffic. They function like the Managed Ruleset’s default configuration.</p></td></tr><tr><td><p>Medium</p></td><td><p>These signatures, which are turned off by default in the Managed Ruleset, may cause false positives based on your traffic. Before blocking traffic matching these rules, assess their potential application impact.</p></td></tr></table><p>
The detection's analysis of a request populates three fields. These fields are accessible in Security Analytics and Edge Rules Engine, our core engine for Security Rules.</p><table><tr><td><p>Field</p></td><td><p>Description</p></td><td><p>Where can be used</p></td></tr><tr><td><p><code>cf.waf.signature.request.</code><code><b>confidence</b></code></p></td><td><p>Array. Aggregate the confidence scores associated with the matching signatures.</p></td><td><p>Analytics and Security Rules</p></td></tr><tr><td><p><code>cf.waf.signature.request.</code><code><b>categories</b></code></p></td><td><p>Array. Aggregate the categories associated with the matching signatures.</p></td><td><p>Analytics and Security Rules</p></td></tr><tr><td><p><code>cf.waf.signature.request.</code><code><b>ref</b></code></p></td><td><p>Array. Aggregates the Ref IDs of the matching signatures, up to 10.</p></td><td><p>Analytics and Security Rules</p></td></tr></table>
    <div>
      <h3>Analyzing your data in Security Analytics</h3>
      <a href="#analyzing-your-data-in-security-analytics">
        
      </a>
    </div>
    <p>Security Analytics is at the core of the Cloudflare Application Security toolbox, providing a comprehensive, data-driven view of how signatures interact with your web traffic. It gives you the tools necessary to understand, measure, and optimize your web protection. Common use cases for combining Analytics with signatures include: design a security posture during the onboarding process, verify the most frequent attack attempts and create exceptions to handle false positives.</p><p>Once a new application is proxied through Cloudflare, Attack Signature Detection begins populating your dashboard with data. The initial step is to examine the aggregated matches, categorized by type and signature, to confirm that all potential attacks are being blocked. Analysts can do this by reviewing the top statistics for signatures, filtering the data to show whether requests were blocked, served from the cache, or permitted to reach the origin server. If any malicious requests are found to have reached the origin, analysts can quickly implement security rules. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/Flwiq3kVd2vHnIT7w30Op/2c9564f636b5e1169228711cd7ff5c15/image6.png" />
          </figure><p><sup><i>A breakdown of the total request volume matching attack signatures, categorized by their corresponding Category or Signature.</i></sup></p><p>Analytics provides insights into attack patterns, such as the most frequent CVEs based on traffic volume over time. This capability is designed for quickly identifying the dominant attack payloads targeting applications and verifying the efficacy of current protections against related CVEs. For example, analysts can monitor the attack frequency targeting a specific part of the application, like <code>/api/</code>, or confirm if known malicious payloads, such as React2Shell, are reaching a particular endpoint, such as the <code>POST /_next/</code> Node.js path. Both the Analytics filters and the Attack Analysis tool can be used to perform this type of investigation.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/PswhIBA7AXI5y6BaH4Rq6/aafe3e2f272d8077ed1454066600da51/image5.png" />
          </figure><p><sup><i>A visualization within Security Analytics offers a time-series view of malicious payloads targeting the /api/ endpoint. This view groups the data to highlight the top five CVEs by volume.</i></sup></p><p>Analytics also help create exceptions and identifying false positives. An increase in matches for a specific rule, for instance, may suggest false positives rather than active exploitation. For example, an application that allows users to submit rich HTML content (such as a Content Management Systems or support ticketing system) may legitimately include markup that matches more generic XSS signatures. In these cases, a scoped exception can be applied to the affected endpoint, while keeping the protection enabled across the rest of the application. </p><p>This approach is especially useful for evaluating medium-confidence signatures, which balance aggressive blocking with false-positive risk. The tool allows "what-if" scenarios against historical traffic to empirically determine production performance. This process helps determine if a medium-confidence signature is appropriate for the overall traffic profile, or if a high rate of false positives requires limiting its deployment to specific URLs or request types. </p><p>Generally, signatures that have a very low match rate on historical traffic can be more safely deployed in block mode without significant disruption to legitimate traffic. To achieve this level of confidence, Security Analytics provides the tools for in-depth forensics investigations.</p><p>Beyond immediate detection, a crucial aspect of defense management is the ability to customize your security posture. The user interface offers a searchable catalog of all security signatures, allowing you to browse the full list and understand the specific threat each is designed to address. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6enXCjehRa8ibfhOoUfnRv/330231e1e7cc96cb1450f0f450d33aab/Screenshot_2026-03-04_at_17.17.59.png" />
          </figure><p><sup><i>A searchable catalog of signatures is available, providing more detail on critical detections to help customers understand the threats and the remediation actions.</i></sup></p>
    <div>
      <h3>Creating security rules</h3>
      <a href="#creating-security-rules">
        
      </a>
    </div>
    <p>After analyzing your data and establishing confidence in how the signatures performed against your past traffic, you can easily create custom rules to handle traffic based on the detections. For example, if you want to create a policy that blocks requests matching high confidence signatures you can create the following rule:</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/55sYmYsoMh9effxtmxG65j/2ca91e74188ad69a908b5ae69571225c/image1.png" />
          </figure><p><sup><i>Creating a rule to block requests matching with high confidence signatures.</i></sup></p><p>This is equivalent to the Cloudflare Managed Ruleset default deployment.</p><p>If you want to block all requests matching at least one rule, you will add the Medium confidence tag. This is equivalent to enabling all rules of Cloudflare Managed Ruleset. Alternatively, you can configure multiple rules, applying a more stringent action (like "Block") for detections with High confidence and a less strict action (such as "Challenge") for those with Medium confidence.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3JhVPtrx2ZRhsNgRQHCaLc/ca3f597d8b794fd5a2eb1ddfc1362288/image8.png" />
          </figure><p><sup><i>By selecting both High and Medium confidence you can trigger a rule if any signature matches.</i></sup></p><p>To create a rule blocking a specific CVE or attack vector, you will use Categories. The rule builder allows you to combine attack vector category tags with all existing HTTP request data. This enables you to create granular rules (or exceptions) and tailor your security posture to different parts of your application. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/wEf21sGlDdKkO7Mgt1pVn/01bd915ae33d931ca33bd0b2d04fc9e8/image7.png" />
          </figure><p><sup><i>Customers can create rules to block (or allow) requests matching specific CVEs or attack categories.</i></sup></p><p>To create rules based on a specific Signature, you can use Ref ID. You can find the right Ref ID within the rule builder by exploring the available Attack Signature rules. This is especially useful if you want to create exceptions to manage false positives.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1LQ93vHMecuHS8xNbL0RTz/b805072b739f1ded6f4383c13f2cfb5a/image3.png" />
          </figure><p><sup><i>Customers can browse signature rules directly from the rule builder.</i></sup></p>
    <div>
      <h3>What happens to Cloudflare Managed Ruleset?</h3>
      <a href="#what-happens-to-cloudflare-managed-ruleset">
        
      </a>
    </div>
    <p>All customers continue to have access to our classic Managed Ruleset. When Attack Signature Detection is broadly available, customers will be able to choose the deployment model that best suits their needs, whether that is Attack Signature Detection or Managed Rules. Our analyst teams ensure that new detections are released simultaneously across both the Managed Ruleset and Attack Signature Detection.</p>
    <div>
      <h2>Full-Transaction Detection</h2>
      <a href="#full-transaction-detection">
        
      </a>
    </div>
    <p>Traditional web attack detection primarily focuses on the "ask": the HTTP request. However, the request only tells half the story. To know if an attack actually succeeded, you have to look at the "answer": the HTTP response.</p><p>By combining request and response metadata into a single detection event, we can dramatically reduce false positives and identify successful exploits that request-only systems miss.</p><p>For example, consider a request containing a common SQL injection string in a query parameter.</p><blockquote><p><code>GET /user?id=1' UNION SELECT username, password FROM users--</code></p></blockquote><p>A traditional WAF will see the <code>UNION SELECT</code> pattern and block it. However, if the application isn't actually vulnerable, this might be a false positive — for instance a security researcher testing their own site.</p><p>With Full-Transaction Detection, the system notes the SQLi signature in the request but waits for the response. If the origin responds with a <code>500 Internal Server Error</code> or a standard <code>404</code>, the confidence of a "successful exploit" is low. If the origin responds with a <code>200 OK</code> and a body containing a string that matches a "sensitive data" signature (like a list of usernames), the system flags a Successful Exploit Confirmation.</p><p>To start, we are rolling out a few detection categories and plan to expand this list over time. Here are the three areas we are currently focused on, and some of the flags you’ll see:</p><ul><li><p><b>Exploit attempts. </b>The detection provides web attack detections by inspecting the entire HTTP request-to-response cycle. It focuses on three key areas: identifying input exploitation like XSS and SQLi via malicious signatures, stopping automated abuse such as vulnerability probing, and confirming successful exploits by correlating suspicious requests with unusual server responses.</p></li></ul><ul><li><p><b>Data exposure and exfiltration signals. </b>This framework also allows us to catch data exfiltration that looks like legitimate traffic on the way in. A request for /api/v1/export is a standard administrative action. But if that specific request triggers a response containing 5,000 credit card numbers (for example identified via Luhn algorithm signatures), the transaction is flagged as Data Exposure. </p></li></ul><ul><li><p><b>Misconfigurations. </b>Exposed admin interfaces are often attack vectors. Traditional security checks miss this misconfiguration because the traffic itself looks valid (real endpoints or admin pages). The issue isn't the traffic but its public accessibility. We prioritize detection based on common real-world misconfigurations seen in customer data, such as public unauthenticated Elasticsearch clusters, Internet reachable admin panels, and exposed Apache sensitive endpoints.</p></li></ul><p>The detection, much like Attack Signatures, will store the results in two specific fields. These fields are accessible in our dashboard and logged within Security Analytics.</p><table><tr><td><p>Field</p></td><td><p>Description</p></td><td><p>Where can be used</p></td></tr><tr><td><p><code>cf.waf.signature.response.</code><code><b>categories</b></code></p></td><td><p>Array. Aggregate the categories associated with the matching signatures.</p></td><td><p>Security Analytics </p></td></tr><tr><td><p><code>cf.waf.signature.response.</code><code><b>ref</b></code></p></td><td><p>Array. Aggregates the Ref IDs of the matching signatures, up to 10.</p></td><td><p>Security Analytics </p></td></tr></table><p>Initially, we are focused on offering visibility into matching requests via analytics. By surfacing events on potential exploits, we provide customers information that can be used for incident response through targeted remediations across their infrastructure and software stack. Our future plans include extending Security Rules to the response phase, which will empower customers to block responses based on these detections by allowing policy creation.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3uUoiHlxC6qEjBNU1AA5Rg/1402f5be8f412443cf3b9ff39e8d0700/image4.png" />
          </figure><p><sup><i>A diagram illustrating the execution locations and corresponding populated fields for both Attack Signature Detection and Full-Transaction Detection.</i></sup></p>
    <div>
      <h2>Sign up to get access</h2>
      <a href="#sign-up-to-get-access">
        
      </a>
    </div>
    <p>Attack Signature detection is in Early Access while Full-Transaction Detection is under development. <a href="https://www.cloudflare.com/lp/attack-detection"><u>Sign up here</u></a> to get access to Attack Signature, and <a href="https://www.cloudflare.com/lp/full-transaction-detection/"><u>here to express interest</u></a> for Full-Transaction. We’ll gather feedback in the coming months as we prepare these features for General Availability.</p> ]]></content:encoded>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[WAF Rules]]></category>
            <category><![CDATA[Managed Rules]]></category>
            <category><![CDATA[Vulnerabilities]]></category>
            <category><![CDATA[Security Analytics]]></category>
            <guid isPermaLink="false">1oOFMFJ55pkBU09IKiw8fm</guid>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare WAF proactively protects against React vulnerability]]></title>
            <link>https://blog.cloudflare.com/waf-rules-react-vulnerability/</link>
            <pubDate>Wed, 03 Dec 2025 14:20:00 GMT</pubDate>
            <description><![CDATA[ Cloudflare offers protection against a new high profile vulnerability for React Server Components: CVE-2025-55182. All WAF customers are automatically protected as long as the WAF is deployed. ]]></description>
            <content:encoded><![CDATA[ <p></p><p><br /></p><p>Cloudflare has deployed a new protection to address a vulnerability in React Server Components (RSC). <b>All Cloudflare customers are automatically protected, including those on free and paid plans, as long as their React application traffic is proxied through the Cloudflare Web Application Firewall (WAF).</b></p><p>Cloudflare Workers are inherently immune to this exploit. React-based applications and frameworks deployed on Workers are not affected by this vulnerability.</p><p>We strongly recommend that customers immediately update their systems to the most recent version of React, despite our WAF being designed to detect and prevent this exploit.</p>
    <div>
      <h3>What you need to know</h3>
      <a href="#what-you-need-to-know">
        
      </a>
    </div>
    <p>Cloudflare has been alerted by its security partners to a Remote Code Execution (RCE) vulnerability impacting Next.js, React Router, and other React frameworks (security advisory CVE-2025-55182, rated CVSS 10.0). Specifically, React version 19.0, 19.1, and 19.2, and Next.js from version 15 through 16 were found to insecurely deserialize malicious requests, leading to RCE.</p><p><b>In response, Cloudflare has deployed new rules across its network, with the default action set to Block. </b>These new protections are included in both the Cloudflare Free Managed Ruleset (available to all Free customers) and the standard Cloudflare Managed Ruleset (available to all paying customers). More information about the different rulesets can be found in our <a href="https://developers.cloudflare.com/waf/managed-rules/#available-managed-rulesets"><u>documentation</u></a>.</p><p>The rule ID is as follows:</p><table><tr><td><p>Ruleset</p></td><td><p>Rule ID</p></td><td><p>Default action</p></td></tr><tr><td><p><code>Managed Ruleset</code></p></td><td><p><code>33aa8a8a948b48b28d40450c5fb92fba</code></p></td><td><p>Block</p></td></tr><tr><td><p><code>Free Ruleset</code></p></td><td><p><code>2b5d06e34a814a889bee9a0699702280</code></p></td><td><p>Block</p></td></tr></table><p><b>Customers on Professional, Business, or Enterprise plans should ensure that Managed Rules are enabled  —  </b><a href="https://developers.cloudflare.com/waf/get-started/#1-deploy-the-cloudflare-managed-ruleset"><b><u>follow these steps to turn it on</u></b></a><b>.</b> Customers on a Free plan have these rules enabled by default.</p><p>We recommend that customers <b>update to the latest version of React 19.2.1 and the latest versions of Next.js (16.0.7, 15.5.7, 15.4.8)</b>.</p><p>The rules were deployed at 5:00 PM GMT on Tuesday, December 2, 2025. Since their release until the publication of this blog and the official CVE announcement, we have not observed any attempted exploit.</p>
    <div>
      <h3>Looking forward</h3>
      <a href="#looking-forward">
        
      </a>
    </div>
    <p>The Cloudflare security team has collaborated with partners to identify various attack patterns and ensure the new rules effectively prevent any bypasses. Over the coming hours and days, the team will maintain continuous monitoring for potential attack variations, updating our protections as necessary to secure all traffic proxied via Cloudflare.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2Nej3zxhHlPNwFL5L5k7Zq/e19062d3811e9704d4ddd0ad16428fa4/BLOG-3089_2.png" />
          </figure><p></p> ]]></content:encoded>
            <category><![CDATA[Cloudforce One]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Web Application Firewall]]></category>
            <category><![CDATA[Vulnerabilities]]></category>
            <category><![CDATA[CVE]]></category>
            <category><![CDATA[React]]></category>
            <guid isPermaLink="false">6yAZ5qr270gBwMkcYu63DX</guid>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare named a leader in Web Application Firewall Solutions in 2025 Forrester report]]></title>
            <link>https://blog.cloudflare.com/cloudflare-named-leader-waf-forrester-2025/</link>
            <pubDate>Thu, 20 Mar 2025 14:00:00 GMT</pubDate>
            <description><![CDATA[ Forrester Research has recognized Cloudflare as a Leader in its The Forrester Wave™: Web Application Firewall Solutions, Q1 2025 report. ]]></description>
            <content:encoded><![CDATA[ <p>Forrester Research has recognized Cloudflare as a Leader in its <i>The Forrester Wave™: Web Application Firewall Solutions, Q1 2025</i> report. This market analysis helps security and risk professionals select the right solution for their needs. According to Forrester: </p><blockquote><p><i>“Cloudflare is a strong option for customers that want to manage an easy-to-use, unified web application protection platform that will continue to innovate.”</i></p></blockquote><p>In this evaluation, Forrester assessed 10 Web Application Firewall (WAF) vendors across 22 criteria, including product security and vision. We believe this recognition is due to our continued investment in our product offering. Get a complimentary copy of the report <a href="https://www.cloudflare.com/lp/forrester-wave-waf-2025/"><u>here</u></a>.</p><p>Since introducing our <a href="https://blog.cloudflare.com/heuristics-and-rules-why-we-built-a-new-old-waf/"><u>first WAF</u></a> in 2013, Cloudflare has transformed it into a robust, enterprise-grade Application Security platform. Our fully integrated suite includes WAF, bot mitigation, API security, client-side protection, and DDoS mitigation, all built on our expansive global network. By leveraging AI and machine learning, we deliver industry-leading security while enhancing application performance through our content delivery and optimization solutions.</p><p>According to the Forrester report, <i>“Cloudflare stands out with features that help customers work more efficiently.”</i> Unlike other solutions in the market, Cloudflare’s WAF, API Security, bot detection, client-side security, and DDoS protection are natively <a href="https://blog.cloudflare.com/new-application-security-experience/"><u>integrated within a single platform</u></a>, running on a unified engine. Our integrated solution empowers a seamless user experience and enables advanced threat detection across multiple vectors to meet the most demanding security requirements.</p>
    <div>
      <h3>Cloudflare: a standout in Application Security</h3>
      <a href="#cloudflare-a-standout-in-application-security">
        
      </a>
    </div>
    <p>Forrester’s evaluation of Web Application Firewall solutions is one of the most comprehensive assessments in the industry. We believe this report highlights Cloudflare’s integrated global cloud platform and our ability to deliver enterprise-grade security without added complexity. We don’t just offer a WAF — we provide a flexible, customizable security toolkit designed to address your unique application security challenges.</p><p>Cloudflare continuously leads the WAF market through our strategic vision and the breadth of our capabilities. We center our approach on relentless innovation, delivering industry-leading security features, and ensuring a seamless management experience with enterprise processes and tools such as Infrastructure as Code (IaC) and DevOps. Our predictable cadence of major feature releases, powered by annual initiatives like Security Week and Birthday Week, ensures that customers always have access to the latest security advancements.</p><p>We believe Forrester also highlighted Cloudflare’s extensive security capabilities, with particular recognition of the significant improvements in our API security offerings.</p>
    <div>
      <h3>Cloudflare’s top-ranked criteria</h3>
      <a href="#cloudflares-top-ranked-criteria">
        
      </a>
    </div>
    <p>In the report, Cloudflare received the highest possible scores in 15 out of 22 criteria, reinforcing, in our opinion, our commitment to delivering the most advanced, flexible and easy-to-use web application protection in the industry. Some of the key criteria include:</p><ul><li><p><b>Detection models</b>: Advanced AI and machine learning models that continuously evolve to detect new threats.</p></li><li><p><b>Layer 7 DDoS protection</b>: Industry-leading mitigation of sophisticated application-layer attacks.</p></li><li><p><b>Rule creation and modification:</b> Simple, easy to use rule creation experience, propagating within seconds globally.</p></li><li><p><b>Management UI:</b> An intuitive and efficient user interface that simplifies security management.</p></li><li><p><b>Product security</b>: A robust architecture that ensures enterprise-grade security.</p></li><li><p><b>Infrastructure-as-code support</b>: Seamless integration with DevOps workflows for automated security policy enforcement.</p></li><li><p><b>Innovation</b>: A forward-thinking approach to security, consistently pushing the boundaries of what’s possible.</p></li></ul>
    <div>
      <h3>What sets Cloudflare apart?</h3>
      <a href="#what-sets-cloudflare-apart">
        
      </a>
    </div>
    <p>First, Cloudflare’s WAF goes beyond traditional rule-based protections, offering a comprehensive suite of detection mechanisms to identify attacks and vulnerabilities across web and API traffic while also safeguarding client environments. We leverage AI and machine learning to detect threats such as attacks, automated traffic, anomalies, and compromised JavaScript, among others. Our industry-leading application-layer DDoS protection makes volumetric attacks a thing of the past.</p><p>Second, Cloudflare has also made significant strides in <a href="https://developers.cloudflare.com/api-shield/"><u>API security</u></a>. Our WAF can be supercharged with features such as: API discovery, schema validation &amp; sequence mitigation, volumetric detection, and JWT authentication. </p><p>Third, Cloudflare simplifies security management with an intuitive dashboard that is easy to use while still offering powerful configurations for advanced practitioners. All features are Terraform-supported, allowing teams to manage the entire Cloudflare platform as code. With Security Analytics, customers gain a comprehensive view of all traffic, whether mitigated or not, and can run what-if scenarios to test new rules before deployment. This analytic capability ensures that businesses can dynamically adapt their security posture while maintaining high performance. To make security management even more seamless, our<a href="https://www.cloudflare.com/learning/ai/what-is-agentic-ai/"> AI agent,</a> powered by Natural Language Processing (NLP), helps users craft and refine custom rules and create powerful visualizations within our analytics engine.</p>
    <div>
      <h3>Cloudflare: the clear choice for modern security</h3>
      <a href="#cloudflare-the-clear-choice-for-modern-security">
        
      </a>
    </div>
    <p>We are confident that Forrester’s report validates what our customers already know: Cloudflare is a leading WAF vendor, offering unmatched security, innovation, and ease of use. As threats continue to evolve, we remain committed to pushing the boundaries of web security to protect organizations worldwide.</p><p>If you’re looking for a powerful, scalable, and easy-to-manage web application firewall, Cloudflare is the best choice for securing your applications, <a href="https://www.cloudflare.com/the-net/api-security/">APIs</a>, and infrastructure.</p>
    <div>
      <h3>Ready to enhance your security?</h3>
      <a href="#ready-to-enhance-your-security">
        
      </a>
    </div>
    <p>Learn more about Cloudflare WAF by <a href="https://dash.cloudflare.com/sign-up"><u>creating an account</u></a> today and see why Forrester has recognized us as a leader in the market. </p><p><i>Forrester does not endorse any company, product, brand, or service included in its research publications and does not advise any person to select the products or services of any company or brand based on the ratings included in such publications. Information is based on the best available resources. Opinions reflect judgment at the time and are subject to change. For more information, read about Forrester’s objectivity </i><a href="https://www.forrester.com/about-us/objectivity/"><i><u>here </u></i></a>.</p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[Application Security]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Web Application Firewall]]></category>
            <category><![CDATA[API Security]]></category>
            <category><![CDATA[Forrester]]></category>
            <guid isPermaLink="false">6oqVUC4QLYuEBImzaJo8eu</guid>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Security Week 2024 wrap up]]></title>
            <link>https://blog.cloudflare.com/security-week-2024-wrap-up/</link>
            <pubDate>Mon, 11 Mar 2024 14:00:05 GMT</pubDate>
            <description><![CDATA[ A summary of the blog posts and product announcements released during Security Week 2024 ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1ziJdd54D7lhcTnOu7hPK1/a2aac4fd6b20f12106e557a8e4579a42/image2-29.png" />
            
            </figure><p>The next 12 months have the potential to reshape the global political landscape with elections occurring in more than 80 nations, in 2024, while new technologies, such as AI, capture our imagination and pose new security challenges.</p><p>Against this backdrop, the role of CISOs has never been more important. <a href="/why-i-joined-cloudflare-as-chief-security-officer">Grant Bourzikas</a>, Cloudflare’s Chief Security Officer, shared his views on what the biggest challenges currently facing the security industry are in the Security Week opening <a href="/welcome-to-security-week-2024">blog</a>.</p><p>Over the past week, we announced a number of new products and features that align with what we believe are <a href="https://www.cloudflare.com/ciso/">the most crucial challenges for CISOs</a> around the globe. We released features that span Cloudflare’s product portfolio, ranging from application security to securing employees and cloud infrastructure. We have also published a few stories on how we take a Customer Zero approach to using Cloudflare services to manage security at Cloudflare.</p><p>We hope you find these stories interesting and are excited by the new Cloudflare products. In case you missed any of these announcements, here is a recap of <a href="https://www.cloudflare.com/security-week/">Security Week</a>:</p>
    <div>
      <h3>Responding to opportunity and risk from AI</h3>
      <a href="#responding-to-opportunity-and-risk-from-ai">
        
      </a>
    </div>
    
<table>
<thead>
  <tr>
    <th><span>Title</span></th>
    <th><span>Excerpt</span></th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/firewall-for-ai/"><span>Cloudflare announces Firewall for AI</span></a></td>
    <td><span>Cloudflare announced the development of Firewall for AI, a protection layer that can be deployed in front of Large Language Models (LLMs) to identify abuses and attacks. </span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/defensive-ai/"><span>Defensive AI: Cloudflare’s framework for defending against next-gen threats</span></a></td>
    <td><span>Defensive AI is the framework Cloudflare uses when integrating intelligent systems into its solutions. Cloudflare’s AI models look at customer traffic patterns, providing that organization with a tailored defense strategy unique to their environment. </span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/security-analytics-ai-assistant/"><span>Cloudflare launches AI Assistant for Security Analytics </span></a></td>
    <td><span>We released a natural language assistant as part of Security Analytics. Now it is easier than ever to get powerful insights about your applications by exploring log and security events using the new natural language query interface.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/dispelling-the-generative-ai-fear-how-cloudflare-secures-inboxes-against-ai-enhanced-phishing/"><span>Dispelling the Generative AI fear: how Cloudflare secures inboxes against AI-enhanced phishing</span></a></td>
    <td><span>Generative AI is being used by malicious actors to make phishing attacks much more convincing. Learn how Cloudflare’s email security systems are able to see past the deception using advanced machine learning models.</span></td>
  </tr>
</tbody>
</table>
    <div>
      <h3>Maintaining visibility and control as applications and clouds change</h3>
      <a href="#maintaining-visibility-and-control-as-applications-and-clouds-change">
        
      </a>
    </div>
    
<table>
<thead>
  <tr>
    <th><span>Title</span></th>
    <th><span>Excerpt</span></th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/introducing-magic-cloud-networking"><span>Magic Cloud Networking simplifies security, connectivity, and management of public clouds</span></a></td>
    <td><span>Introducing Magic Cloud Networking, a new set of capabilities to visualize and automate cloud networks to give our customers easy, secure, and seamless connection to public cloud environments.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/security-insights-quick-ciso-view/"><span>Secure your unprotected assets with Security Center: quick view for CISOs</span></a></td>
    <td><span>Security Center now includes new tools to address a common challenge: ensuring comprehensive deployment of Cloudflare products across your infrastructure. Gain precise insights into where and how to optimize your security posture.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/dlp-ocr-sourcecode/"><span>Announcing two highly requested DLP enhancements: Optical Character Recognition (OCR) and Source Code Detections</span></a></td>
    <td><span>Cloudflare One now supports Optical Character Recognition and detects source code as part of its Data Loss Prevention service. These two features make it easier for organizations to protect their sensitive data and reduce the risks of breaches.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/cf1-user-risk-score/"><span>Introducing behavior-based user risk scoring in Cloudflare One</span></a></td>
    <td><span>We are introducing user risk scoring as part of Cloudflare One, a new set of capabilities to detect risk based on user behavior, so that you can improve security posture across your organization.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/eliminate-vpn-vulnerabilities-with-cloudflare-one/"><span>Eliminate VPN vulnerabilities with Cloudflare One</span></a></td>
    <td><span>The Cybersecurity &amp; Infrastructure Security Agency issued an Emergency Directive due to the Ivanti Connect Secure and Policy Secure vulnerabilities. In this post, we discuss the threat actor tactics exploiting these vulnerabilities and how Cloudflare One can mitigate these risks. </span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/zero-trust-warp-with-a-masque/"><span>Zero Trust WARP: tunneling with a MASQUE</span></a></td>
    <td><span>This blog discusses the introduction of MASQUE to Zero Trust WARP and how Cloudflare One customers will benefit from this modern protocol. </span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/collect-all-your-cookies-in-one-jar/"><span>Collect all your cookies in one jar with Page Shield Cookie Monitor</span></a></td>
    <td><span>Protecting online privacy starts with knowing what cookies are used by your websites. Our client-side security solution, Page Shield, extends transparent monitoring to HTTP cookies.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/gatway-protocol-detection"><span>Protocol detection with Cloudflare Gateway</span></a><span> </span></td>
    <td><span>Cloudflare Secure Web Gateway now supports the detection, logging, and filtering of network protocols using packet payloads without the need for inspection. </span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/threat-intel-rfi-pir/"><span>Introducing Requests for Information (RFIs) and Priority Intelligence Requirements (PIRs) for threat intelligence teams</span></a></td>
    <td><span>Our Security Center now houses Requests for Information and Priority Intelligence Requirements. These features are available via API as well and Cloudforce One customers can start leveraging them today for enhanced security analysis. </span></td>
  </tr>
</tbody>
</table>
    <div>
      <h3>Consolidating to drive down costs</h3>
      <a href="#consolidating-to-drive-down-costs">
        
      </a>
    </div>
    
<table>
<thead>
  <tr>
    <th><span>Title</span></th>
    <th><span>Excerpt</span></th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/log-explorer/"><span>Log Explorer: monitor security events without third-party storage</span></a></td>
    <td><span>With the combined power of Security Analytics and Log Explorer, security teams can analyze, investigate, and monitor logs natively within Cloudflare, reducing time to resolution and overall cost of ownership by eliminating the need of third-party logging systems.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/deskope-program-and-asdp-for-descaler/"><span>Simpler migration from Netskope and Zscaler to Cloudflare: introducing Deskope and a Descaler partner update</span></a></td>
    <td><span>Cloudflare expands the Descaler program to Authorized Service Delivery Partners (ASDPs). Cloudflare is also launching Deskope, a new set of tooling to help migrate existing Netskope customers to Cloudflare One.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/protecting-apis-with-jwt-validation/"><span>Protecting APIs with JWT Validation</span></a></td>
    <td><span>Cloudflare customers can now protect their APIs from broken authentication attacks by validating incoming JSON Web Tokens with API Gateway.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/announcing-express-cni"><span>Simplifying how enterprises connect to Cloudflare with Express Cloudflare Network Interconnect</span></a></td>
    <td><span>Express Cloudflare Network Interconnect makes it fast and easy to connect your network to Cloudflare. Customers can now order Express CNIs directly from the Cloudflare dashboard.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/treating-sase-anxiety/"><span>Cloudflare treats SASE anxiety for VeloCloud customers</span></a></td>
    <td><span>The turbulence in the SASE market is driving many customers to seek help. We’re doing our part to help VeloCloud customers who are caught in the crosshairs of shifting strategies.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/free-network-monitoring-for-enterprise"><span>Free network flow monitoring for all enterprise customers</span></a></td>
    <td><span>Announcing a free version of Cloudflare’s network flow monitoring product, Magic Network Monitoring. Now available to all Enterprise customers.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/guide-to-cloudflare-pages-and-turnstile-plugin/"><span>Building secure websites: a guide to Cloudflare Pages and Turnstile Plugin</span></a></td>
    <td><span>Learn how to use Cloudflare Pages and Turnstile to deploy your website quickly and easily while protecting it from bots, without compromising user experience. </span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/waf-content-scanning-for-malware-detection/"><span>General availability for WAF Content Scanning for file malware protection</span></a></td>
    <td><span>Announcing the General Availability of WAF Content Scanning, protecting your web applications and APIs from malware by scanning files in-transit.</span></td>
  </tr>
</tbody>
</table>
    <div>
      <h3>How can we help make the Internet better?</h3>
      <a href="#how-can-we-help-make-the-internet-better">
        
      </a>
    </div>
    
<table>
<thead>
  <tr>
    <th><span>Title</span></th>
    <th><span>Excerpt</span></th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/protecting-global-democracy-against-threats-from-emerging-technology"><span>Cloudflare protects global democracy against threats from emerging technology during the 2024 voting season</span></a></td>
    <td><span>At Cloudflare, we’re actively supporting a range of players in the election space by providing security, performance, and reliability tools to help facilitate the democratic process.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/navigating-the-maze-of-magecart/"><span>Navigating the maze of Magecart: a cautionary tale of a Magecart impacted website</span></a></td>
    <td><span>Learn how a sophisticated Magecart attack was behind a campaign against e-commerce websites. This incident underscores the critical need for a strong client side security posture.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/building-urlscanner/"><span>Cloudflare’s URL Scanner, new features, and the story of how we built it</span></a></td>
    <td><span>Discover the enhanced URL Scanner API, now integrated with the Security Center Investigate Portal. Enjoy unlisted scans, multi-device screenshots, and seamless integration with the Cloudflare ecosystem. </span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/secure-by-design-principles/"><span>Changing the industry with CISA’s Secure by Design principles</span></a></td>
    <td><span>Security considerations should be an integral part of software’s design, not an afterthought. Explore how Cloudflare adheres to Cybersecurity &amp; Infrastructure Security Agency’s Secure by Design principles to shift the industry.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/pq-2024/"><span>The state of the post-quantum Internet</span></a></td>
    <td><span>Nearly two percent of all TLS 1.3 connections established with Cloudflare are secured with post-quantum cryptography. In this blog post we discuss where we are now in early 2024, what to expect for the coming years, and what you can do today.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/advanced-dns-protection/"><span>Advanced DNS Protection: mitigating sophisticated DNS DDoS attacks</span></a></td>
    <td><span>Introducing the Advanced DNS Protection system, a robust defense mechanism designed to protect against the most sophisticated DNS-based DDoS attacks.</span></td>
  </tr>
</tbody>
</table>
    <div>
      <h3>Sharing the Cloudflare way</h3>
      <a href="#sharing-the-cloudflare-way">
        
      </a>
    </div>
    
<table>
<thead>
  <tr>
    <th><span>Title</span></th>
    <th><span>Excerpt</span></th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/linux-kernel-hardening/"><span>Linux kernel security tunables everyone should consider adopting</span></a></td>
    <td><span>This post illustrates some of the Linux kernel features that are helping Cloudflare keep its production systems more secure. We do a deep dive into how they work and why you should consider enabling them.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/securing-cloudflare-with-cloudflare-zero-trust"><span>Securing Cloudflare with Cloudflare: a Zero Trust journey</span></a></td>
    <td><span>A deep dive into how we have deployed Zero Trust at Cloudflare while maintaining user privacy.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/network-performance-update-security-week-2024"><span>Network performance update: Security Week 2024</span></a><span> </span></td>
    <td><span>Cloudflare is the fastest provider for 95th percentile connection time in 44% of networks around the world. We dig into the data and talk about how we do it.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/harnessing-office-chaos"><span>Harnessing chaos in Cloudflare offices</span></a><span> </span></td>
    <td><span>This blog discusses the new sources of “chaos” that have been added to LavaRand and how you can make use of that harnessed chaos in your next application.</span></td>
  </tr>
  <tr>
    <td><a href="http://staging.blog.mrk.cfdata.org/email-security-insights-on-cloudflare-radar"><span>Launching email security insights on Cloudflare Radar</span></a><span> </span></td>
    <td><span>The new Email Security section on Cloudflare Radar provides insights into the latest trends around threats found in malicious email, sources of spam and malicious email, and the adoption of technologies designed to prevent abuse of email.</span></td>
  </tr>
</tbody>
</table>
    <div>
      <h3>A final word</h3>
      <a href="#a-final-word">
        
      </a>
    </div>
    <p>Thanks for joining us this week, and stay tuned for our next Innovation Week in early April, focused on the developer community.</p>
    <div>
      <h3>Watch on Cloudflare TV</h3>
      <a href="#watch-on-cloudflare-tv">
        
      </a>
    </div>
    <div>
  
</div>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3S3nnZ6qfB6QnJAe9OwthD/05721dea96b2b756c5ab1989660293e3/image1-31.png" />
            
            </figure><p></p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Application Security]]></category>
            <category><![CDATA[Email Security]]></category>
            <category><![CDATA[AI]]></category>
            <guid isPermaLink="false">19BXuTqacKLPSyjHFzhyxF</guid>
            <dc:creator>Daniele Molteni</dc:creator>
            <dc:creator>Ankur Aggarwal</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare announces Firewall for AI]]></title>
            <link>https://blog.cloudflare.com/firewall-for-ai/</link>
            <pubDate>Mon, 04 Mar 2024 14:02:00 GMT</pubDate>
            <description><![CDATA[ Cloudflare is one of the first providers to safeguard LLM models and users in the era of AI ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5EdkABBZiYVEgdEQ42QaUf/c73d263a1fbae676983868a314e2acf5/WAF-for-AI.png" />
            
            </figure><p>Today, Cloudflare is announcing the development of Firewall for AI, a protection layer that can be deployed in front of <a href="https://www.cloudflare.com/en-gb/learning/ai/what-is-large-language-model/">Large Language Models (LLMs)</a> to identify abuses before they reach the models.</p><p>While AI models, and specifically LLMs, are surging, customers tell us that they are concerned about the <a href="https://blog.cloudflare.com/best-practices-sase-for-ai/">best strategies to secure their own LLMs</a>. Using LLMs as part of Internet-connected applications introduces new vulnerabilities that can be exploited by bad actors.</p><p>Some of the vulnerabilities affecting traditional web and API applications apply to the LLM world as well, including injections or <a href="https://www.cloudflare.com/learning/security/what-is-data-exfiltration/">data exfiltration</a>. However, there is a new set of threats that are now relevant because of the way LLMs work. For example, researchers have <a href="https://thehackernews.com/2024/02/new-hugging-face-vulnerability-exposes.html">recently discovered</a> a vulnerability in an AI collaboration platform that allows them to hijack models and perform unauthorized actions.</p><p>Firewall for AI is an advanced <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">Web Application Firewall (WAF)</a> specifically tailored for applications using LLMs. It will comprise a set of tools that can be deployed in front of applications to detect vulnerabilities and provide visibility to model owners. The tool kit will include products that are already part of WAF, such as Rate Limiting and Sensitive Data Detection, and a new protection layer which is currently under development. This new validation analyzes the prompt submitted by the end user to identify attempts to exploit the model to extract data and other abuse attempts. Leveraging the size of Cloudflare network, Firewall for AI runs as close to the user as possible, allowing us to identify attacks early and protect both end user and models from abuses and attacks.</p><p>Before we dig into how Firewall for AI works and its full feature set, let’s first examine what makes LLMs unique, and the <a href="https://www.cloudflare.com/learning/security/what-is-an-attack-surface/">attack surfaces</a> they introduce. We’ll use the <a href="https://www.cloudflare.com/learning/ai/owasp-top-10-risks-for-llms/">OWASP Top 10 for LLMs</a> as a reference.</p>
    <div>
      <h2>Why are LLMs different from traditional applications?</h2>
      <a href="#why-are-llms-different-from-traditional-applications">
        
      </a>
    </div>
    <p>When considering LLMs as Internet-connected applications, there are two main differences compared with more traditional web apps.</p><p>First, the way users interact with the product. Traditional apps are deterministic in nature. Think about a bank application — it’s defined by a set of operations (check my balance, make a transfer, etc.). The security of the business operation (and data) can be obtained by controlling the fine set of operations accepted by these endpoints: “GET /balance” or “POST /transfer”.</p><p>LLM operations are non-deterministic by design. To start with, LLM interactions are based on natural language, which makes identifying problematic requests harder than matching attack signatures. Additionally, unless a response is cached, LLMs typically provide a different response every time — even if the same input prompt is repeated. This makes limiting the way a user interacts with the application much more difficult. This poses a threat to the user as well, in terms of being exposed to misinformation that weakens the trust in the model.</p><p>Second, a big difference is how the application control plane interacts with the data. In traditional applications, the control plane (code) is well separated from the data plane (database). The defined operations are the only way to interact with the underlying data (e.g. show me the history of my payment transactions). This allows security practitioners to focus on adding checks and guardrails to the control plane and thus protecting the database indirectly.</p><p>LLMs are different in that the training data becomes part of the model itself through the training process, making it extremely difficult to control how that data is shared as a result of a user prompt. Some architectural solutions are being explored, such as separating LLMs into different levels and segregating data. However, no silver bullet has yet been found.</p><p>From a security perspective, these differences allow attackers to craft new attack vectors that can target LLMs and fly under the radar of existing security tools designed for traditional web applications.</p>
    <div>
      <h3>OWASP LLM Vulnerabilities</h3>
      <a href="#owasp-llm-vulnerabilities">
        
      </a>
    </div>
    <p>The <a href="https://owasp.org/">OWASP</a> foundation <a href="https://owasp.org/www-project-top-10-for-large-language-model-applications/">released a list of</a> the top 10 classes of vulnerabilities for LLMs, providing a useful framework for thinking about <a href="https://www.cloudflare.com/learning/ai/what-is-ai-security/">how to secure language models</a>. Some of the threats are reminiscent of the <a href="https://owasp.org/www-project-top-ten/">OWASP top 10 for web applications</a>, while others are specific to language models.</p><p>Similar to web applications, some of these vulnerabilities can be best addressed when the LLM application is designed, developed, and trained. For example, <a href="https://www.cloudflare.com/learning/ai/data-poisoning/"><i>Training Data Poisoning</i></a> can be carried out by introducing vulnerabilities in the training data set used to train new models. Poisoned information is then presented to the user when the model is live. <i>Supply Chain Vulnerabilities</i> and <i>Insecure Plugin Design</i> are vulnerabilities introduced in components added to the model, like third-party software packages. Finally, managing authorization and permissions is crucial when dealing with <i>Excessive Agency</i>, where unconstrained models can perform unauthorized actions within the broader application or infrastructure.</p><p>Conversely, <i>Prompt Injection</i>, <i>Model Denial of Service</i>, and <i>Sensitive Information Disclosure</i> can be mitigated by adopting a proxy security solution like Cloudflare Firewall for AI. In the following sections, we will give more details about these vulnerabilities and discuss how Cloudflare is optimally positioned to mitigate them.</p>
    <div>
      <h3>LLM deployments</h3>
      <a href="#llm-deployments">
        
      </a>
    </div>
    <p>Language model risks also depend on the deployment model. Currently, we see three main deployment approaches: internal, public, and product LLMs. In all three scenarios, you need to protect models from abuses, protect any proprietary data stored in the model, and protect the end user from misinformation or from exposure to inappropriate content.</p><ul><li><p><b>Internal LLMs:</b> Companies develop LLMs to support the workforce in their daily tasks. These are considered corporate assets and shouldn’t be accessed by non-employees. Examples include an AI co-pilot trained on sales data and customer interactions used to generate tailored proposals, or an LLM trained on an internal knowledge base that can be queried by engineers.</p></li><li><p><b>Public LLMs:</b> These are LLMs that can be accessed outside the boundaries of a corporation. Often these solutions have free versions that anyone can use and they are often trained on general or public knowledge. Examples include <a href="https://openai.com/gpt-4">GPT</a> from OpenAI or <a href="https://www.anthropic.com/product">Claude</a> from Anthropic.</p></li><li><p><b>Product LLM:</b> From a corporate perspective, LLMs can be part of a product or service offered to their customers. These are usually self-hosted, tailored solutions that can be made available as a tool to interact with the company resources. Examples include customer support chatbots or <a href="/security-analytics-ai-assistant/">Cloudflare AI Assistant</a>.</p></li></ul><p>From a risk perspective, the difference between Product and Public LLMs is about who carries the impact of successful attacks. Public LLMs are considered a threat to data because data that ends up in the model can be accessed by virtually anyone. This is one of the reasons many corporations advise their employees not to use confidential information in prompts for publicly available services. Product LLMs can be considered a threat to companies and their intellectual property if models had access to proprietary information during training (by design or by accident).</p>
    <div>
      <h2>Firewall for AI</h2>
      <a href="#firewall-for-ai">
        
      </a>
    </div>
    <p>Cloudflare Firewall for AI will be deployed like a traditional WAF, where every API request with an LLM prompt is scanned for patterns and signatures of possible attacks.</p><p>Firewall for AI can be deployed in front of models hosted on the Cloudflare <a href="/workers-ai">Workers AI</a> platform or models hosted on any other third party infrastructure. It can also be used alongside Cloudflare <a href="https://developers.cloudflare.com/ai-gateway/">AI Gateway</a>, and customers will be able to control and set up Firewall for AI using the WAF control plane.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3kwApAqMHjSChjXkdc3H89/09efa7f0ed81746bf77c62376457d1c8/image1-1.png" />
            
            </figure><p><i>Firewall for AI works like a traditional web application firewall. It is deployed in front of an LLM application and scans every request to identify attack signatures</i></p>
    <div>
      <h3>Prevent volumetric attacks</h3>
      <a href="#prevent-volumetric-attacks">
        
      </a>
    </div>
    <p>One of the threats listed by OWASP is Model Denial of Service. Similar to traditional applications, a <a href="https://www.cloudflare.com/learning/ddos/glossary/denial-of-service/">DoS attack</a> is carried out by consuming an exceptionally high amount of resources, resulting in reduced service quality or potentially increasing the costs of running the model. Given the amount of resources LLMs require to run, and the unpredictability of user input, this type of attack can be detrimental.</p><p>This risk can be mitigated by adopting rate limiting policies that control the rate of requests from individual sessions, therefore limiting the context window. By proxying your model through Cloudflare today, you get <a href="https://www.cloudflare.com/ddos/">DDoS protection</a> out of the box. You can also use Rate Limiting and <a href="/advanced-rate-limiting/">Advanced Rate Limiting</a> to manage the rate of requests allowed to reach your model by setting a maximum rate of request performed by an individual IP address or API key during a session.</p>
    <div>
      <h3>Identify sensitive information with Sensitive Data Detection</h3>
      <a href="#identify-sensitive-information-with-sensitive-data-detection">
        
      </a>
    </div>
    <p>There are two use cases for sensitive data, depending on whether you own the model and data, or you want to prevent users from sending data into public LLMs.</p><p>As defined by <a href="https://owasp.org/www-project-top-10-for-large-language-model-applications/">OWASP</a>, <i>Sensitive Information Disclosure</i> happens when LLMs inadvertently reveal confidential data in the responses, leading to unauthorized data access, privacy violations, and security breaches. One way to prevent this is to add strict prompt validations. Another approach is to identify when personally identifiable information (PII) leaves the model. This is relevant, for example, when a model was trained with a company knowledge base that may include sensitive information, such asPII (like social security number), proprietary code, or algorithms.</p><p>Customers using LLM models behind Cloudflare WAF can employ the Sensitive Data Detection (SDD) WAF managed ruleset to identify certain PII being returned by the model in the response. Customers can review the SDD matches on WAF Security Events. Today, SDD is offered as a set of managed rules designed to scan for financial information (such as credit card numbers) as well as secrets (API keys). As part of the roadmap, we plan to allow customers to create their own custom fingerprints.</p><p>The other use case is intended to prevent users from sharing PII or other sensitive information with external LLM providers, such as OpenAI or Anthropic. To protect from this scenario, we plan to expand SDD to scan the request prompt and integrate its output with AI Gateway where, alongside the prompt's history, we detect if certain sensitive data has been included in the request. We will start by using the existing SDD rules, and we plan to allow customers to write their own custom signatures. Relatedly, obfuscation is another feature we hear a lot of customers talk about. Once available, the expanded SDD will allow customers to obfuscate certain sensitive data in a prompt before it reaches the model. SDD on the request phase is being developed.</p>
    <div>
      <h2>Preventing model abuses</h2>
      <a href="#preventing-model-abuses">
        
      </a>
    </div>
    <p>Model abuse is a broader category of abuse. It includes approaches like “prompt injection” or submitting requests that generate hallucinations or lead to responses that are inaccurate, offensive, inappropriate, or simply off-topic.</p><p>Prompt Injection is an attempt to manipulate a language model through specially crafted inputs, causing unintended responses by the LLM. The results of an injection can vary, from extracting sensitive information to influencing decision-making by mimicking normal interactions with the model. A classic example of prompt injection is manipulating a CV to affect the output of <a href="https://kai-greshake.de/posts/inject-my-pdf/">resume screening tools</a>.</p><p>A common use case we hear from customers of our AI Gateway is that they want to avoid their application generating toxic, offensive, or problematic language. The risks of not controlling the outcome of the model include reputational damage and harming the end user by providing an unreliable response.</p><p>These types of abuse can be managed by adding an additional layer of protection that sits in front of the model. This layer can be trained to block injection attempts or block prompts that fall into categories that are inappropriate.</p>
    <div>
      <h3>Prompt and response validation</h3>
      <a href="#prompt-and-response-validation">
        
      </a>
    </div>
    <p>Firewall for AI will run a series of detections designed to identify prompt injection attempts and other abuses, such as making sure the topic stays within the boundaries defined by the model owner. Like other existing WAF features, Firewall for AI will automatically look for prompts embedded in HTTP requests or allow customers to create rules based on where in the JSON body of the request the prompt can be found.</p><p>Once enabled, the Firewall will analyze every prompt and provide a score based on the likelihood that it’s malicious. It will also tag the prompt based on predefined categories. The score ranges from 1 to 99 which indicates the likelihood of a prompt injection, with 1 being the most likely.</p><p>Customers will be able to create WAF rules to block or handle requests with a particular score in one or both of these dimensions. You’ll be able to combine this score with other existing signals (like bot score or attack score) to determine whether the request should reach the model or should be blocked. For example, it could be combined with a bot score to identify if the request was malicious and generated by an automated source.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4dxfO29U9BurRgBykPOao0/5aa1619fa5ea3414b7954c78771d1360/Slice-1.png" />
            
            </figure><p><i>Detecting prompt injections and prompt abuse is part of the scope of Firewall for AI. Early iteration of the product design</i></p><p>Besides the score, we will assign tags to each prompt that can be used when creating rules to prevent prompts belonging to any of these categories from reaching their model. For example, customers will be able to create rules to block specific topics. This includes prompts using words categorized as offensive, or linked to religion, sexual content, or politics, for example.</p>
    <div>
      <h2>How can I use Firewall for AI? Who gets this?</h2>
      <a href="#how-can-i-use-firewall-for-ai-who-gets-this">
        
      </a>
    </div>
    <p>Enterprise customers on the Application Security Advanced offering can immediately start using Advanced Rate Limiting and Sensitive Data Detection (on the response phase). Both products can be found in the WAF section of the Cloudflare dashboard. Firewall for AI’s prompt validation feature is currently under development and a beta version will be released in the coming months to all Workers AI users. Sign up to <a href="https://cloudflare.com/lp/firewall-for-ai/">join the waiting list</a> and get notified when the feature becomes available.</p>
    <div>
      <h2>Conclusion</h2>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>Cloudflare is one of the first security providers launching a set of <a href="https://www.cloudflare.com/ai-security/">tools to secure AI applications</a>. Using Firewall for AI, customers can control what prompts and requests reach their language models, reducing the risk of abuses and data exfiltration. Stay tuned to learn more about how AI application security is evolving.</p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[AI]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Developer Platform]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[LLM]]></category>
            <category><![CDATA[Application Services]]></category>
            <guid isPermaLink="false">6mqhKmVt1dGOhO5xNsli3k</guid>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Defensive AI: Cloudflare’s framework for defending against next-gen threats]]></title>
            <link>https://blog.cloudflare.com/defensive-ai/</link>
            <pubDate>Mon, 04 Mar 2024 14:00:24 GMT</pubDate>
            <description><![CDATA[ From identifying phishing attempts to protect applications and APIs, Cloudflare uses AI to improve the effectiveness of its security solutions to fight against new and more sophisticated attacks ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/xVD4cmhSUcJddNAFw2AJc/6fb1537ad293d5d4eee9059aae0eec9b/Personalized-defensive-AI.png" />
            
            </figure><p>Generative AI has captured the imagination of the world by being able to produce poetry, screenplays, or imagery. These tools can be used to improve human productivity for good causes, but they can also be employed by malicious actors to carry out sophisticated attacks.</p><p>We are witnessing phishing attacks and social engineering becoming more sophisticated as attackers tap into powerful new tools to generate credible content or interact with humans as if it was a real person. Attackers can use AI to build boutique tooling made for attacking specific sites with the intent of harvesting proprietary data and taking over user accounts.</p><p>To protect against these new challenges, we need new and more sophisticated security tools: this is how Defensive AI was born. Defensive AI is the framework Cloudflare uses when thinking about how intelligent systems can improve the effectiveness of our security solutions. The key to Defensive AI is data generated by Cloudflare’s vast network, whether generally across our entire network or specific to individual customer traffic.</p><p>At Cloudflare, we use AI to increase the level of protection across all security areas, ranging from <a href="https://www.cloudflare.com/application-services/solutions/">application security</a> to email security and our <a href="https://www.cloudflare.com/zero-trust/solutions/">Zero Trust platform</a>. This includes creating customized protection for every customer for API or email security, or using our huge amount of attack data to train models to detect application attacks that haven’t been discovered yet.</p><p>In the following sections, we will provide examples of how we designed the latest generation of security products that leverage AI to secure against AI-powered attacks.</p>
    <div>
      <h3>Protecting APIs with anomaly detection</h3>
      <a href="#protecting-apis-with-anomaly-detection">
        
      </a>
    </div>
    <p>APIs power the modern Web, comprising <a href="/2024-api-security-report/">57% of dynamic traffic</a> across the Cloudflare network, up from 52% in 2021. While APIs aren’t a new technology, securing them differs from securing a traditional web application. Because APIs offer easy programmatic access by design and are growing in popularity, fraudsters and threat actors have pivoted to targeting APIs. Security teams must now counter this rising threat. Importantly, each API is usually unique in its purpose and usage, and therefore <a href="https://www.cloudflare.com/application-services/solutions/api-security/">securing APIs</a> can take an inordinate amount of time.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5ojHc36uSFsnCBr870kK38/f4b7df6df5c60ffb087255ffb442e5e3/Screenshot-2024-03-01-at-1.39.29-PM.png" />
            
            </figure><p>Cloudflare is announcing the development of API Anomaly Detection for <a href="/api-gateway/">API Gateway</a> to protect APIs from attacks designed to damage applications, take over accounts, or <a href="https://www.cloudflare.com/learning/security/what-is-data-exfiltration/">exfiltrate data</a>. API Gateway provides a layer of protection between your hosted APIs and every device that interfaces with them, giving you the visibility, control, and security tools you need to manage your APIs.</p><p>API Anomaly Detection is an upcoming, ML-powered feature in our API Gateway product suite and a natural successor to <a href="/api-sequence-analytics">Sequence Analytics</a>. In order to protect APIs at scale, API Anomaly Detection learns an application’s business logic by analyzing client API request sequences. It then builds a model of what a sequence of expected requests looks like for that application. The resulting traffic model is used to identify attacks that deviate from the expected client behavior. As a result, API Gateway can use its <a href="https://developers.cloudflare.com/api-shield/security/sequence-mitigation/">Sequence Mitigation</a> functionality to enforce the learned model of the application’s intended business logic, stopping attacks.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/edeVw346MG6dZbjaDt97L/263e9c18c51f5320ce6e0c1d9ab957df/Screenshot-2024-03-01-at-2.01.25-PM-1.png" />
            
            </figure><p>While we’re still developing API Anomaly Detection, API Gateway customers can sign up <a href="https://www.cloudflare.com/lp/api-anomaly-detection/">here</a> to be included in the beta for API Anomaly Detection. Today, customers can get started with Sequence Analytics and Sequence Mitigation by reviewing the <a href="https://developers.cloudflare.com/api-shield/security/">docs</a>. Enterprise customers that haven’t purchased API Gateway can <a href="http://dash.cloudflare.com/?to=/:account/:zone/security/api-shield">self-start a trial</a> in the Cloudflare Dashboard, or contact their account manager for more information.</p>
    <div>
      <h3>Identifying unknown application vulnerabilities</h3>
      <a href="#identifying-unknown-application-vulnerabilities">
        
      </a>
    </div>
    <p>Another area where AI improves security is in our <a href="https://www.cloudflare.com/en-gb/learning/ddos/glossary/web-application-firewall-waf/">Web Application Firewall (WAF)</a>. Cloudflare processes 55 million HTTP requests per second on average and has an unparalleled visibility into attacks and exploits across the world targeting a wide range of applications.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3oTIWUwe5Em3tD4ACksp6b/0036dcdf5af715f4095ffb14ae9b3769/Screenshot-2024-03-01-at-1.41.23-PM.png" />
            
            </figure><p>One of the big challenges with the WAF is adding protections for new vulnerabilities and false positives. A WAF is a collection of rules designed to identify attacks directed at web applications. New vulnerabilities are discovered daily and at Cloudflare we have a team of security analysts that create new rules when vulnerabilities are discovered. However, manually creating rules takes time — usually hours — leaving applications potentially vulnerable until a protection is in place. The other problem is that attackers continuously evolve and mutate existing attack payloads that can potentially bypass existing rules.</p><p>This is why Cloudflare has, for years, leveraged machine learning models that constantly learn from the latest attacks, deploying mitigations without the need for manual rule creation. This can be seen, for example, in our <a href="/stop-attacks-before-they-are-known-making-the-cloudflare-waf-smarter/">WAF Attack Score</a> solution. WAF Attack Score is based on an ML model trained on attack traffic identified on the Cloudflare network. The resulting classifier allows us to identify variations and bypasses of existing attacks as well as extending the protection to <a href="/how-cloudflares-ai-waf-proactively-detected-ivanti-connect-secure-critical-zero-day-vulnerability">new and undiscovered attacks</a>. Recently, we have made Attack Score <a href="/waf-attack-score-for-business-plan">available to all Enterprise and Business plans</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/25Jw91tB0o7lKhsgzvbqPV/748a7365c126ba03e2382b3eff988c37/Screenshot-2024-03-01-at-18.16.22.png" />
            
            </figure><p><i>Attack Score uses AI to classify each HTTP request based on the likelihood that it’s malicious</i></p><p>While the contribution of security analysts is indispensable, in the era of AI and rapidly evolving attack payloads, a <a href="https://www.cloudflare.com/cybersecurity-risk-management/">robust security posture</a> demands solutions that do not rely on human operators to write rules for each novel threat. Combining Attack Score with traditional signature-based rules is an example of how intelligent systems can support tasks carried out by humans. Attack Score identifies new malicious payloads which can be used by analysts to optimize rules that, in turn, provide better training data for our AI models. This creates a reinforcing positive feedback loop improving the overall protection and response time of our WAF.</p><p>Long term, we will adapt the AI model to account for customer-specific traffic characteristics to better identify deviations from normal and benign traffic.</p>
    <div>
      <h3>Using AI to fight phishing</h3>
      <a href="#using-ai-to-fight-phishing">
        
      </a>
    </div>
    <p>Email is one of the most effective vectors leveraged by bad actors with the US Cybersecurity and Infrastructure Security Agency (<a href="https://www.cisa.gov/stopransomware/general-information">CISA</a>) reporting that 90% of cyber attacks start with phishing and Cloudflare Email Security <a href="https://radar.cloudflare.com/year-in-review/2023#malicious-emails">marking 2.6% of 2023's emails as malicious</a>. The rise of AI-enhanced attacks are making traditional email security providers obsolete, as threat actors can now craft phishing emails that are more credible than ever with little to no language errors.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/27B73JPLutOrg6shC9gZnh/3e49607d69ce330333204c3d061d9fa5/Screenshot-2024-03-01-at-1.41.30-PM.png" />
            
            </figure><p>Cloudflare <a href="https://developers.cloudflare.com/email-security/">Email Security</a> is a cloud-native service that stops phishing attacks across all threat vectors. Cloudflare’s email security product continues to protect customers with its AI models, even as trends like Generative AI continue to evolve. Cloudflare’s models analyze all parts of a phishing attack to determine the risk posed to the end user. Some of our AI models are personalized for each customer while others are trained holistically. Privacy is paramount at Cloudflare, so only non-personally identifiable information is used by our tools for training. In 2023, <a href="/2023-phishing-report">Cloudflare processed approximately 13 billion</a>, and blocked 3.4 billion, emails, providing the email security product a rich dataset that can be used to train AI models.</p><p>Two detections that are part of our portfolio are Honeycomb and Labyrinth.</p><ul><li><p><i>Honeycomb</i> is a patented email sender domain reputation model. This service builds a graph of who is sending messages and builds a model to determine risk. Models are trained on specific customer traffic patterns, so every customer has AI models trained on what their good traffic looks like.</p></li><li><p><i>Labyrinth</i> uses ML to protect on a per-customer basis. Actors attempt to spoof emails from our clients’ valid partner companies.  We can gather a list with statistics of known &amp; good email senders for each of our clients. We can then detect the spoof attempts when the email is sent by someone from an unverified domain, but the domain mentioned in the email itself is a reference/verified domain.</p></li></ul><p>AI remains at the core of our email security product, and we are constantly improving the ways we leverage it within our product. If you want to get more information about how we are using our AI models to stop AI enhanced phishing attacks check out our blog post here.</p>
    <div>
      <h3>Zero-Trust security protected and powered by AI</h3>
      <a href="#zero-trust-security-protected-and-powered-by-ai">
        
      </a>
    </div>
    <p>Cloudflare <a href="https://www.cloudflare.com/en-gb/learning/security/glossary/what-is-zero-trust/">Zero Trust</a> provides administrators the tools to protect access to their IT infrastructure by enforcing strict identity verification for every person and device regardless of whether they are sitting within or outside the network perimeter.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/qpOOjCeP6yqWtYrSgJdCu/4693906c9faf833a57db45672472f23d/Cloudflare-One-User-Risk-Scores_b.png" />
            
            </figure><p>One of the big challenges is to enforce strict access control while reducing the friction introduced by frequent verifications. Existing solutions also put pressure on IT teams that need to analyze log data to track how risk is evolving within their infrastructure. Sifting through a huge amount of data to find rare attacks requires large teams and substantial budgets.</p><p>Cloudflare simplifies this process by introducing behavior-based user risk scoring. Leveraging AI, we analyze real-time data to identify anomalies in the users’ behavior and signals that could lead to harms to the organization. This provides administrators with recommendations on how to tailor the security posture based on user behavior.</p><p>Zero Trust user risk scoring detects user activity and behaviors that could introduce risk to your organizations, systems, and data and assigns a score of Low, Medium, or High to the user involved. This approach is sometimes referred to as <a href="https://www.cloudflare.com/learning/security/what-is-ueba/">user and entity behavior analytics (UEBA)</a> and enables teams to detect and remediate possible account compromise, company policy violations, and other risky activity.</p><p>The first contextual behavior we are launching is “impossible travel”, which helps identify if a user’s credentials are being used in two locations that the user could not have traveled to in that period of time. These risk scores can be further extended in the future to highlight personalized behavior risks based on contextual information such as time of day usage patterns and access patterns to flag any anomalous behavior. Since all traffic would be proxying through your SWG, this can also be extended to resources which are being accessed, like an internal company repo.</p><p>We have an exciting launch during security week. <a href="/cf1-user-risk-score/">Check out this blog to learn more</a>.</p>
    <div>
      <h3>Conclusion</h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>From application and email security to <a href="https://www.cloudflare.com/network-security/">network security</a> and Zero Trust, we are witnessing attackers leveraging new technologies to be more effective in achieving their goals. In the last few years, multiple Cloudflare product and engineering teams have adopted intelligent systems to better identify abuses and <a href="https://www.cloudflare.com/products/zero-trust/threat-defense/">increase protection</a>.</p><p>Besides the generative AI craze, AI is already a crucial part of how we defend digital assets against attacks and how we discourage bad actors.</p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[AI]]></category>
            <category><![CDATA[Machine Learning]]></category>
            <category><![CDATA[Phishing]]></category>
            <category><![CDATA[Cloud Email Security]]></category>
            <category><![CDATA[API Security]]></category>
            <category><![CDATA[SASE]]></category>
            <guid isPermaLink="false">76ClOKhWKWuLLPML351f39</guid>
            <dc:creator>Daniele Molteni</dc:creator>
            <dc:creator>John Cosgrove</dc:creator>
            <dc:creator>Ayush Kumar</dc:creator>
            <dc:creator>Ankur Aggarwal</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing hostname and ASN lists to simplify WAF rule creation]]></title>
            <link>https://blog.cloudflare.com/hostname-asn-lists/</link>
            <pubDate>Wed, 15 Nov 2023 14:00:53 GMT</pubDate>
            <description><![CDATA[ Today we are expanding Custom Lists by enabling you to create lists of hostnames and ASNs ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6FatPlhXcZ6qnKtShFBu74/cc8cc916060349928aae51f3fa2630b3/image2-1.png" />
            
            </figure><p>If you’re responsible for creating a <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">Web Application Firewall (WAF)</a> rule, you’ll almost certainly need to reference a large list of potential values that each field can have. And having to manually manage and enter all those fields, for numerous WAF rules, would be a guaranteed headache.</p><p>That’s why we introduced <a href="/introducing-ip-lists/">IP lists</a>. Having a separate list of values that can be referenced, reused, and managed independently of the actual rule makes for a better WAF user experience. You can create a new list, such as <code>$organization_ips</code>, and then use it in a rule like “allow requests where source IP is in <code>$organization_ips</code>”. If you need to add or remove IPs, you do that in the list, without touching each of the rules that reference the list. You can even add a descriptive name to help track its content. It’s easy, clean, and organized.</p><p>Which led us, and our customers, to ask the next natural question: why stop at IPs?</p><p>Cloudflare’s WAF is highly configurable and allows you to write rules evaluating a set of hostnames, Autonomous System Numbers (ASNs), countries, header values, or values of JSON fields. But to do so, you’ve to input a list of items directly into the rule expression editor, with all the associated downsides: it’s slow (you need to modify each rule individually), prone to error, and sometimes impossible (given the 4 KB limit of a custom rule expression).</p><p>Well, no longer! Today we are expanding Custom Lists by enabling you to create lists of hostnames and ASNs. The new list types are included in all Enterprise plans, so you’re free to start creating expansive lists the moment you read this.</p>
    <div>
      <h3>Hostname</h3>
      <a href="#hostname">
        
      </a>
    </div>
    <p>You can now create a list of hostnames by navigating to <b>Configurations</b> &gt; <b>Lists</b> in your account. This is the same place where you can manage your IP lists and browse the available Managed IP Lists.</p><div>
  
</div>
<p></p><p>Once the list is created, you can use it in any WAF rule expression. <a href="/account-waf/">Account WAF</a> users will find this useful as they will be able to run a managed or custom ruleset only on traffic matching a set of hosts.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5vZTeZid1fng7QkSGrtH7U/fe296998efc0f6efe8ba76052b4fff9c/image1-3.png" />
            
            </figure><p>Use of hostname lists in the filter of a custom ruleset (available to Account-level WAF users).</p><p>SSL for SaaS users will find hostname lists useful as they can restrict specific rules or rulesets to run on a subset of hosts. The list can be updated programmatically (via the API) to add or remove hosts as they are onboarded to the account.</p><p>A few things to know about lists: you can add domains and subdomains to a list, and a domain doesn’t automatically match subdomains. For example, if you add example.com to your list and use it in a custom rule to block traffic, requests for api.example.com won’t match. Hostname lists accept the <code>*</code> wildcard to include subdomains. For example, adding <code>*.example.com</code> to a list will match on <code>api.example.com</code> but it won’t match on ‘example.com’. Finally, <code>example.com/path/subfolder</code> wouldn’t be a valid entry — we are building string lists for this use case (more on that below).</p>
    <div>
      <h3>ASN</h3>
      <a href="#asn">
        
      </a>
    </div>
    <p>An <a href="https://www.cloudflare.com/learning/network-layer/what-is-an-autonomous-system/">autonomous system</a> (AS) is a large network or group of networks that has a unified routing policy. Every device that connects to the Internet is connected to an AS. Imagine an AS, as being like a town's post office, while an IP is the address of a single home. ASNs do not rotate like IPs do, making ASNs a better option when managing a larger portion of the IP space. Typically, each AS is operated by a single large organization, such as an Internet service provider, a large enterprise technology company, or a government agency.</p><p>You can use an ASN list to manage traffic from ISPs and cloud providers where bots generating automated traffic might be hosted. Using IPs would be less practical as the range of addresses would be too broad and change very frequently. Note that while ASNs are useful in this scenario, they should be used with caution, because blocking the wrong ASN could cause a large range of IPs to be affected.</p>
    <div>
      <h3>How many lists do I get?</h3>
      <a href="#how-many-lists-do-i-get">
        
      </a>
    </div>
    <p>Every Enterprise account can create up to 10 Custom lists with a total of 10,000 items shared across all lists. An account is considered Enterprise when at least 1 Enterprise plan has been purchased. Quotas are shared across all data types (IP, ASN and Hostname) and they are defined at the account level, so you can use your lists across all your applications.</p><p>For example, an account with one (or more) Enterprise plan can have 8 IP lists with 1,000 items each, one Hostname list with 1,700 entries, and one list with 300 ASNs; no more lists or items can be added.</p><p>Enterprise customers can increase their quotas by reaching out to their account team.</p><p>At the moment of writing Free, Professional and Business accounts have access only to IP Lists.</p>
    <div>
      <h3>Where can I use them?</h3>
      <a href="#where-can-i-use-them">
        
      </a>
    </div>
    <p>The following table summarizes what Custom List types will be available and on what fields they can be used. ASN and Hostname Lists are accessible from any WAF product built on the <a href="https://developers.cloudflare.com/ruleset-engine/">Ruleset</a> Engine, including Custom, Rate Limiting and Managed rules.</p>
<table>
<thead>
  <tr>
    <th><span>List type</span></th>
    <th><span>Rule fields where list can be used (dashboard) </span></th>
    <th><span>API fields where list can be used</span></th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><span>IP lists</span></td>
    <td><span>IP Source Address</span></td>
    <td><span>ip.src</span></td>
  </tr>
  <tr>
    <td><span>Hostname lists</span></td>
    <td><span>Hostname</span></td>
    <td><span>http.host</span></td>
  </tr>
  <tr>
    <td><span>ASN lists</span></td>
    <td><span>ASN</span></td>
    <td><span>ip.src.asnum</span></td>
  </tr>
</tbody>
</table>
    <div>
      <h3>String: the future of lists (coming soon)</h3>
      <a href="#string-the-future-of-lists-coming-soon">
        
      </a>
    </div>
    <p>The next chapter for lists is a hyper-flexible string type. You’ll be able to use it against fields such as header, cookie, path, query, JSON body field, user agent, JA3, MIME type, and more. For each entry you will be able to specify different matching operators, such as ‘exact match’, ‘start with’, ’ends with’ or ‘contains’.</p><p>Common applications include listing all the user agents you want blocked, listing URLs you want to restrict access to, and more.</p><p>More complex use cases include creating a different rate limiting rule that applies to a group of users that can be identified using cookies, API keys, or session IDs. A string list will also allow you to collect JA3 fingerprints of known malicious bots.</p><p>We are still working on string lists, and it will be released in the coming months. In the meantime — if you’d like to start using our new and improved lists, you can jump right into your dash today.</p> ]]></content:encoded>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Product News]]></category>
            <guid isPermaLink="false">3IFJErFx65WDzQ4Xrp1M67</guid>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[All Cloudflare customers protected from the Atlassian Confluence CVE-2023-22515]]></title>
            <link>https://blog.cloudflare.com/all-cloudflare-customers-protected-atlassian-cve-2023-22515/</link>
            <pubDate>Wed, 04 Oct 2023 16:03:04 GMT</pubDate>
            <description><![CDATA[ On 2023-10-04 at 13:00 UTC, Atlassian released details of the zero-day vulnerability described as “Privilege Escalation Vulnerability in Confluence Data Center and Server” (CVE-2023-22515), a zero-day vulnerability impacting Confluence Server and Data Center products ]]></description>
            <content:encoded><![CDATA[ <p></p><p>On 2023-10-04 at 13:00 UTC, Atlassian released details of the zero-day vulnerability described as “Privilege Escalation Vulnerability in Confluence Data Center and Server” (CVE-2023-22515), a zero-day vulnerability impacting Confluence Server and Data Center products.  </p><p>Cloudflare was warned about the vulnerability before the advisory was published and worked with Atlassian to proactively apply protective WAF rules for all customers. All Cloudflare customers, including Free, received the protection enabled by default. On 2023-10-03 14:00 UTC Cloudflare WAF team <a href="https://developers.cloudflare.com/waf/change-log/2023-10-04---emergency-release/">released</a> the following managed rules to protect against the first variant of the vulnerability observed in real traffic.</p><table><colgroup><col></col><col></col><col></col></colgroup><tbody><tr><td><p><span>Rule ID</span></p></td><td><p><span>Description</span></p></td><td><p><span>Default Action</span></p></td></tr><tr><td><p><span>New Managed Rules</span></p><p><span>…ec9f34e1</span></p></td><td><p><span>Atlassian Confluence - Privilege Escalation - CVE:CVE-2023-22515</span></p></td><td><p><span>Block</span></p></td></tr><tr><td><p><span>Legacy Managed Rules</span></p><p><span>100604 and 100605</span></p></td><td><p><span>Atlassian Confluence - Privilege Escalation - CVE:CVE-2023-22515</span></p></td><td><p><span>Block</span></p></td></tr><tr><td><p><span>Free Managed Rule</span></p><p><span>…91935fcb</span></p></td><td><p><span>Atlassian Confluence - Privilege Escalation - CVE:CVE-2023-22515</span></p></td><td><p><span>Block</span></p></td></tr></tbody></table><p>When CVE-2023-22515 is exploited, an attacker could access public Confluence Data Center and Server instances to create unauthorized Confluence administrator accounts to access the instance. According to the advisory the vulnerability is assessed by Atlassian as critical. At the moment of writing a CVSS score is not yet known. More information can be found in the <a href="https://confluence.atlassian.com/security/cve-2023-22515-privilege-escalation-vulnerability-in-confluence-data-center-and-server-1295682276.html?subid=1643554570&amp;jobid=106230797&amp;utm_campaign=security-advisory-confluence-sdc_EML-16991&amp;utm_medium=email&amp;utm_source=alert-email">security advisory</a>, including what versions of Confluence Server are affected.</p> ]]></content:encoded>
            <category><![CDATA[Atlassian]]></category>
            <category><![CDATA[CVE]]></category>
            <category><![CDATA[WAF]]></category>
            <guid isPermaLink="false">1hWndEMMdWNaLEtUyDilG8</guid>
            <dc:creator>Himanshu Anand</dc:creator>
            <dc:creator>Daniele Molteni</dc:creator>
            <dc:creator>Sourov Zaman</dc:creator>
            <dc:creator>Vaibhav Singhal</dc:creator>
            <dc:creator>Ary Widdes</dc:creator>
            <dc:creator>Myles Robinson</dc:creator>
        </item>
        <item>
            <title><![CDATA[New! Rate Limiting analytics and throttling]]></title>
            <link>https://blog.cloudflare.com/new-rate-limiting-analytics-and-throttling/</link>
            <pubDate>Tue, 19 Sep 2023 13:00:41 GMT</pubDate>
            <description><![CDATA[ Cloudflare Analytics can now suggest rate limiting threshold based on historic traffic patterns. Rate Limiting also supports a throttle behavior ]]></description>
            <content:encoded><![CDATA[ <p></p><p><a href="https://www.cloudflare.com/application-services/products/rate-limiting/">Rate Limiting</a> rules are essential in the toolbox of security professionals as they are very effective in managing targeted volumetric attacks, <a href="https://www.cloudflare.com/learning/access-management/account-takeover/">takeover attempts</a>, <a href="https://www.cloudflare.com/learning/bots/what-is-data-scraping/">scraping bots</a>, or API abuse. Over the years we have received a lot of feature requests from users, but two stand out: suggesting rate limiting thresholds and implementing a throttle behavior. Today we released both to Enterprise customers!</p><p>When creating a rate limit rule, one of the common questions is “what rate should I put in to block malicious traffic without affecting legitimate users?”. If your traffic is authenticated, <a href="https://www.cloudflare.com/application-services/products/api-gateway/">API Gateway</a> will suggest thresholds based on auth IDs (such a session-id, cookie, or API key). However, when you don’t have authentication headers, you will need to create IP-based rules (like for a ‘/login’ endpoint) and you are left guessing the threshold. From today, we provide analytics tools to determine what rate of requests can be used for your rule.</p><p>So far, a rate limit rule could be created with log, challenge, or block action. When ‘block’ is selected, all requests from the same source (for example, IP) were blocked for the timeout period. Sometimes this is not ideal, as you would rather selectively block/allow requests to enforce a maximum rate of requests without an outright temporary ban. When using throttle, a rule lets through enough requests to keep the request rate from individual clients below a customer-defined threshold.</p><p>Continue reading to learn more about each feature.</p>
    <div>
      <h2>Introducing Rate Limit Analysis in Security Analytics</h2>
      <a href="#introducing-rate-limit-analysis-in-security-analytics">
        
      </a>
    </div>
    <p>The <a href="https://developers.cloudflare.com/waf/security-analytics/">Security Analytics</a> view was designed with the intention of offering complete visibility on HTTP traffic while adding an extra layer of security on top. It's proven a great value when it comes to crafting custom rules. Nevertheless, when it comes to creating rate limiting rules, relying solely on Security Analytics can be somewhat challenging.</p><p>To create a rate limiting rule you can leverage Security Analytics to determine the filter — what requests are evaluated by the rule (for example, by filtering on mitigated traffic, or selecting other security signals like Bot scores). However, you’ll also need to determine what’s the maximum rate you want to enforce and that depends on the specific application, traffic pattern, time of day, endpoint, etc. What’s the typical rate of legitimate users trying to access the login page at peak time? What’s the rate of requests generated by a botnet with the same JA3 fingerprint scraping prices from an ecommerce site? Until today, you couldn’t answer these questions from the analytics view.</p><p>That’s why we made the decision to integrate a rate limit helper into Security Analytics as a new tab called "Rate Limit Analysis," which concentrates on providing a tool to answer rate-related questions.</p>
    <div>
      <h3>High level top statistics vs. granular Rate Limit Analysis</h3>
      <a href="#high-level-top-statistics-vs-granular-rate-limit-analysis">
        
      </a>
    </div>
    <p>In Security Analytics, users can analyze traffic data by creating filters combining what we call <i>top statistics.</i> These statistics reveal the total volume of requests associated with a specific attribute of the <a href="https://www.cloudflare.com/learning/ddos/glossary/hypertext-transfer-protocol-http/">HTTP requests</a>. For example, you can filter the traffic from the <a href="https://www.cloudflare.com/learning/network-layer/what-is-an-autonomous-system/">ASNs</a> that generated more requests in the last 24 hours, or you slice the data to look only at traffic reaching the most popular paths of your application. This tool is handy when creating rules based on traffic analysis.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3QmpAIl5PaDpDvc6eLBNeK/15d3af5e819eb89bb749b58eb43f24c7/image3-5.png" />
            
            </figure><p>However, for rate limits, a more detailed approach is required.</p><p>The new <i>Rate limit analysis</i> tab now displays data on request rate for traffic matching the selected filter and time period. You can select a rate defined on different time intervals, like one or five minutes, and the attribute of the request used to identify the rate, such as IP address, JA3 fingerprint, or a combination of both as this often improves accuracy. Once the attributes are selected, the chart displays the distribution of request rates for the top 50 unique clients (identified as unique IPs or JA3s) observed during the chosen time interval in descending order.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7iXu3aai6ibY25UWhtYUT1/9bef2b03e884668efbba3d8251cd4882/image2-1.png" />
            
            </figure><p>You can use the slider to determine the impact of a rule with different thresholds. How many clients would have been caught by the rule and rate limited? Can I visually identify abusers with above-average rate vs. the long tail of average users? This information will guide you in assessing what’s the most appropriate rate for the selected filter.</p>
    <div>
      <h3>Using Rate Limit Analysis to define rate thresholds</h3>
      <a href="#using-rate-limit-analysis-to-define-rate-thresholds">
        
      </a>
    </div>
    <p>It takes a few minutes to build your rate limit rule now. Let’s apply this to one of the common use cases where we identify /login endpoint and create a rate limit rule based on the IP with a logging action.</p><p><b>Define a scope and rate.</b></p><ul><li><p>In the <i>HTTP requests</i> tab (the default view), start by selecting a specific time period. If you’re looking for the normal rate distribution you can specify a period with non-peak traffic. Alternatively, you can analyze the rate of offending users by selecting a period when an attack was carried out.</p></li></ul><div>
  
</div>
<p></p><ul><li><p>Using the filters in the top statistics, select a specific endpoint (e.g., <i>/login</i>). We can also focus on non-automated/human traffic using the bot score quick filter on the right sidebar or the filter button on top of the chart. In the <i>Rate limiting Analysis</i> tab, you can choose the characteristic (JA3, IP, or both) and duration (1 min, 5 mins, or 1 hour) for your rate limit rule. At this point, moving the dotted line up and down can help you choose an appropriate rate for the rule. JA3 is only available to customers using Bot Management.</p></li></ul>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6ZC9jNROj5C5X6mHImu8zf/88b11e610fafe2504665dad8c22b3da6/image5-2.png" />
            
            </figure><ul><li><p>Looking at the distribution, we can exclude any IPs or ASNs that might be known to us, to have a better visual on end user traffic. One way to do this is to filter out the outliers right before the long tail begins. A rule with this setting will block the IPs/JA3 with a higher rate of requests.</p></li></ul><p><b>Validate your rate.</b> You can validate the rate by repeating this process but selecting a portion of traffic where you know there was an attack or traffic peak. The rate you've chosen should block the outliers during the attack and allow traffic during normal times. In addition to that, looking at the sampled logs can be helpful in verifying the fingerprints and filters chosen.</p><p><b>Create a rule.</b> Selecting “Create rate limit rule” will take you to the rate limiting tab in the WAF with your filters pre-populated.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7bxY562ESZk6pzJYrPBvuF/35d5d626a4ee5b286dd0c087c74d756e/image7-2.png" />
            
            </figure><p><b>Choose your action and behavior in the rule.</b> Depending on your needs you can choose to log, challenge, or block requests exceeding the selected threshold. It’s often a good idea to first deploy the rule with a log action to validate the threshold and then change the action to block or challenge when you are confident with the result. With every action, you can also choose between two behaviors: fixed action or throttle. Learn more about the difference in the next section.</p>
    <div>
      <h2>Introducing the new throttle behavior</h2>
      <a href="#introducing-the-new-throttle-behavior">
        
      </a>
    </div>
    <p>Until today, the only available behavior for Rate Limiting has been <i>fixed action,</i> where an action is triggered for a selected time period (also known as timeout). For example, did the IP 192.0.2.23 exceed the rate of 20 requests per minute? Then block (or log) all requests from this IP for, let’s say, 10 minutes.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2VKfUoWJSGACGOz50fEsof/00da159c12b659159a2f883b81988a4d/Screenshot-2023-09-19-at-11.16.42.png" />
            
            </figure><p>In some situations, this type of penalty is too severe and risks affecting legitimate traffic. For example, if a device in a corporate network (think about NAT) exceeds the threshold, all devices sharing the same IP will be blocked outright.</p><p>With <i>throttling</i>, rate limiting selectively drops requests to maintain the rate within the specified threshold. It’s like a leaky bucket behavior (with the only difference that we do not implement a queuing system). For example, throttling a client to 20 requests per minute means that when a request comes from this client, we look at the last 60 seconds and see if (on average) we have received less than 20 requests. If this is true, the rule won’t perform any action. If the average is already at 20 requests then we will take action on that request. When another request comes in, we will check again. Since some time has passed the average rate might have dropped, making room for more requests.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5nguPmj1apYY1lehsrbybF/3b954929b65a06a4e509ddc67689a874/Screenshot-2023-09-19-at-11.17.18.png" />
            
            </figure><p>Throttling can be used with all actions: block, log, or challenge. When creating a rule, you can select the behavior after choosing the action.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/19vPKFMr4S8VXOGtUkUXTK/822e2c7b704fa0f03fa86c6044bfd288/Screenshot-2023-09-19-at-11.17.42.png" />
            
            </figure><p>When using any challenge action, we recommend using the <i>fixed</i> <i>action</i> behavior. As a result, when a client exceeds the threshold we will challenge all requests until a challenge is passed. The client will then be able to reach the origin again until the threshold is breached again.</p><p>Throttle behavior is available to Enterprise rate limiting <a href="https://developers.cloudflare.com/waf/rate-limiting-rules/#availability">plans</a>.</p>
    <div>
      <h2>Try it out!</h2>
      <a href="#try-it-out">
        
      </a>
    </div>
    <p>Today we are introducing a new Rate Limiting analytics experience along with the throttle behavior for all Rate Limiting users on Enterprise plans. We will continue to work actively on providing a better experience to save our customers' time. Log in to the dashboard, try out the new experience, and let us know your feedback using the feedback button located on the top right side of the Analytics page or by reaching out to your account team directly.</p> ]]></content:encoded>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Rate Limiting]]></category>
            <category><![CDATA[Analytics]]></category>
            <guid isPermaLink="false">CZ5Zxo3gP0GccJdEtAmcY</guid>
            <dc:creator>Radwa Radwan</dc:creator>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Unmasking the top exploited vulnerabilities of 2022]]></title>
            <link>https://blog.cloudflare.com/unmasking-the-top-exploited-vulnerabilities-of-2022/</link>
            <pubDate>Fri, 04 Aug 2023 18:29:40 GMT</pubDate>
            <description><![CDATA[ The Cybersecurity and Infrastructure Security Agency (CISA) just released a report highlighting the most commonly exploited vulnerabilities of 2022.  ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5scnKQPaND4raWHnCC5OPg/2dff3f8ebb800ddc6dd78b792b169c83/1a.png" />
            
            </figure><p>The Cybersecurity and Infrastructure Security Agency (CISA) just <a href="https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-215a">released a report highlighting the most commonly exploited vulnerabilities of 2022</a>. With our role as a reverse proxy to a large portion of the Internet, Cloudflare is in a unique position to observe how the Common Vulnerabilities and Exposures (CVEs) mentioned by CISA are being exploited on the Internet.</p><p>We wanted to share a bit of what we’ve learned.</p><p>Based on our analysis, two CVEs mentioned in the CISA report are responsible for the vast majority of attack traffic seen in the wild: Log4J and Atlassian Confluence Code Injection. Although CISA/CSA discuss a larger number of vulnerabilities in the same report, our data clearly suggests a major difference in exploit volume between the top two and the rest of the list.</p>
    <div>
      <h3>The top CVEs for 2022</h3>
      <a href="#the-top-cves-for-2022">
        
      </a>
    </div>
    <p>Looking at the volume of requests detected by WAF Managed Rules that were created for the specific CVEs listed in the CISA report, we rank the vulnerabilities in order of prevalence:</p><table><colgroup><col></col><col></col><col></col></colgroup><tbody><tr><td><p><span>Popularity rank</span></p></td><td><p><span>Description</span></p></td><td><p><span>CVEs</span></p></td></tr><tr><td><p><span>1. Improper Input Validation caused Remote Code execution in Apache Log4j logging library</span></p></td><td><p><span>Log4J</span></p></td><td><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2021-44228"><span>CVE-2021-44228</span></a></p></td></tr><tr><td><p><span>2. Atlassian Confluence Server and Data Center Remote Code Execution Vulnerability</span></p></td><td><p><span>Atlassian Confluence Code Injection</span></p></td><td><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-26134"><span>CVE-2022-26134</span></a></p></td></tr><tr><td><p><span>3. 3 issues were combined together to achieve Remote Code execution also known as ProxyShell</span></p></td><td><p><span>Microsoft Exchange servers</span></p></td><td><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2021-34473"><span>CVE-2021-34473</span></a><span>, </span><a href="https://nvd.nist.gov/vuln/detail/CVE-2021-31207"><span>CVE-2021-31207</span></a><span>, </span><a href="https://nvd.nist.gov/vuln/detail/CVE-2021-34523"><span>CVE-2021-34523</span></a></p></td></tr><tr><td><p><span>4. undisclosed requests may bypass iControl REST authentication and run arbitrary code</span></p></td><td><p><span>BIG-IP F5</span></p></td><td><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-1388"><span>CVE-2022-1388</span></a></p></td></tr><tr><td><p><span>5. 2 issues were combined to together to achieve remote Root</span></p></td><td><p><span>VMware</span></p></td><td><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-22954"><span>CVE-2022-22954</span></a><span>, </span></p><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-22960"><span>CVE-2022-22960</span></a></p></td></tr><tr><td><p><span>6. Remote Code execution Issue in Confluence Server and Data Center</span></p></td><td><p><span>Atlassian Confluence 0-day</span></p></td><td><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2021-26084"><span>CVE-2021-26084</span></a></p></td></tr></tbody></table><p>Topping the list is Log4J (<a href="https://nvd.nist.gov/vuln/detail/CVE-2021-44228">CVE-2021-44228</a>). This isn’t surprising, as this is likely one of the most high impact exploits we have seen in decades — leading to full remote compromise. The second most exploited vulnerability is the Atlassian Confluence Code Injection (<a href="https://nvd.nist.gov/vuln/detail/CVE-2022-26134">CVE-2022-26134</a>).</p><p>In third place we find the combination of three CVEs targeting Microsoft Exchange servers (<a href="https://nvd.nist.gov/vuln/detail/CVE-2021-34473">CVE-2021-34473</a>, <a href="https://nvd.nist.gov/vuln/detail/CVE-2021-31207">CVE-2021-31207</a>, and <a href="https://nvd.nist.gov/vuln/detail/CVE-2021-34523">CVE-2021-34523</a>). In fourth is a BIG-IP F5 exploit (<a href="https://nvd.nist.gov/vuln/detail/CVE-2022-1388">CVE-2022-1388</a>) followed by the combination of two VMware vulnerabilities (<a href="https://nvd.nist.gov/vuln/detail/CVE-2022-22954">CVE-2022-22954</a> and <a href="https://nvd.nist.gov/vuln/detail/CVE-2022-22960">CVE-2022-22960</a>). Our list ends with another Atlassian Confluence 0-day (<a href="https://nvd.nist.gov/vuln/detail/CVE-2021-26084">CVE-2021-26084</a>).</p><p>When comparing the attack volume for these five groups, we immediately notice that one vulnerability stands out. Log4J is more than an order of magnitude more exploited than the runner up (Atlassian Confluence Code Injection); and all the remaining CVEs are even lower. Although the CISA/CSA report groups all these vulnerabilities together, we think that there are really two groups: one dominant CVE (Log4J), and a secondary group of comparable 0-days. Each of the two groups have similar attack volume.</p><p>The chart below, in logarithmic scale, clearly shows the difference in popularity.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4ApUqzWZKK24NL0vaQq1fL/34abfb47afb62b96d4991301fb15786f/2a.png" />
            
            </figure>
    <div>
      <h2>CVE-2021-44228: Log4J</h2>
      <a href="#cve-2021-44228-log4j">
        
      </a>
    </div>
    <p>The first on our list is the notorious CVE-2021-44228 — better known as the Log4j vulnerability. This flaw caused significant disturbance in the cyber world in 2021, and continues to be exploited extensively.</p><p>Cloudflare <a href="/cve-2021-44228-log4j-rce-0-day-mitigation/">released new managed rules</a> within hours after the vulnerability was made public. We also released updated detections in the following days (<a href="/protection-against-cve-2021-45046-the-additional-log4j-rce-vulnerability/">blog</a>). Overall, we released rules in three stages:</p><ul><li><p><a href="https://developers.cloudflare.com/waf/change-log/2021-12-10---emergency-release/">Emergency release: December 10, 2021</a></p></li><li><p><a href="https://developers.cloudflare.com/waf/change-log/2021-12-14---emergency-release/">Emergency release: December 14, 2021</a></p></li><li><p><a href="https://developers.cloudflare.com/waf/change-log/2021-12-16---emergency-release/">Emergency release: December 16, 2021</a></p></li></ul><p>The rules we deployed detect the exploit in four categories:</p><ul><li><p>Log4j Headers: Attack pattern in HTTP header</p></li><li><p>Log4j Body: Attack pattern in HTTP Body</p></li><li><p>Log4j URI: Attack Pattern in URI</p></li><li><p>Log4j Body Obfuscation: Obfuscated Attack pattern</p></li></ul><p>We have found that Log4J attacks in HTTP Headers are more common than in HTTP bodies. The graph below shows the persistence of exploit attempts for this vulnerability over time, with clear peaks and growth into July 2023 (time of writing).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5lT86fDAK2DfHk6ec5xJ2K/f5bcf34caee629f5d30f149e683bd691/2b.png" />
            
            </figure><p>Due to the high impact of this vulnerability, to step up and lead the charge for a safer, better Internet, on March 15, 2022 <a href="/waf-for-everyone/">Cloudflare announced</a> that all plans (including Free) would get WAF Managed Rules for high-impact vulnerabilities. These free rules tackle high-impact vulnerabilities such as the Log4J exploit, the Shellshock vulnerability, and various widespread WordPress exploits. Every business or personal website, regardless of size or budget, can protect their digital assets using Cloudflare’s WAF.</p><p>The <a href="https://logging.apache.org/log4j/2.x/security.html">full security advisory for Log4J published by Apache Software Foundation can be found here</a>.</p>
    <div>
      <h3>CVE-2022-26134: Atlassian Confluence Code Injection</h3>
      <a href="#cve-2022-26134-atlassian-confluence-code-injection">
        
      </a>
    </div>
    <p>A code injection vulnerability that afflicted Atlassian Confluence was the second most exploited CVE in 2022. This exploit posed a threat to entire systems, leaving many businesses at the mercy of attackers. This is an indication of how critical knowledge-based systems have become in managing information within organizations. Attackers are targeting these systems as they recognize how  important they are.. In response, the Cloudflare WAF team rolled out two emergency releases to protect its customers:</p><ul><li><p><a href="https://developers.cloudflare.com/waf/change-log/2022-06-04---emergency-release/">Emergency Release: June 4, 2022</a></p></li><li><p><a href="https://developers.cloudflare.com/waf/change-log/2022-06-07---emergency-release/">Emergency Release: June 7, 2022</a></p></li></ul><p>As part of these releases, two rules were made available to all WAF users:</p><ul><li><p>Atlassian Confluence - Code Injection - CVE:CVE-2022-26134</p></li><li><p>Atlassian Confluence - Code Injection - Extended - CVE:CVE-2022-26134</p></li></ul><p>The graph below displays the number of hits received each day, showing a clear peak followed by a gradual decline as systems were patched and secured.</p><p>Both Log4J and Confluence Code Injection show some seasonality, where a higher volume of attacks is carried out between September / November 2022 until March 2023. This likely reflects campaigns that are managed by attackers that are still attempting to exploit this vulnerability (an ongoing campaign is visible towards the end of July 2023).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3BtxJnWq1hLkOXtGGfXNGX/1dfafd372191c169e7ea2dd6bb6be000/2c.png" />
            
            </figure><p><a href="https://confluence.atlassian.com/doc/confluence-security-advisory-2022-06-02-1130377146.html">Security advisory for reference</a>.</p>
    <div>
      <h2>CVE-2021-34473, CVE-2021-31207, and CVE-2021-34523: Microsoft Exchange SSRF and RCE Vulnerabilities</h2>
      <a href="#cve-2021-34473-cve-2021-31207-and-cve-2021-34523-microsoft-exchange-ssrf-and-rce-vulnerabilities">
        
      </a>
    </div>
    <p>Three previously unknown bugs were chained together to achieve a Remote Code Execution (RCE) 0-day attack. Given how widely adopted Microsoft Exchange servers are, these exploits posed serious threats to data security and business operations across all industries, geographies and sectors.</p><p>Cloudflare WAF published a rule for this vulnerability with the <a href="https://developers.cloudflare.com/waf/change-log/2022-10-03---emergency-release/">Emergency Release: March 3, 2022</a> that contained the rule <i>Microsoft Exchange SSRF and RCE vulnerability - CVE:CVE-2022-41040, CVE:CVE-2022-41082.</i></p><p>The trend of these attacks over the past year can be seen in the graph below.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5X7Bcw6QYIYEQwnjhtI5rs/f9e385f942398ea84efc379cd5498bdf/2d.png" />
            
            </figure><p>Security advisories for reference: <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34473">CVE-2021-34473</a>, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-31207">CVE-2021-31207</a> and <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34523">CVE-2021-34523</a>.</p>
    <div>
      <h2>CVE-2022-1388: RCE in BIG-IP F5</h2>
      <a href="#cve-2022-1388-rce-in-big-ip-f5">
        
      </a>
    </div>
    <p>This particular security vulnerability can be exploited where an unauthenticated adversary has network connectivity to the BIG-IP system (the F5 product name of a group of application security and performance solutions). Either via the management interface or self-assigned IP addresses the attacker can execute unrestricted system commands.</p><p>Cloudflare did an emergency release to detect this issue (<a href="https://developers.cloudflare.com/waf/change-log/2022-05-10---emergency-release/">Emergency Release: May 5, 2022</a>) with the rule <i>Command Injection - RCE in BIG-IP - CVE:CVE-2022-1388.</i></p><p>There is a relatively persistent pattern of exploitation without signs of specific campaigns, with the exception of a spike occurring in late June 2023.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5QPTMMYjgy5Mh0noAO0G9B/33039df2c5d0230372656cfcdc6124c0/2e.png" />
            
            </figure><p>a</p><p><a href="https://my.f5.com/manage/s/article/K23605346">F5 security advisory for reference</a>.</p>
    <div>
      <h3>CVE-2022-22954: VMware Workspace ONE Access and Identity Manager Server-side Template Injection Remote Code Execution Vulnerability</h3>
      <a href="#cve-2022-22954-vmware-workspace-one-access-and-identity-manager-server-side-template-injection-remote-code-execution-vulnerability">
        
      </a>
    </div>
    <p>With this vulnerability, an attacker can remotely trigger a server-side template injection that may result in remote code execution. Successful exploitation allows an unauthenticated attacker with network access to the web interface to execute an arbitrary shell command as the VMware user. Later, this issue was combined with CVE-2022-22960 (which was a Local Privilege Escalation Vulnerability (LPE) issue). In combination, these two vulnerabilities allowed remote attackers to execute commands with root privileges.</p><p>Cloudflare WAF published a rule for this vulnerability: <a href="https://developers.cloudflare.com/waf/change-log/2022-04-25/">Release: May 5, 2022</a>. Exploit attempt graph over time shown below.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/TmLAw8UQWYk238JNusY1R/c0efa68e02417deff690be2b96e55264/2f.png" />
            
            </figure><p><a href="https://www.vmware.com/security/advisories/VMSA-2022-0011.html">VMware Security advisory</a>.</p>
    <div>
      <h3>CVE-2021-26084: Confluence Server Webwork OGNL injection</h3>
      <a href="#cve-2021-26084-confluence-server-webwork-ognl-injection">
        
      </a>
    </div>
    <p>An OGNL injection vulnerability was found that allows an unauthenticated attacker to execute arbitrary code on a Confluence Server or Data Center instance. Cloudflare WAF performed an <a href="https://developers.cloudflare.com/waf/change-log/2021-09-01---emergency-release/">emergency release for this vulnerability on September 9, 2022</a>. When compared to the other CVEs discussed in this post, we have not observed a lot of exploits over the past year.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/9RU0rpZyzlnfte3FSHuas/642a23740fd2c2e035e1b0944566d8aa/2g.png" />
            
            </figure><p><a href="https://confluence.atlassian.com/doc/confluence-security-advisory-2021-08-25-1077906215.html">Official security advisory</a>.</p>
    <div>
      <h3>Recommendations for enhanced protection</h3>
      <a href="#recommendations-for-enhanced-protection">
        
      </a>
    </div>
    <p>We recommend all server admins to keep their software updated when fixes become available. Cloudflare customers — including those on our free tier — can leverage new rules addressing CVEs and 0-day threats, <a href="https://developers.cloudflare.com/waf/change-log/">updated weekly in the Managed Ruleset</a>. High-risk CVEs may even prompt emergency releases. In addition to this, Enterprise customers have access to the <a href="/waf-ml/">WAF Attack Score</a>: an AI-powered detection feature that supplements traditional signature-based rules, identifying unknown threats and bypass attempts. With the combined strength of rule-based and AI detection, Cloudflare offers <a href="https://www.cloudflare.com/products/zero-trust/threat-defense/">robust defense against known and emerging threats</a>.</p>
    <div>
      <h2>Conclusions</h2>
      <a href="#conclusions">
        
      </a>
    </div>
    <p>Cloudflare’s data is able to augment CISA’s vulnerability report — of note, we see attempts to exploit the top two vulnerabilities that are several orders of magnitude more compared to the remainder of the list. Organizations should focus their software patching efforts based on the list provided. It is, of course, important to note that all software should be patched, and good WAF implementations will ensure additional security and “buy time” for underlying systems to be secured for both existing and future vulnerabilities.</p> ]]></content:encoded>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[CISA]]></category>
            <category><![CDATA[Vulnerabilities]]></category>
            <guid isPermaLink="false">3tRYQMQiHufQpDCK8nmuuP</guid>
            <dc:creator>Himanshu Anand</dc:creator>
            <dc:creator>Sabina Zejnilovic</dc:creator>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Back in 2017 we gave you Unmetered DDoS Mitigation, here's a birthday gift: Unmetered Rate Limiting for Self Serve customers]]></title>
            <link>https://blog.cloudflare.com/unmetered-ratelimiting/</link>
            <pubDate>Thu, 29 Sep 2022 13:00:00 GMT</pubDate>
            <description><![CDATA[ Starting today, Free, Pro and Business plans include Rate Limiting rules without additional charges. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>In 2017, we made <a href="/unmetered-mitigation/">unmetered DDoS protection</a> available to all our customers, regardless of their size or whether they were on a Free or paid plan. Today we are doing the same for Rate Limiting, one of the most successful products of the WAF family.</p><p>Rate Limiting is a very effective tool to manage targeted volumetric attacks, takeover attempts, bots scraping sensitive data, attempts to overload computationally expensive API endpoints and more. To manage these threats, customers deploy rules that limit the maximum rate of requests from individual visitors on specific paths or portions of their applications.</p><p>Until today, customers on a Free, Pro or Business plan were able to purchase Rate Limiting as an add-on with usage-based cost of $5 per million requests. However, we believe that an essential security tool like Rate Limiting should be available to all customers without restrictions.</p><p>Since we launched unmetered DDoS, we have mitigated huge attacks, like a <a href="/cloudflare-blocks-an-almost-2-tbps-multi-vector-ddos-attack/">2 Tbps multi-vector attack</a> or the most recent <a href="/26m-rps-ddos/">26 million requests per second attack</a>. We believe that releasing an unmetered version of Rate Limiting will increase the overall security posture of millions of applications protected by Cloudflare.</p><p>Today, we are announcing that Free, Pro and Business plans include Rate Limiting rules without extra charges.</p><p>…and we are not just dropping any Rate Limiting extra charges, we are also releasing an updated version of the product which is built on the powerful ruleset engine and allows building rules like in Custom Rules. This is the same engine which powers the enterprise-grade <a href="/advanced-rate-limiting/">Advanced Rate Limiting</a>. The new ‘Rate limiting rules’ will appear in your dashboard starting this week.</p><p>No more usage-based charges, just rate limiting when you need and how much you need it.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5H36mS0NDzLbE3sJfa8xnF/95f9f42210e0a725ab8d489be64eb892/image2-63.png" />
            
            </figure><p>New Rate Limiting is in everyone's dashboard under the WAF tab.</p><p>Note: starting today, September 29th, Pro and Business customers have the new product available in their dashboard. Free customers will get their rules enabled during the week starting on October 3rd 2022.</p>
    <div>
      <h3>End of usage-based charges</h3>
      <a href="#end-of-usage-based-charges">
        
      </a>
    </div>
    <p>New customers get new Rate Limiting by default while existing customers will be able to run both products in parallel: new and previous version.</p><p>For new customers, new Rate Limiting rules will be included in each plan according to the following table:</p><table>
<thead>
  <tr>
    <th></th>
    <th>FREE</th>
    <th>PRO</th>
    <th>BUSINESS</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td>Number of rules</td>
    <td>1</td>
    <td>2</td>
    <td>5</td>
  </tr>
</tbody>
</table><p>When using these rules, no additional charges will be added to your account. No matter how much traffic these rules handle.</p><p>Existing customers will be granted the same amount of rules in the new, unmetered, system as the rules they’re currently using in the previous version (as of September 20, 2022). For example, if you are a Business customer with nine active rules in the previous version, you will get nine rules in the new system as well.</p><p><i>The previous version of Rate Limiting will still be subject to charges when in use</i>. If you want to take advantage of the unmetered option, we recommend rewriting your rules in the new engine. As outlined below, new Rate Limiting offers all the capabilities of the previous version of Rate Limiting and more. In the future, the previous version of Rate Limiting will be deprecated, however we will give plenty of time to self-migrate rules.</p>
    <div>
      <h3>New rate limiting engine for all</h3>
      <a href="#new-rate-limiting-engine-for-all">
        
      </a>
    </div>
    <p>A couple of weeks ago, <a href="/cloudflare-waap-named-leader-gartner-magic-quadrant-2022/">we announced</a> that Cloudflare was named a Leader in the Gartner® Magic Quadrant™ for Web Application and API Protection (WAAP). One of the key services offered in our WAAP portfolio is Advanced Rate Limiting.</p><p>The recent <a href="/advanced-rate-limiting/">Advanced Rate Limiting</a> has shown great success among our Enterprise customers. Advanced Rate Limiting allows an unprecedented level of control on how to manage incoming traffic rate. We decided to give the same rule-building experience to all of our customers as well as some of its new features.</p><p>A summary of the feature set is outlined in the following table:</p>
<table>
<thead>
  <tr>
    <th></th>
    <th><span>FREE</span></th>
    <th><span>PRO</span></th>
    <th><span>BUSINESS</span></th>
    <th><span>ENT</span><br /><span><br />with WAF Essential</span></th>
    <th><span>ENT</span><span><br />with Advanced Rate Limiting</span></th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><span>Fields available (request)</span></td>
    <td><span>Path</span></td>
    <td><span>Host</span><br /><span>URI</span><br /><span>Path</span><br /><span>Full URI</span><br /><span>Query</span></td>
    <td><span>Host</span><br /><span>URI</span><br /><span>Path</span><br /><span>Full URI</span><br /><span>Query</span><br /><span>Method</span><br /><span>Source IP</span><br /><span>User Agent</span></td>
    <td><a href="https://developers.cloudflare.com/ruleset-engine/rules-language/fields/"><span>All fields available in Custom Rules</span></a><span>: Including  request metadata</span>(1)<span>.</span></td>
    <td><span>Same WAF Essential. Request Bot score</span>(1)<span> and body fields</span>(2)</td>
  </tr>
  <tr>
    <td><span>Counting expression</span></td>
    <td><span>Not available</span></td>
    <td><span>Not available</span></td>
    <td><span>Available with access to response headers and response status code</span></td>
    <td><span>Available with access to response headers and response status code</span></td>
    <td><span>Available with access to response headers and response status code</span></td>
  </tr>
  <tr>
    <td><span>Counting characteristics</span></td>
    <td><span>IP</span></td>
    <td><span>IP</span></td>
    <td><span>IP</span></td>
    <td><span>IP</span><br /><span>IP with NAT awareness</span></td>
    <td><span>IP</span><br /><span>IP with NAT awareness</span><br /><span>Query</span><br /><span>Host</span><br /><span>Headers</span><br /><span>Cookie</span><br /><span>ASN</span><br /><span>Country</span><br /><span>Path</span><br /><span>JA3</span>(2)<span> </span><br /><span>JSON field (New!)</span></td>
  </tr>
  <tr>
    <td><span>Max Counting period</span></td>
    <td><span>10 seconds</span></td>
    <td><span>60 seconds</span></td>
    <td><span>10 minutes</span></td>
    <td><span>10 minutes</span></td>
    <td><span>1 hour</span></td>
  </tr>
  <tr>
    <td><span>Price</span></td>
    <td><span>Free</span></td>
    <td><span>Included in monthly subscription</span></td>
    <td><span>Included in monthly subscription</span></td>
    <td><span>Included in contracted plan</span></td>
    <td><span>Included in contracted plan</span></td>
  </tr>
</tbody>
</table><p>(1): Requires Bots Management add-on(2): Requires specific plan</p><p><b>Leveraging the ruleset engine.</b> Previous version of Rate Limiting allows customers to scope the rule based on a single path and method of the request. Thanks to the ruleset engine, customers can now write rules like they do in Custom Rules and combine multiple parameters of the HTTP request.</p><p>For example, Pro domains can combine multiple paths in the same rule using the OR or AND operators. Business domains can also write rules using Source IP or User Agent. This allows enforcing different rates for specific User Agents. Furthermore, Business customers can now scope Rate Limiting to specific IPs (using IP List, for example) or exclude IPs where no attack is expected.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4vdGtCHgu4JHuWZsCiNU8u/135e670450e10416f8fa3cecce28f3ed/image1-77.png" />
            
            </figure><p>Both Rate Limiting products can be found under WAF→ Rate Limiting rules. Previous version of Rate Limiting (left) allows filtering traffic for one URL. New Rate Limiting (right) allows you to combine fields like in Custom Rules.</p><p><b>Counting and mitigation expressions are now separate.</b> A feature request we often heard about was the ability to track the rate of requests on a specific path (such as ‘/login’) and, when an IP exceeds the threshold, block every request from the same IP hitting anywhere on your domain. Business and Enterprise customers can now achieve this by using the <i>counting</i> expression which is separate from the <i>mitigation</i>. The former defines what requests are used to compute the rate while the letter defines what requests are mitigated once the threshold has been reached.</p><p>Another use case for using the counting expression is when you need to use Origin Status Code or HTTP Response Headers. If you need to use these fields, we recommend creating a counting expression that includes response parameters and explicitly writing a filter that defines what the request parameters that will trigger a block action.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/60pUzmYow1zkwkvkYJrTww/bf9fced9a08884164a4fbf56232b1ac7/image3-46.png" />
            
            </figure><p>You can now separate the expression used to compute the rate from the expression used for blocking traffic once the rate is exceeded. In this example, all traffic to example.com will be blocked (see mitigation expression at the top) if more than 3 POST requests to ‘/login’ in 1 minute have returned 429 (defined by the counting expression at the bottom).</p><p><b>Counting dimensions.</b> Similarly to the previous version, Free, Pro and Business customers will get the IP-based Rate Limiting. When we say IP-based we refer to the way we group (or count) requests. You can set a rule that enforces a maximum rate of request from the same IPs. If you set a rule to limit 10 requests over one minute, we will count requests from individual IPs until they reach the limit and then block for a period of time.</p><p>Advanced Rate Limiting users are able to group requests based on additional characteristics, such as API keys, cookies, session headers, ASN, query parameters, a JSON body field (e.g. the username value of a login request) and more.</p><p><b>What do Enterprise customers get?</b> Enterprise customers do not get Rate Limiting as part of their contract by default. Rate Limiting is part of application security offering which needs to be contracted based on traffic volume. When WAF with Rate Limiting is included in their contract, they get access to 100 rules, a more comprehensive list of fields available in the rule builder, and they get to upgrade to <a href="/advanced-rate-limiting/">Advanced Rate Limiting</a>. Please reach out to your account team to learn more.</p><p>More information on how to use new Rate Limiting can be found in the <a href="https://developers.cloudflare.com/waf/rate-limiting-rules/">documentation</a>.</p>
    <div>
      <h3>Additional information for existing customers</h3>
      <a href="#additional-information-for-existing-customers">
        
      </a>
    </div>
    <p>If you are a Free, Pro or Business customer, you will automatically get the new product in the dashboard. We will entitle you with as many unmetered Rate Limiting rules as you are using in the previous version.</p><p>If you are an Enterprise customer using the previous version of Rate Limiting, please reach out to the account team to discuss the options to move to new Rate Limiting.</p><p>To take advantage of the unmetered functionality, you will need to migrate your rules to the new system. The previous version will keep working as usual, and you might be charged based on the traffic that its rules evaluate.</p><p>Long term, the previous version of Rate Limiting will be deprecated and when this happens all rules still running on the old system will cease to run.</p>
    <div>
      <h3>What’s next?</h3>
      <a href="#whats-next">
        
      </a>
    </div>
    <p>The WAF team has plans to further expand our Rate Limiting capabilities. Features we are considering include better analytics to support the rule creation. Furthermore, new Rate Limiting can now benefit from new fields made available in the WAF as soon as they are released. For example, Enterprise customers can combine Bot Score or the new <a href="/waf-ml/">WAF Attack Score</a> to create a more fine grain security posture.</p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Rate Limiting]]></category>
            <category><![CDATA[DDoS]]></category>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">3A3SkA9H2jGIesmoPPmqQE</guid>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Account WAF now available to Enterprise customers]]></title>
            <link>https://blog.cloudflare.com/account-waf/</link>
            <pubDate>Mon, 19 Sep 2022 13:30:00 GMT</pubDate>
            <description><![CDATA[ Do you manage more than a single domain? If the answer is yes, now you can manage a single WAF configuration for all your enterprise domains ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Do you manage more than a single domain? If the answer is yes, now you can manage a single WAF configuration for all your enterprise domains.</p><p>Cloudflare has been built around the concept of <i>zone</i>, which is broadly equivalent to a domain. Customers can add multiple domains to a Cloudflare account, and every domain has its own independent security configuration. If you deploy a rule to block bots on <i>example.com</i>, you will need to rewrite the same rule on <i>example.org</i>. You’ll then need to visit the dashboard of every zone when you want to update it. This applies to all WAF products including Managed, Firewall and Rate Limiting rules.</p><p>If you have just two domains that’s not a big deal. But if you manage hundreds or thousands of domains like most large organizations do. Dealing with individual domains becomes time-consuming, expensive or outright impractical. Of course, you could build automation relying on our API or Terraform. This will work seamlessly but not all organizations have the capabilities to manage this level of complexity. Furthermore, having a Terraform integration doesn’t fully replicate the experience or give the confidence provided by interacting with a well-designed UI.</p><p>Following Cloudflare ​​philosophy of making it easy to deploy security products, we are launching Account WAF.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4wnQ6CRlZQDgACYUfPRSBQ/b872e2d339e6e50fce87b4091ab22a7f/s0YK5qRTeaWI5GYi4Aq8dcUxUOSc2YPUSWmefJKouPIGMk6nP4Uma_VKbqYeF4LyzdMoUtY2NYsSubkeUMajuPHp_suz38WN4gxwC4Y3vjzNHD9teHQtVfola-ck.png" />
            
            </figure><p><i>Customers can now have a single WAF deployment for all their enterprise domains.</i> </p>
    <div>
      <h3>Welcome to the simpler world of Account WAF</h3>
      <a href="#welcome-to-the-simpler-world-of-account-waf">
        
      </a>
    </div>
    <p>You might wonder why an organization might have thousands of domains, but this is actually very common.</p><p>For example, an <a href="https://www.cloudflare.com/ecommerce/">e-commerce business</a> can have tens of marketing domains for all its brands localized in different countries, they’ll have APIs that power their e-commerce sites and mobile applications, applications integrated with partners, logistics services or payment systems, domains used by employees, and so on and so forth. The structure of these accounts can be very complex.</p><p>Now, let’s imagine that you need to deal with the simple use case of deploying Cloudflare Managed ruleset across all your production domains.</p><p>Without Account WAF you’d need to track down all the correct domains and visit the WAF page of each one of them, deploy the ruleset and possibly add overrides to select only the attack vectors you are interested in. This is messy and mistakes are easy.</p><p>With Account WAF, you can now deploy a managed ruleset just once while providing the list of hostnames where you want it on. With <i>deploying</i> here we refer to writing a filter that defines what requests we should run (or execute) the ruleset on. The filter works like a normal WAF Custom Rule, where you can take advantage of the power of the <a href="https://developers.cloudflare.com/ruleset-engine/rules-language/">Wirefilter syntax</a> and use any parameter of the HTTP request, metadata and computed values, such as Bot Score or our new WAF Attack Score. For example, you can run a ruleset only on traffic with a specific User Agent, or only on your API traffic.</p><div></div><p>You can deploy these rulesets multiple times on your account, so you can have different settings for different groups of domains. For example, you might want to deploy OWASP with different sensitivity levels for your staging domains versus your production domains, or enforce a minimum level of security across all zones (e.g. for legal protection or compliance), before tailoring the security posture of the most sensitive domains. Furthermore, if in the future you are going to add a new domain to your production environment, you can simply add it to the rule filter, and we will start protecting these requests too.</p>
    <div>
      <h3>It works for all WAF features</h3>
      <a href="#it-works-for-all-waf-features">
        
      </a>
    </div>
    <p>You can follow a similar flow if you want to deploy WAF Custom or Rate Limiting rules. However, in this case, to simplify management of large numbers of rules, we introduced the concept of Custom Rulesets. Like with managed rules, a ruleset is a group of rules, this time they are user defined. Like in the example above, you can deploy a custom ruleset on a user-defined filter to scope on what portion of your traffic you want to run these rules.</p><p>For example, consider the situation where you want to create two rules for all your domains: one that blocks traffic from a set of countries and then one rule to only allow requests with a non-malicious WAF Attack Score. You will create a custom ruleset with these two rules and then deploy it across your entire account.</p><div></div><p>One thing to note is that Account WAF rulesets (Managed, Custom and Rate Limiting) can be deployed on traffic to domains on Enterprise plans. You won’t be able to run rulesets on traffic of Free, Pro or Biz domains. This condition is enforced by the UI when writing a deployment filter.</p><p>Finally, you can follow the same flow to deploy custom rulesets that contain rate limiting rules. Custom rulesets are designed to contain either custom or rate limiting rules, at this stage these rules cannot be combined in the same ruleset. Please note that the Rate Limiting section will be available in October.</p>
    <div>
      <h3>Who gets it?</h3>
      <a href="#who-gets-it">
        
      </a>
    </div>
    <p>Account WAF is an Enterprise only feature. If you are an Enterprise customer on our new Advanced plan, you will get access to the new feature automatically this week. If you are not on our Advanced plan, please reach out to your account team to learn more.</p>
    <div>
      <h3>Watch on Cloudflare TV</h3>
      <a href="#watch-on-cloudflare-tv">
        
      </a>
    </div>
    <div></div> ]]></content:encoded>
            <category><![CDATA[GA Week]]></category>
            <category><![CDATA[General Availability]]></category>
            <category><![CDATA[WAF]]></category>
            <guid isPermaLink="false">3AyFLO9McG3vTs9TBo0irB</guid>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[New WAF intelligence feeds]]></title>
            <link>https://blog.cloudflare.com/new-waf-intelligence-feeds/</link>
            <pubDate>Thu, 07 Jul 2022 12:57:12 GMT</pubDate>
            <description><![CDATA[ Cloudflare is expanding our WAF’s threat intelligence capabilities by adding four new managed IP lists that can be used as part of any custom firewall rule ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3viqacx0pyK5KfuztWaVO9/ae921f1c63025506f3709dbdff7c339e/unnamed.png" />
            
            </figure><p>Cloudflare is expanding our <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">WAF’s</a> threat intelligence capabilities by adding four new managed IP lists that can be used as part of any custom firewall rule.</p><p>Managed lists are created and maintained by Cloudflare and are built based on threat intelligence feeds collected by analyzing patterns and trends observed across the Internet. Enterprise customers can already use the Open SOCKS Proxy list (<a href="/protecting-apis-from-abuse-and-data-exfiltration/">launched in March 2021</a>) and today we are adding four new IP lists: “VPNs”, “Botnets, Command and Control Servers”, “Malware” and “Anonymizers”.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/31yUbQ5PMWyQOuR6SKAYVm/e6b624da1f780033213cf902e1e40edb/XkegdawMtkmBmuCmAin8MIzby8BSozlKq1g_EJRwpKwYIkmx_e0t49a3yoc8YYNltTLJBQ3oFxDRmBFxP01RTytGgD-zCwQsfiQr5r2WyFChLu9wsmDjeAx5Rb0i.png" />
            
            </figure><p>You can check what rules are available in your plan by navigating to Manage Account → Configuration → Lists.</p><p>Customers can reference these lists when creating a custom firewall rule or in <a href="/advanced-rate-limiting/">Advanced Rate Limiting</a>. For example, you can choose to block all traffic generated by IPs we categorize as VPNs, or rate limit traffic generated by all Anonymizers. You can simply incorporate managed IP lists in the powerful firewall rule builder. Of course, you can also use your own <a href="/introducing-ip-lists/">custom IP list</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/72EGCZbWhomtW9Up3IT9yg/b97c63a343aa7ed580bc0d00987a53ef/WsDGsltjclo0RVf5cZlM3yiQFzdDUIIteuM2jE80480j63zup6IMVvJtrazsG7VSaBTFSgnX0kYqZBpf3xzgqdLOX_VTpxX3sb398t_tj86gO-EiDKFwVoltRR85.png" />
            
            </figure><p>Managed IP Lists can be used in WAF rules to manage incoming traffic from these IPs.</p>
    <div>
      <h3>Where do these feeds come from?</h3>
      <a href="#where-do-these-feeds-come-from">
        
      </a>
    </div>
    <p>These lists are based on Cloudflare-generated threat feeds which are made available as IP lists to be easily consumed in the WAF. Each IP is categorized by combining open source data as well as by analyzing the behavior of each IP leveraging the scale and reach of Cloudflare network. After an IP has been included in one of these feeds, we verify its categorization and feed this information back into our security systems and make it available to our customers in the form of a managed IP list. The content of each list is updated multiple times a day.</p><p>In addition to generating IP classifications based on Cloudflare’s internal data, Cloudflare curates and combines several data sources that we believe provide reliable coverage of active security threats with a low false positive rate. In today’s environment, an IP belonging to a cloud provider might today be distributing malware, but tomorrow might be a critical resource for your company.</p><p>Some IP address classifications are publicly available, OSINT data, for example Tor exit nodes, and Cloudflare takes care of integrating this into our Anonymizer list so that you don’t have to manage integrating this list into every asset in your network. Other classifications are determined or vetted using a variety of DNS techniques, like lookup, PTR record lookup, and observing passive DNS from Cloudflare’s network.</p><p>Our malware and command-and-control focused lists are generated from curated partnerships, and one type of IP address we target when we select partners is data sources that identify security threats that do not have DNS records associated with them.</p><p>Our Anonymizer list encompasses several types of services that perform anonymization, including VPNs, open proxies, and Tor nodes. It is a superset of the more narrowly focused VPN list (known commercial VPN nodes), and the Cloudflare Open Proxies list (proxies that relay traffic without requiring authentication).</p>
    <div>
      <h3>In dashboard IP annotations</h3>
      <a href="#in-dashboard-ip-annotations">
        
      </a>
    </div>
    <p>Using these lists to deploy a preventative security policy for these IPs is great, but what about knowing if an IP that is interacting with your website or application is part of a Botnet or VPN? We first released <a href="/security-center-investigate/">contextual information</a> for Anonymizers as part of Security Week 2022, but we are now closing the circle by extending this feature to cover all new lists.</p><p>As part of Cloudflare's threat intelligence feeds, we are exposing the IP category directly into the dashboard. Say you are investigating requests that were blocked by the WAF and that looked to be probing your application for known software vulnerabilities. If the source IP of these requests is matching with one of our feeds (for example part of a VPN), contextual information will appear directly on the analytics page.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3BEsz0Ts0fqS0o7Rlu0Kh0/a2eeba1c392e9d51a47efac8327e5f98/ba1SUQnRFtLMyaBYf580Fup-l4DJXdqOXEFrBm_KtT6egoEuFy0dh5HSZJvTSokZvDYC1d7US1dlhXMjn2jFgAgNr3Hmf455vhT6sT76JzXpI5ZyTO7bxGrXdj8o.png" />
            
            </figure><p>When the source IP of a WAF event matches one of the threat feeds, we provide contextual information directly onto the Cloudflare dashboard.</p><p>This information can help you see patterns and decide whether you need to use the managed lists to handle the traffic from these IPs in a particular way, for example by creating a rate limiting rule that reduces the amount of requests these actors can perform over a period of time.</p>
    <div>
      <h3>Who gets this?</h3>
      <a href="#who-gets-this">
        
      </a>
    </div>
    <p>The following table summarizes what plans have access to each one of these features. Any paying plans will have access to the contextual in-dash information, while Enterprise will be able to use different managed lists. Managed lists can be used only on Enterprise zones within an Enterprise account.</p>
<table>
<thead>
  <tr>
    <th></th>
    <th><span> FREE</span></th>
    <th><span>PRO</span></th>
    <th><span>BIZ</span></th>
    <th><span>ENT with WAF Essential</span></th>
    <th><span>ENT with WAF Advanced  *</span></th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><span>Annotations</span></td>
    <td><span>x</span></td>
    <td><span>✅</span></td>
    <td><span>✅</span></td>
    <td><span>✅</span></td>
    <td><span>✅</span></td>
  </tr>
  <tr>
    <td><span>Open Proxies</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>✅</span></td>
    <td><span>✅</span></td>
  </tr>
  <tr>
    <td><span>Anonymizers</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>✅</span></td>
  </tr>
  <tr>
    <td><span>VPNs</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>✅</span></td>
  </tr>
  <tr>
    <td><span>Botnets, command and control</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>✅</span></td>
  </tr>
  <tr>
    <td><span>Malware</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>x</span></td>
    <td><span>✅</span></td>
  </tr>
</tbody>
</table><p>* Contact your customer success manager to learn how to get access to these lists.</p>
    <div>
      <h3>Future releases</h3>
      <a href="#future-releases">
        
      </a>
    </div>
    <p>We are working on enriching our threat feeds even further. In the next months we are going to provide more IP lists, specifically we are looking into lists for cloud providers and Carrier-grade Network Address Translation (CG-NAT).</p> ]]></content:encoded>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Threat Intelligence]]></category>
            <category><![CDATA[VPN]]></category>
            <category><![CDATA[Botnet]]></category>
            <guid isPermaLink="false">qdVDHWjNU7EFOMA2A5uqb</guid>
            <dc:creator>Daniele Molteni</dc:creator>
            <dc:creator>Jesse Kipp</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing Advanced Rate Limiting]]></title>
            <link>https://blog.cloudflare.com/advanced-rate-limiting/</link>
            <pubDate>Wed, 16 Mar 2022 12:58:53 GMT</pubDate>
            <description><![CDATA[ Advance Rate Limiting allows counting requests based on virtually any characteristics of the HTTP request, regardless of its source IP ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Still relying solely on IP firewalling? It’s time to change that.</p><p>While the IP address might still be one of the core technologies allowing networks to function, its value for security is long gone. IPs are rarely static; nowadays, mobile operators use carrier-grade network address translation (CGNAT) to share the same IP amongst thousands of individual devices or users. Bots then carry out distributed attacks with low request volume from different IPs to elude throttling. Furthermore, many countries consider IP addresses to be personal data, and it would be a great advancement for privacy if a replacement could be found for elements of security that currently rely on IP addresses to function. A product that is affected by this trend is rate limiting.</p><p>Rate limiting is designed to stop requests from overloading a server. It relies on rules. A rate limiting rule is defined by a filter (which typically is a path, like <code>/login</code>) and the maximum number of requests allowed from each user over a period of time. When this threshold is exceeded, an action is triggered (usually a block) for subsequent requests from the same user for a period of time (known as a timeout). Traditional throttling solutions bucket together requests with the same IP since they follow the logic “requests from the same IP equals requests from the same user”. However, we hear from customers how not effective it is to use IP-based rate limiting to protect traffic, especially for authenticated APIs.</p><p>We are excited to launch Advanced Rate Limiting, a leap forward for throttling technologies. It allows counting requests based on virtually any characteristics of the HTTP request, regardless of its source IP. Rate Limiting is a great defense against brute force, <a href="https://www.cloudflare.com/learning/ai/how-to-prevent-web-scraping/">scraping</a>, or targeted DDoS attacks. Consequences of these attacks include leaking of sensitive data, <a href="https://www.cloudflare.com/zero-trust/solutions/account-takeover-prevention/">account takeover</a> or exhausting back-end resources. Keeping the rate of requests under control is especially crucial for <a href="https://www.cloudflare.com/learning/security/api/what-is-an-api/">APIs</a> where each call can trigger costly computation on the server origin.</p>
    <div>
      <h2>A step-change innovation for throttling</h2>
      <a href="#a-step-change-innovation-for-throttling">
        
      </a>
    </div>
    <p>Advanced Rate Limiting is now part of the <a href="/new-waf-experience/">Web Application Firewall</a> (WAF). It’s integrated with Firewall Rules and allows counting requests based on characteristics other than IP.</p><p>With Advanced Rate Limiting, you can:</p><ol><li><p>Define the rule filter using all HTTP request characteristics, such as URI, method, headers, cookies and body fields. Customers on a Bot Management plan get access to the bot score dynamic field too. You can also use two characteristics of the HTTP response to trigger rate limiting: status code and response headers.</p></li><li><p>Choose to count requests based on: IP, country, header, cookie, AS Number (ASN), value of a query parameter, or bots fingerprint (JA3). You can use any of these fields individually or by combining them, so that requests are bucketed when these values are the same. It can also set the threshold as the maximum complexity your origin can handle, rather than the maximum number of requests you want to allow.</p></li><li><p>Use it on all your traffic. As an Enterprise customer, Rate Limiting could be bought on a portion of your total traffic. With Advanced Rate Limiting, you can use the product on all of your traffic without having to worry about caps. Finally, Advanced Rate Limiting is available on the entire Cloudflare network, including in China.</p></li></ol>
    <div>
      <h2>Designed to integrate with your application</h2>
      <a href="#designed-to-integrate-with-your-application">
        
      </a>
    </div>
    <p>In this section, we discuss a few common use cases for using Advanced Rate Limiting to <a href="https://www.cloudflare.com/application-services/solutions/api-security/">protect your web or API traffic</a>. You can mix and match all these configurations to better suit your security needs and your application. All these use cases can be achieved via dashboard, API and Terraform.</p>
    <div>
      <h3>Use case - Protect web traffic with more granular rules</h3>
      <a href="#use-case-protect-web-traffic-with-more-granular-rules">
        
      </a>
    </div>
    <p><b>Flexible filters.</b> You can now write rate limiting rules using all the fields of the HTTP request. For example, you can trigger a rule for requests with specific headers (such as User Agent) or throttle traffic from bots sharing the same ASN.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6jlTSXDikimPc7kIb8Yj5z/1e8498567d467a2310891306ffef1d4f/image3-19.png" />
            
            </figure><p><b>Separate mitigation expression.</b> You can now separate the mitigation expression from the counting expression. This allows you to define on what part of your website you want to block users once the threshold is reached, and what conditions the request (and response) needs to meet in order to increase the counter. For example, you can count requests to your <code>/login</code> endpoint and then block the same user on the whole site. This is especially useful when you want to include response fields in your counting expression, for example, by counting only requests that return a specific response code but then block a larger portion of traffic.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/p43VNOCn2MV2I1xJmOAM2/69dc9fbf784c1bc33a76fc3ff79e686c/image2-40.png" />
            
            </figure><p><b>Use dynamic fields.</b> Customers can now combine Rate Limiting with rules detecting known vulnerabilities, such as <a href="/waf-ml/">WAF machine learning score</a>. For example, you can block eyeballs after a number of consecutive requests flagged as SQLi have hit your site. Another use case is to trigger a throttling rule only for requests likely originated from bots (by using the bot score in the rule filter) or after a number of login attempts with stolen credentials have been performed (<a href="https://developers.cloudflare.com/waf/managed-rulesets/exposed-credentials-check">link</a>). You can also use the JA3 fingerprint as a counting dimension, so that you leverage our Bot Machine Learning algorithm to bucket traffic from bots with the same fingerprint.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/28PgBzrw0RSnTEBdPRazR8/ed289896eccaf20b68385208081ae528/image4-4.png" />
            
            </figure>
    <div>
      <h3>Use case - Protect APIs by integrating Rate Limiting with your application</h3>
      <a href="#use-case-protect-apis-by-integrating-rate-limiting-with-your-application">
        
      </a>
    </div>
    <p><b>Count requests based on session ID.</b> API traffic is often authenticated, and the session can be tracked with a cookie, header (such as <code>x-api-key</code>) or query value. Advanced Rate Limiting allows you to define where the ID is in the request and track the number of requests relative to the same session, regardless of the IP. This can be an effective way to fend off distributed bot attacks that scrape sensitive data, such as product prices or airline passenger data.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2TWf8VzKMQTdl3DIQvCbpw/3505e5b768af0506ffc0a30028dcfc32/image5-5.png" />
            
            </figure><p><b>Trigger rule based on a request body content.</b> The rule filter gives access to the raw body and the JSON-parsed body. You can count requests where a body JSON field has a specific value using the function <code>lookup_json_string</code> available in the rule filter. This can be useful for GraphQL APIs, where different calls (or mutations) can be performed through the same endpoint but specifying different operations in the request body.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1R8vFFvmCerK66QUvqq5ti/f7c7c139682643a175157078ea0dafdc/image6-1.png" />
            
            </figure><p><b>Rate Limiting based on complexity (coming soon in beta available now via API)</b>. Some API calls are more complex to serve than others, so counting on the number of requests doesn’t really reflect the actual cost to serve. GraphQL APIs are an example: each call complexity can vary widely based on how much processing the server needs to carry out to serve the request. Your origin can estimate the complexity of each request and return it along with the response, and rate limiting can increment the counter by the complexity estimate provided by the origin. You can then set a complexity threshold in the rule and, when it’s exceeded, subsequent requests will trigger an action, such as block.</p>
    <div>
      <h2>Packaging</h2>
      <a href="#packaging">
        
      </a>
    </div>
    <p>Advanced Rate Limiting is generally available for Enterprise customers on the new Advanced plan. See below for more details on what’s included in each plan. Reach out to your Cloudflare account team or Customer Success Manager (CSM) to learn more. If you are a Pro or Biz customer, you won’t be able to use Advanced Rate Limiting, but we are planning to give some advantages to Pro and Biz plans as well.</p><table><tr><td><p><b></b></p></td><td><p><b>Enterprise Core</b></p></td><td><p><b>Enterprise Advanced</b></p></td></tr><tr><td><p>Available request fields in filter</p></td><td><p>Selected standard fields:
URL
Method
Headers
Source IP</p></td><td><p>All standard fields
Body fields
Account takeover fields
Dynamic fields (including Bot Score*)</p></td></tr><tr><td><p>Available response fields in counting filter</p></td><td><p>Response code
Response Headers</p></td><td><p>Response code
Response Headers</p></td></tr><tr><td><p>Counting characteristics</p></td><td><p>IP</p></td><td><p>IP
IP with NAT awareness
ASN
Country
Headers
Cookie
Query
JA3*</p></td></tr><tr><td><p>Complexity</p></td><td><p>No</p></td><td><p>Yes</p></td></tr><tr><td><p>Maximum sampling period</p></td><td><p>10 minutes</p></td><td><p>1 hour</p></td></tr></table><p>*requires Bot Management plan</p>
    <div>
      <h2>What’s next for Rate Limiting</h2>
      <a href="#whats-next-for-rate-limiting">
        
      </a>
    </div>
    <p>In the coming months, we are going to collect feedback from our customers to decide what additional features we should include in Advanced Rate Limiting. We have already a few ideas we are exploring, including automatically profiling your traffic and recommending thresholds for your rules.</p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[Rate Limiting]]></category>
            <guid isPermaLink="false">4nxAgcAukSta8FUP81RKVB</guid>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Security for SaaS providers]]></title>
            <link>https://blog.cloudflare.com/waf-for-saas/</link>
            <pubDate>Tue, 15 Mar 2022 12:59:14 GMT</pubDate>
            <description><![CDATA[ Today, we’re excited to give our SaaS providers new tools that will help them enhance the security of their customers’ applications ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Some of the largest Software-as-a-Service (SaaS) providers use Cloudflare as the underlying infrastructure to provide their customers with fast loading times, unparalleled redundancy, and the strongest security — all through our <a href="/cloudflare-for-saas/">Cloudflare for SaaS</a> product. Today, we’re excited to give our SaaS providers new tools that will help them enhance the security of their customers’ applications.</p><p>For our Enterprise customers, we’re bringing WAF for SaaS — the ability for SaaS providers to easily create and deploy different sets of WAF rules for their customers. This gives SaaS providers the ability to segment customers into different groups based on their security requirements.</p><p>For developers who are getting their application off the ground, we’re thrilled to announce a Free tier of Cloudflare for SaaS for the Free, Pro, and Biz plans, giving our customers 100 custom hostnames free of charge to provision and test across their account. In addition to that, we want to make it easier for developers to scale their applications, so we’re happy to announce that we are lowering our custom hostname price from \$2 to \$0.10 a month.</p><p>But that’s not all! At Cloudflare, we believe security should be available for all. That’s why we’re extending a new selection of <a href="/waf-for-everyone/">WAF rules to Free customers</a> — giving all customers the ability to secure both their applications and their customers’.</p>
    <div>
      <h2>Making SaaS infrastructure available to all</h2>
      <a href="#making-saas-infrastructure-available-to-all">
        
      </a>
    </div>
    <p>At Cloudflare, we take pride in our Free tier which gives any customer the ability to make use of our Network to stay secure and online. We are eager to extend the same support to customers looking to build a new SaaS offering, giving them a Free tier of Cloudflare for SaaS and allowing them to onboard 100 custom hostnames at no charge. The 100 custom hostnames will be automatically allocated to new and existing Cloudflare for SaaS customers. Beyond that, we are also dropping the custom hostname price from \$2 to \$0.10 a month, giving SaaS providers the power to onboard and scale their application. Existing Cloudflare for SaaS customers will see the updated custom hostname pricing reflected in their next billing cycle.</p><p>Cloudflare for SaaS started as a <a href="https://www.cloudflare.com/application-services/products/ssl-for-saas-providers/">TLS certificate issuance product for SaaS providers</a>. Now, we’re helping our customers go a step further in keeping their customers safe and secure.</p>
    <div>
      <h2>Introducing WAF for SaaS</h2>
      <a href="#introducing-waf-for-saas">
        
      </a>
    </div>
    <p>SaaS providers may have varying customer bases — from mom-and-pop shops to well established banks. No matter the customer, it's important that as a SaaS provider you’re able to extend the best protection for your customers, regardless of their size.</p><p>At Cloudflare, we have spent years building out the best Web Application Firewall for our customers. From managed rules that offer advanced zero-day vulnerability protections to OWASP rules that block popular attack techniques, we have given our customers the best tools to keep themselves protected. Now, we want to hand off the tools to our SaaS providers who are responsible for keeping their customer base safe and secure.</p><p>One of the benefits of Cloudflare for SaaS is that SaaS providers can configure security rules and settings on their SaaS zone which their customers automatically inherit. But one size does not fit all, which is why we are excited to give Enterprise customers the power to create various sets of WAF rules that they can then extend as different security packages to their customers — giving end users differing levels of protection depending on their needs.</p>
    <div>
      <h2>Getting Started</h2>
      <a href="#getting-started">
        
      </a>
    </div>
    <p>WAF for SaaS can be easily set up. We have an example below that shows how you can configure different buckets of WAF rules to your various customers.</p><p>There’s no limit to the number of rulesets that you can create, so feel free to create a handful of configurations for your customers, or deploy one ruleset per customer — whatever works for you!</p>
    <div>
      <h2>End-to-end example</h2>
      <a href="#end-to-end-example">
        
      </a>
    </div>
    
    <div>
      <h3>Step 1 - Define custom hostname</h3>
      <a href="#step-1-define-custom-hostname">
        
      </a>
    </div>
    <p>Cloudflare for SaaS customers define their customer’s domains by creating custom hostnames. Custom hostnames indicate which domains need to be routed to the SaaS provider’s origin. Custom hostnames can define specific domains, like <code>example.com</code>, or they can extend to wildcards like <code>*.example.com</code> which allows subdomains under example.com to get routed to the SaaS service. WAF for SaaS supports both types of custom hostnames, so that SaaS providers have flexibility in choosing the scope of their protection.</p><p>The first step is to create a custom hostname to define your customer’s domain. This can be done through the dashboard or the API.</p>
            <pre><code>curl -X POST "https://api.cloudflare.com/client/v4/zones/{zone:id}/custom_hostnames" \
     -H "X-Auth-Email: {email}" -H "X-Auth-Key: {key}"\
     -H "Content-Type: application/json" \
     --data '{

"Hostname":{“example.com”},
"Ssl":{wildcard: true}
}'</code></pre>
            
    <div>
      <h3>Step 2 - Associate custom metadata to a custom hostname</h3>
      <a href="#step-2-associate-custom-metadata-to-a-custom-hostname">
        
      </a>
    </div>
    <p>Next, create an association between the custom hostnames — your customer’s domain — and the firewall ruleset that you’d like to attach to it.</p><p>This is done by associating a JSON blob to a custom hostname. Our product, <a href="https://developers.cloudflare.com/ssl/ssl-for-saas/hostname-specific-behavior/custom-metadata/">Custom Metadata</a> allows customers to easily do this via API.</p><p>In the example below, a JSON blob with two fields (“customer_id” and “security_level”) will be associated to each request for <code>*.example.com</code> and <code>example.com</code>.</p><p>There is no predetermined schema for custom metadata. Field names and structure are fully customisable based on our customer’s needs. In this example, we have chosen the tag “security_level” to which we expect to assign three values (low, medium or high). These will, in turn, trigger three different sets of rules.</p>
            <pre><code>curl -sXPATCH "https://api.cloudflare.com/client/v4/zones/{zone:id}/custom_hostnames/{custom_hostname:id}"\
    -H "X-Auth-Email: {email}" -H "X-Auth-Key: {key}"\
    -H "Content-Type: application/json"\
    -d '{
"Custom_metadata":{
"customer_id":"12345",
“security_level”: “low”
}
}'</code></pre>
            
    <div>
      <h3>Step 3 - Trigger security products based on tags</h3>
      <a href="#step-3-trigger-security-products-based-on-tags">
        
      </a>
    </div>
    <p>Finally, you can trigger a rule based on the custom hostname. The custom metadata field e.g. “security_level” is available in the Ruleset Engine where the WAF runs. In this example, “security_level” can be used to trigger different configurations of products such as WAF, Firewall Rules, Advanced Rate Limiting and Transform Rules.</p><p>Rules can be built through the dashboard or via the API, as shown below. Here, a rate limiting rule is triggered on traffic with “security_level” set to <i>low</i>.</p>
            <pre><code>curl -X PUT "https://api.cloudflare.com/client/v4/zones/{zone:id}/rulesets/phases/http_ratelimit/entrypoint" \
    -H "X-Auth-Email: {email}" -H "X-Auth-Key: {key}"\
    -H "Content-Type: application/json"\
    -d '{

"rules": [
              {
                "action": "block",
                "ratelimit": {
                  "characteristics": [
                    "cf.colo.id",
                    "ip.src"
                  ],
                  "period": 10,
                  "requests_per_period": 2,
                  "mitigation_timeout": 60
                },
                "expression": "lookup_json_string(cf.hostname.metadata, \"security_level\") eq \"low\" and http.request.uri contains \"login\""
              }
            ]
          }}'</code></pre>
            <p>If you’d like to learn more about our Advanced Rate Limiting rules, check out our <a href="https://developers.cloudflare.com/waf/custom-rules/rate-limiting/">documentation</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3t61u0EnyFpfimgd7J5QPr/14082a32a9be92818d799d478c6f8671/image2-30.png" />
            
            </figure>
    <div>
      <h2>Conclusion</h2>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>We’re excited to be the provider for our SaaS customers’ infrastructure needs. From custom domains to T<a href="https://www.cloudflare.com/application-services/products/ssl/">LS certificates</a> to Web Application Firewall, we’re here to help. Sign up for Cloudflare for SaaS today, or if you’re an Enterprise customer, reach out to your account team to get started with WAF for SaaS.</p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[SaaS]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">79TXyqtoUwmas0NhL6XYHn</guid>
            <dc:creator>Dina Kozlov</dc:creator>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Improving the WAF with Machine Learning]]></title>
            <link>https://blog.cloudflare.com/waf-ml/</link>
            <pubDate>Tue, 15 Mar 2022 12:59:10 GMT</pubDate>
            <description><![CDATA[ Today we are excited to complement managed rulesets (such as OWASP and Cloudflare Managed) with a new tool aimed at identifying bypasses and malicious payloads without human involvement, and before they are exploited ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Cloudflare handles 32 million HTTP requests per second and is used by more than 22% of all the websites whose web server is known by <a href="https://w3techs.com/technologies/details/ws-cloudflare">W3Techs</a>. Cloudflare is in the unique position of protecting traffic for 1 out of 5 Internet properties which allows it to identify threats as they arise and track how these evolve and mutate.</p><p>The Web Application Firewall (WAF) sits at the core of Cloudflare's security toolbox and  Managed Rules are a key feature of the <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">WAF</a>. They are a collection of rules created by Cloudflare’s analyst team that block requests when they show patterns of known attacks. These managed rules work extremely well for patterns of established attack vectors, as they have been extensively tested to minimize both false negatives (missing an attack) and false positives (finding an attack when there isn’t one). On the downside, managed rules often miss attack variations (also known as bypasses) as static regex-based rules are intrinsically sensitive to signature variations introduced, for example, by fuzzing techniques.</p><p>We witnessed this issue when we released <a href="/exploitation-of-cve-2021-44228-before-public-disclosure-and-evolution-of-waf-evasion-patterns/">protections for log4j</a>. For a few days, after the vulnerability was made public, we had to constantly update the rules to match variations and mutations as attackers tried to bypass the WAF. Moreover, optimizing rules requires significant human intervention, and it usually works only after bypasses have been identified or even exploited, making the protection reactive rather than proactive.</p><p>Today we are excited to complement managed rulesets (such as OWASP and Cloudflare Managed) with a new tool aimed at identifying bypasses and malicious payloads without human involvement, and before they are exploited. Customers can now access signals from a <a href="https://www.cloudflare.com/learning/ai/what-is-machine-learning/">machine learning model</a> trained on the good/bad traffic as classified by managed rules and augmented data to provide better protection across a broader range of old and new attacks.</p><p>Welcome to our new Machine Learning WAF detection.</p><p>The new detection is available in Early Access for Enterprise, Pro and Biz customers. Please <a href="https://www.cloudflare.com/lp/waf-ml/">join the waitlist</a> if you are interested in trying it out. More information on pricing and packaging will be released when the feature will be generally available.</p>
    <div>
      <h3>Improving the WAF with learning capabilities</h3>
      <a href="#improving-the-waf-with-learning-capabilities">
        
      </a>
    </div>
    <p>The new detection system complements existing managed rulesets by providing three major advantages:</p><ol><li><p>It runs on all of your traffic. Each request is scored based on the likelihood that it contains a SQLi or <a href="https://www.cloudflare.com/learning/security/threats/cross-site-scripting/">XSS attack</a>, for example. This enables a new WAF analytics experience that allows you to explore trends and patterns in your overall traffic.</p></li><li><p>Detection rate improves based on past traffic and feedback. The model is trained on good and bad traffic as categorized by managed rules across all Cloudflare traffic. This allows small sites to get the same level of protection as the largest Internet properties.</p></li><li><p>A new definition of performance. The machine learning engine identifies bypasses and anomalies before they are exploited or identified by human researchers.</p></li></ol><p>The secret sauce is a combination of innovative machine learning modeling, a vast training dataset built on the attacks we block daily as well as data augmentation techniques, the right evaluation and testing framework based on the behavioral testing principle and cutting-edge engineering that allows us to assess each request with negligible latency.</p>
    <div>
      <h3>A new WAF experience</h3>
      <a href="#a-new-waf-experience">
        
      </a>
    </div>
    <p>The new detection is based on the paradigm launched with <a href="/introducing-bot-analytics/">Bot Analytics</a>. Following this approach, each request is evaluated, and a score assigned, regardless of whether we are taking actions on it. Since we score every request, users can visualize how the score evolves over time for the entirety of the traffic directed to their server.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4QkWbUsXN3lFzVRG8OuvOP/1b3376efde40ba359c0f7611c0ff1e7c/image3-11.png" />
            
            </figure><p>Furthermore, users can visualize the histogram of how requests were scored for a specific attack vector (such as SQLi) and find what score is a good value to separate good from bad traffic.</p><p>The actual <a href="https://www.cloudflare.com/learning/security/threats/how-to-prevent-sql-injection/">mitigation</a> is performed with custom WAF rules where the score is used to decide which requests should be blocked. This allows customers to create rules whose logic includes any parameter of the HTTP requests, including the dynamic fields populated by Cloudflare, such as bot scores.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5Mwj5N1m1dvlx3Z65rSUjA/5bbd9960effb94af5226a3fdc0c0d873/image2-29.png" />
            
            </figure><p>We are now looking at extending this approach to work for the managed rules too (OWASP and Cloudflare Managed). Customers will be able to identify trends and create rules based on patterns that are visible when looking at their overall traffic; rather than creating rules based on trial and error, log traffic to validate them and finally enforce protection.</p>
    <div>
      <h3>How does it work?</h3>
      <a href="#how-does-it-work">
        
      </a>
    </div>
    <p>Machine learning–based detections complement the existing managed rulesets, such as OWASP and Cloudflare Managed. The system is based on models designed to identify variations of attack patterns and anomalies without the direct supervision of researchers or the end user.</p><p>As of today, we expose scores for two attack vectors: SQL injection and Cross Site Scripting. Users can create custom WAF/Firewall rules using three separate scores: a total score (<code>cf.waf.ml.score</code>), one for SQLi and one for XSS (<code>cf.waf.ml.score.sqli</code>, <code>cf.waf.ml.score.xss</code>, respectively). The scores can have values between 1 and 99, with 1 being definitely malicious and 99 being valid traffic.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2L5nEecwBOfJNrWlLAmW7n/81c3454f461d1bd4a1bc07801729a555/image4-1.png" />
            
            </figure><p>The model is then trained based on traffic classified by the existing WAF rules, and it works on a transformed version of the original request, making it easier to identify fingerprints of attacks.</p><p>For each request, the model scores each part of the request independently so that it’s possible to identify where malicious payloads were identified, for example, in the body of the request, the URI or headers.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/36nH3d4BUBlVDtBUGwulaP/152add49afbc256f0f38d52476c227da/image1-30.png" />
            
            </figure><p>This looks easy on paper, but there are a number of challenges that Cloudflare engineers had to solve to get here. This includes how to build a reliable dataset, scalable data labeling, selecting the right model architecture, and the requirement for executing the categorization on <i>every</i> request processed by Cloudflare’s global network (i.e. 32 million times per seconds).</p><p>In the coming weeks, the Engineering team will publish a series of blog posts which will give a better understanding of how the solution works under the hood.</p>
    <div>
      <h3>Looking forward</h3>
      <a href="#looking-forward">
        
      </a>
    </div>
    <p>In the next months, we are going to release the new detection engine to customers and collect their feedback on its performance. Long term, we are planning to extend the detection engine to cover all attack vectors already identified by managed rules and use the attacks blocked by the machine learning model to further improve our managed rulesets.</p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[AI]]></category>
            <guid isPermaLink="false">4l4uCwilJTZuO2KNJtpufU</guid>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[A new WAF experience]]></title>
            <link>https://blog.cloudflare.com/new-waf-experience/</link>
            <pubDate>Tue, 15 Mar 2022 12:59:06 GMT</pubDate>
            <description><![CDATA[ The security landscape is moving fast. We invited users to help us shape a new WAF experience that enables us to evolve WAF to meet their demands and use cases ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5AshmKNvJcvQs9VcqUCAp8/b5128c88e4eb56e13d06b710e2b9861b/image2-28.png" />
            
            </figure><p>Around three years ago, we brought multiple features into the <a href="/new-firewall-tab-and-analytics/">Firewall tab</a> in our dashboard navigation, with the motivation “to make our products and services intuitive.” With our hard work in <a href="/tag/waf/">expanding capabilities offerings</a> in the past three years, we want to take another opportunity to evaluate the intuitiveness of <a href="https://www.cloudflare.com/waf/">Cloudflare WAF (Web Application Firewall)</a>.</p>
    <div>
      <h3>Our customers lead the way to new WAF</h3>
      <a href="#our-customers-lead-the-way-to-new-waf">
        
      </a>
    </div>
    <p>The security landscape is moving fast; types of web applications are growing rapidly; and within the industry there are various approaches to what a <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">WAF</a> includes and can offer. Cloudflare not only proxies enterprise applications, but also millions of personal blogs, community sites, and small businesses stores. The diversity of use cases are covered by various products we offer; however, these products are currently scattered and that makes visibility of active protection rules unclear. This pushes us to reflect on how we can best support our customers in getting the most value out of WAF by providing a clearer offering that meets expectations.</p><p>A few months ago, we reached out to our customers to answer a simple question: what do you consider to be part of WAF? We employed a range of user research methods including card sorting, tree testing, design evaluation, and surveys to help with this. The results of this research illustrated how our customers think about WAF, what it means to them, and how it supports their use cases. This inspired the product team to expand scope and contemplate what (Web Application) Security means, beyond merely the WAF.</p><p>Based on what hundreds of customers told us, our user research and product design teams collaborated with product management to rethink the security experience. We examined our assumptions and assessed the effectiveness of design concepts to create a structure (or information architecture) that reflected our customers’ mental models.</p><p>This new structure consolidates firewall rules, managed rules, and rate limiting rules to become a part of WAF. The new WAF strives to be the one-stop shop for web application security as it pertains to differentiating malicious from clean traffic.</p><p>As of today, you will see the following changes to our navigation:</p><ol><li><p><b>Firewall</b> is being renamed to <b>Security.</b></p></li><li><p>Under <b>Security,</b> you will now find <b>WAF.</b></p></li><li><p>Firewall rules, managed rules, and rate limiting rules will now appear under <b>WAF</b>.</p></li></ol><blockquote><p>From now on, when we refer to <b>WAF,</b> we will be referring to above three features.</p></blockquote><p>Further, some important updates are coming for these features. Advanced rate limiting rules will be launched as part of <a href="/welcome-security-week-2022/">Security Week</a>, and every customer will also get a free set of managed rules to <a href="/waf-for-everyone">protect all traffic from high profile vulnerabilities</a>. And finally, in the next few months, firewall rules will move to the <a href="https://developers.cloudflare.com/ruleset-engine/">Ruleset Engine</a>, adding more powerful capabilities thanks to the new Ruleset API. Feeling excited?</p>
    <div>
      <h3>How customers shaped the future of WAF</h3>
      <a href="#how-customers-shaped-the-future-of-waf">
        
      </a>
    </div>
    <p>Almost 500 customers participated in this user research study that helped us learn about needs and context of use. We employed four research methods, all of which were conducted in an unmoderated manner; this meant people around the world could participate remotely at a time and place of their choosing.</p><ul><li><p>Card sorting involved participants grouping navigational elements into categories that made sense to them.</p></li><li><p>Tree testing assessed how well or poorly a proposed navigational structure performed for our target audience.</p></li><li><p>Design evaluation involved a task-based approach to measure effectiveness and utility of design concepts.</p></li><li><p>Survey questions helped us dive deeper into results, as well as painting a picture of our participants.</p></li></ul><p>Results of this four-pronged study informed changes to both WAF and Security that are detailed below.</p>
    <div>
      <h3>The new WAF experience</h3>
      <a href="#the-new-waf-experience">
        
      </a>
    </div>
    <p>The final result reveals the WAF as part of a broader <a href="https://dash.cloudflare.com/?to=/:account/:zone/security">Security category</a>, which also includes Bots, DDoS, API Shield and Page Shield. This destination enables you to create your rules (a.k.a. firewall rules), deploy Cloudflare managed rules, set rate limit conditions, and includes handy tools to protect your web applications.</p><p>All customers across <a href="https://www.cloudflare.com/plans/">all plans</a> will now see the WAF products organized as below:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/777dWCpcmkac0c5KHZz4jp/6728da9e7d713d567a524faeb7f0b905/image1-29.png" />
            
            </figure><ol><li><p><b>Firewall rules</b> allow you to create custom, user-defined logic by blocking or allowing traffic that leverages all the components of the HTTP requests and dynamic fields computed by Cloudflare, such as Bot score.</p></li><li><p><b>Rate limiting rules</b> include the traditional IP-based product we launched back in 2018 and the newer Advanced Rate Limiting for ENT customers on the Advanced plan (coming soon).</p></li><li><p><b>Managed rules</b> allows customers to deploy sets of rules managed by the Cloudflare analyst team. These rulesets include a “Cloudflare Free Managed Ruleset” currently being rolled out <a href="/waf-for-everyone">for all plans</a> including FREE, as well as Cloudflare Managed, OWASP implementation, and Exposed Credentials Check for all paying plans.</p></li><li><p><b>Tools</b> give access to IP Access Rules, Zone Lockdown and User Agent Blocking. Although still actively supported, these products cover specific use cases that can be covered using firewall rules. However, they remain a part of the WAF toolbox for convenience.</p></li></ol>
    <div>
      <h3>Redesigning the WAF experience</h3>
      <a href="#redesigning-the-waf-experience">
        
      </a>
    </div>
    <p>Gestalt design principles suggest that “elements which are close in proximity to each other are perceived to share similar functionality or traits.” This principle in addition to the input from our customers informed our design decisions.</p><p>After reviewing the responses of the study, we understood the importance of making it easy to find the security products in the Dashboard, and the need to make it clear how particular products were related to or worked together with each other.</p><p>Crucially, the page needed to:</p><ul><li><p>Display each type of rule we support, i.e. firewall rules, rate limiting rules and managed rules</p></li><li><p>Show the usage amount of each type</p></li><li><p>Give the customer the ability to add a new rule and manage existing rules</p></li><li><p>Allow the customer to reprioritise rules using the existing drag and drop behavior</p></li><li><p>Be flexible enough to accommodate future additions and consolidations of WAF features</p></li></ul><p>We iterated on multiple options, including predominantly vertical page layouts, table based page layouts, and even accordion based page layouts. Each of these options, however, would force us to replicate buttons of similar functionality on the page. With the risk of causing additional confusion, we abandoned these options in favor of a horizontal, tabbed page layout.</p>
    <div>
      <h3>How can I get it?</h3>
      <a href="#how-can-i-get-it">
        
      </a>
    </div>
    <p>As of today, we are launching this new design of WAF to everyone! In the meantime, we are updating documentation to walk you through how to maximize the power of Cloudflare WAF.</p>
    <div>
      <h3>Looking forward</h3>
      <a href="#looking-forward">
        
      </a>
    </div>
    <p>This is a starting point of our journey to make Cloudflare WAF not only powerful but also easy to adapt to your needs. We are evaluating approaches to empower your decision-making process when protecting your web applications. Among growing intel information and more rules creation possibilities, we want to shorten your path from a possible threat detection (such as by security overview) to setting up the right rule to mitigate such threat. Stay tuned!</p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Firewall]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Product Design]]></category>
            <category><![CDATA[Design]]></category>
            <guid isPermaLink="false">2UUR6KEw3qV6N5GMCAV7eS</guid>
            <dc:creator>Zhiyuan Zheng</dc:creator>
            <dc:creator>Mru Kodali</dc:creator>
            <dc:creator>Syeef Karim</dc:creator>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Landscape of API Traffic]]></title>
            <link>https://blog.cloudflare.com/landscape-of-api-traffic/</link>
            <pubDate>Wed, 26 Jan 2022 13:59:09 GMT</pubDate>
            <description><![CDATA[ More than 50% of all traffic processed by Cloudflare is API-based, and it’s growing twice as fast as traditional web traffic. This growth calls for the development of dedicated security solutions. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>In recent years we have witnessed an explosion of Internet-connected applications. Whether it is a new mobile app to find your soulmate, the latest wearable to monitor your vitals, or an industrial solution to detect corrosion, our life is becoming packed with connected systems.</p><p>How is the Internet changing because of this shift? This blog provides an overview of how Internet traffic is evolving as <a href="https://www.cloudflare.com/learning/security/api/what-is-an-api/">Application Programming Interfaces (APIs)</a> have taken the centre stage among the communication technologies. With help from the <a href="https://radar.cloudflare.com/">Cloudflare Radar</a> team, we have harnessed the data from our global network to provide this snapshot of global APIs in 2021.</p><p>The huge growth in API traffic comes at a time when Cloudflare has been introducing new technologies that protect applications from nascent threats and vulnerabilities. The release of <a href="/introducing-api-shield/">API Shield</a> with <a href="https://developers.cloudflare.com/api-shield/products/api-discovery">API Discovery</a>, <a href="/protecting-apis-from-abuse-and-data-exfiltration/">Schema Validation</a>, <a href="/protecting-apis-from-abuse-and-data-exfiltration/">mTLS</a> and <a href="/api-abuse-detection/">API Abuse Detection</a> has provided customers with a set of tools designed to protect their applications and data based on how APIs work and their challenges.</p><p>We are also witnessing increased adoption of new protocols. Among encryption protocols, for example, TLS v1.3 has become the most used protocol for APIs on Cloudflare while, for transport protocols, we saw an uptake of QUIC and gRPC (Cloudflare support announced in <a href="/the-quicening/">2018</a> and <a href="/announcing-grpc/">2020</a> respectively).</p><p>In the following sections we will quantify the growth of APIs and identify key industries affected by this shift. We will also look at the data to better understand the source and type of traffic we see on our network including how much malicious traffic our security systems block.</p>
    <div>
      <h2>Why is API use exploding?</h2>
      <a href="#why-is-api-use-exploding">
        
      </a>
    </div>
    <p>By working closely with our customers and observing the broader trends and data across our network in application security, we have identified three main trends behind API adoption: how applications are built is changing, API-first businesses are thriving, and finally machine-to-machine and human-to-machine communication is evolving.</p><p>During the last decade, APIs became popular because they allowed developers to separate backend and frontend, thus creating applications with better user experience. The <a href="https://www.cloudflare.com/learning/performance/what-is-jamstack/">Jamstack architecture</a> is the most recent trend highlighting this movement, where technologies such as JavaScript, APIs and markup are being used to create responsive and high-performance applications. The growth of microservices and serverless architectures are other drivers behind using efficient HTTP-powered application interfaces.</p><p>APIs are also enabling companies to innovate their business models. Across many industries there is a trend of modularizing complex processes by integrating self-contained workflows and operations. The product has become the service delivered via APIs, allowing companies to scale and monetize their new capabilities. Financial Services is a prime example where a monolithic industry with vertically integrated service providers is giving way to a more fragmented landscape. The new Open Banking standard (<a href="https://ec.europa.eu/info/law/payment-services-psd-2-directive-eu-2015-2366_en">PSD2</a>) is an example of how small companies can provide modular financial services that can be easily integrated into larger applications. Companies like <a href="https://truelayer.com/">TrueLayer</a> have productized APIs, allowing <a href="https://www.cloudflare.com/ecommerce/">e-commerce organizations</a> to onboard new sellers to a marketplace within seconds or to <a href="https://www.cloudflare.com/solutions/ecommerce/optimization/">deliver more efficient payment options</a> for their customers. A similar shift is happening in the logistics industry as well, where <a href="https://goshippo.com/">Shippo</a> allows the same e-commerce companies to integrate with services to initiate deliveries, print labels, track goods and streamline the returns process. And of course, everything is powered by APIs.</p><p>Finally, the increase of connected devices such as wearables, sensors and robots are driving more APIs, but another aspect of this is the way manual and repetitive tasks are being automated. Infrastructure-as-Code is an example of relying on APIs to replace manual processes that have been used to manage Internet Infrastructure in the past. Cloudflare is itself a product of this trend as our solutions allow customers to <a href="https://developers.cloudflare.com/terraform/">use services like Terraform</a> to configure how their infrastructure should work with our products.</p>
    <div>
      <h2>Labelling traffic</h2>
      <a href="#labelling-traffic">
        
      </a>
    </div>
    <p>The data presented in the following paragraphs is based on the total traffic proxied by Cloudflare and traffic is classified according to the Content-Type header generated in the response phase. Only requests returning a 200 response were included in the analysis except for the analysis in the ‘Security’ section where other error codes were included. Traffic generated by identified bots is not included.</p><p>When looking at trends, we compare data from the first week of February 2021 to the first week of December 2021. We chose these dates to compare how traffic changed over the year but excluding January which is affected by the holiday season.</p><p>Specifically, API traffic is labelled based on responses with types equal <code>application/json</code>, <code>application/xml</code>, and <code>text/xml</code>, while Web accounts for <code>text/html</code>, <code>application/x-javascript</code>, <code>application/javascript</code>, <code>text/css</code>, and <code>text/javascript</code>. Requests categorised as Text are <code>text/plain</code>; Binary are <code>application/octet-stream</code>; Media includes all image types, video and audio.</p><p>Finally, <code>Other</code> catches everything that doesn’t clearly fall into the labels above, which includes <code>empty</code> and <code>unknown</code>. Part of this traffic might be API and the categorisation might be missing due to the client or server not adding a Content-Type header.</p>
    <div>
      <h2>API use in 2021</h2>
      <a href="#api-use-in-2021">
        
      </a>
    </div>
    <p>We begin by examining the current state of API traffic at our global network and the types of content served. During the first week of December 2021, API calls represented 54% of total requests, up from 52% during the first week of February 2021.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/37yKfwWqrPzDZe9NQEocFZ/7b07f16cdccc296709f3b44622821e22/image8-20.png" />
            
            </figure><p>When looking at individual data types, API was by far the fastest growing data type (+21%) while Web only grew by 10%. Media (such as images and videos) grew just shy of 15% while binary was the only traffic that in aggregate experienced a reduction of 6%.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4i6Hv8Nmwm3kGHZC5Vgx4t/073e3635e8da3975bd49bd8a91c8585a/image4-16.png" />
            
            </figure><p>In summary, APIs have been one of the drivers of the traffic growth experienced by the Cloudflare network in 2021. APIs account for more than half of the total traffic generated by end users and connected devices, and they’re growing twice as fast as traditional web traffic.</p>
    <div>
      <h3>New industries are contributing to this increase</h3>
      <a href="#new-industries-are-contributing-to-this-increase">
        
      </a>
    </div>
    <p>We analysed where this growth comes from in terms of industry and application types. When looking at the total volume of API traffic, unsurprisingly the general Internet and Software industry accounts for almost 40% of total API traffic in 2021. The second-largest industry in terms of size is Cryptocurrency (7% of API traffic) followed by Banking and Retail (6% and 5% of API traffic respectively).</p><p>The following chart orders industries according to their API traffic growth. Banking, Retail and Financial Services have experienced the largest year-on-year growth with 70%, 51% and 50% increases since February 2021, respectively.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/684xjXwbWwQRrUag1ndbAm/49ceba496f736f5e4751cae33a41cbd0/image9-12.png" />
            
            </figure><p>The growth of Banking and Financial Services' traffic is aligned with the trends we have observed anecdotally in the sector. The industry has seen the entrance of a number of new platforms that aggregate accounts from different providers, streamline transactions, or allow investing directly from apps, all of which rely heavily on APIs. The new “challenger banks” movement is an example where newer startups are offering captivating mobile services based on APIs while putting pressure on larger institutions to modernise their infrastructure and applications.</p>
    <div>
      <h2>A closer look at the API characteristics</h2>
      <a href="#a-closer-look-at-the-api-characteristics">
        
      </a>
    </div>
    <p>Generally speaking, a RESTful API request is a call to invoke a function. It includes the address of a specific resource (the endpoint) and the action you want to perform on that resource (method). A payload might be present to carry additional data and HTTP headers might be populated to add information about the origin of the call, what software is requesting data, requisite authentication credentials, etc. The method (or verb) expresses the action you want to perform, such as retrieve information (GET) or update information (POST).</p><p>It’s useful to understand the composition and origin of API traffic, such as the most commonly used methods, the most common protocol used to encode the payload, or what service generates traffic (like Web, mobile apps, or IoT). This information will help us identify the macro source of vulnerabilities and design and deploy the best tools to protect traffic.</p>
    <div>
      <h3>Methods</h3>
      <a href="#methods">
        
      </a>
    </div>
    <p>The vast majority of API traffic is the result of POST or GET requests (98% of all requests). POST itself accounts for 53.4% of all requests and GET 44.4%. Generally speaking, GET tends to transfer sensitive data in the HTTP request header, query and in the response body, while POST typically transfers data in the <a href="https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html">request header and body</a>. While many security tools apply to both of these types of calls, this distinction can be useful when deploying tools such as API Schema Validation (request and response) or Data Loss Prevention/Sensitive Data Detection (response), both <a href="/protecting-apis-from-abuse-and-data-exfiltration/">launched by Cloudflare</a> in March 2021.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3oIzN0rtru4RbDjA8gLPgL/02b9b2f4aab2b22bd1071c3b52ea8328/image10-10.png" />
            
            </figure>
    <div>
      <h3>Payload encoding review</h3>
      <a href="#payload-encoding-review">
        
      </a>
    </div>
    <p>API payloads encode data using different rules and languages that are commonly referred to as transport protocols. When looking at the breakdown between two of the most common protocols, JSON has by far the largest number of requests (~97%) while XML has a smaller share of requests as it still carries the heaviest traffic. In the following figure, JSON and XML are compared in terms of response sizes. XML is the most verbose protocol and the one handling the largest payloads while JSON is more compact and results in smaller payloads.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6SctBpazDhVqH8lvt90IYb/421a5e2f73b8d35af470a03459f5ed7a/image2-24.png" />
            
            </figure><p>Since we have started supporting gRPC (September 2020), we have seen a steady increase in gRPC traffic and many customers we speak with are in the planning stages of migrating from JSON to gRPC, or designing translation layers at the edge from external JSON callers to internal gRPC services.</p>
    <div>
      <h3>Source of API traffic</h3>
      <a href="#source-of-api-traffic">
        
      </a>
    </div>
    <p>We can look at the HTTP request headers to better understand the origin and intended use of the API. The User-Agent header allows us to identify what type of client made the call, and we can divide it into three broader groups: “browser”, “non-browser” and “unknown” (which indicates that the User-Agent header was not set).</p><p>About 38% of API calls are made by browsers as part of a web application built on top of backend APIs. Here, the browser loads an HTML page and populates dynamic fields by generating AJAX API calls against the backend service. This paradigm has become the de-facto standard as it provides an effective way to build dynamic yet flexible Web applications.</p><p>The next 56% comes from non-browsers, including mobile apps and IoT devices with a long tail of different types (wearables, connected sport equipment, gaming platforms and more). Finally, approximately 6% are “unknown” and since well-behaving browsers and tools like <a href="https://curl.se/">curl</a> send a User-Agent by default, one could attribute much of this unknown to programmatic or automated tools, some of which could be malicious.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7qeqIrgnMNxhYKb3ekZFhf/896b1085647de080a38cee6ecc0ecaed/image7-14.png" />
            
            </figure>
    <div>
      <h3>Encryption</h3>
      <a href="#encryption">
        
      </a>
    </div>
    <p>A key aspect of <a href="https://www.cloudflare.com/application-services/solutions/api-security/">securing APIs against snooping and tampering</a> is encrypting the session. Clients use <a href="https://www.cloudflare.com/application-services/products/ssl/">SSL/TLS</a> to authenticate the server they are connecting with, for example, by making sure it is truly their cryptocurrency vendor. The benefit of transport layer encryption is that after handshaking, all application protocol bytes are encrypted, providing both confidentiality and integrity assurances.</p><p>Cloudflare <a href="/introducing-tls-1-3/">launched the latest version of TLS (v1.3)</a> in September 2016, and it was <a href="/you-get-tls-1-3-you-get-tls-1-3-everyone-gets-tls-1-3/">enabled by default on some properties</a> in May 2018. When looking at API traffic today, TLS v1.3 is the most adopted protocol with 55.9% of traffic using it. The vulnerable v1.0  and v1.1 were <a href="https://datatracker.ietf.org/doc/html/rfc8996">deprecated in March 2021</a> and their use has virtually disappeared.</p><table><tr><td><p><b>Transport security protocol</b></p></td><td><p><b>December 2021</b></p></td></tr><tr><td><p>TLS 1.3</p></td><td><p>55.9%</p></td></tr><tr><td><p>TLS 1.2</p></td><td><p>32.7%</p></td></tr><tr><td><p>QUIC</p></td><td><p>8.4%</p></td></tr><tr><td><p>None</p></td><td><p>2.8%</p></td></tr><tr><td><p>TLS 1.0</p></td><td><p>0.3%</p></td></tr></table><p>The protocol that is growing fastest is QUIC. While QUIC can be used to carry many types of application protocols, Cloudflare has so far focused on <a href="https://www.cloudflare.com/learning/performance/what-is-http3/">HTTP/3</a>, the mapping of HTTP over IETF QUIC. We <a href="/the-quicening/">started supporting</a> draft versions of QUIC in 2018 and when QUIC version 1 was published as RFC 9000 in May 2021, we <a href="/quic-version-1-is-live-on-cloudflare/">enabled it for everyone</a> the next day. QUIC uses the TLS 1.3 handshake but has its own mechanism for protecting and securing packets. Looking at HTTP-based API traffic, we see HTTP/3 going from less than 3% in early February 2021 to more than 8% in December 2021. This growth broadly aligns RFC 9000 being published and during the periodHTTP/3 support being stabilized and enabled in a range of client implementations.</p><p>Mutual TLS, which is often used for mobile or IoT devices, accounts for 0.3% of total API traffic. Since we <a href="/introducing-tls-client-auth/">released the first version of mTLS</a> in 2017 we’ve seen a growing number of inquiries from users across all Cloudflare plans, as we have recently made it easier for customers to start using mTLS with Cloudflare <a href="/introducing-api-shield/">API Shield</a>. Customers can now use Cloudflare dashboard to <a href="https://www.cloudflare.com/application-services/solutions/certificate-lifecycle-management/">issue and manage certificates with one-click</a> avoiding all the complexity of having to manage a Private Key Infrastructure and root certificates themselves.</p><p>Finally, unencrypted traffic can provide a great opportunity for attackers to access plain communications. The total unencrypted API traffic dropped from 4.6% of total requests in early 2021 to 2.6% in December 2021. This represents a significant step forward in establishing basic security for all API connections.</p>
    <div>
      <h2>Security</h2>
      <a href="#security">
        
      </a>
    </div>
    <p>Given the huge amount of traffic that Cloudflare handles every second, we can look for trends in blocked traffic and identify common patterns in threats or attacks.</p><p>When looking at the Cloudflare security systems, an HTML request is twice as likely to be blocked than an API request. Successful response codes (200, 201, 301 and 302) account for 91% of HTML and 97% of API requests, while 4XX error codes (like 400, 403, 404) are generated for 2.8% of API calls as opposed to 7% of HTML. Calls returning 5XXs codes (such as Internal Server Error, Bad Gateway, Service Unavailable) are almost nonexistent for APIs (less than 0.2% of calls) while are almost 2% of requests for HTML.</p><p>The relatively larger volume of unmitigated API requests can be explained by the automated nature of APIs, for example more API calls are generated in order to render a page that would require a single HTML request. Malicious or malformed requests are therefore diluted in a larger volume of calls generated by well-behaving automated systems.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7EU8nQUjXvKSj3S72nO66X/2c7da9c082dbdf499f0bb5b6ebe8b3d8/image1-20.png" />
            
            </figure><p>We can further analyse the frequency of specific error codes to get a sense of what the most frequent malformed (and possibly malicious) requests are. In the following figure, we plot the share of a particular error code when compared to all 4XXs.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2IKN7Mb3ALR2tAveQm2S3n/f1e34b5872298269f103fc3d08eb771f/image5-16.png" />
            
            </figure><p>We can identify three groups of issues all equally likely (excluding the more obvious “404 Not Found” case): “400 Bad Request” (like malformed, invalid request), “429 Too Many Requests” (“Rate Limiting”), and the combination of Authentication and Authorization issues (“403 Forbidden” and “401 Unauthorized”). Those codes are followed by a long tail of other errors, including “422 Unprocessable Entity”, “409 Conflict”, and “402 Payment Required”.</p><p>This analysis confirms that the most common attacks rely on sending non-compliant requests, brute force efforts (24% of generated 4XXs are related to rate limiting), and accessing resources with invalid authentication or permission.</p><p>We can further analyse the reason why calls were blocked (especially relative to the 400s codes) by looking at what triggered the <a href="https://www.cloudflare.com/waf/">Cloudflare WAF</a>. The OWASP and the Cloudflare Managed Ruleset are tools that scan incoming traffic looking for fingerprints of known vulnerabilities (such as SQLi, <a href="https://www.cloudflare.com/learning/security/how-to-prevent-xss-attacks/">XSS</a>, etc.) and they can provide context on what attack was detected.</p><p>A portion of the blocked traffic has triggered a managed rule for which we can identify the threat category. Although a malicious request can match multiple categories, the <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">WAF</a> assigns it to the first threat that is identified. User-Agent anomaly is the most common reason why traffic is blocked. This is usually triggered by the lack of or by a malformed User-Agent header, capturing requests that do not provide enough credible information on what type of client has sent the request. The next most common threat is cross-site scripting. After these two categories, there is a long tail of other anomalies that were identified.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/22mNr1Cl33LwwoqsCj9NNi/b05a6096d72f656933d1478e6b756d64/image3-28.png" />
            
            </figure>
    <div>
      <h2>Conclusions</h2>
      <a href="#conclusions">
        
      </a>
    </div>
    <p>More than one out of two requests we process is an API call, and industries such as Banking, Retail and Financial Services are leading in terms of adoption and growth.</p><p>Furthermore, API calls are growing twice as fast as HTML traffic, making it an ideal candidate for new <a href="https://www.cloudflare.com/security/">security solutions</a> aimed at protecting customer data.</p> ]]></content:encoded>
            <category><![CDATA[Radar]]></category>
            <category><![CDATA[API]]></category>
            <category><![CDATA[API Shield]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">1AcNLro5cn6HroXvQ5bGnt</guid>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Protecting your APIs from abuse and data exfiltration]]></title>
            <link>https://blog.cloudflare.com/protecting-apis-from-abuse-and-data-exfiltration/</link>
            <pubDate>Wed, 24 Mar 2021 13:00:00 GMT</pubDate>
            <description><![CDATA[ API Shield is growing with new functionalities: Schema Validation generally available, Managed IP List, more controls to manage certificates, and Data Loss Prevention. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>API traffic is growing fast. Last year alone it grew 300% faster at our edge than web traffic. Because <a href="https://www.cloudflare.com/learning/security/api/what-is-an-api/">APIs</a> power mobile and web applications, transmitting instructions as diverse as “order a pizza from my favourite restaurant using this credit card” or “place a cryptocurrency trade and these are my personal details”, they are ripe for data theft and abuse. Data exposure is listed as one of the top threats for API traffic by OWASP; this includes <a href="https://www.cloudflare.com/learning/access-management/what-is-dlp/%5D(https://owasp.org/www-project-api-security/)">data leaks</a>. The increase in API traffic and more frequent data attacks call for new security solutions.</p><p>Cloudflare’s security toolkit had always been designed to protect web and API traffic. However, after talking to hundreds of customers we realised that there is a need for easily deployed and configured security tools for API traffic in a single interface. To meet this demand, in October 2020 we launched <a href="/introducing-api-shield/">API Shield<sup>TM</sup></a>, a new product aimed at bringing together all security solutions designed for API traffic. We started by providing mTLS authentication to all Cloudflare users free of charge, gRPC support and Schema Validation in Beta. During the launch we laid a plan for future releases with more advanced security functionality. We are now thrilled to be able to expand our offering with new features designed to protect your APIs from exposing sensitive data.</p><p>Today we are launching four features to help reduce the impact of exfiltration attacks: Schema Validation for all Enterprise customers, a managed IP List allowing you to block traffic from Open Proxies, more control over the certificate lifecycle, and a Data Loss Prevention solution. Later this week, we’ll also announce capabilities to help you discover APIs running on your network that you may not be aware of, and ways to identify anomalous requests that deviate from intended uses.</p>
    <div>
      <h3>Schema Validation generally available</h3>
      <a href="#schema-validation-generally-available">
        
      </a>
    </div>
    <p>During the API Shield launch we introduced Schema Validation and we released it to a few selected customers. Over the last few months, we have been working with our early adopters to add more capabilities and build an easy-to-use interface directly into our dashboard. You can now navigate to the ‘API Shield’ tab where you can deploy <a href="https://www.cloudflare.com/application-services/solutions/api-security/">API security products</a> directly from the UI. The deployment flow will be expanded soon to include additional capabilities found elsewhere in the dashboard, such as mTLS and Rate Limiting. We will also be integrating new features such as API anomaly detection for an easy feedback loop.</p><p>Schema Validation works by creating a positive security model based on an API “schema”, which is a contract that defines the consumption of an API and guides developers to integrate it in their systems. Conversely to a negative security model (where rules define what characteristics a request must have to trigger an action, such as block), Schema Validation is designed to allow requests that have been verified as compliant while taking actions on everything else. Schema Validation accepts schemas that adhere to the OpenAPI v3 Specification (also known as Swagger Specification), which is the standard for defining RESTful interfaces (<a href="https://swagger.io/solutions/getting-started-with-oas/">learn more at this page</a>).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/OmEZLN8YahgdIHEHnTcUz/8189d6e36666fcf4871a26b68133b0bc/image2-32.png" />
            
            </figure><p>Schema Validation evaluates each request against an API Schema logging or blocking requests that do not comply with it.</p><p>API Shield offers an easy to use UI where users can upload their schemas to the Firewall and automatically create rules that validate each request against the API definition. If the request is compliant then it is forwarded to the origin. Conversely, if the format or data content of the request does not match what is expected by API Shield, the call is either logged or dropped protecting the origin from an invalid request or a malicious payload. Requests with extraneous input may not have been anticipated by the API developer, and they may trigger unforeseen application behaviour, such as a data leak.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5h8092G1mGzraEkcdPyJv/4942cf0aec4af6528d7689f12e250984/image6.gif" />
            
            </figure><p>API Shield with Schema Validation being deployed using the Cloudflare Rulesets OpenAPI schema.‌‌</p><p>The UI guides the user through different steps, including defining the hostname and base path of the API where API Shield will be deployed and uploading the schema file. Once API Shield with Schema Validation has been deployed, it is possible to inspect what endpoints have been parsed by the Firewall and what level of protection is being provided. In the review page, there are two groups of endpoints: protected and unprotected. The former lists all endpoints and methods whose schema is supported, the latter indicates any endpoint whose definition was either not supported or ambiguous. To avoid breaking traffic directed to endpoints not listed in the schema file, we include a final rule that matches traffic not directed to any of the protected endpoints.</p><p>Every time a non-compliant request is identified by Schema Validation and an action such as block or log is taken, a new event tagged with the source ‘API Shield’ is created and added to the Firewall logs. Users can access analytics and logs by visiting the Overview page where they can then drill down data using the flexibility of our GraphQL-powered dashboard.</p><p>Schema validation performs checks on the path, path variables, query parameters, headers, and cookies, and allows logging non-compliant traffic. Schema validation Beta is now broadly available to Enterprise customers — <a href="http://www.cloudflare.com/waf/api-shield">fill this form</a> to get access.</p>
    <div>
      <h3>Data Loss Prevention</h3>
      <a href="#data-loss-prevention">
        
      </a>
    </div>
    <p>Data loss is one of the biggest security concerns that affect small and large organisations, but it also has an impact on individuals and their privacy. Loss of sensitive data can have a massive impact on companies in terms of financial impact, brand value erosion, and compliance with the latest laws on data protection. Finally, loss of sensitive data belonging to individuals can have a detrimental effect in terms of monetary loss and privacy concerns.</p><p>Earlier today we announced our Data Loss Prevention (DLP) product suite; we’re now extending this to identify sensitive data leaving your origin in the response phase of an HTTP or API request. The solution evaluates the egress traffic, checking payloads against common patterns of sensitive data. These include personally identifiable information such as Social Security numbers and financial information, including credit card numbers, bank details, etc. For the first release, users will be able to log any match triggered by DLP. We are planning to add other actions such as obfuscating and blocking sensitive data leaving origins behind Cloudflare. Next, we intend to let customers customise the rules to identify sensitive data that are specific to their application.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/75ZzI5AZqM7QuBzVL2OPGU/28debb7198a5879580d888c7dd8d2f2d/DLP-Diagram.png" />
            
            </figure><p>We developed DLP with simplicity in mind so that every customer can be protected without requiring complex and time-consuming set up periods. We are releasing DLP as a managed ruleset that can be turned on through the Firewall Managed Rules tab. DLP can be used as part of the <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">WAF</a> of a reverse proxy, but it can also be used as part of Cloudflare for Teams integrating data protection in a <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust</a> configuration. This tight integration enables better control on who can access sensitive information within your organization.</p><p>DLP is in beta and we are releasing it to selected early adopter customers. Please <a href="http://www.cloudflare.com/waf/api-shield">fill this form</a> to join the waitlist.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4bxKBybax9WBdQR4dN9fvY/8c50dc8ece2b84b5a27ca2a411a31bc2/image22-1.png" />
            
            </figure><p>Data Loss Protection can be turned on as a Managed Ruleset.</p>
    <div>
      <h3>Managed IP List: threat intelligence by Cloudflare</h3>
      <a href="#managed-ip-list-threat-intelligence-by-cloudflare">
        
      </a>
    </div>
    <p>We are launching our first Managed IP List which will be available for use within Firewall Rules. In July 2020 <a href="/introducing-ip-lists/">we released IP Lists</a>, which gave customers the ability to upload large lists of IPs that can be used when writing Firewall Rules. Today we are launching a list that is curated by Cloudflare and that customers can use in their rules exactly as they use custom uploaded Lists.</p><p>‘Cloudflare Open Proxies’ contains the IPs of Open SOCKS and HTTP Proxies determined by Cloudflare by analysing traffic at its edge. This is not just limited to API requests; rules can apply to all types of traffic being evaluated by the Firewall.</p><p>The list is the first feed we are making public based on Cloudflare threat intelligence that leverages the scale and reach of our network. How do we populate this list? We see requests from every publicly routable IP address on the Internet. Cloudflare combines open source lists with its large network to identify open proxies. After verifying the proxies, Cloudflare determines the exit IPs and creates a list. We then feed this reputation data back into our security systems and make it available to our customers in the form of a managed IP list.</p><p>The list is available to all Enterprise plans and it can be used by selecting ‘Cloudflare Open Proxies’ in the drop-down menu collecting all available IP Lists (see picture below).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/351zGO09M0BQM8yd1zyEMP/fea9df4c3a19d78b4cb6e6f64ca8e056/image3-29.png" />
            
            </figure><p>Cloudflare Open Proxies managed list can be used directly in the Firewall rule builder.</p>
    <div>
      <h3>More controls on client certificates</h3>
      <a href="#more-controls-on-client-certificates">
        
      </a>
    </div>
    <p>We launched mTLS with the first release of API Shield with mobile apps and IoT devices in mind. Enforcing strong authentication with client side certificates is a very effective measure to protect traffic from <a href="https://www.cloudflare.com/learning/security/what-is-data-exfiltration/">data exfiltration</a> and abuse in general. However, in the event of an IoT device or mobile phone being stolen, lost or having control taken over by a malicious actor, Cloudflare users need a way to revoke the certificate that is considered a potential security risk. Having the ability to permanently exclude traffic from compromised devices is an effective way to prevent data loss and malicious attacks.</p><p>Many of our customers who have started embedding API Shield certificates in their apps have implemented a revocation solution using Workers with Workers KV. Although this solution allows granular control on certificates, it does require significant development effort from our customers and does not scale easily.</p><p>For Security Week, we are releasing a fully managed solution to revoke (and restore) certificates without the need to write a single line of code. We built a straightforward interface to <a href="https://www.cloudflare.com/application-services/solutions/certificate-lifecycle-management/">manage the entire lifecycle of your certificates</a> at our edge, from issuance to revocation. We take care of this for you, so you can focus on building your application without having to worry about setting up a complex and costly Public Key Infrastructure (PKI) and managing the revocation of potentially risky devices. The customer touchpoints are a new ‘Revoke’ and ‘Restore’ button in the client certificate tab, its supporting API calls and a new field for Firewall Rules.</p><p>Each request presenting a certificate to the Cloudflare’s edge will have two Firewall fields set: cf.tls_client_auth.cert_verified and cf.tls_client_auth.cert_revoked. The request is processed by the Firewall where users can combine these fields with all other Firewall functionality. This allows customers to set different behaviours based on whether the certificate was verified or verified but revoked. It also allows you to implement the required security policy while providing a good experience for end users. A classic configuration is to allow only requests with a verified certificate, while forwarding requests from revoked certificates to a different page or endpoint to handle the exception as required by your users’ journey.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2qbEaiHnrixfMACbSlwQ1q/1a577d5929cf8116f53a6802664f9057/image5-28.png" />
            
            </figure><p>Users can revoke certificates by visiting the Client Certificates tab.</p>
    <div>
      <h3>What’s brewing</h3>
      <a href="#whats-brewing">
        
      </a>
    </div>
    <p>The Cloudflare team is working on releasing additional features under the API Shield umbrella. We are talking to hundreds of customers who are using Cloudflare for API traffic and three features come up as high priority: in-depth API Analytics, a more flexible Rate Limiting tool, and integration with API Anomaly Detection.</p><p>Schema Validation and Data Loss Prevention are released today with full integration in our logs and analytics engine. Going forward, we are planning to expand the ability to analyse traffic and provide customers with tools to identify and manage attacks specifically directed to API endpoints.</p><p>Cloudflare’s rate limiting is designed to work best for web traffic where you can write rules based on URLs and request methods. We are now working on integrating the power of Firewall Rules with the control provided by rate limiting. This will allow users to segment their traffic leveraging the powerful logic available in the Firewall. We are also extending the counting mechanism to include the ability to rate limit based on API key and User ID.</p><p>When targeting API traffic, attack patterns can vary greatly, making traditional Bot Management solutions not the ideal candidate to identify suspicious behaviour. On Friday we will announce two major features that focus on further protecting your applications: API Discovery and Anomaly Detection. Discovery allows customers to <a href="https://www.cloudflare.com/learning/learning/security/api/what-is-api-discovery/">map their endpoints</a> and get visibility on the surface area of their APIs. Anomaly Detection is Cloudflare’s solution to autonomously separate good API traffic from malicious activity reliably and at scale. Customers will be able to set this up along with mTLS, Schema Validation, and Rate Limiting to maximise level of protection. Check out our blog on Friday to learn more about these new products.</p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[API Shield]]></category>
            <category><![CDATA[Firewall]]></category>
            <category><![CDATA[DLP]]></category>
            <guid isPermaLink="false">4d7kQnp5kXZVmrQFR7GtCp</guid>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing API Shield]]></title>
            <link>https://blog.cloudflare.com/introducing-api-shield/</link>
            <pubDate>Thu, 01 Oct 2020 13:01:00 GMT</pubDate>
            <description><![CDATA[ Of the 18 million requests per second that traverse Cloudflare’s network, 50% are directed towards APIs. Cloudflare is making it simple to secure APIs through the use of strong client certificate-based identity and strict schema-based validation. ]]></description>
            <content:encoded><![CDATA[ <p>APIs are the lifeblood of modern Internet-connected applications. Every millisecond they carry requests from mobile applications—place this food delivery order, “like” this picture—and directions to IoT devices—unlock the car door, start the wash cycle, my human just finished a 5k run—among countless other calls.</p><p>They’re also the target of widespread attacks designed to perform unauthorized actions or <a href="https://www.cloudflare.com/learning/security/what-is-data-exfiltration/">exfiltrate</a> data, as data from Gartner increasingly shows: “by 2021, 90% of web-enabled applications will have more surface area for attack in the form of exposed APIs rather than the UI, up from 40% in 2019, and “Gartner predicted that, by 2022, API abuses will move from an infrequent to the most-frequent attack vector, resulting in data breaches for enterprise web applications”[1][2]. Of the 18 million requests per second that traverse Cloudflare’s network, 50% are directed towards APIs—with the majority of these requests blocked as malicious.</p><p>To combat these threats, Cloudflare is making it simple to <a href="https://www.cloudflare.com/application-services/solutions/api-security/">secure APIs</a> through the use of strong client certificate-based identity and strict schema-based validation. As of today, these capabilities are available free for all plans within our new “API Shield” offering. And as of today, the security benefits <a href="/announcing-grpc/">also extend to gRPC-based APIs</a>, which use binary formats such as protocol buffers rather than JSON, and have been growing in popularity with our customer base.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/57hU743WWPc9IuSri97hCD/c6d495ce4edcd272263e0aa4d1f86e04/image3.png" />
            
            </figure><p>Continue reading to learn more about the new capabilities, or jump right to the "Demonstration" paragraph for examples of how to get started configuring your first API Shield rule.</p>
    <div>
      <h2>Positive security models and client certificates</h2>
      <a href="#positive-security-models-and-client-certificates">
        
      </a>
    </div>
    <p>A “positive security” model is one that allows only known behavior and identities, while rejecting everything else. It is the opposite of the traditional “negative security” model enforced by a <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">Web Application Firewall (WAF)</a> that allows everything <i>except</i> for requests coming from problematic IPs, ASNs, countries or requests with problematic signatures (SQL injection attempts, etc.).</p><p>Implementing a positive security model for APIs is the most direct way to eliminate the noise of credential stuffing attacks and other automated scanning tools. And the first step towards a positive model is deploying strong authentication such as mutual TLS authentication, which is not vulnerable to the <a href="https://spycloud.com/2020-annual-credential-exposure-report/">reuse or sharing of passwords</a>.</p><p>Just as we simplified the issuance of server certificates back in 2014 with <a href="/introducing-universal-ssl/">Universal SSL</a>, API Shield reduces the process of issuing client certificates to clicking a few buttons in the Cloudflare Dashboard. By providing a fully hosted private public key infrastructure (PKI), you can focus on your applications and features—rather than operating and securing your own certificate authority (CA).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3W34OWMhIbvXhFkJvqVUjc/8986a3068ebbf683c37f27542717642e/API_Shield_Mutual_TLS.png" />
            
            </figure>
    <div>
      <h2>Enforcing valid requests with schema validation</h2>
      <a href="#enforcing-valid-requests-with-schema-validation">
        
      </a>
    </div>
    <p>Once developers can be sure that only legitimate clients (with <a href="https://www.cloudflare.com/application-services/products/ssl/">SSL certificates</a> in hand) are connecting to their APIs, the next step in implementing a positive security model is making sure that those clients are making valid requests. Extracting a client certificate from a device and reusing elsewhere is difficult, but not impossible, so it’s also important to make sure that the API is being called as intended.</p><p>Requests containing extraneous input may not have been anticipated by the API developer, and can cause problems if processed directly by the application, so these should be dropped at the edge if possible. API Schema validation works by matching the contents of API requests—the query parameters that come after the URL and contents of the POST body—against a contract or “schema” that contains the rules for what is expected. If validation fails, the API call is blocked protecting the origin from an invalid request or a malicious payload.</p><p>Schema validation is currently in closed beta for JSON payloads, with gRPC/protocol buffer support on the roadmap. If you would like to join the beta please open a support ticket with the subject “API Schema Validation Beta”. After the beta has ended, we plan to make schema validation available as part of the API Shield user interface.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7e0v45eOD6jY65spHlNYe2/37899470ffba1a8ff53c8f21295d6372/API_Shield_Schema_Protection.png" />
            
            </figure>
    <div>
      <h2>Demonstration</h2>
      <a href="#demonstration">
        
      </a>
    </div>
    <p>To demonstrate how the APIs powering IoT devices and mobile applications can be secured, we have built an API Shield demonstration using client certificates and schema validation.</p><p>Temperatures are captured by an IoT device, represented in the demo by a Raspberry Pi 3 Model B+ with an external infrared temperature sensor, and then transmitted via a POST request to a Cloudflare-protected API. Temperatures are subsequently retrieved by GET requests and then displayed in a mobile application built in Swift for iOS.</p><p>In both cases, the API was actually built using Cloudflare Workers® and Workers KV, but can be replaced by any Internet-accessible endpoint.</p>
    <div>
      <h3>1. API Configuration</h3>
      <a href="#1-api-configuration">
        
      </a>
    </div>
    <p>Before configuring the IoT device and mobile application to communicate securely with the API, we need to bootstrap the API endpoints. To keep the example simple, while also allowing for additional customization, we’ve implemented the API as a Cloudflare Worker (borrowing code from the <a href="https://developers.cloudflare.com/workers/tutorials/build-a-jamstack-app">To-Do List tutorial</a>).</p><p>In this particular example the temperatures are stored in Workers KV using the source IP address as a key, but this could easily be replaced by a <a href="https://developers.cloudflare.com/access/service-auth/mtls-headers/">value from the client certificate</a>, e.g., the fingerprint. The code below saves a temperature and timestamp into KV when a POST is made, and returns the most recent 5 temperatures when a GET request is made.</p>
            <pre><code>const defaultData = { temperatures: [] }

const getCache = key =&gt; TEMPERATURES.get(key)
const setCache = (key, data) =&gt; TEMPERATURES.put(key, data)

async function addTemperature(request) {

    // pull previously recorded temperatures for this client
    const ip = request.headers.get('CF-Connecting-IP')
    const cacheKey = `data-${ip}`
    let data
    const cache = await getCache(cacheKey)
    if (!cache) {
        await setCache(cacheKey, JSON.stringify(defaultData))
        data = defaultData
    } else {
        data = JSON.parse(cache)
    }

    // append the recorded temperatures with the submitted reading (assuming it has both temperature and a timestamp)
    try {
        const body = await request.text()
        const val = JSON.parse(body)

        if (val.temperature &amp;&amp; val.time) {
            data.temperatures.push(val)
            await setCache(cacheKey, JSON.stringify(data))
            return new Response("", { status: 201 })
        } else {
            return new Response("Unable to parse temperature and/or timestamp from JSON POST body", { status: 400 })
        }
    } catch (err) {
        return new Response(err, { status: 500 })
    }
}

function compareTimestamps(a,b) {
    return -1 * (Date.parse(a.time) - Date.parse(b.time))
}

// return the 5 most recent temperature measurements
async function getTemperatures(request) {
    const ip = request.headers.get('CF-Connecting-IP')
    const cacheKey = `data-${ip}`

    const cache = await getCache(cacheKey)
    if (!cache) {
        return new Response(JSON.stringify(defaultData), { status: 200, headers: { 'content-type': 'application/json' } })
    } else {
        data = JSON.parse(cache)
        const retval = JSON.stringify(data.temperatures.sort(compareTimestamps).splice(0,5))
        return new Response(retval, { status: 200, headers: { 'content-type': 'application/json' } })
    }
}

async function handleRequest(request) {

    if (request.method === 'POST') {
        return addTemperature(request)
    } else {
        return getTemperatures(request)
    }

}

addEventListener('fetch', event =&gt; {
  event.respondWith(handleRequest(event.request))
})</code></pre>
            <p>Before adding mutual TLS authentication, we’ll test POST’ing a random temperature reading:</p>
            <pre><code>$ TEMPERATURE=$(echo $((361 + RANDOM %11)) | awk '{printf("%.2f",$1/10.0)}')
$ TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")

$ echo -e "$TEMPERATURE\n$TIMESTAMP"
36.30
2020-09-28T02:57:49Z

$ curl -v -H "Content-Type: application/json" -d '{"temperature":'''$TEMPERATURE''', "time": "'''$TIMESTAMP'''"}' https://shield.upinatoms.com/temps 2&gt;&amp;1 | grep "&lt; HTTP/2"
&lt; HTTP/2 201 </code></pre>
            <p>And here’s a subsequent read of that temperature, along with the previous 4 that were submitted:</p>
            <pre><code>$ curl -s https://shield.upinatoms.com/temps | jq .
[
  {
    "temperature": 36.3,
    "time": "2020-09-28T02:57:49Z"
  },
  {
    "temperature": 36.7,
    "time": "2020-09-28T02:54:56Z"
  },
  {
    "temperature": 36.2,
    "time": "2020-09-28T02:33:08Z"
  },
    {
    "temperature": 36.5,
    "time": "2020-09-28T02:29:22Z"
  },
  {
    "temperature": 36.9,
    "time": "2020-09-28T02:27:19Z"
  } 
]</code></pre>
            
    <div>
      <h3>2. Client certificate issuance</h3>
      <a href="#2-client-certificate-issuance">
        
      </a>
    </div>
    <p>With our API in hand, it’s time to lock it down to require a valid client certificate. Before doing so we’ll want to generate those certificates. To do so, you can either go to the SSL/TLS → Client Certificates tab of the Cloudflare Dashboard and click “Create Certificate” or you can automate the process via API calls.</p><p>Because most developers at scale will be generating their own private keys and CSRs and requesting that they be signed via API, we’ll show that process here. Using Cloudflare’s PKI toolkit <a href="https://github.com/cloudflare/cfssl">CFSSL</a> we’ll first create a bootstrap certificate for the iOS application, and then we’ll create a certificate for the IoT device:</p>
            <pre><code>$ cat &lt;&lt;'EOF' | tee -a csr.json
{
    "hosts": [
        "ios-bootstrap.devices.upinatoms.com"
    ],
    "CN": "ios-bootstrap.devices.upinatoms.com",
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [{
        "C": "US",
        "L": "Austin",
        "O": "Temperature Testers, Inc.",
        "OU": "Tech Operations",
        "ST": "Texas"
    }]
}
EOF

$ cfssl genkey csr.json | cfssljson -bare certificate
2020/09/27 21:28:46 [INFO] generate received request
2020/09/27 21:28:46 [INFO] received CSR
2020/09/27 21:28:46 [INFO] generating key: rsa-2048
2020/09/27 21:28:47 [INFO] encoded CSR

$ mv certificate-key.pem ios-key.pem
$ mv certificate.csr ios.csr

// and do the same for the IoT sensor
$ sed -i.bak 's/ios-bootstrap/sensor-001/g' csr.json
$ cfssl genkey csr.json | cfssljson -bare certificate
...
$ mv certificate-key.pem sensor-key.pem
$ mv certificate.csr sensor.csr</code></pre>
            <p>Generate a private key and CSR for the IoT device and iOS application</p>
            <pre><code>// we need to replace actual newlines in the CSR with ‘\n’ before POST’ing
$ CSR=$(cat ios.csr | perl -pe 's/\n/\\n/g')
$ request_body=$(&lt; &lt;(cat &lt;&lt;EOF
{
  "validity_days": 3650,
  "csr":"$CSR"
}
EOF
))

// save the response so we can view it and then extract the certificate
$ curl -H 'X-Auth-Email: YOUR_EMAIL' -H 'X-Auth-Key: YOUR_API_KEY' -H 'Content-Type: application/json' -d “$request_body” https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/client_certificates &gt; response.json

$ cat response.json | jq .
{
  "success": true,
  "errors": [],
  "messages": [],
  "result": {
    "id": "7bf7f70c-7600-42e1-81c4-e4c0da9aa515",
    "certificate_authority": {
      "id": "8f5606d9-5133-4e53-b062-a2e5da51be5e",
      "name": "Cloudflare Managed CA for account 11cbe197c050c9e422aaa103cfe30ed8"
    },
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIEkzCCA...\n-----END CERTIFICATE-----\n",
    "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIIDITCCA...\n-----END CERTIFICATE REQUEST-----\n",
    "ski": "eb2a48a19802a705c0e8a39489a71bd586638fdf",
    "serial_number": "133270673305904147240315902291726509220894288063",
    "signature": "SHA256WithRSA",
    "common_name": "ios-bootstrap.devices.upinatoms.com",
    "organization": "Temperature Testers, Inc.",
    "organizational_unit": "Tech Operations",
    "country": "US",
    "state": "Texas",
    "location": "Austin",
    "expires_on": "2030-09-26T02:41:00Z",
    "issued_on": "2020-09-28T02:41:00Z",
    "fingerprint_sha256": "84b045d498f53a59bef53358441a3957de81261211fc9b6d46b0bf5880bdaf25",
    "validity_days": 3650
  }
}

$ cat response.json | jq .result.certificate | perl -npe 's/\\n/\n/g; s/"//g' &gt; ios.pem

// now ask that the second client certificate signing request be signed
$ CSR=$(cat sensor.csr | perl -pe 's/\n/\\n/g')
$ request_body=$(&lt; &lt;(cat &lt;&lt;EOF
{
  "validity_days": 3650,
  "csr":"$CSR"
}
EOF
))

$ curl -H 'X-Auth-Email: YOUR_EMAIL' -H 'X-Auth-Key: YOUR_API_KEY' -H 'Content-Type: application/json' -d "$request_body" https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/client_certificates | perl -npe 's/\\n/\n/g; s/"//g' &gt; sensor.pem</code></pre>
            <p>Ask Cloudflare to sign the CSRs with the private CA issued for your zone</p>
    <div>
      <h3>3. API Shield rule creation</h3>
      <a href="#3-api-shield-rule-creation">
        
      </a>
    </div>
    <p>With certificates in hand we can now configure the API endpoint to require their use. Below is a demonstration of how to create such a rule.</p><p>The steps include specifying which hostnames to prompt for certificates, e.g., shield.upinatoms.com, and then creating the API Shield rule.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4AdQIq6SE7b3EudHbkruHV/c079941c7afa73490b7701e4c09ed541/API_Shield_demo.gif" />
            
            </figure>
    <div>
      <h3>4. IoT Device Communication</h3>
      <a href="#4-iot-device-communication">
        
      </a>
    </div>
    <p>To prepare the IoT device for secure communication with our API endpoint we need to embed the certificate on the device, and then point our application to it so it can be used when making the POST request to the API endpoint.</p><p>We securely copied the private key and certificate into /etc/ssl/private/sensor-key.pem and /etc/ssl/certs/sensor.pem, and then modified our sample script to point to these files:</p>
            <pre><code>import requests
import json
from datetime import datetime

def readSensor():

    # Takes a reading from a temperature sensor and store it to temp_measurement 

    dateTimeObj = datetime.now()
    timestampStr = dateTimeObj.strftime(‘%Y-%m-%dT%H:%M:%SZ’)

    measurement = {'temperature':str(36.5),'time':timestampStr}
    return measurement

def main():

    print("Cloudflare API Shield [IoT device demonstration]")

    temperature = readSensor()
    payload = json.dumps(temperature)
    
    url = 'https://shield.upinatoms.com/temps'
    json_headers = {'Content-Type': 'application/json'}
    cert_file = ('/etc/ssl/certs/sensor.pem', '/etc/ssl/private/sensor-key.pem')
    
    r = requests.post(url, headers = json_headers, data = payload, cert = cert_file)
    
    print("Request body: ", r.request.body)
    print("Response status code: %d" % r.status_code)</code></pre>
            <p>When the script attempts to connect to <a href="https://shield.upinatoms.com/temps">https://shield.upinatoms.com/temps</a>, Cloudflare requests that a ClientCertificate is sent, and our script sends the contents of sensor.pem before demonstrating it has possession of sensor-key.pem as required to complete the SSL/TLS handshake.</p><p>If we fail to send the client certificate or attempt to include extraneous fields in the API request, the schema validation (configuration not shown) fails and the request is rejected:</p>
            <pre><code>Cloudflare API Shield [IoT device demonstration]
Request body:  {"temperature": "36.5", "time": "2020-09-28T15:52:19Z"}
Response status code: 403</code></pre>
            <p>If instead a valid certificate is presented and the payload follows the schema previously uploaded, our script POSTs the latest temperature reading to the API.</p>
            <pre><code>Cloudflare API Shield [IoT device demonstration]
Request body:  {"temperature": "36.5", "time": "2020-09-28T15:56:45Z"}
Response status code: 201</code></pre>
            
    <div>
      <h3>5. Mobile Application (iOS) Communication</h3>
      <a href="#5-mobile-application-ios-communication">
        
      </a>
    </div>
    <p>Now that temperature requests have been sent to our API endpoint, it’s time to read them securely from our mobile application using one of the client certificates.</p><p>For purposes of brevity, we’re going to embed a “bootstrap” certificate and key as a PKCS#12 file within the application bundle. In a real world deployment, this bootstrap certificate should only be used alongside users’ credentials to authenticate to an API endpoint that can return a unique user certificate. Corporate users will want to use MDM to distribute certificates for additional control and persistence options.</p>
    <div>
      <h4>Package the certificate and private key</h4>
      <a href="#package-the-certificate-and-private-key">
        
      </a>
    </div>
    <p>Before adding the bootstrap certificate and private key, we need to combine them into a binary PKCS#12 file. This binary file will then be added to our iOS application bundle.</p>
            <pre><code>$ openssl pkcs12 -export -out bootstrap-cert.pfx -inkey ios-key.pem -in ios.pem
Enter Export Password:
Verifying - Enter Export Password:</code></pre>
            
    <div>
      <h4>Add the certificate bundle to your iOS application</h4>
      <a href="#add-the-certificate-bundle-to-your-ios-application">
        
      </a>
    </div>
    <p>Within XCode, click File → Add Files To "[Project Name]" and select your .pfx file. Make sure to check "Add to target" before confirming.</p>
    <div>
      <h4>Modify your URLSession code to use the client certificate</h4>
      <a href="#modify-your-urlsession-code-to-use-the-client-certificate">
        
      </a>
    </div>
    <p><a href="https://leenarts.net/2020/02/28/client-certificate-with-urlsession-in-swift/">This article</a> provides a nice walkthrough of using a PKCS#11 class and <a href="https://developer.apple.com/documentation/foundation/urlsessiondelegate">URLSessionDelegate</a>  to modify your application to complete mutual TLS authentication when connecting to an API that requires it.</p>
    <div>
      <h2>Looking Forward</h2>
      <a href="#looking-forward">
        
      </a>
    </div>
    <p>In the coming months, we plan to expand API Shield with a number of additional features designed to protect API traffic. For customers that want to use their own PKI, we will provide the ability to import their own CAs, something <a href="https://developers.cloudflare.com/access/service-auth/mtls/">available today</a> as part of Cloudflare Access.</p><p>As we receive feedback on our schema validation beta, we will look to make the capability generally available to all customers. If you’re trying out the beta and have thoughts to share, we’d love to hear your feedback.</p><p>Beyond certificates and schema validation, we’re excited to layer on additional API security capabilities as well as deep analytics to help you better understand your APIs. If there are features you’d like to see, let us know in the comments below!</p><p><i>1: “By 2021, 90% of web-enabled applications will have more surface area for attack in the form of exposed APIs rather than the UI, up from 40% in 2019. Source: Gartner “Gartner’s API Strategy Maturity Model”, Saniye Alaybeyi, Mark O'Neill, October 21, 2019. (Gartner subscription required)</i></p><p><i>2: “Gartner predicted by 2022, API abuses will move from an infrequent to the most-frequent attack vector, resulting in data breaches for enterprise web applications. Source: Gartner “Cool Vendors in API Strategy”, Shameen Pillai, Paolo Malinverno, Mark O'Neill, Jeremy D'Hoinne, May 18, 2020 (Gartner subscription required)</i></p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[API Shield]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">5gBG4hH3rZQAFU29D6RSPh</guid>
            <dc:creator>Patrick R. Donahue</dc:creator>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
    </channel>
</rss>