Existing solutions for tracking sensitive data and enforcing data usage policies have been intertwined with a specific host language---and multiple host languages in the case of database-backed applications. In this paper, we present an alternate, policy-agnostic approach that automatically enforces API-specific policies. We demonstrate that by associating policy enforcement with the API between the application and database, it is possible to automatically enforce rich and expressive policies across database-backed applications without depending on the application or database language. We present Estrela, a web framework that allows the specification of rich and expressive policies separately from the code and enforces the policies in a highly context-dependent manner. Estrela supports both query-level policies that are applied during data-access, and row-level policies that are more granular, complex and contextual. Estrela works with legacy applications without requiring any modification to the application code or the database for enforcing the policies. We build a prototype of Estrela and a language-agnostic version of Estrela in Python, on top of Django. We evaluate its performance and effectiveness by showing its application to a forum software, a social-networking site, a conference management system, and a company intranet. Estrela adds low overhead to existing applications and supports easy migration of existing applications for policy-compliance.
翻译:跟踪敏感数据和执行数据使用政策的现有解决方案与数据库支持的应用软件中特定主机语言和多种主机语言相交织。在本文件中,我们介绍了一种自动执行API特定政策的替代政策性不可知性办法。我们证明,通过将政策执行与API挂钩,在应用程序和数据库之间可以自动执行数据库支持的应用软件和数据库应用软件中的丰富和表达性政策,而不必取决于应用程序或数据库语言。我们介绍了Estrela(Estrela),这是一个网络框架,它使得丰富和表达性的政策能够与代码分开,并以高度依赖环境的方式执行政策。Estrela支持在数据获取期间应用的查询级政策,以及更注重颗粒、复杂和背景的行级政策。Estrela(Estrela)与遗留应用软件合作,而无需修改应用软件代码或数据库来实施政策。我们在Django顶端的Python(Python)中建立了Estrela原型和语言不可知性版本。我们评估其绩效和有效性,方法是向论坛软件、社会网络应用系统支持现有的低端网站应用程序。