메인 콘텐츠로 건너뛰기
ARM logo
ARMNASDAQ긍정AI/기술

ARM, 메모리 안전성: Arm Memory Tagging Extension이 이 업계 전반의 보안 과제를 해결하는 방법

arm
중요도

AI 요약

ARM의 메모리 태깅 확장(MTE) 기술이 소프트웨어 개발자들에게 긍정적인 영향을 미치며 보안 취약점 감소에 기여할 것으로 기대됩니다.

MTE는 메모리 관련 버그를 신속하게 발견하여 개발 시간을 단축시키고, Android 및 Honor 기기 등에서 채택이 확대되며 ARM 생태계 전반의 보안 강화에 기여할 것으로 보입니다.

핵심 포인트

  • ARM의 메모리 태깅 확장(MTE) 기술이 소프트웨어 개발자들에게 긍정적인 영향을 미치며 보안 취약점 감소에 기여할 것으로 기대됩니다.
  • MTE는 메모리 관련 버그를 신속하게 발견하여 개발 시간을 단축시키고, Android 및 Honor 기기 등에서 채택이 확대되며 ARM 생태계 전반의 보안 강화에 기여할 것으로 보입니다.

긍정 / 부정 요인

긍정 요인

  • ARM의 MTE 기술이 보안 취약점 감소에 기여
  • MTE 기술이 개발 시간 단축 및 비용 절감 효과 제공
  • Android 및 Honor 기기에서 MTE 채택 확대
  • ARMv9 아키텍처 기반 보안 기능 강화

기사 전문

