The sanitized_helper profile is designed to be as generic as possible to
make it work with most binaries when a more restrictive profile is
unavailable.

As you pointed out, this approach raises several concerns:

 - The security level of this profile is only slightly above unconfined, which 
can undermine the security level of profiles using them.
 - This profile can give a false sense of security.
 - In most cases, a more restrictive profile could be applied one without 
breakage.

To address these concerns, we can either :
 (1) Create variants of this profile tailored for different scenarios.
 (2) Stack this profile to a more restrictive one when possible.
 (3) Retain the profile as-is, using it only as a last resort.

IMO, the first option is the most practical short-term solution, as it
could reduce risks with only a limited effort.

For instance, slightly more restricted variants could include:

 - Slightly more restrictive files rules (include 
<abstractions/private-files-strict>)
 - Deny writes on known executable locations ( e.g. 
/{,usr/,usr/local/}{sbin,bin}/*)
 - Denying network access when not needed by not using “network inet,”

Obviously, these rules cannot work for all helpers, thus using these
variants would require testing in order to avoid breakages, but I guess
that could be a first step.

Additionally, when a profile exists specifically for a binary (evince,
firefox, …) , we should use it directly, and not rely on this generic
profile (or stack both)?

The long term solution remains to create tight profiles for all known
binaries, but we are definitely not there yet.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apparmor in Ubuntu.
https://bugs.launchpad.net/bugs/2102694

Title:
  dangerous "sanitized_helper" contains /** rwkl,

Status in apparmor package in Ubuntu:
  New

Bug description:
  abstractions/ubuntu-helpers's sanitized_helper which was a Pandora box
  from from its inception.

  It contains:

  ```
  network inet, # line 42
  /** rwkl, # line 88
  /usr/{,local/}lib*/{,**/}* Pixr, # line 58
  ```

  
  what basically means : "stop using apparmor" and access any file on my 
filesystem and more than enough to cause *grave* damages. (write-mode to 
everything)

  The first comment in the profile says: "lenient profile when 'Ux' is desired" 
and also says:
  > LP: #851986 until AppArmor utilizes proper environment filtering

  But ... LP: #851986 is "Won't fix" ... since 2012.

  Last but not least, more and more programs were made to transition to this 
almost-Ux mode.
  ~150 in a default modern installation, namely:

  akregator
  alpine
  amarok
  anjal
  apport-bug
  apturl
  ark
  arora
  audacious2
  audacity
  azureus
  balsa
  bangarang
  banshee
  banshee-1
  bitstormlite
  btmaketorrentgui
  chromium{,-browser}
  citadel
  clamscan
  claws-mail
  cone
  debconf-communicate
  decibel
  deluge{,-gtk,-console}
  digikam
  dillo
  dolphin
  Dooble
  dragon
  dvipdfm
  dvipdfmx
  elinks
  elmo
  emacsclient.emacs2[2-9]
  emacsclient.emacs-snapshot
  emacs-snapshot-gtk
  eog
  epiphany
  epiphany-browser
  epiphany-webkit
  esperanza
  evince
  evolution
  exaile
  file-roller
  firefox
  freevo
  geary
  gedit
  gimp*
  gmerlin
  gmplayer
  gnome-appearance-properties
  gnome-btdownload
  gnome-gmail
  gnome-mplayer
  gwenview
  gxmms
  gxmms2
  hornsey
  iceweasel
  jlgui
  juk
  kaffeine
  kate
  kazehakase
  kde4-config
  kde-open
  kget
  kmail
  kmplayer
  konqueror
  krusader
  ktorrent
  leafpad
  libreoffice
  liferea-add-feed
  links
  listen
  localc
  lodraw
  loimpress
  lowriter
  lpr
  lpstat
  lynx.cur
  mailody
  midori
  mktexpk
  mktextfm
  modest
  mousepad
  mplayer
  muine
  mutt
  nautilus
  nautilus-sendto
  netrik
  netsurf
  okular
  oocalc
  oodraw
  ooffice
  ooimpress
  oowriter
  opera
  pcmanfm
  plasma-browser-integration-host
  potamus
  promoe
  qbittorrent
  qmmp
  quodlibet
  rhythmbox
  scim
  scim-bridge
  seamonkey
  shotwell
  smplayer
  strange-quark
  swfdec-player
  sylpheed
  thunar
  thunderbird
  timidity
  tkrat
  totem
  totem-gstreamer
  totem-xine
  transmission{,-gtk,-qt,-cli}
  {t,T}hunar
  vim.gnome
  vlc
  w3m
  xarchiver
  xdg-open
  xfmedia
  xmms
  yelp
  /opt/brave.com/brave{,-beta,-dev,-nightly}/brave-browser{,-beta,-dev,-nightly}
  /opt/google/chrome{,-beta,-unstable}/google-chrome{,-beta,-unstable}
  /usr/lib{,64}/chromium{,-browser}/chromium{,-browser}
  /usr/lib{,64}/firefox*/firefox*
  /usr/lib/fennec-*/fennec
  /usr/lib/GNUstep/Applications/GNUMail.app/GNUMail
  /usr/lib/icecat-*/icecat
  /usr/lib/iceweasel/iceweasel
  /usr/lib/libreoffice/program/soffice
  /usr/lib/mozilla/kmozillahelper
  /usr/lib/@{multiarch}/libproxy/*/pxgsettings
  /usr/lib/openoffice/program/soffice
  /usr/lib/thunderbird*/thunderbird{,.sh,-bin}
  /usr/share/minirok/minirok.py
  /usr/share/software-center/software-center

  
  Pinch me if you can't find a way to do hidden & automated arbitrary file 
access and network exfiltration using one of these (Actually more than one good 
candidate for such an attack)

  As commented in #1042771, some of these do have their own profile
  (evince/LibreOffice) but are set to run uncontrolled anyway.

  
  To summarize: Tons of insecure programs are knowingly granted uncontrolled 
permissions (full fs access + full network access + executing arbitrary 
programs in /usr/{,local/}lib*/{,**/}*

  No actual reason is given (the same program, for being called a
  "helper", becomes trusted and Ux-friendly) and no resolution is even
  being considered (2012 "Won't fix") and it's been so since at least
  one decade.

  
  The very minimum fix is that to comment these by default:
  network inet, # line 42
  /usr/{,local/}lib*/{,**/}* Pixr, # line 58

  and this
  /** rwkl, # line 88

  should be adapted to something a bit more reasonable like
  @{XDG_CACHE_HOME} & @{XDG_DOWNLOAD_DIR} & /tmp

  
  (And LP #1042771 should fine a resolution so that less programs depends on 
`sanitized_helper` (even less LoC monsters like LibreOffice or firefox)

  
  Finally, note that unless I'm mistaken, `abstractions/ubuntu-helpers` stating
  `usr/bin/firefox Cxr -> sanitized_helper` (to take one example), means that 
launching firefox from totem or any media-players makes it run unconfined, 
meanwhile it is when ran directly from the user. This sounds absurd and a 
serious hole in the apparmor security model.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2102694/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to