Abstract
Although many countermeasures have been developed for desktop and server environments, buffer overflows still pose a big threat. The same approach can be used to target mobile devices. Unfortunately, they place more severe limitations on countermeasures. Not only are the performance requirements at least as important, memory and power consumption need to be considered as well. Moreover, processors used in mobile devices generally are equipped with a different instruction set. Therefore countermeasures may not be ported easily.
Multistack is an effective countermeasure against stack-based buffer overflows. It protects applications by using multiple stacks to separate possible attack targets from possible sources. However, its performance overhead will no longer be negligible on the ARMv7 platform (widely used on mobile devices) and it wastes too much memory, making it too costly for mobile applications. We propose 3 methods to reduce memory overhead up to 28% with only a 3.91% performance overhead.
Chapter PDF
Similar content being viewed by others
References
Aleph1: Smashing the stack for fun and profit. Phrack 49 (1996)
Erlingsson, Ú., Younan, Y., Piessens, F.: Handbook of information and communication security (2010)
Kendall, S.: Bcc: Runtime checking for C programs. In: Proceedings, The Association, p. 5 (1983)
Larus, J., Ball, T., Das, M., DeLine, R., Fähndrich, M., Pincus, J., Rajamani, S., Venkatapathy, R.: Righting software. IEEE Software, 92–100 (2004)
Necula, G., Condit, J., Harren, M., McPeak, S., Weimer, W.: CCured: Type-safe retrofitting of legacy software. ACM Transactions on Programming Languages and Systems (TOPLAS) 27(3), 526 (2005)
Cowan, C., Pu, C., Maier, D., Hintony, H., Walpole, J., Bakke, P., Beattie, S., Grier, A., Wagle, P., Zhang, Q.: Stackguard: automatic adaptive detection and prevention of buffer-overflow attacks. In: SSYM’98: Proceedings of the 7th conference on USENIX Security Symposium, Berkeley, CA, USA. USENIX Association (1998)
Etoh, H., Yoda, K.: Protecting from stack-smashing attacks. Technical report, IBM Research Division, Tokyo Research Laboratory (June 2000)
Team, P.: Documentation for the PaX project. Homepage of The PaX Team (2003)
Bhatkar, S., DuVarney, D.C., Sekar, R.: Address obfuscation: An efficient approach to combat a broad range of memory error exploits. In: Proceedings of the 12th USENIX Security Symposium, August 2003, pp. 105–120 (2003)
Strackx, R., Younan, Y., Philippaerts, P., Piessens, F., Lachmund, S., Walter, T.: Breaking the memory secrecy assumption. In: EUROSEC ’09: Proceedings of the Second European Workshop on System Security, New York, NY, USA, pp. 1–8. ACM, New York (2009)
National Institute of Standards and Technology: National vulnerability database statistics (2009), http://nvd.nist.gov/statistics.cfm
Younan, Y., Philippaerts, P., Piessens, F., Joosen, W., Lachmund, S., Walter, T.: Filter-resistant code injection on ARM. In: Proceedings of the 16th ACM conference on Computer and communications security, pp. 11–20. ACM, New York (2009)
National vulnerability database, cve-2006-4131 (2006)
Younan, Y., Pozza, D., Piessens, F., Joosen, W.: Extended protection against stack smashing attacks without performance loss. In: ACSAC (2006)
Younan, Y., Joosen, W., Piessens, F.: Code injection in c and c++: A survey of vulnerabilities and countermeasures. Technical report, Departement Computerwetenschappen, Katholieke Universiteit Leuven (2004)
Bulba, Kil3r: Bypassing stackguard and stackshield. Phrack Magazine 0xa(0x38) (January 2000)
Ergin, O., Balkan, D., Ghose, K., Ponomarev, D.: Register packing: Exploiting narrow-width operands for reducing register file pressure. In: Proceedings of the 37th International Symposium on Microarchitecture (2004)
Guthaus, M., Ringenberg, J., Ernst, D., Austin, T., Mudge, T., Brown, R.: MiBench: A free, commercially representative embedded benchmark suite. In: IEEE 4th annual Workshop on Workload Characterization, vol. 131, pp. 184–193 (2001)
Strackx, R.: Protecting mobile devices against stack-based buffer overflows. Master’s thesis, Katholiek Universiteit Leuven, Celestijnenlaan 200A, B-3001 Leuven (June 2009)
Younan, Y.: Efficient countermeasures for software vulnerabilities due to memory management errors. PhD thesis, Katholiek Universiteit Leuven, Celestijnenlaan 200A, B-3001 Leuven (2008)
Shankar, U., Talwar, K., Foster, J., Wagner, D.: Detecting format string vulnerabilities with type qaualifiers. In: Proceedings of the 10th conference on USENIX Security Symposium, vol. 10, p. 16. USENIX Association (2001)
Francillon, A., Perito, D., Castelluccia, C.: Defending Embedded Systems Against Control Flow Attacks
Non-executable stack patch (1998), http://www.openwall.com
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 IFIP International Federation for Information Processing
About this paper
Cite this paper
Strackx, R., Younan, Y., Philippaerts, P., Piessens, F. (2010). Efficient and Effective Buffer Overflow Protection on ARM Processors. In: Samarati, P., Tunstall, M., Posegga, J., Markantonakis, K., Sauveron, D. (eds) Information Security Theory and Practices. Security and Privacy of Pervasive Systems and Smart Devices. WISTP 2010. Lecture Notes in Computer Science, vol 6033. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-12368-9_1
Download citation
DOI: https://doi.org/10.1007/978-3-642-12368-9_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-12367-2
Online ISBN: 978-3-642-12368-9
eBook Packages: Computer ScienceComputer Science (R0)