
<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>Fri, 03 Apr 2026 22:00:45 GMT</lastBuildDate>
        <item>
            <title><![CDATA[The mechanics of a sophisticated phishing scam and how we stopped it]]></title>
            <link>https://blog.cloudflare.com/2022-07-sms-phishing-attacks/</link>
            <pubDate>Tue, 09 Aug 2022 15:56:30 GMT</pubDate>
            <description><![CDATA[ Yesterday, August 8, 2022, Twilio shared that they’d been compromised by a targeted phishing attack. Around the same time as Twilio was attacked, we saw an attack with very similar characteristics also targeting Cloudflare’s employees ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Yesterday, August 8, 2022, Twilio shared that they’d been <a href="https://www.twilio.com/blog/august-2022-social-engineering-attack">compromised by a targeted phishing attack</a>. Around the same time as Twilio was attacked, we saw an attack with very similar characteristics also targeting Cloudflare’s employees. While individual employees did fall for the phishing messages, we were able to thwart the attack through our own use of <a href="https://www.cloudflare.com/cloudflare-one/">Cloudflare One products</a>, and physical security keys issued to every employee that are required to access all our applications.</p><p>We have confirmed that no Cloudflare systems were compromised. Our <a href="/introducing-cloudforce-one-threat-operations-and-threat-research/">Cloudforce One threat intelligence team</a> was able to perform additional analysis to further dissect the mechanism of the attack and gather critical evidence to assist in tracking down the attacker.</p><p>This was a sophisticated attack targeting employees and systems in such a way that we believe most organizations would be likely to be breached. Given that the attacker is targeting multiple organizations, we wanted to share here a rundown of exactly what we saw in order to help other companies recognize and mitigate this attack.</p>
    <div>
      <h2>Targeted Text Messages</h2>
      <a href="#targeted-text-messages">
        
      </a>
    </div>
    <p>On July 20, 2022, the Cloudflare Security team received reports of employees receiving legitimate-looking text messages pointing to what appeared to be a Cloudflare Okta login page. The messages began at 2022-07-20 22:50 UTC. Over the course of less than 1 minute, at least 76 employees received text messages on their personal and work phones. Some messages were also sent to the employees family members. We have not yet been able to determine how the attacker assembled the list of employees phone numbers but have reviewed access logs to our employee directory services and have found no sign of compromise.</p><p>Cloudflare runs a 24x7 Security Incident Response Team (SIRT). Every Cloudflare employee is trained to report anything that is suspicious to the SIRT. More than 90 percent of the reports to SIRT turn out to not be threats. Employees are encouraged to report anything and never discouraged from over-reporting. In this case, however, the reports to SIRT were a real threat.</p><p>The text messages received by employees looked like this:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2NzSGBSGfCogIk4BXWmXND/cb4bc7d2f174f8b360b7c51664e71f66/image3-5.png" />
            
            </figure><p>They came from four phone numbers associated with T-Mobile-issued SIM cards: (754) 268-9387, (205) 946-7573, (754) 364-6683 and (561) 524-5989. They pointed to an official-looking domain: cloudflare-okta.com. That domain had been registered via Porkbun, a <a href="https://www.cloudflare.com/learning/dns/glossary/what-is-a-domain-name-registrar/">domain registrar</a>, at 2022-07-20 22:13:04 UTC — less than 40 minutes before the phishing campaign began.</p><p>Cloudflare built our <a href="https://www.cloudflare.com/products/registrar/custom-domain-protection/">secure registrar product</a> in part to be able to monitor when domains using the Cloudflare brand were registered and get them shut down. However, because this domain was registered so recently, it had not yet been published as a new .com registration, so our systems did not detect its registration and our team had not yet moved to terminate it.</p><p>If you clicked on the link it took you to a phishing page. The phishing page was hosted on DigitalOcean and looked like this:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/32GWziRZv7ijycvETvNHny/58f811265c86872398b876d64f65a55d/image1-13.png" />
            
            </figure><p>Cloudflare uses Okta as our identity provider. The phishing page was designed to look identical to a legitimate Okta login page. The phishing page prompted anyone who visited it for their username and password.</p>
    <div>
      <h2>Real-Time Phishing</h2>
      <a href="#real-time-phishing">
        
      </a>
    </div>
    <p>We were able to analyze the payload of the <a href="https://www.cloudflare.com/learning/access-management/phishing-attack/">phishing attack</a> based on what our employees received as well as its content being posted to services like VirusTotal by other companies that had been attacked. When the phishing page was completed by a victim, the credentials were immediately relayed to the attacker via the messaging service Telegram. This real-time relay was important because the phishing page would also prompt for a Time-based One Time Password (TOTP) code.</p><p>Presumably, the attacker would receive the credentials in real-time, enter them in a victim company’s actual login page, and, for many organizations that would generate a code sent to the employee via SMS or displayed on a password generator. The employee would then enter the TOTP code on the phishing site, and it too would be relayed to the attacker. The attacker could then, before the TOTP code expired, use it to access the company’s actual login page — defeating most two-factor authentication implementations.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6kHLCU7dpKptSuJXwOy39X/0da593615149665ba8f7360e4232a996/image2-6.png" />
            
            </figure>
    <div>
      <h2>Protected Even If Not Perfect</h2>
      <a href="#protected-even-if-not-perfect">
        
      </a>
    </div>
    <p>We confirmed that three Cloudflare employees fell for the phishing message and entered their credentials. However, Cloudflare does not use TOTP codes. Instead, every employee at the company is issued a FIDO2-compliant security key from a vendor like YubiKey. Since the hard keys are tied to users and implement <a href="https://www.yubico.com/blog/creating-unphishable-security-key/">origin binding</a>, even a sophisticated, real-time phishing operation like this cannot gather the information necessary to log in to any of our systems. While the attacker attempted to log in to our systems with the compromised username and password credentials, they could not get past the hard key requirement.</p><p>But this phishing page was not simply after credentials and TOTP codes. If someone made it past those steps, the phishing page then initiated the download of a phishing payload which included AnyDesk’s remote access software. That software, if installed, would allow an attacker to control the victim’s machine remotely. We confirmed that none of our team members got to this step. If they had, however, our endpoint security would have stopped the installation of the remote access software.</p>
    <div>
      <h2>How Did We Respond?</h2>
      <a href="#how-did-we-respond">
        
      </a>
    </div>
    <p>The main response actions we took for this incident were:</p>
    <div>
      <h3>1. Block the phishing domain using Cloudflare Gateway</h3>
      <a href="#1-block-the-phishing-domain-using-cloudflare-gateway">
        
      </a>
    </div>
    <p>Cloudflare Gateway is a <a href="https://www.cloudflare.com/learning/access-management/what-is-a-secure-web-gateway/">Secure Web Gateway</a> solution providing threat and data protection with DNS / HTTP filtering and natively-integrated <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust</a>. We use this  solution internally to proactively identify malicious domains and block them. Our team added the malicious domain to Cloudflare Gateway to block all employees from accessing it.</p><p>Gateway’s automatic detection of malicious domains also identified the domain and blocked it, but the fact that it was registered and messages were sent within such a short interval of time meant that the system hadn’t automatically taken action before some employees had clicked on the links. Given this incident we are working to speed up how quickly malicious domains are identified and blocked. We’re also implementing controls on access to newly registered domains which we offer to customers but had not implemented ourselves.</p>
    <div>
      <h3>2. Identify all impacted Cloudflare employees and reset compromised credentials</h3>
      <a href="#2-identify-all-impacted-cloudflare-employees-and-reset-compromised-credentials">
        
      </a>
    </div>
    <p>We were able to compare recipients of the phishing texts to login activity and identify threat-actor attempts to authenticate to our employee accounts. We identified login attempts blocked due to the hard key (U2F) requirements indicating that the correct password was used, but the second factor could not be verified. For the three of our employees' credentials were leaked, we reset their credentials and any active sessions and initiated scans of their devices.</p>
    <div>
      <h3>3. Identify and take down threat-actor infrastructure</h3>
      <a href="#3-identify-and-take-down-threat-actor-infrastructure">
        
      </a>
    </div>
    <p>The threat actor's phishing domain was newly registered via Porkbun, and hosted on DigitalOcean. The phishing domain used to target Cloudflare was set up less than an hour before the initial phishing wave. The site had a Nuxt.js frontend, and a Django backend. We worked with DigitalOcean to shut down the attacker’s server. We also worked with Porkbun to seize control of the malicious domain.</p><p>From the failed sign-in attempts we were able to determine that the threat actor was leveraging Mullvad VPN software and distinctively using the Google Chrome browser on a Windows 10 machine. The VPN IP addresses used by the attacker were 198.54.132.88, and 198.54.135.222. Those IPs are assigned to Tzulo, a US-based dedicated server provider whose website claims they have servers located in Los Angeles and Chicago. It appears, actually, that the first was actually running on a server in the Toronto area and the latter on a server in the Washington, DC area. We blocked these IPs from accessing any of our services.</p>
    <div>
      <h3>4. Update detections to identify any subsequent attack attempts</h3>
      <a href="#4-update-detections-to-identify-any-subsequent-attack-attempts">
        
      </a>
    </div>
    <p>With what we were able to uncover about this attack, we incorporated additional signals to our already existing detections to specifically identify this threat-actor. At the time of writing we have not observed any additional waves targeting our employees. However, intelligence from the server indicated the attacker was targeting other organizations, including Twilio. We reached out to these other organizations and shared intelligence on the attack.</p>
    <div>
      <h3>5. Audit service access logs for any additional indications of attack</h3>
      <a href="#5-audit-service-access-logs-for-any-additional-indications-of-attack">
        
      </a>
    </div>
    <p>Following the attack, we screened all our system logs for any additional fingerprints from this particular attacker. Given Cloudflare Access serves as the central control point for all Cloudflare applications, we can search the logs for any indication the attacker may have breached any systems. Given employees’ phones were targeted, we also carefully reviewed the logs of our employee directory providers. We did not find any evidence of compromise.</p>
    <div>
      <h2>Lessons Learned and Additional Steps We’re Taking</h2>
      <a href="#lessons-learned-and-additional-steps-were-taking">
        
      </a>
    </div>
    <p>We learn from every attack. Even though the attacker was not successful, we are making additional adjustments from what we’ve learned. We’re adjusting the settings for Cloudflare Gateway to restrict or sandbox access to sites running on domains that were registered within the last 24 hours. We will also run any non-allow listed sites containing terms such as “cloudflare” “okta” “sso” and “2fa” through our <a href="https://www.cloudflare.com/learning/access-management/what-is-browser-isolation/">browser isolation technology</a>. We are also increasingly using <a href="https://www.cloudflare.com/products/zero-trust/email-security/">Cloudflare Area 1’s phish-identification technology</a> to scan the web and look for any pages that are designed to target Cloudflare. Finally, we’re tightening up our Access implementation to prevent any logins from unknown VPNs, residential proxies, and infrastructure providers. All of these are standard features of the same products we offer to customers.</p><p>The attack also reinforced the importance of three things we’re doing well. First, requiring hard keys for access to all applications. <a href="https://krebsonsecurity.com/2018/07/google-security-keys-neutralized-employee-phishing/">Like Google</a>, we have not seen any successful phishing attacks since rolling hard keys out. Tools like Cloudflare Access made it easy to support hard keys even across legacy applications. If you’re an organization interested in how we rolled out hard keys, reach out to <a>cloudforceone-irhelp@cloudflare.com</a> and our security team would be happy to share the best practices we learned through this process.</p><p>Second, using Cloudflare’s own technology to protect our employees and systems. Cloudflare One’s solutions like Access and Gateway were critical to staying ahead of this attack. We configured our Access implementation to require hard keys for every application. It also creates a central logging location for all application authentications. And, if ever necessary, a place from which we can kill the sessions of a potentially compromised employee. Gateway allows us the ability to shut down malicious sites like this one quickly and understand what employees may have fallen for the attack. These are all functionalities that we make available to Cloudflare customers as part of our Cloudflare One suite and this attack demonstrates how effective they can be.</p><p>Third, having a paranoid but blame-free culture is critical for security. The three employees who fell for the phishing scam were not reprimanded. We’re all human and we make mistakes. It’s critically important that when we do, we report them and don’t cover them up. This incident provided another example of why security is part of every team member at Cloudflare’s job.</p>
    <div>
      <h2>Detailed Timeline of Events</h2>
      <a href="#detailed-timeline-of-events">
        
      </a>
    </div>
    <p>.tg {border-collapse:collapse;border-spacing:0;} .tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px; overflow:hidden;padding:10px 5px;word-break:normal;} .tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px; font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;} .tg .tg-0lax{text-align:left;vertical-align:top}</p><p>2022-07-20 22:49 UTC</p><p>Attacker sends out 100+ SMS messages to Cloudflare employees and their families.</p><p>2022-07-20 22:50 UTC</p><p>Employees begin reporting SMS messages to Cloudflare Security team.</p><p>2022-07-20 22:52 UTC</p><p>Verify that the attacker's domain is blocked in Cloudflare Gateway for corporate devices.</p><p>2022-07-20 22:58 UTC</p><p>Warning communication sent to all employees across chat and email.</p><p>2022-07-20 22:50 UTC to2022-07-20 23:26 UTC</p><p>Monitor telemetry in the Okta System log &amp; Cloudflare Gateway HTTP logs to locate credential compromise. Clear login sessions and suspend accounts on discovery.</p><p>2022-07-20 23:26 UTC</p><p>Phishing site is taken down by the hosting provider.</p><p>2022-07-20 23:37 UTC</p><p>Reset leaked employee credentials.</p><p>2022-07-21 00:15 UTC</p><p>Deep dive into attacker infrastructure and capabilities.</p>
    <div>
      <h2>Indicators of compromise</h2>
      <a href="#indicators-of-compromise">
        
      </a>
    </div>
    
