Install Additional Software Safely

From Kicksecure
Jump to navigation Jump to search

This wiki page provides guidance on how to install additional software on the Kicksecure operating system using security best practices,

Introduction[edit]

Kicksecure is based on Debian. The software installation process is unspecific to Kicksecure. This means that most Debian software can be installed on Kicksecure, exactly the way you would install it on Debian. It should work out of the box. You can also check for tutorials on how to install software on Debian and apply them to your Kicksecure software needs. In most cases, there is no need to ask how to install specific software on Kicksecure because it is better to resolve the question as per the Self Support First Policy. In case of issues, the user is advised to attempt Generic Bug Reproduction. Only in rare cases will there be Kicksecure specific issues requiring Support.

For recommended software for various daily tasks, compiled by the Kicksecure team, visit the Kicksecure software page. There you will find

  • Pre-installed Kicksecure applications which are already available for different tasks.
  • Recommended software for different user activities.
  • Installation instructions.
  • Security advice regarding software.

Below you will find instructions on the installation process, divided into different user qualifications.

Platform Specific Notices[edit]

Before we start here are some platform specific notices.

Kicksecure users:

  • No special notice.

Kicksecure for Qubes users:

All Users instructions (Novice, Easy)[edit]

Install from Debian stable: The easiest and best way to install software is from Debian stable APT software repository.

To install a package from Debian stable, follow the steps below. Replace package-name with the name of the software to be installed.

Install package(s) package-name following these instructions

1 Platform specific notice.

2 Update the package lists and upgrade the system The Web Archive Onion Version .

sudo apt update && sudo apt full-upgrade

3 Install the package-name package(s).

Using apt command line --no-install-recommends option The Web Archive Onion Version is in most cases optional.

sudo apt install --no-install-recommends package-name

4 Platform specific notice.

5 Done.

The procedure of installing package(s) package-name is complete.

Examples: There are numerous examples of this procedure on the Software page and throughout the wiki.

Advanced Users instructions[edit]

These instructions are for more advances users who have experience with Linux operating systems.

Install Newer Software Versions[edit]

It is sometimes possible to install newer versions of applications. Newer versions than the versions which are available through Operating System Software and Updates. But this is in most cases:

  • not required for security reasons. (Why?)
  • only a user customization activity done by a user who wishes to use newer features of applications.

Info Prerequisite knowledge: refer to the Frozen Packages and Application Specific Update Indicators entries in the Operating System Software and Updates chapter.

Due to general usability issues of all Linux distributions (which are unspecific to Kicksecure), this activity is for advanced users only.

Info Difficulty: medium / hard, depending on the application.

It is sometimes possible to install newer versions of applications, via any of the following installation methods (non-exhaustive list):

  • A) alternative official Debian APT repositories such as
  • B) third party provided Debian APT repositories
  • C) alternative installation methods such as
  • D) or by manual installation from:
    • extraction from a compressed archive file,
    • installation of a .deb package,
    • source code.

Availability depends on the installation methods which either Debian, a derivative (such as Kicksecure) or the upstream (original) applications developers made available.

To install other custom software, it is suggested to follow recommendations throughout this website for better security. Specific instructions for custom software installations will vary for each application. This process is mostly unspecific to Kicksecure and therefore the Self Support First Policy applies to installation steps. The user would have to Utilize Search Engines and Documentation and research how this process would be achieved Debian version bookworm, which Kicksecure is currently based on. The same is true for Kicksecure-Qubes users -- first consider how this process would be achieved in a Debian-based Qubes template.

When intending to use newer versions of certain applications like Electrum it is best to approach the process as an application installation, rather than an application update.

In oversimplified terms, a Debian package is just a vehicle to place files into a location. For example, the binaries-freedom Debian packagearchive.org in Kicksecure used to ship Electrum. It came with the appimage file (/usr/share/binaries-freedom/electrum-appimage/electrum-4.0.7-x86_64.AppImage) and a start menu entry (/usr/share/applications/electrum-appimage.desktop). The presence of such files such as in this example does not impose limitations; it is still possible to customize the system and install newer software versions.

These files could also be ignored; for example it was not necessary to use the binaries-freedom start menu entry. The binaries-freedom package was intended to improve usability and it was never designed to limit customization, nor does it have that side effect. As per Kicksecure policy there are No Intentional User Freedom Restrictions. [1]

As an illustration, installation of a newer version of Electrum would require:

  1. uninstalling the electrum package (Optional and best avoided. Prerequisite knowledge: Debian Packages)
  2. find out the real website of Electrum (avoid downloading malicious money stealing software forks from scammers)
  3. download Electrum compressed archive from upstream (original developers)
  4. optional but highly recommended digital software verification of the downloaded Electrum
  5. extraction of the Electrum compressed archive
  6. change directory into the extracted Electrum folder
  7. start Electrum from command line
  8. optional beatifications such as adding start menu entries or autostart

Enable Debian Backports Repository[edit]

Operating System Specific Notes:

  • Kicksecure VM users: Should skip this step! Debian APT backports repository is already default in Kicksecure version 16 and above.
  • Debian: The following instructions are for Debian host operating system or Debian VM users.

1. Boot the virtual machine. (Qubes: debian-12 Template).

2. Add the current Debian stable backports codename bookworm-backports to Debian apt sources.

Notes:

  • This applies to Debian 17. Later Debian versions will use a codename different to bookworm.
  • Advanced users note: Instructions for torification of the fasttrack clearnet repository or fasttrack onion repository can be found in the following footnote.

Run. [2]

sudo su -c "echo -e 'deb https://deb.debian.org/debian bookworm-backports main contrib non-free' > /etc/apt/sources.list.d/backports.list"

3. Done.

The procedure of enabling Debian backports repository has been completed.

4. Undo.

On occasion it is necessary to undo this configuration, for example when upgrading from Debian bookworm to trixie. [3] To proceed, run.

sudo rm /etc/apt/sources.list.d/backports.list

Enable Debian Fasttrack Repository[edit]

Operating System Specific Notes:

  • Kicksecure VM users: Should skip this step! Debian APT fasttrack repository is already default in Kicksecure version 16 and above.
  • Debian: The following instructions are for Debian host operating system or Debian VM users.

1. Boot the Debian VM. (Qubes: debian-12) Template.

2. Install the fasttrack-archive-keyring package.

Install package(s) fasttrack-archive-keyring following these instructions

1 Platform specific notice.

2 Update the package lists and upgrade the system The Web Archive Onion Version .

sudo apt update && sudo apt full-upgrade

3 Install the fasttrack-archive-keyring package(s).

Using apt command line --no-install-recommends option The Web Archive Onion Version is in most cases optional.

sudo apt install --no-install-recommends fasttrack-archive-keyring

4 Platform specific notice.

5 Done.

The procedure of installing package(s) fasttrack-archive-keyring is complete.

3. Add the current Debian fasttrack APT repository.

Notes:

  • This applies to Debian 17. Later Debian versions will use a codename different to bookworm.
  • Advanced users note: Instructions for torification of the fasttrack clearnet repository or fasttrack onion repository can be found in the following footnote.

Run. [4]

sudo su -c "echo -e 'deb https://fasttrack.debian.net/debian/ bookworm-fasttrack main contrib non-free' > /etc/apt/sources.list.d/fasttrack.list"

4. Done.

The procedure of enabling Debian fasttrack repository has been completed.

5. Undo.

On occasion it is necessary to undo this configuration, for example when upgrading from Debian bookworm to trixie. [5] To proceed, run.

sudo rm /etc/apt/sources.list.d/fasttrack.list

Backports[edit]

Debian Backportsarchive.org:

