Comment 2 for bug 1954909

Revision history for this message
Lukas Märdian (slyon) wrote :

This was co-reviewed by @joalif and myself.

Review for Package: src:ubuntu-advantage-desktop-daemon

[Summary]
ubuntu-advantage-desktop-daemon is a rather small, new daemon that is providing
a DBus API for desktop application to talk with the UA client. The daemon is
run as a systemd service (as root), but it applies several isolation techniques
to lock the attack surface down to a minimum.

MIR team ACK under the constraint to resolve the below listed required
TODOs and as much as possible having a look at the recommended TODOs.

This does not need a security review.

List of specific binary packages to be promoted to main: ubuntu-advantage-desktop-daemon
Specific binary packages built, but NOT to be promoted to main: <none>

Notes:
Does not need a security review as the only red flag (root-daemon) is arleady
being mitigated in the systemd service.

Required TODOs:
- The package is installing a binary in
  /usr/lib/x86_64-linux-gnu/ubuntu-advantage-desktop-daemon
  Please let us know if there is any good reason for choosing this location or
  install the file at /usr/libexec instead.

Recommended TODOs:
- The package should get a team bug subscriber before being promoted
- Try further locking down the systemd service (root daemon), e.g. by running it
  under its own (dynamic) user/group: https://0pointer.net/blog/dynamic-users-with-systemd.html

[Duplication]
There is no other package in main providing the same functionality.

[Dependencies]
OK:
- no other Dependencies to MIR due to this
  - checked with check-mir
  - not listed in seeded-in-ubuntu
  - none of the (potentially auto-generated) dependencies (Depends
    and Recommends) that are present after build are not in main
- no -dev/-debug/-doc packages that need exclusion
- No dependencies in main that are only superficially tested requiring
   more tests now.

Problems: None

[Embedded sources and static linking]
OK:
- no embedded source present
- no static linking
- does not have odd Built-Using entries
- not a go package, no extra constraints to consider in that regard
- No vendoring used, all Built-Using are in main

Problems: None

[Security]
OK:
- history of CVEs does not look concerning (the package is pretty new, though,
  first published in Dec, 2021)
- does not use webkit1,2
- does not use lib*v8 directly
- does not parse data formats
- does not open a port/socket
- does not process arbitrary web content
- does not integrate arbitrary javascript into the desktop
- does not deal with system authentication (eg, pam), etc)
- does not deal with security attestation (secure boot, tpm, signatures)

Problems:
- uses centralized online accounts, but that's the intended purpose of UA
- does run a daemon as root, but uses systemd security features to confine it
  I wonder if that could be further confined by making it run in its own
  (dynamic) user and group.
  c.f. https://www.freedesktop.org/software/systemd/man/systemd.exec.html#User/Group%20Identity

[Common blockers]
OK:
- does not FTBFS currently
- does have a test suite that runs at build time
  - test suite fails will fail the build upon error.
- does not have test suite that runs as autopkgtest, but manual test plan is specified
- no new python2 dependency

Problems: None

[Packaging red flags]
OK:
- Ubuntu does not carry a delta (it's a native package)
- symbols tracking not applicable for this kind of code (doesn't ship a library)
- d/watch not present but it is a native package
- Upstream update history is good
- Debian/Ubuntu update history is good
- the current release is packaged
- promoting this does not seem to cause issues for MOTUs that so far maintained the package
- no massive Lintian warnings
- d/rules is rather clean
- It is not on the lto-disabled list

Problems:
- (lintian) P: ubuntu-advantage-desktop-daemon: executable-in-usr-lib
  usr/lib/x86_64-linux-gnu/ubuntu-advantage-desktop-daemon
  Please move the file to /usr/libexec

[Upstream red flags]
OK:
- no Errors/warnings during the build
- no incautious use of malloc/sprintf (as far as we can check it)
- no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH (usage is OK inside tests)
- no use of user nobody
- no use of setuid
- no important open bugs (crashers, etc) in Debian or Ubuntu
- no dependency on webkit, qtwebkit, seed or libgoa-*
- part of the UI, desktop file, not needed as it just provides a dbus API
- translation present

Problems: None