[lxc-devel] [PATCH 2/2] apparmor: restrict signal and ptrace

Stéphane Graber stgraber at ubuntu.com
Thu Sep 25 14:50:16 UTC 2014


On Thu, Sep 25, 2014 at 02:47:08PM +0000, Serge Hallyn wrote:
> restrict signal and ptrace for processes running under the container profile.
> Rules based on AppArmor base abstraction. Add unix rules for processes running
> under the container profile.
> 
> Author: Jamie Strandboge <jamie at canonical.com>
> Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
> ---
>  config/apparmor/abstractions/container-base.in | 36 +++++++++++++++++++++++---
>  1 file changed, 32 insertions(+), 4 deletions(-)
> 
> diff --git a/config/apparmor/abstractions/container-base.in b/config/apparmor/abstractions/container-base.in
> index 096d35b..0aee5ee 100644
> --- a/config/apparmor/abstractions/container-base.in
> +++ b/config/apparmor/abstractions/container-base.in
> @@ -3,11 +3,39 @@
>    file,
>    umount,
>  
> -  # The following 3 entries are only supported by recent apparmor versions.
> -  # Comment them if the apparmor parser doesn't recognize them.
> +  # dbus, signal, ptrace and unix are only supported by recent apparmor
> +  # versions. Comment them if the apparmor parser doesn't recognize them.
> +
> +  # This also needs additional rules to reach outside of the container via DBus, so
> +  # just let all of DBus within the container.
>    dbus,
> -  signal,
> -  ptrace,
> +
> +  # Allow unconfined to signal us
> +  signal (receive) peer=unconfined,
> +  signal (receive) peer=/usr/bin/lxc-start,
> +
> +  # Allow us to send signals to ourselves
> +  signal peer=@{profile_name},
> +
> +  # Allow other processes to read our /proc entries, futexes, perf tracing and
> +  # kcmp for now (they will need 'read' in the first place). Administrators can
> +  # override with:
> +  #   deny ptrace (readby) ...
> +  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 us to ptrace ourselves
> +  ptrace peer=@{profile_name},
> +
> +  # Allow unconfined processes to us via unix sockets
> +  unix (receive) peer=(label=unconfined),
> +
> +  # Allow all unix in the container
> +  unix peer=(label=@{profile_name}),

That suggests we can't then bind-mount a socket into the container and
have the container connect to it because the peer won't be running under
the container's profile.

That'll break things and I can't think of a good reason why we'd want to
block that, so -1.

>  
>    # ignore DENIED message on / remount
>    deny mount options=(ro, remount) -> /,
> -- 
> 2.1.0
> 
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel

-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20140925/68e356e6/attachment.sig>


More information about the lxc-devel mailing list