라벨이 CPU 해킹인 게시물 표시

PlunderVolt, 인텔 CPU SGX 해킹 취약점

CVE-2019-11157 Intel CPU의 보안 영역인 SGX Enclave에서 암호화 키 등 중요 정보를 추출할 수 있는 취약점이 발견됐다. 6세대 이후의 코어 시리즈를 비롯해 SGX 기능을 지원하는 CPU들이 해당된다. 근래의 CPU는 소프트웨어를 통해 클럭(frequency)과 전압(voltage)을 조절할 수 있다. 최대 성능에서는 발열과 전력 소모가 심하기 때문에, 평상시에는 성능과 절전이 균형을 이루는 수준을 유지하고, 필요에 따라 성능 수준을 조절할 수 있도록 한 것이다. CPU 클럭과 전압은 비례 관계에 있기 때문에, 안정적인 작동을 위해 허용되는 조합이 정해져 있다. 그런데 PlunderVolt 취약점을 발견한 연구팀은 CPU에 부적절한 클럭/전압의 조합을 강제하면, SGX enclave의 기능에 오류를 일으켜 정보를 빼낼 수 있다는 것을 밝혀냈다. SGX를 공격하는 기법은 이전에도 여럿 있었지만, 플런더볼트는 이들보다 빠른 속도로 정보를 추출할 수 있어서 훨씬 실용적이라는 것이 연구팀의 주장이다. 인텔은 이에 대응해 microcode(CPU의 펌웨어)와 BIOS 업데이트를 내놨다. 이 둘을 함께 적용해, CPU의 클럭과 전압을 기본값으로 고정시켜야 취약점이 해결된다. 문제는 이렇게 하면 오버클럭 유틸리티 등 CPU 클럭을 조절하는 정상 프로그램도 작동하지 않는다는 것이다. 마이크로코드 업데이트는 Windows update를 통해 제공되기 때문에 문제가 없다. 그러나 바이오스 업데이트는 메인보드 제조사에서 제공하는데, 출시된 지 조금 오래된 보드에는 잘 제공하지 않는 경우도 있다. 관리자 권한 필요 PlunderVolt는 소프트웨어적인 방법만을 사용하기 때문에, 해커가 PC에 물리적으로 접근할 필요는 없다. 즉 원격 실행이 가능하다. 다만 CPU의 클럭과 전압을 조절하는 프로그램은 관리자 권한으로 실행돼야 하기 때문에, 해커는 먼저 다른 방법으로 표적 PC를 해킹해야 한다. 그러나 이 점이 플런더볼트를 평가절...

TPM-Fail, TPM 칩 해킹 취약점

CVE-2019-11090, CVE-2019-16863 TPM(Trusted Platform Module)은 기기의 보안을 강화하는 전용 칩으로, 보안 프로세서라고도 불린다. 모든 기기에 있는 것은 아니다. 원래는 별도의 칩으로 존재했는데, 인텔은 4세대 하스웰 이후로 CPU에 내장하기 시작했다. 이런 인텔의 TPM을 fTPM(firmware-based TPM)이라고 한다. TPM은 운영체제에서 최상위의 신뢰 수준으로 작동한다(serve as a root of trust). TPM은 암호화 키를 안전하게 저장하여 루트킷 등 악성코드로부터 보호하는 역할을 한다. TPM-Fail이라고 이름 붙여진 새로운 취약점은, 시간 측정을 이용한 부채널 공격(timing attack)에 의해 암호화 키를 추출할 수 있는 것이다. 인텔의 fTPM에서 발견된 취약점은 CVE-2019-11090으로, STMicroelectronics의 TPM 칩의 취약점은 CVE-2019-16863으로 등록됐다. 연구자들은 이 공격이 실용적이라고 주장하고 있다. fTPM에 대한 공격 테스트에서, 로컬에선 4~20분, 원격으로는 5시간만에 암호화 키를 탈취했다고 한다. 해커는 탈취한 암호화 키를 이용해 digital signature(디지털 사인, 전자 서명)을 위조할 수 있다. 그 결과는 인증 우회, 운영체제 변경 등으로 이어질 수 있다. 악성코드에 유명 기업의 전자 서명을 해서, 탐지를 회피하고 공급망 공격을 할 수도 있다. TPM은 PC뿐만 아니라 스마트폰, 임베디드 기기, IOT 기기 등에도 사용된다. 따라서 운영체제에 관계없이 취약한 TPM을 사용한 기기는 모두 영향권에 있다. 인텔은 펌웨어 업데이트로 취약점을 해결했고(참4), ST마이크로는 아예 새로운 칩을 내놨다(참3). 관련 자료 TPM 칩 해킹 취약점 참고 자료 TPM-FAIL Security Flaws Impact Modern Devices With Intel CPUs TPM-Fail ...

