Cross-tier, Label-based Security Enforcement for Web Applications

被引:0
作者
Corcoran, Brian J. [1 ]
Swamy, Nikhil
Hicks, Michael [1 ]
机构
[1] Univ Maryland, College Pk, MD 20742 USA
来源
ACM SIGMOD/PODS 2009 CONFERENCE | 2009年
关键词
database programming; security enforcement; web applications; type systems; compilers;
D O I
暂无
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
This paper presents SELINKS, a programming language focused on building secure multi-tier web applications. SELINKS provides a uniform programming model, in the style of LINQ and Ruby on Rails, with language syntax for accessing objects residing either in the database or at the server. Object-level security policies are expressed as fully-customizable, first-class labels which may themselves be subject to security policies. Access to labeled data is mediated via trusted, user-provided policy enforcement functions. SELINKS has two novel features that ensure security policies are enforced correctly and efficiently. First, SELINKS implements a type system called Fable that allows a protected object's type to refer to its protecting label. The type system can check that labeled data is never accessed directly by the program without, first consulting the appropriate policy enforcement function. Second, SELINKS compiles policy enforcement code to database-resident user-defined functions that can be called directly during query processing. Database-side checking avoids transferring data to the server needlessly, while still allowing policies to be expressed in a customizable and portable manner. Our experience with two sizable web applications, a model health-care database and a secure wiki with fine-grained security policies, indicates that cross-tier policy enforcement in SELINKS is flexible, relatively easy to use, and, when compared to a single-tier approach, improves throughput by nearly an order of magnitude. SELINKS is freely available.
引用
收藏
页码:269 / 281
页数:13
相关论文
共 36 条
[1]  
AMBLER SW, 2006, AGILE DATABASE TECHN
[2]  
An D., 2009, CSTR4934 U MAR
[3]  
[Anonymous], 2008, LINQ PROJECT
[4]  
[Anonymous], AUTHORIZATION PERMIS
[5]  
[Anonymous], 2008, VOLTA
[6]  
[Anonymous], XACML 2 0 INT SCEN
[7]  
[Anonymous], 2006, REUTERS OCT
[8]  
[Anonymous], 2008, JAV EE GLANC
[9]  
[Anonymous], 2003, P 1 APPSEM 2 WORKSHO
[10]  
[Anonymous], HOP PROGR LANG