버퍼 오버플로우(Buffer Overflow)는 때때로 해커가 시스템의 제어권을 가질수 있는 보안의 취약점이 될수 있다. National Institute of Standard and Technologies 에 따르면, 2003년도에 보고된 취약점의 23%가 버퍼 오버플로우 어택과 관련이 있다.(icat.nist.gov)
버퍼 오버플로우는 버퍼가 가지고 있는 버퍼 영역보다 더 많은 데이터를 넣음으로써 발생한다. 버퍼 오버플로우가 발생하였을 때, 버퍼의 영역밖에 데이터가 쓰여지게 된다. 때때로 버퍼영역밖에 쓰여진 데이터는 시스템에서 중요한 예약된 영역을 침범하게 된다. 고수준의 해커는 버퍼밖에 쓰여지는 데이터를 정확하게 예상하고, 고의로 프로그램에서 버퍼밖에 데이터를 쓰게 한다.
버퍼 오버플로우의 문제와 이것과 관련된 여러가지 방법은 실제 프로그램을 개발할 때 사용될 수 있다. 결론적으로 프로그래머는 이 문서를 읽을 필요가 있다. 이 글의 대상은 structured programming language 에 익숙해야 하고, C 언어와 IA-32 Intel Processor 에 익숙해야 한다.
|