연구원들이 해커들이 컴퓨터를 해킹할 수 있게 하는 CS:GO의 버그를 발견하였습니다.
전 세계적으로 사이버 공격이 증가함에 따라, 기업들이 보안 인프라에 더 많은 주의를 기울일 것이라고 생각할 수 있습니다. 하지만, Valve Corporation의 경우 그렇지 않은 것 같습니다. 여러 보안 연구원들이 Valve의 Counter-Strike: Global Offensive (CS:GO) 게임에서 악의적인 엔티티가 사용자의 컴퓨터를 장악할 수 있는 버그를 발견했습니다. 이 버그를 처음 발견한 연구원 중 한 명이 2019년에 이를 보고했지만, Valve는 최근 대중의 큰 반응이 있을 때까지 보고를 무시했습니다. 이 기사에서는 이 보안 버그와 관련된 상황에 대해 이야기할 것입니다.
카운터 스트라이크: 글로벌 오펜시브(CS:GO)란 무엇인가?
카운터 스트라이크는 두 팀이 서로 경쟁하는 멀티플레이어 1인칭 슈팅 비디오 게임 시리즈입니다. 각 팀은 다섯 명의 플레이어로 구성되며 특정 목표를 완수해야 승리할 수 있습니다. 한 팀은 테러를 저지르려는 테러리스트(Ts)의 역할을 맡고, 다른 팀은 대테러리스트(CTs)의 역할을 맡습니다. 대부분의 1인칭 슈팅 게임처럼, 이 게임은 플레이어에게 게임 내 화폐를 보상으로 주어 무기나 다른 것들을 구매할 수 있습니다. 다양한 모드가 있으며 각각 다른 목표와 특성을 가지고 있습니다.
2000년에 Windows OS에서 처음 출시된 Counter-Strike는 역사상 가장 주목받는 1인칭 슈팅 게임 중 하나로 성장했습니다. macOS, Windows, Linux, PS3, Xbox360에서 사용할 수 있습니다. Counter-Strike 시리즈에는 Counter-Strike, Condition Zero, Source, Global Offensive의 네 가지 주요 게임이 있습니다. 스핀오프도 있었지만, 이 네 시리즈가 대부분의 사람들이 지난 몇 년 동안 플레이한 것입니다.
가장 최근 출시된 게임은 Valve가 개발하고 2012년 8월 21일에 출시한 Global Offensive입니다. 매월 약 1100만 명이 Valve의 Steam 플랫폼에서 이 게임을 플레이합니다. Counter-Strike는 처음 출시된 이래로 Cyberathlete Professional League, World Cyber Games, Electronic Sports World Cup을 포함한 여러 경쟁 토너먼트에 참가했습니다. Valve는 가장 명성 높은 Counter-Strike 토너먼트를 주최하며 이를 “Counter-Strike: Global Offensive Major Championships”라고 부릅니다.
연구자들이 CS:GO에서 버그를 발견함
화이트 해커 그룹인 The Secret Club은 Counter-Strike: Global Offensive 게임에서 새로운 취약점을 발견했는데, 이 취약점은 Steam에서 게임 초대를 클릭하면 해커가 컴퓨팅 시스템을 장악할 수 있게 해줍니다. Steam의 초대 시스템을 사용하여, 해커들은 버그를 이용해 초대 링크를 클릭하는 모든 사람의 개인 데이터를 원격 코드 실행(RCE)을 통해 도용할 수 있습니다. The Secret Club의 한 멤버가 Valve이 개발한 3D 게임 엔진인 Source에서 이 버그를 발견했습니다. Source 엔진을 사용하는 여러 게임이 있으며, 그 중에는 Counter-Strike: Global Offensive도 포함됩니다. 그러나 Source 엔진을 사용하는 대부분의 게임에서는 더 이상 이 버그가 존재하지 않습니다. 불행히도, Counter-Strike: Global Offensive 플레이어들은 이 게임에 이 버그가 여전히 존재한다는 사실을 알고 놀랄 것입니다.
The Secret Club의 멤버인 Florian (@floesen_ on Twitter)은 2년 전(2019년)에 Valve에 버그를 처음 보고했지만, Valve 팀은 이를 수정하기 위해 아무것도 하지 않았습니다. 학생 연구원인 Florian은 해커들이 버그나 취약점을 발견하면 Valve와 같은 회사에 연락할 수 있는 버그 현상금 플랫폼인 HackerOne을 통해 원격 코드 실행 결함에 대한 우려를 Valve에 표현했다고 설명했습니다.
플로리안은 버그를 중요하게 표시했음에도 불구하고 Valve 팀이 이를 수정하기 위한 노력을 하지 않았으며 버그에 대한 스레드에 대한 응답도 느렸다고 밝혔습니다. Valve가 가진 자원과 영향력을 고려할 때 보안 침해 문제를 심각하게 다루지 않는다는 것은 상상하기 어렵습니다. 이는 Valve의 경향인 것 같습니다. The Secret Club이 Twitter에서 밝힌 바에 따르면, 팀원들이 보고한 다른 두 가지 취약점에 대해서도 Valve가 같은 행동을 했습니다.
Valve는 현상금을 지급하지만 버그를 수정하기를 거부합니다
Florian이 RCE 버그를 보고했고 Valve가 이를 수정하지 않았다는 사실은 이제 더 이상 뉴스가 아닙니다. 놀라운 것은 Valve가 약 6개월 전에 Florian의 보고를 인정하고 현상금을 지급했음에도 불구하고 취약점을 수정하지 않았다는 것입니다. 그는 마지막으로 Valve로부터 연락을 받은 것이 6개월 전, 그들이 HackerOne을 통해 현상금을 지급했을 때라고 말했습니다. Valve는 이전에 Source 엔진을 사용하는 게임에서 비슷한 문제를 수정한 적이 있으므로 취약점을 수정하는 작업을 진행 중이라고 그에게 확신했습니다.
학생 연구원은 Valve이 실제로 그 게임을 수정했다고 확인했다고 설명했다. Florian은 Valve이 어떤 게임을 수정했는지 밝히지 않았고 그 이유를 성명에서 설명했다. “우리는 사람들이 게임 바이너리에서 패치를 찾으려고 시도하는 것을 원치 않기 때문에 의도적으로 그것을 언급하지 않았습니다. 이것은 다른 모든 패치되지 않은 게임들에 대한 취약점을 재구축하는 데 드는 노력을 크게 줄일 것입니다.” 하지만, 우리는 Valve이 왜 CS:GO의 취약점을 약 2년 동안 무시하기로 결정했는지 이해하지 못합니다.
Valve의 HackerOne 정책이 버그 바운티 헌터들이 취약점을 보고하는 것을 방지하기 때문에, Florian은 버그에 대한 자세한 보고서를 공개하지 않았습니다. HackerOne의 다른 버그 바운티 프로그램들은 보통 연구자들이 회사가 지정된 기간(보통 90일이나 180일) 후에도 문제를 해결하지 않을 경우 취약점을 공개할 수 있도록 허용하는 정책을 따릅니다. 반면, Valve는 그러한 정책이 없습니다.
다른 연구자들이 Valve가 버그에 대한 보고를 무시했다고 확인함
다른 연구자들도 CS:GO 버그가 존재한다는 것을 확인했으며, Valve가 이에 대한 보고를 무시하고 있다고 합니다. The Secret Club의 주요 멤버인 Carl Schou는 악의적인 행위자들이 CS:GO 버그를 이용해 금융 정보 및 기타 자격 증명을 포함한 민감한 데이터를 도난할 수 있다고 설명했습니다. 적어도 세 명의 다른 연구자들이 Valve가 그들의 보고를 무시했다고 주장합니다. 이들은 사용자가 악의적인 커뮤니티 서버로의 초대를 수락할 때 원격 코드 실행 결함이 어떻게 작동하는지 보여주는 다양한 비디오를 게시했습니다.
Brymko(@brymko on Twitter), Carl Smith(@cffsmith on Twitter), 그리고 Simon Scannell(scannell_simon)은 모두 YouTube에서 CS:GO RCE 결함을 시연하는 영상을 가지고 있습니다. 자신의 영상을 Twitter에 올린 후, 다른 연구원은 자신도 이 버그를 보고했지만 Valve가 1년 이상 그의 보고를 무시했다고 설명했습니다. 소프트웨어 엔지니어인 Bien Pham(@bienpnn on Twitter)은 2020년 4월 2일에 Valve에 이 버그를 보고했지만 회사가 그것을 무시했다고 말합니다.
Valve, 결국 버그를 수정하다
2021년 4월 17일, 플로리안(@floesen_ 트위터에서)이 트위터에 이렇게 게시했습니다: “좋은 소식이에요! Valve가 제가 최근 발견한 취약점을 수정했고, 세부 사항을 공개할 수 있는 권한을 주었습니다. 그 말은, 저는 자세한 기술적 문서를 작성 중이며, 곧 발표할 예정입니다. 기대해주세요!” 이것은 훌륭한 소식이지만, Valve의 태만은 사용자의 개인 정보 보호나 게임의 무결성에 대해 신경 쓰지 않는다는 것을 보여줍니다.
The Secret Club이 자신의 트위터 계정에서 Valve가 아직 수정하지 않은 몇 가지 다른 버그를 보고했습니다. 그것들은 Team Fortress 2의 커뮤니티 서버 버그와 CS:GO의 두 가지 RCE 버그를 포함합니다. Valve가 이러한 버그를 수정하기 전에 또 다른 대중의 항의가 필요할까요?
Valve의 버그 무시 역사
2019년 8월, 보안 연구원인 바실리 크라베츠는 Valve가 그를 HackerOne 버그 현상금 프로그램에서 금지한 후 Valve의 Steam 플랫폼에서 제로데이 취약점을 공개적으로 공개했습니다. 그는 악의적인 개체가 이용할 수 있는 Steam 클라이언트의 결함을 발견했습니다. 버그는 권한 상승 취약점이었으며, 나쁜 행위자가 Valve의 Steam이 설치된 Windows 시스템에서 가능한 가장 높은 접근 권한으로 어떤 프로그램이든 실행할 수 있게 했습니다.
사실, 그는 한 가지 이상의 버그를 발견했고 두 번째 버그를 발견한 후에야 공개했습니다. 첫 번째 버그를 발견한 후, 그는 HackerOne에 보고서를 제출했지만 Valve의 HackerOne 팀이 그 버그를 보안 문제로 생각하지 않아 거절당했습니다. 그런 다음, 그는 두 번째 버그를 발견하고 보고하려 했지만 Valve에 의해 HackerOne 버그 현상금 플랫폼에서 차단당했습니다.
바실리 크라벳의 초기 발견 후 45일이 지난 후, 그는 HackerOne이 그렇게 할 것을 금지했음에도 불구하고 보고서를 공개적으로 발표했습니다. 그러나 그의 공개적인 항의 후, Valve는 권한 상승 취약점을 수정했습니다. Valve는 크라벳의 초기 발견을 범위 밖으로 분류한 것이 실수였다고 인정했습니다. 또한, 그러한 종류의 실수가 다시 발생하지 않도록 버그 보고 지침을 업데이트했습니다.
결론
Valve의 과거와 현재는 Steam 사용자들이 최고의 보안을 갖추도록 별로 신경 쓰지 않는다는 것을 보여주었습니다. 그 이력을 고려할 때, Valve의 제품이나 서비스를 이용하는 것에 대해 다시 생각해 볼 필요가 있습니다. 다행히도, Valve은 나쁜 행위자들이 컴퓨터 시스템을 고립시킬 수 있는 CS:GO 버그를 수정했습니다.