하드웨어 보안의 최신 동향

Intel의 CET(제어 흐름 강제 기술) 등에서 채택된 하드웨어 섀도 스택의 설명으로 올바른 것은?

  1. A스택의 내용을 일정 시간마다 비휘발성 메모리에 저장해 두고, 프로그램이 비정상 종료했을 때 그 내용으로부터 실행을 재개한다
  2. B함수의 지역 변수를 일반 스택과는 별도의 고속 메모리에 두어, 캐시 미스를 줄이고 함수 호출을 빠르게 한다
  3. C함수를 호출할 때 복귀 주소의 복제를 일반 쓰기로는 바꿀 수 없는 별도의 스택에도 두고, 복귀할 때 둘을 비교한다
정답과 해설 보기

정답: C. 함수를 호출할 때 복귀 주소의 복제를 일반 쓰기로는 바꿀 수 없는 별도의 스택에도 두고, 복귀할 때 둘을 비교한다

스택의 버퍼 오버플로 등으로 복귀 주소가 바뀌어 쓰이면, 함수에서 복귀할 때 공격자가 고른 위치로 실행이 옮겨 가 버립니다. 섀도 스택에서는 call 명령이 복귀 주소를 일반 스택과 섀도 스택 양쪽에 쌓고, ret 명령이 둘을 비교합니다. 섀도 스택의 페이지는 일반 스토어 명령으로는 쓸 수 없는 특별한 종류의 페이지이므로, 일반 스택을 바꿔 쓴 공격자도 복제까지는 바꿀 수 없으며, 일치하지 않으면 예외가 일어나 실행이 멈춥니다.

이 분야 연습하기 분야로 돌아가기

하드웨어 보안의 최신 동향의 다른 문제

  1. 제어 흐름 무결성을 하드웨어로 지원하는 기능에 대해, 함수에서의 복귀를 보호하는 것과 함수 포인터 등에 의한 간접 호출이나 점프를 보호하는 것의 조합으로 올바른 것은?
  2. DRAM의 미세화가 진행될수록 로우해머가 일어나기 쉬워진다고 하는 이유로 올바른 것은?
  3. DRAM 내부의 TRR(타깃 로우 리프레시)에 의한 로우해머 대책이 연구에서 회피된 적이 있는 이유로 올바른 것은?
  4. 'ECC가 있는 메모리를 사용하면 로우해머 걱정은 없다'라는 생각의 문제점으로 올바른 것은?
  5. 2024년에 갱신된 DDR5 규격(JESD79-5C)에 추가된 PRAC(행별 활성화 계수)의 개념으로 올바른 것은?