Dune: Safe User-level Access to Privileged CPU Features, OSDI 2012
Why is it safe for Dune to expose privileged instructions to applications?
Specifically,
how can Dune prevent a malicious process from
overwriting the memory of the Linux kernel/another process
(e.g., by modifying %CR3
or the page table)?
Dune provides speedup for handling traps and garbage collection, as shown in Section 6.2/Table 3. We have seen similar benchmarks in the exokernel paper. Compare the techniques used in both systems and briefly describe the pros/cons.
Consider the following approach that
doesn’t use EPT at all: let Dune expose %CR3
as read-only (i.e., a
Dune process can read but cannot modify the value of %CR3
), map
page-table pages as read-only, and in addition provide a vmcall
to
modify entries in the page table. Is this safe? If so, is it
slower or faster than Dune’s approach?
Provide a list of questions you would like to discuss in class. Feel free to provide any comments on the paper and related topics (e.g., which parts you like and which parts you find confusing).