0x-News - CPU 프로세서에서 새로운 사이드 채널 공격 발견

 0x-News - CPU 프로세서에서 새로운 사이드 채널 공격 발견


이전에 발표된 Meltdown 과 Foreshadow 와 같은 최신 CPU 프로세서에 대한

이전에 공개된 여러 추측 실행 공격의 근본 원인은

프리 패치 효과로 잘못 귀속된 후 하드웨어 공급업체가 불완전한 완화와 대책을 발표한 것이 큰 원인


the Graz University of Technology 와 CISPA Helmholtz Center for Information Security 등 연계 연구팀 논문 PDF 발표

https://arxiv.org/pdf/2008.02307.pdf


이번 사이드 채널 공격은 커널 주소가 처음에 캐시되는 정확한 이유를 확인하고 몇가지 새로운 공격 기법 제시

이전에 확인되지 않은 근본적인 문제를 악용하여 공격자가 민감 정보를 스니핑 sniffing 할 수 있도록 함


마이크로 아키텍처 공격은 실제로 커널에서 사용자 공간 레지스터의 추론적 역참조로 인해 발생

이는 최신 하드웨어 완화를 통해 Intel, ARM, IBM, AMD 등 유명 제조업체의 프로세서에도 영향을 미침

이번 연구 결과는 최근 제작된 CPU 외 이전에 만들어진 CPU 라고 해도 영향이 없다고 할 수 없음


연구팀은 지난 4년 동안 여러 학술 논문에서 보고된 효과와 결과를 분석

논문의 이론 자체가 잘못되어 대응책 또한 잘못된 가정과 결과로 이어진다는 것을 발견


프리패치 prefetch 효과는 실제로 메모리 접속으로 인한 소프트웨어 프리패치 명령 또는 하드웨어 프리패치 효과와 관련이 없으며 대신 커널에서 사용자 공간 레지스터의 추론적 역참조로 인해 발생


프리패치 효과에 대한 논문 PDF

https://gruss.cc/files/prefetch.pdf


프리패치 효과의 실제 근본 원인을 분석하는 것 외 연구의 다른 주요 결과

1. 보다 제한된 컨텍스트에서의 주소 변환 공격

특정 시나리오에서 레지스터 값의 직접적인 유출

비 L1 데이터를 대상으로 하는 종단간 Foreshadow exploit 포함하여 근본적인 원인을 악용하는 여러 가지 새로운 공격 발견


2. 경우에 따라 공격자가 공유 메모리에 의존하지 않고

레지스터에 저장된 주소(혹은 값ㅇ)의 캐싱을 관찰할 수 있는 새로운 크로스 은밀한 코어 채널 공격 cross-core covert channel attack


3. 스펙터 프리패치 가젯은 실제 데이터를 직접 유출 가능

이는 Intel CPU 에서 ZombieLoad 공격을 효율적으로 수행

내부 버퍼나 메모리에서 민감한 데이터를 유출할수 있을 뿐만 아니라 비 Intel CPU 에도 영향을 미침


ZombieLoad 공격에 대한 정보 사이트 

https://zombieloadattack.com/


4.  Rowhammer와 캐시 공격, DRAMA 와 같은 특정 공격에서 예측 역참조 문제는

공격자가 웹 브라우저를 통해 원격으로 일시적인 실행을 통해 Javascript 변수의 물리 주소를 복구하고 정보 유출 가능


이 외에도 연구팀은 권장 완화 기능이 활성화된 경우에도

Intel CPU 의 Foreshadow 취약점이 악용될 수 있음을 확인

이는 프리패치 가젯을 포함하는 커널 버전의 L1 캐시에 없는 데이터에 공격이 탑재될 수 있기 때문에 가능


L1 캐시 메모리 주소 정보를 확인하는 데모 동영상



시스템 소프트웨어는 CPU 의 주소 변환 메커니즘을 사용

서로 다른 프로세스 간의 격리를 구현

각 프로세스에는 자체 가상 메모리 공간이 있으며 외부의 임의 물리 메모리 주소에 접속 할 수 없음

따라서 주소 변환은 프로그램에서 사용하는 가상 주소 공간을 실제 주소에 맵핑하는 중간 계층 역할 수행


가상 주소 공간에는 리눅스 커널 스레드를 수용하기 위한 커널 주소 공간도 포함

기본 하드웨어가 커널 모드에서 사용자 스레드의 권한 있는 명령을 쉽게 처리 가능


운영체제 커널은 격리된 커널 페이지 테이블 KPTI Kernel Page-Table Isolation 혹은 KAISER 라는 기술을 통해