Arm, 차세대 컴퓨팅 보안의 핵심 '메모리 태깅 확장(MTE)' 기술 공개 디지털 전환 가속화 속 소프트웨어 복잡성 증대, 보안 취약점 급증 [서울=뉴스핌] 김태호 기자 = 컴퓨팅의 미래는 우리 일상 모든 영역의 디지털화 심화로 주도될 것이며, 이는 소프트웨어 및 시스템 복잡성의 증가로 이어질 것입니다. 미국 국립표준기술연구소(NIST)는 2022년 보고된 취약점 수가 23,000건을 넘어섰으며(이 중 17,000건 이상이 치명적인 것으로 분류됨) 이는 6년 연속 최고치를 경신했다고 밝혔습니다. Arm은 최신 v9 아키텍처 기반의 Arm CPU를 통해 메모리 태깅 확장(MTE)과 같은 보안 기능을 제공함으로써 이러한 복잡성을 줄이고 소프트웨어 개발자, 실리콘 공급업체, 기기 제조업체에게 심오한 보안, 안전성, 비용 및 출시 시간 단축 효과를 제공합니다. Armv9의 보안 개선은 전체 심각한 보안 버그의 대다수를 차지하는 메모리 안전성 위반과 같은 특정 유형의 취약점을 발견합니다. Arm의 MTE는 2019년 8월 Armv8.5 명령어 세트의 일부로 처음 도입되었으며, 2021년 5월 발표된 최초의 Armv9 호환 CPU에 탑재되었습니다. Armv9 아키텍처 도입 이전에도 Google은 Android에 Arm의 MTE를 채택하고 Android 전체 스택에 걸쳐 MTE 지원을 약속했습니다. 이후 2022년 말 Honor는 개발자 컨퍼런스에서 MTE 지원 MagicOS 6.x 및 MagicOS 7 기기를 Honor SkyNet을 통해 개발자에게 제공하고 향후 DiagnosisKit 도구에도 적용할 것이라고 발표했습니다. 이는 향후 최종 사용자에게 출시될 Honor 모바일 기기에도 적용될 수 있습니다. 본 기사에서는 MTE가 무엇인지, 메모리 안전성과 같은 보안 문제를 어떻게 해결하는지, 제공하는 이점은 무엇인지, 그리고 파트너들이 이 기능을 어떻게 활용하고 있는지 등 MTE에 대한 주요 질문에 답변합니다. MTE는 무엇을 하며, Arm 생태계에서 더 나은 소프트웨어 개발에 어떻게 기여합니까? MTE는 개발자가 메모리 관련 버그를 신속하게 발견하여 애플리케이션 디버깅 및 개발 프로세스를 가속화할 수 있도록 합니다. 또한, 이 기능은 설정을 동적으로 변경할 수 있어 현장에서 발생하는 액세스 실패 위치에 대한 정확한 정보를 버그 보고 및 원격 측정 시스템을 통해 개발자에게 전달할 수 있습니다. 많은 개발자들이 MTE를 처음 접했을 때 수정할 수 있는 것보다 훨씬 더 많은 취약점을 발견할 수 있다는 점에 주목할 필요가 있습니다. 그러나 개발자는 출시 전에 가장 심각한 취약점을 먼저 수정하고, 업데이트 중에 덜 심각한 취약점을 추적할 수 있습니다. 또한, 시간이 지남에 따라 개발자의 코드는 점차 깨끗해지고, 후속 전체 코드 스캔에서 발견되는 결함이 줄어들어 프로세스가 덜 시간이 소요될 것입니다. 충돌, 불만, 긴급 대응 빈도 또한 감소할 것입니다. MTE는 개발자가 배포 전후에 메모리 안전성 취약점을 탐지하고 회피할 수 있도록 함으로써 광범위한 모바일 생태계에 유익합니다. 배포 전에 취약점을 찾아 수정하는 것은 배포된 코드의 공격 표면을 줄여 보안에 중요합니다. 배포 후 취약점을 탐지하는 것은 광범위하게 악용되기 전에 선제적으로 취약점을 수정하는 능력을 지원하며, MTE는 이러한 탐지에 도움을 줍니다. 이는 보안 코드를 무력화하려는 공격에 대한 견고성을 제공합니다. 메모리 안전성 위반 해결이 왜 그렇게 중요합니까? 메모리 안전성은 수십 년간 보안 취약점의 주요 원인이었습니다. 운영체제 공급업체(OSV)는 메모리 안전성 위반으로 인한 취약점이 제품의 보안 문제 대부분을 차지한다고 보고합니다. Google의 Chromium Project 팀은 심각한 보안 버그의 70%가 메모리 안전성 문제라고 밝혔습니다. 메모리 안전성 위반이 사용자에게 미치는 영향은 상당할 수 있습니다. 악성 애플리케이션은 안전하지 않은 메모리를 악용하여 사용자 자격 증명 및 비밀번호와 같은 민감한 데이터에 액세스할 수 있으며, 이는 악의적인 행위자가 기밀 데이터에 접근할 수 있도록 합니다. 보안상의 이점과 더불어, 해결되지 않은 메모리 안전성 버그로 인한 중단은 사용자 만족도를 감소시키고 소프트웨어 개발 비용을 증가시키며, 나중에 이러한 문제를 해결하는 데 더 많은 시간을 할애하게 만듭니다. 미국 국가안보국(NSA)은 최근 소프트웨어 개발자 및 운영자가 소프트웨어 메모리 안전성 문제를 예방하고 완화하는 데 도움이 되는 지침을 발표했으며, 사이버 보안 기술 책임자인 Neal Ziring은 "메모리 관리 문제는 수십 년 동안 악용되어 왔으며 오늘날에도 여전히 너무나 흔합니다"라고 말했습니다. NSA의 "소프트웨어 메모리 안전성" 사이버 보안 정보 시트는 악의적인 사이버 행위자가 열악한 메모리 관리 문제를 악용하여 민감한 정보에 접근하고, 무단 코드 실행을 확산시키며, 기타 부정적인 영향을 초래할 수 있는 방법을 강조합니다. 메모리 안전성 위반이란 무엇입니까? 메모리 안전성 위반에는 크게 두 가지 유형이 있습니다. 공간적 안전성 위반과 시간적 안전성 위반입니다. MTE는 계측 없이 프로덕션 코드에서 이 두 가지 유형을 모두 탐지하는 메커니즘을 제공합니다. 공간적 안전성은 객체가 실제 경계를 벗어나 액세스될 때 위반됩니다. 예를 들어, 데이터가 버퍼 또는 다른 객체 너머로 쓰여질 때입니다. 이는 함수 포인터, 저장된 레지스터 또는 유사한 것의 대상 주소를 변경하는 데 악용될 수 있습니다. 시간적 안전성은 객체의 메모리가 해제된 후(일반적으로 객체가 만료된 후) 해당 객체에 대한 참조가 사용될 때 위반됩니다. 이는 기존의 "사용 후 해제(use after free)" 버그를 악용하는 것입니다. 할당자에 대한 지식을 사용하여 공격자는 예상 버전을 대체할 새로운 악성 객체를 배치할 수 있습니다. MTE는 어떻게 작동합니까? Arm은 MTE를 '잠금(lock)'과 '키(key)'라는 두 단계 시스템으로 구현합니다. 키가 일치하면 잠금 메모리 액세스가 허용됩니다. 그렇지 않으면 액세스가 기록되거나 오류가 발생할 수 있습니다. 이러한 방식으로 파악하기 어려운 메모리 안전성 오류를 더 쉽게 탐지할 수 있으며, 이는 일반적인 디버깅에도 도움이 됩니다. 잠금 및 키 두 단계 시스템 내에는 두 가지 유형의 태깅이 있습니다. 주소 태깅(Address tagging): 키 역할을 합니다. 프로세스의 모든 포인터 상단에 4비트를 추가합니다. 주소 태깅은 '상위 바이트 무시(top-byte ignore)'를 사용하므로 64비트 애플리케이션에서만 작동하며, 이는 Arm 64비트 기능입니다. 메모리 태깅(Memory tagging): 잠금 역할을 합니다. 메모리 태그도 4비트로 구성되며, 애플리케이션 메모리 공간의 모든 정렬된 16바이트 영역과 연결됩니다. Arm은 이러한 16바이트 영역을 태그 단위(tag granules)라고 부릅니다. 이 4비트는 애플리케이션 데이터에 사용되지 않으며 별도로 저장됩니다. 모바일 기기에 MTE가 필요한 이유는 무엇입니까? 모바일 기기는 더욱 발전된 컴퓨팅 기능을 갖추고 시장에 출시되고 있으며, 결과적으로 공격 표면이 넓어지고 있습니다. 동시에 이러한 기기를 통해 접근 가능한 개인 콘텐츠 및 데이터의 양과 가치는 끊임없이 증가하고 있습니다. 따라서 최종 사용자에게 안전한 생태계와 안전한 디지털 경험을 제공하는 보안 기능을 구현하는 것이 매우 중요합니다. MTE는 매우 유연하며 제품 개발 및 배포의 다양한 단계에서 다양한 구성으로 배포될 수 있습니다. 예를 들어, MTE는 프로세스별로 비동기 및 동기 모드로 구성할 수 있습니다. 비동기 모드는 매우 낮은 오버헤드로 실행되며 메모리 문제가 있는 코드 영역을 식별하는 데 사용될 수 있는 반면, 동기 모드는 안전성 위반을 유발하는 명령에서 오류를 발생시켜 버그가 탐지될 때 풍부한 디버깅 정보를 생성합니다. 이러한 유연성은 대규모 배포에 특히 유용하며, MTE는 수백만 또는 수십억 대의 기기에서 실행될 수 있을 정도로 확장성이 뛰어나 시스템 및 애플리케이션 소프트웨어에 대한 강력한 오류 탐지를 제공합니다. Arm은 MTE와 관련하여 누구와 협력하고 있습니까? 2019년 8월, Google은 Android에 Arm의 MTE를 채택하고 Android 스택 전체에 걸쳐 MTE 지원을 약속하며 이 기술이 "메모리 버그 악용을 매우 어렵게 만든다"고 밝혔습니다. Arm/Google MTE 협력의 목표는 기존 코드베이스와 새로 작성되는 코드 모두에서 메모리 안전성 버그를 탐지하는 것입니다. Google의 Kostya Serebryany와 Sudhi Herle는 다음과 같이 말했습니다. "우리는 메모리 태깅이 실제에서 가장 흔한 종류의 메모리 안전성 버그를 탐지하여 공급업체가 이를 식별하고 수정하도록 돕고, 악의적인 행위자가 이를 악용하는 것을 단념시킬 것이라고 믿습니다." Android 12에는 사용 후 해제 및 버퍼 오버플로 버그를 탐지하는 초기 MTE 구현이 추가되었습니다. 이는 Google 코드베이스에서 메모리 안전성 버그의 가장 흔한 원인입니다. Android 13에서는 Google이 하드웨어 지원은 있지만 MTE가 영구적으로 활성화되지 않은 기기에서 MTE를 활성화할 수 있는 개발자 모드 부팅 스위치를 추가했습니다. 향후 Android 릴리스에서는 Arm과 Google이 MTE의 메모리 사용량을 줄이는 데 중점을 두고 있습니다. 실리콘 공급업체 및 기기 제조업체는 어떻습니까? MTE는 모든 Arm v9 CPU에 내장된 고유한 기능입니다. 소프트웨어 생태계에서 메모리 안전성 버그를 해결하는 데 전념하는 여러 Arm 파트너는 이미 이 기능을 칩셋 전반에 걸쳐 구축하고 활성화했습니다. MTE 채택을 선도하는 기기 제조업체 중 하나는 Honor이며, 이 회사는 MTE 지원 MagicOS 6.x 및 Magic OS 7 기기가 Honor SkyNet 및 향후 DiagnosisKit 도구를 통해 개발자에게 제공될 것이라고 발표했습니다. 이는 Armv9 기술 기반으로 구축되어 소비자 시장에 출시될 모바일 기기 전반에 MTE가 활성화될 수 있음을 시사하는 중요한 신호입니다. 이미 이러한 작업은 긍정적인 영향을 미치고 있습니다. 3억 6천만 명 이상의 일일 평균 사용자 및 6억 2천 6백만 명의 월간 평균 사용자를 보유한 선도적인 콘텐츠 커뮤니티 및 동영상 공유 및 라이브 스트리밍 소셜 플랫폼인 Kuaishou는 Honor SkyNet과 파트너십을 맺고 Arm MTE를 사용하여 대규모 소프트웨어 프로젝트의 개발 주기 전반에 걸쳐 메모리 안전성의 효율성을 향상시키고 있습니다. 이를 통해 릴리스 전에 메모리 버그의 90%가 탐지되었으며, 다음과 같은 추가 개선이 이루어졌습니다. 메모리 버그 스캔 시 스캔 속도 3배 향상.

관련 기사