<table>
<thead>
  <tr>
    <th>Value</th>
    <th>Type</th>
    <th>Context and MITRE Mapping</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td>cloudflare-okta[.]com hosted on 147[.]182[.]132[.]52</td>
    <td>Phishing URL</td>
    <td><a href="https://attack.mitre.org/techniques/T1566/002/">T1566.002</a>: Phishing: Spear Phishing Link sent to users.</td>
  </tr>
  <tr>
    <td>64547b7a4a9de8af79ff0eefadde2aed10c17f9d8f9a2465c0110c848d85317a</td>
    <td>SHA-256</td>
    <td><a href="https://attack.mitre.org/techniques/T1219/">T1219</a>: Remote Access Software being distributed by the threat actor</td>
  </tr>
</tbody>
</table>
    <div>
      <h2>What You Can Do</h2>
      <a href="#what-you-can-do">
        
      </a>
    </div>
    <p>If you are seeing similar attacks in your environment, please don’t hesitate to reach out to <a>cloudforceone-irhelp@cloudflare.com</a>, and we’re happy to share best practices on how to keep your business secure. If on the other hand, you are interested in learning more about how we implemented security keys please review our <a href="/how-cloudflare-implemented-fido2-and-zero-trust/">blog post</a> or reach out to <a>securitykeys@cloudflare.com</a>.</p><p>Finally, do you want to work on detecting and mitigating the next attacks with us? We’re hiring on our Detection and Response team, <a href="https://boards.greenhouse.io/cloudflare/jobs/4364485?gh_jid=4364485">come join us</a>!</p> ]]></content:encoded>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Post Mortem]]></category>
            <category><![CDATA[Phishing]]></category>
            <category><![CDATA[Cloudflare Gateway]]></category>
            <category><![CDATA[Cloudflare Access]]></category>
            <guid isPermaLink="false">4NqFdSmdzCcdoVLRQ05xzx</guid>
            <dc:creator>Matthew Prince</dc:creator>
            <dc:creator>Daniel Stinson-Diess</dc:creator>
            <dc:creator>Sourov Zaman</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare observations of Confluence zero day (CVE-2022-26134)]]></title>
            <link>https://blog.cloudflare.com/cloudflare-observations-of-confluence-zero-day-cve-2022-26134/</link>
            <pubDate>Sun, 05 Jun 2022 20:54:47 GMT</pubDate>
            <description><![CDATA[ UTC Atlassian released a Security Advisory relating to a remote code execution (RCE) vulnerability affecting Confluence Server and Confluence Data Center products. ]]></description>
            <content:encoded><![CDATA[ <p>On 2022-06-02 at 20:00 UTC <a href="https://confluence.atlassian.com/doc/confluence-security-advisory-2022-06-02-1130377146.html">Atlassian released a Security Advisory</a> relating to a <a href="https://www.cloudflare.com/learning/security/what-is-remote-code-execution/">remote code execution (RCE)</a> vulnerability affecting Confluence Server and Confluence Data Center products. This post covers our current analysis of this vulnerability.</p><p>When we learned about the vulnerability, Cloudflare’s internal teams <a href="/cloudflare-customers-are-protected-from-the-atlassian-confluence-cve-2022-26134/">immediately engaged</a> to ensure all our customers and our own infrastructure were protected:</p><ul><li><p>Our Web Application Firewall (WAF) teams started work on our first <a href="/cloudflare-customers-are-protected-from-the-atlassian-confluence-cve-2022-26134/">mitigation rules</a> that were deployed on 2022-06-02 at 23:38 UTC for all customers.</p></li><li><p>Our internal security team started reviewing our Confluence instances to ensure Cloudflare itself was not impacted.</p></li></ul>
    <div>
      <h3>What is the impact of this vulnerability?</h3>
      <a href="#what-is-the-impact-of-this-vulnerability">
        
      </a>
    </div>
    <p><a href="https://www.volexity.com/blog/2022/06/02/zero-day-exploitation-of-atlassian-confluence/">According to Volexity</a>, the vulnerability results in full unauthenticated RCE, allowing an attacker to fully take over the target application.</p><p>Active exploits of this vulnerability leverage command injections using specially crafted strings to load a malicious class file in memory, allowing attackers to subsequently plant a webshell on the target machine that they can interact with.</p><p>Once the vulnerability is exploited, attackers can implant additional malicious code such as <a href="https://github.com/Freakboy/Behinder">Behinder</a>; a custom webshell called noop.jsp, which replaces the legitimate noop.jsp file located at Confluence root&gt;/confluence/noop.jsp; and another open source webshell called <a href="https://github.com/tennc/webshell/blob/master/caidao-shell/%E8%8F%9C%E5%88%80jsp%E4%BF%AE%E6%94%B9.jsp">Chopper</a>.</p>
    <div>
      <h3>Our observations of exploit attempt in the wild</h3>
      <a href="#our-observations-of-exploit-attempt-in-the-wild">
        
      </a>
    </div>
    <p>Once we learned of the vulnerability, we began reviewing our WAF data to identify activity related to exploitation of the vulnerability. We identified requests matching potentially malicious payloads as early as 2022-05-26 00:33 UTC, indicating that knowledge of the exploit was realized by some attackers prior to the Atlassian security advisory.</p><p>Since our mitigation rules were put in place, we have seen a large spike in activity starting from 2022-06-03 10:30 UTC — a little more than 10 hours after the new WAF rules were first deployed. This large spike coincides with the increased awareness of the vulnerability and release of public proof of concepts. Attackers are actively scanning for vulnerable applications at time of writing.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1IKKemXcnzUEHLEmQQrkOE/ab2f1228eb76ce5d17642ad1a1fa1eea/image2-1.png" />
            
            </figure><p>Although we have seen valid attack payloads since 2022-05-26, many payloads that started matching our initial WAF mitigation rules once the advisory was released were not valid against this specific vulnerability. Examples provided below:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7fvJyCJWOgwmFHSZ2xvwF0/0504607939ea41ecb9574c54c2cbd7fe/Screenshot-2022-06-05-at-21.27.02.png" />
            
            </figure><p>The activity above indicates that actors were using scanning tools to try and identify the attack vectors. Exact knowledge of how to exploit the vulnerability may have been consolidated amongst select attackers and may not have been widespread.</p><p>The decline in WAF rule matches in the graph above after 2022-06-03 23:00 UTC is due to us releasing improved WAF rules. The new, updated rules greatly improved accuracy, reducing the number of false positives, such as the examples above.</p><p>A valid malicious URL targeting a vulnerable Confluence application is shown below:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2Y0Pq6cYpZ7QnktHmGw8J3/5d9527c10b5b919166524124aca34e34/Screenshot-2022-06-05-at-21.31.21-1.png" />
            
            </figure><p>(Where <code>$HOSTNAME</code> is the host of the target application.)</p><p>The URL above will run the contents of the HTTP request post body <code>eval(#parameters.data[0])</code>. Normally this will be a script that will download a web shell to the local server allowing the attacker to run arbitrary code on demand.</p><p>Other example URLs, omitting the schema and hostname, include:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/70pRSh2wwa3VOobn1qW3IQ/0510af994d2b19a56365b931726ad3ff/Screenshot-2022-06-05-at-21.35.24.png" />
            
            </figure><p>Some of the activity we are observing is indicative of malware campaigns and botnet behavior. It is important to note that given the payload structure, other WAF rules have also been effective at mitigating particular variations of the attack. These include rule <b>PHP100011</b> and <b>PLONE0002</b>.</p>
    <div>
      <h3>Cloudflare's response to CVE-2022-26134</h3>
      <a href="#cloudflares-response-to-cve-2022-26134">
        
      </a>
    </div>
    <p>We have a defense-in-depth approach which uses Cloudflare to protect Cloudflare. We had high confidence that we were not impacted by this vulnerability due to the security measures in place. We confirmed this by leveraging our detection and response capabilities to sweep all of our internal assets and logs for signs of attempted compromise.</p><p>The main actions we took in response to this incident were:</p><ol><li><p>Gathered as much information as possible about the attack.</p></li><li><p>Engaged our WAF team to start working on mitigation rules for this CVE.</p></li><li><p>Searched our logs for any signs of compromise.</p></li><li><p>We searched the logs from our internal Confluence instances for any signs of attempted exploits. We supplemented our assessment with the pattern strings provided by Atlassian: "<code>${</code>".</p></li><li><p>Any matches were reviewed to find out if they could be actual exploits. We found no signs that our systems were targeted by actual exploits.</p></li><li><p>As soon as the WAF team was confident of the quality of the new rules, we started deploying them to all our servers to start protecting our customers as soon as possible. As we also use the WAF for our internal systems, our Confluence instances are also protected by the new WAF rules.</p></li><li><p>We scrutinized our Confluence servers for signs of compromise and the presence of malicious implants. No signs of compromise were detected.</p></li><li><p>We deployed rules to our SIEM and monitoring systems to detect any new exploitation attempt against our Confluence instances.</p></li></ol>
    <div>
      <h3>How Cloudflare uses Confluence</h3>
      <a href="#how-cloudflare-uses-confluence">
        
      </a>
    </div>
    <p>Cloudflare uses Confluence internally as our main wiki platform. Many of our teams use Confluence as their main knowledge-sharing platform. Our internal instances are protected by Cloudflare Access. In previous blog posts, we described <a href="/dogfooding-from-home/">how we use Access to protect internal resources</a>. This means that every request sent to our Confluence servers must be authenticated and validated in accordance with our Access policies. No unauthenticated access is allowed.</p><p>This allowed us to be confident that only Cloudflare users are able to submit requests to our Confluence instances, thus reducing the risk of external exploitation attempts.</p>
    <div>
      <h3>What to do if you are using Confluence on-prem</h3>
      <a href="#what-to-do-if-you-are-using-confluence-on-prem">
        
      </a>
    </div>
    <p>If you are an Atlassian customer for their on-prem products, you should patch to their latest fixed versions. We advise the following actions:</p><ol><li><p>Add Cloudflare Access as an extra protection layer for all your websites. Easy-to-follow instructions to enable Cloudflare Access are available <a href="https://developers.cloudflare.com/cloudflare-one/applications/configure-apps/self-hosted-apps/">here</a>.</p></li><li><p>Enable a WAF that includes protection for CVE-2022-26134 in front of your Confluence instances. For more information on how to enable Cloudflare's WAF and other security products, check <a href="https://developers.cloudflare.com/fundamentals/get-started/task-guides/secure-your-website/">here</a>.</p></li><li><p>Check the logs from your Confluence instances for signs of exploitation attempts. Look for the strings <code>/wiki/</code> and <code>${</code> in the same request.</p></li><li><p>Use forensic tools and check for signs of post-exploitation tools such as webshells or other malicious implants.</p></li></ol>
    <div>
      <h3>Indicators of compromise and attack</h3>
      <a href="#indicators-of-compromise-and-attack">
        
      </a>
    </div>
    <p>The following indicators are associated with activity observed in the wild by Cloudflare, as described above. These indicators can be searched for against logs to determine if there is compromise in the environment associated with the Confluence vulnerability.</p><p><b>Indicators of Compromise (IOC)</b></p><table><tr><td><p><b>#</b></p></td><td><p><b>Type</b></p></td><td><p><b>Value</b></p></td><td><p><b>Filename/Hash</b></p></td></tr><tr><td><p>
1</p></td><td><p>
File</p></td><td><p>50f4595d90173fbe8b85bd78a460375d8d5a869f1fef190f72ef993c73534276</p></td><td><p>Filename: 45.64.json
Malicious file associated with exploit</p></td></tr><tr><td><p>
2</p></td><td><p>
File</p></td><td><p>b85c16a7a0826edbcddbd2c17078472169f8d9ecaa7209a2d3976264eb3da0cc</p></td><td><p>Filename: 45.64.rar
Malicious file associated with exploit</p></td></tr><tr><td><p>
3</p></td><td><p>
File</p></td><td><p>90e3331f6dd780979d22f5eb339dadde3d9bcf51d8cb6bfdc40c43d147ecdc8c</p></td><td><p>Filename: 45.640.txt
Malicious file associated with exploit</p></td></tr><tr><td><p>4</p></td><td><p>File</p></td><td><p>1905fc63a9490533dc4f854d47c7cb317a5f485218173892eafa31d7864e2043</p></td><td><p>Filename: 45.647.txt
Malicious file associated with exploit</p></td></tr><tr><td><p>5</p></td><td><p>File</p></td><td><p>5add63588480287d1aee01e8dd267340426df322fe7a33129d588415fd6551fc</p></td><td><p>Filename: lan (perl script)
Malicious file associated with exploit</p></td></tr><tr><td><p>6</p></td><td><p>File</p></td><td><p>67c2bae1d5df19f5f1ac07f76adbb63d5163ec2564c4a8310e78bcb77d25c988</p></td><td><p>Filename: jui.sh
Malicious file associated with exploit</p></td></tr><tr><td><p>7</p></td><td><p>File</p></td><td><p>281a348223a517c9ca13f34a4454a6fdf835b9cb13d0eb3ce25a76097acbe3fb</p></td><td><p>Filename: conf
Malicious file associated with exploit</p></td></tr></table><p><b>Indicators of Attack (IOA)</b></p><table><tr><td><p><b>#</b></p></td><td><p><b>Type</b></p></td><td><p><b>Value</b></p></td><td><p><b>Description</b></p></td></tr><tr><td><p>1</p></td><td><p>URL String</p></td><td><p><code>${</code></p></td><td><p>String used to craft malicious payload</p></td></tr><tr><td><p>2</p></td><td><p>URL String</p></td><td><p><code>javax.script.ScriptEngineManager</code></p></td><td><p>String indicative of ScriptEngine manager to craft malicious payloads</p></td></tr></table><p></p> ]]></content:encoded>
            <category><![CDATA[Vulnerabilities]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Zero Day Threats]]></category>
            <guid isPermaLink="false">j2kQP8hkENoxJ6Nhn4VEf</guid>
            <dc:creator>Vaibhav Singhal</dc:creator>
            <dc:creator>Himanshu Anand</dc:creator>
            <dc:creator>Daniel Stinson-Diess</dc:creator>
            <dc:creator>Sourov Zaman</dc:creator>
            <dc:creator>Michael Tremante</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare customers are protected from the Atlassian Confluence CVE-2022-26134]]></title>
            <link>https://blog.cloudflare.com/cloudflare-customers-are-protected-from-the-atlassian-confluence-cve-2022-26134/</link>
            <pubDate>Fri, 03 Jun 2022 05:30:00 GMT</pubDate>
            <description><![CDATA[ On June 02, 2022 Atlassian released a security advisory for their Confluence Server and Data Center applications, highlighting a critical severity unauthenticated remote code execution vulnerability. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Updated on 3rd of June: amended information according to Atlassian’s official advisory update.</p><p>On June 2, 2022 Atlassian released a security advisory for their <a href="https://confluence.atlassian.com/doc/confluence-security-advisory-2022-06-02-1130377146.html">Confluence Server and Data Center</a> applications, highlighting a critical severity unauthenticated remote code execution vulnerability. The vulnerability is as <a href="https://nvd.nist.gov/vuln/detail/CVE-2022-26134">CVE-2022-26134</a> and  impacts all versions of Confluence Server and Data Center versions greater than 1.3.0.</p><p>Atlassian has released a patch and all Confluence customers should update immediately to the latest version available from the <a href="https://www.atlassian.com/software/confluence/download-archives">official download center</a>.</p><p>Cloudflare customers using either <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">WAF</a> or Access are already protected. Atlassian also recommends implementing a WAF rule that blocks URLs containing <code>${</code> as it  may reduce risk of being compromised.  </p><p>Our own Confluence nodes are protected by both WAF and Access, and at the time of writing, we have found no evidence that our Confluence instance was exploited.</p><p>Cloudflare reviewed the security advisory, conducted our own analysis, and prepared a WAF mitigation rule via an emergency release. The rule, once tested, was deployed on June 2, 2022, at 23:38 UTC with a default action of BLOCK and the following IDs:</p><ul><li><p>100531 (for our legacy WAF)</p></li><li><p>408cff2b  (for our new WAF)</p></li></ul><p>All websites, including free customers using the Cloudflare WAF to protect their self-hosted Confluence applications have automatically been protected since the new rule was deployed.</p><p>Customers who have deployed Cloudflare Access in front of their Confluence applications were protected from external exploitation attempts even before the emergency release. Access verifies every request made to a Confluence application to ensure it is coming from an authenticated user. Any unauthenticated users attempting this exploit would have been blocked by Cloudflare before they could reach the Confluence server.</p><p>Customers not yet using <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">zero trust</a> rules to protect access to their applications can <a href="https://developers.cloudflare.com/cloudflare-one/applications/configure-apps/self-hosted-apps/">follow these instructions</a> to enable Access now in a few minutes.</p>
    <div>
      <h3>Timeline of Events</h3>
      <a href="#timeline-of-events">
        
      </a>
    </div>
    
<table>
<colgroup>
<col></col>
<col></col>
</colgroup>
<thead>
  <tr>
    <th>2022-06-02 at 20:00 UTC</th>
    <th>Atlassian publishes security advisory</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td>2022-06-02 at 23:38 UTC</td>
    <td>Cloudflare publishes WAF rule to target CVE 2022-26134</td>
  </tr>
</tbody>
</table> ]]></content:encoded>
            <category><![CDATA[Vulnerabilities]]></category>
            <category><![CDATA[CVE]]></category>
            <guid isPermaLink="false">5qtIPT3BCpdaVm01NkRwjE</guid>
            <dc:creator>Reid Tatoris</dc:creator>
            <dc:creator>Daniel Stinson-Diess</dc:creator>
            <dc:creator>Sourov Zaman</dc:creator>
            <dc:creator>Vaibhav Singhal</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare’s investigation of the January 2022 Okta compromise]]></title>
            <link>https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/</link>
            <pubDate>Tue, 22 Mar 2022 16:57:44 GMT</pubDate>
            <description><![CDATA[ Today at 03:30 UTC we learnt of a compromise of Okta. We use Okta internally for employee identity as part of our authentication stack. We have investigated this compromise carefully and do not believe we have been compromised as a result ]]></description>
            <content:encoded><![CDATA[ <p>Today, March 22, 2022 at 03:30 UTC we learnt of a compromise of Okta. We use Okta internally for employee identity as part of our authentication stack. We have investigated this compromise carefully and do not believe we have been compromised as a result. We do not use Okta for customer accounts; customers do not need to take any action unless they themselves use Okta.</p>
    <div>
      <h3>Investigation and actions</h3>
      <a href="#investigation-and-actions">
        
      </a>
    </div>
    <p>Our <a href="https://twitter.com/toddmckinnon/status/1506184721922859010">understanding</a> is that during January 2022, hackers outside Okta had access to an Okta support employee’s account and were able to take actions as if they were that employee. In a screenshot shared on social media, a Cloudflare employee’s email address was visible, along with a popup indicating the hacker was posing as an Okta employee and could have initiated a password reset.</p><p>We learnt of this incident via Cloudflare’s internal SIRT. SIRT is our Security Incident Response Team and any employee at Cloudflare can alert SIRT to a potential problem. At exactly 03:30 UTC, a Cloudflare employee emailed SIRT with a link to a <a href="https://twitter.com/_MG_/status/1506109152665382920">tweet</a> that had been sent at 03:22 UTC. The tweet indicated that Okta had potentially been breached. Multiple other Cloudflare employees contacted SIRT over the following two hours.</p><p>The following timeline outlines the major steps we took following that initial 03:30 UTC email to SIRT.</p>
    <div>
      <h4>Timeline (times in UTC)</h4>
      <a href="#timeline-times-in-utc">
        
      </a>
    </div>
    <p>03:30 - SIRT receives the first warning of the existence of the tweets.</p><p>03:38 - SIRT sees that the tweets contain information about Cloudflare (logo, user information).</p><p>03:41 - SIRT creates an incident room to start the investigation and starts gathering the necessary people.</p><p>03:50 - SIRT concludes that there were no relevant audit log events (such as password changes) for the user that appears in the screenshot mentioned above.</p><p>04:13 - Reached out to Okta directly asking for detailed information to help our investigation.</p><p>04:23 - All Okta logs that we ingest into our Security Information and Event Management (SIEM) system are reviewed for potential suspicious activities, including password resets over the past three months.</p><p>05:03 - SIRT suspends accounts of users that could have been affected.</p><p>We temporarily suspended access for the Cloudflare employee whose email address appeared in the hacker’s screenshots.</p><p>05:06 - SIRT starts an investigation of access logs (IPs, locations, multifactor methods) for the affected users.</p><p>05:38 - First <a href="https://twitter.com/eastdakota/status/1506143353544478724">tweet</a> from Matthew Prince acknowledging the issue.</p><p>Because it appeared that an Okta support employee with access to do things like force a password reset on an Okta customer account had been compromised, we decided to look at every employee who had reset their password or modified their Multi-Factor Authentication (MFA) in any way since December 1 up until today. Since Dec. 1, 2021, 144 Cloudflare employees had reset their password or modified their MFA. We forced a password reset for them all and let them know of the change.</p><p>05:44 - A list of all users that changed their password in the last three months is finalized. All accounts were required to go through a password reset.</p><p>06:40 - <a href="https://twitter.com/eastdakota/status/1506158901078618118">Tweet</a> from Matthew Prince about the password reset.</p><p>07:57 - We received confirmation from Okta that there were no relevant events that may indicate malicious activity in their support console for Cloudflare instances.</p>
    <div>
      <h3>How Cloudflare uses Okta</h3>
      <a href="#how-cloudflare-uses-okta">
        
      </a>
    </div>
    <p>Cloudflare uses Okta internally as our identity provider, integrated with Cloudflare Access to guarantee that our users can safely access internal resources. In previous blog posts, we described <a href="/dogfooding-from-home/">how we use Access to protect internal resources</a> and <a href="/securing-cloudflare-using-cloudflare/">how we integrated hardware tokens to make our user authentication process more resilient</a> and <a href="/account-compromise-security-overview/">prevent account takeovers</a>.</p><p>In the case of the Okta compromise, it would not suffice to just change a user's password. The attacker would also need to change the hardware (FIDO) token configured for the same user. As a result it would be easy to spot compromised accounts based on the associated hardware keys.</p><p>Even though logs are available in the Okta console, we also store them in our own systems. This adds an extra layer of security as we are able to store logs longer than what is available in the Okta console. That also ensures that a compromise in the Okta platform cannot alter evidence we have already collected and stored.</p><p>Okta is not used for customer authentication on our systems, and we do not store any customer data in Okta. It is only used for managing the accounts of our employees.</p><p>The main actions we took during this incident were:</p><ol><li><p>Reach out to Okta to gather more information on what is known about the attack.</p></li><li><p>Suspend the one Cloudflare account visible in the screenshots.</p></li><li><p>Search the <a href="https://developer.okta.com/docs/reference/api/system-log/">Okta System logs</a> for any signs of compromise (password changes, hardware token changes, etc.). Cloudflare reads the system Okta logs every five minutes and stores these in our SIEM so that if we were to experience an incident such as this one, we can look back further than the 90 days provided in the Okta dashboard. Some event types within Okta that we searched for are: <code>user.account.reset_password</code>, <code>user.mfa.factor.update</code>, <code>system.mfa.factor.deactivate</code>, <code>user.mfa.attempt_bypass</code>, and <code>user.session.impersonation.initiate</code>. It’s unclear from communications we’ve received from Okta so far who we would expect the <a href="https://developer.okta.com/docs/reference/api/system-log/#actor-object">System Log Actor</a> to be from the compromise of an Okta support employee.</p></li><li><p>Search <a href="https://support.google.com/a/answer/11479100?ref_topic=11479095">Google Workplace email logs</a> to view password resets. We confirmed password resets matched the Okta System logs using a separate source from Okta considering they were breached, and we were not sure how reliable their logging would be.</p></li><li><p>Compile a list of Cloudflare employee accounts that changed their passwords in the last three months and require a new password reset for all of them. As part of their account recovery, each user will join a video call with the Cloudflare IT team to verify their identity prior to having their account re-enabled.</p></li></ol>
    <div>
      <h3>What to do if you are an Okta customer</h3>
      <a href="#what-to-do-if-you-are-an-okta-customer">
        
      </a>
    </div>
    <p>If you are also an Okta customer, you should reach out to them for further information. We advise the following actions:</p><ol><li><p>Enable MFA for all user accounts. Passwords alone do not offer the necessary level of protection against attacks. We strongly recommend the usage of hard keys, as other methods of MFA can be vulnerable to phishing attacks.</p></li><li><p>Investigate and respond:a. Check all password and MFA changes for your Okta instances.b. Pay special attention to support initiated events.c. Make sure all password resets are valid or just assume they are all under suspicion and force a new password reset.d. If you find any suspicious MFA-related events, make sure only valid MFA keys are present in the user's account configuration.</p></li><li><p>Make sure you have other security layers to provide extra security in case one of them fails.</p></li></ol>
    <div>
      <h3>Conclusion</h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>Cloudflare’s Security and IT teams are continuing to work on this compromise. If further information comes to light that indicates compromise beyond the January timeline we will publish further posts detailing our findings and actions.</p><p>We are also in contact with Okta with a number of requests for additional logs and information. If anything comes to light that alters our assessment of the situation we will update the blog or write further posts.</p> ]]></content:encoded>
            <category><![CDATA[Okta]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Post Mortem]]></category>
            <guid isPermaLink="false">2adIs12PUMYCgRU2zfLCJs</guid>
            <dc:creator>John Graham-Cumming</dc:creator>
            <dc:creator>Lucas Ferreira</dc:creator>
            <dc:creator>Daniel Stinson-Diess</dc:creator>
        </item>
    </channel>
</rss>