MTE(메모리 태깅 확장)란?
Arm의 Memory Tagging Extension의 약자. Armv8.5-A에서 추가되었다. 메모리의 16바이트마다 4비트 태그를 붙이고, 포인터의 상위 비트에도 4비트 태그를 넣어, 접근할 때마다 둘이 일치하는지를 CPU가 확인한다. 해제한 뒤의 메모리 사용이나 범위 밖 접근을 적은 부담으로 확률적으로 찾아낼 수 있다.
일본어 명칭: MTE(メモリタギング拡張)
MTE(메모리 태깅 확장)은(는) 하드웨어 보안의 최신 동향 등 1개 분야의 연습 문제 1개에 나와요.
분야: 하드웨어 보안의 최신 동향
자주 묻는 질문
MTE는 어디에서 사용되고 있나요?
2020년대 중반 시점에서 일부 스마트폰 SoC 등이 지원하고 있으며, OS나 메모리 할당 라이브러리에서 개발용 검사나 공격을 어렵게 하기 위한 활성화가 진행되고 있습니다. 지원하는 하드웨어와 소프트웨어 양쪽이 필요합니다.
MTE가 있으면 메모리 오류를 이용한 공격은 막을 수 있나요?
많은 오류를 찾아내어 공격을 어렵게 하지만, 태그가 우연히 일치할 가능성이 있고, 태그 값을 추측당하거나 유출되면 효과가 떨어집니다. 검출은 확률적이므로, 결정적인 보증이 필요한 경우에는 CHERI 같은 구조나 메모리 안전한 언어의 사용과 조합합니다.