인텔 CPU TSX 해킹 취약점

CVE-2019-11135 마이크로소프트는 2019.11월 정기 보안 업데이트를 통해 Windows kernel memory의 내용이 일반 user mode 앱에 노출될 수 있는 취약점을 패치했다. 그런데 이것은 사실 윈도우 자체의 취약점이 아니다. Intel CPU의 TSX 기능의 취약점을 보완하기 위한 것이다. TAA(TSX Asynchronous Abort) 이 취약점은 speculative execution을 이용하는 인텔 CPU가 TAA(TSX Asynchronous Abort) 상태일 때, local에서 앱을 실행할 수 있는 해커가 side-channel attack을 통해 윈도우 커널 메모리의 내용을 읽을 수 있는 것이다. 이는 2019.5월에 발표된 MDS 취약점(관1)의 연장선에 있으며, ZombieLoad 2라는 별명을 얻었다. 기존 MDS에 대한 보안 수단을 우회하며, 최신 10세대 CPU도 영향권에 있다. Windows update로 대응 마이크로소프트는 계속 발견되는 speculative execution(예측 실행)에 대한 side-channel attack(부채널 공격) 취약점을 윈도우 업데이트로 대응하고 있다. 인텔이 제공하는 microcode(펌웨어) 업데이트도 포함해서 제공하고 있다. 2018년 초 예측 실행 취약점의 원조격인 스펙터(Spectre)가 공개됐을 때는, 컴퓨팅 환경에 대재앙이 일어날 것 같은 분위기였다. 그리고 하드웨어적 결함이기 때문에, 소프트웨어적인 대응책은 별로 효과가 없을 것으로 우려되기도 했다. 그러나 아직까지 스펙터 류의 취약점이 실전에 악용된 증거는 발견되지 않고 있다. 부채널 공격의 실용성 문제일 수도 있지만, 효과적으로 대응이 이루어지고 있는 것으로 볼 수도 있다. 따라서 대부분의 경우 윈도우 업데이트만 잘 해도 큰 문제는 없을 것 같다. MS는 지금까지 발견된 예측 실행 취약점에 대한 종합적인 대응 가이드를 제공하고 있다(참3). 이 문서는 계속 업데이트되고 있으니...

안드로이드 보안영역 해킹 취약점

CVE-2019-10574 Android 스마트폰에는 보안 영역이란 것이 있다. 사용자가 설치한 앱이 사용하는 일반 영역과 격리되어, 민감한 정보들이 저장되고 처리되는 곳이다. 지문 같은 생체 정보, 암호화 키, 금융 정보 등이 보안 영역에 저장된다. 이런 구성을 TEE(Trusted Execution Environment)라고 한다. 보안 영역에는 Trusted app(신뢰된 앱)만 접근할 수 있으며, 사용자가 설치한 일반 앱은 직접 접근할 수 없다. 일반 앱이 지문 인식, 저장매체 암호 해제, 금융 거래 등을 위해 보안 영역에 저장된 정보에 접근하려면, 신뢰된 앱에 요청하여 정보를 얻는다. 안드로이드 스마트폰에 대부분 사용되는 ARM 계열의 CPU는, ARM이 원천 특허를 가진 TrustZone을 이용해 보안 영역을 구성한다. 이때 각 CPU 제조사는 트러스트존을 독자적인 방식으로 자사 CPU에 적용한다. 대세를 이루고 있는 Qualcomm CPU의 트러스트존은 QSEE(Qualcomm Secure Execution Environment)라고 부른다. 2019.11.14일 발표된 Check Point의 보고서에서는 QSEE에 접근해 정보를 탈취할 수 있는 방법을 찾아냈다. Qualcomm TrustZone의 취약점 보고서에서는 일반 영역을 Normal world, 보안 영역을 Secure world라고 표현했다. 그리고 신뢰된 앱을 trustlet이라고 했다. 이 연구에서는 CVE-2015-6639, CVE-2016-2431 등 퀄컴 트러스트존의 오래된 취약점도 이용됐다. 체크포인트가 사용한 수법은 먼저 신뢰된 앱을 일반 영역에서 실행하는 데서 출발한다. 일반 영역에서 신뢰된 앱을 변조하고, 변조 검증 절차를 무력화하여 보안 영역에서 실행시킨다. 악성코드가 보안 영역에서 실행되는 것이다. 연구는 구글 넥서스 6를 통해 이루어졌으며, 이후 LG, 모토로라, 삼성의 일부 기종에서도 성공했다. 이 취약점 CVE-2019-10574...

