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

Attachment: OpenPGP_0xB288B55FFF9C22C1.asc
Description: application/pgp-keys

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

_______________________________________________
Devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to