2022-06-27 08:40 (월)
패치할 수 없는 애플 M1 CPU의 새로운 보안문제 발견돼
상태바
패치할 수 없는 애플 M1 CPU의 새로운 보안문제 발견돼
  • 페소아 기자
  • 승인 2022.06.15 12:13
이 기사를 공유합니다

PACMAN이라는 새로운 하드웨어 공격이 애플의 M1 프로세서 칩셋에 대해 시연되었으며, 잠재적으로 악의적인 행위자가 macOS 시스템에서 임의의 코드를 실행할 수 있다.

더해커뉴스에 따르면, MIT 연구원이 추측 실행 공격을 활용하여 중요한 메모리 보호 메커니즘인 ARM 포인터 인증, 포인터 무결성을 강화하는 데 사용되는 보안 기능을 우회하는 취약점을 발견했다고 보도했다. 

더 우려되는 점은 "PACMAN이 사용하는 하드웨어 메커니즘은 소프트웨어 기능으로 패치할 수 없음에도, 메모리 손상 버그는 있을 수 있다는 것"이라고 연구원들은 덧붙였다.

이 취약점은 메모리의 주소 위치를 참조하는 개체인 포인터에 대한 예기치 않은 변경을 감지하고 보호하는 것을 목표로 하는 arm64 아키텍처에 도입된 방어선인 PAC(포인터 인증 코드)에 뿌리를 두고 있다.

PAC는 메모리 손상 취약점과 같은 소프트웨어 보안의 일반적인 문제를 해결하기 위한 보안 기능이다. 메모리 손상 취약점은 종종 메모리(즉, 포인터)의 제어 데이터를 덮어써 공격자가 제어하는 임의의 위치로 코드 실행을 리디렉션함으로써 악용된다.

ASLR(Address Space Layout Randomization)과 같은 전략이 버퍼 오버플로 공격 수행의 어려움을 증가시키기 위해 고안된 반면, PAC의 목표는 "최소한 크기 및 성능 영향으로 포인터의 유효성"을 확인하여 공격자가 익스플로잇에 사용하기 위한 유효한 포인터를 생성하는 것을 효과적으로 방지하는 것이다.

이는 포인터의 무결성을 보장하기 위해 PAC(Pointer Authentication Code)라고 하는 암호화 해시로 포인터를 보호함으로써 달성된다.

애플은 포인터 인증을 다음과 같이 설명한다.

포인터 인증은 포인터를 저장하기 전에 포인터의 사용되지 않는 상위 비트에 암호화 서명(PAC)을 추가하는 특수 CPU 명령을 제공하여 작동한다. 다른 명령은 메모리에서 포인터를 다시 읽은 후 서명을 제거하고 인증한다. 쓰기와 읽기 사이에 저장된 값이 변경되면 서명이 무효화된다. CPU는 인증 실패를 메모리 손상으로 해석하고 포인터에 상위 비트를 설정하여 포인터를 무효화하고 앱이 충돌하게 만든다.

그러나 PACMAN은 포인터 인증을 사용하여 보호되는 플랫폼에서 제어 흐름 하이재킹 공격을 수행하는 주요 장벽을 제거한다. 메모리 손상과 추측 실행을 결합하여 보안 기능을 우회하여 크래시를 일으키지 않고 마이크로아키텍처 사이드 채널을 통한 PAC 검증 결과를 유출한다.

간단히 말해서, 공격 방법은 올바른 PAC와 잘못된 해시를 구별하는 것을 가능하게 하여, 나쁜 행위자가 충돌을 억제하면서 올바른 PAC 값을 잔인하게 강제하고 PA가 활성화된 피해자 프로그램이나 운영 체제에 대한 제어 흐름 가로채기 공격을 구성할 수 있다. 

각 PAC 값은 Prime+Probe 공격을 사용하는 TLB(translation look-aside buffer)를 통해 타이밍 기반 사이드 채널을 이용하여 추측되기 때문에 충돌 방지는 성공한다.

스펙터(Spectre) 및 멜트다운(Meltdown)의 경우에서 관찰된 것처럼 예측 실행 취약성은 프로그램 실행 흐름의 가장 가능성 있는 경로를 예측하여 최신 마이크로프로세서의 성능 향상을 가져오는 데 사용되는 기술인 비순차적 실행을 무기화한다.

그러나 위협 모델은 피해 프로그램(커널)에 악용 가능한 메모리 손상 취약점이 이미 존재한다고 가정하고, 이를 통해 권한이 없는 공격자(악성 앱)가 공격 대상 프로세스의 특정 메모리 위치에 악성 코드를 주입할 수 있다고 가정한다.

연구원들은 "이 공격은 포인터 인증을 특징으로 하는 미래 프로세서를 구현하려는 설계자에게 중요한 의미를 가지며 미래의 제어 흐름 무결성 기본 요소의 보안에 광범위한 의미를 갖는다"라고 결론지었다.

애플측은 "이 개념증명에 따라 이러한 기술에 대한 우리의 이해가 증진했고, 이에 연구원들의 협업에 감사한다"며 PACMAN의 악용 가능성이 감소했다고 언급했다.

또한 "우리의 분석과 연구원들이 공유한 세부 정보를 기반으로, 우리는 이 문제가 사용자에게 즉각적인 위험을 초래하지 않으며 자체적으로 운영 체제 보안 보호를 우회하기에는 불충분하다는 결론을 내렸다"라고 덧붙였다.

이 취약성은 작년에 밝혀진 M1RACLES(CVE-2021-30747)라는 또 다른 수정 불가능한 위협을 연상시킨다. 이 취약성은 기기에 설치된 두 개 이상의 악성 앱이 메모리, 소켓, 파일 또는 다른 일반적인 운영 체제 기능을 사용하지 않고도 그들 사이에 데이터를 교환할 수 있는 비밀 채널을 만들 수 있게 한다.

★정보보안 대표 미디어 데일리시큐!★