All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Mickaël Salaün" <mic@digikod.net>
To: Andy Lutomirski <luto@amacapital.net>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Alexei Starovoitov <ast@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Casey Schaufler <casey@schaufler-ca.com>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Daniel Mack <daniel@zonque.org>,
	David Drysdale <drysdale@google.com>,
	"David S . Miller" <davem@davemloft.net>,
	Elena Reshetova <elena.reshetova@intel.com>,
	James Morris <james.l.morris@oracle.com>,
	Kees Cook <keescook@chromium.org>, Paul Moore <pmoore@redhat.com>,
	Sargun Dhillon <sargun@sargun.me>,
	"Serge E . Hallyn" <serge@hallyn.com>,
	Will Drewry <wad@chromium.org>,
	Kernel Hardening <kernel-hardening@lists.openwall.com>,
	Linux API <linux-api@vger.kernel.org>,
	LSM List <linux-security-module@vger.kernel.org>,
	Network Development <netdev@vger.kernel.org>
Subject: Re: [RFC v2 00/10] Landlock LSM: Unprivileged sandboxing
Date: Thu, 25 Aug 2016 15:57:29 +0200	[thread overview]
Message-ID: <57BEF949.6090808@digikod.net> (raw)
In-Reply-To: <CALCETrW98g_x0US92+Qq8gkN1N+y21rjSXcGBR7nRd1hWU7AgQ@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 1810 bytes --]


On 25/08/2016 13:05, Andy Lutomirski wrote:
> On Thu, Aug 25, 2016 at 3:32 AM, Mickaël Salaün <mic@digikod.net> wrote:
>> Hi,
>>
>> This series is a proof of concept to fill some missing part of seccomp as the
>> ability to check syscall argument pointers or creating more dynamic security
>> policies. The goal of this new stackable Linux Security Module (LSM) called
>> Landlock is to allow any process, including unprivileged ones, to create
>> powerful security sandboxes comparable to the Seatbelt/XNU Sandbox or the
>> OpenBSD Pledge. This kind of sandbox help to mitigate the security impact of
>> bugs or unexpected/malicious behaviors in userland applications.
>>
> 
> Maybe I'm missing an obvious description, but: do you have a
> description of the eBPF API to landlock?  What function do you
> provide, when is it called, what functions can it call, what does the
> fancy new arraymap do, etc?
> 
> --Andy
> 

The eBPF context is described in "[RFC v2 06/10] landlock: Add LSM hooks".

The provided eBPF functions are described in "[RFC v2 08/10] landlock:
Handle file system comparisons"
(bpf_landlock_cmp_fs_prop_with_struct_file and
bpf_landlock_cmp_fs_beneath_with_struct_file) and "[RFC v2 09/10]
landlock: Handle cgroups" (bpf_landlock_cmp_cgroup_beneath). The
function descriptions are summarized in include/uapi/linux/bpf.h .

This functions can be called by an eBPF program of type
BPF_PROG_TYPE_LANDLOCK_FILE_OPEN, BPF_PROG_TYPE_LANDLOCK_FILE_PERMISSION
and BPF_PROG_TYPE_LANDLOCK_MMAP_FILE as described in "[RFC v2 06/10]
landlock: Add LSM hooks".

I tried to split the commits as much as possible to ease the review. The
"[RFC v2 10/10] samples/landlock: Add sandbox example" may help to see
the whole picture.

Hope this helps,
 Mickaël


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 455 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: "Mickaël Salaün" <mic@digikod.net>
To: Andy Lutomirski <luto@amacapital.net>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Alexei Starovoitov <ast@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Casey Schaufler <casey@schaufler-ca.com>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Daniel Mack <daniel@zonque.org>,
	David Drysdale <drysdale@google.com>,
	"David S . Miller" <davem@davemloft.net>,
	Elena Reshetova <elena.reshetova@intel.com>,
	James Morris <james.l.morris@oracle.com>,
	Kees Cook <keescook@chromium.org>, Paul Moore <pmoore@redhat.com>,
	Sargun Dhillon <sargun@sargun.me>,
	"Serge E . Hallyn" <serge@hallyn.com>,
	Will Drewry <wad@chromium.org>,
	Kernel Hardening <kernel-hardening@lists.openwall.com>,
	Linux API <linux-api@vger.kernel.org>,
	LSM List <linux-security-module@vger.kernel.org>,
	Network Development <netdev@vger.kernel.org>
