새 CPU버그 '넷스펙터', 코드 설치 없이 공격

"네트워크로 시스템 메모리 정보 탈취 시도"

컴퓨팅입력 :2018/07/30 11:03    수정: 2018/07/30 14:27

네트워크를 통해 원격으로 컴퓨터 시스템의 메모리를 빼돌릴 수 있는 중앙처리장치(CPU) 보안 허점이 발견됐다. 이를 발견한 보안 전문가들은 '넷스펙터(NetSpectre)'라는 이름을 붙였다.

넷스펙터는 구동 중인 소프트웨어(SW) 종류와 무관하게 부채널 공격을 허용하고 민감한 정보를 털릴 수 있는 하드웨어 결함이라는 점, 인텔, AMD, ARM 등 주요 제조사 프로세서에 모두 적용된다는 점에서 '스펙터(Spectre)' 취약점과 닮았다. 차이는 뭘까. 스펙터 취약점을 악용하려면 공격자가 표적 시스템에 악의적 코드를 설치해야 한다. 넷스펙터 취약점은 그럴 필요가 없다는 점에서 언뜻 좀 더 심각해 보인다.

미국 지디넷은 지난 27일 넷스펙터라 불리는 새 CPU 보안취약점을 발견한 연구자들의 분석 보고서가 공개됐다며 그 주요 내용을 소개했다. 마이클 슈워츠, 다니엘 그루스, 마틴 슈워츨, 모리츠 립, 스테판 만가드, 5명이 분석 보고서 공동저자다. 이들 모두 그라츠공과대학교 소속이며, 대부분 연초 공개된 '멜트다운(Meltdown)' 및 스펙터 보안취약점 분석 연구에 참여했던 인물들이다.

스펙터(Spectre) 로고.

연구자들은 이전까지 공격자가 원격에서 인텔, AMD, ARM 프로세서의 보안취약점을 악용하려면 이용자 브라우저에서 구동되는 자바스크립트를 실행해야 했다. 이제 새로 발견된 취약점을 악용하면 공격자는 표적 기기에서 아무런 코드 실행도 유도할 필요가 없다. 그저 악의적 네트워크 트래픽을 주입할 수만 있으면 된다. 이게 넷스펙터 취약점을 발견한 연구자들이 내린 결론이다.

■ '스펙터' 닮았지만 네트워크 트래픽만으로 공격 수행

넷스펙터는 앞서 발견된 스펙터 악용 과정과 비슷하게 작동한다. 스펙터를 악용하는 공격은 로컬 시스템에서 실행되는 코드를 필요로 한다. 둘의 공통점은 CPU 프로세서의 약점이라는 것, 악용당했을 때 CPU가 그 연산 속도를 높이기 위해 필요할 것으로 추정되는 데이터를 저장하고 있는 메모리 영역에서 데이터를 유출당할 수 있다는 것이다.

보고서 공동저자 중 한 명인 마이클 슈워츠는 "오리지널 스펙터 공격과 비슷한 정보유출(유형)"이라며 "기존 공격과의 차이점은 표적 시스템에 공격자가 제어하는 코드를 전혀 필요로 하지 않는다는 점"이라고 지적했다. 그에 따르면 공격자는 이를 통해 시스템의 메모리에 담긴 내용을 유출시킬 수 있다. 메모리에 담긴 암호화 키 또는 패스워드같은 민감한 데이터가 빼돌려질 수 있다는 얘기다.

그라츠공과대학 연구자들은 이 취약점이 실제 위협이 될지를 테스트했다. 네트워크를 통해 시간당 15비트, 일부 인텔칩 기반 시스템에는 시간당 60비트 트래픽을 보냈다. 연구자들은 이 버그가 짧은 지연시간과 빠른 속도를 제공하는 로컬 네트워크에서든 인터넷을 통해 접근할 수 있는 구글의 클라우드 기반 가상머신에서든 작동한다는 점을 확인했다. 다른 클라우드 서비스 환경 또한 넷스펙터 영향을 받을 수 있다.

■ "일반 이용자보다는 고가치 표적 겨냥해 악용될 듯"

새로운 보안취약점을 더 경계해야 한다고 무작정 겁을 주는 건 아니다. 넷스펙터 보고서 공동저자이자 오리지널 스펙터 연구자이기도 한 다니엘 그루스는 기존 스펙터 취약점이 실행하기에는 매우 어렵지만, 현실 세계 환경에서 유효한 공격에 노출시킨다고 봤다. 반면 새로운 기법을 통해 의미있는 정보를 뽑아내는 공격은 대단히 느리게 진행된다는 점 때문에 비현실적이고 이론적인 성격이 크다고 설명했다.

