>Can you point out which exact use case breaks if you don't whitelist the >below mentioned system calls' flags?
It happens whenever I do -runas with the sandbox enabled, or chroot with the sandbox enabled. sh# qemu-system-x86_64 -m 2048 -enable-kvm -chroot /var/empty -sandbox on \ > -cdrom /tmp/devuan-jessie-netboot-i386-alpha2.iso ^C Session terminated, terminating shell...^C ...terminated. sh# tail -n 1 /var/log/audit/audit.log | fold -s -w 80 type=SECCOMP msg=audit(1443154833.702:286096): auid=0 uid=0 gid=0 ses=12 pid=985623 comm="qemu-system-x86" exe="/usr/bin/qemu-system-x86_64" sig=31 arch=c000003e syscall=161 compat=0 ip=0x309c2885397 code=0x0 >We thought about this in beggining of the development of seccomp on >qemu. Some feature like allow all, which would print to stderr all >illegal hits and a another argument like >-sandbox_add="syscall1,syscall2", but this would be against the concept >of the whole security schema. We don't want the user to take full >control of it, and if you're a developer, you know what to do. Is there an official security model for QEMU? I actually think a config file which contains seccomp rules would be a very good idea, because it would let the people who want to deploy a secure VM do so, so they can tighten it up based on the functions they need, without needing to go to the trouble of compiling a custom version (which might not be a very good idea when your job is on the line when some unexpected crash caused by a custom patch causes several hours of downtime for customers). Another idea which would fit in with the security model is to have a dynamic sandbox which enables syscalls and syscall filters based on what command line or config parameters are passed to QEMU on its first start. For example QEMU should have no need to perform every single filesystem operation that exists on a setup where 9p is not in use. The same applies to the highly dangerous syscalls like setsockopt, getsockopt, and ioctl, which would have to be blanket enabled just because someone might use an obscure configuration. Implementing a dynamic seccomp policy would be as easy as something like: if (howerver_qemu_checks_for_enabled_options(optname) == 0) enable_calls_needed_for_optname(); >Isn't it IPC_CREAT? Or am I missing something? Yes, that was a dumb typo on my part. I posted an older patch of mine before fixing that typo >Can you resend a v3 describing the changes you did from v1 to v2 and v3? >This helps keep tracking of ideas and discussions. Yes, I put it in a new top thread as the FAQ suggested.