On 11/22/20 3:22 AM, Andrew Warkentin wrote: > I am wanting to implement a system call origin limit (akin to that of > OpenBSD) in UX/RT. This could probably be accomplished by adding a > "set system call range" TCB method that takes the start and end > addresses of the range in which system calls will be permitted without > interception. Any system call issued from code outside this range > would incur a user exception (which would provide all the state > required for user code to handle the system call and resume the thread > if desired). > > UX/RT will require all binaries to be dynamically linked with a > minimal "libroot" library that will contain an IPC transport layer > that will be the only part of the system outside the root server that > makes direct system calls. This will make it easier for later versions > to retain backwards compatibility. Limiting system call origin should > also make certain kinds of attacks more difficult. > > I am also planning to use the system call origin limit in the Linux > compatibility environment in order to distinguish Linux syscalls from > seL4 ones, since Linux syscalls will never come from libroot. Each > process in the Linux compatibility environment will have a fault > handler thread that looks up the syscall and calls the corresponding > UX/RT APIs, and will also replace the trap with a call to a jump table > if the function containing it is a known syscall wrapper in order to > cut down on the number of trips through the kernel.
That is an absolutely awesome way of doing the compatibility layer! Good luck! > Would it be possible to add something like this to the mainline seL4 tree? I am not part of the seL4 team, so I cannot give an authoritative answer, but intuitively it seems like a fairly simple feature to add. The question then becomes if it is worth the additional maintenance burden. Sincerely, Demi
OpenPGP_0xB288B55FFF9C22C1.asc
Description: application/pgp-keys
OpenPGP_signature
Description: OpenPGP digital signature
_______________________________________________ Devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
