我已经启动了一个非特权的码头容器,并试图启动特权的exec会话。它具有CAP_SYS_MODULE功能,但我仍然不允许在insmod中进行操作。
docker start -it -d --name test ubuntu
docker exec -it --privileged test sh
...
/ # insmod shell.ko
insmod: ERROR: could not insert module reverse-shell.ko: Operation not permitted然后,我尝试用seccomp不受限制地启动容器,并执行相同的命令,并且它正在工作。
docker start -it -d --security-opts seccomp=unconfined --name test2 ubuntu
docker exec -it --privileged test2 sh
...
/ # insmod shell.ko现在回到seccomp,我看到它基于moby的默认配置文件阻塞系统,在这里我看到了终量_模块被允许。那么,为什么我的内核模块第一次没有装载seccomp受限容器呢?
发布于 2022-07-22 13:02:50
这一问题的答案似乎有两件事。首先,当您启动一个非特权容器,然后使用权限进入它时,仍然启用seccomp筛选器。第二个是seccomp配置文件确实阻止了finit_module调用。
下面的输出显示了我认为您在第一次设置中要做的事情的重新创建。使用含,可以查看特权exec中被阻塞的系统,我们可以看到(如果您向右滚动很长的路:),FINIT_MODULE被阻塞了。
❯ docker run -d --name test raesene/alpine-containertools
c5c7a7b95ea0e531450b8843c85db0f54f7997ddb8273c8f97ae9bd0376685ab
rorym in cuilean in ⛵ kadmin@kubeadm2node () ~
❯ docker exec -it --privileged test /bin/bash
bash-5.1# amicontained
Container Runtime: not-found
Has Namespaces:
pid: true
user: false
AppArmor Profile: docker-default (enforce)
Capabilities:
BOUNDING -> chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read
Seccomp: filtering
Blocked Syscalls (59):
SYSLOG SETSID USELIB USTAT SYSFS VHANGUP PIVOT_ROOT _SYSCTL ACCT SETTIMEOFDAY MOUNT UMOUNT2 SWAPON SWAPOFF REBOOT SETHOSTNAME SETDOMAINNAME IOPL IOPERM CREATE_MODULE INIT_MODULE DELETE_MODULE GET_KERNEL_SYMS QUERY_MODULE QUOTACTL NFSSERVCTL GETPMSG PUTPMSG AFS_SYSCALL TUXCALL SECURITY LOOKUP_DCOOKIE CLOCK_SETTIME VSERVER MBIND SET_MEMPOLICY GET_MEMPOLICY KEXEC_LOAD ADD_KEY REQUEST_KEY KEYCTL MIGRATE_PAGES UNSHARE MOVE_PAGES PERF_EVENT_OPEN FANOTIFY_INIT NAME_TO_HANDLE_AT OPEN_BY_HANDLE_AT SETNS PROCESS_VM_READV PROCESS_VM_WRITEV KCMP FINIT_MODULE KEXEC_FILE_LOAD BPF USERFAULTFD PKEY_MPROTECT PKEY_ALLOC PKEY_FREEhttps://security.stackexchange.com/questions/261672
复制相似问题