[9급 국가직 정보시스템 보안 2016년 16번]

다음은 스택 버퍼 오버플로우 공격을 효과적으로 방어하기 위한 스택 보호 메커니즘을 서술한 것이다. ㉠ ~ ㉢에 들어갈 말을 바르게 연결한 것은?
스택가드(stackguard)는 가장 잘 알려진 보호 메커니즘 중 하나이다. 이것은 GCC 컴파일러의 확장 버전으로 추가의 함수 진입과 종료 코드를 삽입한다. 추가되는 함수 진입 코드는 지역변수를 위한 공간을 할당하기 전에 이전 ( ㉠ )주소 앞에 ( ㉡ ) 값을 기록한다. 추가되는 함수 종료 코드는 이전 ( ㉠ )를 복원하고 제어를 ( ㉢ )로 이동하는 보통의 함수 종료 연산을 수행하기 전에 ( ㉡ ) 값이 변경되었는지를 검사한다. 전통적인 스택 버퍼 오버플로우 시도는 이전 ( ㉠ )와 ( ㉢ )를 변경하기 위해 ( ㉡ ) 값을 바꾸어야 하는데, 만약 변경되었다면 프로그램을 종료하게 된다.
정보시스템 보안
  1. 스택포인터 반환주소 카나리아(canary)
  2. 스택포인터 카나리아(canary) 반환주소
  3. 프레임 포인터 카나리아(canary) 반환주소
  4. 프레임 포인터 반환주소 스택포인터
정답 ③

출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)