LOADING.

이 “패치 불가능한” 취약점은 모든 닌텐도 스위치를 해킹 가능하게 만듭니다

원문 기사 : https://arstechnica.com/gaming/2018/04/the-unpatchable-exploit-that-makes-every-current-nintendo-switch-hackable/

이 새로 발견된 취약점에 대한 “개념 증명” 페이로드는 닌텐도 스위치의 새롭게 노출된 bootROM 영역으로부터 보호된 중요 정보들을 보여주고 있다.

 

새롭게 공개된 NVIDIA 테그라 X1 기반 시스템의 “취약점 체인(Exploit Chain)”은 현재 출시된 모든 닌텐도 스위치 콘솔에서 패치 불가능한 방법으로 임의 코드를 실행하는 것을 보여주는 것으로 짐작된다. 하드웨어 해커 Katherine Temkin과 해킹 팀 ReSwitched는 ‘Fusée Gelée coldboot’ 라고 불리는 취약성에 대한 광범위한 개요를 오늘 오전에 스위치에 사용할 수 있는 개념증명 형식의 페이로드와 함께 내놓았다.

“‘Fusée Gelée’는 완전하지는 않지만, 몇몇 부분에서 ‘성배’ 라고 할 수 있을 만한 취약점이 있고 Fusée Gelée는 여기에 매우(pretty damned) 가까운 것이다.” 라고 Temkin은 FAQ에서 밝혔다.

개요에 따르면, 이 취약점은 Tegra X1의 USB 리커버리 모드에 내재하는 취약점을 이용한 것이며, 칩 안의 중요한 bootROM을 보호하는 데에 보통 쓰이는 폐쇄 기능을 회피하는 것이다. 적절한 지점에서 ‘나쁜 길이의’ 인수를 부적절하게 코딩된 USB 제어 함수로 전송하게 됨으로써, 사용자는 시스템으로 하여금 강제적으로 “제어 요청(Control Request)당 65,535바이트를 요청하게 된다.” 이 데이터는 쉽게 bootROM의 중요한 Direct Memory Access(DMA) 버퍼를 오버플로우시키며, 보호된 애플리케이션 스택(protected application stack)에 데이터를 복사하여 공격자로 하여금 임의의 코드를 실행할 수 있는 능력을 준다.

스위치에서, 이 취약점 실행의 가장 어려운 부분이라면 바로 시스템을 강제로 USB 리커버리 모드로 들어가게 해야 한다는 것이다. 스위치를 분해하지 않고서 이를 진행하려면 우측의 Joy-Con 커넥터의 특정 핀이 쇼트되도록 해야 한다. Fail0verflow의 해킹 팀은 쇼트를 쉽게 낼 수 있는 것으로 보이는 자그마한 장치의 사진을 트윗으로 남겼으며, 하드웨어 상점에서 구할 수 있는 조그마한 선 가닥만으로도 동일한 일을 할 수 있다고 농담하기도 했다. Temkin은 또한 트윗에서 핀을 노출시키고 구부려서 쇼트를 내는 간단한 방식 또한 먹힐 것임을 추측하게 했다.

패치가 불가능한가?


이 취약점이 특히 닌텐도와 다른 테그라를 사용하는 제조사에게 우려가 될 만한 점은 바로 이 취약점이 다운로드 가능한 소프트웨어 패치로 방어 불가능하다는 점에 있다. 이 이슈의 오버플로우된 bootROM은 테그라 칩이 공장에서 출고되는 순간부터 더 이상 변경될 수 없다. bootROM 자신이 안전하다면 이는 매우 중요한 보안 조치이겠지만 만약 bootROM 자체가 이 케이스에서처럼 취약점이라면 매우 큰 문제가 될 것이다. (닌텐도와 NVIDIA는 이 문제에 대해 논평해 달라는 요청에 즉시 대답할 수 없다고 말했다)

