Konubinix' opinionated web of thoughts

Graphene

Fleeting

oscarlab/graphene: Graphene / Graphene-SGX - a library OS for Linux multi-process applications, with Intel SGX support

the FSGSBASE functionality must be enabled in the Linux kernel, the Intel SGX driver must be running, and Intel SGX SDK/PSW/DCAP must be installed

https://graphene.readthedocs.io/en/latest/building.html

Graphene is a lightweight guest OS, designed to run a single application with minimal host requirements. Graphene can run applications in an isolated environment with benefits comparable to running a complete OS in a virtual machine – including guest customization, ease of porting to different OSes, and process migration.

https://github.com/oscarlab/graphene

Graphene supports native, unmodified Linux applications on any platform. Currently, Graphene runs on Linux and Intel SGX enclaves on Linux platforms

https://github.com/oscarlab/graphene

fully-featured library OS can rapidly deploy unmodified applications on SGX with overheads comparable to applications modified to use “shim” layers.

https://www.usenix.org/conference/atc17/technical-sessions/presentation/tsai

performance overheads of Graphene- SGX range from matching a Linux process to less than 2× in most single-process cases; these overheads are largely attributable to current SGX hardware or missed opportunities to optimize Graphene internals, and are not necessarily fundamental to leaving the application unmodified

https://www.usenix.org/conference/atc17/technical-sessions/presentation/tsai

Graphene runs unmodified applications inside Intel SGX. It supports dynamically loaded libraries, runtime linking, multi-process abstractions, and file authentication.

https://grapheneproject.io/

Graphene can run applications in an isolated environment with benefits comparable to running a complete OS in a virtual machine

https://graphene.readthedocs.io/en/latest/

able to run unmodified applications inside SGX enclaves, without the toll of manually porting the application to the SGX environment

https://graphene.readthedocs.io/en/latest/

the FSGSBASE functionality must be enabled in the Linux kernel, the Intel SGX driver must be running, and Intel SGX SDK/PSW/DCAP must be installed

https://graphene.readthedocs.io/en/latest/building.html

several components:

The Library OS itself (a shared library named libsysdb.so, called the “shim” in our source code) The Platform Adaptation Layer, or PAL (a shared library named libpal.so) A patched GNU C Library (a set of shared libraries libc.so, libpthread.so, libm.so, etc.)

https://graphene.readthedocs.io/en/latest/building.html

Graphene is currently tested on Ubuntu 16.04 and 18.04 (both server and desktop version), along with Linux kernel versions 3.x/4.x/5.x. We recommend building and installing Graphene on the same host platform.

https://graphene.readthedocs.io/en/latest/building.html

full SGX Attestation support (EPID/DCAP)

https://github.com/oscarlab/graphene

Graphene is ready to be deployed in cloud environments with full support for automatic container integration, using Graphene Shielded Containers (GSC).

https://github.com/oscarlab/graphene

FSGSBASE

functionality must be enabled in the Linux kernel, the Intel SGX driver must be running, and Intel SGX SDK/PSW/DCAP must be installed

https://graphene.readthedocs.io/en/latest/building.html

FSGSBASE is a feature in recent processors which allows direct access to the FS and GS segment base addresses.

https://graphene.readthedocs.io/en/latest/building.html

kernel supports FSGSBASE (the below command must return that bit 2 is set): LD_SHOW_AUXV=1 /bin/true | grep AT_HWCAP2

https://graphene.readthedocs.io/en/latest/building.html

To install the Graphene FSGSBASE driver, run the following commands: git clone https://github.com/oscarlab/graphene-sgx-driver cd graphene-sgx-driver make sudo insmod gsgx.ko

https://graphene.readthedocs.io/en/latest/building.html