Although this tool is not design for MesaTEE specifically, I still
think it's better put in the `incubator-mesatee` main repo initially.
If more people want to use it separately later, we can make it as a
separate tool. This will simplify the maintenance efforts of the
project for now.


On Wed, Dec 4, 2019 at 12:08 PM Wang Pei <[email protected]> wrote:
>
> One of the features MesaTEE (now renamed as Teaclave) promised when it was
> initially open-sourced is the so-called "Non-bypassable gateway."
> Basically, we would like to show that all interactions between the TEE and
> the untrusted outside world are properly sanitized in our implementation.
>
> As a first step towards this goal, I have implemented a tool that can
> extract the dependency graph of the crates built by Cargo. It's
> instrumentation to rustc that analyzes the Rust IR and stores information
> with an embedded DB such that it can gather information collected by
> multiple rustc invocations.
>
> The tool provides three custom attributes: require_audit, audited, and
> entry_point. These attributes can annotate any item-like entities in Rust
> code, including ADT, functions, traits, and impl blocks. Starting from each
> entry_point, the tool traverses the dependency graph with DFS and emits a
> warning whenever it encounters an item marked by require_audit unless
> another item marked by audited presents along the traversal path.
>
> The attributes have no effects on code generation and can be safely ignored
> by anyone that does not care about code auditing.
>
> About how to publish the tool, there are two options. It can be part of
> mesatee-sgx, the fundamental dependency of the mesatee project. Or it can
> be released as a standalone tool. In theory, it can be used to audit other
> Rust projects, but I wonder how attractive that would be. Either way, we
> have to annotate a lot of code in mesatee-sgx and mesatee to make the tool
> acutally useful.
>
> Let me know your thoughts.
>
> Pei

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to