Title :
Harbor: Software-based Memory Protection For Sensor Nodes
Author :
Kumar, Ram ; Kohler, Eddie ; Srivastava, Mani
Author_Institution :
Univ.of California at Los Angeles, Los Angeles
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.
Keywords :
fault location; integrated memory circuits; microcontrollers; operating systems (computers); virtual machines; wireless sensor networks; Harbor; application-specific virtual machines; control flow integrity; cross domain calls; device drivers; fault isolation; hardware memory protection; memory corruption; memory map; programming errors; resource constrained microcontrollers operating system components; run-time checks; sandboxing; sensor nodes; software-based memory protection; Application software; Computer aided instruction; Data structures; Hardware; Microcontrollers; Operating systems; Protection; Runtime; Sensor systems and applications; System testing; Design; Memory Protection; Performance; Reliability; Software Fault Isolation;
Conference_Titel :
Information Processing in Sensor Networks, 2007. IPSN 2007. 6th International Symposium on
Conference_Location :
Cambridge, MA
Print_ISBN :
978-1-59593-638-7
DOI :
10.1109/IPSN.2007.4379694