[lxc-devel] [PATCH 2/2] apparmor: restrict signal and ptrace
Serge Hallyn
serge.hallyn at ubuntu.com
Thu Sep 25 15:40:08 UTC 2014
Quoting Stéphane Graber (stgraber at ubuntu.com):
> 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
Wrong. That socket will be mediated using file permss. That's why
cgmanager stlil works with this patch.
> 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
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel
More information about the lxc-devel
mailing list