꿈을꾸는 파랑새

Apple M 시리즈 칩의 새로운 "GoFetch" 취약점으로 말미암아 비밀 암호화 키 유출
GoFetch 라고 불리는 새로운 부채널 공격은 Apple M1, M2 및 M3 프로세서에 영향을 미치며 CPU 캐시의 데이터에서 비밀 암호화 키를 훔치는 데 악용이 될 수가 있습니다.
해당 공격은 최신 Apple CPU에 있는 데이터 메모리 종속 프리페처(DMP)를 사용하는 상수 시간 암호화 구현을 목표로 하며 이를 통해 CPU 캐시에서 OpenSSL Diffie-Hellman, Go RSA, CRYSTALS Kyber 및 Dilithium을 포함한 다양한 알고리즘에 대한 개인 암호화 키를 다시 생성할 수 있습니다.
GoFetch는 미국 내 여러 대학의 연구원 7명으로 구성된 팀에 의해 개발되었으며 해당 연구 결과는 2023년 12월 5일 Apple에 보고 되었습니다.

MacBook Pro
MacBook Pro


그러나 이는 하드웨어 기반 취약점이므로 영향을 받는 CPU에서 해결하는 방법이 없으며 소프트웨어 수정을 사용하여 결함을 완화할 수는 있지만 이로 말미암아 이러한 CPU의 암호화 기능에 성능 저하가 발생할 수 있습니다.

GoFetch 세부정보

GoFetch 공격은 코드 실행 시 컴퓨터 성능을 향상시키도록 설계된 CPU 기능인 데이터 메모리 종속 프리페처를 대상으로 합니다.
프리페처는 데이터를 검색할 때 메모리에 대한 이전 액세스를 통해 훈련되어 컴퓨터에 다음에 필요한 데이터가 무엇인지 예측할 수 있으며 그런 다음 해당 데이터는 메모리의 느린 부분에서 CPU 캐시와 같은 빠른 메모리 영역으로 미리 가져 옵니다.
예측이 정확하면 이제 데이터를 빠르게 사용할 수 있어 컴퓨터 성능이 향상
추측이 틀리면 CPU는 평소대로 올바른 데이터를 요청합니다.
GoFetch 공격은 DMP(데이터 메모리 종속 프리페처)라는 최신 프리페처에 중점을 둡니다. 해당 프리페처는 이전 메모리 액세스에 대해 교육할 수도 있지만, 메모리의 데이터 값을 검사하여 캐시에 프리패치해야 할 항목을 결정할 수도 있습니다.
DMP는 Apple 실리콘 칩과 Intel의 13세대 Raptor Lake CPU에서 사용할 수 있으며 그러나 연구원들은 인텔의 구현이 더 제한적이며 공격을 방지한다고 말합니다.
공격은 민감한 데이터 유출을 방지하기 위한 보안 조치인 입력에 관계없이 같은 실행 시간(일정한 시간)이 걸리는 암호화 구현에 중점
특히 연구원들은 Apple의 DMP 시스템 구현에서 상시 모범 사례를 위반하는 결함을 발견
Apple m 시리즈 CPU에서 DMP를 리버스 엔지니어링한 결과 DMP가 포인터처럼 보이는 메모리에서 로드된 데이터를 활성화(및 역참조 시도)하는 것을 발견했습니다.
이는 데이터와 메모리 액세스 패턴의 혼합을 금지하는 상수 시간 프로그래밍 패러다임의 요구 사항을 명시적으로 위반

 

 

공격자는 프리페처가 데이터를 역참조하도록 하는 특수 입력을 만들 수 있으며, 이는 비밀 키의 특정 비트가 올바르게 추측되면 포인터로 나타납니다.
다음으로, DMP가 활성화되는지를 관찰하여 점차 비밀 키의 비트를 추론합니다. 프로세스를 충분히 반복하면 전체 비밀 암호화 키가 재구성될 수 있습니다. 
연구원들은 M1 프로세서가 이 체계에 취약하다는 것을 확인했으며 M2와 M3가 유사한 프리페치 동작을 하고 있다는 점을 고려하면 이들도 취약할 가능성이 큽니다.

애플(Apple) 사용자 대처

해당 약점은 Apple CPU에 직접 내장된 데이터 메모리 종속 프리페처 구현 일부이므로 하드웨어 수정으로 공격을 완화하는 방법은 없음
연구원들은 M3와 같은 일부 CPU에서 DMP를 비활성화하여 GoFetch가 의존하는 프리페칭 동작을 제거할 수 있다고 말합니다. 그러나 이는 M1 및 M 2에서는 불가능
개발자를 위한 다른 방어 수단으로는 DMP 수준에서 공격자의 입력 결과를 난독화하는 입력 블라인드 및 DMP 활성화 마스킹이 있음
Apple은 소프트웨어 패치로 macOS에 완화 기능을 도입할 수 있지만 부채널 공격에 대한 이전 소프트웨어 수정에서 본 것처럼 성능 저하를 가져올 수 있음
Apple 사용자로서 안전한 컴퓨팅 습관을 실천하는 것 외에는 할 수 있는 일이 많지 않으면 즉, 운영 체제와 소프트웨어를 정기적으로 업데이트 하고 공식 채널과 평판이 좋은 소스에서만 소프트웨어를 설치하여 악성코드 감염을 방지
GoFetch 공격은 악용을 위해 물리적 액세스가 필요하지 않으므로 공격자가 악성코드 감염 등을 통해 대상 시스템에서 코드를 실행할 수 있는 경우 원격에서 실행될 수 있습니다.

 

그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band