GitHub suffers a cascading supply chain attack compromising CI/CD secrets
infoworld.com
infoworld.com
It’s almost like a grey-hat attacker trying to make the supply chain vulnerabilities more visible without doing major damage themselves. Almost.
GitHub are cutting corners and not working on making their CI/CD offering secure.
What? How is that sophisticated? Who wrote this?
I still don't understand how we got to this point where CI/CD pipelines are built from random shit on the internet. I remember people being worried about packages in the system package manager curated by a (relatively) small set of trusted project maintainers. Now we're pulling in garbage written by who knows, under security guidance of nobody. At least the Arch Repo has a procedure and a trust network.
Every time I have to use GitHub actions and it recommends me using some "community" action I can't do it. I just know it's written by some 12-year old on spring break.
Step 3: profit
right? Did I leave something out?
The idea of just plugging in some black box script written by anyone who can update it at any time seems insane. What kind of idiot would trust something as sensitive as CI/CD with random unverified scripts you have zero control or oversight of? Apparently quite a lot of idiots.
When Github first showed up, I really liked it that (unlike on e.g. SourceForge) the username is right in the project's URL, it suggested that someone's accountable for the project. But there's no such thing as "accountability" when you're relying on unpaid volunteer work, made available for free to the general public - the "NO WARRANTY" is spelled in all caps, right there in the license.
So how do you know if you can trust the code you're running? You use your own judgement.
(I don't know how hard it is to push a different object to an existing SHA on GitHub—I'm guessing that you probably have to remove all references to the original object at that SHA?)
You need immutability and something like sandboxing where actions cannot e.g. dump the memory of the runner process to steal secrets.
The alternative is vetting every single line of code in every dependency and every subdependency perfectly for every update, which is not realistic.