Secure calling contexts for stack inspection

  • Authors:
  • Frédéric Besson;Thomas de Grenier de Latour;Thomas Jensen

  • Affiliations:
  • IRISA, Campus de Beaulieu, France;IRISA, Campus de Beaulieu, France;IRISA, Campus de Beaulieu, France

  • Venue:
  • Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
  • Year:
  • 2002

Quantified Score

Hi-index 0.01

Visualization

Abstract

Stack inspection is a mechanism for programming secure applications by which a method can obtain information from the call stack about the code that (directly or indirectly) invoked it. This mechanism plays a fundamental role in the security architecture of Java and the .NET Common Language Runtime. A central problem with stack inspection is to determine to what extent the local checks inserted into the code are sufficient to guarantee that a global security property is enforced. In this paper, we present a technique for inferring a secure calling context for a method. By a secure calling context we mean a pre-condition on the call stack sufficient for guaranteeing that execution of the method will not violate a given global property. This is particularly useful for annotating library code in order to avoid having to re-analyse libraries for every new application. The technique is a constraint based static program analysis implemented via fixed point iteration over an abstract domain of linear temporal logic properties.