Abstract
Many embedded devices used to control critical infrastructure assets are based on the Harvard architecture. This architecture separates data and program memory into independent address spaces, unlike the von Neumann architecture, which uses a single address space for data and program code. Buffer overflow attacks in desktop and server platforms based on the von Neumann model have been studied extensively. However, buffer overflows in Harvard architectures have only just begun to receive attention. This paper demonstrates that stack-based buffer overflow vulnerabilities exist in embedded devices based on the Harvard architecture and that the vulnerabilities are easily exploited. The paper shows how the reversal in the direction of stack growth simplifies attacks by providing easier access to critical execution controls. Also, the paper examines defense techniques used in server and desktop systems and discusses their applicability to Harvard class machines.
Chapter PDF
Similar content being viewed by others
References
Aleph One, Smashing the stack for fun and profit, Phrack, vol. 49(14), 1996.
J. Anderson, Computer Security Technology Planning Study, ESD-TR-73-51, Vol. 1, Deputy for Command and Management Systems, HQ Electronic Systems Division, United States Air Force, Hanscom Field, Bedford, Massachusetts, 1972.
C. Cowan, C. Pu, D. Maier, J. Walpole, P. Burke, S. Beattie, A. Grier, P. Wagle and Q. Zhang, StackGuard: Automatic adaptive detection and prevention of buffer overflow attacks, Proceedings of the Seventh USENIX Security Symposium, pp. 63–78, 1998.
S. Eisenbach, Functional Programming: Languages, Tools and Architectures, Ellis Horwood, Chichester, United Kingdom, 1987.
A. Francillon and C. Castelluccia, Code injection attacks on Harvard-architecture devices, Proceedings of the Fifteenth ACM Conference on Computer and Communications Security, pp. 15–26, 2008.
Q. Gu and R. Noorani, Towards self-propagate mal-packets in sensor networks, Proceedings of the First ACM Conference on Wireless Network Security, pp. 172–182, 2008.
N. Hanebutte and P. Oman, An evaluation of static source code analyzers for automated vulnerability detection, Proceedings of the Ninth IASTED International Conference on Software Engineering and Applications, pp. 112–117, 2005.
N. Hanebutte and P. Oman, Software vulnerability mitigation as a proper subset of software maintenance, Journal of Software Maintenance and Evolution, vol. 17(6), pp. 379–400, 2006.
Hitex, C51 Primer: An Introduction to the Use of the Keil C51 Compiler on the 8051 Family, Coventry, United Kingdom (www.hitex.com/fileadmin /img/download/c51_primer_290404.pdf), 2004.
J. Koziol, D. Litchfield, D. Aitel, C. Anley, S. Eren, N. Mehta and R. Hassell, The Shellcoder’s Handbook, Wiley, Indianapolis, Indiana, 2004.
D. Seeley, A tour of the worm, Proceedings of the Winter USENIX Conference, pp. 287–304, 1989.
Solar Designer, return to-libc attack, Bugtraq, 1997.
R. Stallman, Using the GNU Compiler Collection, GNU Press, Boston, Massachusetts (gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc.pdf), 2003.
J. Waclawek, The unofficial history of 8051 (www.efton.sk/t0t1/history 8051.pdf), 1996.
W. Wolf, Computers as Components: Principles of Embedded Computing System Design, Morgan Kaufmann, San Diego, California, 2001.
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 IFIP International Federation for Information Processing
About this paper
Cite this paper
Watts, K., Oman, P. (2009). Stack-Based Buffer Overflows in Harvard Class Embedded Systems. In: Palmer, C., Shenoi, S. (eds) Critical Infrastructure Protection III. ICCIP 2009. IFIP Advances in Information and Communication Technology, vol 311. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04798-5_13
Download citation
DOI: https://doi.org/10.1007/978-3-642-04798-5_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-04797-8
Online ISBN: 978-3-642-04798-5
eBook Packages: Computer ScienceComputer Science (R0)