Backports are packages taken from the next Debian release (called "testing"), adjusted and recompiled for usage on Debian stable.

This is a far safer alternative than the Debian testing or unstable repositories. However, Debian backports should be used conservatively.

Backports cannot be tested as extensively as Debian stable, and backports are provided on an as-is basis, with risk of incompatibilities with other components in Debian stable. Use with care!

Info Replace package-name below with the package you actually want to install.

package-name can be installed from Debian backports. This is non-ideal, see footnote. [6]

1. Boot Kicksecure (kicksecure-17) Template.

2. Add the current Debian stable backports codename bookworm-backports to Debian apt sources.

Note: this applies to Kicksecure 17.2.8.1. Later Kicksecure versions may use a codename different to bookworm.

In Kicksecure (kicksecure-17) Template, run.

sudo su -c "echo -e 'deb tor+https://deb.debian.org/debian bookworm-backports main contrib non-free' > /etc/apt/sources.list.d/backports.list"

Alternatively, users who like Onionizing Repositories can set the .onion mirror.

sudo su -c "echo -e 'deb tor+http://2s4yqjx5ul6okpp3f2gaunr2syex5jgbfpfvhxxbbjwnrsvbk5v3qbid.onion/debian bookworm-backports main contrib non-free' > /etc/apt/sources.list.d/backports.list"

3. Update the package lists.

sudo apt update

4. Install the select software.

sudo apt -t bookworm-backports install package-name

The procedure is now complete.

5. Undo.

On occasion it is necessary to undo this configuration, for example when upgrading from Debian bookworm to trixie. [7] To proceed, run.

sudo rm /etc/apt/sources.list.d/backports.list

System-Wide Upgrade to Backports[edit]

Discouraged.

No, even though backports are enabled by default in Kicksecure, by Debian default, APT does not upgrade all packages to the backports version by default. See footnote for evidence. [8]

How? See footnote. [9] </ref>

Fasttrack[edit]

Debian Fasttrackarchive.org:

Debian Fast Track is a repository that allows making “backports” of packages available to users of the stable distribution, if those packages cannot be maintained in testing and backported in the usual way.

This is a far safer alternative than the Debian testing or unstable repositories. However, Debian fasttrack should be used conservatively similarly to Backports.

Backports cannot be tested as extensively as Debian stable, and backports are provided on an as-is basis, with risk of incompatibilities with other components in Debian stable. Use with care!

Info Replace package-name below with the package you actually want to install.

package-name can be installed from Debian fasttrack. This is non-ideal.

1. Update the package lists.

sudo apt update

2. Install the select software.

sudo apt -t bookworm-fasttrack install package-name

3. Done.

The procedure of installing the package from fasttrack is now complete.

Install from Debian Testing[edit]

Warnings[edit]

Info Mixing packages from Debian stable with those from a later release like testing can destabilize the system due to associated software dependencies required for full functionality.

Before completing steps in this section, first read Prefer Packages from Debian Stable Repository. Carefully check how packages will change before proceeding -- a host of upgrades is usually safe, but no Kicksecure packages should be removed as part of the process; see Kicksecure Debian Packages. Be aware that problems are still possible; see herearchive.org for an example.

It is recommended to complete this process in a separate Kicksecure (kicksecure-17-debian-testing-mix) due to the risks. Ask for advice in the forums on a case-by-case basis.

Procedure[edit]

1. Boot the Kicksecure (kicksecure-17-debian-testing-mix) Template.

2. Add the current Debian testing codename trixie to sources.list

Note: this applies to Kicksecure 16. Later Kicksecure versions may use a codename different to trixie.

In the Kicksecure (kicksecure-17-debian-testing-mix) Template, run.

sudo su -c "echo -e 'deb https://deb.debian.org/debian trixie main' > /etc/apt/sources.list.d/testing.list"

Or alternatively use the .onion mirror.

sudo su -c "echo -e 'deb tor+http://2s4yqjx5ul6okpp3f2gaunr2syex5jgbfpfvhxxbbjwnrsvbk5v3qbid.onion/debian trixie main' > /etc/apt/sources.list.d/testing.list"

3. Update the package lists.

sudo apt update

4. Install the select software.

  • Note: Replace package-name with the package you actually want to install.

sudo apt -t trixie install package-name

The procedure is now complete.

5. Undo.

On occasion it is necessary to undo this configuration, for example when upgrading from Debian bookworm to trixie. [10] To proceed, run.

sudo rm /etc/apt/sources.list.d/testing.list

Install from Debian Unstable[edit]

Warnings[edit]

Managing security updates for the "stable" distribution remains the highest priority for the Debian security team. This means security fixes for Debian "unstable" are managed by the contributors themselves and not by the Debian security team. Therefore, "unstable" does not receive security updates in a timely manner. [11] [12]

Before completing steps in this section, first read Prefer Packages from Debian Stable Repository.

Mixing packages from Debian stable with those from a later release like unstable can destabilize the system due to associated software dependencies required for full functionality. First carefully check how packages will change before proceeding. [13]

A host of upgrades is usually safe, but no Kicksecure packages should be removed as part of the process; see Kicksecure Debian Packages. It is recommended to complete this process in a separate Kicksecure (kicksecure-17-debian-unstable-mix) due to the risk. Ask for advice in the forums on a case-by-case basis.

Procedure[edit]

Prior to installing package-namearchive.org from Debian unstable read Install software from Debian unstable to understand the risks involved and circumvention options. Mixing packages from Debian stable with later release packages like Debian unstable can lead to instability. [14]

1. Open a terminal.

If you are using Kicksecure inside Qubes, complete the following steps.

Qubes App Launcher (blue/grey "Q")Kicksecure App Qube (commonly named kicksecure)Xfce Terminal

If you are using a graphical Kicksecure with Xfce, run.

Start MenuXfce Terminal

2. In Kicksecure (kicksecure-17 Kicksecure inside Qubes) konsole, add Debian stable codename bookworm to the apt-conf default-release.

sudo su -c "echo -e 'APT::Default-Release bookworm;' > /etc/apt/apt.conf.d/70defaultrelease"

3. Add the current Debian unstable codename sid to sources.list.d.

sudo su -c "echo -e 'deb https://deb.debian.net/debian sid main' > /etc/apt/sources.list.d/unstable.list"

Or alternatively use the .onion mirror.

sudo su -c "echo -e 'deb tor+http://2s4yqjx5ul6okpp3f2gaunr2syex5jgbfpfvhxxbbjwnrsvbk5v3qbid.onion/debian sid main' > /etc/apt/sources.list.d/unstable.list"

4. Update the package lists.

sudo apt update

5. Install package-name from the current Debian unstable codename sid repository.

sudo apt install -t sid package-name

6. Undo.

On occasion it is necessary to undo this configuration, for example when upgrading from Debian bookworm to trixie. [15] To proceed, run.

Delete Debian testing repository list.

sudo rm /etc/apt/sources.list.d/unstable.list

Delete apt Default-Release configuration.

sudo rm /etc/apt/apt.conf.d/70defaultrelease

Install from Custom APT Repository[edit]

Adding custom APT repositories is mostly unspecific to Kicksecure. Should be the same or at least very similar to the process on Debian because Kicksecure is based on Debian. Therefore the user should utilize the Self Support First Policy.

To add custom APT repositories, there are few different cases (non-exhaustive list):

  • A) Only the provider of the custom APT repository provides instructions how to add the custom APT repository to the system.
  • B) Sparse or no instructions on how to add the custom APT repository to the system.
  • C) Documentation exists but is for a different Linux distribution such as Ubuntu and cannot be trivially translated to Debian based Linux distributions such as Kicksecure.
  • D) For some custom APT repositories, there are detailed instructions on how to add the custom repository in the Kicksecure documentation. Examples for documented third-party repositories include: Signal messenger, Session messenger, The Tor Project. [16]

