FlowR: Aspect oriented programming for information flow control in ruby

Thomas F.J.M. Pasquier, Jean Bacon, Brian Shand

    Research output: Contribution to conferencePaperpeer-review

    11 Citations (Scopus)

    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 methods 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 techniques we use for Ruby can be applied to provide IFC for any Object Oriented Program (OOP) whose implementation language has an AOP library.

    Original languageEnglish
    Pages37-48
    Number of pages12
    DOIs
    Publication statusPublished - 2014
    Event13th International Conference on Modularity, MODULARITY 2014 (Formerly AOSD) - Lugano, Switzerland
    Duration: 22 Apr 201426 Apr 2014

    Conference

    Conference13th International Conference on Modularity, MODULARITY 2014 (Formerly AOSD)
    Country/TerritorySwitzerland
    CityLugano
    Period22/04/1426/04/14

    Keywords

    • Aspect Oriented Programming
    • Information Flow Control
    • Security

    Fingerprint

    Dive into the research topics of 'FlowR: Aspect oriented programming for information flow control in ruby'. Together they form a unique fingerprint.

    Cite this