On Thu, Mar 14, 2019 at 07:15:10AM -0400, Stefan Berger wrote: > On 3/14/19 5:59 AM, Daniel P. Berrangé wrote: > > On Wed, Mar 13, 2019 at 03:43:13PM -0400, Stefan Berger wrote: > > > Hello! > > > > > > If you have some feedback regarding a seccomp profile extension for > > > swtpm > > > for v0.2, please let me know. I created this github issue here: > > > > > > > > > https://github.com/stefanberger/swtpm/issues/115 > > > > > > > > > Basically the choice is whether to make the creation of the seccomp > > > profile > > > a default behavior or have the caller explicitly pass the '--seccomp > > > profile=default' on the command line, which then in turn would require > > > libvirt for example to check whether this current version of swtpm > > > supports > > > the feature either by swtpm version or by strstr() the help page. > > In QEMU we can't enable seccomp by default because its wide range of > > features means any default profile would be effectively useless. Libvirt > > knows that it uses a restricted set of QEMU features, so it can enable > > a more useful seccomp by default. > > > > I think swtpm won't have this complexity problem. Its functionality is > > relatively narrow & well understood & so it is practical to define a > > good seccomp profile & use that by default. So personally I'd merely > > provide an opt-out to turn it off unless you think this is likely to > > break something important. > > Thanks. What makes me a bit hesitant now to activate it is the fact that I > found several unexpected syscalls in places like openssl DRBG and glibc. The > latter for example uses some #define ARCH_FORK (iirc), which was not fork or > vfork but clone on F29. It will obviously break if it is something different > on another machine or if it runs into branches that I haven't exercised with > the limited coverage the test suite I have provides...
Yes, seccomp rules are arguably specific to the C library impl, though I'd expect most C impls are largely the same. The use of clone instead of fork is pretty long standing, as it is basically a more generalized API so there's little reason to use the old fork() syscall. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|