No generic documentation can be provided to cover any custom APT repository since it is dependent on the specific custom repository. In other words, it varies depending on the custom repository. The steps required per custom repository are similar but not the very same.

The generic basic skills required to add a custom repository where documentation is insufficient are:

  1. Acquire an APT signing key signing key.
  2. Open file with root rights.
  3. Copy a file with root rights.
  4. Adding an APT signing key to APT keyring.
  5. Adding an APT repository file to the /etc/apt/sources.list.d folder.

The generic advanced skills required for better security that are required are:

  1. Securely download an APT signing key.
  2. View and verify an OpenPGP key fingerprint for better security.
  3. Open file with root rights.
  4. Copy a file with root rights.
  5. Adding a signing key to the /usr/share/keyrings folder
  6. Adding an APT repository file to the /etc/apt/sources.list.d folder.
  7. Configuring an APT repository to use a single specific APT signing key file only using signed-by. (forum discussion: APT repository signing keys per APT sources.list - signed-byarchive.org)

Package Reinstallation[edit]

As per the free support principle, package re-installation utilizes normal Debian processes.

The example below shows how the keepassxc package would be reinstalled. It is possible to substitute keepassxc with many other packages, so long as they do not have too many dependencies. These instructions are not suitable for any packages needed for connectivity such as tor, because the re-installation would be very difficult and is currently unsupported.

Even in the keepassxc package example, dependency complications emerge. In the example below the kicksecure-qubes-gui package also depends on keepassxc.

1. Update the package lists and upgrade.

See Updates for instructions.

2. Purge the package you want to reinstall.

sudo apt purge keepassxc

The output will show something like the following.

sudo apt purge keepassxc
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libqrencode4 libqt5concurrent5 libykpers-1-1 libyubikey-udev libyubikey0 libzxcvbn0
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  keepassxc* kicksecure-desktop-applications-recommended* kicksecure-qubes-gui*
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
After this operation, 19.1 MB disk space will be freed.
Do you want to continue? [Y/n]

The packages kicksecure-qubes-gui has been inadvertently uninstalled due to technical limitations. [17] These packages are reinstalled at a later step.

3. Delete the user configuration folder if that is desired.

In this keepassxc example, the user configuration folder is specified below (it changes depending on the package).

rm -r ~/.keepassxc

4. Reinstall the keepassxc package and the additional packages that were purged.

The --no-install-recommends parameter below is optional.

sudo apt install --no-install-recommends keepassxc kicksecure-qubes-gui

Related to: Kicksecure Debian Packages.

Install Software in an App Qube[edit]

Info Kicksecure-Qubes only! Custom scripting is recommended, which is beyond the scope of this entry. Use a search engine to locate free articles and instructions on this process.

There is no reason to avoid installing software in App Qubesarchive.org, although installed software will not persist across reboots. A custom script can be used to automate this process, which minimizes the time spent re-installing packages.

Advantages[edit]

This software installation method means a single VMarchive.org assumes many of the positive characteristics found in both App Qubes and Standalonesarchive.org.

  • Centralized Updates: App Qubesarchive.org are based on a Templatearchive.org. This means the App Qube's root filesystem is based on the corresponding template's root filesystem. Any updates to the Template will be reflected in the App Qube's root filesystem upon restart. [18]
  • Minimal Disk Usage: App Qubes require much less disk space than Standalones, since the App Qube's root filesystem is based on the corresponding template. The App Qube only needs enough disk space to hold user files in the /home directory.
  • Semi-persistent Storage: User data stored in /home , /rw and /usr/local survives reboot. Many applications like Signalarchive.org and Wirearchive.org store user data in the /home folder. Since the custom script installs the software seamlessly with little or no user interaction, the App Qube has "quasi-full persistence", not unlike a Standalone's full persistence.

App Qube Preparation[edit]

1. Create an App Qube based on kicksecure-17.

2. Pre-install any necessary dependencies.

Dependencies are available from packages.debian.orgarchive.org and can be pre-installed in the Template to speed up the repetitive software installation process. This means only packages or software missing from packages.debian.orgarchive.org will be repeatedly installed in the App Qube.

3. Create a custom script that runs at VM boot.

The purpose of this script is to automate software installation that would otherwise require manual user steps. Note that script functionality is variable, dependent on the software packages being installed and the experience of the user.

Scripting is useful for common tasks like:

  • adding specific software repositories
  • importing verified signing keys
  • updating the package list with apt update, after the repository and signing key are imported
  • finally running apt install to install the relevant software package(s)

App Qube Use[edit]

The App Qube's root filesystem does not provide a strong non-persistent security featurearchive.org. The persistence of the /home, /rw, and /usr/local filesystem means malware can be specifically written to target Qubes-based App Qubes, inserting hooks inside these directory's files. [19]

Once user preparation is complete and the App Qube has started, it will automatically start the script to begin installing software. When the process finishes, the App Qube can be used like any other. However when the App Qube is shutdown, all data outside of the persistent /home folder will be lost, including the newly installed software packages. Following reboot, the VM will again install the software packages automatically.

Using bind-dirs Selective Persistence[edit]

Using selective bind-dirsarchive.org persistence is currently a difficult problem and undocumented. Further research is required to ascertain which files require persistence across VM reboots.

Add Application Launcher to Start Menu[edit]

1. Create folder ~/.local/share/applications.

mkdir -p ~/.local/share/applications

2. Create a new file ~/.local/share/applications/program-name.desktop using an editor.

mousepad ~/.local/share/applications/program-name.desktop

3. Paste the following contents.

[Desktop Entry] Type=Application Exec=/path/to/program Name=program-name Categories=Other

4. Save the file.

5. Done.

The procedure is now complete.

6. Start using the launcher.

The launcher can be found here:

Start MenuOtherprogram-name

snap[edit]

General forum discussion about snap: Snap Store / snaps / snapd / snapcraft.io - a new software source?archive.org

Kicksecure-Qubes issues:

Apparently software in snap store is not well vetted for being non-malicious. Uploader "bitcoin1btc" [21] uploaded an unofficial, reportedly malware (money stealing)archive.org application Ledger Live: Crypto & NFT App. Unclickable link: https://snapcraft.io/ledgerlive [22] - Scam!

Note: For avoidance of doubt, while Ledger has been criticized for its Ledger Recovery service among other things, this is not Ledger's fault. There is no way for Ledger to prevent its software to be uploaded by malicious third-parties to arbitrary software stores.

Even days after this has been reported, snap store did not take action to remove the malware from their store.

In conclusion, snap store has bad software verification practices as well as a broken incident response procedure.

Flatpak[edit]

Introduction[edit]

Flatpakarchive.org is: [23]

...a utility for software deployment and package management for Linux. It is advertised as offering a sandbox environment in which users can run application software in isolation from the rest of the system. ...

Applications using Flatpak need permissions to have access to resources such as Bluetooth, sound (with PulseAudio), network, and files. These permissions are defined by the maintainer of the Flatpak and can be added or removed by users on their system.

Another key feature of Flatpak is that it allows application developers to directly provide updates to users without going through distributions, and without having to package and test the application separately for each distribution.