Subject: [kernel-hardening] Re: [RFC v2 00/10] Landlock LSM: Unprivileged sandboxing
Date: Thu, 25 Aug 2016 15:57:29 +0200	[thread overview]
Message-ID: <57BEF949.6090808@digikod.net> (raw)
In-Reply-To: <CALCETrW98g_x0US92+Qq8gkN1N+y21rjSXcGBR7nRd1hWU7AgQ@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 1810 bytes --]


On 25/08/2016 13:05, Andy Lutomirski wrote:
> On Thu, Aug 25, 2016 at 3:32 AM, Mickaël Salaün <mic@digikod.net> wrote:
>> Hi,
>>
>> This series is a proof of concept to fill some missing part of seccomp as the
>> ability to check syscall argument pointers or creating more dynamic security
>> policies. The goal of this new stackable Linux Security Module (LSM) called
>> Landlock is to allow any process, including unprivileged ones, to create
>> powerful security sandboxes comparable to the Seatbelt/XNU Sandbox or the
>> OpenBSD Pledge. This kind of sandbox help to mitigate the security impact of
>> bugs or unexpected/malicious behaviors in userland applications.
>>
> 
> Maybe I'm missing an obvious description, but: do you have a
> description of the eBPF API to landlock?  What function do you
> provide, when is it called, what functions can it call, what does the
> fancy new arraymap do, etc?
> 
> --Andy
> 

The eBPF context is described in "[RFC v2 06/10] landlock: Add LSM hooks".

The provided eBPF functions are described in "[RFC v2 08/10] landlock:
Handle file system comparisons"
(bpf_landlock_cmp_fs_prop_with_struct_file and
bpf_landlock_cmp_fs_beneath_with_struct_file) and "[RFC v2 09/10]
landlock: Handle cgroups" (bpf_landlock_cmp_cgroup_beneath). The
function descriptions are summarized in include/uapi/linux/bpf.h .

This functions can be called by an eBPF program of type
BPF_PROG_TYPE_LANDLOCK_FILE_OPEN, BPF_PROG_TYPE_LANDLOCK_FILE_PERMISSION
and BPF_PROG_TYPE_LANDLOCK_MMAP_FILE as described in "[RFC v2 06/10]
landlock: Add LSM hooks".

I tried to split the commits as much as possible to ease the review. The
"[RFC v2 10/10] samples/landlock: Add sandbox example" may help to see
the whole picture.

Hope this helps,
 Mickaël


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 455 bytes --]

  reply	other threads:[~2016-08-25 13:58 UTC|newest]

