
<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>Sun, 12 Apr 2026 18:27:56 GMT</lastBuildDate>
        <item>
            <title><![CDATA[Keeping our users safe]]></title>
            <link>https://blog.cloudflare.com/keeping-our-users-safe/</link>
            <pubDate>Fri, 16 Feb 2018 22:30:48 GMT</pubDate>
            <description><![CDATA[ To everyone in Cloudflare, account security is one of our most important tasks. We recognize that to every customer on our platform, we are critical infrastructure. We also know that the simplest attacks often lead to the most devastating of outcomes.  ]]></description>
            <content:encoded><![CDATA[ <p>To everyone in Cloudflare, account security is one of our most important tasks. We recognize that to every customer on our platform, we are critical infrastructure. We also know that the simplest attacks often lead to the most devastating of outcomes. Most people think that if they are going to get hacked it will be by some clever ”zero day”. The reality couldn’t be farther from the truth.</p><p>Attackers are smart and they have realized that even in 2018, the human is still the weakest link in the chain. <a href="http://www.verizonenterprise.com/resources/reports/rp_DBIR_2017_Report_en_xg.pdf">The 2017 Verizon breach report</a> identified that 81% of hacking related breaches occurred as a result of weak credentials or credential theft, an increase from the 63% reported in <a href="http://www.verizonenterprise.com/resources/reports/rp_DBIR_2016_Report_en_xg.pdf">2016’s breach report</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/bHJOWM7kUVLJfSApcuHcg/ef977cc58a2379e9a87eb4a57c1ae338/Verizon-2017-DBR-Graph-2.png" />
            
            </figure><p></p><p><i>Source: Verizon 2017 data breach report</i></p><p>Your credentials are as important as your house or car keys. If someone copies or steals them, the repercussions can be catastrophic. If you suspect someone has access to your house keys you change your locks. If you aren’t fast enough, someone might break in.</p><p>Likewise if you realize that someone might have access to your password, the remedy is to change it. Too often, as with house keys, we are slow to change our passwords. This is why we see so many account compromises happen after a big public breach like Yahoo. As soon as the attacker gets their hands on a cache of credentials from a breach they immediately try them against every other account the user has. They know that a very high percentage of users still reuse the same credentials across multiple sites. So their chances of success are high - sometimes years after a breach has happened.</p><p>This is especially problematic with API keys because they often leak without anyone ever knowing it’s happened. Common examples include attackers who steal API keys by reversing client software, or using malicious code inside the browser to navigate and steal secrets - often long after the user has logged out. Some banking trojans such as the <a href="https://www.americanexpress.com/us/small-business/openforum/articles/vicious-malware-can-wipe-out-your-bank-account-in-secret/">infamous Zeus</a> even continue to browse after you have logged out, and display fake balance information to hide withdrawals it makes. This is why many banks now force you to re-authenticate often with 2FA when you log in and again when you perform any kind of financial transaction.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1HKGLnd6bUd1EXPIt3w7Su/a667584331dfda2ae26ff700a6a03d8b/trojan-horse-woodcut1.jpg" />
            
            </figure><p></p><p><i>The Trojan Horse. (It’s not a new attack)</i></p><p>Attackers realize this too and they have been steadily upping their game to catch unsuspecting users. Not content to just sit and wait, attackers constantly try to grab credentials through a combination of trickery and sophisticated software attacks. The one thing that links all of this? It’s you that they are attacking, not some server sitting in a datacenter.</p>
    <div>
      <h3>Phishing</h3>
      <a href="#phishing">
        
      </a>
    </div>
    <p>Phishing emails remain the most popular method but they have now evolved and range from the mundane badly spelled email asking for your password or offering you a link to some unknown site...</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7De7pqzFX42hyFDvtjOYzZ/5264f2e6af3ba57ff558fbe317d87a3e/cloudflare-phishing2.png" />
            
            </figure><p></p><p><i>Common Cloudflare phishing email</i></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7BzFus0t1Ui54GhJOK7z1n/0a2b61763cd9a12f004b7f2992d1bebb/cloudflare-phishing1.png" />
            
            </figure><p></p><p><i>A more sophisticated Cloudflare phishing email</i></p>
    <div>
      <h3>Malicious software</h3>
      <a href="#malicious-software">
        
      </a>
    </div>
    <p>Stepping up from phishing emails, we now have to face malicious software hidden inside innocuous everyday packages from browser extensions to free games. The most popular and difficult to detect of these by far are the malicious browser extensions. Often these start out as legitimate browser tools, then either they get hacked, or an attacker simply buys a forgotten extension project and injects malicious code into it. Now, anything your browser can see, the malicious extension can also see.</p><p>The most sophisticated of these are often targeted at a particular institution and know how to silently navigate to the credentials they wish to steal. Over the past couple of years we have seen several of these targeted specifically at Cloudflare customers. Below is an example of one such campaign from late last year involving a very popular Chrome extension called “Web Developer”.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3yiNwj3OhOgpagJo4bQyjq/689ff57893495ee2d89c7513c4e2716b/WebDeveloperForChrome.png" />
            
            </figure><p></p><p><i>Web Developer for Chrome breach alert</i></p><p>The malicious code injected into the extension was designed to be as stealthy and as resilient to attempts to stop it as possible.</p><ul><li><p>First it checks to make sure its been installed for at least 10 minutes.</p></li><li><p>If it determines the coast is clear, it connects to a machine generated <a href="https://www.cloudflare.com/learning/dns/glossary/what-is-a-domain-name/">domain name</a>, also called a DGA or “Domain Generation Algorithm” domain. These are random seeming domain names that are actually made by an algorithm so that they are harder to find and the attacker can automatically change to a new domain if the old one gets shut down, without changing any code. On August 2nd 2017 the DGA domain for this malicious extension was “wd7bdb20e4d622f6569f3e8503138c859d[.]win”. By August 3rd it had changed to “wd8a2b7d68f1c7c7f34381dc1a198465b4[.]win” as you can imagine this makes predicting new domains very hard unless you break the code behind the DGA algorithm.</p></li><li><p>If the connection is successful it downloads a fresh payload, ga.js over HTTPS which is meant to fool anyone that sees it into thinking that it is downloading Google analytics.</p></li></ul>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3Osb3iz4q32DscVWp9UzNM/4820be4f056cac5aa4251cef448f14bd/Screen-Shot-2018-02-09-at-11.49.05-PM.png" />
            
            </figure><p></p><p><i>Example code downloaded by the malicious version of Web Developer</i></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/gAVvdg1UF8i7nwiJNwf38/ede13f3f6fb4891a26687f6a6c367e60/API-Stealing-Code.png" />
            
            </figure><p></p><p><i>The Cloudflare API Key stealing payload downloaded by the malicious extension.</i></p><p>Web Developer for Chrome wasn’t the only extension compromised in that particular campaign. Other extensions compromised included</p><ul><li><p>Chrometana – Version 1.1.3</p></li><li><p>Infinity New Tab – Version 3.12.3</p></li><li><p>CopyFish – Version 2.8.5</p></li><li><p>Web Paint – Version 1.2.1</p></li><li><p>Social Fixer 20.1.1 affected</p></li><li><p>TouchVPN</p></li><li><p>Betternet VPN</p></li></ul><p>All these extensions have since been updated, but anyone with an older version should consider themselves at risk. How did this happen? Phishing of course:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4I69nV4PjRDllt9ShwNmf5/37806eff0c0e12cbd4dc8741b8740d83/Screen-Shot-2018-02-10-at-12.19.32-AM.png" />
            
            </figure><p></p><p><i>Phishing email sent to </i><a href="https://a9t9.com/blog/chrome-extension-adware/"><i>Chrome developer a9t9.com</i></a></p><p><a href="https://a9t9.com/blog/chrome-extension-adware/">If you want to read more about this, our friends over at proofpoint</a> <a href="https://www.proofpoint.com/us/threat-insight/post/threat-actor-goes-chrome-extension-hijacking-spree">have an in depth teardown</a> of all the other aspects of this particular campaign.</p>
    <div>
      <h2>How we protect credentials</h2>
      <a href="#how-we-protect-credentials">
        
      </a>
    </div>
    
    <div>
      <h3>What we do today - how we store them.</h3>
      <a href="#what-we-do-today-how-we-store-them">
        
      </a>
    </div>
    
    <div>
      <h4>System security</h4>
      <a href="#system-security">
        
      </a>
    </div>
    <p>We have built our systems to be secure by design. In some cases, this is as simple as ensuring that sensitive data is restricted, or made completely unobtainable. In other cases this has meant building systems in a way that makes them secure against a wide range of common attacks.</p><p><i>Passwords</i> We store user passwords in a secure database using a complex, salted hash that uses the blowfish based bcrypt() hashing algorithm.</p><p><i>API Keys</i> We ensure that API keys are unique by generating them using a combination of AES (Rijndael 256), SHA256 and plenty of entropy. Once generated through these hashing algorithms, API Keys are also stored in a secure database that only a handful of people have access to.</p>
    <div>
      <h3>What we do today - how we handle credentials.</h3>
      <a href="#what-we-do-today-how-we-handle-credentials">
        
      </a>
    </div>
    
    <div>
      <h4>At the back-end</h4>
      <a href="#at-the-back-end">
        
      </a>
    </div>
    <p>All calls to these sensitive databases are audited, and stored in logs that go back to the very beginning of Cloudflare. In one recent audit exercise we were able to review, and determine the exact time an API Key was generated for a customer in 2013. Access to both the audit logs and critical systems, like our databases, is restricted to a handful of senior production engineers and security staff. All staff access is also logged, and stored securely for audit purposes.</p><p>Finally, all programmatic calls to these databases are made through stored procedures linked to dedicated accounts. Dynamic SQL is not permitted.</p>
    <div>
      <h4>In Transit</h4>
      <a href="#in-transit">
        
      </a>
    </div>
    <p>All connections are made over HTTPS and sensitive tokens or credentials are never exposed in transit.</p><p>In the User InterfaceTo access your dashboard you need your account email, your password, and <a href="/you-can-now-use-google-authenticator/">assuming you enabled it</a>, (you <b>really</b> should if you haven’t) your 2FA code. If all of this is correct, and the IP you are using is one you are known to use, you are logged in. If the IP address isn’t known we send an email alert to your registered email address alerting you to the event.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3UQpLhmtniGdi5rl0geXvO/1b69863c376eb62d8e44b0ed3af6488e/Cloudflare-IP-Alert.png" />
            
            </figure><p></p><p><i>Screenshot of an IP alert generated by accessing the dashboard</i></p><p>If your account is Pro, Business or Enterprise, that email also contains a “Multi Factor Authentication” or MFA code. Until this code is typed in, attempts to log-in are blocked.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1WTe4xZnFzbcftanoRioRQ/b159c99c772165b0f24f3cea665c32ac/emfa-screenshot.png" />
            
            </figure><p></p><p><i>MFA Alert generated by accessing the dashboard</i></p><p><a href="https://www.cloudflare.com/a/profile">Make sure the email registered to your Cloudflare account is correct</a> and that it is one whose emails you can quickly see for maximum benefit. The faster you react to an alert the better!</p>
    <div>
      <h3>API Keys</h3>
      <a href="#api-keys">
        
      </a>
    </div>
    <p>API Keys are very sensitive things. They have as much power as your password but benefit from relatively few of the protections built into a modern browser. This is why we are deepening our investment to make our API even more secure.</p><p>Our first improvement, released last week, was to protect the API key against malicious software - such as a malicious browser extension - by adding a CAPTCHA to the “View API Key” feature. Below is a screenshot of the challenge you will now see when attempting to access your API Key. This change means that even if malicious software manages to steal your password, it cannot easily request and harvest your API Key.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/39N3gFZfmtgwqlwofdhy2u/1dd235bd508e657c9f2a938d55715070/Screen-Shot-2018-02-09-at-11.30.22-PM.png" />
            
            </figure><p></p><p><i>Updated “View API Key” user experience</i></p><p>Next, we are looking at looked at scoped API keys. These are keys which can either be restricted to authorized IP addresses or limited in terms of what they can do. At the same time we will be adding the ability to turn the API off completely for your account. Finally, looking to the future, we are exploring options like other technical frameworks and token types, so that you have even better tools to build an API architecture that that is secure by design.</p>
    <div>
      <h3>How you can help keep your account safe</h3>
      <a href="#how-you-can-help-keep-your-account-safe">
        
      </a>
    </div>
    <ul><li><p><a href="https://www.cloudflare.com/a/profile">Turn on 2FA and ensure your email address is correct</a> The sooner you see an alert, the faster you can take action to lock your account down.Handle your credentials with care, NEVER enter them into a site other than Cloudflare.com if in doubt check the website certificate fingerprints:</p></li></ul>
            <pre><code>SHA 256 - 12 C4 A5 74 7E D5 6E 37 2C 87 89 02 25 E4 CD 51 89 6D 8E AD 7D 55 CF 76 BF D1 9B 6B 74 6C 70 D0

SHA1 - D4 AD AB 1B 95 72 8D 3D 6E 26 4A 70 70 B1 1E 88 2F CA 71 67</code></pre>
            <ul><li><p>Check your browser extensions regularly. If you see any you don’t recognize remove them immediately. Remember that like all software, regular updates to browser extensions are important too.</p></li><li><p>Design your client or application to protect your API credentials. If your API design is weak - for example it doesn’t do proper certificate validation, or even worse transmit any of the data in plaintext at any point in the connection - then you are risking disaster.</p></li><li><p>Change your API key regularly, especially if you have any concern that it may have been exposed.</p></li><li><p>Do not store your API key (or any credentials for that matter) in public repositories. One way to ensure this is by making sure you don’t store your API key in your application source tree. A significant number of accidental leaks to GitHub happen because this gets overlooked.</p></li><li><p>Be very careful when embedding keys or credentials in clients that you will expose publically. Do not expose your account API key this way. Reverse engineering is not hard and many organizations have learnt this the hard way.</p></li><li><p>Review your code before you release it. Use a tool that’s part of your CI or Build processes to automatically check for accidental key leakage. How many times have we seen API Keys for major institutions leak because they were accidentally checked into GitHub? Don’t be that person.</p></li><li><p>IBM has some great additional security guidance for organizations building with APIs <a href="https://www.ibm.com/blogs/cloud-computing/2015/09/api-security-key-takeaways-from-recent-breaches/">here,</a></p></li><li><p>Finally, it may seem obvious but take care when clicking on links in emails. Even experienced Chrome developers get tricked sometimes!</p></li></ul><p></p> ]]></content:encoded>
            <category><![CDATA[Attacks]]></category>
            <category><![CDATA[API]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Phishing]]></category>
            <guid isPermaLink="false">3eYQehSZxbWvBk8v2gxbFg</guid>
            <dc:creator>Marc Rogers</dc:creator>
        </item>
        <item>
            <title><![CDATA[CloudFlare is now PCI 3.1 certified]]></title>
            <link>https://blog.cloudflare.com/cloudflare-is-now-pci-3-1-certified/</link>
            <pubDate>Mon, 02 Nov 2015 07:00:42 GMT</pubDate>
            <description><![CDATA[ The Payment Card Industry Data Security Standard (PCI DSS) is a global financial information security standard that keeps credit card holders safe. It ensures that any company processing credit card transactions adheres to the highest technical standards. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>The Payment Card Industry Data Security Standard (<a href="https://www.cloudflare.com/learning/privacy/what-is-pci-dss-compliance/">PCI DSS</a>) is a global financial information security standard that keeps credit card holders safe. It ensures that any company processing credit card transactions adheres to the highest technical standards.</p><p>PCI certification has several levels. Level one (the highest level) is reserved for those companies that handle the greatest numbers of credit cards. Companies at level one PCI compliance are subject to the most stringent checks.</p><p>CloudFlare’s mission leads it to provide security for some of the most important companies in the world. This is why CloudFlare chose to be audited as a level one service provider. By adhering to PCI’s rigorous financial security controls, CloudFlare ensures that security is held to the highest standard and that those controls are validated independently by a recognised body.</p><p>If you are interested in learning more, see these <a href="https://www.pcisecuritystandards.org/security_standards/">details about the</a> <a href="https://www.pcisecuritystandards.org/security_standards/">Payment Card Industry Data Security Standard</a>.</p><p>This year’s update <a href="/cloudflare-is-pci-certified/">from PCI 2.0</a> to 3.1 was long overdue. PCI DSS 2.0 was issued in October 2010, and the <a href="https://www.cloudflare.com/learning/security/what-is-information-security/">information security</a> threat landscape does not stand still—especially when it comes to industries that deal with financial payments or credit cards. New attacks are almost a daily occurrence, which means that an out-of-date security standard is often worse than no standard at all.</p>
    <div>
      <h3>What’s new in PCI 3.1?</h3>
      <a href="#whats-new-in-pci-3-1">
        
      </a>
    </div>
    <p>In PCI 3.1, the PCI council attempted to address this issue by both covering known attacks that have come out since the last version of the standard and beefing up financial security controls in anticipation of <i>future</i> attacks.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6hasb9XF08toehB7Lm1mQW/e84dbfb7f6a513a104f3ca7d47b8b495/image_1-1.jpg" />
            
            </figure><p>Here is a summary of the changes between PCI versions 2.0 and 3.1:</p>
    <div>
      <h3>Accessibility and awareness</h3>
      <a href="#accessibility-and-awareness">
        
      </a>
    </div>
    <p>The PCI council has realized that the first lines of defense in any organization are the information security practitioners, developers, and engineers. With this in mind, the council has removed much of the "legal-speak" in the PCI DSS documentation, making it readable for the average person. Each section has an explanation, and each requirement has a justification with examples when possible.</p>
    <div>
      <h3>PCI lifecycle</h3>
      <a href="#pci-lifecycle">
        
      </a>
    </div>
    <p>Version 2.0 of the PCI standard was reliant on the annual audits each organization must go through to demonstrate compliance. This was leading to a culture of "tickbox security" where organizations would do the bare minimum during the year, then rush to make the necessary changes to meet compliance requirements in time for their audit. This is a bad way to do security.</p><p>Security should be holistic and ongoing. A company should ensure that security is built into every level of the organization. Security features should be incorporated into products from the ground up. Not only is this the least expensive way to do security, but it is also the most secure way.</p><p>To this end, PCI 3.1 was designed to integrate into the everyday operations of a compliant organization. This integration ranges from installing itself in critical operational processes, to ensuring that PCI compliance is an integral part of the Software Development Lifecycle (SDLC) that the company uses to build its products. PCI is present at every level of the operation.</p><p>Furthermore, PCI now requires that the processes which support these critical business functions are robust. This means that things like the patch management process or vulnerability testing process have a clearly defined owner, a clearly defined review process, and a clear timetable.</p>
    <div>
      <h3>Further addressing "tickbox security"</h3>
      <a href="#further-addressing-tickbox-security">
        
      </a>
    </div>
    <p>Another aspect of the "tickbox security" culture that developed around PCI 2.0 was the fact that it was possible to use documentation to fool the audit process. This lead companies toward a “smoke and mirrors” strategy for covering up substantial security flaws or implying compensating controls that did not exist.</p><p>To address this, PCI 3.1 became much more rigorous about evidence. It is no longer sufficient to say, "here is some paperwork about this control." The control itself has to be tested and evaluated by the auditor before the organization can be passed as compliant. Furthermore, PCI 3.1 also insists on vulnerability testing on a regular basis at every stage of the development lifecycle. This requirement is designed to catch weaknesses that might have slipped through the cracks and to detect software vulnerabilities that somehow missed getting patched.</p>
    <div>
      <h3>Shared responsibility</h3>
      <a href="#shared-responsibility">
        
      </a>
    </div>
    <p>It has become clear to many information security practitioners that security is a complex, multi-actor deliverable. This means the weak link in the chain can, and often does, undermine other substantially more secure organizations. PCI 3.1 now recognizes this with a definition of responsibilities for all stakeholders in the payment process. Whether you’re a merchant, service provider, or card issuer, it is no longer possible to completely outsource accountability. This forces the whole chain into the light of the day and ensures that good security practices are followed every step of the way.</p>
    <div>
      <h3>Out with the old, in with the new (TLS)</h3>
      <a href="#out-with-the-old-in-with-the-new-tls">
        
      </a>
    </div>
    <p>TLS 1.0 and 1.1 have been around for a long time—SSL 3.0 even longer. The problem is that encryption has a shelf-life. As time passes, flaws are found in these systems, and computing performance reaches a level where it can break widespread encryption algorithms. Eventually, the encryption technology of yesterday no longer offers the same amount of protection as when it was first released.</p><p>With PCI 3.1, the payment card industry recognises this by setting a "sunset date" for old encryption standards. In order to remain compliant after June 30 2016, companies must switch off SSL 3.0, TLS 1.0, and TLS 1.1. This is a step in the right direction, and it affects CloudFlare as much as it affects our customers.</p><p>However, a significant amount of the world still uses TLS 1.0 (14% of traffic last time we looked). We recognise that not everyone wants, or needs, to do this. As a result, we will be offering our customers who wish to be PCI compliant a feature that will allow them to ensure their CloudFlare configuration meets PCI DSS guidelines.</p>
    <div>
      <h3>Summary</h3>
      <a href="#summary">
        
      </a>
    </div>
    <p>The changes between PCI 2.0 and 3.1 made re-certification a lengthy, but highly illuminating, process for CloudFlare. We achieved full compliance as a level one service provider while substantially improving our security along the way. We also learned a lot about the compliance needs of our customers through this process, and you can expect a lot more compliance-related features to surface further down the road.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1dBBHum02bRtsE5AhOZLJG/f6617ae58ea4da4d6dd17f7ef369fd8f/image_2-1.jpg" />
            
            </figure> ]]></content:encoded>
            <category><![CDATA[PCI Certified]]></category>
            <guid isPermaLink="false">49IKkpFS4bdmrgVZIVfzNa</guid>
            <dc:creator>Marc Rogers</dc:creator>
        </item>
        <item>
            <title><![CDATA[Of Phishing Attacks and WordPress 0days]]></title>
            <link>https://blog.cloudflare.com/of-phishing-attacks-and-wordpress-0days/</link>
            <pubDate>Fri, 24 Apr 2015 00:17:28 GMT</pubDate>
            <description><![CDATA[ Proxying around 5% of the Internet’s requests gives us an interesting vantage point from which to observe malicious behavior. However, it also makes us a target.  ]]></description>
            <content:encoded><![CDATA[ <p>Proxying around 5% of the Internet’s requests gives us an interesting vantage point from which to observe malicious behavior. However, it also makes us a target. Aside from the many and varied denial of service (DDoS) attacks that break against our defenses, we also see huge number of phishing campaigns. In this blog post I'll dissect a recent phishing attack that we detected and neutralized with the help of our friends at Bluehost.</p><p>One attack that is particularly interesting because it appears to be using a brand new WordPress 0day.</p>
    <div>
      <h3>A Day Out Phishing</h3>
      <a href="#a-day-out-phishing">
        
      </a>
    </div>
    <p>The first sign we typically see that indicate a new phishing campaign is underway are the phishing emails themselves. Generally, there's a constant background noise from a few of these emails targeting individual customers every day. However, when a larger campaign starts up that trickle typically turns into a flood of similar messages.</p><p>Here's an example we've recently received:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1ievhyb1PeFa6DJpZUERYP/e3340bc4f8c7c727a7797f060592aca2/Screen-Shot-2015-04-20-at-9-28-35-PM.png" />
            
            </figure><p><b>Note</b> — CloudFlare will never send you an email like this. If you see one like it, it is fake and should be reported to our abuse team by forwarding it to <a>support@cloudflare.com</a>.</p><p>In terms of the phishing campaign timeline, these emails aren’t the first event. Much like a spider looking to trap flies, a phisher first has to build a web to trap his or her victims. One way is through landing pages.</p><p>Looking like the legitimate login page of a target domain, these landing pages have one goal - to collect your credentials. Since these landing pages are quickly identified, the phisher will often go to great lengths to ensure that he or she can put up tens or even hundreds of pages during the lifetime of a campaign, all while being extra careful that these pages can't be traced back to him or her. Generally, this means compromising a large number of vulnerable websites in order to inject a phishing toolkit.</p><p>It's no surprise that first step in most phishing campaigns will usually be the mass compromise of a large number of vulnerable websites. This is why you will often see a notable uptick in the volume of phishing emails whenever a major vulnerability comes out for one of the popular CMS platforms. This is also why protecting the Internet’s back-office is a critical step in building a better Internet. If vulnerable CMS sites are protected, not only can they flourish, but the thousands of potential victims that could get abused when their infrastructure gets hijacked for malicious purposes are also protected.</p><p>This is why, at CloudFlare, we feel that providing free, basic security to every website is such important thing and why ultimately it could be such a game changer in building a better Internet.</p>
    <div>
      <h3>Back to the phish</h3>
      <a href="#back-to-the-phish">
        
      </a>
    </div>
    <p>Returning to our phishing attack, we see that it's no different. Analyzing the “load.cloudflare.com” hyperlink on the message, we see that it's actually a link pointing to a compromised WordPress site hosted by Bluehost.</p><p><b>Note</b>: This is not a reflection on Bluehost, <i>every</i> hosting provider gets targeted at some point. What's more important is how those hosting providers subsequently respond to reports of compromised sites. In fact, Bluehost should be commended for the speed with which they responded to our requests and the way they handled the affected sites we reported.</p><p>Every other email in this particular campaign followed the same pattern. Here is the source for another one of those links that uses “activate.cloudflare.com”:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2ULCZgjAD8uyU95cBQbqaN/b2b2f208706b31f20baa566c2a51dc44/Screen-Shot-2015-04-21-at-12-05-54-PM-1.png" />
            
            </figure><p>As you can see, while the message will display that you are going to “activate.cloudflare.com”, in reality, anyone that clicks on the link will be diverted to the victim website. Which, unsurprisingly, is running an old, vulnerable version of WordPress.</p><p>Every phishing email from this campaign has followed exactly the same pattern: a basic email template addressed to $customer informing them that their site has been locked, and inviting them to click on a link that takes them to a compromised WordPress site on Bluehost.</p><p>It looks like is this attacker harvested a large number of target domains using public DNS and email records identifying administrative email addresses. This became the victim list. The attacker then targeted a convenient, vulnerable CMS platform and injected his or her phishing kit into every innocent domain that's been compromised. Finally, once that is complete the attacker will send out the phishing emails to the victim list.</p><p>As phishing attacks go, this one is remarkably unsophisticated. All a savvy user had to do to reveal the true nature of this link is a quick mouse over. As soon as you do mouse over, the link you will see -- “activate.cloudflare.com” -- does not match the true destination.</p>
    <div>
      <h3>More advanced phishing techniques</h3>
      <a href="#more-advanced-phishing-techniques">
        
      </a>
    </div>
    <p>A clever phisher could have used one of the many well known tricks to obfuscate the URL. Below are some of those techniques possible so you will know them if you see them.</p><ul><li><p><b>Image Maps.</b> Instead of using a traditional hyperlink as above, phishers have been known to put an image map in their emails. The image, of course, is of a link to a trusted site such as “<a href="http://www.safesite.com”">www.safesite.com”</a>. When an unsuspecting user clicks within the coordinates of the image map, they are diverted to the phishing site.</p></li></ul><p>Here's an example of this technique taken from an old eBay phishing email:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2hUdm0YKA9SAePdOwS8svI/7f5004c93f8005e532a354701a686e0c/Screen-Shot-2015-04-21-at-12-22-59-PM.png" />
            
            </figure><p>In order to fool Bayesian filters looking for phishing spam like this, the phisher also added some legitimate sounding words in white font to keep them from appearing. The user experience, however, is the same as the earlier phishing email. As soon as you mouse over the image map, you will see the true destination.</p><ul><li><p><b>Misspelled domain names and homoglyphs.</b> Misspelled domains can look very similar to their legitimate counterparts and by using a homoglyph -- or look-a-like character -- an attacker can make a misspelling look even less obvious. Examples include “microsft.com” or “g00gle.com” These domains look so similar to the advertised link in the phishing email that many people will miss the discrepancy when they mouse over the link.</p></li><li><p><b>Reflection, Redirection, and javascript.</b> Many websites -- even sites like answers.usa.gov -- have search features, offsite links, or vulnerable pages that have historically been abused by phishers. If the offsite link can be manipulated, typically with a cross site scripting vulnerability, it's possible for the phisher to present a link from the target domain that takes the victim to a page under the Phisher’s control. Below is an example of a historic flaw of this nature that existed on the answers.usa.gov site</p></li></ul>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6WjPNtZuHPsd99hwLkYDWF/128bfd7419ccbfe97951a06b03e05f3a/Screen-Shot-2015-04-21-at-12-42-07-PM.png" />
            
            </figure><p>In this case, the URL looks like a legitimate “answers.usa.gov” ur,l but if you clicked on it, you would activate a cross-site scripting flaw that executes the javascript in your browser. The attacker could easily turn a page with this sort of flaw into a malicious credential harvester, all while continuing to use a link to the legitimate site.</p><p><b>Note</b> - All those extra %20’s are encoded spaces to push the javascript far enough away that it won’t be visible on mouse over.</p><p>A slightly different flaw, also on the USA.gov site, involved its URL shortening service. Open to anyone, Phishers quickly discovered that they could use this service to create shortened URLs that looked important because of the .gov prefix. A victim that might be reluctant to click on an unsolicited bit.ly link might be less reluctant if faced with a .gov link. Here's an example of an email from a campaign abusing that service:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5ZYcFpcPq9WSpiGmzpzCNo/224cd6d4e3e89131942380392064a635/page-threats-govt-spam1.jpg" />
            
            </figure><ul><li><p><b>URL obfuscation.</b> Historically, this has been one of the most popular and varied techniques. The concept is simple: use any of the available URL encoding methods to disguise the true nature of the destination URL. I'll describe a couple of historic techniques below.</p></li></ul><p><b>Note</b>: many modern browsers now warn against some of these techniques.</p><p><b>First</b> is username:password@url abuse. This notation, now deprecated because only an idiot would pass credentials in the HTTP query string these days, was designed to allow seamless access to password protected areas. Abuse is easy, for example:</p><p><a>www.safesite.com@www.evilsite.com</a></p><p><b>Next</b> is IP address obfuscation. You are probably familiar with the IP address as a dotted quad? 123.123.123.123 Well, IP addresses can also be expressed in a number of other formats which browsers will accept. By combining this with the “username:password@” trick above, an attacker can effectively hide his true destination. Below are four different methods for presenting one of Google’s IP addresses -- 74.125.131.105</p><ul><li><p><a href="http://www.safesite.com@74.125.131.105">http://www.safesite.com@74.125.131.105</a></p></li><li><p><a href="http://www.safesite.com@1249739625/">http://www.safesite.com@1249739625/</a></p></li><li><p><a href="http://www.safesite.com@0x4a.0x7d.0x83.0x69/">http://www.safesite.com@0x4a.0x7d.0x83.0x69/</a></p></li><li><p><a href="http://www.safesite.com@0112.0175.0203.0151/">http://www.safesite.com@0112.0175.0203.0151/</a></p></li></ul><p>All of these URLs go to 74.125.131.150.</p><p><b>Finally</b> we have Punycode and Homoglyph based obfuscation. Punycode was created as a way for international characters to map to valid characters for DNS, e.g., “café.com”. Using punycode this would be represented as xn--caf-dma.com. As mentioned at the start, homoglyphs are symbols which closely resemble other symbols, like 0 and O, or I and l.</p><p>By combining these two methods we can create URLs like:</p><p><a href="http://www.safesite.com⁄login.html.evilsite.com">www.safesite.com⁄login.html.evilsite.com</a></p><p>The secret to this obfuscated URL is to use a non-standard character which happens to be a homoglyph for /. The result? Instead of a page on safesite.com, you are actually taken to a subdomain of the following punycode domain:</p><p><a href="http://www.safesite.xn--comlogin-g03d.html.evilsite.com">www.safesite.xn--comlogin-g03d.html.evilsite.com</a></p><p>New obfuscation techniques like these appear all the time. Phishing is both the most common and arguably the most effective method of attack for medium to low skill attackers. Staying up to date with these techniques can be extremely useful when it comes to spotting potential phishing attempts.</p>
    <div>
      <h3>Conclusions</h3>
      <a href="#conclusions">
        
      </a>
    </div>
    <p>After further analysis, it quickly became clear that all of the endpoints in this campaign were compromised WordPress sites running WordPress 4.0 - 4.1.1.</p><p>The most likely scenario is that a new critical vulnerability has surfaced in WordPress 4.1.1 and earlier. Given that 4.1.1 was, at the time of writing, the most current version of WordPress, this can only mean one thing -- a WordPress 0day in the wild.</p><p>Checking the WordPress site confirms that that a few hours ago they announced a new critical cross-site scripting vulnerability:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1eZiSBTqEnOdf34Krrxj06/e21be77b781c78d7fa3ac4d4d68d0498/Screen-Shot-2015-04-21-at-5-11-55-PM.png" />
            
            </figure><p>While we can’t confirm for certain that this is the vulnerability our phisher was using, it seems highly likely given the version numbers compromised.</p><p>Over the last few hours, we've worked closely with our friends at Bluehost to identify the remaining affected sites compromised by this phisher so they could take them offline. A quick response like this essentially renders all remaining phishing emails in this current campaign harmless. The need to quickly neutralize Phishing sites is why CloudFlare engineers developed our own process for rapidly identifying and tagging suspected compromised sites. When a site on our network is flagged as phishing site, we impose an interstitial page that serves to both to warn potential visitors and give the site owner time to fix the issue.</p><p>You can read more about our own process in this <a href="/127760418/">blog post</a>.</p>
    <div>
      <h3>How customers can stay safe</h3>
      <a href="#how-customers-can-stay-safe">
        
      </a>
    </div>
    <p>By enabling the CloudFlare's WAF, CloudFlare customers have some protection against the sort of cross-site scripting vulnerability involved in this attack. However, anyone can still fall victim to a phishing email. Below are 7 tips to help you stay safe:</p><ul><li><p>NEVER click on links in unsolicited emails or advertisements.</p></li><li><p>Be vigilant, poor spelling and strange URLs are dead giveaways.</p></li><li><p>Mouse over the URL and see if it matches the what’s presented in the email.</p></li><li><p>Type URLs in manually where possible.</p></li><li><p>Stay up to date on your software and make sure you are running a current up-to-date antivirus client — yes, even if you're using Mac.</p></li><li><p>It’s possible to set traps for phishers: use unique, specific email addresses for each account you set up. That way if you get an email to you Bank of America email address asking for your Capital One password, you immediately know it's a phishing attack.</p></li><li><p>Finally, where possible enable two-factor authentication. While not foolproof, it makes it much harder for attackers.</p></li></ul> ]]></content:encoded>
            <category><![CDATA[WordPress]]></category>
            <category><![CDATA[Attacks]]></category>
            <category><![CDATA[DDoS]]></category>
            <category><![CDATA[Abuse]]></category>
            <guid isPermaLink="false">6T3SXr5Tn4n7xTnOtmpmJk</guid>
            <dc:creator>Marc Rogers</dc:creator>
        </item>
    </channel>
</rss>