|
Message-ID: <20160914212442.GD57174@ast-mbp.thefacebook.com> Date: Wed, 14 Sep 2016 14:24:43 -0700 From: Alexei Starovoitov <alexei.starovoitov@...il.com> To: Mickaël Salaün <mic@...ikod.net> Cc: linux-kernel@...r.kernel.org, Alexei Starovoitov <ast@...nel.org>, Andy Lutomirski <luto@...capital.net>, Arnd Bergmann <arnd@...db.de>, Casey Schaufler <casey@...aufler-ca.com>, Daniel Borkmann <daniel@...earbox.net>, Daniel Mack <daniel@...que.org>, David Drysdale <drysdale@...gle.com>, "David S . Miller" <davem@...emloft.net>, Elena Reshetova <elena.reshetova@...el.com>, "Eric W . Biederman" <ebiederm@...ssion.com>, James Morris <james.l.morris@...cle.com>, Kees Cook <keescook@...omium.org>, Paul Moore <pmoore@...hat.com>, Sargun Dhillon <sargun@...gun.me>, "Serge E . Hallyn" <serge@...lyn.com>, Tejun Heo <tj@...nel.org>, Will Drewry <wad@...omium.org>, kernel-hardening@...ts.openwall.com, linux-api@...r.kernel.org, linux-security-module@...r.kernel.org, netdev@...r.kernel.org, cgroups@...r.kernel.org Subject: Re: [RFC v3 22/22] samples/landlock: Add sandbox example On Wed, Sep 14, 2016 at 09:24:15AM +0200, Mickaël Salaün wrote: > Add a basic sandbox tool to create a process isolated from some part of > the system. This can depend of the current cgroup. > > Example with the current process hierarchy (seccomp): > > $ ls /home > user1 > $ LANDLOCK_ALLOWED='/bin:/lib:/usr:/tmp:/proc/self/fd/0' \ > ./samples/landlock/sandbox /bin/sh -i > Launching a new sandboxed process. > $ ls /home > ls: cannot open directory '/home': Permission denied > > Example with a cgroup: > > $ mkdir /sys/fs/cgroup/sandboxed > $ ls /home > user1 > $ LANDLOCK_CGROUPS='/sys/fs/cgroup/sandboxed' \ > LANDLOCK_ALLOWED='/bin:/lib:/usr:/tmp:/proc/self/fd/0' \ > ./samples/landlock/sandbox > Ready to sandbox with cgroups. > $ ls /home > user1 > $ echo $$ > /sys/fs/cgroup/sandboxed/cgroup.procs > $ ls /home > ls: cannot open directory '/home': Permission denied > > Changes since v2: > * use BPF_PROG_ATTACH for cgroup handling > > Signed-off-by: Mickaël Salaün <mic@...ikod.net> ... > + struct bpf_insn hook_path[] = { > + /* specify an option, if any */ > + BPF_MOV32_IMM(BPF_REG_1, 0), > + /* handles to compare with */ > + BPF_LD_MAP_FD(BPF_REG_2, map_fs), > + BPF_MOV64_IMM(BPF_REG_3, BPF_MAP_ARRAY_OP_OR), > + /* hook argument (struct file) */ > + BPF_LDX_MEM(BPF_DW, BPF_REG_4, BPF_REG_6, offsetof(struct > + landlock_data, args[0])), > + /* checker function */ > + BPF_EMIT_CALL(BPF_FUNC_landlock_cmp_fs_beneath_with_struct_file), the example is sweet! Since only that helper is used, could you skip the other one from the patches (for now) ?
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.