There are several advantages of utilizing Flatpak: [24] [25] [26]

  • Packages are easily added via Flathub, which is a repository located at flathub.org; for a Kicksecure example, see here.
  • Numerous Linux distributions are either supported out-of-the-box or after the flatpak package is installed; Debian is a supported platform (which Kicksecure is based upon).
  • Desktop applications are sandboxed and have limited access to the host environment. [27]
  • Flatpak bundles are a single-file format which contains the application or runtime. [28]
  • Any Flatpak breakage will not lead to destabilization of the host OS.
  • Elevated privileges (root) are not required to install Flatpak packages.
  • Only changed files are downloaded for updates.
  • Libraries and files used by multiple applications are de-duplicated to save space.

For further information, refer to the Flatpak FAQarchive.org and Flatpak documentationarchive.org.

Flathub Package Sources Security[edit]

Flathub, a central repository for Flatpak applications, hosts Flatpaks from various sources:

  • A) Official Flatpaks: These are packaged directly by the original developers of the application. Also called verified appsarchive.org or sometimes publisher verification.
  • B) Unofficial Flatpaks: These packages are created by third-party developers.

Official Flatpaks are clearly identified by a blue verified checkmark, but the absence of any indicator on unofficial Flatpaks creates a risk of confusion and security concerns. It is essential to have a distinct visual signal, such as a red 'unverified' mark, on these unofficial Flatpaks. This is crucial for ensuring that users are fully aware of the non-verified nature of these applications, thereby significantly reducing the likelihood of downloading potentially harmful software. The current lack of differentiation is a clear Flathub failure that compromises user safety, as it could lead users to mistakenly trust and download malware from unverified sources.

Figure: Firefox Flatpak showing the blue verified checkmark

A security concern was identified with the Mullvad Browser Flatpak, as reported in this issuearchive.org. Although it appeared as an official Mullvad Browser Flatpak, it was, in fact, unofficial and impersonating the official version. The appearance of this Flatpak can be viewed in the archived webpagearchive.org.

Mullvad Browser
by Mullvad

This issue was partially addressed by the third-party Flatpak packager, who was non-malicious. They added the following notice to clarify the situation:

NOTE: This wrapper is not verified by, affiliated with, or supported by Mullvad VPN AB.

The Monero Project requested a verified checkmark for the Monero GUI Flatpakarchive.org. However at time of writing in January 2023, this is being delayed by Flathub since August 2023 by Flathubarchive.org.

Flathub acknowledged the need for improvement publisher verification, as discussed in this forum threadarchive.org. They initiated beta.flathub.org with the intention of enhancing verification, but this now redirects to flathub.org, and the feature providing detailed verification information is not yet implemented on the Flathub website. The current status of this feature, whether it is deprecated or still in planning, is unclear as the full forum thread has not been reviewed, nor has further research been conducted.

In the next version of Kicksecure, there are plans to mitigate this issue by enabling the Flathub repository by default. See Kicksecure Flathub Repository Default Settings.

Depending on the application, Flatpaks are either:

  • A) Built from source code, or
  • B) Downloaded in binary (non-source) format from the original developers. [29]

Flathub's build process of downloading binaries poses certain risks. Since builds are automated, it is unlikely and not enforced that the packager verifies that the source code is complete, can be compiled, and is free of binary blobs, Embedded Code Copiesarchive.org of libraries, other software, or non-freedom software. In contrast, Debian policy strictly prohibits embedded code copiesarchive.org in all software from the Debian repository (packages.debian.org). Moreover, Debian build servers do not have external network accessarchive.org, ensuring that software can be built while all build dependencies are sourced exclusively from the Debian repository, avoiding reliance on any remote sources.

Flatpak or the Flathub.org web interface currently does not show if Flatpaks are built from source code or downloaded as binary from the original developers. Flathub feature request: Indicate on flathub.org Whether a Flatpak is Built from Source or Binary During Build Process on Flathubarchive.org

Table: Comparison of Various Flatpak Applications

Name of Flatpak Upstream Subline Risk of User Confusion Flatpak Packager Manifest File Official/Non-Official License Type Method of Build
Visual Studio Codearchive.org Microsoft by Microsoft Corporation high [30] Third-party linkarchive.org Non-Official Non-Freedom Binary
VSCodiumarchive.org VSCodium by Peter Squicciarini medium (missing unverified mark) Third-party linkarchive.org Non-Official Freedom Binary
Firefoxarchive.org Mozilla by Mozilla none (verified mark) Mozilla linkarchive.org Official Freedom Binary

For the source of this information, please press on expand on the right.

  • This can be seen by looking on Flathub.org for the fields developer and publisher.
  • By looking at the manifest files, it is easy to see.
    • Visual Studio Code: url: https://packages.microsoft.com/repos/code/pool/main/c/code/code_1.85.1-1702462158_amd64.deb
    • VSCodium: sources: - type: file url: https://github.com/VSCodium/vscodium/releases/download/1.85.1.23348/codium_1.85.1.23348_amd64.deb sha256: 28cdc4df80f8cfdb69532cae8b1b19515ce24290217c1fa97b1946ccf3e1f25a
    • Firefox: # Download en-US linux64 binary $CURL -o "${WORKSPACE}/firefox.tar.bz2" \ "${CANDIDATES_DIR}/${VERSION}-candidates/build${BUILD_NUMBER}/linux-x86_64/en-US/firefox-${VERSION}.tar.bz2"

See also: The security risks of Flathubarchive.org

Online discussions:

Flatpak Package Manager Security[edit]

This entry compares Flatpak security features (such as signed metadata) against Debian's APT package manager. [31] With one caveat, Flatpak package manager security is comparable to Debian's APT package manager: Flatpak currently does not defend against indefinite freeze attacksarchive.org.

A definition of indefinite freeze attacks is provided by TUF (The Update Framework) Threat Modelarchive.org:

An attacker continues to present files to a software update system files that the client has already seen. As a result, the client is kept unaware of new files.

