|
Intel CPU의 사이드 채널 공격이 가능한 새로운 취약점 발견 침해사고분석팀 2021.03.10 |
|
|
Intel Coffe Lake 및 SkyLake 프로세서에서 "on-chip, cross-core" 사이드 채널을 악용하여 민감한 데이터를 훔칠 수 있는 방법이 연구원들에 의해 제시되었다.
CPU의 마이크로 아키텍처를 표적으로 하는 정보 유출 공격(Meltdown 및 Sprectre)은 사용자 애플리케이션과 운영체제 사이의 격리를 무너뜨리고 악성 프로그램이 다른 프로그램에서 사용하는 메모리에 액세스 할 수 있도록 하는 것으로 밝혀졌지만, 새로운 공격은 링 상호 연결을 활용한다.
SoC는 링 토폴로지로 배열된 on-die 버스로 코어,LCC (Last Level Cache), 그래픽 장치 및 내부에 있는 시스템 에이전트와 같은 서로 다른 구성 요소간의 프로세스 내 통신을 가능하게 한다. 각 링 에이전트는 링 스톱(ring stop)이라고 하는 것을 통해 통신하게 된다.
그들의 가설을 테스트하기 위해 연구진은 링 인터커넷트의 프로토콜을 리버싱하여 링 결합을 유발하는 두 개 이상의 프로세스에 대한 조건을 밝히고, 이를 사용하여 4.18Mbps 용량의 비밀 채널을 구축했으며, 이는 Flush + Flush 또는 Flush + Reload와 달리 공유 메모리에 의존하지 않는 크로스 코어 채널에 대해 현재까지 가장 큰 채널이다 라고 연구원들은 말했다.
연구의 저자 중 한 명인 Riccardo Paccagnella는 "이전 공격과 달리, 우리의 공격은 공유 메모리, 캐시 세트, 코어-프라이빗 리소스 또는 특정 언 코어 구조에 의존하지 않는다" 며, "결과적으로 기존의 도메인 격리 기술을 사용하여 완화하기 어렵다"고 말했다.
링 스톱이 에이전트에서 들어오는 새로운 트래픽보다 이미 링에 있는 트래픽을 항상 우선시한다는 사실을 관찰하며 연구원들은 기존 온-링 트래픽이 새로운 링 트래픽의 주입을 지연시킬 때 경합이 발생한다고 말했다.
[그림 1. 인텔 프로세서의 SoC Ring Interconnect]
공격자는 피해자 프로세스의 메모리 액세스로 인한 메모리 포화를 통해 악성 프로세스와 관련된 메모리 액세스의 지연을 측정할 수 있다. 하지만 이것은 스파이 프로레스가 개인 캐시 (L1-L2)에 일관되게 누락되어 있고, 대상 LLC 슬라이스로부터 로드를 수행해야만 한다.
이렇게 함으로써 링 경합으로 인한 LLC로부터의 메모리 로드의 반복적인 지연 시간을 공격자가 측방향 채널로 사용하여, 취약한 EdDSA 및 RSA 구현에서 키 비트를 누출시킬 뿐 아니라 공격 대상 사용자가 입력한 키 입력의 정확한 타이밍을 추출하여 암호를 재구성할 수 있다.
이 연구는 경합 기반의 마이크로 아키텍처 채널이 키 스트로크 타이밍 공격에 악용되어 피해자가 입력한 민감 데이터를 유추한 최초의 사례로 기록된다.
이에 대해 인텔은 이번 공격을 '전통적인 사이드 채널'로 분류하였는데, 이는 일반적으로 실행 시기의 차이를 이용해 비밀을 유추하는 일종의 오라클 공격을 말한다.
기존의 사이드 채널 공격을 완화하기 위한 안전 개발에 대한 추가 지침은 다음 링크에서 확인할 수 있다. https://software.intel.com/security-software-guidance/secure-coding/security-best-practices-side-channel-resistance 논문에 기술된 실험 설정을 재현하기 위한 소스코드는 다음 링크에서 확인할 수 있다. https://thehackernews.com/2021/03/malware-can-exploit-new-flaw-in-intel.html
출처 https://thehackernews.com/2021/03/malware-can-exploit-new-flaw-in-intel.html |

