Combining Static Analysis and Runtime Checking in Security Aspects for Distributed Tuple Spaces

Enforcing security policies to distributed systems is difficult, in particular, to a system containing untrusted components. We designed AspectKE*, an aspect-oriented programming language based on distributed tuple spaces to tackle this issue. One of the key features in AspectKE* is the program analysis predicates and functions that provide information on future behavior of a program. With a dual value evaluation mechanism that handles results of static analysis and runtime values at the same time, those functions and predicates enable the users to specify security policies in a uniform manner. Our two-staged implementation strategy gathers fundamental static analysis information at loadtime, so as to avoid performing all analysis at runtime. We built a compiler for AspectKE*, and successfully implemented security aspects for a distributed chat system and an electronic healthcare record workflow system.

[1]  Stefan Hanenberg,et al.  Evolvable Pattern Implementations Need Generic Aspects , 2004, RAM-SE.

[2]  Ken Arnold,et al.  JavaSpaces¿ Principles, Patterns, and Practice , 1999 .

[3]  Flemming Nielson,et al.  From Flow Logic to static type systems for coordination languages , 2010, Sci. Comput. Program..

[4]  Jan Vitek,et al.  Coordinating processes with secure spaces , 2003, Sci. Comput. Program..

[5]  Flemming Nielson,et al.  From Flow Logic to Static Type Systems for Coordination Languages , 2010, COORDINATION.

[6]  Roberto Gorrieri,et al.  Supporting Secure Coordination in SecSpaces , 2006, Fundam. Informaticae.

[7]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[8]  Luis Daniel Benavides Navarro,et al.  Explicitly distributed AOP using AWED , 2006, AOSD '06.

[9]  Hidehiko Masuhara,et al.  SCoPE: an AspectJ compiler for supporting user-defined analysis-based pointcuts , 2007, AOSD.

[10]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[11]  Nicolas Guelfi,et al.  Designing fault-tolerant mobile systems , 2003 .

[12]  Marco Bernardo,et al.  Formal Methods for Mobile Computing, 5th International School on Formal Methods for the Design of Computer, Communication, and Software Systems, SFM-Moby 2005, Bertinoro, Italy, April 26-30, 2005, Advanced Lectures , 2005, SFM.

[13]  Flemming Nielson,et al.  Proceedings of the 10th International Conference on Coordination Models and Languages (Coordination'08) , 2008 .

[14]  Hidehiko Masuhara,et al.  Dataflow Pointcut in Aspect-Oriented Programming , 2003, APLAS.

[15]  Ondrej Lhoták,et al.  Adding trace matching with free variables to AspectJ , 2005, OOPSLA '05.

[16]  Rocco De Nicola,et al.  Klava: a Java package for distributed and mobile applications , 2002, Softw. Pract. Exp..

[17]  Satoshi Matsuoka,et al.  ECOOP'97 — Object-Oriented Programming , 1997, Lecture Notes in Computer Science.

[18]  Andrew P. Black ECOOP 2005 - Object-Oriented Programming, 19th European Conference, Glasgow, UK, July 25-29, 2005, Proceedings , 2005, ECOOP.

[19]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[20]  Farhad Arbab,et al.  Coordination Models and Languages , 1998, Adv. Comput..

[21]  Rocco De Nicola,et al.  Mobile Distributed Programming in X-Klaim , 2005, SFM.

[22]  Eric Bodden,et al.  Aspect-Oriented Race Detection in Java , 2010, IEEE Transactions on Software Engineering.

[23]  Claude Kirchner,et al.  Weaving rewrite-based access control policies , 2007, FMSE '07.

[24]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[25]  Mark Evered,et al.  A Case Study in Access Control Requirements for a Health Information System , 2004, ACSW.

[26]  Rocco De Nicola,et al.  A Java Middleware for Guaranteeing Privacy of Distributed Tuple Spaces , 2002, FIDJI.

[27]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[28]  Rocco De Nicola,et al.  Types for access control , 2000, Theor. Comput. Sci..

[29]  Éric Tanter,et al.  A versatile kernel for multi-language AOP , 2005, GPCE'05.

[30]  Shigeru Chiba,et al.  Josh: an open AspectJ-like language , 2004, AOSD '04.

[31]  Thierry Coupaye,et al.  ASM: a code manipulation tool to implement adaptable systems , 2002 .

[32]  Rocco De Nicola,et al.  KLAIM: A Kernel Language for Agents Interaction and Mobility , 1998, IEEE Trans. Software Eng..

[33]  Jørgen Lindskov Knudsen ECOOP 2001 — Object-Oriented Programming , 2001, Lecture Notes in Computer Science.

[34]  H. James Hoover,et al.  Transactional pointcuts: designation reification and advice of interrelated join points , 2009, GPCE '09.

[35]  Gruia-Catalin Roman,et al.  Secure Sharing of Tuple Spaces in Ad Hoc Settings , 2003, SecCo.

[36]  S. Chiba,et al.  Remote pointcut: a language construct for distributed AOP , 2004, AOSD '04.

[37]  Wouter Joosen,et al.  Developing secure applications through aspect-oriented programming , 2004 .

[38]  Mira Mezini,et al.  Expressive Pointcuts for Increased Modularity , 2005, ECOOP.

[39]  Lujo Bauer,et al.  Composing security policies with polymer , 2005, PLDI '05.

[40]  Fan Yang,et al.  Aspects with Program Analysis for Security Policies , 2010 .

[41]  Eric Wohlstadter,et al.  Enforcing security for desktop clients using authority aspects , 2009, AOSD '09.