인텔 CPU 해킹 취약점 - MDS, RIDL, Fallout, ZombieLoad

Intel CPU만 해당 인텔의 CPU에서 중요한 정보를 빼낼 수 있는 취약점 4개가 새로 발견됐다. AMD, ARM 등 다른 제조사의 CPU는 해당되지 않는다. 최신 9세대 CPU를 비롯해 거의 모든 인텔 CPU가 취약하다. 이 취약점들은 멜트다운(Meltdown), 스펙터(Spectre), 포어섀도우(Foreshadow) 등 2018년에 큰 문제가 됐던 CPU 취약점들의 연장선에 있다. speculative execution 기능의 결함에 근본을 두고 있기 때문이다. 그러나 이전 것들이 CPU에 장착된 캐시(cache) 메모리를 공격하는 것과 달리, CPU 내부의 버퍼(buffer)에서 처리 중인 데이터(in-flight data)를 유출하는 것이 특징이다. 이런 차이 때문에 기존 스펙터 류의 취약점에 대한 완화 조치는 소용이 없으며, 경우에 따라서는 이런 조치가 오히려 새 취약점 악용을 쉽게 만들기도 한다. MDS 취약점 이번에 발견된 취약점은 인텔 CPU 내부의 버퍼(임시 저장 공간)에서 처리 중인 데이터를 빼내는 것이다. 이것을 인텔에서는 MDS(Microarchitectural Data Sampling)라고 부른다. VM(가상 머신)이나 브라우저의 사이트 격리 같은 보호 장치, SGX enclave(인텔 CPU의 보안 영역)등 보안 수단을 모두 돌파한다. 따라서 클라우드 같이 여러 사람이 사용하는 환경에서는 다른 사람의 데이터를 빼낼 수 있다. CPU에서 처리 중인 모든 데이터가 대상이므로, 암호 등 중요 정보도 포함될 수 있다. 특정 정보만 골라서 노리는 것은 어렵다. MDS 취약점은 모두 4개로 구성되는데, 공격 방법에 따라 RIDL, Fallout, ZombieLoad로 구별된다. RIDL(Rogue In-Flight Data Load)은 Fill buffers와 Load Ports를 공격하는 것이다. 일반적인 악성코드 뿐만 아니라 공유된 클라우드 자원이나 웹 페이지의 자바 스크립트를 사용해 악용할 수 있다. F...

포트스매시(PortSmash), CPU 하이퍼스레딩의 취약점 해킹

