예 스펙터는 CPU / 레벨 결함이기 때문에 호스트 / 게스트, 게스트 / 호스트 및 게스트 / 게스트 경계를 넘을 수 있습니다. 이는 잠재적으로 민감한 정보가 CPU 코어에서 실행되는 모든 항목에서 유출 될 수 있음을 의미합니다.
인터넷 뉴스의 대부분은 가상화 된 클라우드 시스템을 보유하고 있으며 민감한 정보를 유출하기 위해 악용 될 수있는 클라우드 공급 업체에 의해 클라우드 제공 업체가 최악의 피해를 입었다 고합니다.
대부분의 대형 제공 업체는 가능한 한 결함에 대해 패치를 해왔어야했지만 이것은 한동안 우리와 함께하는 문제가 될 것입니다.
Security.SE는 이에 관한 정식 Q & A 를 가지고 있으며 VM을 언급합니다.
가상 머신 / 컨테이너를 실행하고 있는데 어느 정도 취약합니까?
당 스테 울리히의 대답
- 멜트 다운 공격은 VM을 교차하지 않고 로컬 프로세스에 커널 메모리 만 누출시킵니다.
- Spectre는 여러 VM에서 작동 할 수 있습니다.
또한 컨테이너가 호스트 커널에 의존하기 때문에 Steffen 에서 Meltdown 및 Specter는 컨테이너와 함께 작동합니다.
VM은 시스템에서 실제 CPU를 사용하여 일부 권한있는 명령이 갇히고 리디렉션 될 수 있습니다. 호스트와 동일한 캐시 및 명령을 사용합니다. 본질적으로 시스템의 물리적 CPU 내의 다른 계층 일뿐입니다.
가상화는 가능한 한 적은 추상화로 실제 CPU를 사용하고 격리를 제공하기 위해 CPU 하드웨어에 의존하기 때문에 빠릅니다. qemu와 같은 것은 하드웨어 CPU가 아니기 때문에 더 안전한 에뮬레이션 을 수행 할 수 있지만 훨씬 느리고 가상화와 다릅니다.
로부터 Security.se 게시 정식 다시 :
스펙터는 다른 레벨에서 작동하며 사용자 공간에서 커널 공간 데이터에 액세스 할 수 없습니다. 이 공격에서 공격자는 추측 실행을 예측하여 명령을 잘못 실행합니다. 간단히 말해서 예측자는 특정 분기 결과 (예 :-> true)를 예측하도록 강요되며, 이로 인해 대상 프로세스가 일반적으로 요청하지 않은 범위를 벗어난 메모리 액세스를 요구하여 잘못된 추측 실행이 발생합니다. 그런 다음 사이드 채널에서이 메모리의 값을 검색합니다. 이러한 방식으로, 대상 프로세스에 속하는 메모리가 악성 프로세스로 유출됩니다.
따라서 VM은 실제 CPU 하드웨어에서 실행되며 추측 실행 엔진을 "트레이닝"하기 위해 특정 루프를 실행하기 만하면됩니다. 그런 다음 정확한 타이밍을 사용하여 악용하려는 호스트 또는 게스트 (또는 다른 VM) 프로세스를 나타내는 특정 액세스 패턴의 캐시를 감시 할 수 있습니다.
이러한 방식으로 모든 방향에서 기계를 활용할 수 있습니다. 호스트에서 VM으로, VM에서 호스트로, VM에서 VM으로.
예, VM CPU 코어가 호스트에 따라 변경 될 수 있고 호스트가 다른 코어에서 작업을 행복하게 예약 할 수 있지만 장기간에 걸쳐 충분한 정보를 얻을 수 있기 때문에 결코 쉽지 않으며 쉽게 풀기가 어렵습니다. 중요한 시스템이나 계정에 비밀 키를 제공하기 위해 유출 될 수 있습니다. 충분한 시간과 적절하게 은밀한 소프트웨어가 주어지면 모든 것이 잠재적으로 열려 있습니다.
"안전한"VM을 원한다면 코어가 분리되어 있는지 확인해야합니다. 이 공격을 막는 유일한 방법은 호스트와 VM이 특정 코어 만 사용하도록 "강제"하여 동일한 하드웨어에서 실행되지 않도록하는 것입니다. 그러나이를 통해 비용을 효과적으로 증가시킬 수는 없습니다. 지정된 호스트에 많은 VM이 있습니다. 사용 가능한 코어가있는 것보다 더 많은 VM을 실행할 수는 없습니다. 이는 많은 시스템이 수명의 90 % 동안 유휴 상태이므로 "낮은로드"서버에서 수행 될 것으로 예상됩니다.