BTW, I saw MSR has an interesting research work to integrate MapReduce with SGX to analyze big data in an privacy-preserved way: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/vc3-oakland2015.pdf. I'm looking forward to the potential integration between this project with a few big data project under ASF.
On Sun, Aug 4, 2019 at 10:07 AM Mingshen Sun <mingshen....@gmail.com> wrote: > Thanks for your interests. > > Regarding to you question, no, you cannot use it to sandbox arbitrary code. > Trusted computing/confidential computing is not just about isolation and > sandbox. > For the SGX setup, because lots of sources (e.g., system calls, IO > functions, etc.) > are not trusted, which will break the treat model of trusted computing. > Normally, you should design a code with “trusted” part and “untrusted” > part. > For legacy code, it needs to be carefully tailored or separated. But > sometimes, > untrusted sources are still needed (e.g., a web service needs network > capabilities), > they should be as minimal as possible and easy to audit. > > Yesterday, ted gave a very good use case ( > https://signal.org/blog/private-contact-discovery/). > But there are others listed in the doc: > https://github.com/mesalock-linux/mesatee/blob/master/docs/case_study.md > > > > On Aug 4, 2019, at 8:37 AM, Matt Sicker <boa...@gmail.com> wrote: > > > > I’ve read through a bit of the site and blog posts. I’m pretty interested > > in the project, especially any efforts to support more programming > > languages. > > > > Is it possible to use this to sandbox arbitrary code? > > > > On Sat, Aug 3, 2019 at 17:22, Mingshen Sun <mingshen....@gmail.com> > wrote: > > > >> Yes, this project can be used for securing general computations. > >> You can simply use the `mesatee_core` library to write an SGX encalve. > >> In addition, MesaTEE provides others features like function as a > service. > >> That’s why we call it a universal securing computing framework. > >> > >> Best, > >> Mingshen Sun > >> > >> On 2019/08/03 15:27:41, Matt Sicker <b...@gmail.com> wrote: > >>> Would this project be useful in securing general computations? You > >> mention> > >>> big data and AI a lot, though I’m wondering if this is also usable for> > >>> things like, say, general multi tenant applications?> > >>> > >>> On Sat, Aug 3, 2019 at 03:27, Mingshen Sun <ms...@cse.cuhk.edu.hk> > >> wrote:> > >>> > >>>> Hi,> > >>>>> > >>>> This is Mingshen Sun from Baidu X-Lab. Recently, we have open-sourced> > >>>> a universal secure computing framework called MesaTEE (> > >>>> https://mesatee.org/).> > >>>> The MesaTEE project enables general computing service for> > >>>> security-critical scenarios,> > >>>> which attracts many attentions from academia and industry.> > >>>>> > >>>> To better build up the whole ecosystem, we decide to donate the > >> MesaTEE> > >>>> project to> > >>>> Apache Foundation. Therefore, we’d like to propose our project to go> > >>>> through> > >>>> the incubation process.> > >>>>> > >>>> Attached is our incubation proposal for open discussion. Thank you so > >> much.> > >>>>> > >>>> Best,> > >>>> Mingshen Sun> > >>>> Baidu X-Lab> > >>>>> > >>>>> > >>>> Here is the proposal details:> > >>>>> > >>>> ======> > >>>>> > >>>> MesaTEE Apache Incubation Proposal> > >>>>> > >>>> = Abstract => > >>>>> > >>>> MesaTEE is a framework for universal secure computing.> > >>>>> > >>>> = Proposal => > >>>>> > >>>> MesaTEE is the next-gen solution to enable general computing service > >> for> > >>>> security-critical scenarios. It will allow even the most sensitive > >> data to> > >>>> be> > >>>> securely processed to enable offshore businesses without leakage.> > >>>>> > >>>> The solution combines the advanced Hybrid Memory Safety (HMS) model > >> and the> > >>>> power of the Trusted Computing technologies (e.g., TPM) as well as > >> the> > >>>> Confidential Computing technologies (e.g., Intel SGX).> > >>>>> > >>>> * Code base:> > >>>> * https://github.com/mesalock-linux/mesatee> > >>>> * https://github.com/baidu/rust-sgx-sdk> > >>>> * Website: https://mesatee.org> > >>>> * Documentation: https://mesatee.org/doc/mesatee_sdk/> > >>>>> > >>>> = Background => > >>>>> > >>>> The emerging technologies of big data analytics, machine learning,> > >>>> cloud/edge> > >>>> computing, and blockchain are significantly boosting our productivity, > >> but> > >>>> at> > >>>> the same time they are bringing new confidentiality and integrity> > >>>> concerns. On> > >>>> public cloud and blockchain, sensitive data like health and financial> > >>>> records> > >>>> may be consumed at runtime by untrusted computing processes running > >> on> > >>>> compromised platforms; during in-house data exchange, confidential> > >>>> information> > >>>> may cross different clearance boundaries and possibly fall into the > >> wrong> > >>>> hands;> > >>>> also not to mention the privacy issue arises in offshore data supply> > >>>> chains.> > >>>>> > >>>> Although the consequences of data breaching have been extensively> > >>>> elaborated, we> > >>>> should also note that proprietary computing algorithms themselves, > >> such as> > >>>> AI> > >>>> models, also need to be well protected. Once leaked, attackers can > >> steal> > >>>> the> > >>>> intellectual properties, or launch whitebox attacks and easily exploit > >> the> > >>>> weaknesses of the models.> > >>>>> > >>>> Facing all these risky scenarios, we are in desperate need of a > >> trusted and> > >>>> secure mechanism, enabling us to protect both private data and > >> proprietary> > >>>> computing models during a migratable execution in potentially unsafe> > >>>> environments, yet preserving functionalities, performance, > >> compatibility,> > >>>> and> > >>>> flexibility. MesaTEE is targeting to be, as we call it, the full > >> "Universal> > >>>> Secure Computing" stack, so it can help users resolve these runtime> > >>>> security> > >>>> risks.> > >>>>> > >>>> MesaTEE aims to promote the development of universal secure computing> > >>>> ecosystem> > >>>> through open source and openness, to provide basic support for trust> > >>>> protection> > >>>> for the productivity revolution brought by big data and AI, to > >> completely> > >>>> solve> > >>>> the data exchange or multi-party computing between > >> departments/companies,> > >>>> to> > >>>> enable privacy-crucial services such as financial and medical care > >> using> > >>>> blockchain/cloud services, and to convoy businesses that are closely> > >>>> related to> > >>>> life and safety such as autonomous driving. MesaTEE has been working> > >>>> closely> > >>>> with mainstream cloud computing/blockchain/chip vendors and> > >>>> universities/research institutions to promote hardware TEE, software > >> memory> > >>>> safety, and versatile computing services to create an internationally> > >>>> protected> > >>>> and flexible secure computing framework. MesaTEE’s open-source release > >> will> > >>>> greatly accelerate the development of the next generation of big data> > >>>> business> > >>>> applications, and it is also of great importance to promoting AI in > >> all> > >>>> business> > >>>> areas.> > >>>>> > >>>> = Rationale => > >>>>> > >>>> MesaTEE stack redefines future AI and big data analytics by providing > >> a> > >>>> trusted> > >>>> and secure offshore computing environment. The confidentiality and > >> privacy> > >>>> of> > >>>> data and models can be well protected with MesaTEE, even if data and > >> model> > >>>> originate from different parties with no mutual trust. Moreover, the> > >>>> computing> > >>>> platform itself is not necessarily trusted either. The Trusted > >> Computing> > >>>> Base> > >>>> (TCB) can thus be largely reduced to MesaTEE framework alone. A > >> detailed> > >>>> description of target use-cases can be found at> > >>>> > >> > https://github.com/mesalock-linux/mesatee/blob/master/docs/case_study.md.> > >> > >>>>> > >>>> We believe that Apache way of open source community empowers MesaTEE > >> to> > >>>> attract> > >>>> a diverse set of contributors who can bring new ideas into the > >> project.> > >>>>> > >>>> = Initial Goals => > >>>>> > >>>> * Move the existing codebase, website, documentation, and mailing > >> lists> > >>>> to an> > >>>> Apache-hosted infrastructure.> > >>>> * Integrate with the Apache development process.> > >>>> * Ensure all dependencies are compliant with Apache License version > >> 2.0.> > >>>> * Incrementally develop and release per Apache guidelines.> > >>>>> > >>>> = Current Status => > >>>>> > >>>> The MesaTEE project (and its sub-project Rust SGX SDK) has been > >> designed> > >>>> and> > >>>> developed at Baidu since 2017, and was open sourced under the Apache> > >>>> License,> > >>>> Version 2.0 in 2019. The source code is currently hosted at > github.com> > >> > >>>> (https://github.com/mesalock-linux/mesatee and> > >>>> https://github.com/baidu/rust-sgx-sdk), which will seed the Apache > >> git> > >>>> repository.> > >>>>> > >>>> == Meritocracy ==> > >>>>> > >>>> We are fully committed to open, transparent, and meritocratic > >> interactions> > >>>> with> > >>>> our community. In fact, one of the primary motivations for us to enter > >> the> > >>>> incubation process is to be able to rely on Apache best practices that > >> can> > >>>> ensure meritocracy. This will eventually help incorporate the best > >> ideas> > >>>> back> > >>>> into the project and enable contributors to continue investing their > >> time> > >>>> in the> > >>>> project. We already have some guidelines to help external > >> contributors:> > >>>>> > >>>> *> > >>>> > >> > https://github.com/mesalock-linux/mesatee/blob/master/docs/rust_guideline.md > > > >> > >>>> *> > >>>> > >> > https://github.com/mesalock-linux/mesatee/blob/master/docs/how_to_add_your_function.md > > > >> > >>>> *> > >>>> > >> > https://github.com/mesalock-linux/mesatee/blob/master/CODE_OF_CONDUCT.md> > >>>>> > >>>> == Community ==> > >>>>> > >>>> The MesaTEE community is fairly young. Since our sub-project (Rust > >> SGX> > >>>> SDK) was> > >>>> open sourced in 2017, we received many contributions from various> > >>>> companies and> > >>>> individual researchers (https://github.com/baidu/rust-sgx-sdk/pulls). > >> Our> > >>>> primary goal during the incubation would be to grow the community and> > >>>> groom our> > >>>> existing active contributors for committers.> > >>>>> > >>>> == Core Developers ==> > >>>>> > >>>> Current core developers work at Baidu. We are confident that > >> incubation> > >>>> will> > >>>> help us grow a diverse community in an open and collaborative way.> > >>>>> > >>>> == Alignment ==> > >>>>> > >>>> MesaTEE is designed as a framework for universal secure computing. > >> This is> > >>>> complementary to the Apache's projects, providing a trusted and > >> secure> > >>>> computing> > >>>> framework.> > >>>>> > >>>> Our sincere hope is that being a part of the Apache foundation would> > >>>> enable us> > >>>> to drive the future of the project in alignment with the other Apache> > >>>> projects> > >>>> for the benefit of thousands of organizations that already leverage > >> these> > >>>> projects.> > >>>>> > >>>> = Known Risks => > >>>>> > >>>> == Orphaned Products ==> > >>>>> > >>>> The risk of abandonment of MesaTEE is low. MesaTEE has been incubated > >> at> > >>>> Baidu> > >>>> for over two years. Baidu is committed to the further development of > >> the> > >>>> project> > >>>> and will keep investing resources towards the Apache processes and> > >>>> community> > >>>> building, during the incubation period.> > >>>>> > >>>> == Inexperience with Open Source ==> > >>>>> > >>>> Even though the initial committers are new to the Apache world, some > >> have> > >>>> considerable open source experience - Yu Ding, Yiming Jing, Mingshen > >> Sun.> > >>>> We> > >>>> have been successfully managing the current open source community,> > >>>> answering> > >>>> questions, and taking feedback already. Moreover, we hope to obtain> > >>>> guidance and> > >>>> mentorship from current ASF members to help us succeed in the > >> incubation.> > >>>>> > >>>> == Length of Incubation ==> > >>>>> > >>>> We expect the project to be in incubation for 2 years or less.> > >>>>> > >>>> == Homogenous Developers ==> > >>>>> > >>>> Currently, the lead developers for MesaTEE are from Baidu. However, > >> we> > >>>> have an> > >>>> active set of early contributors/collaborators from Alibaba and other> > >>>> companies,> > >>>> which we hope will increase the diversity going forward. Once again, > >> a> > >>>> primary> > >>>> motivation for the incubation is to facilitate this in the Apache > >> way.> > >>>>> > >>>> == Reliance on Salaried Developers ==> > >>>>> > >>>> Both the current committers and early contributors have several years > >> of> > >>>> core> > >>>> expertise around designing trusted computing systems. Current > >> committers> > >>>> are> > >>>> very passionate about the project and have already invested hundreds > >> of> > >>>> hours> > >>>> towards helping and building the community. Thus, even with employer> > >>>> changes, we> > >>>> expect they will be able to actively engage in the project either > >> because> > >>>> they> > >>>> will be working in similar areas even with newer employers or out of> > >>>> belief in> > >>>> the project.> > >>>>> > >>>> == Relationships with Other Apache Products ==> > >>>>> > >>>> To the best of our knowledge, there are no directly competing projects > >> with> > >>>> MesaTEE that offer all of the feature set - memory safety, secure> > >>>> computing,> > >>>> multi-party computation, etc. However, some projects share similar > >> goals,> > >>>> e.g.,> > >>>> OpenWhisk which provides a serverless cloud platform. We are committed > >> to> > >>>> open> > >>>> collaboration with such Apache projects and incorporating changes to> > >>>> MesaTEE or> > >>>> contributing patches to other projects, with the goal of making it > >> easier> > >>>> for> > >>>> the community at large, to adopt these open source technologies.> > >>>>> > >>>> == Excessive Fascination with the Apache Brand ==> > >>>>> > >>>> The Apache Brand is very respected. We are very honored to have the> > >>>> opportunity> > >>>> to join ASF, with the understanding that its brand policies shall be> > >>>> respected.> > >>>> And we hope Apache can help us build the ecosystem around MesaTEE and> > >>>> attract> > >>>> more developers.> > >>>>> > >>>> = Documentation => > >>>>> > >>>> * Detailed documentation: https://github.com/mesalock-linux/mesatee> > >> > >>>> * MesaTEE SDK API documentation: > >> https://mesatee.org/doc/mesatee_sdk/> > >>>>> > >>>> = Initial Source => > >>>>> > >>>> The codebase is currently hosted on Github:> > >>>>> > >>>> * https://github.com/mesalock-linux/mesatee> > >>>> * https://github.com/baidu/rust-sgx-sdk> > >>>>> > >>>> During incubation, the codebase will be migrated to an Apache> > >>>> infrastructure.> > >>>> The source code of MesaTEE is under Apache version 2.0 License, while > >> Rust> > >>>> SGX> > >>>> SDK is under BSD 3-Clauses License.> > >>>>> > >>>> = Source and Intellectual Property Submission Plan => > >>>>> > >>>> We will work with the committers to get ICLAs signed. We will provide > >> a> > >>>> Software> > >>>> Grant Agreement from an authorized signer per> > >>>> https://www.apache.org/licenses/software-grant-template.pdf> > >>>>> > >>>> = External Dependencies => > >>>>> > >>>> MesaTEE directly depends on these third-party Rust crates:> > >>>>> > >>>> * adler32, 1.0.3, BSD-3-Clause> > >>>> * aho-corasick, 0.7.4, Unlicense/MIT> > >>>> * array_tool, 1.0.3, MIT> > >>>> * assert_matches, 1.3.0, MIT/Apache-2.0> > >>>> * autocfg, 0.1.4, Apache-2.0/MIT> > >>>> * base64, 0.10.1, MIT/Apache-2.0> > >>>> * bincode, 1.1.4, MIT> > >>>> * bit-vec, 0.6.1, MIT/Apache-2.0> > >>>> * bitflags, 1.1.0, MIT/Apache-2.0> > >>>> * byteorder, 1.3.2, MIT/Unlicense> > >>>> * bytes, 0.5.0, MIT> > >>>> * cc, 1.0.37, MIT/Apache-2.0> > >>>> * cfg-if, 0.1.9, MIT/Apache-2.0> > >>>> * chrono, 0.4.7, MIT/Apache-2.0> > >>>> * color_quant, 1.0.1, MIT> > >>>> * crc32fast, 1.2.0, MIT> > >>>> * ctor, 0.1.9, Apache-2.0> > >>>> * deflate, 0.7.20, MIT/Apache-2.0> > >>>> * either, 1.5.2, MIT/Apache-2.0> > >>>> * env_logger, 0.6.2, MIT/Apache-2.0> > >>>> * erased-serde, 0.3.9, MIT> > >>>> * fnv, 1.0.6, Apache-2.0> > >>>> * getrandom, 0.1.6, MIT> > >>>> * ghost, 0.1.0, MIT/Apache-2.0> > >>>> * gif, 0.10.2, MIT/Apache-2.0> > >>>> * gzip-header, 0.3.0, MIT/Apache-2.0> > >>>> * half, 1.3.0, MIT/Apache-2.0> > >>>> * hashbrown, 0.3.1, Apache-2.0/MIT> > >>>> * heapsize, 0.4.2, MIT/Apache-2.0> > >>>> * hex, 0.3.2, MIT> > >>>> * http, 0.1.17, MIT/Apache-2.0> > >>>> * httparse, 1.3.4, MIT/Apache-2.0> > >>>> * humantime, 1.2.0, MIT/Apache-2.0> > >>>> * image, 0.21.0, MIT> > >>>> * inflate, 0.4.5, MIT> > >>>> * inventory, 0.1.3, MIT> > >>>> * inventory-impl, 0.1.3, MIT> > >>>> * iovec, 0.2.0, MIT/Apache-2.0> > >>>> * itertools, 0.8.0, MIT/Apache-2.0> > >>>> * itoa, 0.4.4, MIT> > >>>> * jpeg-decoder, 0.1.15, MIT> > >>>> * lazy_static, 1.3.0, MIT/Apache-2.0> > >>>> * libc, 0.2.59, MIT> > >>>> * linked-hash-map, 0.5.2, MIT/Apache-2.0> > >>>> * log, 0.4.7, MIT> > >>>> * lzw, 0.10.0, MIT/Apache-2.0> > >>>> * matrixmultiply, 0.2.2, MIT/Apache-2.0> > >>>> * md5, 0.6.1, Apache-2.0/MIT> > >>>> * memchr, 2.2.1, Unlicense/MIT> > >>>> * memory_units, 0.3.0, MPL-2.0> > >>>> * net2, 0.2.33, MIT/Apache-2.0> > >>>> * num, 0.2.0, MIT/Apache-2.0> > >>>> * num-bigint, 0.2.2, MIT/Apache-2.0> > >>>> * num-complex, 0.2.3, MIT/Apache-2.0> > >>>> * num-integer, 0.1.41, MIT/Apache-2.0> > >>>> * num-iter, 0.1.39, MIT/Apache-2.0> > >>>> * num-rational, 0.2.2, MIT/Apache-2.0> > >>>> * num-traits, 0.2.8, MIT/Apache-2.0> > >>>> * parity-wasm, 0.31.3, MIT/Apache-2.0> > >>>> * png, 0.14.1, MIT/Apache-2.0> > >>>> * proc-macro2, 0.4.30, MIT/Apache-2.0> > >>>> * profiler_builtins, 0.1.0, profiler_builtins> > >>>> * quick-error, 1.2.2, MIT/Apache-2.0> > >>>> * quote, 0.3.15, MIT> > >>>> * quote, 0.6.13, MIT> > >>>> * rand, 0.6.5, MIT/Apache-2.0> > >>>> * rand_core, 0.4.0, MIT/Apache-2.0> > >>>> * rand_hc, 0.1.0, MIT/Apache-2.0> > >>>> * rand_pcg, 0.1.2, MIT/Apache-2.0> > >>>> * rawpointer, 0.1.0, MIT/Apache-2.0> > >>>> * regex, 1.1.9, MIT/Apache-2.0> > >>>> * regex-syntax, 0.6.8, MIT/Apache-2.0> > >>>> * ring, 0.14.6, ISC-style> > >>>> * rulinalg, 0.4.2, MIT> > >>>> * rustls, 0.15.2, Apache-2.0/ISC/MIT> > >>>> * rusty-machine, 0.5.4, MIT> > >>>> * ryu, 1.0.0, Apache-2.0> > >>>> * sct, 0.5.0, Apache-2.0/ISC/MIT> > >>>> * serde, 1.0.94, MIT> > >>>> * serde_cbor, 0.10.0, MIT/Apache-2.0> > >>>> * serde_derive, 1.0.94, MIT> > >>>> * serde_json, 1.0.40, MIT> > >>>> * sha1, 0.6.0, BSD-3-Clause> > >>>> * sha2, 0.8.0, sha2> > >>>> * spin, 0.5.0, MIT> > >>>> * syn, 0.11.11, MIT> > >>>> * syn, 0.15.39, MIT> > >>>> * synom, 0.11.3, MIT/Apache-2.0> > >>>> * termcolor, 1.0.5, Unlicense> > >>>> * thread_local, 0.3.6, Apache-2.0/MIT> > >>>> * tiff, 0.3. > >> [message truncated...] > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org > >> For additional commands, e-mail: general-h...@incubator.apache.org > >> > >> -- > > Matt Sicker <boa...@gmail.com> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org > For additional commands, e-mail: general-h...@incubator.apache.org > >