SMT의 취약점 SMT(Simultaneous Multi-Threading)는 하나의 물리적인 CPU 코어를 여러 개의 논리적 코어로 분할 이용해서 효율성을 높이는 기술이다. 일찍이 Intel이 하이퍼 스레딩(HT, Hyper-Threading)이란 이름으로 구현했고, AMD도 라이젠부터 SMT를 적용했다. SMT에서 한 스레드의 프로세스는 기본적으로 독자적인 명령과 데이터를 갖는다. 그러나 다른 스레드의 프로세스와 일부 하드웨어 자원을 공유하기도 한다. 이런 특징으로 인해 다른 프로세스의 데이터를 훔치는 공격 가능성이 열려 있다. CVE-2018-5407: Timing attack 포트스매시는 시간측정 공격(Timing attack, 타이밍 공격)이라는 부채널 공격(Side-channel attack)의 일종이다. 시간측정 공격은 어떤 명령이 처리되는 시간을 측정하고, 이를 분석해 입력한 데이터를 알아내는 기법이다. 포트스매시 공격술을 고안한 연구팀은, 하이퍼 스레딩의 취약점과 시간측정 공격을 통해, 다른 스레드에서 실행중인 OpenSSL의 개인 키를 알아내는 데 성공했다. 이들은 이 공격술이 인텔의 스카이레이크와 카비레이크 CPU에서 작동함을 확인했다. 하지만 AMD의 라이젠을 비롯해 하이퍼스레딩을 지원하는 CPU에서 두루 통할 것으로 예상했다. OpenSSL은 이에 대해 패치한 1.1.0i 버전과 1.1.1 버전을 내놓았다. 그러나 연구팀에 따르면 이 공격술은 특정 소프트웨어에만 작동하는 것은 아니다. 다른 프로그램들도 표적이 될 수 있다는 것이다. TLBleed가 원조 하이퍼스레딩의 취약점과 이를 이용한 시간측정 공격의 가능성은 이미 6월에 TLBleed라는 이름으로 알려졌다. 이로 인해 OpenBSD 운영팀은 하이퍼스레딩 지원을 중단했다. 이런 공격에 대한 대응책은 현재로선 하이퍼스레딩 기능을 끄는 수밖에 없다. BIOS 설정에서 끌 수 있는데, 기종에 따라선 이를 끄는 기능이 없는 경우도 있다. 참고 자료 N...

포어섀도우(Foreshadow), 인텔 CPU 보안영역 해킹 취약점

인텔 CPU 특유의 보안 영역인 SGX Enclave의 민감한 내용을 탈취할 수 있는 취약점이 발견됐다. speculative execution 기능의 취약점을 이용한다는 점에서 스펙터(Spectre) 류로 분류되기도 하지만, SGX Enclave와 L1 캐시 메모리를 공격 대상으로 한다는 점에서 많이 다르기도 하다. 이런 차이점으로 인해, 기존의 멜트다운(Meltdown)과 스펙터에 대한 대응 조치는 소용이 없다. 인텔에서는 이를 L1TF라고 부르는데, 먼저 발견하고 제보한 연구팀은 포어섀도우라고 부른다. 포어섀도우에는 3개의 버전이 있는데, 원조는 CVE-2018-3615로 등록된 Foreshadow, 2개의 변종은 CVE-2018-3620, 3646인 Foreshadow NG(Next Generation)이다. Foreshadow는 SGX Enclave를 공격하고, Foreshadow NG는 L1 cache를 공격한다. Sgx Enclave는 인텔 CPU에 특유한 것이므로 현재까지의 연구 결과로는 다른 제조사의 CPU는 영향을 받지 않는다고 한다. 포어섀도우는 스펙터로 한창 난리가 났던 올 초에 인텔에 보고됐고, 인텔은 바로 펌웨어 업데이트를 했다. 그러나 운영체제와 드라이버에 대한 패치가 늦어져 8.14일에야 배포됐고, 관련 사실도 대중에 공개됐다. 이번 패치는 스펙터 때와는 달리 시스템 성능 저하가 거의 없다고 한다. 포어섀도우 역시 스펙터와 마찬가지로 클라우드 서비스에 특히 위협적이므로, 서비스 제공업체의 주의가 필요하다. 포어섀도우 발견으로 인해 CPU의 보안영역에 대한 과신은 금물이라는 점이 더욱 명확해졌다. 이전에도 SgxPectre라는 취약점(관련 자료 1)이 발견된 바 있고, 일반 악성코드에 의한 공격 가능성도 입증된 적이 있다. 물론 공격의 난이도와 안전성에서 일반 저장공간과는 큰 차이가 있지만, 정상 프로그램이 읽고 쓸 수 있는 공간이라면 악성코드도 할 수 있다고 보는 편이 옳다. 관련 자료 인텔 CPU의 SGX ...

넷스펙터, CPU 해킹 취약점 스펙터의 진화된 변종

