Discover more at https://smarterarticles.co.uk/the-verification-crisis-why-checking-generated-code-is-harder-than-writing-it?pk_campaign=rss-feed
#HumanInTheLoop #AIinSoftware #CodeSecurity #SoftwareGovernance
5 sneaky things that quietly wreck software projects:
1️⃣ Confusing licenses
2️⃣ Forgotten code bits
3️⃣ Outdated tools
4️⃣ Hidden forks
5️⃣ No clear rules
The bright side? SCA Tool catches them all before they cause real damage. Learn more at https://scatool.com
#OpenSourceSecurity #SoftwareGovernance #SCA #DevTools #CyberSecurity
🔧 #AI-generated code is reshaping #OpenSource—but are we ready?
Join Apereo’s August Microconference with Roman Shaposhnik on how ASF developed its Generative Tooling Guidance v1.0.
🗓 Wed, Aug 13 | 11AM ET
💬 Live Q&A
🔗Register here: https://apereo.civicrm.org/civicrm/event/info?id=317
#FOSS #DevLeadership #AIinCode #Apereo #SoftwareGovernance #EthicalAI
🗞️ New newsletter!
"IT shops continue to attempt to solve 'people' with the only arrow in their quiver: technology. In other words, they are inadequately equipped to address a collective action problem."
API Governance: It's Not About the Technology - Solving API's Collective Action Problem: https://netapinotes.com/api-governance-its-not-about-the-technology-solving-apis-collective-action-problem/
As I write this, the most recent big move by Matt Mullenweg in his ongoing dispute with WP Engine was to abuse his position to seize control of a WP Engine owned plugin, justifying this act with a security fix. This justification might, under other circumstances, be believable. For example, if WP Engine weren’t actively releasing security fixes.
Now, as I wrote on a Hacker News thread, I’d been staying out of this drama. It wasn’t my fight, I wasn’t deeply familiar with the lore of the players involved, etc.
BUT! This specific tactic that Mullenweg employed happens to step on the toes of some underappreciated work I had done from 2016 to 2019 to try to mitigate supply chain attacks against WordPress. Thus, my HN comment about it.
Mullenweg’s behavior also calls into question the trustworthiness of WordPress not just as a hosting platform (WP.com, which hosts this website), but also the open source community (WP.org).
The vulnerability here is best demonstrated in the form of a shitpost:
“Matt” here is Mullenweg.I do not have a crystal ball that tells me the future, so whatever happens next is uncertain and entirely determined by the will of the WordPress community.
Even before I decided it was appropriate to chime in on this topic, or had really even paid attention to it, I had been hearing rumors of a hard-fork. And that maybe the right answer, but it could be excruciating for WordPress users if that happens.
Regardless of whether a hard-fork happens (or the WordPress community shifts sufficient power away from Mullenweg and Automattic), this vulnerability cannot continue if WordPress is to continue to be a trustworthy open source project.
Since this is a cryptography-focused blog, I’d like to examine ways that the WordPress community could build governance mechanisms to mitigate the risk of one man’s ego.
Revisit Code-Signing
The core code, as well as any plugins and themes, should be signed by a secret key controlled by the developer that publishes said code. There should be a secure public key infrastructure for ensuring that it’s difficult for the infrastructure operators to surreptitiously replace a package or public key without possessing one of those secret keys.
I had previously begun work on a proposal to solve this problem for the PHP community, and in turn, WordPress. However, my solution (called Gossamer) wasn’t designed with GDPR (specifically, the Right to be Forgotten) in mind.
Today, I’m aware of SigStore, which has gotten a lot of traction with other programming language ecosystems.
Additionally, there is an ongoing proposal for an authority-free PKI for the Fediverse that appears to take GDPR into consideration (though that’s more of an analysis for lawyers than cryptography experts to debate).
I think, at the intersection of both systems, there is a way to build a secure PKI where the developer maintains the keys as part of the normal course of operation.
Break-Glass Security with FROST
However, even with code-signing where the developers own their own keys, there is always a risk of a developer going rogue, or getting totally owned up.
Ideally, we’d want to mitigate that risk without reintroducing the single point of vulnerability that exists today. And we’d want to do it without a ton of protocol complexity visible to users (above what they’d already need to accept to have secure code signing in place).
Fortunately, cryptographers already built the tool we would need: Threshold Signatures.
From RFC 9591, we could use FROST(Ed25519, SHA-512) to require a threshold quorum (say, 3) of high-trust entities (for which there would be, for example, 5) to share a piece of an Ed25519 secret key. Cryptographers often call these t-of-N (in this example, 3-of-5) thresholds. The specific values for t and N vary a lot for different threat models.
When a quorum of entities do coordinate, they can produce a signature for a valid protocol message to revoke a developer’s access to the system, thus allowing a hostile takeover. However, it’s not possible for them to coordinate without their activity being publicly visible to the entire community.
The best part about FROST(Ed25519, SHA-512) is that it doesn’t require any code changes for signature verification. It spits out a valid Ed25519 signature, which you can check with just libsodium (or sodium_compat).
Closing Thoughts
If your threat model doesn’t include leadership’s inflated ego, or the corruption of social, political, and economic power, you aren’t building trustworthy software.
Promises and intentions don’t matter here. Mechanisms do.
Whatever the WordPress community decides is their best move forward (hard forks are the nuclear option, naturally), the end result cannot be replacing one tyrant with another.
The root cause isn’t that Mullenweg is particularly evil, it’s that a large chunk of websites are beholden to only his whims (whether they realized it or not).
One can only make decisions that affects millions of lives and thousands of employees (though significantly fewer today than when this drama began) for so long before an outcome like this occurs.
Edit of XKCDIf you aren’t immune to propaganda, you aren’t immune to the corruption of power, either.
But if you architect your systems (governance and technological) to not place all this power solely in the hands of one unelected nerd, you mitigate the risk by design.
(Yes, you do invite a different set of problems, such as decision paralysis and inertia. But given WordPress’s glacial pace of minimum PHP version bumps over its lifetime, I don’t think that’s actually a new risk.)
With all that said, whatever the WordPress community decides is best for them, I’m here to help.
https://scottarc.blog/2024/10/14/trust-rules-everything-around-me/
#AdvancedCustomFields #arrogance #automaticUpdates #Automattic #codeSigning #cybersecurity #ego #MattMullenweg #news #PKI #pluginSecurity #powerCorrupts #SecureCustomFields #security #softwareGovernance #supplyChain #supplyChainSecurity #supplyChainSecurity #technology #threatModels #trust #WordPress #WPEngine
By all accounts, 2023 was a banner year. Which makes leaving Substack all the more important to do sooner, rather than later:
https://netapinotes.substack.com/p/2023-net-api-notes-retrospective
#Substack #amwriting #newsletters #moderation #softwareGovernance #platforms
New Episode: hpr3967 :: Unsolicited thoughts on running open source software projects
Hosted by dnt on 2023-10-17 is flagged as Clean and is released under a CC-BY-SA license.
Tags: #RESERVESHOW, #softwaregovernance.
I've often pitched my version of software governance as "how we co-navigate our shared spaces, safely". What I mean by this is that resources are not infinite, and we need a coordinating function to resolve issues when conflicts arise.
It's just a microcosm of what bigger, more traditional forms of governance exist to do. So much here in this story that I can see parallels with.
Herding API cats? In this edition of Net API Notes, I'll share a way to organize the universe of competing API concerns into an approachable, concise model. I'll share a handful of stories on how this model has helped real-life enterprise challenges and end by dispelling a few myths about one of the most misunderstood phrases in corporate culture: software governance (which includes APIs).
https://netapinotes.substack.com/p/struggling-to-manage-api-program #APIs #management #governance #softwareGovernance
This post?
"This is my Eiffel Tower. This is my Rachmaninoff's Third. My Pieta. It's completely elegant, it's bafflingly beautiful, and it's capable of reducing the population of any standing structure to zero." - Justin Hammer as played by Sam Rockwell in Iron Man 2
At least until the next one. #APIs #softwareGovernance #APIgovernance
https://netapinotes.substack.com/p/struggling-to-manage-api-program