diff --git a/Makefile b/Makefile index ac9570133..6c435b196 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,7 @@ direct-test-short: go test $(TEST_TAGS) -cover -test.short -v $(GO_PACKAGES) direct-build: + chmod 755 hack/seccomp.sh hack/seccomp.sh go build -v $(GO_PACKAGES) diff --git a/hack/seccomp.pl b/hack/seccomp.pl index eed74152a..dc0f6646f 100755 --- a/hack/seccomp.pl +++ b/hack/seccomp.pl @@ -28,6 +28,8 @@ if($pid == 0) { close $out; exit 0; } +print "//"; +system("uname -m"); print "package seccomp\r\n\r\n"; print "var syscallMap = map[string] int {\n"; while(<$in>) { diff --git a/hack/seccomp.sh b/hack/seccomp.sh index 3b35d500f..40fa02c5c 100755 --- a/hack/seccomp.sh +++ b/hack/seccomp.sh @@ -1,3 +1,4 @@ #/bin/bash -cat seccomp/seccomp_main.go | sed '1,5d' > ~/seccomp_main.go + +chmod 755 hack/seccomp.pl hack/seccomp.pl < hack/syscall.sample > seccomp/seccompsyscall.go diff --git a/seccomp/seccompsyscall.go b/seccomp/seccompsyscall.go new file mode 100644 index 000000000..d7674d1a2 --- /dev/null +++ b/seccomp/seccompsyscall.go @@ -0,0 +1,390 @@ +//x86_64 +package seccomp + +var syscallMap = map[string] int { + "access" : 21, + "chdir" : 80, + "chmod" : 90, + "chown" : 92, + "chown32" : -1, + "close" : 3, + "creat" : 85, + "dup" : 32, + "dup2" : 33, + "dup3" : 292, + "epoll_create" : 213, + "epoll_create1" : 291, + "epoll_ctl" : 233, + "epoll_ctl_old" : 214, + "epoll_pwait" : 281, + "epoll_wait" : 232, + "epoll_wait_old" : 215, + "eventfd" : 284, + "eventfd2" : 290, + "faccessat" : 269, + "fadvise64" : 221, + "fadvise64_64" : -1, + "fallocate" : 285, + "fanotify_init" : 300, + "fanotify_mark" : 301, + "ioctl" : 16, + "fchdir" : 81, + "fchmod" : 91, + "fchmodat" : 268, + "fchown" : 93, + "fchown32" : -1, + "fchownat" : 260, + "fcntl" : 72, + "fcntl64" : -1, + "fdatasync" : 75, + "fgetxattr" : 193, + "flistxattr" : 196, + "flock" : 73, + "fremovexattr" : 199, + "fsetxattr" : 190, + "fstat" : 5, + "fstat64" : -1, + "fstatat64" : -1, + "fstatfs" : 138, + "fstatfs64" : -1, + "fsync" : 74, + "ftruncate" : 77, + "ftruncate64" : -1, + "getcwd" : 79, + "getdents" : 78, + "getdents64" : 217, + "getxattr" : 191, + "inotify_add_watch" : 254, + "inotify_init" : 253, + "inotify_init1" : 294, + "inotify_rm_watch" : 255, + "io_cancel" : 210, + "io_destroy" : 207, + "io_getevents" : 208, + "io_setup" : 206, + "io_submit" : 209, + "lchown" : 94, + "lchown32" : -1, + "lgetxattr" : 192, + "link" : 86, + "linkat" : 265, + "listxattr" : 194, + "llistxattr" : 195, + "llseek" : -1, + "_llseek" : -1, + "lremovexattr" : 198, + "lseek" : 8, + "lsetxattr" : 189, + "lstat" : 6, + "lstat64" : -1, + "mkdir" : 83, + "mkdirat" : 258, + "mknod" : 133, + "mknodat" : 259, + "newfstatat" : 262, + "_newselect" : -1, + "oldfstat" : -1, + "oldlstat" : -1, + "oldolduname" : -1, + "oldstat" : -1, + "olduname" : -1, + "oldwait4" : -1, + "open" : 2, + "openat" : 257, + "pipe" : 22, + "pipe2" : 293, + "poll" : 7, + "ppoll" : 271, + "pread64" : 17, + "preadv" : 295, + "futimesat" : 261, + "pselect6" : 270, + "pwrite64" : 18, + "pwritev" : 296, + "read" : 0, + "readahead" : 187, + "readdir" : -1, + "readlink" : 89, + "readlinkat" : 267, + "readv" : 19, + "removexattr" : 197, + "rename" : 82, + "renameat" : 264, + "rmdir" : 84, + "select" : 23, + "sendfile" : 40, + "sendfile64" : -1, + "setxattr" : 188, + "splice" : 275, + "stat" : 4, + "stat64" : -1, + "statfs" : 137, + "statfs64" : -1, + "symlink" : 88, + "symlinkat" : 266, + "sync" : 162, + "sync_file_range" : 277, + "sync_file_range2" : -1, + "syncfs" : 306, + "tee" : 276, + "truncate" : 76, + "truncate64" : -1, + "umask" : 95, + "unlink" : 87, + "unlinkat" : 263, + "ustat" : 136, + "utime" : 132, + "utimensat" : 280, + "utimes" : 235, + "write" : 1, + "writev" : 20, + "accept" : 43, + "accept4" : 288, + "bind" : 49, + "connect" : 42, + "getpeername" : 52, + "getsockname" : 51, + "getsockopt" : 55, + "listen" : 50, + "recv" : -1, + "recvfrom" : 45, + "recvmmsg" : 299, + "recvmsg" : 47, + "send" : -1, + "sendmmsg" : 307, + "sendmsg" : 46, + "sendto" : 44, + "setsockopt" : 54, + "shutdown" : 48, + "socket" : 41, + "socketcall" : -1, + "socketpair" : 53, + "sethostname" : 170, + "pause" : 34, + "rt_sigaction" : 13, + "rt_sigpending" : 127, + "rt_sigprocmask" : 14, + "rt_sigqueueinfo" : 129, + "rt_sigreturn" : 15, + "rt_sigsuspend" : 130, + "rt_sigtimedwait" : 128, + "rt_tgsigqueueinfo" : 297, + "sigaction" : -1, + "sigaltstack" : 131, + "signal" : -1, + "signalfd" : 282, + "signalfd4" : 289, + "sigpending" : -1, + "sigprocmask" : -1, + "sigreturn" : -1, + "sigsuspend" : -1, + "alarm" : 37, + "brk" : 12, + "clock_adjtime" : 305, + "clock_getres" : 229, + "clock_gettime" : 228, + "clock_nanosleep" : 230, + "clock_settime" : 227, + "gettimeofday" : 96, + "nanosleep" : 35, + "nice" : -1, + "sysinfo" : 99, + "syslog" : 103, + "time" : 201, + "timer_create" : 222, + "timer_delete" : 226, + "timerfd_create" : 283, + "timerfd_gettime" : 287, + "timerfd_settime" : 286, + "timer_getoverrun" : 225, + "timer_gettime" : 224, + "timer_settime" : 223, + "times" : 100, + "uname" : 63, + "madvise" : 28, + "mbind" : 237, + "mincore" : 27, + "mlock" : 149, + "mlockall" : 151, + "mmap" : 9, + "mmap2" : -1, + "mprotect" : 10, + "mremap" : 25, + "msync" : 26, + "munlock" : 150, + "munlockall" : 152, + "munmap" : 11, + "remap_file_pages" : 216, + "set_mempolicy" : 238, + "vmsplice" : 278, + "capget" : 125, + "capset" : 126, + "clone" : 56, + "execve" : 59, + "exit" : 60, + "exit_group" : 231, + "fork" : 57, + "getcpu" : 309, + "getpgid" : 121, + "getpgrp" : 111, + "getpid" : 39, + "getppid" : 110, + "getpriority" : 140, + "getresgid" : 120, + "getresgid32" : -1, + "getresuid" : 118, + "getresuid32" : -1, + "getrlimit" : 97, + "getrusage" : 98, + "getsid" : 124, + "getuid" : 102, + "getuid32" : -1, + "getegid" : 108, + "getegid32" : -1, + "geteuid" : 107, + "geteuid32" : -1, + "getgid" : 104, + "getgid32" : -1, + "getgroups" : 115, + "getgroups32" : -1, + "getitimer" : 36, + "get_mempolicy" : 239, + "kill" : 62, + "prctl" : 157, + "prlimit64" : 302, + "sched_getaffinity" : 204, + "sched_getparam" : 143, + "sched_get_priority_max" : 146, + "sched_get_priority_min" : 147, + "sched_getscheduler" : 145, + "sched_rr_get_interval" : 148, + "sched_setaffinity" : 203, + "sched_setparam" : 142, + "sched_setscheduler" : 144, + "sched_yield" : 24, + "setfsgid" : 123, + "setfsgid32" : -1, + "setfsuid" : 122, + "setfsuid32" : -1, + "setgid" : 106, + "setgid32" : -1, + "setgroups" : 116, + "setgroups32" : -1, + "setitimer" : 38, + "setpgid" : 109, + "setpriority" : 141, + "setregid" : 114, + "setregid32" : -1, + "setresgid" : 119, + "setresgid32" : -1, + "setresuid" : 117, + "setresuid32" : -1, + "setreuid" : 113, + "setreuid32" : -1, + "setrlimit" : 160, + "setsid" : 112, + "setuid" : 105, + "setuid32" : -1, + "ugetrlimit" : -1, + "vfork" : 58, + "wait4" : 61, + "waitid" : 247, + "waitpid" : -1, + "ipc" : -1, + "mq_getsetattr" : 245, + "mq_notify" : 244, + "mq_open" : 240, + "mq_timedreceive" : 243, + "mq_timedsend" : 242, + "mq_unlink" : 241, + "msgctl" : 71, + "msgget" : 68, + "msgrcv" : 70, + "msgsnd" : 69, + "semctl" : 66, + "semget" : 64, + "semop" : 65, + "semtimedop" : 220, + "shmat" : 30, + "shmctl" : 31, + "shmdt" : 67, + "shmget" : 29, + "arch_prctl" : 158, + "get_robust_list" : 274, + "get_thread_area" : 211, + "gettid" : 186, + "futex" : 202, + "restart_syscall" : 219, + "set_robust_list" : 273, + "set_thread_area" : 205, + "set_tid_address" : 218, + "tgkill" : 234, + "tkill" : 200, + "acct" : 163, + "adjtimex" : 159, + "bdflush" : -1, + "chroot" : 161, + "create_module" : 174, + "delete_module" : 176, + "get_kernel_syms" : 177, + "idle" : -1, + "init_module" : 175, + "ioperm" : 173, + "iopl" : 172, + "ioprio_get" : 252, + "ioprio_set" : 251, + "kexec_load" : 246, + "lookup_dcookie" : 212, + "migrate_pages" : 256, + "modify_ldt" : 154, + "mount" : 165, + "move_pages" : 279, + "name_to_handle_at" : 303, + "nfsservctl" : 180, + "open_by_handle_at" : 304, + "perf_event_open" : 298, + "pivot_root" : 155, + "process_vm_readv" : 310, + "process_vm_writev" : 311, + "ptrace" : 101, + "query_module" : 178, + "quotactl" : 179, + "reboot" : 169, + "setdomainname" : 171, + "setns" : 308, + "settimeofday" : 164, + "sgetmask" : -1, + "ssetmask" : -1, + "stime" : -1, + "swapoff" : 168, + "swapon" : 167, + "_sysctl" : 156, + "sysfs" : 139, + "sys_setaltroot" : -1, + "umount" : -1, + "umount2" : 166, + "unshare" : 272, + "uselib" : 134, + "vhangup" : 153, + "vm86" : -1, + "vm86old" : -1, + "add_key" : 248, + "keyctl" : 250, + "request_key" : 249, + "afs_syscall" : 183, + "break" : -1, + "ftime" : -1, + "getpmsg" : 181, + "gtty" : -1, + "lock" : -1, + "madvise1" : -1, + "mpx" : -1, + "prof" : -1, + "profil" : -1, + "putpmsg" : 182, + "security" : 185, + "stty" : -1, + "tuxcall" : 184, + "ulimit" : -1, + "vserver" : 236, +}