서드파티 게임을 사용자에게 연결시켜주는 중계기와 같은 스팀...왜 권한 상승?
[보안뉴스 문가용 기자] 얼마 전 스팀(Steam)이라는 유명 PC 게임 엔진에서 제로데이 취약점이 발견됐다. 보다 정확히 말하면 스팀 서비스의 윈도우 클라이언트에서다. 그러나 스팀의 개발사인 밸브(Valve)는 이 취약점을 고치지 않겠다고 발표했고, 여론이 나빠지자 패치를 발표했다. 그러나 이 패치를 무용지물로 만드는 법이 간단하다는 주장이 나왔다.
[이미지 = iclickart]
먼저, 발견된 제로데이 취약점 자체는 ‘권한 상승 취약점’으로 분류된다. 공격자가 익스플로잇 할 경우 스팀이 설치된 윈도우 컴퓨터에서 가장 높은 권한을 얻을 수 있게 되고, 이를 통해 각종 공격을 실시할 수 있게 된다. 이를 제일 처음 발견한 건 보안 전문가 바실리 크라베츠(Vasily Kravets)다. 온라인에서는 펠릭스(Felix)라는 이름으로도 활동한다.
“취약점은 스팀 클라이언트 서비스(Steam Client Service)라는 곳에 존재합니다. 윈도우 장비에서 시스템 권한을 가지고 실행되는 요소죠. 이 서비스의 심볼릭 링크(symlink, 파일과 또 다른 파일 혹은 파일과 디렉토리 사이에서 단축 경로 역할을 한다)를 사용할 경우 다른 서비스나 실행파일을 높은 권한으로 실행하는 게 가능합니다. 그게 취약점에 대한 간단한 설명입니다.”
크라베츠는 먼저 사용자 권한을 가진 누구나 컴퓨터에 접근해 스팀 서비스를 사용할 수 있다는 사실을 발견했다. 그리고 실제로 아무 컴퓨터에서 스팀을 시작했을 경우, 해당 사용자에게는 HKLM\Software\Wow6432Node\Valve\Steam\Apps라는 메인 레지스트리 키 아래 여러 가지 하위키(subkey)가 주어진다는 것을 발견했다.
“그런데 분석을 해보니 HKLM\SOFTWARE\Wow6432Node\Valve\Steam이 사용자 그룹에 대한 완전한 통제 권한을 가지고 있더군요. 그 권한이 전부 서브키와 서브키의 서브키로 자연스럽게 이전되고요. 그래서 HKLM\SOFTWARE\Wow6432Node\Valve\Steam\Apps 아래 있는 서브키들 중 사용자에게 제한된 권한을 주는 것을 장악하고, 심링크를 사용해 완전한 권한을 가지고 있는 보안 레지스트리 키로 연결시키는 게 가능한지, 그런 상태에서 서비스를 재시작해 보안 레지스트리 키에 대한 접근 권한을 가져가는 게 되는지 실험했습니다.”
크라베츠는 제일 먼저 HKLM\SOFTWARE\Wow6432Node\Valve\Steam\Apps\test에서 HKLM\SOFTWARE\test2로 연결되는 링크를 만들고, 서비스를 재시작했다. 그랬더니 정말로 모든 사용자들의 키에 대한 읽기 및 쓰기 권한이 주어졌다고 한다. “레지스트리에 있는 거의 모든 키에 대한 초기 작업에 성공한 것입니다. 그 다음에는 이를 권한 상승으로까지 유도하는 일이 남았는데, 이건 무척 간단했습니다. HKLM\SYSTEM\ControlSet001\Services\msiserver를 선택해 윈도우 인스톨러(Windows Installer) 서비스와 연결시켰습니다.”
이런 과정을 반복해 크라베츠는 관리자 권한을 가지고 윈도우 인스톨러를 실행하는 데 성공했고, 코드를 설치할 수 있게 됐다. “결국 스팀이 설치된 모든 윈도우 장비에서 가장 높은 권한을 가져갈 수 있게 되는 겁니다. 물론 권한을 차지한 뒤에도 레지스트리 키 일부 값을 바꿔야 하는 작업이 남아있기 합니다.”
이에 영감을 받은 또 다른 보안 전문가 맷 넬슨(Matt Nelson)은 개념증명을 개발해 깃허브(https://gist.github.com/enigma0x3/03f065be011c5980b96855e2741bf302)에 공개했다. 그러면서 제로데이에 대한 스팀의 대응에 관심이 쏠렸고, 많은 비판이 일어났다. 스팀은 이에 패치를 발표했으나 얼마 후 크라베츠는 “패치를 해도 문제는 해결되지 않는다”고 주장했다. “패치를 적용해도, 얼마든지 우회해 같은 공격을 할 수 있습니다.”
크라베츠는 스팀의 구조 자체가 이상한 것이라고 강력하게 비판했다. “스팀은 그 자체로 게임이 아니라, 서드파티에서 만든 게임이 실행되게 해주는 플랫폼입니다. 중간 연계자이죠. 그런데 그런 중간 연계자가 조용히 시스템 권한을 상승시키고 있었다는 겁니다. 서드파티 게임사들을 위해서 말이죠. 게이머 혹은 사용자로서 당신은, 서드파티 게임사가 전부 정직할 것이라고 확신할 수 있나요? 누군가 게임사라는 이름만 걸고 악성 소프트웨어를 만든 후 스팀이 높여준 권한을 통해 당신의 시스템에서 이상한 짓을 하지 않을 거라는 걸 어떻게 확신하죠? 스팀에서 그렇게 자주 하는 ‘세일 패키지’ 행사에서 이상한 코드가 조금 섞여들지 않을 거라는 것도 분명합니까?”
그러면서 크라베츠는 “권한을 높여준다는 건 백신 소프트웨어를 끄고, 시스템의 가장 은밀한 곳에 자리를 잡고 다음 공격을 기획할 수 있다는 뜻”이라고 경고했다. “당신의 가장 소중하고 민감한 정보가 아무도 모르게 빠져나가고 있었을 수도 있습니다. 스팀이 그 동안 조용히 권한을 높여주었기 때문입니다.”
밸브 측은 아직 공식 입장을 발표하지 않고 있다. 다만 크라베츠가 최근 주장한 “패치를 우회하는 게 가능하다”는 내용을 검토 중에 있다고만 알려져 있다.
3줄 요약
1. 밸브에서 만든 게임 실행 플랫폼인 스팀의 클라이언트에서 권한 상승 취약점 발견됨.
2. 이 취약점을 통해 스팀이 설치된 윈도우 장비에 침투해 가장 큰 권한을 훔쳐낼 수 있음.
3. 밸브가 패치를 발표했으나 우회 가능하다는 주장 나옴. 밸브는 현재 검토 중에 있음.
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>