기출문제/정보처리기사

2020년 1회,2회(통합) 정보처리기사 기출문제 82번

엉클지니 2025. 4. 14. 21:32

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

      모드체크             리커버리 통제

      시스로그              스택가드

 

 

 

 

 😊
이 문제는 시스템 보안 / 메모리 보호 기법과 관련된 내용으로,
버퍼 오버플로우(Buffer Overflow) 공격을 막기 위한 기술을 묻는 유형이에요.


❓ 문제 82.

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


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


🎯 해설

📌 StackGuard란?

  • 스택 영역에서 함수 호출 시 생기는 **복귀 주소(Ret Address)**와 지역 변수 사이에
    👉 **"카나리(canary) 값"**이라는 특정한 임의 값을 삽입해 둡니다.
  • 프로그램 실행 중 이 카나리 값이 변경되면,
    ➤ 누군가가 **스택을 덮어썼다(오버플로우 시도했다)**고 판단하고
    ➤ 프로그램을 즉시 중단시킵니다! ⚠️

💡 StackGuard는 스택 오버플로우 공격을 사전에 차단하는 보안 기법이에요.


🧠 예시 그림으로 이해하면?

[ 스택 구조 ]

|----------------------|
|  지역 변수들         |
|----------------------|
|  Canary 값          |  ← 💡 StackGuard가 삽입
|----------------------|
|  복귀 주소 (RET)    |
|----------------------|
  • 버퍼 오버플로우 공격이 일어나면 Canary 값도 덮어씌워지기 때문에,
    프로그램은 이를 탐지하고 비정상 상황으로 처리 → 실행 중단!

❌ 오답 해설

보기 명칭 설명 오답 이유

모드체크 Mode Check CPU 모드(User/Kernel)를 확인하는 보안 절차 복귀 주소 보호와 무관
리커버리 통제 Recovery Control 시스템 장애 발생 시 복구 절차 오버플로우 감지는 아님
시스로그 Syslog 시스템 로그 기록 로그 기록용, 메모리 보호와 관계 없음
✅ ❹ 스택가드 StackGuard 스택 오버플로우 방지용 Canary 삽입 기술 ✔️ 정답!

✅ 결론

항목 내용

❓ 문제 Canary 값을 활용해 오버플로우 탐지 후 실행 중단하는 기술은?
🎯 정답 ❹ 스택가드 (StackGuard)
🔐 핵심 기능 스택 오버플로우 공격 탐지 및 차단 (복귀 주소 보호)

🎉 기억 팁!

🛡️ StackGuard = 스택을 "가드(guard)" 하는 기술!
📛 Canary = "내가 죽으면 뭔가 잘못된 거야!" → 변경되면 바로 경고! 🚨