버퍼 오버플로(Buffer Overflow)란?
배열 등의 영역(버퍼)에 그 크기를 넘는 데이터를 써서 이웃한 메모리를 망가뜨리는 것. C 언어에서는 쓰기 대상의 크기를 모르는 strcpy나 gets, 범위를 확인하지 않고 인덱스를 사용하는 루프 등에서 일어나기 쉬우며, 미정의 동작이 된다. 스택 위의 버퍼가 넘치면 지역 변수나 함수의 복귀 주소가 고쳐 쓰여, 외부에서 준 입력으로 임의의 코드를 실행시키는 공격에 악용되기도 한다. 크기를 지정할 수 있는 함수나 범위 확인으로 막는다.
일본어 명칭: バッファオーバーフロー
버퍼 오버플로(Buffer Overflow)은(는) 링커, 로더, 실행 파일, C 언어 기초 등 2개 분야의 연습 문제 3개에 나와요.
분야: C 언어 기초