For many adversaries this attack is difficult because it requires breaking TLS. While Flatpak package version information is not protected by a valid-until fieldarchive.org, it is fetched over TLS. Adversaries capable of breaking TLS face an obstacle when dealing with torified connections (like those in torsocks flatpak -- an indefinite freeze attack cannot target a specific user, but will affect all Tor users. This increases the chances of being caught unless they also have the ability to break Tor. Even then the attack chain would be very complex:

  • Break TorTarget specific user(s)Break TLSMount an indefinite freeze attackExploit a vulnerability caused by an outdated software version.

To safeguard against this possibility, it is recommended to perform manual checks of version numbers for Flatpak-installed applications -- they should match those available from the flathub repository. Every flathub application has a corresponding website page with an Additional information section that lists Updated and Version information. For example, at the time of writing for Chromium:

Researching version information on the flathub website with a browser is equally vulnerable to indefinite freeze attacks because it also relies upon TLS. It is therefore recommended to use Kicksecure or Tor Browser for this purpose. [32]

Sometimes APT software versions are quite old, which can lead to less functionality or even exposure to known vulnerabilities that are being exploited in the wild (see footnote). [33] Conversely, Flatpak usually offers more recent software versions and/or deploys security fixes in a more timely manner.

In summary, Flatpak advantages are considered to outweigh the potential risks of an indefinite freeze attack because the attack chain is complex. Also, Flatpak is sometimes the only trustworthy, easy-to-use software source that provides newer versions than available in Debian stable (with Frozen Packages) (or newer).

Forum discussion:

Flatpak Sandbox Security[edit]

Flatpak's sandbox is imperfect. Despite Flatpak sandbox issues, it is safe to use in the software installation context. By comparison, Debian's default package manager APT and other Linux package managers do not attempt to sandbox applications.

Flatpak is a victim of imperfect marketing. Since the Flatpak sandbox is a built-in feature, any reported security issues reflect negatively on Flatpak's reputation. Frequently, non-technical users are unable to properly contextualize or assess its impact through threat modeling. Building a "perfect" sandbox is a much harder task—containing arbitrary, ever-changing applications running on an ever-changing operating system—than creating a package manager. The latter is essentially a file delivery mechanism and is therefore comparatively simpler to develop.

Flatpak's sandboxing abilities are irrelevant so long as the sandboxing is not worse than software that is manually installed.

However, Flatpak's sandbox, which is mandatory and cannot be disabled, can break application’s own sandboxing. For example, in case of Chromium Flatpak, adjustments were required.

The Chromium Flatpak has patches on it to utilize Flatpak's support for nested sandboxing.https://github.com/flatpak/flatpak/issues/4032archive.org

Flatpak's own sandboxing capabilities interfere with other sandboxing initiatives like Sandboxed Application Launcher and Firejail: [34]

See also the discussion Does Flatpak weaken Chromium/Firefox’s sandbox?archive.org

Is Flatpak compatible with other desktop isolation frameworks?

In general, unprivileged container systems can’t stack, because anything running inside the sandbox does not have the necessary privileges to set up a sandbox, nor does it have the ability to raise its privileges in any way. For instance, Firejail can never work inside Flatpak, because it is setuid. That being said, using multiple sandboxing frameworks at once does not really make anything more secure, so there is little point in trying to nest things like that.

In the case of Sandboxed Application Launcher, it is not used much at the time of writing. However, that is not a reason against using it. Flatpak's own sandboxing and Sandboxed Application Launcher can be co-installed without issues, but the latter will be unable to sandbox applications installed through Flatpak. [35]

Flatpak Criticism[edit]

Flathub Promoting non-freedom Software[edit]

Oh, also, even if I have that, flathub lists proprietary apps right next to free software apps without any distinction. That is very bad. The search and listing functionality do not allow me to find only free software apps. l read the little license field, and if you are a new user, how are you going to know that a little unexplained license acronym like "MIT" or "GPL-3.0" means it is free software? It is sending the message, the license is a small unimportant detail, things that are way more important are: it's functionality category, the editor's choice, it's "popularity", because you can find apps through that, but not if it has a free license. Also, the license information is much worse. In debian based distros, I can easily see the license of every dependency. There is more complete licensing info in /usr/share/doc/PACKAGE/copyright. And I know that someone has put some time and effort into checking them.LWN Commentarchive.org

Flathub could mitigate this by now showing non-freedom software by default and only for users who opt-in. Such functionality is however not planned according to the knowledge of the author.

Higher Disk Space Requirements[edit]

As explained herearchive.org, flatpak requires more disk space.

Qubes OS Specific[edit]

At the time of writing, applications installed using Flatpak do not present in the Qubes start menu. [36]
Workaround: navigate to Qube settingsapplications tabpress "Refresh Applications".

Flatpak - system-wide versus per-user[edit]

Flatpak can either be used system-wide or per-user.

  • A) system-wide: without the --user option.
    • example: flatpak install flathub org.chromium.Chromium
  • B) per-user: when using the --user option.
    • example: flatpak --user install flathub org.chromium.Chromium

Enable Flathub Repository[edit]

prerequisite knowledge: Flatpak - system-wide versus per-user

The Flathub repository by default in Kicksecure:

  • A) system-wide: enabled.
  • B) per-user: not enabled. [37]

If the user wishes to see the instructions on how to enable the Flathub repository, please press on Learn More on the right side.

1. Notice.

Optional: Digital signature verification.

  • Digital signatures are a tool enhancing download security. They are commonly used across the internet and nothing special to worry about.
  • Optional, not required: Digital signatures are optional and not mandatory for using Kicksecure, but an extra security measure for advanced users. If you've never used them before, it might be overwhelming to look into them at this stage. Just ignore them for now.
  • Learn more: Curious? If you are interested in becoming more familiar with advanced computer security concepts, you can learn more about digital signatures here digital software signatures.

The following flatpak remote-add command in step 2 is not the most secure way to do this. However, it is the most popular method and is also recommended in the official instructions by upstream, Flathub. [38] As of 18 January 2024, the author of this warning has not found any significant concerns about this method anywhere else on the internet.

A strong understanding of the content on the Verifying Software Signatures wiki page is essential to comprehend this issue.

The concern arises because the command uses TOFO (Trust on First Use)archive.org, which is not the most secure approach. Employing this method reduces the System Security Level from Always use software signatures verification to Always use TLS. This change occurs because the Flatpak repository definition file, downloaded over TLS, includes an OpenPGP (gpg) signing key, which is not authenticated by any means stronger than TLS. This concern relates to Checking Digital Fingerprints of Signing Keys. [39]

To mitigate this security issue, users should avoid using any flatpak remote-add command. Instead, they should add a configuration snippet directly to the /etc/flatpak/remotes.d directory. For instance, creating a file like /etc/flatpak/remotes.d/flathub.flatpakrepo would be advisable. This configuration file, or the content of its GPGKey= keyword, should be obtained from sources authenticated by means stronger than TLS. This process is currently undocumented.

Flatpak upstream bug report: flatpak remote-add TOFU and TLS security issue / use stronger authentication than TLSarchive.org

This issue is unspecific to Kicksecure.

2. Select your platform.

A : Kicksecure

===

Kicksecure

(Not required. Enabled by default.)

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

B : Kicksecure for Qubes Template

===

Kicksecure-Qubes Template (kicksecure-17)

(Not required. Enabled by default.)

http_proxy=http://127.0.0.1:8082 https_proxy=$http_proxy flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

C : Kicksecure-Qubes App Qube

Kicksecure-Qubes App Qube (kicksecure)

Required. Not enabled by default.

flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

3. Done.

The process of enabling the Flathub repository has been completed.

Kicksecure Flathub Repository Default Settings[edit]

Kicksecure mitigates the issues described in chapter Flathub Package Sources Security related to unverified applications and non-freedom software by using Flatpak's subset option with the verified_floss parameter, which means that only Flatpaks can be installed that are both verified apps and floss (Freedom Software).

This means by default it will not be possible to install unverified or non-freedom software Flatpaks from Flathub. This is to avoid the user accidentally installing Flatpaks from one of these two categories. Unverified Flatpaks are disabled by default for better security. Non-freedom Flatpaks are disabled to Avoid Non-Freedom Software.

This is not a user freedom restriction. In Kicksecure, there are No Intentional User Freedom Restrictions. This setting can be easily changed. See chapter Change Flathub Settings.

Change Flathub Settings[edit]

Flathub offers support for subsetsarchive.org, which is relevant to the discussion in Flathub Package Sources Security. The recommended setting is verified_floss. However, if you are confident in your understanding of these settings, you are free to choose different options as per your requirements.

For instance, as of this writing, Monero could not be installed due to its Flatpak not having received the verified badge from Flathub. This situation is a result of delays in verification by Flathubarchive.org, as detailed in Flathub's issue trackingarchive.org. If a user has independently verified that an application deemed unverified is from a reputable source, they may choose to modify their settings to allow the installation of unverified Flatpaks. In the case of Monero, if the user already has confidence in the Monero developers, it might be reasonable to permit the installation of the unverified Monero Flatpak, especially considering it has been developed by the Monero team and is in the process of becoming a verified Flatpak.

It's important to note that once you enable the installation of unverified or non-freedom software Flatpaks, extra caution is required to avoid inadvertently installing other unverified or non-freedom software Flatpaks. This is due to the lack of an option to permit unverified Flatpaks on a per-Flatpak basis. Instead, there's only a global Flatpak setting, which affects all instances of the Flatpak installation command.

Table: flatpak subsets - Security Viewpoint

