Harbor: software-based memory protection for sensor nodes

  • Authors:
  • Ram Kumar;Eddie Kohler;Mani Srivastava

  • Affiliations:
  • University of California at Los Angeles, Los Angeles, CA;University of California at Los Angeles, Los Angeles, CA;University of California at Los Angeles, Los Angeles, CA

  • Venue:
  • Proceedings of the 6th international conference on Information processing in sensor networks
  • Year:
  • 2007

Quantified Score

Hi-index 0.01

Visualization

Abstract

Many sensor nodes contain resource constrained microcontrollers where user level applications, operating system components, and device drivers share a single address space with no form of hardware memory protection. Programming errors in one application can easily corrupt the state of the operating system or other applications. In this paper, we propose Harbor, a memory protection system that prevents many forms of memory corruption. We use software based fault isolation ("sandboxing") to restrict application memory accesses and control flow to protection domains within the address space. A flexible and efficient memory map data structure records ownership and layout information for memory regions; writes are validated using the memory map. Control flow integrity is preserved by maintaining a safe stack that stores return addresses in a protected memory region. Run-time checks validate computed control flow instructions. Cross domain calls perform low-overhead control transfers between domains. Checks are introduced by rewriting an application's compiled binary. The sand-boxed result is verified on the sensor node before it is admitted for execution. Harbor's fault isolation properties depend only on the correctness of this verifier and the Harbor runtime. We have implemented and tested Harbor on the SOS operating system. Harbor detected and prevented memory corruption caused by programming errors in application modules that had been in use for several months. Harbor's overhead, though high, is less than that of application-specific virtual machines, and reasonable for typical sensor workloads.