Hardware support for self-healing software services

  • Authors:
  • Stelios Sidiroglou;Michael E. Locasto;Angelos D. Keromytis

  • Affiliations:
  • Columbia University in the City of New York;Columbia University in the City of New York;Columbia University in the City of New York

  • Venue:
  • ACM SIGARCH Computer Architecture News - Special issue: Workshop on architectural support for security and anti-virus (WASSA)
  • Year:
  • 2005

Quantified Score

Hi-index 0.02

Visualization

Abstract

We propose a new approach for reacting to a wide variety of software failures, ranging from remotely exploitable vulnerabilities to more mundane bugs that cause abnormal program termination (e.g., illegal memory dereference). Our emphasis is in creating "self-healing" software that can protect itself against a recurring fault until a more comprehensive fix is applied. Our system consists of a set of sensors that monitor applications for various types of failure and an instruction-level emulator that is invoked for selected parts of a program's code. This emulator allows us to predict recurrences of faults and recover execution to a safe control flow. Using the emulator for small pieces of code, as directed by the sensors, allows us to minimize the performance impact on the immunized application. We describe the overall system architecture, highlighting a prototype implementation for the x86 platform. We discuss a virtual emulator, which uses existing and new processor features to improve performance.