Publication:

FlowR: Aspect Oriented Programming for Information Flow Control in Ruby

Loading...
Thumbnail Image

Date

2014

Published Version

Journal Title

Journal ISSN

Volume Title

Publisher

ACM
The Harvard community has made this article openly available. Please share how this access benefits you.

Research Projects

Organizational Units

Journal Issue

Citation

Pasquier, Thomas, Jean Bacon, and Brian Shand. 2014. FlowR: Aspect Oriented Programming for Information Flow Control in Ruby In Proceedings of the 13th international conference on Modularity - MODULARITY '14, Lugano, Switzerland, April 22-26, 2014: 37-48.

Abstract

This paper reports on our experience with providing Information Flow Control (IFC) as a library. Our aim was to support the use of an unmodified Platform as a Service (PaaS) cloud infrastructure by IFC-aware web applications. We discuss how Aspect Oriented Programming (AOP) overcomes the limitations of RubyTrack, our first approach. Although use of AOP has been mentioned as a possibility in past IFC literature we believe this paper to be the first illustration of how such an implementation can be attempted. We discuss how we built FlowR (Information Flow Control for Ruby), a library extending Ruby to provide IFC primitives using AOP via the Aquarium open source library. Previous attempts at providing IFC as a language extension required either modification of an interpreter or significant code rewriting. FlowR provides a strong separation between functional implementation and security constraints which supports easier development and maintenance; we illustrate with practical examples. In addition, we provide new primitives to describe IFC constraints on objects, classes and meth- ods that, to our knowledge, are not present in related work and take full advantage of an object oriented language (OO language). The experience reported here makes us confident that the tech- niques we use for Ruby can be applied to provide IFC for any Ob- ject Oriented Program (OOP) whose implementation language has an AOP library. D.2.2 [Software Engineer- ing]: Design Tools and Techniques; D.2.4 [Software Engineer- ing]: Software/Program Verification Keywords Information Flow Control, Aspect Oriented Program- ming, Security

Description

Other Available Sources

Research Data

Keywords

Information Flow Control, Aspect Oriented Programming, Security

Terms of Use

This article is made available under the terms and conditions applicable to Other Posted Material (LAA), as set forth at Terms of Service

Endorsement

Review

Supplemented By

Related Stories