sysjail: Sicherheit die keine ist, oder, system call wrapper sind schlecht
Könnte man unter FreeBSD die Jails als "chroot auf Steroiden" bezeichnen (welche beim Dopingtest nicht aufgefallen wären), so sind die jails unter OpenBSD bei der A und B Probe durchgefallen. Die vermeintlich gewonnene Sicherheit ist leider keine.ÂÂ
sysjail unter OpenBSD basiert auf systrace. Prinzpiell könnte sysjail daher auch jedem System aktiviert werden welches systrace unterstützt. Dies wären beispielsweise noch NetBSD und MirOS.
Bei systrace handelt es sich im weiteres Sicherheitsfeature welches weit über die Benutzerrechte oder Securelevel heinausgeht. Mit systrace ist es möglich Systamaufrufe von Programmen explizit zu kontrollieren und diese zuzulassen oder unter Umständen auch zu verbieten. Dies machen sich die sysjails unter OpenBSD auch zu eigen.
Nun hat Robert N. M. Watson aber herausgefunden, das diese Implemtierung Schwächen aufweist. Neben systrace werden dabei auch exploit Techniken gegen GSWTK und CerbNG aufgezeigt.
In seinem Workshop Paper auf der USENIX 07 kann dies nachgelesen werden. Bei der Präsentation geht er dabei noch auf die Exploits im speziellen ein.
Robert N.M. Watson sagt auch dazu:
The moral, for those unwilling to read the paper, is that system call
wrappers are a bad idea, unless of course, you’re willing to rewrite
the OS to be message-passing. Systems like the TrustedBSD MAC Framework on FreeBSD and Mac OS X Leopard, Linux Security Modules (LSM), Apple’s (and now also NetBSD’s) kauth(9),
and other tightly integrated kernel security frameworks offer specific
solutions to these concurrency problems. There’s plenty more to be done
in that area.
