윈디하나의 누리사랑방. 이런 저런 얘기

글쓴시간
분류 기술,IT
스펙터(Spectre) 보안 버그

사용자 삽입 이미지

스펙터 보안 버그의 로고. 유령(Ghost)이 나뭇가지(Branch)를 들고 있다. ^^


멜트다운 보안 버그에 이어 스펙터 보안버그도 알려졌습니다. 이건 좀 더 심각한게 멜트다운을 일으키는 OoOE(Out-of-Order Execution, 비순차적 실행)기능은 최신 CPU에만 들어가있는 기능이라 영향받는 CPU종류가 상대적으로 적습니다만, 스펙터 버그는 파이프라인(Pipeline)을 사용하는 대부분의 CPU에서 사용하는 Branch Prediction (분기예측)기능에 문제가 있는거라 영향 받는 범위가 더 많습니다. (마이크로 컨트롤러나 조그마한 기기에 사용되는 CPU를 제외하고는 모두 파이프라인 및 분기예측을 사용하고 있습니다) 인텔CPU는 물론 AMD CPU, 그리고 ARM 계열 CPU의 일부는 문제가 있다고 알려졌고, 그외에도 분기예측을 하는 모든 CPU들이 이런 문제를 내포하고 있을 수 있으므로 발표를 기다려 봐야 합니다. 라즈베리파이는 문제 없다고 발표 했습니다. (Why Raspberry Pi isn’t vulnerable to Spectre or Meltdown)

결과적으로 이 버그를 사용하면 특정 프로세스가 다른 프로세서에 매핑된 메모리를 볼 수 있게 합니다. 이것 역시 상당히 중대한 버그입니다. 프로세스별로 메모리 분리된다는건 기본 중의 기본 원칙인데, 이게 깨지는 거니까요. 보안에서 샌드박스 기법을 무력화 시키는 셈이 됩니다.

예측 분기 기술은 오래전부터 사용하던거라 영향받는 CPU가 많습니다. ARM CPU도 영향 받는다는건 안드로이드 스마트폰 기기도 영향 받는다는 의미입니다. 그나마 다행인건 제가 쓰는 갤럭시 노트8에 사용되는 Coretex-53 코어는 영향이 없다네요. (Vulnerability of Speculative Processors to Cache Timing Side-Channel Mechanism)

재미있는건 자바스크립트 JIT에도 이런 버그가 숨어있다고 합니다. 즉 브라우저를 사용해도 문제가 생길 수 있다는 겁니다. 모질라와 구글은 이에 대한 대응을 하고 있구요. 대응방법은 아래에 있습니다.

그나마 다행인건 이버그를 활용해 해커가 데이터를 빼내는건 좀 어렵다고 하네요.

----

- 크롬 63의 최신버전에서 대응
chrome://flags#enable-site-per-process 에서 사용으로 설정

- 불여우 57의 최신버전에서  대응
about:config 에서 privacy.firstparty.isolate 를 true 으로 설정


----

Meltdown and Spectre

Reading privileged memory with a side-channel

Bounds Check Bypass

Branch Target Injection