https://bugs.kde.org/show_bug.cgi?id=424994

            Bug ID: 424994
           Summary: Warn about insufficient package security
           Product: Discover
           Version: unspecified
          Platform: unspecified
                OS: All
            Status: REPORTED
          Severity: wishlist
          Priority: NOR
         Component: discover
          Assignee: lei...@leinir.dk
          Reporter: lq1prs+2rm8s1mam7fmjxo0...@sharklasers.com
                CC: aleix...@kde.org
  Target Milestone: ---

Please add the following security warnings to Discover:

- No/Insufficient Transport Encryption
- No/Insufficient Package Signing
- No/Insufficient Repository Signing
- No/Insufficient Security Notifications
- Package Is Not Reproducible
- Package Cannot Be Cross-Checked


No/Insufficient Transport Encryption
====================================

Transport encryption can mitigate critical package manager vulnerabilities such
as https://justi.cz/security/2019/01/22/apt-rce.html, provided that the mirror
that's being used is not compromised.

In most Linux distributions though, either the package manager downloads
packages over plain HTTP/FTP, or the mirrors sync over plain rsync, or both.
Solus is one notable exception [1].


No/Insufficient Package Signing
===============================

Package signing prevents compromised mirrors from serving malicious packages.

Guilty: Solus [1], KaOS [2].


No/Insufficient Repository Signing
==================================

Repository signing prevents compromised mirrors from withholding security
updates.

Guilty: Arch Linux [3], Manjaro [4].


No/Insufficient Security Notifications
======================================

Even with signed packages and repositories, a compromised mirror can still
withhold security updates until the user notices the lack of updates or the
repository expires. This can be solved by fetching security notifications from
the distribution's official servers. As far as I know, Fedora is the only
distribution that implements this [5].


Package Is Not Reproducible
===========================

Reproducible builds allow anyone to check if a binary package corresponds to
its source code by building the source code themselves and comparing the output
with the original binary package. This makes it very easy to detect backdoors
introduced during the compilation process.

>From https://reproducible-builds.org/:

"[...] most software is distributed pre-compiled with no method to confirm
whether they correspond. [...] This incentivises attacks on developers who
release software, not only via traditional exploitation, but also in the forms
of political influence, blackmail or even threats of violence."

"This ability to notice if a developer has been compromised then deters such
threats or attacks occurring in the first place as any compromise would be
quickly detected. This offers comfort to front-liners that they not only can
[not] be threatened, but they would not be coerced into exploiting or exposing
their colleagues or end-users."


Package Cannot Be Cross-Checked
===============================

Cross-checking packages against multiple independent mirrors (or even against
packages downloaded by other users via peer-to-peer communication) would
prevent an attacker who has compromised the developer and one of the mirrors
from serving a backdoored package to a specific user who's using the said
compromised mirror.

I don't know of any Linux distribution or package manager that implements this.
In fact, I got this idea from some obscure article that I can't even find
anymore...


================

[1] https://discuss.getsol.us/d/5073-eopkg-security
[2]
https://github.com/KaOSx/core/blob/0310e8fd08595ec57e87e3f9af5ee53bc407b8d5/pacman/pacman.conf#L41
[3]
https://github.com/archlinux/svntogit-packages/blob/a04db1567ee37a6e7fc84fb8493e39d49dd54ec2/trunk/pacman.conf#L40
[4]
https://gitlab.manjaro.org/packages/core/pacman/-/blob/master/pacman.conf.x86_64#L42
[5]
https://patrick.uiterwijk.org/blog/2018/2/23/fedora-package-delivery-security#metalink

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to