Katana: Towards Patching as a Runtime Part of the Compiler-Linker-Loader Toolchain

  • Authors:
  • Sergey Bratus;James Oakley;Ashwin Ramaswamy;Sean W. Smith;Michael E. Locasto

  • Affiliations:
  • Dartmouth College, USA;Dartmouth College, USA;Dartmouth College, USA;Dartmouth College, USA;George Mason University, USA

  • Venue:
  • International Journal of Secure Software Engineering
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

The mechanics of hot patching the process of upgrading a program while it executes remain understudied, even though it offers capabilities that act as practical benefits for both consumer and mission-critical systems. A reliable hot patching procedure would serve particularly well by reducing the downtime necessary for critical functionality or security upgrades. However, hot patching also carries the risk-real or perceived-of leaving the system in an inconsistent state, which leads many owners to forgo its benefits as too risky; for systems where availability is critical, this decision may result in leaving systems un-patched and vulnerable. In this paper, the authors present a novel method for hot patching ELF binaries that supports synchronized global data and code updates, and reasoning about the results of applying the hot patch. In this regard, the Patch Object format was developed to encode patches as a special type of ELF re-locatable object file. The authors then built a tool, Katana, which automatically creates these patch objects as a by-product of the standard source build process. Katana also allows an end-user to apply the Patch Objects to a running process.