TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Thanksgiving 2023 security incident

643 pointsby nomaxx117over 1 year ago

29 comments

BytesAndGearsover 1 year ago
Writeups and actions like this from cloudflare are exactly why I trust them with my data and my business.<p>Yes, they aren’t perfect. They do some things that I disagree with.<p>But overall they prove themselves worthy of my trust, specifically because of the engineering mindset that the company shares, and how serious they take things like this.<p>Thank you for the blog post!
评论 #39223080 未加载
评论 #39221877 未加载
评论 #39222126 未加载
评论 #39232637 未加载
评论 #39229200 未加载
评论 #39221269 未加载
kccqzyover 1 year ago
&gt; Analyzing the wiki pages they accessed, bug database issues, and source code repositories, it appears they were looking for information about the architecture, security, and management of our global network; no doubt with an eye on gaining a deeper foothold.<p>For a nation state actor, the easiest way to accomplish that is to send one of their loyal citizens to become an employee of the target company and then have the person send back &quot;information about the architecture, security, and management&quot; of the target company.<p>Fun (but possibly apocryphal) fact: more than a decade ago in a social gathering of SREs at Google, several admitted to being on the payroll of some national intelligence bureaus.
评论 #39225455 未加载
评论 #39226530 未加载
评论 #39229023 未加载
评论 #39222480 未加载
marcinzmover 1 year ago
&gt; we were (for the second time) the victim of a compromise of Okta’s systems<p>I&#x27;m curious if they&#x27;re rethinking being on Okta.
评论 #39223271 未加载
评论 #39221328 未加载
评论 #39221162 未加载
评论 #39223407 未加载
OJFordover 1 year ago
&gt; The one service token and three accounts were not rotated because mistakenly it was believed they were unused.<p>Eh? So why weren&#x27;t they revoked entirely? I&#x27;m sure something&#x27;s just unsaid there, or lost in communication or something, but as written that doesn&#x27;t really make sense to me?
评论 #39223270 未加载
评论 #39222533 未加载
评论 #39221809 未加载
评论 #39222661 未加载
sevgover 1 year ago
&gt; Even though we believed, and later confirmed, the attacker had limited access, we undertook a comprehensive effort to rotate every production credential (more than 5,000 individual credentials), physically segment test and staging systems, performed forensic triages on 4,893 systems, reimaged and rebooted every machine in our global network including all the systems the threat actor accessed and all Atlassian products (Jira, Confluence, and Bitbucket).<p>&gt; The threat actor also attempted to access a console server in our new, and not yet in production, data center in São Paulo. All attempts to gain access were unsuccessful. To ensure these systems are 100% secure, equipment in the Brazil data center was returned to the manufacturers. The manufacturers’ forensic teams examined all of our systems to ensure that no access or persistence was gained. Nothing was found, but we replaced the hardware anyway.<p>They didn&#x27;t have to go this far. It would have been really easy not to. But they did and I think that&#x27;s worthy of kudos.
评论 #39221487 未加载
评论 #39221326 未加载
评论 #39222246 未加载
评论 #39222616 未加载
评论 #39221640 未加载
评论 #39221422 未加载
评论 #39222417 未加载
评论 #39222870 未加载
sebmellenover 1 year ago
The most surprising part of this is that Cloudflare uses BitBucket.
评论 #39221257 未加载
评论 #39222527 未加载
评论 #39221279 未加载
评论 #39227049 未加载
评论 #39226987 未加载
评论 #39220906 未加载
mmaunderover 1 year ago
Thing about a data breach is once the data is out there - source code in this case - it’s out there for good and you have absolutely no control over who gets it. You can do as much post incident hardening as you want, and talk about it as much as you want, but the thing you’re trying to protect against, and blogging about how good you’re getting at preventing, has already happened. Can’t unscramble those eggs.
评论 #39224496 未加载
评论 #39223284 未加载
评论 #39223349 未加载
muzsoover 1 year ago
&gt; The threat actor searched the wiki for things like remote access, secret, client-secret, openconnect, cloudflared, and token. They accessed 36 Jira tickets (out of a total of 2,059,357 tickets) and 202 wiki pages (out of a total of 14,099 pages).<p>In Atlassian&#x27;s Confluence even the built-in Apache Lucene search engine can leak sensitive information and this kind of access (to the info by the attacker) can be very hard to track&#x2F;identify. They don&#x27;t have to open a Confluence page if the sensitive information is already shown on the search results page.
fierroover 1 year ago
&gt;The one service token and three accounts were not rotated because mistakenly it was believed they were unused.<p>This odd to me - unused credentials should probably be deleted, not rotated.
评论 #39222412 未加载
评论 #39225139 未加载
londons_exploreover 1 year ago
So after the Okta incident they rotated the leaked credentials...<p>But I think they should have put honeypots on them, and then waited to see what attackers did. Honeypots discourage the attackers from continuing for fear of being discovered too.
weppleover 1 year ago
They mention Zero Trust, yet you can gain access to applications with <i>just</i> a single bearer token?<p>Am I missing something here?<p>There’s no machine cert used? AuthN tokens aren’t cryptographically bound?<p>This doesn’t meet my definition of ZT, it seems more like “we don’t have a VPN”
评论 #39229326 未加载
评论 #39223134 未加载
评论 #39225208 未加载
this_steve_jover 1 year ago
This is an excellent report, and congratulations are due to the security teams at CS for a quick detection, response and investigation.<p>It also highlights the need for a faster move in the entire industry away from long-lived service account credentials (access tokens) and toward federated workload identity systems like OpenId connect in the software supply chain.<p>These tokens too often provide elevated privileges in devops tools while bypassing MFA, and in many cases are rotated yearly. Github [1], Gitlab, and AZDO now support OIDC, so update your service connections now!<p>Note: I’m not familiar with this incident and don’t know whether that is precisely what happened here or if OIdC would have prevented the attack.<p>Devsecops and Zero Trust are often-abused buzzwords, but the principles are mature and can significantly reduce blast radius.<p>[1] <a href="https:&#x2F;&#x2F;docs.github.com&#x2F;en&#x2F;actions&#x2F;deployment&#x2F;security-hardening-your-deployments&#x2F;about-security-hardening-with-openid-connect" rel="nofollow">https:&#x2F;&#x2F;docs.github.com&#x2F;en&#x2F;actions&#x2F;deployment&#x2F;security-harde...</a>
jrockwayover 1 year ago
Which &quot;nation state&quot; do we think this was?
评论 #39221210 未加载
评论 #39221335 未加载
评论 #39221883 未加载
评论 #39221216 未加载
评论 #39222940 未加载
orenlindseyover 1 year ago
Cloudflare being compromised would be enormous. Something between 5 and 25% of all sites use CF in some fashion. An attacker could literally hold the internet hostage.
zelon88over 1 year ago
What I don&#x27;t understand is how they got access to Jira yet you still insist there was no compromise.<p>The very nature of Jira and Confluence (both terrible products, btw) is to collect documentation. I&#x27;m assuming it was an internal Jira&#x2F;Confluence for engineering teams, but still. There have got to be addresses, passwords, service account info, all kinds of info. If it was a tech support server then it&#x27;s impossible to assert that you didn&#x27;t lose customer data.<p>So we have this double standard where you pay for this product that is designed to house your deepest secrets and most cherished organizational information, that&#x27;s so important to you that you run on premises servers to keep it safe, but it&#x27;s not important enough to constitute a real &quot;beach&quot;.<p>You&#x27;re lying. Either the server contained junk of no value in which case it wouldn&#x27;t have existed in the first place, or you actually did lose something of value that you won&#x27;t identify to us. Nobody sets up on-prem Jira just to leave it empty and never put secrets in it.
londons_exploreover 1 year ago
Am I the only one who just sees a totally blank page?<p>Viewing the HTML shows it&#x27;s got an empty body tag, and a single script in the &lt;head&gt; with a URL of <a href="https:&#x2F;&#x2F;static.cloudflareinsights.com&#x2F;beacon.min.js&#x2F;v84a3a4012de94ce1a686ba8c167c359c1696973893317" rel="nofollow">https:&#x2F;&#x2F;static.cloudflareinsights.com&#x2F;beacon.min.js&#x2F;v84a3a40...</a>
评论 #39221716 未加载
评论 #39222171 未加载
j-romover 1 year ago
&gt; To ensure these systems are 100% secure, equipment in the Brazil data center was returned to the manufacturers. The manufacturers’ forensic teams examined all of our systems to ensure that no access or persistence was gained. Nothing was found, but we replaced the hardware anyway.<p>The thoroughness is pretty amazing
wowmuchhackover 1 year ago
Such a beautiful report and beautiful ownage.<p>Whenever some shitty Australian telco gets owned, people are angry and call them incompetent and idiots; it&#x27;s nice to see Cloudflare gets owned in style with much more class and expertise.<p>Like the rest of the HN crowd, this incident has only increased my trust in Cloudflare.
jshierover 1 year ago
Fascinating and thorough analysis! I guess if you think an account is unused, just delete it!
评论 #39222701 未加载
htrpover 1 year ago
&gt;They did this by using one access token and three service account credentials that had been taken, and that we failed to rotate, after the Okta compromise of October 2023. All threat actor access and connections were terminated on November 24 and CrowdStrike has confirmed that the last evidence of threat activity was on November 24 at 10:44.<p>Okta hitting everywhere
lopkeny12koover 1 year ago
&gt; The manufacturers’ forensic teams examined all of our systems to ensure that no access or persistence was gained. Nothing was found, but we replaced the hardware anyway.<p>This seems incredibly wasteful.<p>Replacing an entire <i>datacenter</i> is effectively tossing tens of millions of dollars of compute hardware.
评论 #39225924 未加载
评论 #39225920 未加载
prg20over 1 year ago
&gt; Then, from November 27, we redirected the efforts of a large part of the Cloudflare technical staff (inside and outside the security team) to work on a single project dubbed “Code Red”.<p>Why didn&#x27;t they start this effort BEFORE there was an incident?<p>&gt; we undertook a comprehensive effort to rotate every production credential (more than 5,000 individual credentials<p>Bearer credentials should already be rotated on a regular basis. Why did they wait until an incident to do this?<p>&gt; To ensure these systems are 100% secure<p>Nothing is 100% secure. Not being to see and acknowledge that is a huge red flag.<p>&gt; Nothing was found, but we replaced the hardware anyway.<p>Well that is just plain stupid and wasteful.<p>&gt; We also looked for software packages that hadn’t been updated<p>Why weren&#x27;t you looking for that prior to the incident?<p>&gt; we were (for the second time) the victim of a compromise of Okta’s systems which resulted in a threat actor gaining access to a set of credentials.<p>And yet they continue using Okta. The jokes just write themselves.<p>&gt; The one service token and three accounts were not rotated because mistakenly it was believed they were unused.<p>Wait, wait, wait. You <i>KNEW</i> the accounts with remote access to your systems were <i>UNUSED</i> and yet they continue to be active? Hahahahaha.<p>&gt; The wiki searches and pages accessed suggest the threat actor was very interested in all aspects of access to our systems: password resets, remote access, configuration, our use of Salt, but they did not target customer data or customer configurations.<p>Totally makes sense, I&#x27;m sure the attacker was just a connoisseur of credentials and definitely did not want them to target customer data.
Aeolunover 1 year ago
Reading this 2 months after the fact feels a bit late, but I guess it’s better for your stock price if these revelations happen with remediation already in hand?<p>Since they didn’t really have reason to believe my data was accessed, maybe that’s ok. I know from firsthand experience how hard rotating all your credentials across the whole org is.
评论 #39221271 未加载
评论 #39222804 未加载
joshbetzover 1 year ago
What makes them think it&#x27;s a nation state?
mmvasqover 1 year ago
Really good write up
nullpointer00over 1 year ago
I am trying to learn and understand the attack. Can someone please help me brainstorm some possibilities? (please note, I do not intend to question Cloudflare&#x27;s business practices or security program; my intention is to learn and understand). --<p>Blog: The threat actor (TA) accessed Okta’s customer support system and viewed files uploaded by Cloudflare (CF) as support cases.<p>Why was the session token part of the support files uploaded to Okta support? Does Okta require it for troubleshooting?<p>TA hijacked a session token of a CF employee from a support ticket.<p>Blog: Using the token extracted from Okta, the TA accessed Cloudflare’s Okta and compromised two separate Cloudflare employee accounts within the Okta platform.<p>How did this happen? Was the stolen token privileged? Also, why only 2 employee accounts? Were these different employees, or was one the same one whose token was compromised? What does Okta employee account compromise mean - did TA reset the password and MFA, and how or was there no MFA?<p>Blog: TA used stolen credentials to get access to our Atlassian server and accessed some documentation and a limited amount of source code.<p>Did the stolen employee credentials only have access to Atlassian?<p>Blog: TA gained access to a set of credentials<p>Does this mean multiple credentials got uploaded to the Okta support system?<p>Blog: The Okta compromise was in October, but the threat actor only began targeting CF systems using stolen credentials from the Okta compromise in mid-November.<p>Does this mean the compromised token was long-lived?<p>Blog: We failed to rotate one service token and three service accounts (out of thousands) of credentials that were leaked during the Okta compromise.<p>I didn’t get this. Does this mean that over time, CF employees had uploaded support info for 1000s of apps managed by Okta? Which credentials did CF rotate initially after the Okta compromise?<p>Leaked Credentials: 1. Moveworks service token that granted remote access into our Atlassian system.<p>Is this service token a bearer token? And without expiry. Is this like an API key?<p>TA accessed Atlassian Jira and Confluence using the Moveworks service token to authenticate through the gateway.<p>2. A service account used by the SaaS-based Smartsheet application that had administrative access to our Atlassian Jira instance,<p>So here, the Smartsheet Saas was given access to the on-prem Atlassian Jira instance? What kind of trust is it? Is this as well managed through Okta? And how does support case filing include a service account? Here, does the Service account mean again some kind of hardcoded API key without expiry<p>TA used the Smartsheet service account to gain access to the Atlassian suite. They used Smartsheet credentials to create an Atlassian account that looked like a normal Cloudflare user. They added this user to a number of groups within Atlassian so that they’d have persistent access to the Atlassian environment.<p>Since the Smartsheet service account had administrative access to Atlassian Jira, the TA was able to install the Sliver Adversary Emulation Framework, which is a widely used tool and framework that red teams and attackers use to enable “C2” (command and control), connectivity gaining persistent and stealthy access to a computer on which it is installed. Sliver was installed using the ScriptRunner for the Jira plugin. This allowed them continuous access to the Atlassian server, and they used this to attempt lateral movement. With this access, the Threat Actor attempted to gain access to a non-production console server in our São Paulo, Brazil data center due to a non-enforced ACL. The access was denied, and they could not access any global networks.<p>3. A Bitbucket service account, which was used to access our source code management system<p>4. AWS environment that had no access to the global network and no customer or sensitive data.<p>Were these AWS access keys? Also, it looks like these keys did provide access to the AWS account. That means the access key didn’t require MFA.<p>The only production system the TA could access using the stolen credentials was our Atlassian environment.<p>Mitigations:<p>Blog: We decided a huge effort was needed to further harden our security protocols to prevent the threat actor from being able to get that foothold had we overlooked something from our log files.<p>What does hardening security protocol mean here? Is it techniques for D&amp;R or something else<p>Blog: We undertook a comprehensive effort to rotate every production credential (more than 5,000 individual credentials)<p>I believe this means forced resets on employees (Okta users), right?
jbverschoorover 1 year ago
It&#x27;s almost valentine
belltacoover 1 year ago
Great write up.<p>&gt; Over the next day, the threat actor viewed 120 code repositories (out of a total of 11,904 repositories<p>&gt; They accessed 36 Jira tickets (out of a total of 2,059,357 tickets) and 202 wiki pages (out of a total of 14,099 pages).<p>Is it just me or 12K git repos and 2 million JIRA tickets sound like a crazy lot. 15K wiki pages is not that high though.<p>&gt; Since the Smartsheet service account had administrative access to Atlassian Jira, the threat actor was able to install the Sliver Adversary Emulation Framework, which is a widely used tool and framework that red teams and attackers use to enable “C2” (command and control), connectivity gaining persistent and stealthy access to a computer on which it is installed. Sliver was installed using the ScriptRunner for Jira plugin.<p>&gt; This allowed them continuous access to the Atlassian server, and they used this to attempt lateral movement. With this access the Threat Actor attempted to gain access to a non-production console server in our São Paulo, Brazil data center due to a non-enforced ACL.<p>Ouch. Full access to a server OS is always scary.
评论 #39221352 未加载
评论 #39221525 未加载
评论 #39222061 未加载
评论 #39221330 未加载
评论 #39223483 未加载
评论 #39221312 未加载
culopatinover 1 year ago
Im growing more and more annoyed at Cloudflare and their stupid “are you a human” crap.