From f847a155609b73225d4f79f69832e110fd51ded9 Mon Sep 17 00:00:00 2001 From: Holger Levsen Date: Fri, 4 Aug 2017 21:23:20 -0400 Subject: drop lots of stuff Signed-off-by: Holger Levsen --- .../presentations/2017-08-07-DebConf17/index.html | 234 ++------------------- 1 file changed, 12 insertions(+), 222 deletions(-) diff --git a/userContent/presentations/2017-08-07-DebConf17/index.html b/userContent/presentations/2017-08-07-DebConf17/index.html index a180da67..93eb2265 100644 --- a/userContent/presentations/2017-08-07-DebConf17/index.html +++ b/userContent/presentations/2017-08-07-DebConf17/index.html @@ -3,7 +3,7 @@ - jenkins.debian.net or what is Debian doing with all these resources + let's maintain jenkins.debian.org as a team @@ -72,14 +72,13 @@ torbrowser-launcher

- about jenkins.debian.net - or what Holger / Debian is doing with all these resources + let's maintain jenkins.debian.org as a team

-

(Automating all the tests!)


Holger Levsen <holger@debian.org>

-

Profitbricks Office, 2016-11-30, Berlin, Germany

+

DebConf17, 2017-08-07, Montreal, Canada

@@ -89,8 +88,7 @@ torbrowser-launcher
  • Debian-Edu (Debian for Education), since 2003
  • DebConf organizer, founded the DebConf video team in 2005
  • Debian developer since 2007, holger@debian.og
  • -
  • Freelancer since 2004, holgerlevsen.de
  • -
  • Freelancer at Profitbricks from 2011-2013 and 2015
  • +
  • Freelancer since 2004
  • @@ -154,23 +152,11 @@ torbrowser-launcher
  • Steven Chamberlain: kfreebsd
  • Phil Hands: lvc
  • Tomasz Nitecki: jenkins java support
  • -
  • 36 contributors to jenkins.debian.net.git in total
  • +
  • 36 contributors to jenkins.debian.net.git in total, also committers from Arch Linux, openSUSE, LEDE, coreboot, Guix, FreeBSD and NetBSD
  • -
    -

    - A quick detour about Debian release names -

    -
      -
    • wheezy (Debian 7) = oldstable
    • -
    • jessie (8) = stable
    • -
    • stretch (9 = testing
    • -
    • sid = unstable
    • -
    • experimental
    • -
    -

    @@ -283,212 +269,27 @@ torbrowser-launcher reproducible.debian.net / tests.reproducible-builds.org/debian/

      -
    • created by 379 / ~350 jobs on jenkins.debian.net
    • +
    • created by 357 jobs on jenkins.debian.net
    • it's not only about Debian anymore…
    - - -
    -

    The problem: Can we trust the build process?

    -
      -
    • One can inspect the source code of free software for flaws
    • -
    • But distributions provide binary/compiled packages
    • -
    -
    - -
    -

    The problem: nobody can trust any binary built anywhere anymore

    - -
      -
    • To get users, go after the developers
    • -
    • Financial incentives to crack developer machines / build infrastructure
    • -
    • CVE-2002-0083: Remote root exploit in OpenSSH (single bit difference in binary)
    • -
    • Kernel module modifying source code when "viewed" by GCC only (see media.ccc.de)
    • -
    • Compromised Apple iOS SDK, Xcodeghost, etc.
    • -
    -
    - -
    -

    Our solution

    -
      (we are still at step 1 here) -
    • Ensure compilation of the same source always has bit by bit identical results
    • -
    • Multiple parties compare compilation results
    • -
    • Attacker needs to infect everybody simultaneously (or they are detected)
    • -
    -
    - -
    -

    We call this Reproducible Builds.

    - -
      -
    • We think this should become the norm for free software.
    • -
    -
    - -
    -

    - The motivation behind "reproducible" builds is to allow verification - that no flaws have been introduced during the compilation process. -

    -
    - - -
    -

    Reproducible builds in Debian

    - -

    Continuously build every package twice, varying:

    - -
      -
        -
      • Time & date
      • -
      • Hostname & domain name
      • -
      • Filesystem (disorderfs)
      • -
      • Timezone & locale
      • -
      • uid & gid
      • -
      • GECOS information, the shell & a bunch of environment variables
      • -
      • Kernel & CPU type
      • -
      • and more…
      • -
      -
    -
    - -
    -

    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -  
    -

    https://try.diffoscope.org

    -

    -
    - -
    -

    Challenges

    -
      -
        -
      • Timestamps
      • -
      • Timezones & locales
      • -
      • Non-deterministic file ordering
      • -
      • Dictionary/hash key ordering
      • -
      • Users, groups, umask, environment variables
      • -
      • Build paths
      • -
      • Specifying the environment
      • -
      -
    -
    - -
    -   -
    - -
    -   -
    - -
    -

    Other technical benefits

    - -
      -
        -
      • Faster to build; saves time, money & the environment
      • -
      • Easier to test changes/revisions
      • -
      • Unsafe behaviour (eg. internet access)
      • -
      • Unreliable / non-deterministic behaviours (eg. timing)
      • -
      • Finds bugs in uncommon timezones or locales
      • -
      • Detect corrupted build environments
      • -
      • Find future build failures (eg. expired certificates)
      • -
      -
    -
    - - -
    -   -
    - - -
    -

    Future work

    - -
      -
    • .buildinfo files distribution unsolved (step 2)
    • -
    • How to make it meaningful for end-users (step 3)
    • -
    • Source code still vulnerable
    • -
    -
    - -
    -

    Beyond Debian…

    -

    - - - - - - - - - - - - - - - - - - - -

    Reproducible Builds summits (Athens 2015, Berlin 2016) -
    -

    -
    - -
    -

    Projects using Profitbricks resources via jenkins.debian.net

    -

    works: - - - - - - -

    -

    worked: - - -

    -

    work in progress: - - -

    -
    - +

    Resources used for reproducibility testing on jenkins.debian.net, by architecture & sponsor

    + FIXME: total jenkins numbers
    • 13 amd64 systems, sponsored by Profitbricks
    • 4 i386 systems, sponsored by Profitbricks
    • 22 armhf systems, sponsored by vagrant@d.o, Debian & other donations
    • -
    • soon: 8 arm64 systems, sponsored by codethink.co.uk
    • +
    • 8 arm64 systems, sponsored by codethink.co.uk
    -

    Usually I thank:

    +

    Thanks:


    @@ -497,18 +298,7 @@ torbrowser-launcher
    -

    -
    - -
    -

    Todays special thanks:

    -

    - -

      -
    • from Debian, jenkins.debian.net would not have been possible like this without your support!
    • -
    • from many many folks interested in Reproducible Builds!
    • -
    + FIXME: codethink logo

    @@ -534,7 +324,7 @@ torbrowser-launcher

    https://jenkins.debian.net
    - https://reproducible-builds.org + git.debian.org/git/qa/jenkins.debian.net.git


    -- cgit v1.2.3-70-g09d2