Noninterference Through Secure Multi-Execution

被引:114
作者
Devriese, Dominique [1 ]
Piessens, Frank [1 ]
机构
[1] KULeuven, DistriNet Res Grp, Louvain, Belgium
来源
2010 IEEE SYMPOSIUM ON SECURITY AND PRIVACY | 2010年
关键词
INFORMATION-FLOW;
D O I
10.1109/SP.2010.15
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
A program is defined to be noninterferent if its outputs cannot be influenced by inputs at a higher security level than their own. Various researchers have demonstrated how this property (or closely related properties) can be achieved through information flow analysis, using either a static analysis (with a type system or otherwise), or using a dynamic monitoring system. We propose an alternative approach, based on a technique we call secure multi-execution. The main idea is to execute a program multiple times, once for each security level, using special rules for I/O operations. Outputs are only produced in the execution linked to their security level. Inputs are replaced by default inputs except in executions linked to their security level or higher. Input side effects are supported by making higher-security-level executions reuse inputs obtained in lower-security-level threads. We show that this approach is interesting from both a theoretical and practical viewpoint. Theoretically, we prove for a simple deterministic language with I/O operations, that this approach guarantees complete soundness (even for the timing and termination covert channels), as well as good precision (identical I/O for terminating runs of termination-sensitively noninterferent programs). On the practical side, we present an experiment implementing secure multi-execution in the mainstream Spidermonkey Javascript engine, exploiting parallelism on a current multi-core computer. Benchmark results of execution time and memory for the Google Chrome v8 Benchmark suite show that the approach is practical for a mainstream browser setting. Certain programs are even executed faster under secure multi-execution than under the standard execution. We discuss challenges and propose possible solutions for implementing the technique in a real browser, in particular handling the DOM tree and browser callback functions. Finally, we discuss how secure multi-execution can be extended to handle language features like exceptions, concurrency or nondeterminism.
引用
收藏
页码:109 / 124
页数:16
相关论文
共 27 条
[1]  
[Anonymous], VALGR US MAN MASS HE
[2]  
[Anonymous], MOZ SPID WEBS
[3]  
[Anonymous], 2006, ANN ASIAN COMP SCI C
[4]  
[Anonymous], GOOGL CHROM V8 BENCH
[5]  
[Anonymous], 2006, P AS COMP SCI C SEC
[6]   Secure information flow by self-composition [J].
Barthe, G ;
D'Argenio, PR ;
Rezk, T .
17TH IEEE COMPUTER SECURITY FOUNDATIONS WORKSHOP, PROCEEDINGS, 2004, :100-114
[7]   Staged Information Flow for Java']JavaScript [J].
Chugh, Ravi ;
Meister, Jeffrey A. ;
Jhala, Ranjit ;
Lerner, Sorin .
PLDI'09 PROCEEDINGS OF THE 2009 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2009, :50-62
[8]   CERTIFICATION OF PROGRAMS FOR SECURE INFORMATION-FLOW [J].
DENNING, DE ;
DENNING, PJ .
COMMUNICATIONS OF THE ACM, 1977, 20 (07) :504-513
[9]  
Devriese D., SECURE MULTI EXECUTI
[10]  
Heintze N., 1998, Conference Record of POPL '98: 25th ACM SIGPLAN-SIGACT. Symposium on Principles of Programming Languages, P365, DOI 10.1145/268946.268976