Temkin은 또한 “불행히도, 장치의 ODM_PRODUCTION 퓨즈가 타 버렸을 경우(역자 주 : ODM 제조과정이 마무리되었을 때 생기는 제조과정 중의 하나로 판단됨), 퓨즈에 액세스하여 장치의 ipatch들을 설정하는 것이 막혀 있다. 그러므로 bootROM 업데이트는 불가능하며, 소비자들은 가능한 경우 다른 장치로 갈아탈 수 있도록 이러한 상황에 대해 경각심을 가질 것을 제안한다”. 라고 적었다.

Fail0verflow 팀은 스위치의 취약한 USB 리커버리 모드를 활성화하는 데에 필요한 핀 쇼트를 가능하게 하는 장치의 모습을 트윗했다.

 

이 제안은 이미 1480만 개의 결함 있는 스위치 시스템을 대중에게 판매한 닌텐도에게는 그다지 도움이 되는 것은 아닐 것이다. 이전에 있었던 닌텐도 시스템의 소프트웨어 수준의 취약점들(그 중 하나는 스위치의 취약점이었다)은 다운로드 가능한 시스템 업데이트를 통해 완화될 수 있었고, 닌텐도는 사용자들로 하여금 강제로 닌텐도의 온라인 서버에 액세스하여 새로운 소프트웨어를 적용하도록 요구할 수 있었지만 이번엔 그것도 불가능하다.

이런 제안은 칩 수준의 bootROM 취약점에 대해서는 그다지 유용한 것이 아닐 것이다. 그러나 닌텐도는 이러한 상황에서 완전히 무력하지는 않다. 심지어 만약 이런 취약점이 널리 퍼진다 하더라도, 닌텐도는 아마도 “해킹된” 시스템이 닌텐도의 서버에 로그인을 시도할 때 탐지할 수 있을 것이다. 닌텐도는 또한 이런 시스템들을 스위치의 온라인 기능들을 사용하지 못하도록 밴(ban)할 수도 있을 것이다. 닌텐도는 이미 닌텐도 3DS에서 포켓몬스터 썬앤문의 해적판을 사용한 것이 탐지된 단말기에 대해 비슷한 조치를 취한 바 있다.

소프트웨어 해적(역자 주 : 해적판 소프트웨어를 제작/유통하는 사람들을 의미)들을 도울 가능성이 닌텐도의 주요한 우려임에도 불구하고, 이러한 취약점의 사용에는 매우 많은 합법적이고 편리한 이유가 존재한다. 우리는 작년 10월에 얼마나 많은 스위치 사용자들이 그들의 콘솔을 해킹해서 내부 세이브 데이터를 SD카드에 저장하고 스위치가 고장날 경우에 데이터 손실로부터 보호하고 싶어하는지에 대해 적은 바 있다.

 

왜 지금인가?


현재, 대중의 이러한 취약점 이용은 “개념증명” 파이썬 프로그램을 이용하고 페이로드로 하여금 스위치의 bootROM에 있는 보호된 정보들을 띄우는 데에 쓰는 정도에서 그치고 있다(이 방법은 스위치를 USB를 통해 컴퓨터에 연결해야만 한다. 그러나 Temkin은 FAQ에서 미래의 페이로드는 스위치의 SD카드에서 데이터를 로드할 수 있도록 할 것이라고 언급했다).

이 취약점을 어떻게 이용할 것인가에 대한 좀 더 자세한 사항들은 6월 15일에 공개될 것이라고 Temkin은 적었다. 또 그는 트위터에 “여러분도 사용할 수 있는 가이드와 정보들이 곧 공개될 것이다.” 라고 적으면서, 이 작업은 스위치용 커스텀 부트로더인 Atmosphère 제작으로 이어질 것이며 이 부트로더는 취약점을 실행하여 얻을 수 있는 이점들을 얻게 될 것이라고 밝혔다.

