pacman-bintrans
rebuilderd
pacman-bintrans | rebuilderd | |
---|---|---|
8 | 6 | |
83 | 358 | |
- | - | |
5.1 | 5.2 | |
5 months ago | 6 days ago | |
Rust | Rust | |
GNU General Public License v3.0 only | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pacman-bintrans
- Pacman-bintrans – Experimental binary transparency for pacman via sigstore/rekor
-
ProtonMail Is Inherently Insecure, Your Emails Are Likely Compromised
If you trust them with your keys, why not trust them with your plaintext? At which point, why bother with E2EE at all?
The answer should be "because one day web browsers will be able to pin specific versions of specific web apps, with specific hashes, corresponding to specific releases tagged in their repo, which have been audited by a certain threshold of auditors that I trust".
What that looks like in practice is probably some mixture of the following projects:
https://github.com/kpcyrd/pacman-bintrans
https://users.rust-lang.org/t/rust-code-reviews-web-site-for...
https://paragonie.com/blog/2022/01/solving-open-source-suppl...
-
Solving Open Source Supply Chain Security for the PHP Ecosystem
Generally speaking, Transparency Logs for securing software distribution has been a research topic since around 2015, I also wrote my master thesis on the subject.
Sigstore is a Transparency Log intended for provenance and software artifacts which has support for a few different build artifacts. The container ecosystems also appears to be embracing it.
Cool practical example is pacman-bintrans from kpcyrd that throws Arch Linux packages on sigstore and (optionally) checks each package for being reproducible before installation.
https://github.com/kpcyrd/pacman-bintrans
https://www.sigstore.dev/
I think this is generally useful for a lot of ecosystems indeed, and it's cool to also see similar scoped projects pop up to address the these issues.
-
I Love Arch, but GNU Guix Is My New Distro
Reproducible builds are an important part of efforts to secure the software supply chain. Ideally you want multiple independent parties vouching that a given package (whether a compiled binary, or a source tarball) corresponds to a globally immutably published revision in a source code repository.
That gives you Binary Transparency, which is already being attempted in the Arch Linux package ecosystem[0], and it protects the user from compromised build environments and software updates that are targeted at a specific user or that occur without upstream's knowledge.
Once updates can be tied securely to version control tags, it is possible to add something like Crev[1] to allow distributed auditing of source code changes. That still leaves open the questions of who to trust for audits, and how to fund that auditing work, but it greatly mitigates other classes of attack.
[0] https://github.com/kpcyrd/pacman-bintrans
[1] https://github.com/crev-dev/cargo-crev
-
CII' FOSS best practices criteria
It's good that having a reproducible build process is a requirement for the Gold rating, as is signed releases.
Perhaps there needs to be a Platinum level which involves storing the hash of each release in a distributed append-only log, with multiple third parties vouching that they can build the binary from the published source.
Obviously I'm thinking of something like sigstore[0] which the Arch Linux package ecosystem is being experimentally integrated with.[1] Then there's Crev for distributed code review.[2]
[0] https://docs.sigstore.dev/
[1] https://github.com/kpcyrd/pacman-bintrans
[2] https://github.com/crev-dev/crev
-
Thousands of Debian packages updated from their upstream Git repository
> Of course, since these packages are built automatically without human supervision it’s likely that some of them will have bugs in them that would otherwise have been caught by the maintainer.
Human supervision isn't enough to protect the supply chain, and I can't think of a time that it's actually stopped an attack at the packaging stage, but having some extra "friction" in the process seems like it should be a benefit. Ideally an attacker would have to get past both the upstream author and the Debian maintainer, rather than these being two separate single points of failure.
Fortunately the Debian project is improving the situation with regards to supply chain attacks by continuing to work on Reproducible Builds. I think the next step from there needs to be Binary Transparency, with the adoption of the sort of approach being trialled by Arch Linux:
https://github.com/kpcyrd/pacman-bintrans
- Binary transparency logs for pacman, the Arch Linux package manager
rebuilderd
-
Towards a Reproducible F-Droid
Arch Linux is heavily invested into it:
- https://reproducible.archlinux.org/ - Attempts to reproduce the distributed binary packages from source using reproducible builds tooling. This already works for a big chunk of packages.
- https://github.com/archlinux/archlinux-repro - This is a wrapper for Arch Linux build tooling that creates a build environment in a container that has the same packages installed as the original build environment back then. Software is expected to build reproducible in this environment and many ecosystems already do by default (Rust for example, to name one).
- https://github.com/kpcyrd/rebuilderd - This monitors the packages in Arch Linux, runs archlinux-repro on all of them and hosts the results. There are other projects supported but Arch Linux works best at the moment, and archlinux-repro offers the best integration I'm currently aware of.
There are surprisingly few people interested in running this stack on their own for verification purpose though.
-
Paranoia About Everything
Independent rebuilders can mitigate this to some degree, unless you can compromise all of them in some way. Some are listed on https://rebuilderd.com/, this is based on reproducible builds and only works for reproducible packages/software though.
-
Debian's rebuilds going up in Purdue's rebuilderd instance!
As many of you may know, one of Debian's most pressing issues for a long time has been working towards bit-for-bit reproducibility of its binary packages. Part of this initiative led to the Reproducible Builds project, in which other projects have joined with the goal of having reproducible builds of their instances. Until now, Debian's reproducibility was theoretical, as there was no proper rebuilding tool to verify its binary package reproducibility empirically. Recently, Arch Linux (and specifically one of its Trusted Users, who goes by 'kpcyrd' online, who in addition maintains packages for Debian and Alpine) produced an independent tool for verifying the reproducibility of binary packages called rebuilderd and has had its own instance running for quite some time. Apparently, collaboration between Arch Linux and Debian (and probably many other programmers and projects) lead to Debian's own instance of rebuilderd hosted by the Purdue University. You can see at Debian's reproducibility progress at:
- rebuilderd 0.9.0: reproducible builds verification system used by Arch Linux
- rebuilderd 0.9.0 has been released
What are some alternatives?
paru - Feature packed AUR helper
libfaketime - libfaketime modifies the system time for a single application
arch-audit - A utility like pkg-audit for Arch Linux. Based on Arch Security Team data.
git2-rs - libgit2 bindings for Rust
webext-signed-pages - A browser extension to verify the authenticity (PGP signature) of web pages
modus - A language for building Docker/OCI container images
dysnomia - Dysnomia: A tool for deploying mutable components
cli - Command line interface for the Phylum API
gitian-builder - Build packages in a secure deterministic fashion inside a VM
ismyarchverifiedyet - :construction: Experimental script to query rebuilderd for results :construction:
userscan - Scans files for Nix store references and registers them with the Nix garbage collector.
autovet - Automated security testing for open source libraries and applications.