9 ms·
Compromised Microsoft key: More impactful than we thought
- jsiepkes 3y agoI highly doubt this key was on a HSM. I keep being amazed by news about keys being stolen which seemingly should have been on a HSM.
- callalex 3y agoHSM?
- 0xC0ncord 3y agoA hardware security module (HSM) is a physical computing device that safeguards and manages secrets (most importantly digital keys), performs encryption and decryption functions for digital signatures, strong authentication and other cryptographic functions. These modules traditionally come in the form of a plug-in card or an external device that attaches directly to a computer or network server. A hardware security module contains one or more secure cryptoprocessor chips. https://en.wikipedia.org/wiki/Hardware_security_module https://en.wikipedia.org/wiki/Hardware_security_module
- pieterr 3y agoHardware Security Module (HSM).
- jshmrsn 3y agoLooked it up, appears to be Hardware Security Module.
- whartung 3y agoHardware Security Module. A tamper resistant piece of hardware that does key management as well as encryption services. Essentially once a key is installed (or generated) it never sees the light of day again.
- taspeotis 3y agoHardware Security Module
- CalmStorm 3y agoOne of the most popular HSM is Thales Luna Network HSM, which can perform 20,000 ECC operations per second [1]. Even with the size of Azure AD, Microsoft may not need a lot of HSMs for signing purpose. HSMs are not particularly easy to manage though, maybe that is one of reasons they are not used as much as they should be. [1] https://cpl.thalesgroup.com/encryption/hardware-security-modules/network-hsms https://cpl.thalesgroup.com/encryption/hardware-security-mod...
- deleted 3y ago[deleted]
- kune 3y agoThere are two scenarios: First: Microsoft uses the JWT signing keys in memory and the attacker were able to get access to it by injecting code or get access to the memory image of such a process. Second: Microsoft actually uses HSMs but has to distribute the keys geographically and the attackers were able to get access to the key this way. The first scenario is more likely, but you cannot exclude the second as well.
- 8191 3y agoAs for each purpose several keys exist, according to the article, geographic key distribution wouldn’t be necessary anyway.
- wahern 3y agoKeys on an HSM are difficult to use by a team. Network attached HSMs are a thing but they have poor integration with the toolchains developers often use. Recently I was able to write my own ideal tool to help bridge the gap between toolchains and hardware secure enclaves: https://keymux.com https://keymux.com
- mike_d 3y agoKeys like this should never be used by a team. They should never touch a developer or devops workstation. They exist in prod only inside of an HSM. High performance HSMs capable of handling 10k+ transactions/second are well within the price range of a well funded startup.
- wahern 3y ago> Keys like this should never be used by a team. They should never touch a developer or devops workstation. That's the point of KeyMux: keys never leave a secure enclave. In fact, KeyMux has no logic to load private keys or to perform key operations in-memory, except in the context of ephemeral TLS. The TLS layer does support using HSM keys for mTLS authentication, so you can use a security token for peer mTLS authentication to a network attached HSM. That's the whole point--you can use all the tools built and commonly used with in-memory keys, but using enclaved keys, instead. A follow-on idea I'd like to spend time on, if I have the chance, is to write modules for Vault and/or some KMIP implementation that integrate with the app so that authorization for key operations on a networked-attached key store require the consent of multiple parties (with that consent using local secure enclave-based authentication, of course). So, for example, if you're going to roll a release, one developer or an automated pipeline submits the request but the signing awaits confirmation from other team members.
- tatersolid 3y ago> High performance HSMs capable of handling 10k+ transactions/second are well within the price range of a well funded startup. Microsoft knows this, and even offers HSMs as a cloud service. HSMs simply don’t scale up to something the size of azure AD. Even if you could use 10K+ of them in a global cluster, copying keys between HSMs inherently exposes the master keys anyway. And how do you secure access to the HSMs, with another secret shared on every validation server? Turtles all the way down.
- bsuvc 3y ago> customers’ applications that support the “login with Microsoft” functionality That's a lot of corporate line-of-business applications though, right? And it could end up being the worst part of this hack.
- nullindividual 3y agoNo. Corps use an OrgId account type vs MSA which is the consumer account type.
- JOnAgain 3y agoGreat write up. Scary. But very digestible for a complex subject area.
- berkle4455 3y agoSatya gonna have to say “AI” so many more times during this next earnings call to cover up this mess.
- chayesfss 3y ago[dead]
- userbinator 3y agoIdentity provider’s signing keys are probably the most powerful secrets in the modern world. For example, they are much more powerful than TLS keys. They are in many ways equivalent to certificate authoritities' keys. Organizations using Microsoft and Azure services should take steps to assess potential impact. People don't seem to know that old saying about not putting all your eggs in one basket anymore.
- SoftTalker 3y agoYep my employer is all-in on Office 365, Teams, the whole thing. I have a supply of popcorn ready for when it all comes crashing down. One thing I know is they won't blame themselves.
- notimetorelax 3y agoI’m with you on that I prefer not to use MS tech. That said, you might be creating an unhealthy dynamic for yourself by expecting it all crash and burn down. Objectively, MS tech still gets the job done.
- croes 3y agoDoesn't matter if they get the job done if one big mistake can hurt millions of people it a bad idea. Mono culture is always a bad idea and thinks like MS cloud services are the basis for creating a technical pandemic.
- blowski 3y agoAh yes, I long for the halcyon days of IT stability… oh wait, business has always been fraught with risk and trade-offs. You get insurance, put mitigations in place, and hope when it does go bad, you can blame Microsoft anyway.
- croes 3y agoEver heard of single point of failure. Yes, you can hack every company but he have to target them one by one. Now you only need to take down MS
- jolux 3y agoOur researchers concluded that the compromised MSA key could have allowed the threat actor to forge access tokens for multiple types of Azure Active Directory applications, including every application that supports personal account authentication, such as SharePoint, Teams, OneDrive, customers’ applications that support the “login with Microsoft” functionality, and multi-tenant applications in certain conditions. I hope it is just a coincidence that Microsoft recently renamed Azure AD to “Entra ID:” https://devblogs.microsoft.com/identity/aad-rebrand/ https://devblogs.microsoft.com/identity/aad-rebrand/
- switch007 3y agoOh wow I hadn't heard of this! Their naming debacles are an endless source of entertainment lol When I think of a security product, I really want to think about the vendor letting people _in_ instead of keeping bad actors _out_ (entra from entrar = to go in, to come in) /s. In Spanish, it's actually the imperative, so it makes you think of ordering someone to go in lol!
- almost_usual 3y agoRight in time for Microsoft to announce its edge security product..
- atemerev 3y agoThe Chinese: “wow, we actually can do this?”
- high_5 3y ago> The full impact of this incident is much larger than we Initially understood it to be. We believe this event will have long lasting implications on our trust of the cloud and the core components that support it, above all, the identity layer which is the basic fabric of everything we do in cloud. We must learn from it and improve. How about not putting everything in the cloud for starters. And I think the whole problem is not even the cloud. It's the broken capitalistic economy that in the and always begets monopolies or at least a cartel of a few big companies. Because for the long tail of small businesses it does not make sense to use products and services from the big guys. So, giving more power to the market winners ends up in too-big-to-fail companies. Yet, these big companies only have to make one mistake, one slip up, and the target surface is just too big. It's not a question if, but when such incidents will happen. Only federated services are the answer for the long term survival of society, sacrificing a part of convenience.
- bell-cot 3y ago> It's the broke capitalist economy...always begets monopolies or at least... In computers, "it" is mostly the "nobody every got fired for buying IBM" side of human nature. Business leaders are not techno-geeks, dreaming of bigger and better federated services. IT is generally a major expense - both on their bottom lines, and in the amount of time & grief they have to spend learning & deciding about and fighting with computer sh*t. Metaphor: If the weather is iffy, and they still decide to fly on Microsoft Airlines...well, they'll have plenty of company and sympathy when the flight gets canceled and they're late. Vs. if you're the maverick who takes the train - then the whole extra load of figuring out train schedules and stations and stuff is on you (vs. "everybody knows" about air travel). And anything going wrong with the train (when Microsoft Air gets there okay) makes you stick out like a steaming pile on the kitchen floor.
- high_5 3y ago> IT is generally a major expense - both on their bottom lines, and in the amount of time & grief they have to spend learning & deciding about and fighting with computer sh*t. Certainly! Yet, just when people muscle memorized Office 2003 by 2007, Microsoft pulled the rug and introduced Ribbon. And people still use .doc insted of .docx for loads of stuff!
- neilv 3y ago> Finally, we want to thank the Microsoft team for working closely with us on this blog and helping us ensure it is technically accurate. How was it decided to release this news on a Friday?
- neilv 3y agoUpdate on the summer Friday news dump: by Monday evening, it's been crickets. And in the first 5 pages of Google news search hits for "microsoft" (before giving up), I saw only 2 mentions total. Most of the hits are PR fluff, product promotion, and stock market noise 'news'.
- ocdtrekkie 3y agoIt's hard to imagine many worse compromises than a foreign power getting into the email account of our representative to that power. I hope the US government is seriously rethinking the initiatives it's undertaken to move computing to major cloud providers.
- kilolima 3y agoShould we just legalize the FAANGs to engage in cyber warfare/espionage against each other? Seems like then they would have to reach a minimum of best security practice instead of relying on obscurity.
- insomniacity 3y ago> The old public key’s certificate revealed it was issued on April 5th, 2016, and expired on April 4th, 2021, and its thumbprint matched the thumbprint of the key Microsoft listed in their latest blog post, named “Thumbprint of acquired signing key” Am I reading this right? The key was expired? And still in use??
- dhx 3y agoWhen Microsoft explained to their customers: "Storm-0558 acquired an inactive MSA consumer signing key"[1] They should have said: "Storm-0558 acquired an EXPIRED MSA consumer signing key" And when they said: "a validation issue allowed this key to be trusted for signing Azure AD tokens."[1] They should have said: "MULTIPLE validation issues allowed this key to be trusted for signing Azure AD tokens." And when Microsoft said: "The actors are keenly aware of the target’s environment, logging policies, authentication requirements, policies, and procedures." They should have said something like: "The actors could have been aiming for a brazen hit-and-run and didn't stop for a second to think about policies and other nonsense. Alternatively, the actors were unsophisticated and completely unaware of facts like the US State Department paying us a stack more money for the privilege of being able to log mailbox access events in detail (thanks Boeing for the tip from MCAS!). Additionally, the actors appear to have neglected the fact that Chrome 92 was last updated in 2021 and therefore a fairly bad choice of user agent to use for an attack against a US department whose ICT systems should be using the latest version of web browsers. Additionally, the actors likely had no idea how US State Department mailboxes are accessed, and made a very poor guess of it by using random public data centres throughout Europe."[2][3] [1] https://www.microsoft.com/en-us/security/blog/2023/07/14/analysis-of-storm-0558-techniques-for-unauthorized-email-access/ https://www.microsoft.com/en-us/security/blog/2023/07/14/ana... [2] https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-193a https://www.cisa.gov/news-events/cybersecurity-advisories/aa... [3] https://www.theguardian.com/us-news/2023/jul/20/ambassador-to-beijing-among-us-officials-hit-by-chinese-hackers https://www.theguardian.com/us-news/2023/jul/20/ambassador-t...
- tzs 3y agoI have no idea how validity works for the systems these keys are used in, but I do know that in general there are two ways that key or certificate based verification handles an expired key or certificate. Anyone know which of these is the way whatever Microsoft was using these things for works? In one of them, which is the way TSL verification works, it goes something like this when checking certificate Cn that is signed by Cn-1 which is signed by ... is signed by C0. 1 time_check = now() 2 for cert in Cn to C0 3 if time_check < cert.valid_from || time_check > cert.valid_to 4 return EXPIRED 5 return NOT_EXPIRED Each certificate's expiration is checked against the current time. The other, which is used for code signing, goes something like this: 1 time_check = now() 2 for cert in Cn to C0 3 if time_check < cert.valid_from || time_check > cert.valid_to 4 return EXPIRED 5 time_check = cert.issue_time 6 return NOT_EXPIRED Cn is checked against the current time. The rest of them are checked against the time at which they signed the next downstream certificate. I understand why code signing works like that. It's essentially digital notarization, and you don't want your notarized documents to become no longer notarized just because the notary public you used has since stopped being a notary public and let their license expire.
- _a_a_a_ 3y ago"more impactful" = worse?
- TheRealDunkirk 3y agoAnd there's the other shoe. Every major security incident is always worse than initially reported. This one probably has more gas in the tank yet.