[데일리 문제] 정처기 실기 121번 문제 - 버퍼 오버플로우 공격 대응방안
121. 다음은 정해진 메모리의 범위를 넘치게 해서 원래 리턴 주소를 변경시켜 임의의 프로그램이나 함수를 실행시키는 시스템 해킹 기법인 버퍼 오버플로우 공격에 대한 대응방안이다. 괄호() 안에 들어갈 용어를 쓰시오.
[버퍼 오버플로우 대응방안]
- 운영체제의 주기적 최신 패치 적용
- 입력값 검증이 가능한 안전한 함수 사용 (Strncpy())
- ( ① ) : 카나리(canary)라고 불리는 무결성 체크용 값을 복귀주소와 변수 사이에 두고 버퍼 오버플로우 시 카나리 값이 변하게 되면 복귀주소를 호출하지 않는 방법
- ( ② ) : 함수 시작 시 복귀주소를 Global RET라는 특수 스택에 저장해 두고 함수 종료 시 저장된 값과 스택의 RET값을 비교해서 다를 경우 오버플로우로 간주하고 프로그램 실행을 중단하는 방법
- ( ③ ) : 메모리 공격을 방어하기 위해 주소 공간 배치를 난수화하고, 실행 시 마다 메모리 주소를 변경시켜 버퍼 오버플로우를 통한 특정주소 호출을 차단하는 방법
-
정답
① : 스택가드(Stackguard)
② : 스택쉴드(Stack Shield)
③ : ASLR(Address Space Layout Randomization)
-
해설
*ASLR : ASLR이라는 프로그램이 가상메모리에 매핑될 때 그 base address의 주소를 랜덤으로 돌려서 공격을 어렵게 하는 방어 기법.
댓글남기기