GithubHelp home page GithubHelp logo

nestedkernel / perspicuos Goto Github PK

View Code? Open in Web Editor NEW
53.0 7.0 12.0 170.29 MB

This repository contains the nested kernel implementation as it was built for the ASPLOS 2015 paper, including the FreeBSD prototype PerspicuOS.

License: Other

perspicuos's Issues

Compilation Error finding opt_sva_mmu.h:

so I cloned the PerspicuOS github repo and built the nk directory,
(which apparently succeeded). However, when trying to build the FreeBSD9 directory, it gave me this error (I used "make buildworld"):

Error: No such file: "opt_sva_mmu.h"
In file included from /root/PerspicuOS/FreeBSD9/lib/libc/stdlib/malloc.c:177:/usr/obj/root/PerspicuOS/FreeBSD9/tmp/usr/include/machine/cpufunc.h:44:25: error mkdep: compile failed
*** Error code 1
Stop in /root/PerspicuOS/FreeBSD9/lib/libc

potential vulnerability

Hi there,
first of all, congrats for this nice work, I love the idea of not using expensive hardware virtualization support, to get more secure execution for a small performance penalty.
However, I had a quick look at the code and I am a bit concerned with the sva_load_cr0 intrinsic implemented in nk/lib/mmu.c.
As far as I understand it serves outer kernel needs to modify cr0 while ensuring that WP bit stay set. What if a compromised outer kernel locates the sva_load_cr0_secure function at runtime and directly calls to the cr0 move instruction (when such a call is possible) ? When it succeed invariant I8 won't be enforced anymore and the nk will become unprotected.
Is this a potential vulnerability or did I missed something ?

Question about nested kernel API.

Hi,

I am trying to understand the code based on your excellent paper. However, the APIs declared in the paper(nk_declare, nk_alloc, etc.) seem not to be called by the kernel? For example, I search the function pt_update_is_valid, and the result shows that it appears only once(in nk/lib/mmu.c#.L259), it is not even referenced.
----- Update: Sorry for my mistake before, the github default search functionality seems not good enough, pt_update_is_valid is referenced in the __update_mapping function.

I compared the difference between FreeBSD9 and FreeBSD9-orig directory, trying to find out the modification. I find two possible functions in FreeBSD9/sys/kern/kern_sva.c, provideSVAMemory and releaseSVAMemory, both of which are referenced in the nk lib. However, the first line of provideSVAMemory is panic("Don't call this!");!

Now I'm a little confused, where and how is the nk library being used? Did I miss anything?

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.