본문 바로가기

정보처리기사 Daily 문제

정보처리기사 실기 Daily 문제 10

출처 : 수제비 카페

다음은 정해진 메모리의 범위를 넘치게 해서 원래 리턴 주소를 변경시켜 임의의 프로그램이나 함수를 실행시키는 시스템 해킹 기법의 버퍼 오버플로우 공격에 대한 대응방안이다.

[버퍼 오버플로우 대응 방안]

1. 운영체제의 주기적 최신 패치 적용

2. 입력값 검증이 가능한 안전한 함수 사용 ( Strncpy() 등 )

3. 스택가드(Stackguard)

카나리(canary)라고 불리는 무결성 체크용 값을 복귀주소와 변수 사이에 삽입해두고 버퍼오버플로우 시 카나리 값이 변하게 되면 복귀주소를 호출하지 않는 방법

4. ( )

함수 시작 시 복귀주소를 Global RET 라는 특수 스택에 저장해두고 함수 종료 시 저장된 값과 스택의 RET 값을 비교해서 다를 경우 오버플로우로 간주하고 프로그램 실행을 중단하는 방법

5. ( )

메모리 공격을 방어하기 위해 주소공간 배치를 난수화하고, 실행 시 마다 메모리 주소를 변경시켜 버퍼 오버플로우를 통한 특정주소 호출을 차단하는 방법

스택쉴드 ( Stack Shield )

ASLR ( Address Space Layout Randomization )