FAQ에서, Temkin은 그가 이전에 NVIDIA 및 닌텐도와 같은 제조사들에게 이러한 취약점이 존재한다는 것을 알려줌으로서, NVIDIA와 하류 고객(Downstream Customer, 역자 주 : 닌텐도와 같은 Tegra 칩을 공급받아 장비를 만드는 회사들)들이 소통하기에 충분한 수단을 제공하였고 이 패치 불가능한 bootROM 버그에 대해 가능한 한 많은 해결책을 만들도록 하였다고 말했다.

그렇긴 하지만, Temkin은 ‘자신과는 독립적으로 이 취약점들을 발견한 다른 모든 사람들이 취약점을 이용해 할 수 있는 모든 악의적인 가능성’ 때문에 이 취약점을 부분적으로 공개하였다고 밝혔다. 또한 ReSwitched 팀의 여름에 공개하려는 계획에 비해 다른 그룹들이 일찍 이것과 비슷한 취약점을 공개하려는 위협이 있었기 때문에, 이 취약점을 어쩔 수 없이 ‘더 일찍’ 공개하게 되었다고 밝혔다.

이러한 발표는 또한 부분적으로는 다른 해킹 팀인 Xecuter, 그러니까 스위치에서 비슷한 임의 코드 실행을 가능하게 하는 취약점이 적용된 모드칩을 팔 계획이 있었던 사람들에 대한 답변이라고 보인다. Temkin은 그가 Xecuter의 명백한 소프트웨어 해적 행위를 지지하는 행보, 그리고 “정보를 소수에게 제한시킴으로서 이득을 얻으려는” Xecuter의 노력에 반대한다고 밝혔다.

이 취약점이 스위치를 해킹하는 것에 대한 로우-레벨 방법에 대한 첫번째 공개적인 폭로이긴 하지만, 다른 많은 해커들이 독립적으로 자신들의 연구를 통해 비슷한 방법을 발견했다는 증거가 되기도 한다. 사실, 이러한 종류의 취약점은 작년 9월에 있었던 모든 스위치 콘솔에 숨겨진 NES 골프를 찾아내어 언락하는 데에 열쇠가 되었던 것으로 보인다.

오늘 오전 스위치 해커인 smealum은 이 점에 대해 “많은 해커들이 스위치에 대한 모든 것을 확보했음에도 이런 취약점이 몇달 간 ‘비밀’로 남아 있던 것은 상당히 놀랍다.” 라고 트윗하기도 했다.

[뉴스 업데이트 : 이 취약점이 공개된 이후, Fail0verflow는 4월 25일에 만료되는 ShofEL2와의 90일간 유효한 폭로 금지가 끝났다. 다른 인물이 우리가 지정해 놓았던 데드라인에 근접하는 버그를 발표함에 따라, 우리는 뭔가를 내놓을 준비를 하고 있다. 주목하라.” 라는 주장을 내놓았으며, 이 주장에는 돌핀 에뮬레이터를 통해 닌텐도의 젤다의 전설 : 바람의  지휘봉을 닌텐도 스위치에서 구동하고 있는 화면이 포함되어 있었다.]

[추가 업데이트 : 설상가상으로, Fail0verflow는 4월 25일에 내놓기로 예정되어 있었던 닌텐도 스위치 리눅스 부트로더와 동시에 독자적인 ShofEL2 테그라 X1 bootROM을 앞당겨 내놓았다. 커맨드라인이 이 취약점을 실행하는 게 그렇게 어려워 보이진 않을 것 같음에도 불구하고, Fail0verflow는 “스위치같은 임베디드 플랫폼을 부적절한 소프트웨어(예를 들면 소프트웨어로 모든 부분의 전압을 제어할 수 있다)로 날려먹는 건 정말 멍청할 정도로 쉽다. 우리는 이미 부적절한 전원 공급 중단 코드로 인해 LCD 패널에 일시적인 손상을 입힌 바 있다. 진지하게 얘기하는데, 뭔가 제대로 돌아가지 않더라도 우리에게 불평하지 마라.” 라고 경고했다.]

댓글 남기기

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d 블로거가 이것을 좋아합니다: