Declarative, Temporal, and Practical Programming with Capabilities
Declarative, Temporal, and Practical Programming with Capabilities
复制标题
具有声明式、临时性和实用编程功能
DOI:
--
复制
发表时间:
2013
期刊:
影响因子:
--
通讯作者:
R. Watson
中科院分区:
文献类型:
--
作者:
William R. Harris;S. Jha;T. Reps;Jonathan Anderson;R. Watson
New operating systems, such as the Capsicum capability system, allow a programmer to write an application that satisfies strong security properties by invoking security-specific system calls at a few key points in the program. However, rewriting an application to invoke such system calls correctly is an error-prone process: even the Capsicum developers have reported difficulties in rewriting programs to correctly invoke system calls. This paper describes capweave, a tool that takes as input (i) an LLVM program, and (ii) a declarative policy of the possibly-changing capabilities that a program must hold during its execution, and rewrites the program to use Capsicum system calls to enforce the policy. Our experiments demonstrate that capweave can be applied to rewrite security-critical UNIX utilities to satisfy practical security policies. capweave itself works quickly, and the runtime overhead incurred in the programs that capweave produces is generally low for practical workloads.