리눅스는 지금 '멜트다운'과 혈투중

보안결함-성능저하 두 악재퇴치 안간힘

컴퓨팅입력 :2018/01/17 14:17    수정: 2018/01/18 07:52

IT업계를 강타한 CPU 취약점 '멜트다운'과 '스펙터' 사태에 가장 광범위한 사용자를 보유한 리눅스 진영은 치열한 전쟁을 벌이고 있다. 빠르게 멜트다운에 대응하는 업데이트를 내놨지만, 곳곳에서 발생하는 후속 문제에 골머리를 앓고 있다.

최근 미국 지디넷에 따르면, 레드햇과 우분투, 데비안 등 주요 리눅스 배포판은 인텔 CPU의 '멜트다운'에 대응하는 업데이트를 내놓은 상태다.

그러나 업데이트 설치 후 곳곳에서 심각한 성능 저하를 겪는다는 보고가 잇따르면서, 후속 조치에 나섰다. 관리되지 않는 구형 서버 및 어플라이언스 문제도 거대한 위협요소로 숨어 있다.

접근을 허용해선 안 되는 메모리상의 OS 및 애플리케이션 데이터를 공격자에게 노출시키는 CPU 보안결함을 형상화한 이미지. 멜트다운(왼쪽)과 스펙터.

레드햇의 멜트다운 및 스펙터 성능 벤치마크 결과는 리눅스 멜트다운 패치가 몇가지 성능 저하를 야기한다는 결과를 보여준다.[레드햇 문서 바로가기]

커널-사용자 스페이스 변환 벤치마크, 버퍼IO를 사용하는 랜덤 캐시 메모리, OLTP 데이터베이스 워크로드는 8~19%의 성능 저하를 겪는다. OLTP 워크로드(TPC), sysbench, pgbench, netperf, NVMe 랜덤 I/O 등이 해당된다.

데이터베이스 분석, 디시전서포트시스템(DSS), 자바VM 등은 앞선 경우보다는 상대적으로 적은 영향을 받는다. 이들 워크로드는 3~7%의 성능저하를 보인다. 이들 애플리케이션은 디스크나 네트워크 트래픽의 순차적 영향을 받을 수 있지만, 커널/디바이스 드라이버가 커널-사용자 변환 요청을 적정 수준으로 결합할 수 있다. SPECjbb2005, 시간당 쿼리, 전체 분석 시간 등이 영향을 받고 있다.

CPU 집약적 워크로드인 고성능 컴퓨팅(HPC)은 2~5%의 성능 저하 현상을 보이고 있다. 대부분의 작업이 사용자 영역에서 이뤄지고, CPU 고정할당(cpu-pinning)이나 누마컨트롤(numa-control) 등을 활용하기 때문이다. x86DML 린팩 NxN, SPECcpu2006 등에서 멜트다운 패치의 영향을 받는 것으로 나온다.

리눅스 가속기 기술은 2% 미만의 성능 저하를 보이고 있다. 리눅스 가속 기술이 커널을 우회해 사용자 접근을 하게 하기 때문이다. DPDK와 오픈온로드(STAC-N) 등이 테스트됐다.

■ 하드웨어 기능 끄지 않고 보안 결함 해결 노력

현재까지 리눅스 배포판 차원에서 성능저하 문제를 해결하는 방안은 나오지 않았다. 인텔이 모든 프로세서에서 마이크로코드를 어떻게 정의하는지 공개했지만, 전체 성능 저하 문제를 완화할 방법이 나오지 않고 있다.

구글은 최근 구글이 자사 클라우드서비스에 인텔CPU 보안패치를 적용하고도 성능 영향을 받지 않았다고 밝혔다. 구글은 자체 개발한 소프트웨어(SW)로 클라우드서비스에 CPU보안결함을 거의 성능저하 없이 대응했다. 그리고 이를 오픈소스SW로 공개했다.[구글 리트플린 설명 페이지 바로가기]

앞서 지난 3일 구글은 세계 각지 보안전문가들과 함께 보안연구조직 '프로젝트제로' 팀 중심으로 협력해 내놓은 보안취약점 분석 보고서를 통해, 업계서 널리 쓰이는 제조사 CPU에서 컴퓨터 메모리에서 기밀을 노출하는 심각한 보안취약점 3건이 발견됐다고 밝혔다. 2가지는 스펙터(Spectre)라 불렸고, 1가지는 멜트다운(Meltdown)이라고 불렸다.