악성코드가 필요없는 넷스펙터(NetSpectre) 27일 현존 대부분의 CPU에 존재하는 취약점인 스펙터(Spectre)의 특이한 변종이 공개됐다. 지금까지 발견된 스펙터 류의 취약점을 이용한 공격에는 피해자의 기기에 설치된 악성코드나, 악의적인 웹사이트에 심어놓은 자바 스크립트가 필요했다. 그러나 넷스펙터는 네트워크 연결을 통해 바로 CPU를 공격하여, CPU의 메모리에서 민감한 정보를 빼낼 수 있다. 이 공격은 표적이 된 기기에 특수하게 가공된 요청 패킷을 대량으로 보내고, 응답 시간을 측정하는 방식으로 이루어지는 부채널(side-channel) 공격이다. 그러나 엄청나게 느린 공격 속도가 약점이다. 시간당 15bits, 인텔에 특유한 AVX2 모듈을 이용하면 60bits의 속도로 정보를 탈취할 수 있다. 이 때문에 넷스펙터는 단지 이론적인 것에 불과하다는 견해도 있다. 그러나 로우해머(RowHammer) 취약점의 경험처럼, 계속된 연구로 공격 속도가 극적으로 향상될 가능성도 있다. 또 하나 다행인 점은 원조 스펙터에 대응한 패치로 넷스펙터도 막을 수 있다는 것이다. 관련 자료 스펙터 & 멜트다운, 인텔CPU 해킹 취약점 CPU 해킹 취약점 스펙터 1.1 & 1.2 참고 자료 New NetSpectre Attack Can Steal CPU Secrets via Network Connections NetSpectre — New Remote Spectre Attack Steals Data Over the Network  

CPU 해킹 취약점 스펙터 1.1 & 1.2

7.10일 CPU의 보안 취약점인 스펙터(Spectre)의 변종 2개가 또 공개됐다. 원조 스펙터와 마찬가지로 CPU의 분기예측 실행(speculative execution) 기능을 이용하며, Intel/AMD/ARM 등 모든 CPU에 해당된다. 이 2개의 버그는 스펙터 1.1과 스펙터 1.2로 불리며, CVE-2018-3693으로 등록됐다. 스펙터 1.1을 공략하면, 보호된 CPU 메모리 구역의 데이터를 읽을 수 있다. 스펙터 1.2를 악용하면, 읽기 전용으로 표시되어 보호되는 CPU의 메모리 구역에 데이터를 쓸 수 있다. 다만, 이들 취약점을 악용하려면 공격을 수행할 악성코드를 먼저 설치해야 한다. 이 점은 멜트다운과 스펙터 류의 취약점 대부분에서 마찬가지이다. 보안 프로그램으로 막을 수 있는 가능성이 열려 있는 것이다. 멜트다운과 스펙터 류의 취약점은 근래 CPU의 구조적인 문제인데, 완전한 해결을 위해서는 CPU, BIOS, 운영체제 등 모든 요소들이 업데이트돼야 한다. 사실상 불가능하다. 따라서 이들 취약점이 악용되는 경로를 차단하는 데 주력해야 한다. 보안 소프트웨어는 물론 크롬, 엣지 등 브라우저들도 이런 공격을 어렵게 하는 보안 기능을 강화하고 있다. 관련 자료 스펙터 & 멜트다운, 인텔CPU 해킹 취약점 크롬 67, 사이트 격리로 스펙터 대응 참고 자료 New Spectre 1.1 and Spectre 1.2 CPU Flaws Disclosed  

인텔 CPU의 SGX 취약점, 보안 영역 해킹 가능

