An inherent security limitation with the classic multithreaded programming model is that all the threads share the same address space and, therefore, are implicitly assumed to be mutually trusted. This assumption, however, does not take into consideration of many modern multithreaded applications that involve multiple principals which do not fully trust each other. It remains challenging to retrofit the classic multithreaded programming model so that the security and privilege separation in multi-principal applications can be resolved. This paper proposes ARBITER, a run-time system and a set of security primitives, aimed at fine-grained and data-centric privilege separation in multithreaded applications. While enforcing effective isolation among principals, ARBITER still allows flexible sharing and communication between threads so that the multithreaded programming paradigm can be preserved. To realize controlled sharing in a fine-grained manner, we created a novel abstraction named ARBITER Secure Memory Segment (ASMS) and corresponding OS support. Programmers express security policies by labeling data and principals via ARBITER's API following a unified model. We ported a widely-used, in-memory database application (memcached) to ARBITER system, changing only around 100 LOC. Experiments indicate that only an average runtime overhead of 5.6% is induced to this security enhanced version of application.
翻译:经典多读编程模式固有的安全限制是,所有线条都具有相同的地址空间,因此,隐含地假定它们彼此信任。然而,这一假设没有考虑到许多涉及多种本彼此不完全信任的现代多读应用程序。改造经典多读编程模式仍然具有挑战性,以便解决多主要应用程序中的安全与特权分离问题。本文件提议建立一个运行时间系统和一套安全原始系统,目的是在多读应用程序中进行精细区分和以数据为中心的特权分离。在对主要应用程序实施有效隔离的同时,ARBITER仍然允许在线索之间进行灵活的共享和沟通,以便维护多读编程模式。为了以精细精细的方式实现有节制的共享,我们创建了一个新型的抽象信息,名为ARBitER 安全存储段(MS) 和相应的OS支持。程序员通过ARTITER 的 API 应用统一模型对数据和主要内容进行标注。我们只是将一个广泛使用的AVALMANDLA的升级版。我们将这一系统移植到升级的高级数据库中。