Option / Comment No Unverified Publishers Allowed No Non-Freedom Software Allowed Command

Flathub default.
No No sudo flatpak remote-modify --subset= flathub
verified Yes No sudo flatpak remote-modify --subset=verified flathub
floss No Yes sudo flatpak remote-modify --subset=floss flathub
verified_floss
Recommended.
Yes Yes sudo flatpak remote-modify --subset=verified_floss flathub

The following table expresses the very same as above, just from a different viewpoint.

Table: flatpak subsets - Functionality Viewpoint

Option Unverified Publishers Allowed Non-Freedom Software Allowed Command
yes yes sudo flatpak remote-modify --subset= flathub
verified no yes sudo flatpak remote-modify --subset=verified flathub
floss yes no sudo flatpak remote-modify --subset=floss flathub
verified_floss no no sudo flatpak remote-modify --subset=verified_floss flathub

[40]

Recommendations:

  • Installation of unverified Flatpaks is discouraged for better security.
  • Installation of non-freedom software is discouraged as per Avoid Non-Freedom Software.

Install from Flatpak[edit]

This is an example.

Note: Replace the Flatpak application ID org.chromium.Chromium with the actual Flatpak application ID to install such as for example org.mozilla.firefox.

Install org.chromium.Chromium via flatpak.

1. Add a Flatpak repository.

A : Kicksecure

===

Kicksecure

Already enabled by default. (system-wide). No additional stepss needed to enable the Flathub repository.

B : Kicksecure-Qubes Template

===

Kicksecure-Qubes Template (kicksecure-17)

Already enabled by default. (system-wide). No additional stepss needed to enable the Flathub repository.

C : Kicksecure-Qubes App Qube

Kicksecure-Qubes App Qube (kicksecure)

The user needs to Enable the Flathub Repository The Web Archive Onion Version . Must be enabled per-user.

2. Install the flatpak org.chromium.Chromium package.

A : Kicksecure

===

Kicksecure [41]

flatpak install flathub org.chromium.Chromium

B : Kicksecure-Qubes Template

===

Kicksecure-Qubes Template (kicksecure-17) [42]

Note: Advanced users that uninstalled the qubes-core-agent-passwordless-sudo package should see forum thread Warning: Flatpak system operation Deploy not allowed for userarchive.org.

http_proxy=http://127.0.0.1:8082 https_proxy=$http_proxy flatpak install flathub org.chromium.Chromium

C : Kicksecure-Qubes App Qube

Kicksecure-Qubes App Qube (kicksecure) [43]

flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

flatpak --user install flathub org.chromium.Chromium

3. Done.

The procedure of installing org.chromium.Chromium is complete.

4. Upgrades notice.

Note: this procedure will not keep the software up-to-date. How to update installation installed by flatpak is also documented on the Operating System Software and Updates wiki page.

Flatpak Troubleshooting[edit]

Flatpak error: Nothing matches[edit]

If you encounter an error message similar to the one below...

Looking for matches…
error: Nothing matches org.getmonero.Monero in remote flathub
zsh: exit 1     flatpak install flathub org.getmonero.Monero

...it may be due to the software being a unverified application and/or not being non-freedom software. This issue can arise because of the hardened Kicksecure Flathub Repository Default Settings, which are designed to mitigate some security issues outlined in the section Flathub Package Sources Security.

To override these restrictions and proceed with installation, refer to the instructions in the section Change Flathub Settings.

Best Practices[edit]

Table: Best Software Installation Practices

Domain Advice
Always Verify Signatures
  • For greater system security, it is strongly recommended to avoid installing unsigned software. Always make sure that signing keys and signatures are correct and/or use mechanisms that heavily simplify and automate this process, like APT upgrades.
  • Note: digital signatures are not a magic bullet. While they increase the certainty that no backdoor was introduced by a third party during transit, this does not mean the software is absolutely "backdoor-free". Learn more about this process and what digital signatures prove.
Avoid Manual Software Installation
  • Generally avoid the manual installation of packages, even trusted ones. In practice that means software should only be installed with apt, unless special circumstances exist. [44]
  • Other risks: foreign packages are often unsigned, and users may forget to regularly update the software.
Avoid Third Party Package Managers
  • There are many third party package managers besides APT, however many lack the security safeguards that are standard in Debian. Popular examples are pip and node.js.
  • The security concern with third party options is they do not verify the code comes from the author. When used, these package managers run processes that pull untrusted code from the Internet and perform operations with root level permissions.
  • If a trusted Workstation VM is required for sensitive use cases such as a Bitcoin wallet, then completely avoid this option. [45] [46]
Prefer APT
  • The safest option is to stick with Debian's official package manager APT. This is referenced throughout the wiki whenever the user runs apt.
  • APT is a secure package manager which passes the TUF threat model, since it features metadata verification and expiration detection. [47] [48]
Prefer Packages from Debian Stable Repository
  • Considering the risks, it is safest to install new software from Debian's stable repository, rather than the testing / unstable or third party repositories -- the Debian FAQarchive.org provides a strong rationale for using the stable repository; see footnote. [49]
  • Only advanced users should attempt to mix packages from Debian testing or Debian unstable. The reason is it can lead to a dependency hell, making it very difficult to resolve the breakage of APT package management.
  • To use newer package versions, see chapter Install Newer Software Versions.

Security Advice[edit]

General Advice[edit]

Kicksecure users are free to install their favorite software packages, but should be aware that additional software increases the attack surfacearchive.org of the platform.

APT Meta-data[edit]

When updating with apt, information will leak about which software packages and versions have been installed, unless Tor onion repositories have been configured. [50]

For repositories that come enabled by default with Kicksecure, this meta-data cannot be directly linked to any other activity like web browsing, because the apt-transport-tor forces it to pass through its own Tor circuit. [51] [52]

For user custom added repositories, the user should consider adding the onion version of that repository if available or use apt-transport-tor with the tor+ syntax in the apt sources file. Undocumented. The user could refer to upstream apt-transport-tor documentation.

Recommendations[edit]

For greater security when updating:

  • Follow the guidelines below.
  • Be especially careful when adding custom repositories, particularly Personal Package Archives (PPAs). [53] Compared to main distribution repositories, solo developers are more susceptible to influence and theoretically might have malicious intent.

How-to: Install or Update with Utmost Caution[edit]

  1. Stop all activities and shutdown any open applications like Tor Browser.
  2. Change the Tor circuit -- this step may not apply if the user is running an onion service.
  3. Update using apt after a random delay. By default, a new Tor circuit is generated after 10 seconds.
  4. Change the Tor circuit again.
  5. Continue user activities after another random period has elapsed.

Specialized topics[edit]

--no-install-recommends[edit]

Debian's installation default is --install-recommends. Debian packages have various metadata fields such as:

  • Depends: dependencies or dependency packages
  • Recommends: "recommended" packages
  • Suggests: "suggested" packages

When installing a package using apt, dependencies (Depends:) are always installed. The Debian default is for "recommended" packages (Recommends:) to also be installed alongside the primary package (unless installed previously). To avoid that outcome, it is possible to use the apt command line parameter --no-install-recommends; this is in most cases optional.

Debian's default for suggested packages (Suggests:) is --no-install-suggests i.e. not to install suggested packages. Users can optionally use --install-suggests, but there are no known cases where this would be useful at the time of writing. A host of other command line optionsarchive.org are also available.

If a package is installed using apt --no-install-recommends install package-name, then re-running apt without any parameters or even with --install-recommends will not result in installation of the "recommended" packages. To accomplish a "late" installation of "recommended" packages (Recommends:), the simplest method is first uninstalling the package. Alternatively, the list of Recommends: can be viewed using apt-cache package-name or by checking the package on https://www.debian.org/distrib/packagesarchive.org.

