하드웨어 보안의 최신 동향

Arm의 MTE(메모리 태깅 확장)에서는 메모리의 16바이트마다 4비트 태그를 붙이고, 포인터의 상위 비트에도 4비트 태그를 넣어, 접근할 때마다 둘이 일치하는지를 CPU가 확인한다. 해제한 영역을 가리키는 오래된 포인터로 그 영역에 접근하는 오류를 생각한다. 영역을 다시 할당할 때의 새 태그가 16가지 중에서 균일하게 무작위로 선택된다고 하면, 태그가 우연히 일치하여 오류를 놓칠 확률은?

  1. A1/16(약 6.3%)
  2. B1/4(25%)
  3. C15/16(약 93.8%)
정답과 해설 보기

정답: A. 1/16(약 6.3%)

태그는 4비트이므로 가질 수 있는 값은 2⁴ = 16가지입니다. 새 태그가 16가지 중에서 균일하게 선택된다면, 오래된 포인터의 태그와 우연히 일치할 확률은 1/16 = 6.25%(약 6.3%)이고, 나머지 15/16의 경우는 불일치로 검출됩니다. 한 번의 접근으로도 약 94%의 확률로 발견되므로, 많은 기기에서 동작시키면서 오류를 찾아내거나 공격을 어렵게 할 수 있습니다. 할당할 때 이웃한 영역에는 반드시 다른 태그를 붙이도록 하면, 이웃 영역으로의 넘침은 확실하게 검출할 수 있습니다.

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

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

  1. Arm의 포인터 인증(PAC) 구조로 올바른 것은?
  2. Intel의 CET(제어 흐름 강제 기술) 등에서 채택된 하드웨어 섀도 스택의 설명으로 올바른 것은?
  3. 제어 흐름 무결성을 하드웨어로 지원하는 기능에 대해, 함수에서의 복귀를 보호하는 것과 함수 포인터 등에 의한 간접 호출이나 점프를 보호하는 것의 조합으로 올바른 것은?
  4. DRAM의 미세화가 진행될수록 로우해머가 일어나기 쉬워진다고 하는 이유로 올바른 것은?
  5. DRAM 내부의 TRR(타깃 로우 리프레시)에 의한 로우해머 대책이 연구에서 회피된 적이 있는 이유로 올바른 것은?