-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tracking Issue idealized formal model for permissions, process tracking and IPC (signaling etc) #7
Comments
Windows References Linux References CreateProcessWithTokenW Creates a new process and its primary thread. The new process runs in the The process that calls CreateProcessWithTokenW must have the CreateProcessWithLogonW This function is similar to the CreateProcessAsUser and CreateProcessWithTokenW
Linux tldr; no dedicated API, just privileges to set it and execve. Conclusions:
Linux Problems
Windows Problems
|
|
cgroups formal model? https://lewisgaul.co.uk/blog/coding/2022/05/13/cgroups-intro/ |
Gotta got formal to be eventually picked up by sel4 instead of not good (underspecified and insufficiently complete) POSIX model.
Why
Posix/Linux too with complex API, unspecified and forces solving handle leak problem by user with high performance cost (mutex + 2 calls to set and unset CLEXEC on all intended to be seperataly inherited handlers xor not doing parallel process spawning at all).
Solution uses similar semantics as Windows explicit list of inherited handles, although Windows ones are worse with file handles needing to stay opened or spawning fails. See https://github.com/mikdusan/child-process/issues/1 for the possible Posix fix.
Further, the Linux solution is complex, see http://catern.com/process.html and https://github.com/catern/supervise.
Windows has too comples API and requires even more meta objects with selecting multiple ways of doing the same, but slightly differently. System call filtering is only partially supported (kernel32 + ntdll API with ~400 calls still accessible) with kernel32 being "security by obscurity" as "kernel lib on top of kernel hidden from user".
See matu3ba/win32k-mitigation#3, for ntdll and kernel32 restriction https://github.com/matu3ba/win32k-mitigation/tree/master/test/standalone/child_process_ntdll_only, for explicit file handle inheritance (good thing, if there would not be 5 ways of doing it with multiple combinations and its behavior not specified https://github.com/matu3ba/win32k-mitigation/tree/master/test/standalone/child_process_explicit_handles).
Also, async with list would mandate solving the same problem.
Main semantic questions for static scheduling
Main semantic questions for dynamic prefdefined scheduling
Main semantic questions for dynamic prefdefined scheduling
The text was updated successfully, but these errors were encountered: