Virtual Ghost1:
Compiler instrumentation of operating system code: creating ghost memory, which kernel cannot access;
A thin hardware abstraction layer (SVA-based): kernel must use to be restricted; user application use them to protect themselves via ghost memory management, encryption, signing, and key management;
Implimentation:
FreeBSD 9.0;
Three OpenSSH applications: ssh
, ssh-keygen
, ssh-agent
: share same application key, exchange data securely.
Security Evaluation: defeats rootkit attacks.
Q&A Why not all sva code be put into svamem section, instead, just a selected portion of data structures in libsva? Linker Script .svamem section // file // sys/conf/ldscript.amd64 /* Create the SVA data section */ _svastart = ALIGN(0x1000); .svamem ALIGN(0x1000) : { SVAPTPages = .; . = . + 4194304; *(svamem) _svaend = .; } Variables: _svastart, _svaend, SVAPTPages, Used in
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?