Buffer overflow protection based on adjusting code segment limit

Yu An Tan*, Ji Yan Zheng, Yuan Da Cao, Xue Lan Zhang

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Stack smashing is a common mode of buffer overflow attack for hijacking system control. A segment-based non-executable stack approach is proposed and evaluated to defend against stack-based buffer overflow attacks under Windows operating system and Intel 32-bit CPUs. A kernel device driver is designed to relocate the application's user-mode stack to the higher address and to modify the effective limit in the code segment descriptor, in order to exclude the relocated stack from the code segment. Once any code that attempts to execute the malicious code residing in the stack, a general-protection exception of exceeding the segment limit is triggered so the malicious code will be terminated. It is highly effective in preventing both known and yet unknown stack smashing attacks, and its performance overhead is lower than the page-based non-executable stack approach.

Original languageEnglish
Title of host publicationISCIT 2005 - International Symposium on Communications and Information Technologies 2005, Proceedings
Pages916-919
Number of pages4
DOIs
Publication statusPublished - 2005
EventISCIT 2005 - International Symposium on Communications and Information Technologies 2005 - Beijing, China
Duration: 12 Oct 200514 Oct 2005

Publication series

NameISCIT 2005 - International Symposium on Communications and Information Technologies 2005, Proceedings
VolumeI

Conference

ConferenceISCIT 2005 - International Symposium on Communications and Information Technologies 2005
Country/TerritoryChina
CityBeijing
Period12/10/0514/10/05

Keywords

  • Buffer Overflow
  • Kernel device driver
  • Memory management
  • Windows

Fingerprint

Dive into the research topics of 'Buffer overflow protection based on adjusting code segment limit'. Together they form a unique fingerprint.

Cite this