문제
메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장해 두었다가 그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술은?
① 모드체크 ② 리커버리 통제 ③ 시스로그 ④ 스택가드
정답
4번
해설
정답: 4. 스택가드(Stack Guard)는 복귀 주소와 변수 사이에 카나리값을 두어 변조 시 오버플로우로 판단해 실행을 중단한다.
오답 풀이
- 1번: 모드체크는 버퍼 오버플로우 방지 기술이 아니다.
- 2번: 리커버리 통제는 복구 통제 절차이다.
- 3번: 시스로그는 시스템 로그 기록 기능이다.
- 4번: 카나리값으로 변조를 탐지하는 것은 스택가드이므로 정답이다.
보충 개념 스택가드는 카나리(canary) 값으로 스택 기반 버퍼 오버플로우 공격을 방어한다.