본문 바로가기
기출문제풀이/정보처리기사 2020년 1, 2회

94. 메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장해 두었다가,그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술은?

by 게토레이쉐이크 2025. 6. 1.

[정보처리기사 기출 해설] 94번 – 스택가드(StackGuard) 보안 기술

📌 출처: 2020년 정보처리기사 필기 1회차
📖 과목: 정보보안


❓ 기출문제 원문

94. 메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장해 두었다가,
그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술은?

① 모드체크
② 리커버리 통제
③ 시스로그
④ 스택가드


✅ 정답: ④ 스택가드(StackGuard)


📘 개념 설명: 스택가드(StackGuard) 기술

StackGuard는 버퍼 오버플로우(Buffer Overflow) 공격을 방지하기 위한 런타임 보호 기법입니다.

  • 복귀 주소(Return Address) 보호를 위해 그 앞에 카나리(canary) 값을 삽입
  • 프로그램 실행 중, 함수가 리턴되기 전 이 카나리 값을 확인하여 값이 변경되었을 경우 스택 오버플로우 공격으로 간주하고 종료
  • 대표적인 컴파일러 보안 옵션 중 하나 (예: GCC의 -fstack-protector)

🔍 정답 해설

문제에서 설명한 “복귀 주소와 변수 사이에 특정 값을 저장하고, 변경 여부를 감시”하는 방식은 StackGuard의 핵심 원리인 카나리 값 검사입니다.

따라서 정답은 **④번 스택가드(StackGuard)**입니다.


❌ 보기별 오답 해설

  • ① 모드체크: 일반적으로 접근 권한을 확인하는 검증 기술
  • ② 리커버리 통제: 장애 발생 시 시스템 복구를 위한 절차 또는 통제 방안
  • ③ 시스로그(Syslog): 시스템 로그 수집 및 분석 시스템으로, 메모리 보호와는 무관

🎯 핵심 요약

  • StackGuard는 복귀 주소 보호용 보안 기법으로, 스택 오버플로우 탐지에 효과적입니다.
  • 공격자가 복귀 주소를 덮어쓰는 것을 방지합니다.
  • 정답은 **④번 스택가드(StackGuard)**입니다.

📎 참고자료

  • 『시나공 정보처리기사 필기 기출문제집 (2020년 1회)』
  • 스택 보호 기법 (Stack Smashing Protection, StackGuard)
  • 한국산업인력공단 정보처리기사 시험 문제지