보고서 내용에 따르면 스펙터와 멜트다운은 접근권한이 없는 운영체제(OS)나 다른 애플리케이션에서, 컴퓨터 메모리에서 처리되고 있는 패스워드를 비롯한 기밀 정보 등 민감한 데이터를 들여다볼 수 있게 만드는 CPU 하드웨어 결함이었다. 개인용 모바일 기기 및 PC부터 기업 전산실 서버와 데이터센터 및 클라우드서비스의 가상머신(VM) 등 광범위한 컴퓨터가 이 취약점을 공격에 노출된 상황이 됐다. 구글은 3가지 취약점에 따른 보안위협에 대응하는 조치를 지난 몇개월에 걸쳐 취해 왔다. 그중 구글이 2번째 스펙터 결함인 '버라이언트2(Variant 2)' 또는 '분기표적 주입(Branch Target Injection)' 취약점을 해결하려다 문제가 발생했다. 이에 구글은 '리트폴린(Retpoline)'이라는 기술을 만들었다. 이후 3가지 취약점을 모두 해결한 뒤 누구도 성능 문제를 체감하지 못했다는 설명이다.

분기표적 주입 취약점은 CPU에 탑재된 '간접분기예측기(indirect branch predictors)'의 허점이다. 간접분기예측기는 CPU가 당장 불필요한 명령을 미리 처리해 전체 성능을 끌어올리는 '투기적실행(speculative execution)' 동작시 처리될 명령을 지시하는 구성요소다. 결함을 해결하기 위해 CPU의 투기적실행 동작이나 다른 기능을 끌 경우 성능에 손실이 발생할 수 있다.

구글의 테크니컬인프라스트럭처그룹 소속 SW 엔지니어 폴 터너(Paul Turner)가 만든 리트폴린은, CPU의 투기적실행 동작이나 다른 하드웨어 기능을 끄지 않고 보안결함을 해결한다. 공격자가 대신 분기표적 주입 취약점을 통해 투기적실행 동작을 악용하지 못하도록 SW 바이너리 변형(binary modification) 기법으로 프로그램을 변경한다.

성능저하 이슈는 차츰 해결될 것으로 보인다. 또한 성능 저하를 감수하고라도 멜트다운을 악용한 외부의 사이버 공격을 방어할 수 있다는 점도 희망적인 부분이다.

■ "최신 버전으로 교체하는 것이 바람직"

그러나 또 다른 문제는 멜트다운 패치조차 설치할 수 없는 시스템이 전세계에 널렸다는 점이다. 리눅스는 인류의 상상보다 훨씬더 많은 전자제품에 들어가 있다.

보안전문가 브루스 슈나이어는 "멜트다운과 스펙터는 개인소비자용 디바이스의 임베디드 컴퓨터에 영향을 준다"고 경고하고 있다. PC, 스마트폰과 달리 다수의 임베디드 시스템은 적은 마진 탓에 고도의 IT 기술력이 투입되지 못하고 있다. 많은 임베디드 시스템 제조사는 보안팀을 별도로 운영하지 않으며, 기기에 대한 강제 업데이트 메커니즘도 가지지 않았다. 가정용 인터넷 공유기, 디지털 비디오 리코더, 웹캠 등에 대한 이같은 보안허점 지적은 이미 수년째 제기되고 있다.

작년 8월 전세계 임베디드 기기에 영향을 미친 '미라이 봇넷' 사태는 아직도 완전히 해결되지 않았고, 스펙터와 멜트다운 사태도 상황은 비슷하다.

리눅스와 오픈소스 소프트웨어는 개인용 기기뿐 아니라 방화벽, DNS, 로드밸런싱, 인터넷 게이트웨이, VPN 하드웨어, 인증 및 키 암호화 어플라이언스 등에 활용된다. RHEL의 변종인 센트OS가 이런 어플라이언스에 주로 쓰인다.

레드햇이 센트OS 프로젝트를 주도적으로 관리하면서 보안 패치를 내놓고 있긴 하다. 그러나 구형 기기는 최신버전과 표준 빌드에서 멀어져 센트OS 4나 5 버전에 머물러있다.

관련기사

이런 리눅스 구 버전은 배포판 차원에서 공식 기술지원을 종료했고, 패치를 잘 내놓지 않는다. 많은 조직들이 구 버전을 최신 버전 기반 기기로 교체하지도 않는다. 이 같은 리눅스 기기들이 스펙터와 멜트다운 취약점에 고스란히 노출된 것이다.

미국 지디넷은 "최소한 시스템을 공격자보다 더 면밀히 모니터해야 하며, 회사의 더 현명한 결정은 새로운 취약점을 가진 장비를 최신 버전 기반의 장비로 교체하는 것"이라고 조언했다.