2019-10-19 13:23 (토)
새로운 인텔 부채널 보안취약점, 좀비로드에 대한 리눅스 진영의 대응
상태바
새로운 인텔 부채널 보안취약점, 좀비로드에 대한 리눅스 진영의 대응
  • 페소아 기자
  • 승인 2019.05.17 14:55
이 기사를 공유합니다

coding-1841550_640.jpg
좀비로드(Zombieload)는 최근 발견된 인텔 프로세스 보안 취약점이다. 공격자는 이 취약점을 이용해 CPU 내부에서 사용되는 데이터를 훔칠 수 있다.

연구원들은 가상환경에서 실시간으로 방문하는 웹사이트를 볼 수 있는 좀비로드 익스플로잇을 보여주었다. 그들은 가상 머신(VM) 내에서 실행되는 개인 정보 보호 토르(Tor) 클라이언트를 사용하는 다른 사람을 감시할 수 있음을 보여주었다.

좀비로드의 공식 이름은 "Microarchitectural Data Sampling(MDS)"이다. 이것은 좀비 로드의 개념에서 온 일반적인 이름이다. 프로세스가 독자적으로 처리할 수 없는 많은 양의 데이터를 다루기 위해 칩은 충돌을 막기 위해 마이크로 코드의 도움을 요청한다. 일반적으로 응용 프로그램, 가상 컴퓨터(VM) 및 컨테이너는 자신의 데이터만을 볼 수 있다. 그러나 좀비로드 취약점으로 인해 공격자는 모든 최신 인텔 프로세서에서 정상적인 경계를 넘어 데이터를 감시할 수 있다.

다행히 이전의 멜트다운 및 스펙터 문제와는 달리 인텔은 이 취약점에 대비할 시간을 가졌고 마이크로 코드 패치를 발표했다. 이것은 프로세서의 버퍼를 지우는데 도움이 되어 데이터 읽는 것을 방지한다. 사용자는 프로세서를 업데이트하고 운영체제 패치를 해야 하며 최대한 보호를 위해 하이퍼 스레딩을 비활성화 해야 한다. 멜트다운과 스펙터가 나타났을 때 리눅스 개발자들은 패치를 위해 고군분투했고, 이번에도 마찬가지이다.

좀비로드는 메모리를 읽기 위해 세가지 고유한 공격 경로를 사용하여 보호기능을 우회하여 부채널 공격을 실행한다. 이와 관련된 네가지 CVE는 아래와 같다.

-CVE-2018-12126: 프로세서 저장소 버퍼에서 정보 유출 가능 취약점

-CVE-2018-12127: CPU 파이프라인에서 CPU 레지스터와 명령에 관해 데이터를 제공할 수 있는 마이크로 프로세스 작업 악용

-CVE-2018-12130: 마이크로 프로세서 채움 버퍼의 구현을 포함/해당 버퍼 내에서 데이터를 유출할 수 있는 취약점

-CVE-2019-11091: L1 CPU 캐시에서 캐시 미스가 발생했을 때 최신 CPU가 사용하는 메커니즘인 '버퍼 채우기' 구현의 결함

리눅스 보안 문제를 주도적으로 처리하고 있는 레드햇은 CVE-12130을 "중요"심각도로 평가하고 다른 취약점들은 중간정도로 부여했다.

안정 리눅스 커널 관ㄹ리자인 그레그 크로흐-하트맨(Greg Kroah-Hartman)은 다음과 같이 설명한다:

"나는 5.1.2 커널을 발표했다. 5.1 커널 시리즈 사용자는 업그레이드를 해야한다. 다시 말하면 2011년 부터 만들어진 인텔 프로세서를 사용하는 모든 사용자는 업그레이드를 해야한다."

레드햇은 레드햇 엔터프라이즈 리눅스 5에서 8까지 모든 리눅스 배포판이 영향을 받는다고 전했다. 레드햇 가상화(Virtualization) 및 레드햇 오픈스택(OpenStack)과 같은 리눅스 배포판을 기반으로 한 플랫폼들도 취약하다.

이것은 레드햇 만의 문제가 아니다. 문제는 운영체제가 아닌 인텔 프로세서에 있기 때문에 모든 리눅스 배포판이 취약하다. 이것은 또한 리눅스 기반 컨테이너와 VM도 공격 대상이라는 것을 의미한다. 자신을 보호하기 위해서 모든 시스템에서 Kernel, kernel-rt, libvirt, qemu-kvm, qemu-kvm-rhev 및 microcode_clt와 같은 리눅스 파일들을 패치 해야한다. 특히 악의적인 VM이나 컨테이너가 다른 컨테이너나 vm을 감시할 수 있는 취약점인 CVE-2018-12130이 있으므로 서버에서 실행중인 컨테이너와 VM 모두를 패치해야한다.

