!LemuOOvbWqRXodtSsw:nixos.org

NixOS Reproducible Builds

538 Members
Report: https://reproducible.nixos.org Project progress: https://github.com/orgs/NixOS/projects/30120 Servers

Load older messages


SenderMessageTime
14 Oct 2021
@qyliss:fairydust.spaceAlyssa Rossj-k: do you have a link to the discourse discussion?09:19:32
@qyliss:fairydust.spaceAlyssa Rosssad that I've missed this09:19:37
@j-k:matrix.orgj-khttps://discourse.nixos.org/t/generating-software-bill-of-materials-from-derivation/1408909:19:54
@j-k:matrix.orgj-kIt's also been posted about in the matrix twice09:20:17
@qyliss:fairydust.spaceAlyssa Rosshmm, that seems to be about one very specific aspect of it09:21:41
@qyliss:fairydust.spaceAlyssa Rossand I think it's one Nix is not particularly well-suited for, because it's too dynamic09:27:04
@j-k:matrix.orgj-kwhat is one? SBOM?09:27:49
@qyliss:fairydust.spaceAlyssa Rossyeah09:28:00
@j-k:matrix.orgj-kAn SBOM (in it's current incarnation) should be a reproducible bill of materials that covers direct dependencies and transitive dependencies. Some also collect the hashes for every file (but I find the benefit of this dubious, just review your git repo). As I see it SBOM is generally an inferior .drv (especially if you're using something like go2nix which brings all your deps into the nix ecosystem I have little value for an SBOM for a project alone, I will also want the SBOM of the tooling (e.g. go) and the SBOM for whatever built that etc etc etc turtles all the way down. I'd also want some guarentees the SBOM I have for a go build is the exact one for that actual go build etc In my estimation nix drvs solve this09:33:52
@j-k:matrix.orgj-kThere's some complexity using something that bundles dependencies such as buildGoModule but you could either generate an SBOM as part of that output or just migrate to a full nix system like gomod2nix09:35:02
@qyliss:fairydust.spaceAlyssa Rosshmm, right, in that case perhaps I was misunderstanding what it is09:35:41
@qyliss:fairydust.spaceAlyssa Rossso if I made a list of all the sources required to build my application, including all transitive build and runtime dependencies, that would be an SBoM?09:36:34
@j-k:matrix.orgj-kyep, the analogy that's common is a list of ingredients on a food packet09:37:21
@j-k:matrix.orgj-kI've put some initial thoughs in the nix-slsa channel but I'm hoping to do a full review of different SLSA requirements and covering where nix solves them, where nix invalidates the need for them, or where nix might need some extra help09:37:50
@qyliss:fairydust.spaceAlyssa Rossright, yeah, that sounds like something Nix would be extremely good at09:38:11
@qyliss:fairydust.spaceAlyssa RossI'm not sure if you know this, but this sort of stuff is extremely relevant to my work09:40:21
@qyliss:fairydust.spaceAlyssa Rosshttps://spectrum-os.org/09:40:34
@j-k:matrix.orgj-kIIRC you're working on Spectrum 09:40:36
@j-k:matrix.orgj-kyeah09:40:37
@qyliss:fairydust.spaceAlyssa Rossone goal is to minimize the amount of code running on the host system09:41:05
@qyliss:fairydust.spaceAlyssa Rossobviously that makes it easier to audit and stuff09:41:10
@qyliss:fairydust.spaceAlyssa Rossand SBoM stuff as you've described it here sounds like it would be very useful at identifying what needs to be audited09:41:32
@qyliss:fairydust.spaceAlyssa Rossunfortunately, I'm swamped until the end of the year trying to satisfy existing funding goals before they expire, but one thing I might be able do would be to get in touch with people who're coming to Nix from the SCS side of things, introduce myself and what I'm trying to do, and reassure them that we are interested in this and that I'd be interested in looking for opportunites to collaborate starting next year.09:45:11
@qyliss:fairydust.spaceAlyssa Rossbecause you're right that it'd a real shame if Nix was passed over for all this stuff.09:45:23
@j-k:matrix.orgj-kExactly. Every time I look at the work done on nix and how long ago this all was started my mind is blown. I'd hate for industry to pop up, recreate everything from scratch, and introduce fatal flaws that nix has already solved09:46:49
@qyliss:fairydust.spaceAlyssa RossThe reason I said I didn't think Nix was well suited before, btw, is that with Nix it's basically impossible to figure out which code is actually being used at runtime. Of course that doesn't really matter, when any build dependency could have compromised that code, but my experience before has been that people don't care about build deps. Glad to hear that's not the case here.09:47:09
@j-k:matrix.orgj-kIn the interest of seeing this move ahead and not get missed in the torrent of messages I'll try summarise some of this in a discorse post09:47:52
@qyliss:fairydust.spaceAlyssa RossYeah, please.09:48:00
@qyliss:fairydust.spaceAlyssa RossAnd we can discuss further in the SLSA channel, which I've now joined.09:48:31
@j-k:matrix.orgj-k
In reply to @qyliss:fairydust.space
The reason I said I didn't think Nix was well suited before, btw, is that with Nix it's basically impossible to figure out which code is actually being used at runtime. Of course that doesn't really matter, when any build dependency could have compromised that code, but my experience before has been that people don't care about build deps. Glad to hear that's not the case here.

Yeah I've not looked too much into the runtime aspect. I've had my colleagues complain they can't use nix on fedora with SELinux on 🙃 Your insight around that would be amazing

There is some work around keylime and validating SBOMs/Provenance at the kernel level before code runs so that might also help 🤷

09:49:36

There are no newer messages yet.


Back to Room ListRoom Version: 6