FFY00 / python-nest

Automated Python binary artifact building service
European Union Public License 1.2
1 stars 0 forks source link

Scope #1

Open FFY00 opened 3 years ago

FFY00 commented 3 years ago
Motivation

My idea for this project is to solve the current infrastructure issue of binary artifacts. There are a couple main points that I'd like to fix:

Plan

To solve the described issues, I want to build a service that provides automated building of binary distributions.

Security Considerations

Having this building happen in remote servers (the ones provided by our service) introduces concerns about supply chain attacks. Although securing the service would be a high-importance/critical task, the model should not be tied to that point of failure. The infrastructure must be designed to be secure even if this weak point is breached, and for our considerations, we must assume that it inevitably will.

So, the service should be designed around the following key factor: build reproduceability. Projects should be expected to have reproducible artifacts, this means that for each platform and ABI, the resulting artifacts will all be identical given the same source. We could have an escape hatch for this, but it should be penalized (eg. if we, or someone else, offer this service to the community for free, this escape hatch should be a paid feature, increasing the friction for projects to automate their builds this way and motivating them to fix the reproducibility of their builds.).

Building on top of reproducibility, we could have independently managed build nodes on our network to verify that builds have not been tampered with. We could also provide those nodes with distribution revoking tokens, which they would use if a distribution was uploaded to PyPI and it could not be replicated. This would mitigate attacks such as an evil party gaining control over the central service and abusing the upload tokens to upload malicious artifacts.