그러나 패치가 진행되면 시스템 성능이 저하된다. 레드햇은 고객이 그들의 위험 프로필을 평가하여 이러한 유형의 공격이 하이퍼 스레딩을 비활성화하는 단계까지 추가로 필요한지 이해하도록 권장했다. 레드햇은 취약성 연계로 인한 위협 때문에 구성이 직접 위협이 되지 않더라도 모든 시스템을 업데이트할 것을 강력하게 제안했다.

우분투 리눅스의 캐노니컬(Canonical)은 더 나아가고 있다. 시스템이 신뢰할 수 없거나 잠재적으로 악의적인 코드를 실행하는데 사용되는 경우 하이퍼 스레드를 비활성화하도록 권장했다. 비활성화 해야하는 몇가지 워크로드는 아래와 같다.

-잠재적 악성 사용자가 있는 다중 사용자 시스템: 악성 사용자는 MDS를 사용하여 시스템의 다른 사용자로부터 비밀을 추출할 수 있음

-의심스러운 출처에서 오는 프로그램을 실행하는 시스템: 시스템의 사용자가 신뢰할 수 없는 출처에서 만들어진 프로그램의 새로운 버전을 정기적으로 사용할 때 발생할 수 있음. 악성 소프트웨어 게시자는 MDS를 활용하여 시스템에서 비밀을 추출할 수 있음

-다양한 보안 도메인에서 가상 머신을 호스팅하거나 시스템 소유자가 완전히 신뢰하지 않는 시스템: 한 가상 머신의 악의적인 프로그램이 다른 가상 머신 또는 가상화 호스트 자체에서 비밀을 추출할 수 있음

카노니컬은 스탠드 얼론 리눅스 데스트톱을 사용하는 사용자들을 제외하고는 패치를 만들고 하이퍼 스레딩을 비활성화할 것을 권장했다.

대부분의 비즈니스 리눅스 배포판은 이미 패치를 설치할 준비가 되어 있다. 그러나 일반적인 보안 패치 채널을 통해 가능하지 않을 수 있다. 예를 들어 카노니컬은 "이 하드웨어 취약점을 완화하는데 따르는 변경 사항의 복잡성으로 인해 카노니컬 라이브패치 서비스를 통해 패치를 사용할 수 없습니다"라고 언급했다. 레드햇의 운영 체제 플랫폼 담당 부사장인 데니스 두마스(Denis Dumas)는 "이러한 보안 업데이트가 시스템 성능에 영향을 미칠 수 있으므로 레드햇은 성능에 민감한 작업 부하에 대한 영향을 보다 잘 관리하기 위해 이러한 수정 사항을 선택적으로 사용할 수 있는 기능을 포함시켰다"라고 설명했다.

커널 및 인텔 마이크로 코드 패치를 작성한 후에는 하이퍼 스레딩을 끄는 추가 예방 조치를 취하는 것이 좋다. 리눅스 커널 부팅 옵션을 아래와 같이 설정하면 된다.

mitigation = auto, nosmt

커널 작업에 대한 자세한 내용은 리눅스 커널 사용자 및 관리자 안내서에서 참조 가능하다.(https://www.kernel.org/doc/html/latest/admin-guide/index.html)

새로운 스케줄링 프로그램인 리눅스 커널 코어 스케줄링이 좀비로드를 완화하는데 도움이 될 수 있다. 그러나 그것을 감독하는 리눅스 커널 개발자인 피터 지즐스트라(Peter Zijlstra) 조차 만족하지 못하는 프로그램이다. 그는 열정적으로 그것을 싫어한다고 말했고 당신이 그 프로그램으로 무엇을 하던지에 상관없이 "비싸고 불쾌하다"고 언급했다.

리눅스 및 다른 모든 운영체제에 대한 유일한 장기 수정(long-term fix)은 인텔이 차세대 프로세서를 도입할 때이다. 현재 인텔 CPU의 최신 세대는 추측실행 프로세스 방식을 채탱해 데이터 처리 속도와 성능을 향상시키지만 이에 대해 보안 취약성의 대가를 치르고 있다.

★정보보안 대표 미디어 데일리시큐!★