A recent, active area in computer security research aims to use program analysis and transformation to ensure security. This tutorial is an overview aimed at researchers and practitioners with a background in compilers.Abstract
Conventional computer security mechanisms such as firewalls, access control, and encryption treat programs as black boxes and as a result are unable to effectively address the emerging threats to security and privacy that arise from program behavior. Language-based enforcement of security offers a new set of tools for ensuring that our increasingly complex computing systems satisfy the security needs of their users. Program analyses and transformations, carried out at compile time or load time, can be used to detect or prevent security violations with low cost. Security analyses based in a rigorous notion of language semantics offer the possibility of fundamentally stronger security guarantees, while also presenting a framework in which unresolved foundational issues in security can be addressed.
This tutorial presents an overview of current research on using program analysis and transformation to provide assurance of security properties such as confidentiality, secrecy, integrity, availability, and memory safety. Topics covered include:
Andrew Myers is an Assistant Professor in the Computer Science Department, Cornell University, Ithaca, NY. His research interests include computer security, programming languages, and distributed object systems. His work on computer security has focused on practical, sound, expressive languages and systems for enforcing information security.