Publication | Closed Access
Between mutual trust and mutual distrust: practical fine-grained privilege separation in multithreaded applications
20
Citations
19
References
2015
Year
EngineeringInformation SecurityTrust Management ArchitectureSoftware SystemsComputer ArchitectureSoftware AnalysisFormal VerificationHardware SecurityArbiter SystemMutual DistrustComputational TrustSecure ComputingPrivilege SeparationTrusted Operating SystemOperating System SecurityNetworked Computer SystemsData PrivacyTrustSecure By DesignComputer ScienceWeb ServerMultithreaded ApplicationsLanguage-based SecurityData SecurityCryptographyBetween Mutual TrustTrustworthy ComputingTrusted SystemSoftware SecurityOperating SystemsProgram AnalysisSecuritySystem Software
Threads in a multithreaded process share the same address space and thus are implicitly assumed to be mutually trusted. However, one (compromised) thread attacking another is a real world threat. It remains challenging to achieve privilege separation for multithreaded applications so that the compromise or malfunction of one thread does not lead to data contamination or data leakage of other threads. The Arbiter system proposed in this paper explores the solution space. In particular, we find that page table protection bits can be leveraged to do efficient reference monitoring if data objects with the same accessibility stay in the same page. We design and implement Arbiter which consists of a new memory allocation mechanism, a policy manager, and a set of APIs. Programmers specify security policy through annotating the source code. We apply Arbiter to three applications, an in-memory key/- value store, a web server, and a userspace file system, and show how they can benefit from Arbiter in terms of security. Our experiments on the three applications show that Arbiter reduces application throughput by less than 10% and increases CPU utilization by 1.37-1.55×.
| Year | Citations | |
|---|---|---|
Page 1
Page 1