A brief Q&A regarding the potential impacts of the "recommended" field is outlined below.

Table: --no-install-recommends Impacts

Question Answer
Why does Kicksecure documentation often suggest --no-install-recommends? Kicksecure documentation uses --no-install-recommends whenever appropriate. It has been specifically crafted by developers with the goal of installing all required packages.
Can using --no-install-recommends lead to security issues? No. [54]
Can using --no-install-recommends lead to missing or broken functionalities? Yes. For example, mmdebstraparchive.org uses Recommends: and Suggests: for various optional dependencies providing various functionalityarchive.org.
Can omitting --no-install-recommends lead to security issues? In corner cases, yes. For example consider a host operating system without a Host Firewall. [55] By omitting --no-install-recommends -- which results in using Debian's default --install-recommends -- packages might be installed that open ports, which can significantly increase attack surface.
Should --no-install-recommends be used? The answer depends on the specific package. Advanced users who know exactly which packages are needed can use --no-install-recommends and afterwards manually add any wanted/additional packages [56] to the apt installation command. Otherwise, there might be corner cases of missing optional dependencies or limited functionality. In general, whether users should use --no-install-recommends for package installation is unspecific to Kicksecure and should be resolved as per Self Support First Policy.
Should Kicksecure set the default to --no-install-recommends? [57] This is a good question. It is a big change and could lead to a lot of broken functionality for user-installed packages. At the moment, Kicksecure user support is manageable because redirection to the Self Support First Policy is possible. If --no-install-recommends was the Kicksecure default, then a lot of functionality might work out of the box in Debian but not in Kicksecure, therefore invalidating the Self Support First Policy.

For these reasons, such suggestions should first be raised at Debian's issue tracker after first searching for existing discussions on Debian mailing lists. Search Debian APT issue trackerarchive.org for recommend first to avoid duplicate issues. For this change to be implemented, it would probably require a lot of research, good examples and a very well written feature request. [58]

How to install Recommends: after previously using --no-install-recommends to install a package? Scenario:

You previously installed a package using the command:

apt install --no-install-recommends diffoscope

User Story:

- Initially, the absence of Recommends: was intentional and desired. - Later, the realization occurs that the missing Recommends: are needed after all.

Attempts:

1. Running:

apt install diffoscope

  • Expected Result Recommends: are installed now.
  • Actual Result: The Recommends: are not installed.

2. Running:

sudo apt satisfy diffoscope

or even:

sudo apt install --install-recommends diffoscope

Outcome: The Recommends: still do not get installed.

Workaround:

The only effective method discovered so far is to remove the package first:

sudo apt remove diffoscope

Then reinstall it with the --install-recommends flag:

sudo apt install --install-recommends diffoscope

Related Information:

Refer to the following Debian APT bug report/feature request:

apt-get --install-recommends --reinstall install x should install recommends for already installed packagearchive.org

Default APT Sources[edit]

APT sources configuration,

  • /etc/apt/sources.list file and
  • /etc/apt/sources.list.d folder

work same as on Debian. This is unspecific to Kicksecure. The only Kicksecure specific difference is that file /etc/apt/sources.list exists but is empty by default. Debian APT sources reside in file /etc/apt/sources.list.d/debian.listarchive.org, which is provided by the anon-apt-sources-listarchive.org package.

Foreign Sources[edit]

For most use cases the extensive software range available from the official Debian repositories should be sufficient. A selection of nearly 60,000 programs [59] can be installed within a couple of steps. These packages are constantly maintained for bug/security fixes and are tightly integrated to provide a stable distribution.

To guarantee stability, no new versions are uploaded to Debian stable archives to avoid breaking the system. This makes Debian stable a dependable distribution and an excellent base for downstream distributions. However, the Linux software scene is very dynamic and sometimes users will want software that is not yet packaged in Debian. In this case it may be necessary to install software from separate sources; either from third party repositories, as a stand-alone precompiled .deb binary, or directly compiled source packages. [60]

Risks[edit]

Foreign sources should be used infrequently because it can cause problems. Note this is simply a warning about the worst case scenario and not a predetermined outcome of installing third party software.

Security Issues[edit]

Foreign sources pose important security implications for the affected system. Installing software is tantamount to granting root privileges to the developers. Software originating from dubious sources could replace important system components with malicious versions that allow backdoors or Trojan horsesarchive.org to be installed on the system.

In general, the installation of software is a matter of trust. The fact is every installed software source must be trusted. This trust is two-fold: firstly that the developers have integrity, and secondly that the community will notice any suspicious code, which might indicate compromise of the developers' machines. [61]

Dependency Hell[edit]

Manually installed packages can contain library versions that are unavailable in the standard repositories. This causes problems with dependency resolution when installing additional software from the official repository. Individual applications are less critical in this context, but when important system libraries in the third-party software are considered, complications are inevitable.

Depending on the severity of the complications, upgrades to the next version of the operating system might fail, or the system may become unbootable or generally unstable.

Mitigation[edit]

To reduce security risks and eliminate the risk of making the workstation unusable, utilize Multiple Kicksecure.

Kicksecure-Qubes users: For installation inside Qubes templates, the risk can only be minimized by using Multiple Kicksecure-Qubes Templates.

Installation Source - Upstream Original Developers versus Repository[edit]

Installation from Upstream Original Developers versus Repository? Which one is more secure?

That depends on the user's knowledge. If the user has a strong understanding of computer security in general, specifically fully understands the threat model behind digital software verification, then downloading software from original upstream developers is probably safer (because that removes one intermediary) than installing from other sources such as flatpak. However, this is a very big "IF."

related knowledge:

GUI Applications with Root Rights[edit]

Moved to Safely Use Root Commands: Graphical Applications with Root Rights.

