본문 바로가기
IT/note

Buffer Overflow의 의도와 예

by 어느해겨울 2009. 12. 26.

간략히 설명하는 버퍼 오버플로우는,

  버퍼 오버플로우의 개념은 덮어쓰기이다. 벗어난 데이터는 인접 메모리를 덮어 쓰게 되는데 다른 데이터가 포함 되어 있을 수도 있는데, 손상을 받을 수 있는 데이터는 프로그램 변수와 프로그램 흐름 제어 데이터도 포함된다. 이로 인해 잘못된 프로그램 거동이 나타날 수 있으며, 메모리 접근 오류, 잘못된 결과, 프로그램 종료, 또는 시스템 보안 누설이 발생할 수 있다.

A

B

0

0

0

0

0

0

0

1



6바이트 길이 스트링 버퍼 A와 2바이트 길이 정수형 B, 우선 A의 6바이트 모두 만 포함하며 B는 숫자 1을 포함한 1바이트 크기이다. 여기에 문자열 network를 A버퍼에 저장한다.

A

B

n

e

t

w

o

r

k

0


여기서 문자열 network의 끝을 알리는 널 값 0이 스트링의 뒤에 위치하면서 기존의 B값을 덮어쓴다.


이런 식으로 의도치 않게 혹은 악의적으로 프로그램의 메모리를 공격하는 방법이다.


'IT > note' 카테고리의 다른 글

웜의 정의와 사례  (0) 2009.12.26
Virus/Worm의 설명 및 구분  (0) 2009.12.26
IT 상식_4  (0) 2009.12.25
IT 상식_3  (0) 2009.12.25
IT 상식_2  (0) 2009.12.25

댓글