[데일리 문제] 정처기 실기 121번 문제 - 버퍼 오버플로우 공격 대응방안

생성일:

최대 1 분 소요

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

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

  1. 운영체제의 주기적 최신 패치 적용
  2. 입력값 검증이 가능한 안전한 함수 사용 (Strncpy())
  3. ( ① ) : 카나리(canary)라고 불리는 무결성 체크용 값을 복귀주소와 변수 사이에 두고 버퍼 오버플로우 시 카나리 값이 변하게 되면 복귀주소를 호출하지 않는 방법
  4. ( ② ) : 함수 시작 시 복귀주소를 Global RET라는 특수 스택에 저장해 두고 함수 종료 시 저장된 값과 스택의 RET값을 비교해서 다를 경우 오버플로우로 간주하고 프로그램 실행을 중단하는 방법
  5. ( ③ ) : 메모리 공격을 방어하기 위해 주소 공간 배치를 난수화하고, 실행 시 마다 메모리 주소를 변경시켜 버퍼 오버플로우를 통한 특정주소 호출을 차단하는 방법
  • 정답

    ① : 스택가드(Stackguard)

    ② : 스택쉴드(Stack Shield)

    ③ : ASLR(Address Space Layout Randomization)

  • 해설

    *ASLR : ASLR이라는 프로그램이 가상메모리에 매핑될 때 그 base address의 주소를 랜덤으로 돌려서 공격을 어렵게 하는 방어 기법.

댓글남기기