Rutkowska: Security challenges for the Qubes build process
Ultimately, we would like to introduce a multiple-signature scheme, in which several developers (from different countries, social circles, etc.) can sign Qubes-produced binaries and ISOs. Then, an adversary would have to compromise all the build locations in order to get backdoored versions signed. For this to happen, we need to make the build process deterministic (i.e. reproducible). Yet, this task still seems to be years ahead of us."
Posted May 31, 2016 15:26 UTC (Tue)
by amacater (subscriber, #790)
[Link] (16 responses)
Rule 2. Talk to the Debian folk doing reproducible builds and the other distributions working with them
Rule 3. Minimise what you build - get a minimal proof of concept for a small target then build from there?
Posted May 31, 2016 17:34 UTC (Tue)
by kbrantley (guest, #70638)
[Link] (15 responses)
Posted May 31, 2016 19:57 UTC (Tue)
by ms (subscriber, #41272)
[Link] (4 responses)
Posted Jun 1, 2016 0:10 UTC (Wed)
by nevyn (guest, #33129)
[Link]
https://james.fedorapeople.org/yum/dump_rpm_info.py
...if you want to diff., in theory it should be just as easy as making debian completely reproducible ... except nobody really cares on the rpm side (well, they care about slightly different things).
Posted Jun 1, 2016 21:43 UTC (Wed)
by smoogen (subscriber, #97)
[Link] (2 responses)
However then you end up with arguments where people are 'arguing past each other' because they don't know that their definitions are not congruent. So are we all talking about the same 'deterministic'?
Posted Jun 1, 2016 23:00 UTC (Wed)
by mathstuf (subscriber, #69389)
[Link]
There was also mention on the CMake list recently about sorting the output of file(GLOB) so that files are always in the same order (though file(GLOB) is an awful way to list source files anyways).
Posted Jun 2, 2016 8:22 UTC (Thu)
by ms (subscriber, #41272)
[Link]
For my purposes, what I would like would be for the build to be reproducible. Compilation is a pure referentially transparent operation - heck, *everything* is, provided you know all the inputs and what to set them to. For people compiling/packaging software, if they have the exact same inputs (sources etc) then they should get the bitwise identical output. So in fact most the challenge here is just figuring out what the inputs are to each operation.
When I package up my software for release, if I need to mess with timestamps then yes, I set them all to the timestamp of the commit that symbolises the release. I also use Nix for building my releases and publish the nix recipes so if anyone else wants to verify the binary result of building hasn't been manually fiddled, they can do so.
Posted May 31, 2016 19:59 UTC (Tue)
by amacater (subscriber, #790)
[Link] (9 responses)
RPM - slightly less obvious build process, slightly less sorted dependency management?
[Certainly true for Red Hat Enterprise Linux and CentOS in my experience - and reliance on third party repositories with no obvious developer traceability]
Binary database rather than human readable for installed packages, fork of RPM package manager itself (rpm5) ...
/personal bias
Posted Jun 1, 2016 0:17 UTC (Wed)
by nevyn (guest, #33129)
[Link]
So if someone says they are the new upstream and posts dpkg-2.0, and nobody uses it (or maybe one niche distro. uses it for a bit before realizing their mistake and reverting) ... then suddenly debian and everyone else has to say they are using a fork of dpkg?
Cool story.
Posted Jun 1, 2016 13:32 UTC (Wed)
by johannbg (guest, #65743)
[Link] (7 responses)
Posted Jun 1, 2016 14:29 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (6 responses)
Cheers,
Posted Jun 1, 2016 15:44 UTC (Wed)
by johannbg (guest, #65743)
[Link] (5 responses)
The above is *one* of the fundamental reason why applications or application stacks aren't being provided et all on linux or just only for single linux distribution or set of distribution using the same package management system.
If an unified standardization around containerized application or application stack can be achieved, then hat particular problem might be solved but time will tell if people, distribution and vendors can agree upon single unified specification surrounding that.
Posted Jun 3, 2016 1:57 UTC (Fri)
by NightMonkey (subscriber, #23051)
[Link] (4 responses)
Posted Jun 3, 2016 2:47 UTC (Fri)
by johannbg (guest, #65743)
[Link] (2 responses)
Unless there will be a consolidation atleast on the core/baseOS level within the next 5 years or so the linux ecosystem will start suffering irreversible damage which will ultimately leads to it's destruction afaikt since there is a bigger problem that will need to be starting to be resolved somewhere around that time.
Posted Jun 3, 2016 8:00 UTC (Fri)
by pabs (subscriber, #43278)
[Link] (1 responses)
Posted Jun 11, 2016 15:34 UTC (Sat)
by jospoortvliet (guest, #33164)
[Link]
But maybe I am wrong and they looked at the tech from others and decided their goals, seemingly nearly identical from the pov of users, we're so different there was no need or room for reuse and/or collaboration.
Posted Jun 3, 2016 16:04 UTC (Fri)
by misc (subscriber, #73730)
[Link]
Granted, it should matter that much, gnome on most distro is always gnome, firefox is always firefox even if it has another name. If the majority of your software usage is external proprietary SaaS, it doesn't really matter what you use, but that's not the case of everybody.
Posted May 31, 2016 23:09 UTC (Tue)
by deepfire (guest, #26138)
[Link] (8 responses)
Plus you get the warm and fuzzy feeling of its foundation having been designed by people people with academic background.
Nix only does checksum verification, no signatures, but adding that should be relatively straightforward.
Posted Jun 1, 2016 0:13 UTC (Wed)
by nevyn (guest, #33129)
[Link] (7 responses)
People barely care as is, they certainly don't care enough that they want to redownload their entire distro. when glibc has another DNS security bug.
Also Nix doesn't do anything to validate the source => binary part of the problem.
Posted Jun 1, 2016 20:02 UTC (Wed)
by nix (subscriber, #2304)
[Link] (2 responses)
Posted Jun 2, 2016 12:16 UTC (Thu)
by ms (subscriber, #41272)
[Link] (1 responses)
Posted Jun 8, 2016 12:16 UTC (Wed)
by nix (subscriber, #2304)
[Link]
Posted Jun 4, 2016 22:26 UTC (Sat)
by deepfire (guest, #26138)
[Link] (1 responses)
Thankfully, a solution to this has been in the works for quite a while:
http://thread.gmane.org/gmane.linux.distributions.nixos/1...
> Also Nix doesn't do anything to validate the source => binary part of the problem.
Indeed, build signing is yet to be added. Or you have something other than signing in mind?
Posted Jun 11, 2016 22:20 UTC (Sat)
by nevyn (guest, #33129)
[Link]
I'm not sure what that is, I hope that doesn't mean nix doesn't sign it's packages yet? The discussion was about reproducible builds (or something similar) which allows you to verify source => build.
Posted Jun 9, 2016 12:30 UTC (Thu)
by civodul (guest, #58311)
[Link] (1 responses)
https://www.gnu.org/software/guix/manual/html_node/Securi...
In addition, we provide infrastructure to "challenge" a binary provide, that is, to check whether the binaries it offers for download match those produced locally or provided by another server:
https://www.gnu.org/software/guix/manual/html_node/Invoki...
Posted Jun 11, 2016 22:13 UTC (Sat)
by nevyn (guest, #33129)
[Link]
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Wol
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
https://github.com/NixOS/nixpkgs/pull/10851
Rutkowska: Security challenges for the Qubes build process
Rutkowska: Security challenges for the Qubes build process
https://savannah.gnu.org/forum/forum.php?forum_id=8470
https://savannah.gnu.org/forum/forum.php?forum_id=8407
Rutkowska: Security challenges for the Qubes build process