처음으로

정보처리기사

2020년 06월 06일 기출문제

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

*해설

<문제 해설>
Stack Protection : Stack Overflow를 탐지하고 보안을 강화시키는 기법
Stack Guard : Stack 상에 일정한 주소번지에 프로그램이 선언한 canary를 심어 두어, 스택의 변조 된 경우에, canary를 체크하여 프로그램이 비정상적으로 종료 시키는 기법
Stack Shield : 함수의 리턴주소를 복사하여 실제 리턴주소를 참조하지 않고 함수를 리턴해주는 기법
Syslog : 시스템에서 로그메시지를 처리하기 위해서 제공
Recovery Control : 부적절한 사건/상황으로 인해 발생한 피해를 극복, 장애/혼란을 정돈하고 정상상태로 회복

+ 카나리(Canary 또는 Canaries) : buffer와 SFP 사이에 buffer overflow를 탐지하기 위한 특정 값(canary value)를 삽입하는 기법
+ Canary 종류 : terminator, random, random XOR (스택가드는 canary 세 가지 모두를 지원)
+ ProPolice 종류 : terminator와 random
+ StackGuard와 ProPolice는 (함수 포인터들을 오버플로우하는) 자동으로 할당된 구조체들에서 오버플로우를 방어하지 못한다.
공유
해설보기
정답보기
<<이전
다음>>
목록
서버에 요청 중입니다. 잠시만 기다려 주십시오...