A Study on Hacking Attack using Buffer Overflow and Strategy to Avoid the Attack

버퍼넘침(buffer overflow)을 이용한 해킹 공격기법 및 예방방안

  • 이형봉 (호남대학교 정보통신공학부) ;
  • 차홍준 (강원대학교 컴퓨터과학과)
  • Published : 2000.10.01

Abstract

버퍼넘침(buffer overflow)은 특정 프로그램 언어에서 발생하는 배열의 경계파괴 현상을 말한다. 그 대표적인 언어로서 C/C++을 들 수 있는데, 이들 언어는 기본적으로 스트링(문자열)을 정의함에 있어서 크기속성을 배제하고 끝을 의미하는 종료문자(delimiter character, NULL)을 사용함으로써 배열(버퍼)의 경계침범 가능성을 허용하고 있다. 이때 스택영역에 할당된 버퍼가 넘침다면, 주변에 위치한 지역변수, 레지스터 보관, 복귀주소 등의 값이 변질되어 원래의 의도된 제어흐름을 보장할 수 없게 된다. 특히 복귀주소 부분을 의도적으로 침범하여 특정 값을 덮어쓸 수 있다면 해당 프로그램의 동작을 인위적으로, 그리고 자유롭게 변경할 수 있게 된다. 본 논문에서는 이와 같은 스택영역에서의 버퍼넘침을 사용한 제어흐름 변경 해킹기법의 과정을 현존하는 UNIX 시스템 및 C/C++ 언어를 이용하여 살펴보고 대응방향을 모색한다.

Keywords