스펙터 보안 취약점이 가상 머신에있을 수 있습니까?


13

VirtualBox와 같은 가상 시스템에 "스펙트럼"보안 취약점이있을 수 있습니까? VM이 비 순차적으로 실행되는 것으로 생각되지만 결과를 읽기 위해 캐시를 들여다 볼 수는 없습니다.

가상 CPU의 캐시를 읽는 방법에 대한 설명이 있습니까?


4
예, 약간의 연구에 따르면 VMWare가 Spectre 및 Meltdown을 해결하기위한 패치를 출시했음을 확인할 수 있습니다. 게스트 OS는 또한 실제 하이퍼 바이저 (두 유형 모두)에 패치되어야합니다.
Ramhound

가상화 수준에 따라 다릅니다. 가상 CPU를 시뮬레이트하는 경우 안전 할 것입니다. 그러나 그것은 현대의 VM이하는 일이 아닙니다.
Bergi

가상 CPU의 캐시를 읽는 방법에 대한 설명이 있습니까?

1
@ jms 세부 사항은 내 답변에 링크 된 정식 게시물에 있습니다 :Spectre works on a different level ... In this attack, the attacker tricks the speculative execution to predictively execute instructions erroneously. In a nutshell, the predictor is coerced to predict a specific branch result that results in asking for an out-of-bound memory access that the victim process would not normally have requested resulting in incorrect speculative execution. Then by the side-channel, retrieves the value of this memory. In this way memory belonging to the victim process is leaked to the malicious process.
Mokubai

1
@jms 가상화는 가능한 적은 추상화로 물리적 CPU를 사용하고 격리 및 추상화를 제공하기 위해 CPU 하드웨어에 의존하기 때문에 빠릅니다. 상황이 좋아 qemu그것이 아니므로 더 안전 할 것이다 에뮬레이션 할 수있는 하드웨어 CPU를하지만, 속도가 느린 많이 및 가상화 다릅니다.
Mokubai

답변:


14

예 스펙터는 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 % 동안 유휴 상태이므로 "낮은로드"서버에서 수행 될 것으로 예상됩니다.


2
"호스트 CPU가 영향을받는 경우 VM도 영향을 받습니까?"라는 질문을 해석했다고 생각합니다. 질문을 이해하면서 "호스트 CPU에 영향을 미치지 않으면 VM에 여전히 영향을 줄 수 있습니까?" 라고 묻습니다. 당신은 그것을 정리할 수 있습니까?
AndreKR

1
@AndreKR : 현재 모든 비 순차적 실행 CPU는 Spectre의 영향을받습니다. 소프트웨어 해결 방법을 통해서만 시스템을 안전하게 보호 할 수 있습니다 (따라서 CPU가 인텔의 IBRS와 같은 기능을 제공하는 경우 하이퍼 바이저가 게스트를 서로 분리 할 수 ​​있지만 VM은 이에주의해야합니다). 그러나 추론 적 실행이없는 순서가 지정된 CPU에서는 두 가지 소프트웨어간에 Specter 취약점이 존재할 수 없습니다. Spectre의 본질은 비밀 데이터를 마이크로 아키텍처 상태로 만드는 무언가의 추론 적 실행을 불러 일으키고 있습니다. 순차적 CPU는 그렇지 않습니다.
Peter Cordes

가장 흥미로운 것은 투기 적 실행이 아닙니다. 가장 흥미로운 점은 프로세스가 캐시에있는 내용, 심지어 VM에있는 내용을 찾는 방법입니다.

@jms 이용 가능한 사이드 채널 공격 은 추론 적 실행에 의해 촉진되고 유용하게 됩니다. 프로세스가 캐시 라인을 직접 읽을 수는 없지만 추측 실행은 타이밍 공격에 의해 감지되거나 유추 될 수있는 값을 캐시에 넣는 계산을 수행하여 정보를 유출 할 수 있습니다. 스펙터 백서의 섹션 4에 좋은 설명이 있습니다. spectreattack.com/spectre.pdf
Mokubai

0

gem5

호스트 CPU를 사용하지 않고 순수하게 에뮬레이션으로 취약점을 연구 / 재생하는 데 관심이 있다면 QEMU가 CPU 파이프 라인을 시뮬레이션하지 않기 때문에이를 관찰하기에 충분히 상세하다고 생각하지 않습니다.

그러나 gem5는 연구 개발에서 시스템 성능을 추정하는 데 사용되며 완전히 깨끗하고 통제 된 환경에서 스펙터를 관찰하기에 충분한 CPU 내부를 시뮬레이션합니다.

시각화 기능이있는 멋진 x86_64 데모는 http://www.lowepower.com/jason/visualizing-spectre-with-gem5.html 에 게시되었습니다.

gem5의 단점은 QEMU보다 속도가 훨씬 느리다는 것입니다. 시뮬레이션이 더 자세합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.