소프트웨어가 규모와 복잡성을 더해감에 따라 모듈형 설계가 점차 채택되면서 구성 요소 간의 빈번한 상호작용이 공유 메모리를 통해 이루어지게 된다. 그러나 이러한 설계는 통제되지 않은 메모리 접근으로부터 공유 메모리에 대한 취약점 발생 위험을 증가시킨다. 바이트 단위 접근 제어를 강제하면 복잡한 공유 객체와 그 하위 요소들에 대해 바이트 단위 권한을 부여함으로써 이러한 위험을 완화할 수 있다. 하지만 기존 접근 방식은 제어의 세분성을 바이트 수준으로 높일수록 성능 한계에 직면한다. 본 논문에서는 이 문제를 해결하기 위해 ARM의 Memory Tagging Extension(MTE)을 활용하는 새로운 시스템 BASTAG를 제시한다. MTE는 포인터와 메모리 간 태그 일치(tag-matching)를 강제하지만, 하드웨어가 정의한 세분성은 단독으로 바이트 수준 제어를 지원하기에는 너무 거칠다. BASTAG는 정교한 접근 제어를 위해 MTE를 적용할 때 내재된 한계를 극복하기 위해, 실제 메모리 대상에 대해 별개이지만 연관된 MTE 태그를 배치하는 것으로 알려진 shadow memory tagging 기법을 통합함으로써, 효율을 유지하면서 보다 유연하고 더 세밀한 접근 제어를 가능하게 한다. 우리는 MTE 지원이 가능한 AArch64 하드웨어에 BASTAG 프로토타입을 구현하고 세 가지 실제 사용 사례에서 평가하였다. 그 결과는 BASTAG가 기존의 바이트 단위 접근 제어 메커니즘에 비해 유의미하게 뛰어난 성능을 보임을 보여준다.
*본 초록은 AI를 통해 원문을 번역한 내용입니다. 정확한 내용은 하기 원문에서 확인해주세요.