Footnotes[edit]

  1. In simple terms, Kicksecure modifications can be ignored.
  2. Alternatively, users who like torify over clearnet can add tor+. sudo su -c "echo -e 'deb tor+https://deb.debian.org/debian bookworm-backports main contrib non-free' > /etc/apt/sources.list.d/backports.list" Alternatively, users who like Onionizing Repositories can use the onion instead. sudo su -c "echo -e 'deb tor+http://2s4yqjx5ul6okpp3f2gaunr2syex5jgbfpfvhxxbbjwnrsvbk5v3qbid.onion/debian bookworm-backports main contrib non-free' > /etc/apt/sources.list.d/backports.list"
  3. Most often this step applies before attempting major Kicksecure upgrades; upgrade instructions are also made available at that time (see Stay Tuned).
  4. Alternatively, users who like torify the clearnet repository can add tor+. sudo su -c "echo -e 'deb tor+https://fasttrack.debian.net/debian/ bookworm-fasttrack main contrib non-free' > /etc/apt/sources.list.d/fasttrack.list" It is not yet possible to set an .onion mirror for fastrack.archive.org
  5. Most often this step applies before attempting major Kicksecure upgrades; upgrade instructions are also made available at that time (see Stay Tuned).
  6. Users should Prefer Packages from Debian Stable Repository, but using backports is better than manual software installation or using third party package managers since this prefers APT. To contain the risk,
  7. Most often this step applies before attempting major Kicksecure upgrades; upgrade instructions are also made available at that time (see Stay Tuned).
  8. 1. Check locally installed systemd version. dpkg -l | grep systemd 2. Check systemd versions available from Debian.
    https://packages.debian.org/search?keywords=systemdarchive.org
    3. Compare versions.
    • local: 252.19-1~deb12u1
    • bookworm: 252.19-1~deb12u1
    • bookworm-backports: 254.5-1~bpo12+3
    4. Conclusion.
    Upgrades from backports are not installed by default.
  9. Discouraged! system-wide upgrade to backports. sudo apt dist-upgrade -t bookworm-backports
  10. Most often this step applies before attempting major Kicksecure upgrades; upgrade instructions are also made available at that time (see Follow Kicksecure Developments).
  11. https://www.debian.org/releases/sid/archive.org
  12. https://www.debian.org/security/faq#unstablearchive.org
  13. See: https://wiki.debian.org/DebianUnstable#What_are_some_best_practices_for_testing.2Fsid_users.3Farchive.org
  14. It is recommended to create Multiple Kicksecure to install the package due to these risks.
  15. Most often this step applies before attempting major Kicksecure upgrades; upgrade instructions are also made available at that time (see stay tuned).
  16. Not a "custom" repository but example instructions: Packages for Debian Hosts
  17. Debian_Packages#Technical_Information
  18. How to install softwarearchive.org
  19. https://www.qubes-os.org/doc/templates/#note-on-treating-app-qubes-root-filesystem-non-persistence-as-a-security-featurearchive.org
  20. APT works because of Qubes' qrexec-based updates proxy.
  21. https://web.archive.org/web/20231003103857/https://snapcraft.io/publisher/bitcoin1btcarchive.org
  22. https://web.archive.org/web/20231002100632/https://snapcraft.io/ledgerlivearchive.org
  23. https://en.wikipedia.org/wiki/Flatpakarchive.org
  24. https://en.wikipedia.org/wiki/Flatpak#Featuresarchive.org
  25. https://en.wikipedia.org/wiki/Flatpak#Supportarchive.org
  26. https://docs.flatpak.org/en/latest/introduction.htmlarchive.org
  27. Although Firejail cannot be run in conjunction with Flatpak.
  28. Runtimes are basic dependencies that are used by packages.
  29. [1]archive.org
  30. missing unverified mark, saying "by Microsoft Corporation" but actually packaged by a third-party
  31. Note that source code is not considered in this comparison.
  32. In theory some adversaries are capable of mounting an indefinite freeze attack against all visitors arriving from the Tor network. This is considered unlikely because the threat of eventual detection is too high. Such an attack would be widely publicized and might lead to major improvements in how Internet encrypted/authenticated connections are established.
  33. Chromium exploitation example.
  34. https://flatpak.org/faq/archive.org
  35. FlatPak as a Software Source / flathub as a source of softwarearchive.org.
  36. flatpak installed applications do not show up in Qubes start menuarchive.org
  37. Not enabled per-user by default for reasons documented here: FlatPak as a Software Source / flathub as a source of softwarearchive.org
  38. https://flatpak.org/setup/Debian/archive.org
  39. The flatpakref file, sourced from https://flathub.org/repo/flathub.flatpakrepoarchive.org, contains the GPGKey= keyword, which includes the OpenPGP (gpg) signing key.
  40. When changing these settings, what technically happens is that flathub changes settings in file /var/lib/flatpak/repo/config. cat /var/lib/flatpak/repo/config The content of the xa.subset keyword changes.
  41. Kicksecure:
    • system-wide (requires administrative ("root") rights) (compatible with noexec): flatpak install flathub {{{package}}}
    • per-user (no administrative rights required) (probably not compatible with noexec): flatpak --user install flathub {{{package}}}
    What is better? System-wide or per-user?
    • <>usability:</> Flathub is enabled by default system-wide but not per-user.archive.org
    • multi-user: On a multi-user system (probably if multiple human users use the same computer, which is rare nowadays), system-wide might be preferable as this saves disk space.
    • At preset: Does not make any difference.
    • Future-proof: Per-user might be more future-proof. It would be compatible with future Kicksecure security improvements Dev/boot_modes (strong user account isolation). However, noexec for the home folder is to be considered later, at which point this documentation needs to be updated once that has been implemented.
  42. Kicksecure-Qubes Template: flatpak cannot be used with the --user option. This is because in case of using a Qubes Template, the flatpak needs to be installed system-wide into the /var/lib/flatpak folder. This is due to Qubes Persistence. If the --user option was used, the flatpak would only be available in the Template's home folder but not in any App Qube based on that Template, because App Qubes have their own independent home folder.
  43. Kicksecure-Qubes App Qube: flatpak should be used with the --user option. This is because in case of using an App Qube, the flatpak needs to be installed per-user only into the ~/.local/share/flatpak folder and not system-wide. This is due to Qubes Persistence. If the --user option was not used, the flatpak would only be available in the App Qube's non-persistent /var/lib/flatpak folder located in the root image.
  44. Such as desirable software versions that are not yet bundled in the official repositories.
  45. https://web.archive.org/web/20170919173146/https://arstechnica.com/information-technology/2017/09/devs-unknowingly-use-malicious-modules-put-into-official-python-repository/archive.org
  46. The pip developers refused to implement any kind of proper GPG signature verification, opting to support server HTTPS insteadarchive.org which is a lot weaker. While the TUF secure updater project has implemented a safe version of piparchive.org, it is not clear how widely it has been adopted and whether it will become popular.
  47. https://theupdateframework.io/security/archive.org
  48. https://www2.cs.arizona.edu/stork/packagemanagersecurity/attacks-on-package-managers.htmlarchive.org
  49. If security or stability are at all important for you: install stable. period. This is the most preferred way.

    ... Since there is typically over 1 year between releases you might find that stable contains old versions of packages. However, they have been tested in and out. One can confidently say that the packages do not have any known severe bugs, security holes etc., in them. The packages in stable integrate seamlessly with other stable packages. These characteristics are very important for production servers which have to work 24 hours a day, 7 days a week. ... Stable is rock solid. It does not break and has full security support. But it might not have support for the latest hardware.

    On the other hand, packages in testing or unstable can have hidden bugs, security holes etc. Moreover, some packages in testing and unstable might not be working as intended.

  50. See software updatersarchive.org for more information on this topic.
  51. Consider the following example. A user announces online that software X is being utilized, and another specific application set x, y, and z is installed. If this information becomes available to an adversary and the circuit-isolated apt passes through any Tor exit relays, mirrors or ISPs under their control, then they may guess it is associated with the same pseudonym. In that case, the adversary has a list of the user's installed packages, and can attempt a stale mirror attack, or try other attacks against apt.
  52. As per the previous footnote, this threat equally applies to users who run an onion service with a specific set of server software, for example apache, mediawiki, phpbb, and others.
  53. Using PPA in Ubuntu Linux (Complete Guide)archive.org:

    PPA stands for Personal Package Archive. The PPA allows application developers and Linux users to create their own repositories to distribute software. With PPA, you can easily get newer software version or software that are not available via the official Ubuntu repositories.

  54. There are no known examples at the time of writing.
  55. Most people nowadays are behind a NAT router which blocks unsolicited incoming connections by default. While that protects from outside Internet-based attacks, it does not protect against attacks launched from inside the local area network (LAN) (devices that use the same router). This is specifically dangerous when using shared WiFi hotspots.
  56. Perhaps including some "recommended" packages (Recommends:).
  57. See: set apt --no-install-recommends by defaultarchive.org
  58. This wiki chapter has been authored so it may be a useful resource in the future.
  59. https://www.debian.org/intro/why_debianarchive.org
  60. https://www.debian.org/doc/manuals/debian-faq/pkg-basics.en.htmlarchive.org
  61. With reproducible package builds on the horizon, the security risk from the second factor will be minimal in the future.

We believe security software like Kicksecure needs to remain Open Source and independent. Would you help sustain and grow the project? Learn more about our 12 year success story and maybe DONATE!