DOI QR코드

DOI QR Code

Improving Compiler to Prevent Buffer Overflow Attack

버퍼오버플로우 공격 방지를 위한 컴파일러 기법

  • Kim, Jong-Ewi (Information Communication, Graduate School of Ajou University) ;
  • Lee, Seong-Uck (Information Communication, Graduate School of Ajou University) ;
  • Hong, Man-Pyo (Information Communication, Graduate School of Ajou University)
  • 김종의 (아주대학교 대학원 정보통신전문대학원) ;
  • 이성욱 (아주대학교 대학원 컴퓨터공학과) ;
  • 홍만표 (아주대학교 정보통신전문대학원)
  • Published : 2002.08.01

Abstract

Recently, the number of hacking, that use buffer overflow vulnerabilities, are increasing. Although the buffer overflow Problem has been known for a long time, for the following reasons, it continuos to present a serious security threat. There are three defense method of buffer overflow attack. First, allow overwrite but do not allow unauthorized change of control flow. Second, do not allow overwriting at all. Third, allow change of control flow, but prevents execution of injected code. This paper is for allowing overwrites but do not allow unauthorized change of control flow which is the solution of extending compiler. The previous defense method has two defects. First, a program company with overhead because it do much thing before than applying for the method In execution of process. Second, each time function returns, it store return address in reserved memory created by compiler. This cause waste of memory too much. The new proposed method is to extend compiler, by processing after compiling and linking time. To complement these defects, we can reduce things to do in execution time. By processing additional steps after compile/linking time and before execution time. We can reduce overhead.

최근 들어 버퍼오버플로우 취약성을 이용한 해킹 사례들이 늘어나고 있다. 버퍼오버플로우 공격을 탐지하는 방법은 크게 입력 데이터의 크기 검사 비정상적인 분기 금지, 비정상 행위 금지의 세가지 방식 중 하나를 취한다. 본 논문에서는 비정상적인 분기를 금지하는 방법을 살펴본 것이다. 기존의 방법은 부가적인 메모리를 필요로 하고, 컨트롤 플로우가 비정상적인 흐름을 찾기 위해 코드를 추가하고 실행함으로써 프로그램 실행시간의 저하를 단점으로 이야기할 수 있다. 본 논문에서는 부가적인 메모리 사용을 최소한으로 줄임으로 메모리 낭비를 저하시키고 실행시간에 컨트롤 플로우가 비정상적으로 흐르는 것을 막기 위한 작업들을 최소화함으로서 기존의 방법보다 더 효율적인 방법을 제안하고자 한다.

Keywords

References

  1. PLUS(포항공대 유닉스 보안 연구회), 'Security PLUS for UNIX', 영진출판사, 2000
  2. Tzi-cker Chiueh,Fu-Hau Hsu, 'RAD : A Compile-Time Solution to Buffer Overflow Attack,' Proceedings of The 21st IEEE International Conference on DISTRIBUTED COMPUTING SYSTEM 16-19 April 2001, p.409, 2001 https://doi.org/10.1109/ICDSC.2001.918971
  3. C. Cowan, C. Pu, D. Maier, H. Hinton, J. Walpole, P. Bakke, S. Beattie, A. Grier, P. Wagle, and Q. Zhang, 'Stackguard : Automatic adaptive detection and prevention of buffer-overflow attacks,' In Proceedings of the 7th USENIX Security Symposium, San Antonio, TX, pp.63-78, January, 1998
  4. Aleph One, 'Smashing the Stack for fun and profit', Phrack Magazine, 49(14), 1998
  5. Graham Glass, King Abies, 'UNIX System V Release 4, Programmers Guide : ANSI C and Programming Support Tools, Executable and Linkable Format (ELF), Tools Interface Standards (TIS), Portable Formats Specication' Version 1.1, Prentice Hall, 1992
  6. 김종의, 이성욱, 홍만표, '컴파일러 확장을 이용한 효율적인 버퍼오버플로우 공격 방지 기법', 정보과학회, 2001년도 가을 학술발표, 2001