[FFe] apparmor signal and ptrace mediation
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
apparmor (Ubuntu) |
Fix Released
|
High
|
Tyler Hicks | ||
apparmor-easyprof-ubuntu (Ubuntu) |
Fix Released
|
Medium
|
Jamie Strandboge | ||
libvirt (Ubuntu) |
Fix Released
|
High
|
Jamie Strandboge | ||
lightdm (Ubuntu) |
Fix Released
|
High
|
Tyler Hicks | ||
linux (Ubuntu) |
Fix Released
|
High
|
John Johansen | ||
lxc (Ubuntu) |
Fix Released
|
High
|
Jamie Strandboge |
Bug Description
Background: kernel and apparmor userspace updates to support signal and ptrace mediation. These packages are listed in one bug because they are related, but the FFes may be granted and the uploads may happen at different times.
= linux =
Summary:
This feature freeze exception is requested for signal and ptrace mediation via apparmor in the kernel. When used with a compatible apparmor userspace, signals and ptrace rules are supported. When used without a compatible apparmor userspace (eg, on a precise system with a trusty backport kernel), signal and ptrace mediation is not enforced (ie, you can use this kernel with an old userspace without any issues).
The fine grained mediation of signals and ptraces also incorporates improved
versioning support that allows this kernel to better support older and newer
userspaces. This allows for this version of the kernel to work as a backport
kernel unmodified (currently a patch and config are used to provide backport
kernels).
The kernel patch is available at git://kernel.
in the trusty-alpha6 branch apparmor-
Testing:
* 12.04 system with backported kernel: DONE
* test-apparmor.py: PASS (runs extensive tests (upstream and distro))
* exploratory manual testing: PASS (networking, aa-enforce with firefox, firefox works, apparmor blocks access, etc)
* aa-status: PASS
* lxc: PASS (containers can be created, started, shutdown)
* libvirt: PASS (VMs started via openstack, and test-libvirt.py from QRT passes all tests)
* 14.04 system (non-Touch) with current apparmor userspace: DONE (relevant parts of https:/
* test-apparmor.py: PASS (runs extensive tests (upstream and distro))
* exploratory manual testing: PASS (networking, aa-enforce with firefox, firefox works, apparmor blocks access, etc)
* aa-status: PASS
* lxc: PASS (containers can be created, started, shutdown)
* libvirt: PASS (QRT/script/
* click-apparmor QRT touch image tests: PASS
* apparmor-
* 14.04 system (non-Touch) with updated apparmor userspace capable of supporting signal and ptrace mediation: DONE (relevant parts of https:/
* test-apparmor.py: PASS (runs extensive tests (upstream and distro))
* exploratory manual testing: PASS (networking, aa-enforce with firefox, firefox works, apparmor blocks access, etc)
* aa-status: PASS
* lxc: PASS (containers can be created, started, shutdown)
* libvirt: PASS (QRT/script/
* click-apparmor QRT touch image tests: PASS
* apparmor-
Justification:
This feature is required to support comprehensive application confinement on Ubuntu Touch. This feature adds a significant security benefit to libvirt's qemu guest isolation which is fundamental to Ubuntu on Server/Cloud. This feature also adds a welcome improvement to administrators wishing to further protect their systems.
= apparmor userspace =
Summary:
This feature freeze exception is requested for signal and ptrace mediation for apparmor userspace. When used with a compatible kernel, signals and ptrace rules are supported. When used without a compatible kernel (eg, on Ubuntu Touch for a few weeks or with upstream kernels), signal and ptrace rules are skipped (ie, you can use this userspace with other kernels without issue).
Testing:
* 14.04 system with current kernel (Touch, kernel doesn't have signal and ptrace mediation yet):
* https:/
* 14.04 system with previous kernel lacking signal and ptrace mediation (non-Touch):
* https:/
* test-apparmor.py: PASS
* lightdm guest session: PASS (login, start browser, logout)
* 14.04 system kernel capable of supporting signal and ptrace mediation (non-Touch):
* https:/
* Verify everything in https:/
* lightdm guest session: PASS (login, start browser, logout)
Justification:
This feature is required to support comprehensive application confinement on Ubuntu Touch. This feature adds a significant security benefit to libvirt's qemu guest isolation which is fundamental to Ubuntu on Server/Cloud. This feature also adds a welcome improvement to administrators wishing to further protect their systems.
Extra information:
While the apparmor userspace and kernel changes to support signal and ptrace mediation can happen at different times, the apparmor userspace upload must correspond with uploads for packages that ship AppArmor policy that require updates (eg, libvirt, lxc, etc). The packages outlined in https:/
Common rules added to the base abstraction are (ie, these rules will be included in all policy on Ubuntu since the base abstractions is always used in distro policy):
# Allow other processes to read our /proc entries, futexes, perf tracing and
# kcmp for now
ptrace (readby),
# Allow other processes to trace us by default (they will need 'trace' in
# the first place). Administrators can override with:
# deny ptrace (tracedby) ...
ptrace (tracedby),
# Allow unconfined processes to send us signals by default
signal (receive) peer=unconfined,
# Allow us to signal ourselves
signal peer=@{
# Checking for PID existence is quite common so add it by default for now
signal (receive, send) set=("exists"),
Related branches
- PS Jenkins bot: Approve (continuous-integration)
- Robert Ancell: Needs Fixing
-
Diff: 53 lines (+28/-0)2 files modifieddata/apparmor/abstractions/lightdm (+8/-0)
debian/changelog (+20/-0)
description: | updated |
description: | updated |
description: | updated |
tags: | added: bot-stop-nagging |
description: | updated |
Changed in linux (Ubuntu): | |
status: | Incomplete → New |
description: | updated |
Changed in linux (Ubuntu): | |
status: | New → Incomplete |
Changed in linux (Ubuntu): | |
status: | Incomplete → New |
Changed in linux (Ubuntu): | |
status: | New → Incomplete |
tags: |
added: kernel-bot-stop-nagging removed: bot-stop-nagging |
Changed in linux (Ubuntu): | |
status: | Incomplete → New |
Changed in linux (Ubuntu): | |
status: | New → Incomplete |
Changed in linux (Ubuntu): | |
status: | Incomplete → Confirmed |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in linux (Ubuntu): | |
status: | Confirmed → Fix Committed |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in apparmor (Ubuntu): | |
status: | In Progress → Fix Committed |
Changed in apparmor-easyprof-ubuntu (Ubuntu): | |
status: | In Progress → Fix Committed |
Changed in libvirt (Ubuntu): | |
status: | In Progress → Fix Committed |
Changed in lightdm (Ubuntu): | |
status: | In Progress → Fix Committed |
Changed in lxc (Ubuntu): | |
status: | In Progress → Fix Committed |
description: | updated |
Changed in apparmor (Ubuntu): | |
status: | Fix Committed → New |
Changed in apparmor-easyprof-ubuntu (Ubuntu): | |
status: | Fix Committed → New |
Changed in libvirt (Ubuntu): | |
status: | Fix Committed → New |
Changed in lightdm (Ubuntu): | |
status: | Fix Committed → New |
Changed in lxc (Ubuntu): | |
status: | Fix Committed → New |
This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:
apport-collect 1298611
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.