summary refs log tree commit diff
path: root/seccomp
diff options
context:
space:
mode:
authorSonny Rao <sonnyrao@chromium.org>2018-04-05 16:25:34 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-04-06 14:44:10 -0700
commit7951f16b87eb785248ca57ad24c15c96baf1fb23 (patch)
tree0318951e3666c153de58e7c5a3c8cd3fc699843a /seccomp
parent129bc9c2c82bb5bc10e0e544d8edd0881c0d5096 (diff)
downloadcrosvm-7951f16b87eb785248ca57ad24c15c96baf1fb23.tar
crosvm-7951f16b87eb785248ca57ad24c15c96baf1fb23.tar.gz
crosvm-7951f16b87eb785248ca57ad24c15c96baf1fb23.tar.bz2
crosvm-7951f16b87eb785248ca57ad24c15c96baf1fb23.tar.lz
crosvm-7951f16b87eb785248ca57ad24c15c96baf1fb23.tar.xz
crosvm-7951f16b87eb785248ca57ad24c15c96baf1fb23.tar.zst
crosvm-7951f16b87eb785248ca57ad24c15c96baf1fb23.zip
crosvm: aarch64: add seccomp policy for wl_wayland
Add a seccomp policy for virtio wayland devices on aarch64.

BUG=chromium:797868
TEST=./build_test passes on all architectures
TEST=crosvm runs on kevin built with USE="kvm_host" with a
  wayland socket passed in

Change-Id: I89e9904b48598d78be0721ba8b3242d1b43f7aa3
Reviewed-on: https://chromium-review.googlesource.com/999169
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'seccomp')
-rw-r--r--seccomp/aarch64/wl_device.policy46
1 files changed, 46 insertions, 0 deletions
diff --git a/seccomp/aarch64/wl_device.policy b/seccomp/aarch64/wl_device.policy
new file mode 100644
index 0000000..f7af076
--- /dev/null
+++ b/seccomp/aarch64/wl_device.policy
@@ -0,0 +1,46 @@
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+close: 1
+dup: 1
+dup2: 1
+getpid: 1
+exit_group: 1
+futex: 1
+# Disallow mmap with PROT_EXEC set.  The syntax here doesn't allow bit
+# negation, thus the manually negated mask constant.
+mmap2: arg2 in 0xfffffffb
+mprotect: arg2 in 0xfffffffb
+# Allow MADV_DONTDUMP only.
+madvise: arg2 == 0x00000010
+munmap: 1
+poll: 1
+ppoll: 1
+read: 1
+recv: 1
+sched_getaffinity: 1
+set_robust_list: 1
+sigaltstack: 1
+# Disallow clone's other than new threads.
+# arg0 is flags. Because kernel.
+clone: arg0 & 0x00010000
+write: 1
+eventfd2: 1
+# Used to connect to wayland. arg0 == AF_UNIX && arg1 == SOCK_STREAM|SOCK_CLOEXEC
+socket: arg0 == 1 && arg1 == 0x80001 && arg2 == 0
+# arg1 == FIONBIO
+ioctl: arg1 == 0x5421
+connect: arg2 == 13
+# Used to communicate with wayland
+recvmsg: 1
+sendmsg: 1
+# Used for sharing memory with wayland. arg1 == MFD_CLOEXEC|MFD_ALLOW_SEALING
+memfd_create: arg1 == 3
+# Used to set of size new memfd
+ftruncate: 1
+# Used to determine shm size after recvmsg with fd
+_llseek: 1
+# Allow PR_SET_NAME only.
+prctl: arg0 == 15
+restart_syscall: 1