프리패치 사이드 채널 공격으로 부터 보호 수행


KAISER 에 대한 PDF

https://gruss.cc/files/kaiser.pdf


이는 하드웨어가 실행 중 커널 주소에 대한 정보를 보유하지 않도록 엄격한 커널과 사용자 공간 분리를 적용

연구팀은 사용자 모드에서 공격자가 두 개의 서로 다른 가상 주소가 동일한 물리 주소에 맵핑되는지 확인하는

주소 변환 공격으로부터 완전한 보호를 보장하지 않는다는 것을 발견


이는 주소 변환 공격 Address-Translation Attacks 이 권한이 없는 응용 프로그램이 임의의 커널 주소를 캐시로 가져와

64bit 리눅스 시스템에서 가상 주소를 물리 주소로 확인할 수 있도록 함


연구팀은 원래 이러한 공격이 프리패치 명령과 관련이 있다는 것이지만

새로운 발견은 그렇지 않다는 것을 증명

KAISER 가 커널 격리에 대한 마이크로 아키텍처 사이드 채널 공격에 대한 적절한 대응책이 아니라는 것을 입증


대신 Spectre-BTB-SA-IP Branch Target Buffer, Same Address, In-Place  가젯을 이용

정보 유출과 추측 실행을 유발하고 전류를 우회하여 Meltdown 과 Foreshadow 공격을 추가로 수행 가능


Spectre-BTB-SA-IP 는 분기 예측에 사용되는 CPU 캐시와 유사한 구성 요소인 분기 대상 버퍼를 악용

동일한 주소 공간과 동일한 분기 위치 내에서 공격을 수행하는 Spectre 취약점의 변종


Spectre-BTB-SA-IP

2018년 Intel, AMD, ARM 등의 CPU 프로세서에서 Meltdown 과 Spectre 의 새로운 취약점 7개가 새롭게 발견

https://blog.alyac.co.kr/1982


Spectre 취약점 PDF 링크

https://arxiv.org/pdf/1811.05441.pdf


연구팀은 동일한 프리패치 효과를 사용하여 Foreshadow 를 수행 가능 확인

비밀은 L3 캐시에 존재하고 직접 물리적 맵 주소가 하이퍼 바이저 커널에서 디 레퍼런스되는 경우

데이터를 L1 으로 가지고 올 수 있음

이렇게되면 관련없는 Spectre-BTB 완화가 비활성화된 경우 Foreshadow 완화가 활성화된 경우에도 Foreshadow 가 다시 활성화


결과적으로 모든 완화가 활성화된 상태에서 Foreshadow 에 대한 패치된 이전 커널과 Spectre-V2 완화만 비활성화된 경우

완전히 패치된 커널에 Foreshadow 공격이 될 수 있음


사이드 채널 공격의 영향을 평가하기 위해 연구팀은 Intel Core i7-6500U CPU 에서 다른 프로세스로 데이터를 추출하여 10bit/sec 전송 속도를 달성하는 캐시 기반 비밀 채널을 설정

송신자에서 수신자 프로레스로 총 128bytes 릴레이


또한 연구팀은 추론적 역참조된 speculatively dereferenced 레지스터(혹은 역참조 트랩 Dereference Trap)를 사용

Intel CPU 의 SGX 영역에서 레지스터 내용을 유출할 수 있으며

이를 사용하여 15분 이내 내부 64bit 레지스터에 저장된 32bit 값을 복구할 수 있음을 확인


마지막으로 특정 공격은 이제 웹 브라우저에서 JavaScript 를 사용

원격으로 마운트 가능

WebAssembly 를 사용하여 JavaScript 에서 공격자가 제어하는 값으로 64bit 레지스터를 채움


이러한 공격을 완화하려면 현재 CPU 가 리트폴린을 포함한 Spectre-BTB 완화를 활성화하는 것을 권고

이는 추측 실행에서 간접 분기를 분리하여 분기 대상 인젝션을 방지하는 것을 목표


Intel 에 올라온 분기 대상 인젝션 방지 prevent branch-target-injection

https://software.intel.com/security-software-guidance/insights/deep-dive-retpoline-branch-target-injection-mitigation


댓글

이 블로그의 인기 게시물

0xNews - 안드로이드 폰 890만대 이상 사전 감염 확인

0xNews - 미군을 주제로 하여 한국인을 노리는 피싱 공격 캠페인 경고

0xNews - 리눅스 커널에서 StackRot 라는 이름의 취약점으로 권한 상승 취약점 발견