
<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, 16 Apr 2026 02:35:37 GMT</lastBuildDate>
        <item>
            <title><![CDATA[Firewall Analytics: Now available to all paid plans]]></title>
            <link>https://blog.cloudflare.com/updates-to-firewall-analytics/</link>
            <pubDate>Mon, 09 Dec 2019 15:16:00 GMT</pubDate>
            <description><![CDATA[ Our Firewall Analytics tool enables customers to quickly identify and investigate security threats using an intuitive interface. Until now, this tool had only been available to our Enterprise customers. ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3MddwtNEkcoYXgRJ0EnqvU/0530e588f4f11bae3b853de37c135c50/image2.png" />
            
            </figure><p>Our <a href="/new-firewall-tab-and-analytics/">Firewall Analytics tool</a> enables customers to quickly identify and investigate security threats using an intuitive interface. Until now, this tool had only been available to our Enterprise customers, who have been using it to get detailed insights into their traffic and better tailor their security configurations. Today, we are excited to make Firewall Analytics available to all paid plans and share details on several recent improvements we have made.</p><p><a href="https://www.cloudflare.com/plans/">All paid plans</a> are now able to take advantage of these capabilities, along with several important enhancements we’ve made to improve our customers’ workflow and productivity.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7bYZvtN92yqQd8QPEyFk9D/59575d5311ed8a5ddff04f41d25b24d0/image-4.png" />
            
            </figure>
    <div>
      <h3>Increased Data Retention and Adaptive Sampling</h3>
      <a href="#increased-data-retention-and-adaptive-sampling">
        
      </a>
    </div>
    <p>Previously, Enterprise customers could view 14 days of Firewall Analytics for their domains. Today we’re increasing that retention to 30 days, and again to 90 days in the coming months. Business and Professional plan zones will get 30 and 3 days of retention, respectively.</p><p>In addition to the extended retention, we are introducing adaptive sampling to guarantee that Firewall Analytics results are displayed in the Cloudflare Dashboard quickly and reliably, even when you are under a massive attack or otherwise receiving a large volume of requests.</p><p>Adaptive sampling works similar to Netflix: when your internet connection runs low on bandwidth, you receive a slightly downscaled version of the video stream you are watching. When your bandwidth recovers, Netflix then upscales back to the highest quality available.</p><p>Firewall Analytics does this sampling on each query, ensuring that customers see the best precision available in the UI given current load on the zone. When results are sampled, the sampling rate will be displayed as shown below:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1ungfGudFqQaaSjhQiL5Dj/e1d3390f78ee4291fc2495a07ed55994/image4.png" />
            
            </figure>
    <div>
      <h3>Event-Based Logging</h3>
      <a href="#event-based-logging">
        
      </a>
    </div>
    <p>As adoption of our expressive <a href="/announcing-firewall-rules/">Firewall Rules engine</a> has grown, one consistent ask we’ve heard from customers is for a more streamlined way to see <i>all</i> Firewall Events generated by a specific rule. Until today, if a malicious request matched multiple rules, only the last one to execute was shown in the Activity Log, requiring customers to click into the request to see if the rule they’re investigating was listed as an “Additional match”.</p><p>To streamline this process, we’ve changed how the Firewall Analytics UI interacts with the Activity Log. Customers can now filter by a specific rule (or any other criteria) and see a row for each event generated by that rule. This change also makes it easier to review all requests that would have been blocked by a rule by creating it in Log mode first before changing it to Block.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4qtBKSFpvDKii1LsIVdrbC/2687ffb2829d9507fbc66926a9080d8a/image8.png" />
            
            </figure>
    <div>
      <h3>Challenge Solve Rates to help reduce False Positives</h3>
      <a href="#challenge-solve-rates-to-help-reduce-false-positives">
        
      </a>
    </div>
    <p>When our customers write rules to block undesired, automated traffic they want to make sure they’re not blocking or challenging desired traffic, e.g., humans wanting to make a purchase should be allowed but not bots scraping pricing.</p><p>To help customers determine what percent of CAPTCHA challenges returned to users may have been unnecessary, i.e., false positives, we are now showing the Challenge Solve Rate (CSR) for each rule. If you’re seeing rates higher than expected, e.g., for your <a href="https://www.cloudflare.com/products/bot-management/">Bot Management</a> rules, you may want to relax the rule criteria. If the rate you see is 0% indicating that no CAPTCHAs are being solved, you may want to change the rule to Block outright rather than challenge.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6CvqEGoEL5hVokVBlnCMrL/92754bda94c5b3ad2c645d1f268d5a4c/image1.png" />
            
            </figure><p>Hovering over the CSR rate will reveal the number of CAPTCHAs issued vs. solved:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2QEssrmjuvixEQwyRLJL6d/cbc33b830fc482b0ced77f2814d0d536/pasted-image-0.png" />
            
            </figure>
    <div>
      <h3>Exporting Firewall Events</h3>
      <a href="#exporting-firewall-events">
        
      </a>
    </div>
    <p>Business and Enterprise customers can now export a set of 500 events from the Activity Log. The data exported are those events that remain after any selected filters have been applied.</p>
    <div>
      <h3>Column Customization</h3>
      <a href="#column-customization">
        
      </a>
    </div>
    <p>Sometimes the columns shown in the Activity Log do not contain the details you want to see to analyze the threat. When this happens, you can now click “Edit Columns” to select the fields you want to see. For example, a customer diagnosing a Bot related issue may want to also view the User-Agent and the source country whereas a customer investigating a DDoS attack may want to see IP addresses, ASNs, Path, and other attributes. You can now customize what you’d like to see as shown below.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3MN19rZ4CIAeomTXRAbIm3/bc0ba763ddb04978f33156824fa518c7/image-3.png" />
            
            </figure><p>We would love to hear your feedback and suggestions, so feel free to reach out to us via our <a href="https://community.cloudflare.com/">Community forums</a> or through your Customer Success team.</p><p>If you’d like to receive more updates like this one directly to your inbox, <a href="/subscribe/">please subscribe to our Blog</a>!</p> ]]></content:encoded>
            <category><![CDATA[Insights]]></category>
            <category><![CDATA[Firewall]]></category>
            <category><![CDATA[Analytics]]></category>
            <category><![CDATA[Product News]]></category>
            <guid isPermaLink="false">3k18hNXR8FdvyMN2sfVzaz</guid>
            <dc:creator>Alex Cruz Farmer</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare’s protection against a new Remote Code Execution vulnerability (CVE-2019-16759) in vBulletin]]></title>
            <link>https://blog.cloudflare.com/cloudflares-protection-against-a-new-remote-code-execution-vulnerability-cve-2019-16759-in-vbulletin/</link>
            <pubDate>Sat, 28 Sep 2019 22:54:56 GMT</pubDate>
            <description><![CDATA[ Cloudflare has released a new rule as part of its Cloudflare Specials Rulesets, to protect our customers against a high-severity vulnerability in vBulletin.  A new zero-day vulnerability was discovered for vBulletin, a proprietary Internet forum software.  ]]></description>
            <content:encoded><![CDATA[ <p>Cloudflare has released a new rule as part of its Cloudflare Specials Rulesets, to protect our customers against a high-severity vulnerability in vBulletin.  </p><p>A new zero-day vulnerability was discovered for vBulletin, a proprietary Internet forum software. By exploiting this vulnerability, bad actors could potentially gain privileged access and control to the host servers on which this software runs, through Remote Code Execution (RCE).</p>
    <div>
      <h2>Implications of this vulnerability</h2>
      <a href="#implications-of-this-vulnerability">
        
      </a>
    </div>
    <p>At Cloudflare, we use three key indicators to understand the severity of a vulnerability 1) how many customers on Cloudflare are running the affected software 2) the Common Vulnerability Scoring System (CVSS) score, and 3) the OWASP Top 10, an open-source security framework.</p><p>We assess this vulnerability to be very significant as it has a CVSS score of 9.8/10 and affects 7 out of the 10 key risk areas of the <a href="https://www.owasp.org/index.php/Top_10-2017_Top_10">OWASP 2017 Top 10</a>.</p><p>Remote Code Execution is considered a type of injection, which provides the capability to potentially launch a catastrophic attack. Through RCE an attacker can gain privileged access to the host server that might be running the unpatched and vulnerable version of this software. With elevated privileges the attacker could perform malicious activities including discovery of additional vulnerabilities in the system, checks for misconfigured file permissions on configuration files and even delete logs to wipe out the possibility of audit trails to their activities.</p><p>We also have often observed attackers exploit RCE vulnerabilities to deploy malware on the host, make it part of a DDoS Botnet attack or exfiltrate valuable data stored in the system.</p>
    <div>
      <h2>Cloudflare’s continuously learning Firewall has you covered</h2>
      <a href="#cloudflares-continuously-learning-firewall-has-you-covered">
        
      </a>
    </div>
    <p>At Cloudflare, we continuously strive to improve the security posture of our customers by quickly and seamlessly mitigating vulnerabilities of this nature. Protection against common RCE attacks is a standard feature of Cloudflare's Managed Rulesets. To provide coverage for this specific vulnerability, we have deployed a new rule within our Cloudflare Specials Rulesets (ruleId: 100166). Customers who have our Managed Rulesets and Cloudflare Specials enabled will be immediately protected against this vulnerability.</p><p>To check whether you have this protection enabled, please login, navigate to the Firewall tab and under the Managed Rulesets tab you will find the toggle to enable the WAF Managed Rulesets. See below:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2oRuE3AturOHuORwrN7g1a/f5d01dfc0a4af320a4849e71c9d321a9/pasted-image-0-3.png" />
            
            </figure><p>Next, confirm that you have the Cloudflare Specials Rulesets enabled, by checking in the Managed Rulesets card as shown below:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7uvCe0gSqbwl5XiS4N8ojT/4ffbccce7a8b84f6e2967936906f89f6/pasted-image-0--1--2.png" />
            
            </figure><p>Our customers who use our free services or those who don't have Cloudflare's Managed Rulesets turned on, can also protect themselves by deploying a patch on their own. The vBulletin team have released a security patch, the details of which can be found <a href="https://forum.vbulletin.com/forum/vbulletin-announcements/vbulletin-announcements_aa/4422707-vbulletin-security-patch-released-versions-5-5-2-5-5-3-and-5-5-4">here</a>.</p><p>Cloudflare’s Firewall is built on a network that continuously learns from our vast network spanning over 190 countries. In Q2’19 Cloudflare blocked an average of 44 billion cyber threats each day. <a href="https://www.cloudflare.com/waf/">Learn</a> more about our simple, easy to use and powerful Cloudflare Firewall and protect your business today.</p> ]]></content:encoded>
            <category><![CDATA[Vulnerabilities]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">h5BHJvPbIR5wZrnTd6XsZ</guid>
            <dc:creator>Alex Cruz Farmer</dc:creator>
            <dc:creator>Arun Singh</dc:creator>
        </item>
        <item>
            <title><![CDATA[Supercharging Firewall Events for Self-Serve]]></title>
            <link>https://blog.cloudflare.com/supercharging-firewall-events-for-self-serve/</link>
            <pubDate>Thu, 22 Aug 2019 13:00:00 GMT</pubDate>
            <description><![CDATA[ Today, I’m very pleased to announce the release of a completely overhauled version of our Firewall Event log to our Free, Pro and Business customers. This new Firewall Events log is now available in your Dashboard, and you are not required to do anything to receive this new capability. ]]></description>
            <content:encoded><![CDATA[ <p>Today, I’m very pleased to announce the release of a completely overhauled version of our Firewall Event log to our Free, Pro and Business customers. This new Firewall Events log is now available in your Dashboard, and you are not required to do anything to receive this new capability.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/141jSRK1fTPux3n04DH7ud/0dcd81e892295258abd387fcfa4fbb61/image1-6.png" />
            
            </figure>
    <div>
      <h2>No more modals!</h2>
      <a href="#no-more-modals">
        
      </a>
    </div>
    <p>We have done away with those pesky modals, providing a much smoother user experience. To review more detailed information about an event, you simply click anywhere on the event list row.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/VRogojtxjTNxa5Xjo5UBK/6611c2560fd3b102c69f33a42a3de1f2/image4-3.png" />
            
            </figure><p>In the expanded view, you are provided with all the information you may need to identify or diagnose issues with your Firewall or find more details about a potential threat to your application.</p>
    <div>
      <h2>Additional matches per event</h2>
      <a href="#additional-matches-per-event">
        
      </a>
    </div>
    <p>Cloudflare has several Firewall features to give customers granular control of their security. With this control comes some complexity when debugging why a request was stopped by the Firewall. To help clarify what happened, we have provided an “Additional matches” count at the bottom for events triggered by multiple services or rules for the same request. Clicking the number expands a list showing each rule and service along with the corresponding action.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4fqalGyuTVZGq4sEX8Dtl8/cf7278c59f4e83c748083ffadc512a9c/image5.png" />
            
            </figure>
    <div>
      <h2>Search for any field within a Firewall Event</h2>
      <a href="#search-for-any-field-within-a-firewall-event">
        
      </a>
    </div>
    <p>This is one of my favourite parts of our new Firewall Event Log. Many of our customers have expressed their frustration with the difficulty of pinpointing specific events. This is where our new search capabilities come into their own. Customers can now filter and freeform search for any field that is visible in a Firewall Event!</p><p>Let’s say you want to find all the requests originating from a specific ISP or country where your Firewall Rules issued a JavaScript challenge. There are two different ways to do this in the UI.</p><p>Firstly, when in the detail view, you can create an <i>include</i> or <i>exclude</i> filter for that field value.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7xIXJmuiiwnn8xlida4IaN/0af3214cc4f4b70b265f7d84a541a1a8/image6.gif" />
            
            </figure><p>Secondly, you can create a freeform filter using the “+ Add Filter” button at the top, or edit one of the already filtered fields:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5xg5KWxcCmxUCyRrNsw6dp/9e43274178c59c966ce32dfad233cdd0/image2.gif" />
            
            </figure><p>As illustrated above, with our WAF Managed Rules enabled in log only, we can see all the rules which would have triggered if this was a legitimate attack. This allows you to confirm that your configuration is working as expected.</p>
    <div>
      <h2>Scoping your search to a specific date and time</h2>
      <a href="#scoping-your-search-to-a-specific-date-and-time">
        
      </a>
    </div>
    <p>In our old Firewall Event Log, to find an event, users had to traverse through many pages to find Events from a specific date. The last major change we have added is the capability to select a time window to view events between two points in time over the last 2 weeks. In the time selection window, Free and Pro customers can choose a 24 hour time window and our Business customers can view up to 72 hours.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4tHEAR3fymBerYnU86FSsk/4424d791d85ecaede8c05cb639c1c326/image3.gif" />
            
            </figure>
    <div>
      <h2>We want your feedback!</h2>
      <a href="#we-want-your-feedback">
        
      </a>
    </div>
    <p>We need your help! Please feel free to leave any feedback on our <a href="https://community.cloudflare.com">Community forums</a>, or open a Support ticket with any problems you find. Your feedback is critical to our product improvement process, and we look forward to hearing from you.</p> ]]></content:encoded>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Firewall]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Dashboard]]></category>
            <guid isPermaLink="false">f2KfzUCSa58hGW7XhGCY5</guid>
            <dc:creator>Alex Cruz Farmer</dc:creator>
        </item>
        <item>
            <title><![CDATA[New Firewall Tab and Analytics]]></title>
            <link>https://blog.cloudflare.com/new-firewall-tab-and-analytics/</link>
            <pubDate>Fri, 01 Mar 2019 10:00:00 GMT</pubDate>
            <description><![CDATA[ At Cloudflare, we focus on intuitive products to aid customers in accelerating and protecting their web properties. We’re excited to share two updates to make our Firewall simpler and more accessible. ]]></description>
            <content:encoded><![CDATA[ <p>At Cloudflare, one of our top priorities is to make our products and services intuitive so that we can enable customers to accelerate and protect their Internet properties. We're excited to launch two improvements designed to make our Firewall easier to use and more accessible, and helping our customers better manage and visualize their threat-related data.</p>
    <div>
      <h3>New Firewall Tabs for ease of access</h3>
      <a href="#new-firewall-tabs-for-ease-of-access">
        
      </a>
    </div>
    <p>We have reorganised our features into meaningful pages: Events, Firewall Rules, Managed Rules, Tools, and Settings. Our customers will see an Overview tab, which contains our new Firewall Analytics, detailed below.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2kdnXnB5nhWqSPwKNQq1rH/7c2556c5550677c1b7c32e0cb082414f/image3.png" />
            
            </figure><p>All the features you know and love are still available, and can be found in one of the four new tabs. Here is a breakdown of their new locations.</p><table><tr><td><p>Feature</p></td><td><p>New Location</p></td></tr><tr><td><p>Firewall Event Log</p></td><td><p>Events (Overview for Enterprise only)</p></td></tr><tr><td><p>Firewall Rules</p></td><td><p>Firewall Rules</p></td></tr><tr><td><p>Web Application Firewall</p></td><td><p>Managed Ruleset</p></td></tr><tr><td><p>IP Access Rules (IP Firewall</p></td><td><p>Tools</p></td></tr><tr><td><p>Rate Limiting</p></td><td><p>Tools</p></td></tr><tr><td><p>User Agent Blocking</p></td><td><p>Tools</p></td></tr><tr><td><p>Zone Lockdown</p></td><td><p>Tools</p></td></tr><tr><td><p>Browser Integrity Check</p></td><td><p>Settings</p></td></tr><tr><td><p>Challenge Passage</p></td><td><p>Settings</p></td></tr><tr><td><p>Privacy Pass</p></td><td><p>Settings</p></td></tr><tr><td><p>Security Level</p></td><td><p>Settings</p></td></tr></table><p><i>If the new sub navigation has not appeared, you may need to re-login to the dashboard or clear your browser’s cookies.</i></p>
    <div>
      <h3>New Firewall Analytics for analysing events and maintaining optimal configurations</h3>
      <a href="#new-firewall-analytics-for-analysing-events-and-maintaining-optimal-configurations">
        
      </a>
    </div>
    <p>Insights into security events are critical for <a href="https://www.cloudflare.com/application-services/solutions/app-performance-monitoring/">monitoring the health of your web applications</a>. Furthermore, distinguishing between actual threats from false positives is essential for maintaining an optimal security configuration. Today, we are very pleased to announce our new Firewall Analytics which will help our Enterprise customers get detailed insights into firewall events, helping them to tailor their security configurations more effectively</p><p>Our new Firewall Analytics now enables our Enterprise customers to:</p><ul><li><p>visualise and analyse Firewall Events in one place to better understand their threat landscape</p></li><li><p>identify, mitigate, and review attacks more effectively</p></li></ul>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2GWzKZjrZneKTVZS9CbxLH/6f899311075421fa3dc82f7867f53ee6/dashandgraph.png" />
            
            </figure><p>After speaking with many of our customers, we learned a lot about their processes to identify and analyse attacks and the kinds of insights they needed to improve these processes. We then translated these learnings into useful features and charts that would help answer some of the most common questions such as ‘What kinds of security events occurred in a certain time frame?’ and ‘What caused a spike in a certain type of security event?’.  </p><p>Firewall Analytics and Firewall Configuration can be found together in the Firewall tab. A tight feedback loop between Firewall configuration and the resulting events allow for rapid iteration, ideal for security-focused teams.</p><p>To best demonstrate the power of Firewall Analytics, here’s a workflow that would answer a popular question our customers ask: “Why did I have a spike in threats?”. In the screenshot below, we can see a set of activity which triggered a number of ‘Blocks’ events:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5joMt07Y2KqXhkWUoWh5M2/e62592cabbb5f1325a68dbd36ddb9bbb/eventsbyaction.png" />
            
            </figure><p>To minimize the possibility of polluting our TopN statistics with event types other than ‘Block’ and get the most accurate diagnostic information, we will need to filter down to just ‘Block’ actions.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2KOOmBIuqo2t2Cowve8clo/df5d47596f65f3afec3ee05baeee276c/Screen-Recording-2019-02-25-at-11.42-am.gif" />
            
            </figure><p>Now that only Block events are displayed, checking the Service Breakdowns will help us to identify which of our Firewall features was triggered.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6ci2daHFBCKxcw6vvKyb7z/426bfa12c499121b1239ccd11c493c55/eventsbyservice.png" />
            
            </figure><p>From the Events breakdown, we can see that the Block events were triggered by a Country Block configured within Access Rules. Digging deeper and looking at our TopN breakdowns, we start to get a much more granular understanding of which Networks, IPs, User-Agents, Paths etc, were targeted.</p><p>Looking at our TopN breakdowns, we start to get a much more granular understanding of which Networks, IPs, User-Agents, Paths etc, were targeted.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5u8OjEPbiRu5wB7isPaMwj/ff1072bd907c458623b39589858ed6c2/topeventsbysource.png" />
            
            </figure><p>From here, we can see that there are two specific IP addresses which were targeting my application to “/”.</p><p>To get the most detailed information, we can drill down further in the refreshed Firewall Event log, now controlled inline.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1i4JSK8xtYeFymPzemYdHr/c39456a948ebe8c249d93285920b5f19/actiontaken.png" />
            
            </figure><p>Whilst these TopNs and filters are great for clearly identifiable threats, they can also help identify false positives. Using the power of Cloudflare’s filters, it is possible to add a user-defined filter, which can be a RayID, User-Agent or IP address.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/8p29JPMFJNumBRm7cu91i/e6f73b5b5ecdcb4a2df836402aede6b7/firewallevents.png" />
            
            </figure><p>This is just one example of how the new Firewall Analytics can help expedite the process of identifying and mitigating threats. Firewall Analytics is now live for all Enterprise customers. Let us know your feedback by reaching out to your Enterprise Account Team.</p> ]]></content:encoded>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Analytics]]></category>
            <category><![CDATA[Firewall]]></category>
            <guid isPermaLink="false">47iwgd9LB7Bpvd4LBFew28</guid>
            <dc:creator>Alex Cruz Farmer</dc:creator>
        </item>
        <item>
            <title><![CDATA[Firewall Rules - Priority and Ordering]]></title>
            <link>https://blog.cloudflare.com/firewall-rules-priority-and-ordering/</link>
            <pubDate>Fri, 21 Dec 2018 13:11:00 GMT</pubDate>
            <description><![CDATA[ Firewall Rules are one of the best security features we released this year, and have been an overwhelming success. Customers have been using Firewall Rules to solve interesting security related use cases. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Firewall Rules are one of the best security features we released this year and have been an overwhelming success. Customers have been using Firewall Rules to solve interesting security related use cases; for example, advanced hotlink protection, restricting access to embargoed content (e.g. productId=1234), locking down sensitive API endpoints, and more.</p><p>One of the biggest pieces of feedback from the <a href="https://community.cloudflare.com/c/security">Cloudflare community</a>, Twitter, and via customer support, has been around the order in which rules are actioned. By default, Firewall Rules have a default precedence, based on the actions set on the rule:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2rL1K406rCKQ3YftQq1ULq/b5801c680dc13c33522ac3bea55bc4ea/Default-Precedence.png" />
            
            </figure><p>If two or more rules match a request, but have different actions, the above precedence will take effect. However, what happens if you've got a bad actor who needs to be blocked from your API, and you have other specific allow or challenge rules already created for their originating ASN or a perhaps one of your URLs? Once a Firewall Rule is matched, it will not continue processing other rule, unless you are using the Log action. Without a method of overriding the default precedence, you cannot easily achieve what's needed.</p><p>Today, we’re launching the ability for customers to change the ordering of their rules. The team at Cloudflare had a very long discussion about whether priority was the right solution, i.e. using an arbitrary number between 1 and 2,147,483,647 (int32) or whether customers should have a sequential list, and be able to drag and drop rules similarly to how Page Rules operates today.</p><p>After testing potential solutions with our users and learning about the wide range of use cases it was clear that we needed to offer customers the ability to choose.</p><p>In the Firewall Rules user interface, you should now have an additional button on the top right, shown here:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3SsVymtGhbWmBW62F5vEee/72db09f7e1a3b5e7e94f91e2d01ebf34/cloudflare-order-options.gif" />
            
            </figure>
    <div>
      <h3>Priority Numbering</h3>
      <a href="#priority-numbering">
        
      </a>
    </div>
    <p>For customers managing a large number of rules, or predominantly using the API or <a href="https://www.terraform.io/docs/providers/cloudflare/index.html">Terraform</a> for configuration, priority numbering is a great solution. Within Firewall Rules, as explained above, the default precedence is the final “conflict resolver”, providing a very useful way of grouping rules.</p><p>For example, one of the engineers behind Firewall Rules uses Priority to organise their rules into specific groups, e.g.</p>
            <pre><code>5000-9999 - Trusted IP addresses
10000-19999 - Blocking Rules for Bad Crawlers
20000-29999 - Blocking Rules for Abusive/Spam Users</code></pre>
            <p>Priority is an optional field on Rules and is available as an additional control to override the default precedence mentioned above. As this is the case, Cloudflare do not apply any default priority numbers on rules, and will be left blank.</p>
    <div>
      <h3>Drag and Drop Ordering</h3>
      <a href="#drag-and-drop-ordering">
        
      </a>
    </div>
    <p>Ordering is intuitive, being literally a drag and drop placement of rules in order of execution. See below for a quick demo of how straightforward the controls are:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2dUASOudWuDH00VNk3pb9z/a6b459cf2c0521437186e7ce05927de8/cloudflare-order-rule.gif" />
            
            </figure><p>There is currently a 200 rule limit with this method, so upon creating your 201st rule, you will be switched to Priority Numbering, automatically.</p><p>For more information on how Ordering and Priority Number operates, please visit our Firewall Rules documentation, found <a href="https://developers.cloudflare.com/firewall/cf-firewall-rules/order-priority/">here</a>.</p> ]]></content:encoded>
            <category><![CDATA[Firewall]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">2kaLvqCCXJW4VeIHHfVvyb</guid>
            <dc:creator>Alex Cruz Farmer</dc:creator>
        </item>
        <item>
            <title><![CDATA[Announcing Firewall Rules]]></title>
            <link>https://blog.cloudflare.com/announcing-firewall-rules/</link>
            <pubDate>Wed, 03 Oct 2018 20:20:49 GMT</pubDate>
            <description><![CDATA[ Threat landscapes change every second. As attackers evolve, vulnerabilities materialise faster than engineers can patch systems becoming more dynamic and devious. Part of Cloudflare’s mission is to keep you and your applications safe. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Threat landscapes change every second. As attackers evolve, becoming more dynamic and devious, vulnerabilities materialize faster than engineers can patch their applications. Part of Cloudflare’s mission is to keep you and your applications safe. Today, Cloudflare is launching a new feature, giving customers what they have been requesting - fine-grained control over their incoming requests.</p><p>Cloudflare already offers a number of powerful firewall tools such as IP rules, CIDR rules, ASN rules, country rules, HTTP user-agent blocking, Zone Lockdown (for these URIs only allow traffic from those IPs), and our comprehensive managed rules within our <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">WAF (Web Application Firewall)</a>. But sometimes, you need to combine the power of these to fully mitigate an attack, and to express a block rule that breaks the boundaries of the existing tools, to be able to “block traffic to this URI when the request comes from that IP and the user-agent matches one of these”.</p>
    <div>
      <h3>Flexibility and Control</h3>
      <a href="#flexibility-and-control">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2YfAM9xTlNAiOQigJiTfEm/35324dbb36b9a512f8288637a8b332e9/Stefano-Kocka.jpg" />
            
            </figure><p>© Stefano Kocka : Source Wikipedia</p><p>Common themes arose when we spoke to customers about their needs and also reviewed feature requests that our customer support team had seen, and we categorised the top pieces of feedback and feature requests into three core needs:</p><ol><li><p>More flexibility to create a firewall rule that matches more than just a single attribute, like an IP address and User-Agent</p></li><li><p>Flexibility to not only exactly match an attribute, but also partially match it, through using a string or a pattern, for example <code>User-Agent: *Firefox*</code></p></li><li><p>Complete self-service control through the UI and Cloudflare’s public API, even for the most complex firewall rules</p></li></ol><p>The team worked together to investigate what a fresh approach to our firewall would look like, with one overarching mission being front and center: build a Swiss Army knife of firewalls for our customers. Our key objectives were to:</p><ol><li><p>Provide a tool to give customers flexible and granular control of their traffic</p></li><li><p>Maintain a smooth and intuitive user-experience, something we thrive on delivering</p></li><li><p>Ensure it is accessible and usable by all of our customers, regardless of user skill or business size</p></li></ol>
    <div>
      <h3>Firewall Rules</h3>
      <a href="#firewall-rules">
        
      </a>
    </div>
    <p>Cloudflare’s new capability, Firewall Rules, provides customers the ability to control requests, in a flexible and intuitive way, inspired by the widely known Wireshark®  language. Configuration of rules can be done through not only our Dashboard and API, but also through Terraform (<a href="/getting-started-with-terraform-and-cloudflare-part-1/">link here</a>).</p><p>The Firewall Rules engine can be thought of as 2 components:</p><ul><li><p>Matching: define a filter that runs globally and precisely matches your traffic</p></li><li><p>Action: declare the action Cloudflare should apply when the filter is matched</p></li></ul><p>Simply put, when the filter matches, apply the action.</p>
    <div>
      <h3>Matching: scoping the rule</h3>
      <a href="#matching-scoping-the-rule">
        
      </a>
    </div>
    <p>Cloudflare Firewall Rules gives customers access to properties of the HTTP request, including referer, user-agent, cookies, Cloudflare Threat Score (IP reputation score), and more.</p><p>All of the supported headers can be matched by many operators, including, a partial match (<code>contains</code>), complete string or integer match (<code>equals</code>), and for our Business and Enterprise customers, pattern matching (<code>matches</code>). Yes, you read that right, we now offer pattern matching using Regular Expressions, directly through the Dashboard and API!</p><p>The great thing about Firewall Rules is the flexibility for Cloudflare to field options; for example, Cloudflare’s Threat Intelligence, which drives our Security Level functionally on the Dashboard, will be an available field for customers. One of the most important fields Cloudflare is introducing is our <code>cf.client.bot</code> field, which verifies known good bots via reverse DNS. In our initial release, we provide customers access to the general classification of “Known Good Bots”. Details on the list of these bots can be found <a href="https://developers.cloudflare.com/firewall/known-issues-and-faq/#which-bots-or-crawlers-are-detected-in-firewall-rules">here</a>. Cloudflare has historically allowlisted Google on behalf of our customers, and utilised Web Application Firewall rules, which are only available to Pro customers and above, to block spoofed crawlers. With Firewall Rules, all customers now have access to these protections. As Cloudflare has removed the allowlisting capability, it is important that customers include simply <code>cf.client.bot</code> in an Allowed rule, to avoid inadvertently blocking good crawlers which could affect your SEO and monitoring.</p>
    <div>
      <h3>Action: what action is applied to the request</h3>
      <a href="#action-what-action-is-applied-to-the-request">
        
      </a>
    </div>
    <p>All of the standard Cloudflare actions such as JavaScript Challenge, Challenge and Block are available.</p><p>There is one new addition to the standard mitigation list, which is the <code>allow</code> action, which provides a customer the ability to create Rule to say “if this criteria is matched, stop processing further rules”.</p>
    <div>
      <h3>Give me some examples!</h3>
      <a href="#give-me-some-examples">
        
      </a>
    </div>
    <p>Sure, here’s four cool examples that we see being used today. Advanced or nested rules are not supported in the Visual Rule Builder today. These are noted below each rule.                                                                                                            </p><p><i><b>Example 1 - Challenge all countries except GB</b></i>Supported: Visual Builder, Expression EditorThis can be done using our IP Firewall but would require 150+ rules!</p>
            <pre><code>(ip.geoip.country ne "GB")</code></pre>
            
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5xJ8ApfaQjUhMAwP3JY3mF/c8ce76060aad93b3c87c548d3690d9b6/image.png" />
            
            </figure><p><b><i>Example 2 - Advanced Hotlink Protection</i></b>Supported: Visual Builder, Expression EditorCloudflare’s built-in hotlink protection can be restrictive for some customers as it does not provide abilities to bypass certain paths. This also can sometimes catch legitimate crawlers.</p>
            <pre><code>(http.request.method eq "GET" and http.referer ne ".example.com" and not http.user_agent matches "(googlebot|facebook)" and http.request.uri.path eq "/content/")</code></pre>
            
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5WPhDS97KcnmamMZ9nC700/d6e7b379ec0a934e08117dc52240fed5/Firewall-Rule-2.png" />
            
            </figure><p><b><i>Example 3 - Blocking Clients with a Threat Score greater than 10 or Clients originating from an abusive network by AS Number, to my Login page</i></b>Supported: Expression EditorOne of the great things about Firewall Rules is that we have provided you access to cf.threat_score, which is what powers the Security Level within the dashboard today.</p>
            <pre><code>(http.request.uri.path eq "/login" and (cf.threat_score &lt; 10 or ip.geoip.asnum eq 12345))</code></pre>
            
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4y7Ft5Ios00FrHaopdenbN/16ff08e012263b36e538e4af426840de/Firewall-Rule-3.png" />
            
            </figure><p><b><i>Example 4 - Zone Lockdown-like-Use case utilising Regular Expression, IP address CIDRs, Country Code and AS Numbers to protect authentication endpoints via both Wordpress website, and an API.</i></b>Supported: Expression EditorZone Lockdown is a great tool; however, it is limited for some critical use cases. Here’s something quite crazy to demonstrate the flexibility:</p>
            <pre><code>((http.host eq "api.example.com" and http.request.uri.path eq "/api/v2/auth") or (http.host matches "^(www|store|blog)\.example.com" and http.request.uri.path contains "wp-login.php") or ip.geoip.country in {"CN" "TH" "US" "ID" "KR" "MY" "IT" "SG" "GB"} or ip.geoip.asnum in {12345 54321 11111}) and not ip.src in {11.22.33.0/24}
111</code></pre>
            
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2YulU707a6hH6HeohJTIjp/888445ff574449a6e5b7af089953b7ae/Firewall-Rule-4.png" />
            
            </figure>
    <div>
      <h3>Positive and Negative Security Models</h3>
      <a href="#positive-and-negative-security-models">
        
      </a>
    </div>
    <p>This is an awesome addition to the Firewall, as it provides our customers a way to choose between running a Positive Security policy (allow specific requests and deny everything else) or a Negative Security policy (block specific requests and allow everything else).</p><p>Cloudflare default for Firewall Rules is an implicit <code>allow</code> all. The great thing about this method of working is being able to <code>block</code> just the bad stuff. Whilst this is a very effective and efficient way of running a firewall, it causes a number of challenges. By letting all traffic through, your <a href="https://www.cloudflare.com/soc-as-a-service/">security operations</a> have to be reactive when issues arise.</p><p>What the security industry has been pushing is a concept of "Zero Trust". Just as it sounds, <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust</a> means you trust nothing, and everything that comes through has to have some kind of justification. To create a "Zero Trust" security policy, you have to reverse the way your firewall default policy works, i.e. changing the last action from allow to block - aka. a positive security policy. Before today, this was not possible; however with Firewall Rules, now you can.</p>
    <div>
      <h3>The Visual Rule Builder and Expression Editor</h3>
      <a href="#the-visual-rule-builder-and-expression-editor">
        
      </a>
    </div>
    <p>One of the biggest concerns about giving customers power, is delivering that power safely and effectively. The product design and UI engineering team worked through multiple iterations to create a powerful but approachable rule builder and editor. The team spent a number of months working through a number of iterations to create solid rule builder and a rule editor solution without cluttering or complicating the UI.</p><p>Pete Thomas, our Lead Designer on the new Firewall UI took us back to basics running paper prototyping sessions to test and discover how rules are built and managed.</p><p>Below is a photo of myself and Matthew Bullock, one of our London Solutions Engineers, going through the testing process.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/KXeXqcLx8aty5tA2k9AoA/21f5031d792c59d1c0570dd33f41b668/Optimized-WAF-Rules.png" />
            
            </figure><p>Through the design process, we wanted to focus on why customers would need Firewall Rules. The results were simple, create proactive defensive rules, to secure an application, and reactive rules, to protect applications that were being attacked.</p><p>Within the Visual Rule Builder, we have provided customers an intuitive way to create Firewall Rules, whilst not restricting access to the core functionality. The future roadmap delivers more flexible grouping through the Visual Builder. However, we do have an option for more complex requirements or nested Firewall Rules. These can be created within the Rule Editor, which is based on our Wireshark®-inspired language that allows you to take expressions created in Wireshark and create Firewall Rules. David Kitchen, the Engineering Manager responsible for developing Firewall Rules will be writing a blog in the coming weeks detailing why we chose a Wireshark®-inspired DSL for our filter expressions. For a list of supported fields, head over to our <a href="https://developers.cloudflare.com/firewall/cf-firewall-rules/fields-and-expressions/">documentation</a>.  </p> ]]></content:encoded>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Firewall]]></category>
            <category><![CDATA[WAF Rules]]></category>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Speed & Reliability]]></category>
            <guid isPermaLink="false">47CGribu0YSSoXcWWGZYbl</guid>
            <dc:creator>Alex Cruz Farmer</dc:creator>
        </item>
        <item>
            <title><![CDATA[Rate Limiting: Delivering more rules, and greater control]]></title>
            <link>https://blog.cloudflare.com/rate-limiting-delivering-more-rules-and-greater-control/</link>
            <pubDate>Mon, 21 May 2018 20:41:37 GMT</pubDate>
            <description><![CDATA[ With more platforms adopting DDoS safeguards like integrating mitigation services and enhancing bandwidth at vulnerable points, Layer 3 and 4 attacks are becoming far less effective than before. ]]></description>
            <content:encoded><![CDATA[ <p>With more and more platforms taking the <a href="https://www.cloudflare.com/learning/ddos/how-to-prevent-ddos-attacks/">necessary precautions against DDoS attacks</a> like integrating DDoS mitigation services and increasing bandwidth at weak points, Layer 3 and 4 attacks are just not as effective anymore. For Cloudflare, we have fully automated Layer 3/4 based protections with our internal platform, <a href="/meet-gatebot-a-bot-that-allows-us-to-sleep/">Gatebot</a>. In the last 6 months we have seen a large upward trend of Layer 7 based DDoS attacks. The key difference to these attacks is they are no longer focused on using huge payloads (volumetric attacks), but based on Requests per Second to exhaust server resources (CPU, Disk and Memory). On a regular basis we see attacks that are over 1 million requests per second. The graph below shows the number of Layer 7 attacks Cloudflare has monitored, which is trending up. On average seeing around 160 attacks a day, with some days spiking up to over 1000 attacks.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2KCzsb3VI9QyzaxYXWfPlW/bff6e0c18354270863ab8b5626f7dff1/Screen-Shot-2018-05-21-at-10.36.27-AM.png" />
            
            </figure><p>A year ago, Cloudflare released <a href="/rate-limiting/">Rate Limiting</a>, and it is proving to be a hugely effective tool for customers to protect their web applications and <a href="https://www.cloudflare.com/learning/security/api/what-is-an-api/">APIs</a> from all sorts of attacks, from “low and slow” DDoS attacks, through to bot-based attacks, such as credential stuffing and content scraping. We’re pleased about the success our customers are seeing with Rate Limiting and are excited to announce additional capabilities to give our customers further control.</p>
    <div>
      <h3>So what’s changing?</h3>
      <a href="#so-whats-changing">
        
      </a>
    </div>
    <p>There are times when you clearly know that traffic is malicious. In cases like this, our existing Block action is proving effective for our customers. But there are times when it is not the best option, and causes a negative user experience. Rather than risk a false negative, customers often want to challenge a client to ensure they are who they represent themselves to be, which is in most situations, human not a bot.</p><p><b>Firstly</b>, to help customers more accurately identify the traffic, we are adding Cloudflare JavaScript Challenge, and Google reCAPTCHA (Challenge) mitigation actions to the UI and API for Pro and Business plans. The existing Block and Simulate actions still exist. As a reminder, to test any rule, deploying in Simulate means that you will not be charged for any requests. This is a great way to test your new rules to make sure they have been configured correctly.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6wD9AHZXCrufghkJPOcrDR/912893206456995a98bf003226cfac6e/Screen-Shot-2018-05-21-at-10.36.39-AM.png" />
            
            </figure><p><b>Secondly</b>, we’re making Rate Limiting more dynamically scalable. A new feature has been added which allows Rate Limiting to count on Origin Response Headers for Business and Enterprise customers. The way this feature works is by matching attributes which are returned by the Origin to Cloudflare.</p>
    <div>
      <h3>The new capabilities - in action!</h3>
      <a href="#the-new-capabilities-in-action">
        
      </a>
    </div>
    <p>One of the things that really drives our innovation is solving the real problems we hear from customers every day. With that, we wanted to provide some real world examples of these new capabilities in action.</p><p>Each of the use cases have Basic and Advanced implementation options. After some testing, we found that tiering rate limits is an extremely effective solution against repeat offenders.</p><p><b>Credential Stuffing Protection</b> for Login Pages and APIs. The best way to build applications is to utilise the standardized Status Codes. For example, if I fail to authenticate against an endpoint or a website, I should receive a “401” or “403”. Generally speaking a user to a website will often get their password wrong three times before selecting the “I forgot my password” option. Most Credential Stuff bots will try thousands of times cycling through many usernames and password combinations to see what works.</p><p>Here are some example rate limits which you can configure to protect your application from credential stuffing.</p><p><b>Basic</b>:Cloudflare offers a “Protect My Login” feature out the box. Enter the URL for your login page and Cloudflare will create a rule such that clients that attempt to log in more than 5 times in 5 minutes will be blocked for 15 minutes.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4FhmlH6WeVwOhm3pyHjo9w/b5647d44c77165d7da31d69422c322a6/Screen-Shot-2018-05-21-at-10.36.47-AM.png" />
            
            </figure><p>With the new Challenge capabilities of Rate Limiting, you can customize the response parameters for log in to more closely match the behavior pattern for bots you see on your site through a custom-built rule.</p><p>Logging in four times in one minute is hard - I type fast, but couldn’t even do this. If I’m seeing this pattern in my logs, it is likely a bot. I can now create a Rate Limiting rule based on the following criteria:</p><table><tr><td><p><b>RuleID</b></p></td><td><p><b>URL</b></p></td><td><p><b>Count</b></p></td><td><p><b>Timeframe</b></p></td><td><p><b>Matching Criteria</b></p></td><td><p><b>Action</b></p></td></tr><tr><td><p>1</p></td><td><p>/login</p></td><td><p>4</p></td><td><p>1 minute</p></td><td><p>Method: POST
Status Code: 401,403</p></td><td><p>Challenge</p></td></tr></table><p>With this new rule, if someone tries to log in four times within a minute, they will be thrown a challenge. My regular human users will likely never hit it, but if they do - the challenge insures they can still access the site.</p><p><b>Advanced</b>:
And sometimes bots are just super persistent in their attacks. We can tier rules together to tackle repeat offenders. For example, instead of creating just a single rule, we can create a series of rules which can be tiered to protect against persistent threats:</p><table><tr><td><p><b>RuleID</b></p></td><td><p><b>URL</b></p></td><td><p><b>Count</b></p></td><td><p><b>Timeframe</b></p></td><td><p><b>Matching Criteria</b></p></td><td><p><b>Action</b></p></td></tr><tr><td><p>1</p></td><td><p>/login</p></td><td><p>4</p></td><td><p>1 minute</p></td><td><p>Method: POST
Status Code: 401,403</p></td><td><p>JavaScript Challenge</p></td></tr><tr><td><p>2</p></td><td><p>/login</p></td><td><p>10</p></td><td><p>5 minutes</p></td><td><p>Method: POST
Status Code: 401,403</p></td><td><p>Challenge</p></td></tr><tr><td><p>3</p></td><td><p>/login</p></td><td><p>20</p></td><td><p>1 hour</p></td><td><p>Method: POST
Status Code: 401,403</p></td><td><p>Block for 1 day</p></td></tr></table><p>With this type of tiering, any genuine users that are just having a hard time remembering their login details whilst also being extremely fast typers will not be fully blocked. Instead, they will first be given out automated JavaScript challenge followed by a traditional CAPTCHA if they hit the next limit. This is a much more user-friendly approach while still securing your login endpoints.</p>
    <div>
      <h4>Time-based Firewall</h4>
      <a href="#time-based-firewall">
        
      </a>
    </div>
    <p>Our IP Firewall is a powerful feature to block problematic IP addresses from accessing your app. Particularly this is related to repeated abuse, or based on IP Reputation or Threat Intelligence feeds that are integrated at the origin level.</p><p>While the IP firewall is powerful, maintaining and managing a list of IP addresses which are currently being blocked can be cumbersome. It becomes more complicated if you want to allow blocked IP addresses to “age out” if bad behavior stops after a period of time. This often requires authoring and managing a script and multiple API calls to Cloudflare.</p><p>The new Rate Limiting Origin Headers feature makes this all so much easier. You can now configure your origin to respond with a Header to trigger a Rate-Limit. To make this happen, we need to generate a Header at the Origin, which is then added to the response to Cloudflare. As we are matching on a static header, we can set a severity level based on the content of the Header. For example, if it was a repeat offender, you could respond with High as the Header value, which could Block for a longer period.</p><p>Create a Rate Limiting rule based on the following criteria:</p><table><tr><td><p><b>RuleID</b></p></td><td><p><b>URL</b></p></td><td><p><b>Count</b></p></td><td><p><b>Timeframe</b></p></td><td><p><b>Matching Criteria</b></p></td><td><p><b>Action</b></p></td></tr><tr><td><p>1</p></td><td><p>*</p></td><td><p>1</p></td><td><p>1 second</p></td><td><p>Method: _ALL_
Header: X-CF-Block = low</p></td><td><p>Block for 5 minutes</p></td></tr><tr><td><p>2</p></td><td><p>*</p></td><td><p>1</p></td><td><p>1 second</p></td><td><p>Method: _ALL_
Header: X-CF-Block = medium</p></td><td><p>Block for 15 minutes</p></td></tr><tr><td><p>3</p></td><td><p>*</p></td><td><p>1</p></td><td><p>1 second</p></td><td><p>Method: _ALL_
Header: X-CF-Block = high</p></td><td><p>Block for 60 minutes</p></td></tr></table><p>Once that Rate-Limit has been created, Cloudflare’s Rate-Limiting will then kick-in immediately when that Header is received.</p>
    <div>
      <h4>Enumeration Attacks</h4>
      <a href="#enumeration-attacks">
        
      </a>
    </div>
    <p>Enumeration attacks are proving to be increasingly popular and pesky to mitigate. With enumeration attacks, attackers identify an expensive operation in your app and hammer at it to tie up resources and slow or crash your app. For example, an app that offers the ability to look up a user profile requires a database lookup to validate whether the user exists. In an enumeration attack, attackers will send a random set of characters to that endpoint in quick succession, causing the database to ground to a halt.</p><p>Rate Limiting to the rescue!</p><p>One of our customers was hit with a huge enumeration attack on their platform earlier this year, where the aggressors were trying to do exactly what we described above, in an attempt to overload their database platform. Their Rate Limiting configuration blocked over 100,000,000 bad requests during the 6-hour attack.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1pwVBMpUcd368swYqwG5BY/497e8e574ff8d71d03ce7f44ed46c65c/Screen-Shot-2018-05-21-at-10.36.57-AM.png" />
            
            </figure><p>When a query is sent to the app, and the user is not found, the app serves a 404 (page not found). A very basic approach is to set a rate limit for 404s. If a user crosses a threshold of 404’s in a period of time, set the app to challenge the user to prove themselves to be a real person.</p><table><tr><td><p><b>RuleID</b></p></td><td><p><b>URL</b></p></td><td><p><b>Count</b></p></td><td><p><b>Timeframe</b></p></td><td><p><b>Matching Criteria</b></p></td><td><p><b>Action</b></p></td></tr><tr><td><p>1</p></td><td><p>*</p></td><td><p>10</p></td><td><p>1 minute</p></td><td><p>Method: GET
Status Code: 404</p></td><td><p>Challenge</p></td></tr></table><p>To catch repeat offenders, you can tier the tier Rate Limits:</p><table><tr><td><p><b>RuleID</b></p></td><td><p><b>URL</b></p></td><td><p><b>Count</b></p></td><td><p><b>Timeframe</b></p></td><td><p><b>Matching Criteria</b></p></td><td><p><b>Action</b></p></td></tr><tr><td><p>1</p></td><td><p>/public/profile*</p></td><td><p>10</p></td><td><p>1 minute</p></td><td><p>Method: GET
Status Code: 404</p></td><td><p>JavaScript Challenge</p></td></tr><tr><td><p>2</p></td><td><p>/public/profile*</p></td><td><p>25</p></td><td><p>1 minute</p></td><td><p>Method: GET
Status Code: 200</p></td><td><p>Challenge</p></td></tr><tr><td><p>3</p></td><td><p>/public/profile*</p></td><td><p>50</p></td><td><p>10 minutes</p></td><td><p>Method: GET
Status Code: 200, 404</p></td><td><p>Block for 4 hours</p></td></tr></table><p>With this type of tiered defense in place, it means that you can “caution” an offender with a JavaScript challenge or Challenge (Google Captcha), and then “block” them if they continue.</p>
    <div>
      <h4>Content Scraping</h4>
      <a href="#content-scraping">
        
      </a>
    </div>
    <p>Increasingly, content owners are wrestling with content scraping - malicious bots copying copyrighted images or assets and redistributing or reusing them. For example, we work with an <a href="https://www.cloudflare.com/ecommerce/">eCommerce store</a> that uses copyrighted images and their images are appearing elsewhere on the web without their consent. Rate Limiting can help!</p><p>In their app, each page displays 4 copyrighted images, 1 which is actual size, and 3 which are thumbnails. By looking at logs and user patterns, they determined that most users, at a stretch, would never view more than 10–15 products in a minute, which would equate to 40–60 loads from the images store.</p><p>They chose to tier their Rate Limiting rules to prevent end users from getting unnecessarily blocked when they were browsing heavily. To <a href="https://www.cloudflare.com/learning/ai/how-to-prevent-web-scraping/">block malicious attempts at content scraping</a> can be quite simple, however it does require some forward planning. Placing the rate limit on the right URL is key to insure you are placing the rule on exactly what you are trying to protect and not the broader content. Here’s an example set of rate limits this customer set to protect their images:</p><table><tr><td><p><b>RuleID</b></p></td><td><p><b>URL</b></p></td><td><p><b>Count</b></p></td><td><p><b>Timeframe</b></p></td><td><p><b>Matching Criteria</b></p></td><td><p><b>Action</b></p></td></tr><tr><td><p>1</p></td><td><p>/img/thumbs/*</p></td><td><p>10</p></td><td><p>1 minute</p></td><td><p>Method: GET
Status Code: 404</p></td><td><p>Challenge</p></td></tr><tr><td><p>2</p></td><td><p>/img/thumbs/*</p></td><td><p>25</p></td><td><p>1 minute</p></td><td><p>Method: GET
Status Code: 200</p></td><td><p>Challenge</p></td></tr><tr><td><p>3</p></td><td><p>/img/*</p></td><td><p>75</p></td><td><p>1 minute</p></td><td><p>Method: GET
Status Code: 200</p></td><td><p>Block for 4 hours</p></td></tr><tr><td><p>4</p></td><td><p>/img/*</p></td><td><p>5</p></td><td><p>1 minute</p></td><td><p>Method: GET
Status Code: 403, 404</p></td><td><p>Challenge</p></td></tr></table><p>As we can see here, rules 1 and 2 are counting based on the number of requests to each endpoint. Rule 3 is counting based on all hits to the image store, and if it gets above 75 requests, the user will be blocked for 4 hours. Finally, to avoid any enumeration or bots guessing image names and numbers, we are counting on 404 and 403s and challenging if we see unusual spikes.</p>
    <div>
      <h3>One more thing ... more rules, <i>totally rules!</i></h3>
      <a href="#one-more-thing-more-rules-totally-rules">
        
      </a>
    </div>
    <p>We want to ensure you have the rules you need to secure your app. To do that, we are increasing the number of available rules for Pro and Business, for no additional charge.</p><ul><li><p>Pro plans increase from 3 to 10 rules</p></li><li><p>Business plans increase from 3 to 15 rules</p></li></ul><p>As always, Cloudflare only charges for good traffic - requests that are allowed through Rate Limiting, not blocked. For more information click <a href="https://support.cloudflare.com/hc/en-us/articles/115000272247-Billing-for-Cloudflare-Rate-Limiting">here</a>.</p><p>The Rate-Limiting feature can be enabled within the Firewall tab on the Dashboard, or by visiting: <a href="https://www.cloudflare.com/a/firewall/">cloudflare.com/a/firewall</a></p> ]]></content:encoded>
            <category><![CDATA[Rate Limiting]]></category>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Reliability]]></category>
            <category><![CDATA[Speed & Reliability]]></category>
            <category><![CDATA[Attacks]]></category>
            <category><![CDATA[DDoS]]></category>
            <category><![CDATA[Mitigation]]></category>
            <guid isPermaLink="false">l8ac1fSE0Q5tV7W36HzV1</guid>
            <dc:creator>Alex Cruz Farmer</dc:creator>
        </item>
        <item>
            <title><![CDATA[Thwarting the Tactics of the Equifax Attackers]]></title>
            <link>https://blog.cloudflare.com/thwarting-the-tactics-of-the-equifax-attackers/</link>
            <pubDate>Mon, 13 Nov 2017 16:09:00 GMT</pubDate>
            <description><![CDATA[ We are now 3 months on from one of the biggest, most significant data breaches in history, but has it redefined people's awareness on security? ]]></description>
            <content:encoded><![CDATA[ <p>We are now 3 months on from one of the biggest, most significant data breaches in history, but has it redefined people's awareness on security?</p><p>The answer to that is absolutely yes, awareness is at an all-time high. Awareness, however, does not always result in positive action. The fallacy which is often assumed is "surely, if I keep my software up to date with all the patches, that's more than enough to keep me safe?". It's true, keeping software up to date does defend against known vulnerabilities, but it's a very reactive stance. The more important part is protecting against the unknown.</p><p>Something every engineer will agree on is that security is hard, and maintaining systems is even harder. Patching or upgrading systems can lead to unforeseen outages or unexpected behaviour due to other fixes which may be applied. This, in most cases, can cause huge delays in the deployment of patches or upgrades, due to requiring either regression testing or deployment in a staging environment. Whilst processes are followed, and tests are done, systems are sat vulnerable, ready to be exploited if they are exposed to the internet.</p><p>Looking at the wider landscape, an increase in security research has created a surge of CVEs (Common Vulnerability and Exposures) being announced. This compounded by GDPR, NIST and other new data protection legislation, businesses are now forced to pay much more attention to security vulnerabilities that potentially could affect their software, and ultimately put them on the forever growing list of victims of data breaches.</p>
            <figure>
            <a href="https://public.tableau.com/profile/nela7296#!/vizhome/CommonVulnerabilitiesandExposurescvedetails_com/Sheet2">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/8XeikDcpPYgT2tFoIN9IT/fc5083fcf76036e99e0a5500a030851d/cve2.png" />
            </a>
            </figure><p>Dissecting the Equifax tragedy, in testimony from the CEO, he mentions that the reason for the breach was that there was one single person within the organisation who was responsible for communicating the availability of the patch for Apache Struts, the software at the heart of the breach. The crucial lesson learned from Equifax is that we are all human, and that mistakes can happen, however having multiple people responsible for communicating and notifying teams about threats is crucial. In this case, the mistake almost destroyed one of the largest credit agencies in the world.</p><p>How could attacks and breaches like Equifax be avoided? First is about understanding how these attacks happen. There are some key attacks which are often the source of <a href="https://www.cloudflare.com/learning/security/what-is-data-exfiltration/">data exfiltration</a> through vulnerable software.</p><ul><li><p>Remote Code Execution (RCE) - which is what was used in the Equifax Breach</p></li><li><p>SQL Injection (SQLi), which is delivering an SQL statement hidden in a payload, accessing a backend database powering a website.</p></li></ul>
    <div>
      <h3>Remote Code Execution</h3>
      <a href="#remote-code-execution">
        
      </a>
    </div>
    <p>The Struts vulnerability, <a href="https://nvd.nist.gov/vuln/detail/CVE-2017-5638">CVE-2017-5638</a>, which is protected by rule 100054 in Cloudflare Specials, was quite simple. In a payload targeted at the web-server, a specific command could be executed which can be seen in the example below:</p>
            <pre><code>"(#context.setMemberAccess(#dm))))."
"(#cmd='touch /tmp/hacked')."
"(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win')))."
"(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd}))."
"(#p=new java.lang.ProcessBuilder(#cmds))."</code></pre>
            <p>More critically however, further to this CVE, Apache Struts also announced another vulnerability earlier this year (<a href="https://nvd.nist.gov/vuln/detail/CVE-2017-9805">CVE-2017-9805</a>), which works by delivering a payload against the REST plugin combined with the Xstream handler, which provides an XML ingest capability. By delivering an specially crafted XML payload, a shell command can be embedded, and will be executed.</p>
            <pre><code>&lt;next class="java.lang.ProcessBuilder"&gt;
   &lt;command&gt;
      "touch /tmp/hacked".
   &lt;/command&gt;
   &lt;redirectErrorStream&gt;false&lt;/redirectErrorStream&gt;
&lt;/next&gt;</code></pre>
            <p>And the result from the test:</p>
            <pre><code>root@struts-demo:~$ ls /tmp
hacked
root@struts-demo:~$</code></pre>
            <p>In the last week, we have seen over 180,000 hits on our WAF rules protecting against Apache Struts across the Cloudflare network.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/IPzn62W8nzdCNR4F8if95/debceba1c6e4582142c2854525567ddc/Struts-1.png" />
            
            </figure>
    <div>
      <h3>SQL Injection</h3>
      <a href="#sql-injection">
        
      </a>
    </div>
    <p>SQL Injection (SQLi) is an attempt to inject nefarious queries into a GET or POST dynamic variable, which is used to query a database. Cloudflare, on a day to day basis will see over 2.3m SQLi attempts on our network. Most commonly, we see SQLi attacks against Wordpress sites, as it is one of the biggest web applications used on Cloudflare today. Wordpress is used by some of the world's giants, like Sony Music, all the way down to "mom &amp; pop" businesses. The challenge with being the leader in the space, is you then become a hot target. Looking at the CVE list as we near the close of 2017, there have been 41 vulnerabilities found in multiple versions of Wordpress which would force people to upgrade to the latest versions. To protect our customers, and buy them time to upgrade, Cloudflare works with a number of vendors to address vulnerabilities and then virtual-patching using our WAF to <a href="https://www.cloudflare.com/learning/security/threats/how-to-prevent-sql-injection/">prevent these vulnerabilities being exploited</a>.</p><p>The way a SQL injection works is by "breaking out" or malforming a query when a web application is needing data from a database. As an example, a Forgotten Password page has a single email input field, which will be used to validate whether the username exists, and if so, sends the user a “Forgotten Password” link. Below is a straightforward SQL query example, which could be used in a web application:</p>
            <pre><code>SELECT user, password FROM users WHERE user = 'john@smith';</code></pre>
            <p>Which results in:</p>
            <pre><code>+------------+------------------------------+
|    user   |           password           |
+------------+------------------------------+
| john@smith | $2y$10$h9XJRX.EBnGFrWQlnt... |
+------------+------------------------------+</code></pre>
            <p>Without the right query validation, an attacker could escape out of this query, and carry out some extremely malicious queries. For example, if an attacker was looking to <a href="https://www.cloudflare.com/zero-trust/solutions/account-takeover-prevention/">takeover another user’s account</a>, and an attacker found that the query validation was inadequate, he could escape the query, and UPDATE the username, which is an email address in this instance, to his own. This can simply be done by entering the query string below into the email input field, instead of an email address.</p>
            <pre><code>dontcare@bla.com’;UPDATE users SET user = ‘mr@robot’ WHERE user = ‘john@smith’;</code></pre>
            
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6xkZ2dHeg7dLuOI7TUoyfS/46bc35df59150c95d70e8be3e6d1a035/emaileg.png" />
            
            </figure><p>Due to the lack of validation, the query which the web application sends to the database will be:</p>
            <pre><code>SELECT user, password FROM users WHERE user = 'dontcare@bla.com’;UPDATE users SET user = ‘mr@robot’ WHERE user = ‘john@smith’;</code></pre>
            <p>Now this has been updated, the attacker can now request a password reset using his own email address, gaining him access to the victim’s account.</p>
            <pre><code>+----------+------------------------------+
|  user   |           password           |
+----------+------------------------------+
| mr@robot | $2y$10$h9XJRX.EBnGFrWQlnt... |
+----------+------------------------------+</code></pre>
            <p>Many SQLi attacks are often on fields which are not often considered high risk, like an authentication form for example. To put the seriousness of SQLi attacks in perspective, in the last week, we have seen over 2.4 million matches.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4521BwLEn69dAUQR0W5sbC/4fc29447225748f0583fe55448c8f51d/SQLi-1.png" />
            
            </figure><p>The Cloudflare WAF is built to not only protect customers against SQLi and RCE based attacks, but also add <a href="https://www.cloudflare.com/learning/security/how-to-prevent-xss-attacks/">protection against Cross Site Scripting (XSS)</a> and a number of other known attacks. On an average week, just on our Cloudflare Specials WAF ruleset, we see over 138 million matches.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6T7PzjGJwXvJLNAk006MMf/4cfc9cb7f2c1ad9602526bef2ccfef2a/WAF.png" />
            
            </figure><p>The next important part is communication and awareness; understanding what you have installed, what versions you are running, and most importantly, what announcements your vendor is making. Generally, most notifications are received via email, and are usually quite cumbersome to digest, regardless of their complexity, it is crucial to try and understand them.</p><p>And, finally, the last line of defense is to have protection in front of your application, which is where Cloudflare can help. At Cloudflare, Security is very core to our values, and was one of the foundation pillars we were founded upon. Even to this day, we are known as one of the most cost effective ways of being able to shore up your Web Applications with just our Pro Plan@$20/mo.</p> ]]></content:encoded>
            <category><![CDATA[Privacy]]></category>
            <category><![CDATA[Attacks]]></category>
            <category><![CDATA[SQL]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Vulnerabilities]]></category>
            <guid isPermaLink="false">1fLOuMITKI0fs60V1oGinL</guid>
            <dc:creator>Alex Cruz Farmer</dc:creator>
        </item>
    </channel>
</rss>