
<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>Mon, 13 Apr 2026 09:26:06 GMT</lastBuildDate>
        <item>
            <title><![CDATA[Free network flow monitoring for all enterprise customers]]></title>
            <link>https://blog.cloudflare.com/free-network-monitoring-for-enterprise/</link>
            <pubDate>Thu, 07 Mar 2024 14:00:43 GMT</pubDate>
            <description><![CDATA[ Today, we’re excited to announce that a free version of Cloudflare’s network flow monitoring product, Magic Network Monitoring, is now available to all Enterprise Customers ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4JDYfP3P5eCvUA6t2OVQRW/9623c870e75e74e813cd0abc5a9b8da9/image1-24.png" />
            
            </figure><p>A key component of <a href="https://www.cloudflare.com/network-security/">effective corporate network security</a> is establishing end to end visibility across all traffic that flows through the network. Every network engineer needs a complete overview of their network traffic to confirm their security policies work, to identify new vulnerabilities, and to analyze any shifts in traffic behavior. Often, it’s difficult to build out effective network monitoring as teams struggle with problems like configuring and tuning data collection, managing storage costs, and analyzing traffic across multiple visibility tools.</p><p>Today, we’re excited to announce that a free version of Cloudflare’s <a href="https://www.cloudflare.com/network-services/solutions/network-monitoring-tools/">network flow monitoring</a> product, Magic Network Monitoring, is available to all Enterprise Customers. Every Enterprise Customer can configure Magic Network Monitoring and immediately improve their network visibility in as little as 30 minutes via our self-serve onboarding process.</p><p>Enterprise Customers can visit the <a href="https://www.cloudflare.com/network-services/products/magic-network-monitoring/">Magic Network Monitoring product page</a>, click “Talk to an expert”, and fill out the form. You’ll receive access within 24 hours of submitting the request. Over the next month, the free version of Magic Network Monitoring will be rolled out to all Enterprise Customers. The product will automatically be available by default without the need to submit a form.</p>
    <div>
      <h3>How it works</h3>
      <a href="#how-it-works">
        
      </a>
    </div>
    <p>Cloudflare customers can send their network flow data (either NetFlow or sFlow) from their routers to Cloudflare’s network edge.</p><p>Magic Network Monitoring will pick up this data, parse it, and instantly provide insights and analytics on your network traffic. These analytics include traffic volume overtime in bytes and packets, top protocols, sources, destinations, ports, and TCP flags.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6AZo6eGAZteqDAzTz8JSzc/83dd771696c34386f200144f95fb8207/image3-20.png" />
            
            </figure>
    <div>
      <h3>Dogfooding Magic Network Monitoring during the remediation of the Thanksgiving 2023 security incident</h3>
      <a href="#dogfooding-magic-network-monitoring-during-the-remediation-of-the-thanksgiving-2023-security-incident">
        
      </a>
    </div>
    <p>Let’s review a recent example of how Magic Network Monitoring improved Cloudflare’s own network security and traffic visibility during the <a href="/thanksgiving-2023-security-incident">Thanksgiving 2023 security incident</a>. Our security team needed a lightweight method to identify malicious packet characteristics in our core data center traffic. We monitored for any network traffic sourced from or destined to a list of ASNs associated with the bad actor. Our security team setup Magic Network Monitoring and established visibility into our first core data center within 24 hours of the project kick-off. Today, Cloudflare continues to use Magic Network Monitoring to monitor for traffic related to bad actors and to provide real time traffic analytics on more than 1 Tbps of core data center traffic.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/15lzmYJOViOw36MiEo7RR1/e3252df389014e6a52aad4eab6a78b7c/Screenshot-2024-03-07-at-10.55.47.png" />
            
            </figure><p><i>Magic Network Monitoring - Traffic Analytics</i></p>
    <div>
      <h3>Monitoring local network traffic from IoT devices</h3>
      <a href="#monitoring-local-network-traffic-from-iot-devices">
        
      </a>
    </div>
    <p>Magic Network Monitoring also improves visibility on any network traffic that doesn’t go through Cloudflare. Imagine that you’re a network engineer at ACME Corporation, and it’s your job to manage and troubleshoot IoT devices in a factory that are connected to the factory’s internal network. The traffic generated by these IoT devices doesn’t go through Cloudflare because it is destined to other devices and endpoints on the internal network. Nonetheless, you still need to establish network visibility into device traffic over time to monitor and troubleshoot the system.</p><p>To solve the problem, you configure a router or other network device to securely send encrypted traffic flow summaries to Cloudflare via an IPSec tunnel. Magic Network Monitoring parses the data, and instantly provides you with insights and analytics on your network traffic. Now, when an IoT device goes down, or a connection between IoT devices is unexpectedly blocked, you can analyze historical network traffic data in Magic Network Monitoring to speed up the troubleshooting process.</p>
    <div>
      <h3>Monitoring cloud network traffic</h3>
      <a href="#monitoring-cloud-network-traffic">
        
      </a>
    </div>
    <p>As <a href="https://www.cloudflare.com/learning/cloud/what-is-cloud-networking/">cloud networking</a> becomes increasingly prevalent, it is essential for enterprises to <a href="https://www.cloudflare.com/network-services/solutions/enterprise-network-security/">invest in visibility</a> across their cloud environments. Let’s say you’re responsible for monitoring and troubleshooting your corporation's cloud network operations which are spread across multiple public cloud providers. You need to improve visibility into your cloud network traffic to analyze and troubleshoot any unexpected traffic patterns like configuration drift that leads to an exposed network port.</p><p>To improve traffic visibility across different cloud environments, you can export cloud traffic flow logs from any virtual device that supports NetFlow or sFlow to Cloudflare. In the future, we are building support for native cloud VPC flow logs in conjunction with <a href="/introducing-magic-cloud-networking">Magic Cloud Networking</a>. Cloudflare will parse this traffic flow data and provide alerts plus analytics across all your cloud environments in a single pane of glass on the Cloudflare dashboard.</p>
    <div>
      <h3>Improve your security posture today in less than 30 minutes</h3>
      <a href="#improve-your-security-posture-today-in-less-than-30-minutes">
        
      </a>
    </div>
    <p>If you’re an existing Enterprise customer, and you want to improve your corporate network security, you can get started right away. Visit the <a href="https://www.cloudflare.com/network-services/products/magic-network-monitoring/">Magic Network Monitoring product page</a>, click “Talk to an expert”, and fill out the form. You’ll receive access within 24 hours of submitting the request. You can begin the self-serve onboarding tutorial, and start monitoring your first batch of network traffic in less than 30 minutes.</p><p>Over the next month, the free version of Magic Network Monitoring will be rolled out to all Enterprise Customers. The product will be automatically available by default without the need to submit a form.</p><p>If you’re interested in becoming an Enterprise Customer, and have more questions about Magic Network Monitoring, you can <a href="https://www.cloudflare.com/network-services/products/magic-network-monitoring/">talk with an expert</a>. If you’re a free customer, and you’re interested in testing a limited beta of Magic Network Monitoring, you can <a href="https://docs.google.com/forms/d/1umsmwHmXgMesP2t4wH94uVExHaT60tb5RTeawqR_9Cg/edit">fill out this form to request access</a>.</p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[Magic Network Monitoring]]></category>
            <category><![CDATA[Network]]></category>
            <category><![CDATA[Monitoring]]></category>
            <category><![CDATA[IoT]]></category>
            <category><![CDATA[Magic Transit]]></category>
            <category><![CDATA[Magic WAN]]></category>
            <category><![CDATA[Cloudflare One]]></category>
            <guid isPermaLink="false">5kxbpURa5uO3pOPgoXY9Ga</guid>
            <dc:creator>Chris Draper</dc:creator>
        </item>
        <item>
            <title><![CDATA[Securing the Internet of Things]]></title>
            <link>https://blog.cloudflare.com/rethinking-internet-of-things-security/</link>
            <pubDate>Mon, 26 Sep 2022 13:15:00 GMT</pubDate>
            <description><![CDATA[ We’ve been defending customers from Internet of Things botnets for years now, and it’s time to turn the tides: we’re bringing the same security behind our Zero Trust platform to IoT ]]></description>
            <content:encoded><![CDATA[ <p></p><p>It’s hard to imagine life without our smartphones. Whereas computers were mostly fixed and often shared, smartphones meant that every individual on the planet became a permanent, mobile node on the Internet — with some 6.5B smartphones on the planet today.</p><p>While that represents an explosion of devices on the Internet, it will be dwarfed by the next stage of the Internet’s evolution: connecting devices to give them intelligence. Already, Internet of Things (IoT) devices represent somewhere in the order of double the number of smartphones connected to the Internet today — and unlike smartphones, this number is expected to continue to grow tremendously, since they aren’t bound to the number of humans that can carry them.</p><p>But the exponential growth in devices has brought with it an explosion in risk. We’ve been defending against DDoS attacks from Internet of Things (IoT) driven botnets like <a href="/tag/mirai/">Mirai</a> and <a href="/meris-botnet/">Meris</a> for years now. They keep <a href="https://www.securityweek.com/cloudflare-mitigates-2-tbps-ddos-attack-launched-mirai-botnet">growing</a>, because securing IoT devices still remains challenging, and manufacturers are often not incentivized to secure them. This has driven NIST (the U.S. National Institute of Standards and Technology) <a href="https://csrc.nist.gov/publications/detail/nistir/8349/draft">to actively define requirements</a> to address the (lack of) IoT device security, and the EU isn’t far behind.</p><p>It’s also the type of problem that Cloudflare solves best.</p><p>Today, we’re excited to announce our Internet of Things platform: with the goal to provide a single pane-of-glass view over your IoT devices, provision connectivity for new devices, and critically, secure every device from the moment it powers on.</p>
    <div>
      <h3>Not just lightbulbs</h3>
      <a href="#not-just-lightbulbs">
        
      </a>
    </div>
    <p>It’s common to immediately think of lightbulbs or simple motion sensors when you read “IoT”, but that’s because we often don’t consider many of the devices we interact with on a daily basis as an IoT device.</p><p>Think about:</p><ul><li><p>Almost every payment terminal</p></li><li><p>Any modern car with an infotainment or GPS system</p></li><li><p>Millions of industrial devices that power — and are critical to — logistics services, industrial processes, and manufacturing businesses</p></li></ul><p><i>You especially may not realize that nearly every one of these devices has a SIM card, and connects over a cellular network.</i></p><p>Cellular connectivity has become increasingly ubiquitous, and if the device can connect independently of Wi-Fi network configuration (and work out of the box), you’ve immediately avoided a whole class of operational support challenges. If you’ve just read our earlier announcement about <a href="/the-first-zero-trust-sim/">the Zero Trust SIM</a>, you’re probably already seeing where we’re headed.</p><p>Hundreds of thousands of IoT devices already securely connect to our network today using mutual TLS and our <a href="https://developers.cloudflare.com/api-shield/">API Shield</a> product. Major device manufacturers use <a href="https://developers.cloudflare.com/workers/">Workers</a> and our Developer Platform to offload authentication, compute and most importantly, reduce the compute needed on the device itself. <a href="https://developers.cloudflare.com/pub-sub/">Cloudflare Pub/Sub</a>, our programmable, MQTT-based messaging service, is yet another building block.</p><p>But we realized there were still a few missing pieces: device management, analytics and anomaly detection. There are a <i>lot</i> of “IoT SIM” providers out there, but the clear majority are focused on shipping SIM cards at scale (great!) and less so on the security side (not so great) or the developer side (also not great). Customers have been telling us that they wanted a way to easily secure their IoT devices, just as they secure their employees with our Zero Trust platform.</p><p><b>Cloudflare’s IoT Platform will build in support for provisioning cellular connectivity at scale</b>: we’ll support ordering, provisioning and managing cellular connectivity for your devices. Every packet that leaves each IoT device can be inspected, approved or rejected by policies you create <i>before</i> it reaches the Internet, your cloud infrastructure, or your other devices.</p><p>Emerging standards like <a href="https://www.gsma.com/iot/iot-safe/">IoT SAFE</a> will also allow us to use the SIM card as a root-of-trust, storing device secrets (and API keys) securely on the device, whilst raising the bar to compromise.</p><p>This also doesn’t mean we’re leaving the world of mutual TLS behind: we understand that not every device makes sense to connect over solely over a cellular network, be it due to per-device costs, lack of coverage, or the need to support an existing deployment that can’t just be re-deployed.</p>
    <div>
      <h3>Bringing Zero Trust security to IoT</h3>
      <a href="#bringing-zero-trust-security-to-iot">
        
      </a>
    </div>
    <p>Unlike humans, who need to be able to access a potentially unbounded number of destinations (websites), the endpoints that an IoT device needs to speak to are typically far more bounded. But in practice, there are often few controls in place (or available) to ensure that a device only speaks to your API backend, your storage bucket, and/or your telemetry endpoint.</p><p>Our Zero Trust platform, however, has a solution for this: <a href="https://www.cloudflare.com/products/zero-trust/gateway/">Cloudflare Gateway</a>. You can create DNS, network or HTTP policies, and allow or deny traffic based not only on the source or destination, but on richer identity- and location- based controls. It seemed obvious that we could bring these same capabilities to IoT devices, and allow developers to better <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">restrict and control</a> what endpoints their devices talk to (so they don’t become part of a botnet).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5Z8zzOG3weGSYnfNH966TQ/c28bf1d7b37a3a9d39b3d4d7cfe61d90/image2-38.png" />
            
            </figure><p>At the same time, we also identified ways to extend Gateway to be aware of IoT device specifics. For example, imagine you’ve provisioned 5,000 IoT devices, all connected over cellular directly into Cloudflare’s network. You can then choose to lock these devices to a specific geography if there’s no need for them to “travel”; ensure they can only speak to your API backend and/or metrics provider; and even ensure that if the SIM is lifted from the device it no longer functions by locking it to the IMEI (the serial of the modem).</p><p>Building these controls at the network layer raises the bar on IoT device security and reduces the risk that your fleet of devices becomes the tool of a bad actor.</p>
    <div>
      <h3>Get the compute off the device</h3>
      <a href="#get-the-compute-off-the-device">
        
      </a>
    </div>
    <p>We’ve talked a lot about security, but what about compute and storage? A device can be extremely secure if it doesn’t have to do anything or communicate anywhere, but clearly that’s not practical.</p><p>Simultaneously, doing non-trivial amounts of compute “on-device” has a number of major challenges:</p><ul><li><p>It requires a more powerful (and thus, more expensive) device. Moderately powerful (e.g. ARMv8-based) devices with a few gigabytes of RAM might be getting cheaper, but they’re always going to be more expensive than a lower-powered device, and that adds up quickly at IoT-scale.</p></li><li><p>You can’t guarantee (or expect) that your device fleet is homogenous: the devices you deployed three years ago can easily be several times slower than what you’re deploying today. Do you leave those devices behind?</p></li><li><p>The more business logic you have on the device, the greater the operational and deployment risk. Change management becomes critical, and the risk of “bricking” — rendering a device non-functional in a way that you can’t fix it remotely — is never zero. It becomes harder to iterate and add new features when you’re deploying to a device on the other side of the world.</p></li><li><p>Security continues to be a concern: if your device needs to talk to external APIs, you have to ensure you have explicitly scoped the credentials they use to avoid them being pulled from the device and used in a way you don’t expect.</p></li></ul><p>We’ve heard other platforms talk about “edge compute”, but in practice they either mean “run the compute on the device” or “in a small handful of cloud regions” (introducing latency) — neither of which fully addresses the problems highlighted above.</p><p>Instead, by enabling secure access to <a href="https://workers.cloudflare.com/">Cloudflare Workers</a> for compute, <a href="/workers-analytics-engine/">Analytics Engine</a> for device telemetry, <a href="/introducing-d1/">D1</a> as a SQL database, and <a href="https://developers.cloudflare.com/pub-sub/">Pub/Sub</a> for massively scalable messaging — IoT developers can both keep the compute off the device, but still keep it <i>close</i> to the device thanks to our <a href="https://www.cloudflare.com/network/">global network</a> (275+ cities and counting).</p><p>On top of that, developers can use modern tooling like <a href="https://developers.cloudflare.com/workers/wrangler/get-started/">Wrangler</a> to both iterate more rapidly <i>and</i> deploy software more safely, avoiding the risk of bricking or otherwise breaking part of your IoT fleet.</p>
    <div>
      <h3>Where do I sign up?</h3>
      <a href="#where-do-i-sign-up">
        
      </a>
    </div>
    <p>You can <a href="https://www.cloudflare.com/register-for-our-iot-platform/">register your interest in our IoT Platform today</a>: we’ll be reaching out over the coming weeks to better understand the problems teams are facing and working to get our closed beta into the hands of customers in the coming months. We’re especially interested in teams who are in the throes of figuring out how to deploy a new set of IoT devices and/or expand an existing fleet, no matter the use-case.</p><p>In the meantime, you can start building on <a href="https://developers.cloudflare.com/api-shield/security/mtls/">API Shield</a> and <a href="https://developers.cloudflare.com/pub-sub/">Pub/Sub</a> (MQTT) if you need to start securing IoT devices today.</p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[IoT]]></category>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Connectivity]]></category>
            <category><![CDATA[SIM]]></category>
            <guid isPermaLink="false">4XIkTS7tUujtr46Q9l1lUN</guid>
            <dc:creator>Matt Silverlock</dc:creator>
        </item>
        <item>
            <title><![CDATA[Announcing Pub/Sub: Programmable MQTT-based Messaging]]></title>
            <link>https://blog.cloudflare.com/announcing-pubsub-programmable-mqtt-messaging/</link>
            <pubDate>Thu, 12 May 2022 12:59:22 GMT</pubDate>
            <description><![CDATA[ Announcing the beta of Cloudflare Pub/Sub, our programmable, serverless message broker built on the open MQTT messaging standard ]]></description>
            <content:encoded><![CDATA[ <p><i>This post is also available in </i><a href="/zh-cn/announcing-pubsub-programmable-mqtt-messaging-zh-cn/"><i>简体中文</i></a><i>, </i><a href="/ja-jp/announcing-pubsub-programmable-mqtt-messaging-ja-jp/"><i>日本語</i></a><i>, </i><a href="/es-es/announcing-pubsub-programmable-mqtt-messaging-es-es/"><i>Español</i></a><i>.</i></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/55VlABQ44OeATPuW7eZIzQ/abbe5df4ecea8e7cf8aaf70ee6221f8e/image1-26.png" />
            
            </figure><p>One of the underlying questions that drives Platform Week is “how do we enable developers to build full stack applications on Cloudflare?”. With Workers as a serverless environment for easily deploying distributed-by-default applications, <a href="https://developers.cloudflare.com/workers/learning/how-kv-works/">KV</a> and <a href="https://developers.cloudflare.com/workers/learning/using-durable-objects/">Durable Objects</a> for caching and coordination, and <a href="https://www.cloudflare.com/developer-platform/products/r2/">R2</a> as our zero-egress cost <a href="https://www.cloudflare.com/learning/cloud/what-is-object-storage/">object store</a>, we’ve continued to discuss what else we need to build to help developers both build new apps and/or bring existing ones over to Cloudflare’s Developer Platform.</p><p>With that in mind, we’re excited to announce the private beta of Cloudflare Pub/Sub, a <i>programmable</i> message bus built on the ubiquitous and industry-standard MQTT protocol supported by tens of millions of existing devices today.</p><p>In a nutshell, Pub/Sub allows you to:</p><ul><li><p>Publish event, telemetry or sensor data from any MQTT capable client (and in the future, other client-facing protocols)</p></li><li><p>Write code that can filter, aggregate and/or modify messages <i>as they’re published to the broker</i> using Cloudflare Workers, and before they’re distributed to subscribers, without the need to ferry messages to a single “cloud region”</p></li><li><p>Push events from applications in other clouds, or from on-prem, with Pub/Sub acting as a programmable event router or a hook into persistent data storage (such as R2 or KV)</p></li><li><p>Move logic out of the client, where it can be hard (or risky!) to push updates, or where running code on devices raises the materials cost (CPU, memory), while still keeping latency as low as possible (your code runs in <a href="https://www.cloudflare.com/network/">every location</a>).</p></li></ul><p>And there’s likely a long list of things we haven’t even predicted yet. We’ve seen developers <a href="https://workers.cloudflare.com/built-with">build incredible things</a> on top of Cloudflare Workers, and we’re excited to see what they build with the power of a programmable message bus like Pub/Sub, too.</p>
    <div>
      <h3>Why, and what is, MQTT?</h3>
      <a href="#why-and-what-is-mqtt">
        
      </a>
    </div>
    <p>If you haven’t heard of <a href="https://mqtt.org/">MQTT</a> before, you might be surprised to know that it’s one of the most pervasive “messaging protocols” deployed today. There are tens of millions (at least!) of devices that speak MQTT today, from connected payment terminals through to autonomous vehicles, cell phones, and even video games. Sensor readings, telemetry, financial transactions and/or mobile notifications &amp; messages are all common use-cases for MQTT, and the flexibility of the protocol allows developers to make trade-offs around reliability, topic hierarchy and persistence specific to their use-case.</p><p>We chose MQTT as the foundation for Cloudflare Pub/Sub as we believe in building on top of open, accessible standards, as we did when we chose the Service Worker API as the foundation for Workers, and with our recently announced participation in the <a href="/introducing-the-wintercg/">Winter Community Group around server-side runtime APIs.</a> We also wanted to enable existing clients an easy path to benefit from Cloudflare’s scale and programmability, and ensure that developers have a rich ecosystem of client libraries in languages they’re familiar with today.</p><p>Beyond that, however, we also think MQTT meets the needs of a modern “publish-subscribe” messaging service. It has flexible delivery guarantees, TLS for transport encryption (no bespoke crypto!), a scalable topic creation and subscription model, extensible per-message metadata, and importantly, it provides a well-defined specification with clear error messages.</p><p>With that in mind, we expect to support many more “on-ramps” to Pub/Sub: a lot of the best parts of MQTT can be abstracted away from clients who might want to talk to us over HTTP or WebSockets.</p>
    <div>
      <h3>Building Blocks</h3>
      <a href="#building-blocks">
        
      </a>
    </div>
    <p>Given the ability to write code that acts on every message published to a Pub/Sub Broker, what does it look like in practice?</p><p>Here’s a simple-but-illustrative example of handling Pub/Sub messages directly in a Worker. We have clients (in this case, payment terminals) reporting back transaction data, and we want to capture the number of transactions processed in each region, so we can track transaction volumes over time.</p><p>Specifically, we:</p><ol><li><p>Filter on a specific topic prefix for messages we care about</p></li><li><p>Parse the message for a specific key:value pair as a metric</p></li><li><p>Write that metric directly into <a href="/workers-analytics-engine">Workers Analytics Engine</a>, our new serverless time-series analytics service, so we can directly query it with GraphQL.</p></li></ol><p>This saves us having to stand up and maintain an external metrics service, configure another cloud service, or think about how it will scale: we can do it all directly on Cloudflare.</p>
            <pre><code>
async function pubsub(
  messages: Array&lt;PubSubMessage&gt;,
  env: any,
  ctx: ExecutionContext
): Promise&lt;Array&lt;PubSubMessage&gt;&gt; {
  
  for (let msg of messages) {
    // Extract a value from the payload and write it to Analytics Engine
    // In this example, a transactionsProcessed counter that our clients are sending
    // back to us.
    if (msg.topic.startsWith(“/transactions/”)) {
      // This is non-blocking, and doesn’t hold up our message
      // processing.
      env.TELEMETRY.writeDataPoint({
        // We label this metric so that we can query against these labels
        labels: [`${msg.broker}.${msg.namespace}`, msg.payload.region, msg.payload.merchantId],
        metrics: [msg.payload.transactionsProcessed ?? 0]
      });
    }
  }

  // Return our messages back to the Broker
  return messages;
}

const worker = {
  async fetch(req: Request, env: any, ctx: ExecutionContext) {
    // Critical: you must validate the incoming request is from your Broker
    // In the future, Workers will be able to do this on your behalf for Workers
    // in the same account as your Pub/Sub Broker.
    if (await isValidBrokerRequest(req)) {

      // Parse the incoming PubSub messages
      let incomingMessages: Array&lt;PubSubMessage&gt; = await req.json();
      
      // Pass the message to our pubsub handler, and capture the returned
      // messages
      let outgoingMessages = await pubsub(incomingMessages, env, ctx);

      // Re-serialize the messages and return a HTTP 200 so our Broker
      // knows we’ve successfully handled them
      return new Response(JSON.stringify(outgoingMessages), { status: 200 });
    }

    return new Response("not a valid Broker request", { status: 403 });
  },
};

export default worker;</code></pre>
            <p>We can then query these metrics directly using a familiar language: SQL. Our query takes the metrics we’ve written and gives us a breakdown of transactions processed by our payment devices, grouped by merchant (and again, all on Cloudflare):</p>
            <pre><code>SELECT
  label_2 as region,
  label_3 as merchantId,
  sum(metric_1) as total_transactions
FROM TELEMETRY
WHERE
  metric_1 &gt; 0
  AND timestamp &gt;= now() - 604800
GROUP BY
  region,
  merchantId
ORDER BY
  total_transactions DESC
LIMIT 10</code></pre>
            <p>You could replace or augment the calls to Analytics Engine with any number of examples:</p><ul><li><p>Asynchronously writing messages (using <a href="https://developers.cloudflare.com/workers/runtime-apis/fetch-event/#waituntil">ctx.waitUntil</a>) on specific topics to our R2 <a href="https://www.cloudflare.com/learning/cloud/what-is-object-storage/">object storage</a> without blocking message delivery</p></li><li><p>Rewriting messages on-the-fly with data <a href="https://developers.cloudflare.com/workers/runtime-apis/kv/">populated from KV</a>, before the message is pushed to subscribers</p></li><li><p>Aggregate messages based on their payload and HTTP POST them to legacy infrastructure hosted outside of Cloudflare</p></li></ul><p>Pub/Sub gives you a way to get data into Cloudflare’s network, filter, aggregate and/or mutate it, and push it back out to subscribers — whether there’s 10, 1,000 or 10,000 of them listening on that topic.</p>
    <div>
      <h3>Where are we headed?</h3>
      <a href="#where-are-we-headed">
        
      </a>
    </div>
    <p>As we often like to say: we’re just getting started. The private beta for Pub/Sub is just the beginning of our journey, and we have a long list of capabilities we’re already working on.</p><p>Critically, one of our priorities is to cover as much of the MQTT v5.0 specification as we can, so that customers can migrate existing deployments and have it “just work”. Useful capabilities like <a href="https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901250">shared subscriptions</a> that allow you to load-balance messages across many subscribers; <a href="https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901242">wildcard subscriptions</a> (both single- and multi-tier) for aggregation use cases, stronger delivery guarantees (<a href="https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901234">QoS</a>), and support for additional authentication modes (specifically, Mutual TLS) are just a few of the things we’re working on.</p><p>Beyond that, we’re focused on making sure Pub/Sub’s developer experience is the best it  can be, and during the beta we’ll be:</p><ul><li><p>Supporting a new set of “pubsub” sub-commands in <a href="https://www.npmjs.com/package/wrangler">Wrangler</a>, our developer CLI, so that getting started is as low-friction as possible</p></li><li><p>Building ‘native’ bindings (similar to how <a href="https://developers.cloudflare.com/workers/runtime-apis/kv/">Workers KV</a> operates) that allow you to publish messages and subscribe to topics directly from Worker code, regardless of whether the message originates from (or is destined for) a client beyond Cloudflare</p></li><li><p>Exploring more ways to publish &amp; subscribe from non-MQTT based clients, including HTTP requests and WebSockets, so that integrating existing code is even easier.</p></li></ul><p>Our <a href="https://developers.cloudflare.com/pub-sub/">developer documentation</a> will cover these capabilities as we land them.</p><p>We’re also aware that pricing is a huge part of developer experience, and are committed to ensuring that there is an accessible and flexible free tier. We want to enable developers to experiment, prototype and solve problems we haven’t thought of yet. We’ll be sharing more on pricing during the course of the beta.</p>
    <div>
      <h3>Getting Started</h3>
      <a href="#getting-started">
        
      </a>
    </div>
    <p>If you want to start using Pub/Sub, <a href="https://www.cloudflare.com/cloudflare-pub-sub-lightweight-messaging-private-beta/">sign up for the private beta</a>: we plan to start enabling access within the next month. We’re looking forward to collecting feedback from developers and seeing what folks start to build.</p><p>In the meantime, review the <a href="https://developers.cloudflare.com/pub-sub/">brand-new Pub/Sub developer documentation</a> to understand how Pub/Sub works under the hood, the MQTT protocol, and how it integrates with Cloudflare Workers.</p> ]]></content:encoded>
            <category><![CDATA[Platform Week]]></category>
            <category><![CDATA[IoT]]></category>
            <guid isPermaLink="false">1QZruLuBkHiM4vy3PILeP8</guid>
            <dc:creator>Matt Silverlock</dc:creator>
        </item>
        <item>
            <title><![CDATA[Using Cloudflare One to Secure IoT devices]]></title>
            <link>https://blog.cloudflare.com/using-cloudflare-one-to-secure-iot-devices/</link>
            <pubDate>Fri, 18 Mar 2022 21:03:00 GMT</pubDate>
            <description><![CDATA[ We asked ourselves: can we use our own products to secure IoT devices themselves — even on the same network as production systems? Using Cloudflare One, the answer is yes. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>There is probably an insecure device with an exploitable vulnerability sitting in your house. And your office. And probably even your child’s school. Cameras, printers, speakers, access control readers, thermostats, even heart monitors... all of these devices are, or can be, Internet of Things (IoT) devices. These IoT devices are seamlessly integrated into our modern lives to improve efficiency and control of our environments — yet they are notoriously insecure. This is due to the constrained nature of device hardware and their limited computational capacity, which often lead to minimize access controls, hard-coded passwords, and an inability to patch remotely.</p><p>The reality of this threat can play out dramatically. Take, for example, the <a href="/inside-mirai-the-infamous-iot-botnet-a-retrospective-analysis/">2016 Mirai botnet attack</a>, in which hackers exploited millions of IoT devices to become a large-scale botnet network capable of launching DDoS attacks that took down major portions of the Internet, including Twitter, the Guardian, and CNN. These types of attacks are hardly an infrequent occurrence. Cloudflare experienced this reality firsthand in March 2021, when one of our potential vendors for physical security cameras, Verkada, was compromised. The incident allowed a hacker to access Verkada's internal support tools to manage the cameras remotely, enabling them to attempt to move laterally to other devices in the network. Thankfully, our use of a <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust model</a> at Cloudflare <a href="/about-the-march-8-9-2021-verkada-camera-hack/">prevented the hackers from moving laterally</a>; the incident affected the cameras and nothing else.</p><p>But even if we're unaffected, we view security incidents as a challenge to take our security products one step further. So we asked ourselves: can we use our own products to secure IoT devices themselves — even on the same network as production systems - thus ensuring any compromise of these notoriously insecure devices is isolated? Using Cloudflare One, the answer is yes.</p>
    <div>
      <h3>Today’s Solutions: Security with Complexity</h3>
      <a href="#todays-solutions-security-with-complexity">
        
      </a>
    </div>
    
    <div>
      <h4>Zero Trust Model</h4>
      <a href="#zero-trust-model">
        
      </a>
    </div>
    <p>As aforementioned, Cloudflare was not impacted by an IoT compromise because we use a Zero Trust model. If the environmental considerations are suitable, such as in Cloudflare's corporate offices, the <a href="https://www.cloudflare.com/learning/network-layer/enterprise-networking/">enterprise network</a> can be ring-fenced with a Zero Trust model. Lateral movement is prevented because hitting any other part of the network requires authentication for access. Given that the IoT device itself is not isolated, careful attention must be paid to put all other network points of entry behind zero trust access.</p><p>However, not all environments can be so diligently controlled. Take, for example, data centers. The presence of other vendors, complexity of old production networks, and prevalence of machine-to-machine connections means we can't provide the same zero trust guarantees upon installing an IoT device (such as an access reader or a camera) as we can in our corporate offices. As the complexity of the environment grows, successfully deploying a Zero Trust model to prevent successful lateral movement from IoT devices only becomes more difficult.</p>
    <div>
      <h4>VLAN</h4>
      <a href="#vlan">
        
      </a>
    </div>
    <p>Many enterprises deploy their IoT devices on a completely separate network from production, utilizing an out-of-band network or VLAN. While VLANs create isolation at Layer 2, they require access lists at their upstream routed interface to restrict Layer 3 traffic. And many network administrators want additional configurations for more stringent guarantees, such as access lists for both ingress and egress traffic and logging for both successful and denied connections. The management of these access lists can quickly grow in complexity: each new network is another landscape to protect, patch, and detect.</p><p>If not properly configured, the security guarantees of VLANs can be easily undermined. Take a network with two separate VLANs; if the access lists are not consistently applied to the two respective switches, a hacked device from one VLAN could easily pivot to a device under the other VLAN. A network administrator could use <a href="https://en.wikipedia.org/wiki/Private_VLAN#:~:text=Private%20VLAN%2C%20also%20known%20as,ports%2C%20and%20a%20single%20uplink.">private VLANs</a> on a per switch basis but, again, this adds additional complexity.</p><p>Consistent configurations and architectural choices, from the access list rules to the type of gear used at each site, are required to successfully deploy VLANs to prevent lateral movement. As the number of sites increases and an environment's footprint expands, this only becomes more challenging.</p>
    <div>
      <h3>The Cloudflare Solution</h3>
      <a href="#the-cloudflare-solution">
        
      </a>
    </div>
    <p>We use our own products to isolate devices without deploying on a separate network. This provides security guarantees without requiring additional hardware. It's a severless, infrastructure-less solution to isolating a network.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/giYC0IVjLQCR4LfLN98Xw/f876288406022b22ac5a726a9da9dbb7/Magic-x-IoT.png" />
            
            </figure><p>How is this done? The hardware device (for our proof of concept, a Verkada camera) is connected to a Power over Ethernet switch, which is configured to tunnel its traffic via Anycast GRE to the Cloudflare Global network. There, we can configure rules from the Cloudflare dash to write egress rules, ensuring that outbound traffic only goes where it is supposed to. Thus, lateral movement is prevented.</p><p>This architecture allows a network administrator to control traffic from Layer 3 and up from a single dashboard by applying policies to ingress and egress traffic instantly. This architecture provides a simple set-it-and-forget-it solution that can adapt to a changing environment: protection is vendor agnostic, uses common standards, and log collection is automatic. Compared to other methods of lateral movement protection, Cloudflare provides superior ease, adaptability, and security guarantees necessary to securely manage any environment with IoT devices.</p>
<table>
<colgroup>
<col></col>
<col></col>
<col></col>
<col></col>
</colgroup>
<thead>
  <tr>
    <th></th>
    <th>Zero Trust</th>
    <th>VLAN</th>
    <th>Cloudflare One</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><span>Prevents lateral movement with proper configuration</span></td>
    <td><span>✅</span></td>
    <td><span>✅</span></td>
    <td><span>✅</span></td>
  </tr>
  <tr>
    <td>Hardware not required</td>
    <td><span>✅</span></td>
    <td><span>❌</span></td>
    <td><span>✅</span></td>
  </tr>
  <tr>
    <td>Automatic logging</td>
    <td><span>✅</span></td>
    <td><span>❌</span></td>
    <td><span>✅</span></td>
  </tr>
  <tr>
    <td>Isolation of IoT Device itself</td>
    <td><span>❌</span></td>
    <td><span>✅</span></td>
    <td><span>✅</span></td>
  </tr>
  <tr>
    <td>Single point of configuration</td>
    <td><span>❌</span></td>
    <td><span>❌</span></td>
    <td><span>✅</span></td>
  </tr>
  <tr>
    <td>Complexity does not increase with number of devices</td>
    <td><span>❌</span></td>
    <td><span>❌</span></td>
    <td><span>✅</span></td>
  </tr>
  <tr>
    <td>Device agnostic</td>
    <td><span>❌</span></td>
    <td><span>❌</span></td>
    <td><span>✅</span></td>
  </tr>
  <tr>
    <td>Speed and performance benefits from CF's network</td>
    <td><span>❌</span></td>
    <td><span>❌</span></td>
    <td><span>✅</span></td>
  </tr>
</tbody>
</table>
    <div>
      <h3>What's next?</h3>
      <a href="#whats-next">
        
      </a>
    </div>
    <p>In Q4 2021, we hired a trusted pen test partner, to test this setup by replicating a rogue device attempting to pivot to production networks from behind the Cloudflare One architecture. They were unable to move laterally — as in, this architecture works.</p><p>Given that this architecture has been tested, we will begin to formalize the rollout of Cloudflare One internally at our data center sites as part of a Physical Security initiative to keep our most trusted assets secure.</p><p>For more information on using Cloudflare One at your enterprise, please reach out to our Sales team.</p> ]]></content:encoded>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[IoT]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">5g8Xw6VGGHM5dVnZifCpK9</guid>
            <dc:creator>Molly Cinnamon</dc:creator>
            <dc:creator>Derek Chamorro</dc:creator>
        </item>
        <item>
            <title><![CDATA[DNS-Over-TLS Built-In & Enforced - 1.1.1.1 and the GL.iNet GL-AR750S]]></title>
            <link>https://blog.cloudflare.com/dns-over-tls-built-in/</link>
            <pubDate>Sat, 14 Jul 2018 17:13:00 GMT</pubDate>
            <description><![CDATA[ Back in April, I wrote about how it was possible to modify a router to encrypt DNS queries over TLS using Cloudflare's 1.1.1.1 DNS Resolver and a GL.iNet router; the folks at GL.iNet read that blog post and decided to bake DNS-Over-TLS support into their new router using the 1.1.1.1 resolver. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>GL.iNet GL-AR750S in black, same form-factor as the prior white GL.iNet GL-AR750. Credit card for comparison.</p><p>Back in April, I wrote about how it was possible to <a href="/dns-over-tls-for-openwrt/">modify a router to encrypt DNS queries over TLS</a> using Cloudflare's 1.1.1.1 DNS Resolver. For this, I used the GL.iNet GL-AR750 because it was pre-installed with OpenWRT (LEDE). The folks at GL.iNet read that blog post and decided to bake DNS-Over-TLS support into their new router using the 1.1.1.1 resolver, they sent me one to take a look at before it's available for pre-release. Their new router can also be configured to force DNS traffic to be encrypted before leaving your local network, which is particularly useful for any IoT or mobile device with hard-coded DNS settings that would ordinarily ignore your routers DNS settings and send <a href="https://www.cloudflare.com/learning/dns/what-is-dns/">DNS queries</a> in plain-text.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/20ZCmvqywZDLMhksEzdyXC/1339330e29fe38bb61f4d61aba058a0a/Screen-Shot-2018-07-14-at-04.36.11.png" />
            
            </figure><p>In <a href="/dns-over-tls-for-openwrt/">my previous blog post</a> I discussed how DNS was often the weakest link in the chain when it came to browsing privacy; whilst HTTP traffic is increasingly encrypted, this is seldom the case for DNS traffic. This makes it relatively trivial for an intermediary to work out what site you're sending traffic to. In that post, I went through the technical steps required to modify a router using OpenWRT to support DNS Privacy using the DNS-Over-TLS protocol.</p><p>GL.iNet were in contact since I wrote the original blog post and very supportive of encrypting DNS queries at the router level. Last week whilst working in Cloudflare's San Francisco office, they reached out to me over Twitter to let me know they were soon to launch a new product with a new web UI containing a "DNS over TLS from Cloudflare" feature and offered to send me the new router before it was even available for pre-order.</p><p>On arrival back to our London office, I found a package from Hong Kong waiting for me. Aside from the difference in colour, the AR750<b>S</b> itself is identical in form-factor to the AR750 and was packaged up very similarly. They both have capacity for external storage, an OpenVPN client and can be powered over USB; amongst many other useful functionalities. Alongside the <i>S</i> suffixing the model number, I did notice the new model had some upgraded specs, but I won't dwell on that here.</p><p>Below you can see the white AR750 and the new black AR750S router together for comparison. Both have a WAN ethernet port, 2 LAN ethernet ports, a USB port for external storage (plus a micro SD port) and a micro USB power port.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6xi7DHkcKlmlyhATCPwXY5/ff76634b1660bd6273c04d551b057a39/IMG_4222-COLLAGE--1-.jpg" />
            
            </figure><p>The UI is where the real changes come. In the <i>More Settings</i> tab, there's an option to configure DNS with some nice options.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/44yMMCQEQYU0gwF2Mw7sJy/a1541ecc5226bd91ff4a0b4371234e3c/Screen-Shot-2018-07-14-at-03.46.56.png" />
            
            </figure><p>One notable option is the <i>DNS over TLS from Cloudflare</i> toggle. This option uses the TLS security protocol for encrypting DNS queries, helping increase privacy and prevent eavesdropping.</p><p>Another option, <i>Override DNS Settings for All Clients</i>, forcibly overrides the DNS configuration on all clients so that queries are encrypted to the WAN. Unencrypted DNS traffic is intercepted by the router, and by forcing traffic to use it's own local resolver, it is able to transparently rewrite traffic to be encrypted before leaving the router and heading out into the public internet to the upstream resolver - 1.1.1.1.</p><p>This option is particularly useful when dealing with embedded systems or IoT devices which don't have configurable DNS options; Smart TVs, TV boxes, <a href="/iot-security-anti-patterns/">your toaster</a>, etc. As this router can proxy traffic over to other Wi-Fi networks (and is portable), this is particularly useful when connecting out to an ordinarily insecure Wi-Fi network; the router can sit in the middle and transparently upgrade unencrypted DNS queries. This is even useful when dealing with phones and tablets where you can't install a DNS-Over-TLS client.</p><p>These options both come disabled by default, but can easily be toggled in the UI. As before, you can configure other DNS resolvers by toggling "Manual DNS Server Settings" and entering in any other DNS servers.</p><p>There are a number of other cool features I've noticed in this router; for example, the <i>More Settings</i> &gt; <i>Advanced</i> option takes you into a standard LuCi UI that ordinarily comes bundled with LEDE routers. Like previous routers, you can easily <a href="https://www.cloudflare.com/learning/access-management/what-is-ssh/">SSH</a> into the device and install various program and perform customisations.</p><p>For example; after installing TCPDump on the router, I am able to run <code>tcpdump -n -i wlan-sta 'port 853'</code> to see encrypted DNS traffic leaving the router. When I run a DNS query over an unencrypted resolver (using <code>dig A junade.com</code> on my local computer), I can see the outgoing DNS traffic upgraded to encrypted queries on 1.1.1.1 and 1.0.0.1.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1xYgg1X0pt0JApfVWfLNo2/d7273e83795f4640db9903809b025233/Screen-Shot-2018-07-14-at-17.21.37.png" />
            
            </figure><p>If you're interested in learning how to configure 1.1.1.1 on other routers, your computer or your phone - check out the project landing page at <a href="https://1.1.1.1/">https://1.1.1.1/</a>. If you're a developer and want to learn about how you can integrate 1.1.1.1 into your project with either DNS-Over-TLS or DNS-Over-HTTPS, checkout the <a href="https://developers.cloudflare.com/1.1.1.1/">1.1.1.1 Developer Documentation</a>.</p> ]]></content:encoded>
            <category><![CDATA[1.1.1.1]]></category>
            <category><![CDATA[DNS]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Privacy]]></category>
            <category><![CDATA[Resolver]]></category>
            <category><![CDATA[IoT]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">6qlpMBGbFi8esdYxM4LWxG</guid>
            <dc:creator>Junade Ali</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing Spectrum: Extending Cloudflare To 65,533 More Ports]]></title>
            <link>https://blog.cloudflare.com/spectrum/</link>
            <pubDate>Thu, 12 Apr 2018 13:01:00 GMT</pubDate>
            <description><![CDATA[ We are introducing Spectrum, which brings Cloudflare’s security and acceleration to the whole spectrum of TCP ports and protocols for our Enterprise customers. It’s DDoS protection for any box, container or VM that connects to the internet. ]]></description>
            <content:encoded><![CDATA[ <p>Today we are introducing <a href="https://cloudflare.com/products/cloudflare-spectrum/">Spectrum</a>, which brings Cloudflare’s security and acceleration to the whole <i>spectrum</i> of TCP ports and protocols for our Enterprise customers. It’s <a href="https://www.cloudflare.com/ddos/">DDoS protection</a> for any box, container or VM that connects to the internet; whether it runs email, file transfer or a custom protocol, it can now get the full benefits of Cloudflare. If you want to skip ahead and see it in action, you can scroll to the video demo at the bottom.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3DPG25xnNPEy75TxEffEiZ/b5cc3a03fde7fe2e59ffc7e4f15b153c/spectrum-attack.svg" />
            
            </figure>
    <div>
      <h3>DDoS Protection</h3>
      <a href="#ddos-protection">
        
      </a>
    </div>
    <p>The core functionality of Spectrum is its ability to block large DDoS attacks. Spectrum benefits from Cloudflare’s existing DDoS mitigation (which this week <a href="https://twitter.com/jgrahamc/status/983278388059058181">blocked a 900 Gbps flood</a>). Spectrum’s DDoS protection has already been battle tested. Just soon as we opened up Spectrum for beta, Spectrum received its first SYN flood.</p><p>One of Spectrum's earliest deployments was in front of <a href="https://hypixel.net">Hypixel’s</a> infrastructure. Hypixel runs the largest minecraft server, and because gamers can be - uh, passionate - they were one of the earliest targets of the terabit-per-second Mirai botnet. “Hypixel was one of the first subjects of the Mirai botnet DDoS attacks and frequently receives large attacks. Before Spectrum, we had to rely on unstable services and techniques that increased latency, worsening user's experience. Now, we're able to be continually protected without added latency, which makes it the best option for any latency and uptime sensitive service such as online gaming,” Bruce Blair, the CTO at Hypixel, told us.</p><p>Another early team we talked to about Spectrum was the security team at <a href="https://montecito.bank/">Montecito Bank &amp; Trust</a>. As a financial institution, they have a highly technical and active security team; they were also one of the first customers to use Cloudflare’s DNSSEC when it was brand new. Paul Abramson, Montecito Bank &amp; Trust’s Director of Technology told us, “We were looking for a security solution to protect additional services like email and SSH so that if we are subject to attack, our operations can continue to run reliably and securely.”</p>
    <div>
      <h3>TLS Support</h3>
      <a href="#tls-support">
        
      </a>
    </div>
    <p>Security and encryption go hand in hand. With Spectrum, you can terminate TLS at Cloudflare’s edge. The main benefit of TLS termination at the edge is that is speeds up performance (there’s less distance to travel for the three round trips of the TLS handshake).</p><p>We think the most interesting outcome is that just by adding support for TLS in the client, Cloudflare can now add encryption to legacy protocols and services that don’t traditionally support encrypted transit.</p>
    <div>
      <h3>Firewall</h3>
      <a href="#firewall">
        
      </a>
    </div>
    <p>Spectrum integrates with Cloudflare’s IP Firewall so that you can choose which connections should be forwarded to your servers and which should be blocked at Cloudflare’s edge.</p><p>This can be managed via API too, so you can write scripts that allow and deny access on the fly.</p>
            <pre><code>curl -X POST "https://api.cloudflare.com/client/v4/user/firewall/access_rules/rules" \
     -H "X-Auth-Email: hello@example.com" \
     -H "X-Auth-Key: 0000000000000000000" \
     -H "Content-Type: application/json" \
     --data '{"mode":"block","configuration":{"target":"ip","value":"192.0.2.1"}}'</code></pre>
            
    <div>
      <h3>Demo</h3>
      <a href="#demo">
        
      </a>
    </div>
    <p>Many TCP load balancers and proxies can be cumbersome to set up, but Spectrum takes a few clicks. Tito Esterline on our team recorded a demo you can watch below. My suggestion is to play it with audio so you can hear the play by play.</p>
    <div>
      <h3>Get In Touch</h3>
      <a href="#get-in-touch">
        
      </a>
    </div>
    <p>If you want to get started, <a href="https://cloudflare.com/products/cloudflare-spectrum/">get in touch with our team</a>. Today Spectrum is available for applications on the Enterprise plan.</p><p>Why just Enterprise? While HTTP can use the <code>Host</code> header to identify services, TCP relies on each service having a unique IP address in order to identify it. Since IPv4 addresses are endangered, it’s quite expensive for us to delegate an IP per application and we needed to limit use. We’re actively thinking about ways to bring Spectrum to everyone. One idea is to offer IPv6-only Spectrum to non-Enterprise customers. Another idea is let anyone use Spectrum but pay for the IPv4 address. We’re not sure yet, but if you prefer one to the other, feel free to comment and let us know.</p><p>Oh and P.S. If you want to read about how Spectrum works, Marek wrote a <a href="/how-we-built-spectrum/">great blog post</a> about the Linux behavior that let us build it.</p> ]]></content:encoded>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Spectrum]]></category>
            <category><![CDATA[DDoS]]></category>
            <category><![CDATA[IoT]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">6c03nrfoWI8un8d8yrOSXn</guid>
            <dc:creator>Dani Grant</dc:creator>
        </item>
        <item>
            <title><![CDATA[TLS 1.3 is going to save us all, and other reasons why IoT is still insecure]]></title>
            <link>https://blog.cloudflare.com/why-iot-is-insecure/</link>
            <pubDate>Sun, 24 Dec 2017 16:57:44 GMT</pubDate>
            <description><![CDATA[ As I’m writing this, four DDoS attacks are ongoing and being automatically mitigated by Gatebot. Cloudflare’s job is to get attacked. Our network gets attacked constantly. ]]></description>
            <content:encoded><![CDATA[ <p>As I’m writing this, four DDoS attacks are ongoing and being automatically mitigated by <a href="/meet-gatebot-a-bot-that-allows-us-to-sleep/">Gatebot</a>. Cloudflare’s job is to get attacked. Our network gets attacked constantly.</p><p>Around the fall of 2016, we started seeing DDoS attacks that looked a little <a href="/say-cheese-a-snapshot-of-the-massive-ddos-attacks-coming-from-iot-cameras/">different than usual</a>. One attack we saw around that time had traffic coming from 52,467 unique IP addresses. The clients weren’t servers or desktop computers; when we tried to connect to the clients over port 80, we got the login pages to CCTV cameras.</p><p>Obviously it’s important to lock down IoT devices so that they can’t be co-opted into evil botnet armies, but when we talk to some IoT developers, we hear a few concerning security patterns. We’ll dive into two problematic areas and their solutions: software updates and TLS.</p>
    <div>
      <h3>The Trouble With Updates</h3>
      <a href="#the-trouble-with-updates">
        
      </a>
    </div>
    <p>With PCs, the end user is ultimately responsible for securing their devices. People understand that they need to update their computers and phones. <a href="https://www.macrumors.com/2017/01/05/ios-10-installed-on-76-percent-of-ios-devices/">Just 4 months after Apple released iOS 10, it was installed on 76% of active devices</a>.</p><p>People just don’t know that they are supposed to update IoT <i>things</i> like they are supposed to update their computers because they’ve never had to update things in the past. My parents are never going to install a software update for their thermometer.</p><p>And the problem gets worse over time. The longer a device stays on an older software version, the less likely it will be compatible with the newer version. At some point, an update may not be possible anymore. This is a very real concern as the shelf life of a connected thing can be 10 years in the case of a kitchen appliance - have you ever bought a refrigerator?</p><p>This is if the device can be patched at all. First, devices that are low battery are programmed not to receive updates because it’s too draining on the battery. Second, IoT devices are too lightweight to run a full operating system, they run just a compiled binary on firmware which means there’s a limit to the code that can later be pushed to it. Some devices cannot receive specific patches.</p><p>The other thing we hear about updates from IoT developers is that often they are afraid to push a new update because it could mean breaking hundreds of thousands of devices at once.</p><p>All this may not seem like a big deal - ok, so a toaster can get hacked, so what - but two very real things are at stake. First, every device that’s an easy target makes it easier to make other applications a target. Second, once someone is sitting on a device, they are in your network, which can put at stake any traffic sent over the wire.</p><p>The security model that worked for PC doesn’t work for IoT — the end user can’t be responsible, and patching isn’t reliable. We need something else. What’s the solution?</p><p>Traffic to an IoT device passes through many different networks: the transit provider from the application server, the <a href="https://www.cloudflare.com/learning/cdn/what-is-a-cdn/">content delivery network</a> used to deliver device traffic, the ISP to the building where the device sits.</p><p>It is at those network layers that protection can be added. As IoT device traffic moves through these networks, packets can be filtered to only let in good traffic. Even if a device is running vulnerable code, filters added in the network level can keep hackers out.</p>
    <div>
      <h3>The Trouble With TLS</h3>
      <a href="#the-trouble-with-tls">
        
      </a>
    </div>
    <p>TLS is used in two ways in IoT devices: First, TLS is used to encrypt data in transit. This is used for data privacy and to make it harder to reverse engineer the communications used by the device. Second, devices store client <a href="https://www.cloudflare.com/application-services/products/ssl/">TLS certificates</a> that are used to authenticate the devices to the application - makes it one step harder to fake a device.</p><p>There are three problems developers run into when they want to implement TLS in IoT. The first is that while IoT traffic needs to be quick and lightweight, TLS adds an additional two round trips to the start of every session. The second is that certificates can be large files, and device memory is limited in IoT. And the third is that some of the protocols that are being developed for IoT are plaintext by default.</p>
    <div>
      <h3>TLS Isn’t Lightweight</h3>
      <a href="#tls-isnt-lightweight">
        
      </a>
    </div>
    <p>IoT devices run on low power chips. An IoT device may only have 256 or 512 KB of RAM and often need to conserve battery. They send and receive lots of small information constantly. Imagine an internet connected wind sensor - it measures wind speed and every 30 seconds, sends the new wind speed to the application server. It’s just a few bytes of data it needs to get over the wire and it wants to be able to do so without as much overhead as possible to conserve RAM and battery life.</p><p>Here’s an HTTP POST to do that:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/10XN1xsCbML3sq6IUtHQlk/dd09f91c6593270de299f38e9490caad/Screen-Shot-2017-12-23-at-8.39.11-PM.png" />
            
            </figure><p>But let’s say the same device is going to use TLS. Here’s what the same POST looks like with the TLS handshake — this is with TLS 1.2:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4XYspSKePX6SnuugQdO58g/89efbf761a75c8a90df6d4627dc5439d/Screen-Shot-2017-12-23-at-8.40.00-PM.png" />
            
            </figure><p>Depending on distance between the device and the application server and the latency of the server, this can be hundreds of milliseconds added. The solution is likely the newest version of TLS, TLS 1.3.</p><p>TLS 1.3 eliminates a complete round trip in the TLS handshake, which makes TLS much lighter and faster. It cuts the number of round trips in the handshake by half by predicting what key agreement protocol and algorithm the server will decide to use and sends those guessed parameters and the key share directly in the client hello. And if the server likes that, it sends back its own key share for the same algorithm, and the whole handshake is done.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2LB8N0MKT0QFOFfZL3S91v/240f1a0436802f14c6c736f558b5f9f6/Screen-Shot-2017-12-23-at-8.50.04-PM.png" />
            
            </figure><p>If the same IoT device talks to the same server again, there’s actually <a href="/introducing-0-rtt/">no round trip at all</a>. The parameters chosen in the initial handshake are sent alongside application data in the first packet.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2BVBCXVFfkOtvxxvXO0M1Y/1b850b51f228b6d70540a4fbea3f3aa8/Screen-Shot-2017-12-24-at-8.23.08-AM.png" />
            
            </figure><p>Why isn’t every IoT device using 1.3 today? TLS 1.3 is still actively being developed in the IETF standards track and while Chrome as of version 56 in January and Firefox as of version 52 in March support 1.3, not everything does. The biggest problem today are middleboxes that are used by ISP’s and enterprises that panic when they see a 1.3 handshake and close the connection. This also happened when the world was upgrading to TLS 1.2 and middleboxes only understood TLS 1.1, so it’s just a matter of time.</p>
    <div>
      <h3>TLS Certificate Size</h3>
      <a href="#tls-certificate-size">
        
      </a>
    </div>
    <p>In a TLS handshake, the server can use a server-side TLS certificate to authenticate itself to the client, and the client can use a client-side certificate to authenticate itself to the server. Devices often store certificates to authenticate themselves to the application server. However, device memory is often limited in IoT, and certificates can be large. What can we do?</p><p>Most certificates today use the RSA algorithm, which has been around since the 70’s. The certificates are large because the keys in RSA to be secure need to be large - either 1,024 to 2,048 bytes, however, a newer algorithm using elliptic curve cryptography has been in wide use since the early 2000’s that can solve this problem. With elliptic curve cryptography we can use smaller keys with the same level of security as a larger RSA key and save space on the device.</p>
    <div>
      <h3>Default Plaintext IoT Protocols</h3>
      <a href="#default-plaintext-iot-protocols">
        
      </a>
    </div>
    <p>IoT devices need to be lightweight so two emerging protocols are replacing HTTP as the dominant transfer protocol for some IoT devices: MQTT and CoAP.</p><p>MQTT is a pub/sub protocol that has been around almost 20 years. In MQTT, a proxy server acts as a broker. An IoT device or web app publishes a message to the broker, and the broker distributes those messages to all the other IoT devices that need to receive that message.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/E4huJmd0Qc5gRa4N5kuxH/1116aa56a7893b95bd62909c577d525b/Screen-Shot-2017-12-23-at-8.52.51-PM.png" />
            
            </figure><p>When MQTT was written almost 20 years ago, it was written without security by intention. It was written for oil and gas companies and they were just sending sensor data and no one thought it needed to be encrypted.</p><p>CoAP was standardized just three years ago. It has all the same methods as HTTP, but it’s over UDP so it’s really light.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2PLPc3UEGFJ8RVGsEWpGpk/e073dc56e23e24c449aa96f97e1f9fa8/Screen-Shot-2017-12-23-at-8.53.03-PM.png" />
            
            </figure><p>The problem is, if you want to add TLS (DTLS really because CoAP is over UDP), it no longer is light anymore.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7Ih9SbeRbtRJk4OqCZGXgx/698e1d764c758df0cebcd832c5aefa63/Screen-Shot-2017-12-23-at-8.53.41-PM.png" />
            
            </figure>
    <div>
      <h3>The Future</h3>
      <a href="#the-future">
        
      </a>
    </div>
    <p>It will be quite interesting to see how update mechanisms and TLS implementations change as the number of deployed IoT devices continues to grow. If this type of thing interests you, <a href="https://www.cloudflare.com/careers/">come join us</a>.</p> ]]></content:encoded>
            <category><![CDATA[IoT]]></category>
            <category><![CDATA[TLS 1.3]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Gatebot]]></category>
            <category><![CDATA[DDoS]]></category>
            <category><![CDATA[Cryptography]]></category>
            <guid isPermaLink="false">3u3LeCl6VoYIZx3NbtHAa0</guid>
            <dc:creator>Dani Grant</dc:creator>
        </item>
        <item>
            <title><![CDATA[A New Cybersecurity Strategy for Europe]]></title>
            <link>https://blog.cloudflare.com/new-cyber-security-strategy-for-europe/</link>
            <pubDate>Sun, 01 Oct 2017 10:00:00 GMT</pubDate>
            <description><![CDATA[ October is European Cybersecurity Month, an annual advocacy campaign to raise awareness of cyber risks among citizens and businesses, and to share best practices in cybersecurity. ]]></description>
            <content:encoded><![CDATA[ <p>October is European Cybersecurity Month, an annual advocacy campaign to raise awareness of cyber risks among citizens and businesses, and to share best practices in cybersecurity. This year’s campaign was launched at an <a href="https://www.enisa.europa.eu/events/ecsm-kick-off-event-2017/european-cyber-security-month-kick-off-event-2017">event</a> in Estonia, a country which both holds the current Presidency seat of the European Council and is well known as being highly cyber aware and digitally savvy.</p><p>It is fitting, therefore, that it is under Estonia’s Presidency that the European Commission <a href="http://europa.eu/rapid/press-release_IP-17-3193_en.htm">announced</a> a number of initiatives last month aimed at stepping up the European Union’s cybersecurity capacity and response to cyber attacks, while laying the foundations for increased cyber awareness and better cyber hygiene overall.</p><p>This EU’s Cybersecurity Strategy is a welcome initiative, as we already know that the overall cyber threat level is rising. At Cloudflare, we deal with a new type of DDoS attack every 3 minutes, and it has been that way for the last 6 months. This year alone, we've seen a DDoS attack that peaked at 300 Mpps and another at 480 Gbps. Furthermore, as DDoS mitigation companies like Cloudflare have become adept at handling 'traditional' DDoS attacks, the attackers have also adapted and increasingly try out new <a href="/the-daily-ddos-ten-days-of-massive-attacks/">techniques</a>.</p>
    <div>
      <h3>A holistic approach to cyber resilience and a shared responsibility</h3>
      <a href="#a-holistic-approach-to-cyber-resilience-and-a-shared-responsibility">
        
      </a>
    </div>
    <p>In its <a href="http://eur-lex.europa.eu/legal-content/EN/TXT/?qid=1505294563214&amp;uri=JOIN:2017:450:FIN">Communication</a> announcing the Cybersecurity Strategy, the European Commission sets out a multi-pronged approach to ensuring that Europe is better placed to face the rise in cybercrime, increasingly sophisticated cyber tools leveraged for malicious purposes, and attacks on critical infrastructure. The proposals range from educational initiatives to encourage increased cyber awareness and skills, to investment in research projects and public-private partnerships where technology in cybersecurity and industrial capabilities are developed, to encouraging the use of cyber secure tools in eGovernment operations.</p><p>Cybersecurity is a common societal challenge which should involve multiple layers of stakeholders, including industry, Government and individuals. The cybersecurity industry can, however, play a key role in helping the fight against cybercrime and attacks by providing training and educational information to better inform policy makers, politicians and law enforcement on what is happening on the ground, and highlight emerging technologies and best practices. Companies such as Cloudflare are on the front line, reacting and adapting to dynamic and evolving threat landscapes, such as that recently <a href="/say-cheese-a-snapshot-of-the-massive-ddos-attacks-coming-from-iot-cameras/">seen</a> with infected IoT devices. We are, in a sense, in a somewhat privileged position, and we want to do and share what we can to help raise the bar.</p>
    <div>
      <h3>Cloudflare’s contribution</h3>
      <a href="#cloudflares-contribution">
        
      </a>
    </div>
    <p>Cloudflare has been actively participating in a number of European initiatives which feature in the Commission’s Cybersecurity Strategy. Earlier this year, we joined Europol's Advisory Group on Internet Security to share our knowledge on matters related to internet security and emerging threats, along with other industry peers. We are also participating in the IoT Security Group set up by the European Union <a href="https://www.enisa.europa.eu/">Agency</a> for Network and Information Security. We shared our well-known <a href="https://www.cloudflare.com/media/pdf/cloudflare-whitepaper-policy-primer-the-encryption-conundrum.pdf">views</a> and strong support for encryption during discussions held by the European Commission on cross-border access to electronic evidence, and we are now participating in some work related to software vulnerability disclosures in Europe, led by the Brussels think-tank <a href="https://www.ceps.eu/">CEPS</a>.</p><p>Next year, the EU Network and Information Security Directive will usher in a new era of security awareness and protection in the EU. This new legal framework will ensure that security is an essential consideration for an even broader range of actors than before - such as companies in the banking, transport, energy and digital infrastructure sectors - and it asks that businesses take a risk-based approach in their cyber security activities and preparations. While most of the ideas are not new to a security-conscious company like Cloudflare, we are now in the process of preparing for this new framework.</p><p>There are numerous strands to the Commission’s Cybersecurity strategy and it will be important that all stakeholders work quickly and cohesively to make the words a reality. However, with all these initiatives in play, Europe will certainly be in a better position to address the latest cybersecurity challenges, while helping ensure that the internet remains open, secure and <a href="https://www.cloudflare.com/learning/security/what-is-cyber-resilience/">resilient</a>.</p> ]]></content:encoded>
            <category><![CDATA[Policy & Legal]]></category>
            <category><![CDATA[Europe]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[DDoS]]></category>
            <category><![CDATA[IoT]]></category>
            <guid isPermaLink="false">2eyQX1GRNPkQVcoKMhbwrw</guid>
            <dc:creator>Caroline Greer</dc:creator>
        </item>
        <item>
            <title><![CDATA[IoT Security Anti-Patterns]]></title>
            <link>https://blog.cloudflare.com/iot-security-anti-patterns/</link>
            <pubDate>Tue, 02 May 2017 13:00:00 GMT</pubDate>
            <description><![CDATA[ From security cameras to traffic lights, an increasing amount of appliances we interact with on a daily basis are internet connected. A device can be considered IoT-enabled when the functionality offered by its Embedded System is exposed through an internet connected API. ]]></description>
            <content:encoded><![CDATA[ <p>From security cameras to traffic lights, an increasing amount of appliances we interact with on a daily basis are internet connected. A device can be considered IoT-enabled when the functionality offered by its Embedded System is exposed through an internet connected <a href="https://www.cloudflare.com/learning/security/api/what-is-an-api/">API</a>.</p><p>Internet-of-Things technologies inherit many attack vectors that appear in other internet connected devices, however the low-powered hardware-centric nature of embedded systems presents them with unique security threats. Engineers building Internet-of-Things devices must take additional precautions to ensure they do not implement security anti-patterns when addressing new problems, this blog post will investigate four such anti-patterns that have been used by real Internet-of-Things devices.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/bbtuKRFmvzAlTltOwRoUK/9a52616f39949201d0c088dd8aa1beae/ATmega8_01_Pengo.jpg" />
            
            </figure><p><i>Atmel ATMEGA8 Microcontroller </i><a href="https://en.wikipedia.org/wiki/Atmel_AVR#/media/File:ATmega8_01_Pengo.jpg"><i>Wikimedia Commons</i></a><i> - CC BY-SA 3.0</i></p>
    <div>
      <h3>HTTP Pub/Sub</h3>
      <a href="#http-pub-sub">
        
      </a>
    </div>
    <p>Every time your IoT-enabled alarm clock sounds, you may want it to tell your coffee machine to brew some coffee. In order to do this, your coffee machine may subscribe to messages published by your alarm clock. One such way of doing this is to implement the Publish/Subscribe Pattern within the API of the IoT devices, for this example let's assume our alarm clock and coffee machine communicate through HTTP.</p><p>In order to subscribe to messages from the alarm clock, the coffee machine sends a HTTP POST request to <code>https://alarmclock/publish</code> with the following body:</p>
            <pre><code>{  
   "on":"alarmSound",
   "to":"https:\/\/coffeemachine\/subscribe"
}</code></pre>
            <p>This JSON request instructs the alarm clock on every “alarmSound” event to send a HTTP request to the coffee machine. Whilst this may seem a simple and effective way of implementing the Pub/Sub pattern in HTTP, this poses a significant security risk.</p><p>By not being able to validate if the receiver of the subscribed message wants the message or not, there is effectively a DDOS vulnerability. An attacker with the ability to set subscriptions on the alarm clock can effectively send HTTP messages to any device or internet property they want. If this is done across enough devices, a DDOS vulnerability is created.</p><p>Toast popping out of a toaster or a car driving across a road traffic sensor could be the trigger of a future large scale DDOS against a web property.</p><p>For further reading, the limitation of Pub/Sub patterns in IoT within the context of the MQTT protocol are discussed in: <a href="http://ieeexplore.ieee.org/document/7872916/">Limitations of the Pub/Sub pattern for cloud based IoT and their implications</a> - Happ, D. and Wolisz, A. (2016).</p>
    <div>
      <h3>IoT Device as TLS Server</h3>
      <a href="#iot-device-as-tls-server">
        
      </a>
    </div>
    <p>As the embedded systems which power IoT devices have gained additional computational resources, more and more IoT developers have chosen to implement TLS to secure communications. Additionally cryptography libraries such as wolfSSL and mbedTLS, better suited to the performance requirements for embedded systems, have removed many of the engineering and performance complexities of adding TLS support to embedded systems.</p><p>One anti-pattern in implementing TLS on IoT devices is running devices themselves as web servers and using self-signed server-side certificates to encrypt such requests. Aside from the performance overhead of running web servers on embedded systems, they also pose a severe security risk by failing to maintain trust relationships.</p><p>In place of this; IoT devices can communicate through brokers; such brokers can act as web servers with a signed <a href="https://www.cloudflare.com/application-services/products/ssl/">TLS certificates</a> installed server-side which can be authenticated with devices using the X.509 standard. This can be done effectively by simply using the HTTP protocol. Like other kinds of message brokers, they will receive messages, perform validation, transformation and routing before sending them on by recipients.</p><p>Protocols like CoAP are specifically designed for brokerless Machine-to-Machine communication in low power environments, in its current form CoAP uses DTLS (RFC 4347) which supports pre-shared keys, raw public keys and X.509 certificate authentication.</p>
    <div>
      <h3>Unencrypted Bootloader</h3>
      <a href="#unencrypted-bootloader">
        
      </a>
    </div>
    <p>Far from being in a datacenter, IoT devices can be left in insecure environments - as such extra precautions need to be taken to protect the memory on such a device.</p><p>Take the example of an IoT traffic counting device, installed in a locked cabinet at a roadside. A malicious adversary can break into the cabinet and steal the device with physical force. With the device in their possession they can extract software from the embedded system chip on the device to obtain the software running on it. By reverse engineering this software they can learn secrets in the memory of the onboard microcontroller.</p><p>When IoT devices can contain sensitive data in memory, locking them away may not always be sufficient. One solution to this problem is to encrypt the bootloaders on such devices - this provides a degree of cryptographic assurance that the secrets on the device will remain secret.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5FEcmjasd5mTCCxvuCgv08/adb765168c7d029b019eeb2d86942dcd/Screen-Shot-2017-03-14-at-23.01.56.png" />
            
            </figure><p> <i>Documentation from </i><a href="http://www.atmel.com/images/doc2589.pdf"><i>Atmel AVR231: AES Bootloader</i></a></p><p>There exists dedicated integrated Controller chips that allow for Hardware-based Key Storage at low cost; these chips can be used to prevent cloning and tampering of Embedded Systems. Examples include Atmel’s CryptoAuthentication chips and Microchip’s PIC24F GB2 microcontroller.</p><p>Other precautions should of course be taken, ensuring that keys are unique to a device and that revocation systems are in place, should keys be disclosed for whatever reason.</p><p>It is not merely enough to leave your secrets unencrypted on an embedded system in the hope no one will attempt to reverse engineer it. Taking appropriate security steps for the secrets your IoT device will store is vital.</p>
    <div>
      <h3>Database-as-IPC</h3>
      <a href="#database-as-ipc">
        
      </a>
    </div>
    <p>Instead of communicating over an abstract protocol like HTTP, developers may choose to use shortcuts by simply directly connecting to a database server to push data. Aside from being making permissions control harder, this opens up performance difficulties.</p><p>Lock contention is one such issue, when running UPDATE queries on rows other devices will end up waiting for locks on the database to be released before other queries can be done. Additionally, polling databases for changes can lead to IoT brokers becoming easily overloaded.</p><p>This Anti-Pattern can be mitigated by using a message broker service, exposed by a HTTP API. REST APIs are easier to cache, easier to scale and allow you to vary your database implementation independently of your API.</p><p>No matter how closed you think the usage of your IoT API is, take pride in it and seek to make it resilient to the forces of change later on. Abstracting your database away from your devices allows you to introduce a greater degree of security and also prevents other architectural headaches later on.</p>
    <div>
      <h3>Conclusion</h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>As the technology that powers the internet matures, so will the attacks it faces. IoT devices are set to see a unique set of security vulnerabilities, different to the set seen by other internet connected devices. As more IoT devices start to be unveiled, new security challenges will also unfold.</p> ]]></content:encoded>
            <category><![CDATA[IoT]]></category>
            <category><![CDATA[API]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">7zY3tlmT1KevXbA9VzTTfP</guid>
            <dc:creator>Junade Ali</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing TLS with Client Authentication]]></title>
            <link>https://blog.cloudflare.com/introducing-tls-client-auth/</link>
            <pubDate>Mon, 01 May 2017 15:58:01 GMT</pubDate>
            <description><![CDATA[ In a traditional TLS handshake, the client authenticates the server, and the server doesn’t know too much about the client. However, starting now, Cloudflare is offering enterprise customers TLS with client authentication.
 ]]></description>
            <content:encoded><![CDATA[ <p></p><p>In a traditional TLS handshake, the client authenticates the server, and the server doesn’t know too much about the client. However, starting now, Cloudflare is offering enterprise customers TLS with client authentication, meaning that the server additionally authenticates that the client connecting to it is authorized to connect.</p><p>TLS Client Authentication is useful in cases where a server is keeping track of hundreds of thousands or millions of clients, as in IoT, or in a mobile app with millions of installs exchanging secure information. For example, an IoT company can issue a unique client certificate per device, and then limit connections to their IoT infrastructure to only their devices by blocking connections where the client doesn’t present a certificate signed by the company’s certificate authority.</p><p>Or in the case of a mobile banking app, where the bank wants to ensure customers’ secure financial data doesn’t get stolen by bots spoofing their mobile app, they can issue a unique certificate to every app install and in the TLS handshake validate requests are coming from their mobile app. Client authentication is also useful for VPNs, <a href="https://www.cloudflare.com/learning/network-layer/enterprise-networking/">enterprise networks</a> or staging sites, where corporations and developers need to lock down connections to only laptops and phones owned by their employees and teammates.</p><p>You may be thinking - don’t we have API keys for that? But client certificates offer a layer of security that API keys cannot provide. If an API key gets compromised mid-connection, it can be reused to fire its own valid, trusted requests to the backend infrastructure. However, the private key of the client certificate is used to create a digital signature in every TLS connection, and so even if the certificate is sniffed mid-connection, new requests can’t be instantiated with it.</p>
    <div>
      <h3>Handshakes With TLS Client Auth</h3>
      <a href="#handshakes-with-tls-client-auth">
        
      </a>
    </div>
    <p>In a handshake with TLS Client Authentication, the server expects the client to present a certificate, and sends the client a client certificate request with the server hello. Then in the key exchange in the next trip to the server, the client also sends its client certificate. The client certificate is then used to sign the TLS handshake and the digital signature is sent to the server for verification. You can see the whole handshake here:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1j5hvPyQ2Apt0THlts9xh1/c82c747ea4e81f92d567a3047e1ac9c9/illustration-tls-ssl-client-auth.png" />
            
            </figure>
    <div>
      <h3>TLS Client Authentication On The Edge</h3>
      <a href="#tls-client-authentication-on-the-edge">
        
      </a>
    </div>
    <p>TLS Client Authentication can be CPU intensive to implement - it’s an additional cryptographic operation on every request. And if there’s a flood of invalid traffic, each request in that traffic flood kicks off a verification step. Companies can move the TLS client authentication to Cloudflare’s edge to offload the expensive verification.</p><p>If we are performing TLS Client Authentication for a company, the company sends us the root certificate(s) we should validate the client certificates against. Then the company can set TLS Client Authentication to one of two modes: enforce mode returns a 403 and optional custom JSON or HTML when the client certificate is invalid, and report mode forwards all requests to the origin, even if the certificate is invalid. Cloudflare will send a header including the status of the certificate (none, valid, invalid) and the certificate Subject Key Identifier (SKI) to the origin. For companies that use the client certificate for identification, Cloudflare can also forward any field of the client certificate as a custom header.</p>
    <div>
      <h3>Get Started</h3>
      <a href="#get-started">
        
      </a>
    </div>
    <p>To use TLS client authentication, you must first set up PKI (Public Key Infrastructure) infrastructure to issue client certificates. If you are interested in running TLS client authentication but don’t have PKI infrastructure set up to issue client certificates, we have <a href="https://github.com/cloudflare/cfssl">open sourced our PKI</a> for you to use. Here is great documentation by our friends at CoreOS on <a href="https://coreos.com/os/docs/latest/generate-self-signed-certificates.html">how to use cfssl to issue client certificates</a>. If you prefer not to run your own CA and rely on an established certificate authority, we have partnered with a few certificate authorities who can provide the client certificates for you.</p><p>If you are an enterprise customer and would like to get started using TLS client authentication with Cloudflare, reach out to your account team and we’ll help you get setup. If you are not yet an enterprise customer but are interested in trying out TLS client authentication, <a href="https://www.cloudflare.com/plans/enterprise/contact/">get in touch</a>.</p><p>Within the next year, we’ll be adding TLS client authentication support for all Cloudflare plans. After all, using encryption to make the web more trusted is what we’re about. Stay tuned.</p><p><i>UPDATE - 1/22/19: This functionality has changed and is being </i><a href="https://developers.cloudflare.com/access/service-auth/mtls/"><i>incorporated into Cloudflare Access</i></a><i>. A beta is currently underway. Apologies for any confusion.</i></p> ]]></content:encoded>
            <category><![CDATA[IoT]]></category>
            <category><![CDATA[Reliability]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[API]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">4VeQz3Iq2qMrx6Te9j6Ccd</guid>
            <dc:creator>Dani Grant</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing Cloudflare Orbit: A Private Network for IoT Devices]]></title>
            <link>https://blog.cloudflare.com/orbit/</link>
            <pubDate>Thu, 27 Apr 2017 13:00:01 GMT</pubDate>
            <description><![CDATA[ In October, we wrote about a 1.75M rps DDoS attack we mitigated on our network, launched by 52,467 unique IP’s, mostly hacked CCTV cameras. We continued to see more IoT devices in DDoS attacks. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>In October, we <a href="/say-cheese-a-snapshot-of-the-massive-ddos-attacks-coming-from-iot-cameras/">wrote about a 1.75M rps DDoS attack</a> we mitigated on our network, launched by 52,467 unique IP’s, mostly hacked CCTV cameras.</p><p>We continued to see more IoT devices in DDoS attacks, and so we started to put together a security solution to protect the devices from becoming part of the botnet in the first place. Today we’re announcing it: Cloudflare Orbit.</p>
    <div>
      <h2>PC-era security doesn’t work in IoT-era computing</h2>
      <a href="#pc-era-security-doesnt-work-in-iot-era-computing">
        
      </a>
    </div>
    <p>As we talked to IoT companies, over and over again we heard the same thing. In the consumer electronics space, IoT manufacturers were telling us that they were shipping patches to their devices, but their end users didn’t always download and install them. (Reserve your judgment, how many times have you pressed ignore when your phone asked you to update its operating system?) In the industrial control, medical and automotive spaces, where devices are used in life-critical functions, we heard a different story. Even if someone wanted to apply a patch, it just wasn’t that easy. For example, even if the manager of a nuclear power plant wants to update software on their thermostats, shutting down operations long enough to do that means the update has to be scheduled.</p><p>This is if the device can be patched at all - most devices are patchable, but up to a point. When <a href="https://www.wired.com/2015/07/hackers-remotely-kill-jeep-highway/">Jeep was shown to be vulnerable</a> to <a href="https://www.cloudflare.com/learning/security/what-is-remote-code-execution/">remote code execution</a>, Chrysler had to <a href="https://www.wired.com/2015/07/jeep-hack-chrysler-recalls-1-4m-vehicles-bug-fix/">recall 1.4 million</a> vehicles.</p><p>This model where the end user is responsible for the security of the overall device is a relic of the PC age, where users knew and understood that their computers could have vulnerabilities, and as their software vendors released patches ––on so called “Patch Tuesdays,” for example––users knew to go and download them.</p><p>PC security does not work for IoT. Consumers do not share that similar understanding that they need to update their toasters, lightbulbs and cars, because they’ve never needed to in the past. And since we will never write perfect code, we <a href="http://www.economist.com/news/science-and-technology/21720268-consequences-pile-up-things-are-starting-improve-computer-security">need a better way of securing devices</a> without waiting for users to do it for us.</p>
    <div>
      <h2>Introducing Orbit</h2>
      <a href="#introducing-orbit">
        
      </a>
    </div>
    <p>Thinking about this challenge, we were reminded of when the ShellShock vulnerability was discovered, Cloudflare was able to <a href="/shellshock-protection-enabled-for-all-customers/">automatically keep the requests</a> that would trigger the vulnerability from reaching our customers. With Orbit, Cloudflare can do the same thing, only for devices. For example, when Jeep was shown to be vulnerable, instead of recalling 1.4 million vehicles, Fiat Chrysler could have patched the bug in all the vehicles with just a simple rule in Cloudflare's firewall restricting access to the vulnerable DBUS service listening on port 6667 of every Jeep.</p><p>Orbit sits one layer before the device and provides a shield of security, so even if the device is running past its operating system’s expiration date, Cloudflare protects it from exploits. And while devices may be seldom patched, the Cloudflare security team is shipping code every day, adding new firewall rules to Cloudflare’s edge. Think of it like changing IoT to I*oT — devices can still access the Internet, but only after passing through Cloudflare where malicious requests can be filtered.</p><p>For the last year, Cloudflare has been working with a number of IoT vendors to develop Orbit. Already more than 120 million IoT devices are safer behind Cloudflare’s network. <a href="https://lockitron.com/">Lockitron</a> is one of the IoT companies using Cloudflare. “Keeping our products and customers secure is our primary concern,” says Paul Gerhardt, co-founder of Lockitron. “Cloudflare provides an extra layer of security that allows us to keep our devices continually updated and ahead of any vulnerabilities.”</p><p>Instead of writing and shipping a patch, IoT companies can write logic on Cloudflare’s edge, and write their own firewall rules to run on Cloudflare, and it updates the Cloudflare Orbit layer immediately, for all of their devices, without their users ever being so much as nudged to install something.</p><p>Plus, with requests going through Cloudflare, Cloudflare can compress transmitted data and speed up traffic, meaning less time is spent waiting on open connections and more time left in battery.</p>
    <div>
      <h2>An Extra Layer of Authentication</h2>
      <a href="#an-extra-layer-of-authentication">
        
      </a>
    </div>
    <p>A common challenge we heard from IoT device manufacturers was how to authenticate devices and know which connecting clients were authorized company devices, and which were bots only pretending to be. Starting today, Cloudflare now offers Enterprise domains <a href="https://support.cloudflare.com/hc/en-us/articles/115000088491">TLS Client Authentication</a>, a TLS handshake where the client authenticates the server’s certificate (as with any TLS handshake) and also the client has a certificate that the server authenticates.</p><p>Some IoT vendors already implement their own Client Authentication, but do so at the same origin servers that handle the rest of their IoT infrastructure. Not only is this computationally expensive, but any invalid traffic flood causes a burden on the whole server.</p><p>With Client Authentication on Cloudflare, Cloudflare’s edge handles the load of the TLS handshakes, validating the device client certificates and only sending the IoT infrastructure traffic from authorized devices.</p>
    <div>
      <h2>What People Are Saying</h2>
      <a href="#what-people-are-saying">
        
      </a>
    </div>
    <p>“This approach of adding security to the network is extremely important for industrial manufacturers. Being able to patch vulnerabilities from the network rather than at the device level is a major shift in the way we secure IoT devices, and one that is completely necessary.” — Sam Cece, CEO of <a href="https://www.swiftsensors.com/">Swift Sensors</a>, an industrial IoT company.</p><p>“Car controllers are IoT devices. Karamba Security hardens these devices and prevents cyberattacks with zero false positives to maintain driver and passenger safety. We view Cloudflare’s Orbit as a complementary solution that enables secure connectivity between the cars’ hardened controllers and the car company’s data center for trusted, over-the-air updates.” — Ami Dotan, CEO of <a href="https://www.karambasecurity.com/">Karamba Security</a>, which is building secure platforms for smart automobiles.</p><p>“We are at the beginning of a new era in which a vast number of devices will be connecting to the Internet and security will play a critical role in the successful roll-out and adoption of IoT devices. Cloudflare’s Orbit adds another layer of defense that compliments other security measures such as strong hardware-based device security and helps ensure a safer Internet of Things." — Quinn Li, VP and global head of <a href="https://www.qualcommventures.com/">Qualcomm Ventures</a>, the investment arm of Qualcomm Incorporated, the leading supplier of components for IoT devices.</p><p>"IoT devices create a distinct security challenge both because of the inability of most end users to update their software, as well as the cost that manufacturers bear if they release an update that bricks devices. This is even worse for legacy devices, many of which are effectively unpatchable. Cloudflare's Orbit provides a unique approach to help with these challenges, by deploying a defensive layer in the network where security updates can be safely made without end-user intervention or on-device changes." — Michael Freedman, professor of computer science at Princeton University and CTO of <a href="http://www.timescale.com/">Timescale</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/68bFX1ixVLjDCSQwoRW5dO/2fcaafdeb8db4255917dd64712186c4f/IoT-Illustration-infographic.jpg" />
            
            </figure>
    <div>
      <h2>Get Started</h2>
      <a href="#get-started">
        
      </a>
    </div>
    <p>Orbit is available now to all IoT device companies. To learn more or get started, <a href="https://www.cloudflare.com/orbit/">visit the site</a>, or <a href="https://www.cloudflare.com/plans/enterprise/contact/">get in touch</a>. We’re excited to hear from you.</p> ]]></content:encoded>
            <category><![CDATA[DDoS]]></category>
            <category><![CDATA[IoT]]></category>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Reliability]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Attacks]]></category>
            <guid isPermaLink="false">1Gta8X8Wz1YL5o2UAicwmv</guid>
            <dc:creator>Dani Grant</dc:creator>
        </item>
        <item>
            <title><![CDATA[Say Cheese: a snapshot of the massive DDoS attacks coming from IoT cameras]]></title>
            <link>https://blog.cloudflare.com/say-cheese-a-snapshot-of-the-massive-ddos-attacks-coming-from-iot-cameras/</link>
            <pubDate>Tue, 11 Oct 2016 12:59:26 GMT</pubDate>
            <description><![CDATA[ Over the last few weeks we've seen DDoS attacks hitting our systems that show that attackers have switched to new, large methods of bringing down web applications. ]]></description>
            <content:encoded><![CDATA[ <p>Over the last few weeks we've seen DDoS attacks hitting our systems that show that attackers have switched to new, large methods of bringing down web applications. They appear to come from an IoT botnet (like Mirai and relations) which were responsible for the <a href="http://uk.businessinsider.com/akamai-brian-krebs-ddos-attack-2016-9">large attacks against Brian Krebs</a>.</p><p>Our automatic DDoS mitigation systems have been handling these attacks, but we thought it would be interesting to publish some of the details of what we are seeing. In this article we'll share data on two attacks, which are perfect examples of the new trends in DDoS.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7koNzfrpuLEAvqVIkrBYOm/b1588f531747efc4e28ac5d095c9744d/4766316315_48242afc03_b.jpg" />
            
            </figure><p><a href="https://creativecommons.org/licenses/by/2.0/">CC BY 2.0</a> <a href="https://www.flickr.com/photos/maderik/4766316315/in/photolist-8gbBMv-7HnuE5-8BjP3g-rbsb76-6j3F2b-6j3F2L-4P4uCw-pkG9KA-doPM2q-omvaV-pkGoDz-D1Nbt-qveZtC-bHAKgz-bHBSLv-buH773-bmdm7S-myGet-u1jWDt-hfLE98-7HiziR-7JfdZn-tkVTSV-tkKHvo-tkKLbo-8BnVdE-jkvs-7Hizc6-bHBSJT-qdKGZf-o6HNXo-rbiiWD-7Hiz7x-8vmyNs-8BnVib-vSMrhj-8BnVqJ-8J36Hc-fh4LmT-et7dSA-8J6efA-7os11Z-6N6KyX-brDjkd-9nfCDq-ipefs1-cpVwkE-a6bS7t-b4JLhe-a8WfQr">image</a> by <a href="https://www.flickr.com/photos/maderik/">E Magnuson</a></p><p>In the past we've written extensively about <a href="/the-ddos-that-almost-broke-the-internet/">volumetric DDoS</a> attacks and how to <a href="/introducing-the-bpf-tools/">mitigate</a> them. The attacks are distinguished by their heavy use of L7 (i.e. HTTP) attacks as opposed to the more familiar SYN floods, ACK floods, and <a href="/understanding-and-mitigating-ntp-based-ddos-attacks/">NTP</a> and <a href="/deep-inside-a-dns-amplification-ddos-attack/">DNS</a> reflection attacks.</p><p>Many DDoS mitigation systems are tuned to handle volumetric L3/4 attacks; in this instance attackers have switched to L7 attacks in an attempt to knock web applications offline.</p><p>Seeing the move towards L7 DDoS attacks we put in place a new system that recognizes and blocks these attacks as they happen. The L7 mitigator recognizes attacks against a single host and distributes a fingerprint that protects all 4 million Cloudflare customers. We'll write more about it in the future.</p>
    <div>
      <h3>HTTP Requests per second</h3>
      <a href="#http-requests-per-second">
        
      </a>
    </div>
    <p>Often when DDoS attacks are reported the size of the attack is reported in Gbps (or even Tbps), but there are many ways to measure the size of an attack.</p><p>For L7 HTTP-based attacks it also makes sense to measure requests per second. That's because, unlike volumetric L3/4 attacks, HTTP-based attacks eat up resources by making actual HTTP requests to the attacked server.</p><p>Recently we were hit by a couple of unusually large L7 attacks, crossing 1 million HTTP requests per second (1 Mrps). Here is one of them:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/exwpXKLnNtB2ARIM1jHup/106962ce956068514925b5d028d74cfa/https.005.png" />
            
            </figure><p>This attack continued for 15 minutes. Multiple recent attacks had &gt;1 Mrps and lasted for minutes.</p><p>This particular attack peaked at 1.75 Mrps. It was composed of short HTTP requests (around 121 bytes per request), without anything unusual in the HTTP headers. The requests had a fixed <code>Cookie</code> header. We counted 52,467 unique IP addresses taking part in this attack.</p><p>Due to the Anycast nature of the <a href="https://www.cloudflare.com/network/">Cloudflare network</a>, the malicious traffic was spread across multiple Cloudflare cities and with 100 cities we are able to get a good picture of where the bots are located.</p><p>Here are the top affected datacenters:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/meG8LUUO15USZ3tdFdb7X/a2e5aa96265611103b0d21b7242a85ff/https.004.png" />
            
            </figure><p>This attack went largely to our Hong Kong and Prague datacenters. This is another common characteristic; most of the recent attacks looked similar.</p><p>Since the attack looks concentrated, we wondered if only a small number of <a href="https://en.wikipedia.org/wiki/Autonomous_system_(Internet)">AS</a> numbers (networks) were the source of the attack. Unfortunately no, the IP addresses participating in the flood are evenly distributed. Out of 10,000 random requests we analyzed, we saw source IP addresses from over 300 AS numbers. These are the biggest sources:</p>
            <pre><code>   48 AS24086 ; Vietnam
  101 AS4134  ; China
  128 AS7552  ; Vietnam
  329 AS45899 ; Vietnam 
 2366 AS15895 ; Ukraine</code></pre>
            <p>These attacks are a new trend, so it's not fair to blame the AS operators for not cleaning up devices participating in them. Having said that, the Ukrainian ISP and Vietnamese AS45899 seem to stand out. We'll get back to those in a moment.</p>
    <div>
      <h3>Bandwidth</h3>
      <a href="#bandwidth">
        
      </a>
    </div>
    <p>Although requests per second is a common metric for measuring these attacks, it's not the only one. We can also measure the bandwidth used in the attack.</p><p>By this count the attack mentioned above was pretty small (since we've got used to DDoS attacks being reported in 100s of Gbps). It peaked at roughly 2Gbps. But recall that these L7 attacks end up hitting a web server and are not simply volumetric: they use server resources.</p><p>However, we saw another attack that was unusual in that it was an L7 with similar bandwidth consumption to traditional L3/4 volumetric attacks. First, here's the requests per second graph:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5g2Rhgyi6l1ZlWw6Y6sIGa/0e30549ea13ed98927afc33ca3dca5b7/https.003.png" />
            
            </figure><p>This attack generated "only" 220k requests per second at peak. However, it generated significant inbound bandwidth:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5w0BaTPZVLyDn3fXFOlkfZ/e37dcc868c297b181227586de0717160/x.001-1.png" />
            
            </figure><p>This attack topped out at 360Gbps per second of inbound HTTP traffic. It's pretty unusual for an HTTP attack to generate a substantial amount of network traffic. This attack was special, and was composed of HTTP requests like this:</p>
            <pre><code>GET /en HTTP/1.1
User-Agent: &lt;some string&gt;
Cookie: &lt;some cookie&gt;
Host: example.com
Connection: close
Content-Length: 800000

a[]=&amp;b[]=&amp;a[]=&amp;b[]=&amp;a[]=&amp;b[]=&amp;a[]=&amp;b[]=&amp;a[]=&amp;b[]=&amp;a[]=&amp;b[]=...</code></pre>
            <p>It's the long payload sent after the request headers that allowed the attackers to generate substantial traffic. Since this attack we've seen similar events with varying parameters in the request body. Sometimes these attacks came as GET requests, sometimes as POST.</p><p>Additionally, this particular attack lasted roughly one hour, with 128,833 unique IP addresses. The datacenter distribution was different, with most of the attack concentrated on Frankfurt:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/Hs6Je7g3YpJ1BygPIFbpf/1ce275a4343a05aef89b4f6a383a7f71/https.002.png" />
            
            </figure><p>As the attack was composed of a very large number of bots, we expected the AS distribution to be fairly even. Indeed, in the 10,000 request sample we recorded a whopping 737 unique AS numbers. Here are the top sources:</p>
            <pre><code>  286 AS45899 ; Vietnam
  314 AS7552  ; Vietnam
  316 AS3462  ; Taiwan
  323 AS18403 ; Vietnam
 1510 AS15895 ; Ukraine</code></pre>
            <p>Once again, the Ukrainian ISP and couple of Vietnamese networks are the top hitters.</p>
    <div>
      <h3>More on the sources</h3>
      <a href="#more-on-the-sources">
        
      </a>
    </div>
    <p>We wondered why AS15895 was so special. First, we investigated our traffic charts. Here is the inbound traffic we received from them over last 30 days:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1LaeMJ49p3uNUiPnQjX8X0/87851416a49e0e72c2d3db6d215171db/AS15895-1.png" />
            
            </figure><p>The first significant attack was clearly seen as a spike on September 29 and reached 30Gbps. A very similar chart is visible for AS45899:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3gW1N4AAJaMbUFR3v3yyJR/48dbbe8ed2f6025a9623c0e0c1a96cb0/AS45899-1.png" />
            
            </figure><p>We can see some smaller attacks attempted around September 26. A couple of days later the attackers turned the throttle up hitting 7.5Gbps non-stop from this ASN. Other AS numbers we investigated reveal a similar story.</p>
    <div>
      <h3>Devices</h3>
      <a href="#devices">
        
      </a>
    </div>
    <p>While it's not possible for us to investigate all the attacking devices, it is fair to say that these attacks came from Internet-of-Things (IoT) category of devices.</p><p>There are multiple hints confirming this theory.</p><p>First, all of the attacking devices have port 23 (telnet) open (closing connection immediately) or closed. Never filtered. This is a strong hint that the malware disabled the telnet port just after it installed itself.</p><p>Most of the hosts from the Vietnamese networks look like connected CCTV cameras. Multiple have open port 80 with presenting "NETSurveillance WEB" page.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3U9FaChepjUly2hcD3mQYv/06f4e3f57d0b39badf82a9800988420b/cam02.png" />
            
            </figure><p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7a81etHG2oj18GcTaipdR1/91b221a5fb9260c18b455a92d98d4627/cam03-1.png" />
            
            </figure><p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6GnS9jO8ZxI8nvr3HdSrKi/2ee1b264cb4c507ceb9698e75a42812d/cam04.png" />
            
            </figure><p>The Ukrainian devices are a bit different though. Most have port 80 closed, making it harder to identify.</p><p>We had noticed one device with port 443 open serving a valid TLS cert issued by Western Digital, handling domain <code>device-xxxx.wd2go.com</code> suggesting it was a hard drive (<a href="https://en.wikipedia.org/wiki/Network-attached_storage">Network Attached Storage</a> to be precise).</p>
    <div>
      <h3>未来: the future of DDoS</h3>
      <a href="#wei-lai-the-future-of-ddos">
        
      </a>
    </div>
    <p>We plan to continue our investigation and collaborate with external researchers to find a permanent solution to this rising threat.</p><p>Although the most recent attacks have mostly involved Internet-connected cameras, there's no reason to think that they are likely the only source of future DDoS attacks. As more and more devices (fridges, fitness trackers, sleep monitors, ...) are added to the Internet they'll likely be unwilling participants in future attacks.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7xTBgyJiewTcdNWJ6ELskn/07bf9d571ee3e6a7eb246cb72f16066f/15197555485_82029aa9df_k.jpg" />
            
            </figure><p><a href="https://creativecommons.org/licenses/by/2.0/">CC BY 2.0</a> <a href="https://www.flickr.com/photos/codeofthenew/15197555485/in/photolist-p9VwGA-p9XrVF-p9XrLH-oSrX9R-oSrXvx-oSsKUL-p9Vy6C-i5tukY-fP8skv-fPq1aQ-oSAiHj-p83wk5-fMLz3H-fKoxbS-fKoMJj-dokcef-dojRpi-K1p7WG">image</a> by <a href="https://www.flickr.com/photos/codeofthenew/">CODE_n</a></p><p>We're hiring <a href="https://www.cloudflare.com/join-our-team/">multiple roles</a>, including our DDoS mitigation team. Help us save the Internet from DDoS attacks.</p>
    <div>
      <h4>Update:</h4>
      <a href="#update">
        
      </a>
    </div>
    <p>Originally this article attributed the Mirai botnet for the shown attacks. We now believe that, for technical reasons, the large-bandwidth attack might not have come from a botnet running the leaked Mirai code.</p> ]]></content:encoded>
            <category><![CDATA[DDoS]]></category>
            <category><![CDATA[Attacks]]></category>
            <category><![CDATA[IoT]]></category>
            <category><![CDATA[Reliability]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">2kekzBtghFok0ZImSqQYMH</guid>
            <dc:creator>Marek Majkowski</dc:creator>
        </item>
    </channel>
</rss>