넷스펙터 취약점 공격을 통해 원격 시스템을 겨냥한 메모리 유출 사고의 위험이 전혀 없다는 얘기는 아니다. 슈워츠는 "고가치 표적(high-value targets) 대상으로 수행될 표적공격"에 넷스펙터 공격이 시도될 수 있을 것이라고 봤다. 고가치 표적이란 경제적, 군사적, 정치적으로 민감한 내용이나 기업의 영업비밀 등 보호돼야 하는 정보를 보유한 시스템으로 해석된다.

상대적으로 일반 이용자들에게 넷스페터 취약점 공격이 시도될 가능성은 높지 않다. 공격자 관점에서 굳이 넷스펙터같은 최신 CPU 취약점을 동원하지 않고도 보안 업데이트가 안 된 OS 및 주요 소프트웨어 보안 버그를 악용하면 일반 이용자 시스템을 악성코드에 감염시키고 제어할 수 있기 때문이다. 슈워츠는 "당분간 대규모 넷스펙터 공격이 발생할 것 같지는 않다"고 덧붙였다.

■ 주요 제조사 CPU에서 모두 발견…기존 스펙터 1종 대응으로 방어

넷스펙터 취약점은 인텔, AMD, ARM의 설계에 기반하는 주요 CPU에서 모두 발견됐다. 현재까지 발견된 여러 종류의 스펙터 취약점 가운데 '스펙터 1종(Spectre variant 1)'에 취약하다고 판명된 프로세서라면 넷스펙터에도 취약할 것으로 추정된다. 넷스펙터 취약점의 세부 정보는 최대 CPU 제조사 인텔 측에 공유됐다. 연구자들은 다른 CPU 제조업체 및 클라우드 서비스 업체들에도 연락을 취했다.

넷스펙터 분석 보고서 공동저자 슈워츠는 자신들이 발견한 취약점을 악용하는 코드를 공개할 계획이 없다고 언급했다. 그는 해당 코드가 "엔드 투 엔드 익스플로잇에 쓰일만한 단일 툴이 아니며 특정 표적에 이 툴을 적용하려면 상당한 지식을 필요로 한다"고 설명했다.

인텔은 연구자들의 제보를 받고 기존 스펙터 취약점 대응 수단을 적용했을 경우 넷스펙터 공격 또한 방어할 수 있다고 밝혔다. 회사측은 공식 발표문에서 "넷스펙터는 경계검사 우회(Bounds Check Bypass)를 응용한 것이며, 동일한 방법으로 대응할 수 있다"면서 "코드 인스펙션과 소프트웨어 변경으로 적절한 곳에 추측(speculation, CPU의 명령어처리 가속 기법 중 하나) 중단 장벽을 두라"고 조언했다.

미국 지디넷에 따르면 ARM는 회사 보안공지를 통해 넷스펙터 정보를 업데이트했고, AMD는 코멘트 요청에 응하지 않았다. 클라우드서비스 제공업체 구글과 아마존웹서비스의 응답도 없었다.

■ 계속되는 스펙터 하위 보안취약점 발생과 제보

넷스펙터는 프로세서 설계 결함에 관련된 여러 보안취약점 중 하나로 새로 발견됐다. 이달중 앞서 유사한 발견이 있었다. 미국 매사추세츠공과대학교(MIT) 박사후보생 블라디미르 키리안스키와 독립 보안연구자 칼 왈즈퍼거가 인텔 프로세서를 분석하다 '스펙터1.1'과 '스펙터1.2'이라는 2가지 취약점을 찾아냈다. 인텔은 버그바운티 프로그램 '해커원'을 통해 이를 제보한 키리안스키에게 10만달러 상금을 줬다.

관련기사

스펙터1.1은 CPU의 '투기적실행' 또는 '추측실행(speculative execution)' 동작에 쓰는 데이터저장소를 이용해 추측 버퍼 오버플로 현상을 일으킨다. 고전적인 버퍼 오버플로 공격처럼, 데이터저장소 경계를 넘어선 동작으로 데이터 및 코드 포인터를 변경한다. 공격자는 추측코드드실행을 가능케하는 '제어흐름(control-flow)' 공격으로 오리지널 스펙터 대응 조치도 우회할 수 있다.

스펙터1.2는 읽기 및 쓰기 보호를 시행하지 않는 CPU를 오동작하게 만들 수 있다. 이를 통해 추측실행 데이터저장소가 읽기 전용 데이터와 코드 포인터를 덮어 쓰게 만들 수 있다. 이는 샌드박스 보안 모델에 위배되는 동작이다. 이 기능을 사용하면 공격자가 시스템을 장악할 수 있게 된다.