Model-Carrying Code (MCC): a new paradigm for mobile-code security

  • Authors:
  • R. Sekar;C. R. Ramakrishnan;I. V. Ramakrishnan;S. A. Smolka

  • Affiliations:
  • SUNY at Stony Brook, NY;SUNY at Stony Brook, NY;SUNY at Stony Brook, NY;SUNY at Stony Brook, NY

  • Venue:
  • Proceedings of the 2001 workshop on New security paradigms
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

A new approach for ensuring the security of mobile code is proposed. Our approach enables a mobile-code consumer to understand and formally reason about what a piece of mobile code can do; check if the actions of the code are compatible with his/her security policies; and, if so, execute the code. The compatibility-checking process is automated, but if there are conflicts, consumers have the opportunity to refine their policies, taking into account the functionality provided by the mobile code. Finally, when the code is executed, our framework uses runtime-monitoring techniques to ensure that the code does not violate the consumer's (refined) policies.At the heart of our method, which we call model-carrying code (MCC), is the idea that a piece of mobile code comes equipped with an expressive yet concise model of the code's (security-relevant) behavior. The generation of such models can be automated. MCC enjoys several advantages over current approaches to mobile-code security. It protects consumers of mobile code from malicious or faulty code without unduly restricting the code's functionality. Also, it is applicable to the vast majority of code that exists today, which is written in C or C++. This contrasts with previous approaches such as Java 2 security and proof-carrying code, which are either language-specific or are limited to type-safe languages. Finally, MCC can be combined with existing techniques such as cryptographic signing and proof-carrying code to yield additional benefits.