SgxPectre, 스펙터의 변종 최근 미국 오하이오 주립대학의 연구원들이 인텔 CPU의 보안영역(SGX enclave)에 저장된 내용을 누출할 수 있는 공격 방법을 발견했다. 올 초 크게 문제가 됐던 스펙터와 비슷한 점이 있어서, SGX펙터라고 이름 붙였다. SGX enclave는 인텔 CPU에 있는 특별히 보호되는 격리 구역으로, 개발자가 SGX SDK를 이용해 만든 프로그램이 이 구역에서 코드를 실행하고 데이터를 저장할 수 있도록 한다. SGX 안에 있는 코드와 데이터는 SGX 외부에서 볼 수도, 수정할 수도 없다. 여기에는 암호화 키, 생체 인증 정보 등 일급기밀이 저장된다. SGX펙터는 CPU의 버그를 이용해 SGX enclave의 기밀성을 파괴하는 것이다. 이 버그 혹은 공격 방법은 CPU에서 메모리 누출이 일어난다는 점에서 멜트다운, 스펙터와 유사하다. 그러나 멜트다운과 스펙터에서는 SGX enclave가 직접 침범당하지는 않았다. 인텔은 3.16일 이에 대한 설명과 더불어 SGX SDK의 업데이트를 배포할 계획이다. 일반 악성코드에 의한 공격도 가능 사실 이미 1년 전에 SGX enclave에 침투할 수 있는 악성코드가 개발됐다. 오스트리아의 그라쯔 공대 연구팀이 2017.2월에 최초로 이것이 가능함을 증명했다. 이 악성코드는 SGX enclave에 설치되어 기밀 정보를 누출함은 물론, 그 안에 숨어서 보안 소프트웨어에 탐지되지도 않는다. CPU 보안 영역이라는 허상 요즘 스마트폰을 OTP로 활용하고, 지문이나 홍채 같은 생체 인증 정보를 저장한다. 그러면서 CPU의 보안 영역에 안전하게 저장되고, 해킹의 염려가 없다고 광고한다. 최근 인텔 CPU의 보안 결함이 연속적으로 밝혀졌는데, 이것이 인텔만의 문제일까. 또한 설계를 다시 해서 신제품을 출시하면 그것은 안전할까. 아니, 사람이 하는 일에 완벽이란 있을 수 없고 보안 결함은 계속해서 나올 것이다. 하드웨어적으로 보호되어 안전하다는 말을 너무 믿지는 말자...

스펙터 & 멜트다운, 인텔CPU 해킹 취약점

Spectre & Meltdown (2018.1) INTEL CPU의 보안 관련 버그로 연초부터 난리네요. 사실 처음도, 인텔만의 문제도 아닙니다. INTEL, AMD, ARM의 CPU에서 구조적인 결함이 발견됐는데, 이를 악용할 경우 암호, 개인파일 같은 메모리 내용을 훔쳐갈 수 있습니다. CPU의 문제이므로 운영체제를 가리지 않으며, ARM이 포함됐으므로 스마트폰의 모바일 AP도 영향권 안에 있습니다. 10여년 전부터 존재한 버그로 현재 사용중인 CPU 거의 다 해당합니다. CPU의 메모리 내용 노출 스펙터(spectre)는 캐싱 기술의 취약점인데, INTEL, AMD, ARM에서 모두 발견됐습니다. 캐싱이란 데이터를 읽을 때 앞으로 읽을 것으로 예상되는 것까지 한꺼번에 읽음으로써, 디스크 접근을 최소화하고 입출력 작업을 빠르게 하는 기술입니다. 이런 캐시 메모리의 내용이 노출될 수 있다는 겁니다. 멜트다운(meltdown)은 인텔CPU에만 해당되는데, 스펙터에서보다 광범위하게 전체 시스템 메모리 내용이 노출될 수 있습니다. 즉, 사진, 문서, 이메일 등 RAM에 로드된 개인파일까지 훔쳐갈 수 있습니다. 멜트다운은 원자로가 녹아내리는 것인데, 해커가 하드웨어 장벽을 뜷고 메모리에 침투하는 심각성을 이렇게 충격적인 용어로 표현했습니다. 이 2개의 버그를 한마디로 요약하면, 사용자로부터 격리되어야 할 CPU의 보안 메모리 내용이 누출될 수 있다는 것입니다. 메모리 누출 문제이므로 서버, 데이터 센터 같이 여러 사용자의 데이터를 처리하는 시스템이 가장 우려되는 부분입니다. 클라우드 서비스를 예로 들자면, 다른 사용자의 메모리 내용, 로그인 비밀번호 등을 읽을 수 있다는 것입니다. 칩 해킹 늘어날 가능성 인텔 칩의 보안 버그는 이번이 처음이 아닙니다. 2017.11에도 큰 문제가 된 바 있습니다. 제가 요약한 글(관련 자료 2)이 있고, 심층분석한 글(참고 자료 5)도 있습니다. 2017.5에 문제가 된 AMT 취약점은 더...