Devolutions / Devolutions/UniGetUI

[FEATURE REQUEST] User-defined installer trust criteria to protect against supply chain attacks

Open
#4,775 0 comments 0 reactions 0 assignees View on GitHub
new-feature
Dominant language
C#
Stars
26.1k
Forks
924
Avg merge
15h 52m
Merged PRs (30d)
52

Description

This is basically an implementation of a feature idea I had for WinGet itself, but I realized it could also be implemented in UniGet. That proposal is written in more detail here: https://github.com/microsoft/winget-pkgs/issues/118508
But the feature idea below is leaner and simpler.

-----------

### Please confirm these before moving forward.

- [x] I have searched for my feature proposal and have not found a work-in-progress/duplicate/resolved/discarded issue.
- [x] This proposal is a completely new feature. If you want to suggest an improvement or an enhancement, please use [this template](https://github.com/Devolutions/UniGetUI/issues/new?labels=enhancement&projects=&template=enhancement-improvement.yml&title=%5BENHANCEMENT%5D+%28Enter+your+description+here%29).

### Describe the new feature

**Problem:**
When doing `winget upgrade` , how do I know that any given app's installer that gets downloaded is the real deal? And that the manifest that got added to the WinGet repo doesn't point to some imposter site, and had slipped through the cracks because it didn't trigger the antivirus scans or the manual approval stage?

**Idea:**
On a per-app basis, allow the user to create a sort of "trust list" with "expected properties" about the app, and ensure the manifest matches that before downloading or installing.

**Examples:**
* Only download an update for Firefox if the installer download url in the manifest has the domain `mozilla.org`.
* Only run the installer exe for GitHub desktop if its signature certificate thumprint is `af2b83bac53d9...`
* Only run an installer if _either_ the signature or url matches
* Only run the installer if _both_ the signature and url match

### Describe how this new feature could help users

For the most critical apps like password managers, and apps likely to be highly targeted like wallets, it would add a layer of protection against supply chain attacks at the winget repo level.

An inherent benefit is that the same trust criteria could apply regardless of which package manager you're using

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.