[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[atomic-devel] I am working on seccomp integration into docker for project Atomic.
- From: Daniel J Walsh <dwalsh redhat com>
- To: atomic-devel projectatomic io
- Subject: [atomic-devel] I am working on seccomp integration into docker for project Atomic.
- Date: Tue, 28 Oct 2014 07:59:57 -0400
Basically seccomp allows us to either whitelist or blacklist systcalls
that we want to expose into the container processes.
At this time coming up with a whitelist, would just about be
impossible. I am concentrating on creating a reasonable list of
syscalls, that should not be allowed within a non-privileged container.
Then we can allow an admin to add/remove syscalls using the docker run CLI.
The idea is to limit the attack surface of the kernel. Just turning on
seccomp within a docker container will eliminate all non-native
syscalls, by default. On an X86_64 system x32 and i686 syscalls will be
eliminated.
Here is the current list I am looking at.
// Some of these originated out of systemd-nspawn code
container.RestrictSyscalls = []string{"kexec_load",
"open_by_handle_at", "init_module", "finit_module", "delete_module",
"iopl", "ioperm", "swapon", "swapoff", "sysfs", "sysctl", "adjtimex",
"clock_adjtime", "lookup_dcookie", "perf_event_open", "fanotify_init",
"kcmp"}
// settimeofday where a0=CLOCK_REALTIME
/* Sandstorm also blocks the following
[]string{"unshare", "acct", "add_key", "clone", "get_mempolicy",
"get_robust_list", "io_cancel", "io_destroy", "io_getevents",
"io_setup", "io_submit", "keyctl", "mbind", "migrate_pages",
"modify_ldt", "mount", "move_pages", "perf_event_open", "personality",
"pivot_root", "ptrace", "quotactl", "remap_file_pages", "request_key",
"set_mempolicy", "set_robust_list", "syslog", "uselib", "vmsplice"}
// socket where SCMP_A0(SCMP_CMP_GE, AF_NETLINK + 1)));
// socket where SCMP_A0(SCMP_CMP_EQ, AF_AX25)));
// socket where SCMP_A0(SCMP_CMP_EQ, AF_IPX)));
// socket where SCMP_A0(SCMP_CMP_EQ, AF_APPLETALK)));
// socket where SCMP_A0(SCMP_CMP_EQ, AF_NETROM)));
// socket where SCMP_A0(SCMP_CMP_EQ, AF_BRIDGE)));
// socket where SCMP_A0(SCMP_CMP_EQ, AF_ATMPVC)));
// socke where SCMP_A0(SCMP_CMP_EQ, AF_X25)));
// socket where SCMP_A0(SCMP_CMP_EQ, AF_ROSE)));
// socket where SCMP_A0(SCMP_CMP_EQ, AF_DECnet)));
// socket where SCMP_A0(SCMP_CMP_EQ, AF_NETBEUI)));
// socket where SCMP_A0(SCMP_CMP_EQ, AF_SECURITY)));
// socket where SCMP_A0(SCMP_CMP_EQ, AF_KEY)));
*/
Sandstorm also blocks ptrace, which I am also thinking of adding.
I would like to have other people input, on other syscalls that we
should add, or ones that should not be on the list.
I believe few administrators will ever modify the list, so picking a
good secure list that will not break most applications is critical.
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]