Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Security Technology

GitHub Says Hackers Cloned Code-Signing Certificates in Breached Repository (arstechnica.com) 19

GitHub said unknown intruders gained unauthorized access to some of its code repositories and stole code-signing certificates for two of its desktop applications: Desktop and Atom. From a report: Code-signing certificates place a cryptographic stamp on code to verify it was developed by the listed organization, which in this case is GitHub. If decrypted, the certificates could allow an attacker to sign unofficial versions of the apps that had been maliciously tampered with and pass them off as legitimate updates from GitHub. Current versions of Desktop and Atom are unaffected by the credential theft.

"A set of encrypted code signing certificates were exfiltrated; however, the certificates were password-protected and we have no evidence of malicious use," the company wrote in an advisory. "As a preventative measure, we will revoke the exposed certificates used for the GitHub Desktop and Atom applications." The revocations, which will be effective on Thursday, will cause certain versions of the apps to stop working.

This discussion has been archived. No new comments can be posted.

GitHub Says Hackers Cloned Code-Signing Certificates in Breached Repository

Comments Filter:
  • "A set of encrypted code signing certificates were exfiltrated; however, the certificates were password-protected and we have no evidence of malicious use," the company wrote in an advisory. "As a preventative measure, we will revoke the exposed certificates used for the GitHub Desktop and Atom applications."

    Too bad they didn't take the preventive measure of not keeping them on an accessible volume when not being used.

    • Applications can duplicate certificates by cloning.

    • by gweihir ( 88907 )

      Indeed. Or on a non network connected computer that is only used to sign code but never gets any other outside input. I guess the people at GitHub are either incompetent or lack the money for that one laptop this would have needed. Or maybe they were using code-signing to simulate security and not as actual security measure...

    • "A set of encrypted code signing certificates were exfiltrated; however, the certificates were password-protected and we have no evidence of malicious use," the company wrote in an advisory. "As a preventative measure, we will revoke the exposed certificates used for the GitHub Desktop and Atom applications."

      Too bad they didn't take the preventive measure of not keeping them on an accessible volume when not being used.

      Yay, Microsoft.

    • If they're used for automated signing and in high volumes then you don't have that luxury. When Adobe was breached a while back they reported that they were signing thousands of binaries a week, there is no "not being used" there.

      Even if you do take this measure, all the attackers need to do is trigger on them going online and steal them then, so all it does is add a minor extra step to the process.

  • by q4Fry ( 1322209 ) on Tuesday January 31, 2023 @11:51AM (#63253835)

    Oops, we "lost the key" for newer versions of Atom, too. Guess you'll have to use VS Code now.

  • I don't sign with a certificate. I sign with the private key associated with the certificate. The certificate just says "entity X has these authorizations and here is X's public key". By using X's private key to correctly sign the code you prove that the code was signed by X. The private key should be air gapped away from the internet and only used when you want to create a signed version of the code. If you want to sign code during development to test your development cycle you use a test certificate
    • I don't sign with a certificate. I sign with the private key associated with the certificate. The certificate just says "entity X has these authorizations and here is X's public key". By using X's private key to correctly sign the code you prove that the code was signed by X. The private key should be air gapped away from the internet and only used when you want to create a signed version of the code. If you want to sign code during development to test your development cycle you use a test certificate signed by your own test CA. That way code signed with the test private key only passes authentication on your test systems.

      An org the size of github with the financial backing of Microsoft....should be able to afford something like a ~$650 YubiHSM...

      • It amazes me that they don't. There are more expensive HSMs, but for code signing, which is relatively infrequent, a YubiHSM is good enough. Heck, you can even use a YubiKey [yubico.com], and with a Cloudflare account, a few YubiKeys can be obtained at no cost.

        At the minimum, have the key on an offline PC, with backups that are burned to optical media, and are stashed away somewhere physically secure. The DNSSEC guys do this for their key signing stuff on a live video feed. All you need is 2-3 sites, senior people,

        • by gweihir ( 88907 )

          You need one more thing that GitHub is obviously lacking: Insight into how actual security works.

  • Of all certificates, why are code signing certificates not kept on a HSM? This way, the key material is never able to be exfiltrated, and there is a log of whom told the HSM to sign what, at what time.

    HSMs are something that go without saying if one wants any type of security. That, or a 100% offline CA with backups being burned to optical media, but a HSM ensures easy online interoperability without the risk of losing key material.

    Yes, HSMs can be compromised, but it means that you go back in the logs an

    • I understand hindsight is 20/20. But you're absolutely right and it's not hard for ANY company to have figured this out a long time ago. An HSM USB dongle or PCIe card is cheap these days, I think $500 - $5K. Generally less than the cost of a dedicated system for signing. A company that is serious about releasing software should consider $2k-$10k budget at a minimum to do this right. More money lets you sign more stuff faster.

      Lazy way is to keep the machine on a private network as part of your release autom

      • For the price we pay for GHE on the enterprise tier where you host your own appliances, they could do exactly what you (the parent poster) mentioned, perhaps add redundant HSMs for both speed and DR capabilities. What would be ideal are HSMs for all the pipelines. Dev's could be automated so if a pull request passes inspection, the artifact can be signed. Test would require some manual intervention. Production or anything out for public consumption would require one, perhaps two senior admins (two key s

  • X509 certificates are written in ASN1. ASN1 is {type, length, value} triplets where the value one type, length value (TLV) can be another TLV. Also some lengths can be variable. There are essentially two ways to parse ASN1, and for valid ASN1 they give the same result. Unfortunately for well crafted invalid ASN1 the different parsing methods result in different data structures being created. If I create an ASN1 certificate that parses in a malicious way on my target system but in malevolent way on a CA
    • I think the weakness has been that X.5xx protocols were designed originally to work between trust authorized domains. Even trust authorized machines. While layer 5 and higher has evolved to not take full advantage of that.

  • So everybody should be migrating to something better anyway.

Arithmetic is being able to count up to twenty without taking off your shoes. -- Mickey Mouse

Working...