Thread overview: 180+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-25 10:32 [RFC v2 00/10] Landlock LSM: Unprivileged sandboxing Mickaël Salaün
2016-08-25 10:32 ` [kernel-hardening] " Mickaël Salaün
2016-08-25 10:32 ` [RFC v2 01/10] landlock: Add Kconfig Mickaël Salaün
2016-08-25 10:32   ` [kernel-hardening] " Mickaël Salaün
2016-08-25 10:32 ` [RFC v2 02/10] bpf: Move u64_to_ptr() to BPF headers and inline it Mickaël Salaün
2016-08-25 10:32   ` [kernel-hardening] " Mickaël Salaün
2016-08-25 10:32 ` [RFC v2 03/10] bpf,landlock: Add a new arraymap type to deal with (Landlock) handles Mickaël Salaün
2016-08-25 10:32   ` [kernel-hardening] " Mickaël Salaün
2016-08-25 10:32 ` [RFC v2 04/10] seccomp: Split put_seccomp_filter() with put_seccomp() Mickaël Salaün
2016-08-25 10:32   ` [kernel-hardening] " Mickaël Salaün
2016-08-25 10:32 ` [RFC v2 05/10] seccomp: Handle Landlock Mickaël Salaün
2016-08-25 10:32   ` [kernel-hardening] " Mickaël Salaün
2016-08-25 10:32   ` Mickaël Salaün
2016-08-25 10:32 ` [RFC v2 06/10] landlock: Add LSM hooks Mickaël Salaün
2016-08-25 10:32   ` [kernel-hardening] " Mickaël Salaün
2016-08-30 18:56   ` Andy Lutomirski
2016-08-30 18:56     ` [kernel-hardening] " Andy Lutomirski
2016-08-30 18:56     ` Andy Lutomirski
2016-08-30 18:56     ` Andy Lutomirski
2016-08-30 20:10     ` Mickaël Salaün
2016-08-30 20:10       ` [kernel-hardening] " Mickaël Salaün
2016-08-30 20:10       ` Mickaël Salaün
2016-08-30 20:10       ` Mickaël Salaün
2016-08-30 20:18       ` Andy Lutomirski
2016-08-30 20:18         ` [kernel-hardening] " Andy Lutomirski
2016-08-30 20:18         ` Andy Lutomirski
2016-08-30 20:18         ` Andy Lutomirski
2016-08-30 20:27         ` Mickaël Salaün
2016-08-30 20:27           ` [kernel-hardening] " Mickaël Salaün
2016-08-30 20:27           ` Mickaël Salaün
2016-08-30 20:27           ` Mickaël Salaün
2016-08-25 10:32 ` [RFC v2 07/10] landlock: Add errno check Mickaël Salaün
2016-08-25 10:32   ` [kernel-hardening] " Mickaël Salaün
2016-08-25 11:13   ` Andy Lutomirski
2016-08-25 11:13     ` [kernel-hardening] " Andy Lutomirski
2016-08-25 11:13     ` Andy Lutomirski
2016-08-25 10:32 ` [RFC v2 08/10] landlock: Handle file system comparisons Mickaël Salaün
2016-08-25 10:32   ` [kernel-hardening] " Mickaël Salaün
2016-08-25 11:12   ` Andy Lutomirski
2016-08-25 11:12     ` [kernel-hardening] " Andy Lutomirski
2016-08-25 11:12     ` Andy Lutomirski
2016-08-25 14:10     ` Mickaël Salaün
2016-08-25 14:10       ` [kernel-hardening] " Mickaël Salaün
2016-08-26 14:57       ` Andy Lutomirski
2016-08-26 14:57         ` [kernel-hardening] " Andy Lutomirski
2016-08-27 13:45         ` Mickaël Salaün
2016-08-27 13:45           ` [kernel-hardening] " Mickaël Salaün
2016-08-27 13:45           ` Mickaël Salaün
2016-08-27 13:45           ` Mickaël Salaün
2016-08-25 10:32 ` [RFC v2 09/10] landlock: Handle cgroups Mickaël Salaün
2016-08-25 10:32   ` [kernel-hardening] " Mickaël Salaün
2016-08-25 11:09   ` Andy Lutomirski
2016-08-25 11:09     ` [kernel-hardening] " Andy Lutomirski
2016-08-25 11:09     ` Andy Lutomirski
2016-08-25 14:44     ` Mickaël Salaün
2016-08-25 14:44       ` [kernel-hardening] " Mickaël Salaün
2016-08-26 12:55       ` Tejun Heo
2016-08-26 12:55         ` [kernel-hardening] " Tejun Heo
2016-08-26 12:55         ` Tejun Heo
2016-08-26 12:55         ` Tejun Heo
2016-08-26 14:20       ` Andy Lutomirski
2016-08-26 14:20         ` [kernel-hardening] " Andy Lutomirski
2016-08-26 15:50         ` Tejun Heo
2016-08-26 15:50           ` [kernel-hardening] " Tejun Heo
2016-08-26  2:14   ` Alexei Starovoitov
2016-08-26  2:14     ` [kernel-hardening] " Alexei Starovoitov
2016-08-26 15:10     ` Mickaël Salaün
2016-08-26 15:10       ` [kernel-hardening] " Mickaël Salaün
2016-08-26 15:10       ` Mickaël Salaün
2016-08-26 15:10       ` Mickaël Salaün
2016-08-26 23:05       ` Alexei Starovoitov
2016-08-26 23:05         ` [kernel-hardening] " Alexei Starovoitov
2016-08-27  7:30         ` Andy Lutomirski
2016-08-27  7:30           ` [kernel-hardening] " Andy Lutomirski
2016-08-27  7:30           ` Andy Lutomirski
2016-08-27 18:11           ` Alexei Starovoitov
2016-08-27 18:11             ` [kernel-hardening] " Alexei Starovoitov
2016-08-28  8:14             ` Andy Lutomirski
2016-08-28  8:14               ` [kernel-hardening] " Andy Lutomirski
2016-08-28  8:14               ` Andy Lutomirski
2016-08-27 14:06         ` [RFC v2 09/10] landlock: Handle cgroups (performance) Mickaël Salaün
2016-08-27 14:06           ` [kernel-hardening] " Mickaël Salaün
2016-08-27 18:06           ` Alexei Starovoitov
2016-08-27 18:06             ` [kernel-hardening] " Alexei Starovoitov
2016-08-27 18:06             ` Alexei Starovoitov
2016-08-27 19:35             ` Mickaël Salaün
2016-08-27 19:35               ` [kernel-hardening] " Mickaël Salaün
2016-08-27 20:43               ` Alexei Starovoitov
2016-08-27 20:43                 ` [kernel-hardening] " Alexei Starovoitov
2016-08-27 20:43                 ` Alexei Starovoitov
2016-08-27 21:14                 ` Mickaël Salaün
2016-08-27 21:14                   ` [kernel-hardening] " Mickaël Salaün
2016-08-28  8:13                   ` Andy Lutomirski
2016-08-28  8:13                     ` [kernel-hardening] " Andy Lutomirski
2016-08-28  8:13                     ` Andy Lutomirski
2016-08-28  9:42                     ` Mickaël Salaün
2016-08-28  9:42                       ` [kernel-hardening] " Mickaël Salaün
2016-08-28  9:42                       ` Mickaël Salaün
2016-08-30 18:55                       ` Andy Lutomirski
2016-08-30 18:55                         ` [kernel-hardening] " Andy Lutomirski
2016-08-30 18:55                         ` Andy Lutomirski
2016-08-30 20:20                         ` Mickaël Salaün
2016-08-30 20:20                           ` [kernel-hardening] " Mickaël Salaün
2016-08-30 20:20                           ` Mickaël Salaün
2016-08-30 20:23                           ` Andy Lutomirski
2016-08-30 20:23                             ` [kernel-hardening] " Andy Lutomirski
2016-08-30 20:23                             ` Andy Lutomirski
2016-08-30 20:33                             ` Mickaël Salaün
2016-08-30 20:33                               ` [kernel-hardening] " Mickaël Salaün
2016-08-30 20:33                               ` Mickaël Salaün
2016-08-30 20:55                               ` Alexei Starovoitov
2016-08-30 20:55                                 ` [kernel-hardening] " Alexei Starovoitov
2016-08-30 20:55                                 ` Alexei Starovoitov
2016-08-30 21:45                                 ` Andy Lutomirski
2016-08-30 21:45                                   ` [kernel-hardening] " Andy Lutomirski
2016-08-30 21:45                                   ` Andy Lutomirski
2016-08-31  1:36                                   ` Alexei Starovoitov
2016-08-31  1:36                                     ` [kernel-hardening] " Alexei Starovoitov
2016-08-31  3:29                                     ` Andy Lutomirski
2016-08-31  3:29                                       ` Andy Lutomirski
2016-08-31  3:29                                       ` [kernel-hardening] " Andy Lutomirski
2016-08-31  3:29                                       ` Andy Lutomirski
2016-08-27 14:19         ` [RFC v2 09/10] landlock: Handle cgroups (netfilter match) Mickaël Salaün
2016-08-27 14:19           ` [kernel-hardening] " Mickaël Salaün
2016-08-27 18:32           ` Alexei Starovoitov
2016-08-27 18:32             ` [kernel-hardening] " Alexei Starovoitov
2016-08-27 18:32             ` Alexei Starovoitov
2016-08-27 14:34         ` [RFC v2 09/10] landlock: Handle cgroups (program types) Mickaël Salaün
2016-08-27 14:34           ` [kernel-hardening] " Mickaël Salaün
2016-08-27 18:19           ` Alexei Starovoitov
2016-08-27 18:19             ` [kernel-hardening] " Alexei Starovoitov
2016-08-27 19:55             ` Mickaël Salaün
2016-08-27 19:55               ` [kernel-hardening] " Mickaël Salaün
2016-08-27 20:56               ` Alexei Starovoitov
2016-08-27 20:56                 ` [kernel-hardening] " Alexei Starovoitov
2016-08-27 20:56                 ` Alexei Starovoitov
2016-08-27 21:18                 ` Mickaël Salaün
2016-08-27 21:18                   ` [kernel-hardening] " Mickaël Salaün
2016-08-25 10:32 ` [RFC v2 10/10] samples/landlock: Add sandbox example Mickaël Salaün
2016-08-25 10:32   ` [kernel-hardening] " Mickaël Salaün
2016-08-25 11:05 ` [RFC v2 00/10] Landlock LSM: Unprivileged sandboxing Andy Lutomirski
2016-08-25 11:05   ` [kernel-hardening] " Andy Lutomirski
2016-08-25 11:05   ` Andy Lutomirski
2016-08-25 13:57   ` Mickaël Salaün [this message]
2016-08-25 13:57     ` [kernel-hardening] " Mickaël Salaün
2016-08-27  7:40 ` Andy Lutomirski
2016-08-27  7:40   ` [kernel-hardening] " Andy Lutomirski
2016-08-27  7:40   ` Andy Lutomirski
2016-08-27 15:10   ` Mickaël Salaün
2016-08-27 15:10     ` [kernel-hardening] " Mickaël Salaün
2016-08-27 15:21     ` [RFC v2 00/10] Landlock LSM: Unprivileged sandboxing (cgroup delegation) Mickaël Salaün
2016-08-27 15:21       ` [kernel-hardening] " Mickaël Salaün
2016-08-27 15:21       ` Mickaël Salaün
2016-08-27 15:21       ` Mickaël Salaün
2016-08-30 16:06 ` [RFC v2 00/10] Landlock LSM: Unprivileged sandboxing Andy Lutomirski
2016-08-30 16:06   ` [kernel-hardening] " Andy Lutomirski
2016-08-30 16:06   ` Andy Lutomirski
2016-08-30 16:06   ` Andy Lutomirski
2016-08-30 19:51   ` Mickaël Salaün
2016-08-30 19:51     ` [kernel-hardening] " Mickaël Salaün
2016-08-30 19:51     ` Mickaël Salaün
2016-08-30 19:55     ` Andy Lutomirski
2016-08-30 19:55       ` [kernel-hardening] " Andy Lutomirski
2016-08-30 19:55       ` Andy Lutomirski
2016-08-30 19:55       ` Andy Lutomirski
2016-09-15  9:19 ` Pavel Machek
2016-09-15  9:19   ` [kernel-hardening] " Pavel Machek
2016-09-20 17:08   ` Mickaël Salaün
2016-09-20 17:08     ` [kernel-hardening] " Mickaël Salaün
2016-09-24  7:45     ` Pavel Machek
2016-09-24  7:45       ` [kernel-hardening] " Pavel Machek
2016-09-24  7:45       ` Pavel Machek
2016-10-03 22:56     ` Kees Cook
2016-10-03 22:56       ` [kernel-hardening] " Kees Cook
2016-10-03 22:56       ` Kees Cook
2016-10-03 22:56       ` Kees Cook
2016-10-05 20:30       ` Mickaël Salaün
2016-10-05 20:30         ` [kernel-hardening] " Mickaël Salaün
2016-10-05 20:30         ` Mickaël Salaün
2016-10-05 20:30         ` Mickaël Salaün

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=57BEF949.6090808@digikod.net \
    --to=mic@digikod.net \
    --cc=arnd@arndb.de \
    --cc=ast@kernel.org \
    --cc=casey@schaufler-ca.com \
    --cc=daniel@iogearbox.net \
    --cc=daniel@zonque.org \
    --cc=davem@davemloft.net \
    --cc=drysdale@google.com \
    --cc=elena.reshetova@intel.com \
    --cc=james.l.morris@oracle.com \
    --cc=keescook@chromium.org \
    --cc=kernel-hardening@lists.openwall.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=netdev@vger.kernel.org \
    --cc=pmoore@redhat.com \
    --cc=sargun@sargun.me \
    --cc=serge@hallyn.com \
    --cc=wad@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.