[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
07/66: ccs-2021: Discuss in-toto in "Related Work".
From: |
Ludovic Courtès |
Subject: |
07/66: ccs-2021: Discuss in-toto in "Related Work". |
Date: |
Wed, 29 Jun 2022 11:31:57 -0400 (EDT) |
civodul pushed a commit to branch master
in repository maintenance.
commit c8ab0dc52ac16c80d46be0bdb770639f3ee4b48d
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Mon May 3 10:40:54 2021 +0200
ccs-2021: Discuss in-toto in "Related Work".
---
doc/ccs-2021/supply-chain.skb | 62 ++++++++++++++++++++++++++-----------------
1 file changed, 37 insertions(+), 25 deletions(-)
diff --git a/doc/ccs-2021/supply-chain.skb b/doc/ccs-2021/supply-chain.skb
index c9e11e1..997fce5 100644
--- a/doc/ccs-2021/supply-chain.skb
+++ b/doc/ccs-2021/supply-chain.skb
@@ -218,7 +218,7 @@ software packages. GNU Guix,(footnote (url
"https://guix.gnu.org")) is
primarily a ,(emph [functional]) package manager that builds upon the
ideas developed for Nix by Dolstra ,(it [et al.]) ,(ref :bib
'(dolstra2004:nix courtes2013:functional)). The term “functional” means
-that software build processes are considered as pure functions: given a
+that software build processes are considered as ,(emph [pure functions]):
given a
set of inputs (compiler, libraries, build scripts, and so on), a
package’s build function is assumed to always produce the same result.
Build results are stored in an immutable persistent data structure, the
@@ -229,7 +229,9 @@ For example, ,(tt [/gnu/store/yr9rk90jf…-gcc-10.3.0])
identifies a
specific build of GCC 10.3. A variant of GCC 10.3, for instance one
using different build options or different dependencies, would get a
different hash. Thus, each store file name uniquely identifies build
-results, and build processes are ,(emph [referentially transparent]).])
+results. This model is the foundation of ,(emph [end-to-end provenance
+tracking]): Guix records and uniquely identifies the inputs leading to
+build results available in ,(tt [/gnu/store]).])
(p [Guix, like Nix and unlike Debian or Fedora, is essentially a
,(emph [source-based distribution]): Guix package definitions describe
how to build packages from source. When running a command such as ,(tt
@@ -721,7 +723,7 @@ OpenPGP signatures, as recommended ,(ref :bib
'leurent2020:shambles).]))
(p [The core idea, the authorization invariant, is simple to
understand and its implementation can be relatively simple, too—a good
property for security-sensitive code. However, with more than a
-thousand commit pushed to Guix every month, users may often find
+thousand commits pushed to Guix every month, users may often find
themselves authenticating hundreds of commits when running ,(tt [guix
pull]). The implementation must be able to perform well.])
@@ -847,14 +849,10 @@ precondition, as explained above.])))
(p [A lot of work has gone into securing the software supply
chain, often in the context of binary distributions, sometimes in a more
-general context; more recent work also looks into Git authentication and
+general context; recent work also looks into Git authentication and
related issues. This section attempts to summarize how Guix relates to
-similar work that we are aware of in these two areas. More detailed
-discussions can be found in the issue tracker,(footnote
-[https://issues.guix.gnu.org/22883]).])
+similar work that we are aware of in these two areas.])
- ;; TODO: read issue tracker, read above
-
(p [The Update Framework ,(ref :bib 'samuel2010:survivable) (TUF)
is a reference for secure update systems, with a well-structured
specification ,(ref :bib 'cappos2020:tuf-spec) and a number of
@@ -886,20 +884,36 @@ containing “build recipe”. To date, it appears that ,(tt
[opam update])
itself does not authenticate repositories though; it is up to users and
developers to run Conex.])
- ;; TODO: in-toto
-
- (p [Another interesting approach is to focus on the impact of
-malicious modifications to Git repository meta-data ,(ref :bib
-"torresarias2016:omitting"). An attacker with access to the repository
-can modify, for instance, branch references, to cause a rollback attack
-or a “teleport” attack, causing users to pull an older commit or an
-unrelated commit. As written above, ,(tt [guix pull]) would detect such
-attacks. However, ,(tt [guix pull]) would fail to detect cases where
-metadata modification does not yield a rollback or teleport, yet gives
-users a different view than the intended one—for instance, a user is
-directed to an authentic but different branch rather than the intended
-one. The “secure push” operation and the associated ,(emph [reference
-state log]) (RSL) the authors propose would be an improvement.]))
+ (p [The in-toto framework can be thought of as a generalization of
+TUF; it aims at ensuring the integrity of complete software supply
+chains, taking into accounts the different steps that comprise software
+supply chains in widespread use such as Debian’s ,(ref :bib
+'torresarias2019:intoto). In particular, it focuses on ,(emph [artifact
+flow integrity])—that artifacts created by a step cannot be altered
+before the next step.])
+
+ (p [Thanks the functional deployment model, Guix has end-to-end
+control over artifact flow, from source code to binaries delivered to
+users. Complete provenance tracking gives anyone the ability to ,(emph
+[verify]) the source-to-binary tracking, or to simply not use the
+project’s official binaries, as discussed in ,(numref :text [Section]
+:ident "background"). Conversely, in-toto’s approach to artifact flow
+integrity assumes a relative disconnect between steps that makes
+verification hard in the first place. In a sense, in-toto addresses
+non-verifiability through attestation.])
+
+ (p [Earlier work focuses on the impact of malicious modifications
+to Git repository meta-data ,(ref :bib "torresarias2016:omitting"). An
+attacker with access to the repository can modify, for instance, branch
+references, to cause a rollback attack or a “teleport” attack, causing
+users to pull an older commit or an unrelated commit. As written above,
+,(tt [guix pull]) would detect such attacks. However, ,(tt [guix pull])
+would fail to detect cases where metadata modification does not yield a
+rollback or teleport, yet gives users a different view than the intended
+one—for instance, a user is directed to an authentic but different
+branch rather than the intended one. The “secure push” operation and
+the associated ,(emph [reference state log]) (RSL) the authors propose
+would be an improvement.]))
(chapter :title [Conclusion and outlook]
:ident "conclusion"
@@ -936,8 +950,6 @@ possibly allowing users to register those when they first
pull from the
channel. All this requires more thought, but it looks like there are
new opportunities here.]))
- ;; in-toto:
https://www.usenix.org/conference/usenixsecurity19/presentation/torres-arias
-
(!latex "\n\\newpage\n\\balance\n")
(references))
- branch master updated (8bf076b -> 3a4e080), Ludovic Courtès, 2022/06/29
- 01/66: doc: First stab at a "Secure Supply Chain" paper., Ludovic Courtès, 2022/06/29
- 02/66: ccs-2021: Write "Implementation" section., Ludovic Courtès, 2022/06/29
- 05/66: ccs-2021: Move "Notes on SHA-1" under "Implementation"., Ludovic Courtès, 2022/06/29
- 06/66: ccs-2021: Turn on review mode for good., Ludovic Courtès, 2022/06/29
- 03/66: ccs-2021: Tweak main sections., Ludovic Courtès, 2022/06/29
- 12/66: ccs-2021: Add abstract and tweak intro., Ludovic Courtès, 2022/06/29
- 07/66: ccs-2021: Discuss in-toto in "Related Work".,
Ludovic Courtès <=
- 11/66: ccs-2021: Complete introductions., Ludovic Courtès, 2022/06/29
- 25/66: icse-2022: Final (?) tweaks., Ludovic Courtès, 2022/06/29
- 04/66: ccs-2021: Tweak "related work", add proper references., Ludovic Courtès, 2022/06/29
- 09/66: ccs-2021: Write conclusion., Ludovic Courtès, 2022/06/29
- 21/66: icse-2022: Link to "Git Cryptography Protocol"., Ludovic Courtès, 2022/06/29
- 29/66: programming-2022: Adjust to <Programming> style., Ludovic Courtès, 2022/06/29
- 31/66: programming-2022: Expand "Related Work"., Ludovic Courtès, 2022/06/29
- 32/66: programming-2022: Use a monospace font for code snippets., Ludovic Courtès, 2022/06/29
- 08/66: ccs-2021: Capitalize section titles., Ludovic Courtès, 2022/06/29
- 10/66: ccs-2021: Improve "Rationale" section., Ludovic Courtès, 2022/06/29