수많은 산업의 영업용 차량 관리에 쓰이는 한 GPS 추적기 모델에서 심각한 취약점이 여럿 발견됐다. 마이코더스(MicCOCUS)라는 중국 제조 업체의 추적기는 온라인 소매점에서 쉽게 구매할 수 있을 만큼 널리 쓰이며, 도난 방지, 연료 차단, 원격 제어 지오펜싱 등의 기능을 제공한다. 한국에서도 해당 추적기를 쓰는 알 수 없는 몇몇 정부 기관(빨간색)과 에너지 산업 분야(파란색) 기업의 차량에서 취약점이 발견된 듯 하다.
사이버 보안 평가 업체 비트사이트의 연구진은 보고서에서 "이번에 발견된 취약점이 악용된다면 참사가 일어날 수 있다. 심지어 생명을 위협하는 사태가 벌어질 위험이 있다"라면서, "예를 들어 공격자는 모든 영업용 혹은 구급용 차량의 연료를 차단하거나, GPS 정보로 차량을 모니터링해 고속도로의 위험한 지점에서 급정거시킬 수 있다. 심지어 운전자를 몰래 추적하거나, 일부러 고장낸 차량을 복원해준다며 몸값을 요구할지 모른다. 인명 피해, 재산 피해, 사생활 침해, 국가 안보 위협 등 이 취약점으로 발생할 수 있는 심각한 시나리오가 매우 많다”라고 경고했다.
비트사이트는 지난 9월부터 마이코더스의 기술 보안팀과 조사 결과를 공유하려 수차례 시도했지만, 회사 영업부와만 연락이 닿았다고 밝혔다. 그래서 연구진은 사이버보안 및 인프라보안국(CISA)을 운영하는 미국 국토안보부에 연락해 취약점을 공개했다. CISA는 이후 ICS(Infrastructure Security Agency) 권고안을 발표했다.
마이코더스 GPS 추적기의 인프라
비트사이트 연구진은 셀룰러 통신을 지원하며, 연료 차단 및 SMS 메시지를 통한 원격 명령 기능을 제공하는 ‘마이코더스 MV720’ GPS 추적기 모델을 조사했다. 문제는 확인된 취약점 중 일부가 기기 자체가 아니라 마이코더스의 클라우드 API 서버, 모바일 애플리케이션 등 관련 인프라에 있다는 것이었다. 이는 특정 모델뿐만 아니라 이 회사의 다른 GPS 추적기도 취약점에 노출될 수 있음을 의미한다. 마이코더스는 다른 유형의 자산과 개인적인 사용을 위한 여러 GPS 추적기 제품을 만든다.
MV720 추적기는 포트 7700의 암호화되지 않은 사용자 지정 TCP 프로토콜을 통해 마이코더스 서버와 통신한다. 이 서버는 또한 사용자가 GPS 추적기를 관리하는 웹 기반 인터페이스 그리고 컴패니언 모바일에서 사용하는 API를 호스팅한다.
웹 인터페이스가 HTTPS를 사용하는 동안. API 통신은 일반 HTTP를 통해 이뤄진다. 따라서 공격자가 사용자의 모바일 앱과 API 서버 사이의 네트워크 경로를 파악해낸다면, 중간자 공격(man in the middle attack, MITM)이 가능해진다.
너무 쉬운 인증 우회와 권한 탈취
연구진은 API 서버가 암호화되어 있지 않아 모바일 앱으로 전송되는 트래픽을 손쉽게 분석할 수 있었다고 밝혔다. 분석 결과, 서버가 인증 확인에 성공한 모든 사용자에 동일한 세션 키와 하드코딩된 액세스 토큰을 제공한다는 점이 발견됐다. 즉, 공격자가 API 요청을 쉽게 생성해 자신의 소유가 아닌 GPS 추적기를 점령할 수 있는 큰 취약점이 발견된 셈이다.
게다가, 이 GPS 추적기 시스템은 증분식 ID(incremental ID)를 사용해 ID를 추적하기 쉽기 때문에 공격에 더욱더 취약하다. API를 사용하면 마치 실제 소유자의 전화번호에서 SMS로 명령을 전송한 듯 추적기를 속일 수 있다. 위치 정보 파악, 경로 변경, 지오펜스 접근, 차량 연료 차단 및 경보 비활성화 같은 명령이 모두 가능해진다. 심각한 위험 등급으로 평가되는 이 취약점(CVE-2022-2107)을 악용하면 완전한 추적기 제어 권한을 얻게 되는 것이다.
취약점은 여기에 그치지 않는다. 이 GPS 추적기의 암호는 123456으로 기본 설정되며, 사용자가 변경할 의무나 경고 기능이 없다. 실제로 연구진은 웹 인터페이스를 통해 추적기의 ID만 늘리는 방식으로 이 GPS 추적기 모델 1,000대를 테스트했고, 그중 945대가 여전히 기본 비밀번호로 사용된다는 점을 밝혀냈다. 이 취약점에는 CVE가 할당되지 않았지만, 연구진은 이 또한 심각한 취약점이라 전했다.
암호를 변경하더라도, 일부 명령은 암호 없이 작동하기 때문에 안전하지 않다. 이러한 명령 중 하나는 ‘adminip’인데, GPS 추적기의 API 엔드포인트 설정을 변경한다. 즉, 제어 서버의 IP를 변경할 수 있다는 것이다. 따라서 공격자는 GPS 추적기가 자신의 서버로 통신하도록 명령어를 전송한 뒤, 실제 서버에 통신을 프록시하여 중간자 공격을 할 수 있다. 이 취약점은 ‘CVE-2022-2141’으로 분류됐으며, 똑같이 심각한 위험 등급으로 지정됐다.
이 외에도, 연구진은 웹 인터페이스에서 반사형 크로스 사이트 스크립팅(Reflected XSS) 취약점(CVE-2022-2199)을 발견했다. 이는 공격자가 사용자 세션을 점령해 특수하게 조작된 링크를 열도록 유도하는 해킹 수법이다. 여기에 더해, 인증에 성공한 사용자에게 권한을 부여하는 2가지의 취약한 직접 개체 참조(direct object reference) 문제(CVE-2022-34150 및 CVE-2022-334944)도 발견했다. 이는 요청의 특정 매개 변수를 변경하여, 다른 계정 정보의 접근 권한을 탈취하는 공격 수법이다.
러시아, 우즈베키스탄 및 카자흐스탄에서 가장 많이 쓰여
업체 측은 전 세계 42만 명의 고객에게 150만 대의 GPS 추적 장치를 배포했다고 밝혔지만, 이중 MV720 모델이 정확히 몇 대인지, 혹은 몇 대가 영업용 차량 관리에 사용되는지는 알 수 없는 상황이다. 비트사이트가 마이코더스 제어 서버의 DNS 트래픽 데이터를 분석한 결과, TCP 포트 7700 서비스의 고유 IP 주소 525,856개에서 하루 평균 7,488개의 통신 요청이 전송된다는 사실을 가려냈다.
연구진에 의하면 이 추적기는 SIM 카드가 있는 셀룰러 통신 장치이므로, IP 주소가 자주 변경된다. 따라서 고유 IP 주소의 절대적인 개수가 서버에 연결하는 개별 장치의 개수와 직접적인 상관관계가 있다고 단정하기는 힘들다. 그럼에도 연구진은 서버에 통신을 요청한 장치의 수가 가장 많은 국가의 순위는 알아냈다고 밝혔다. 전 세계 순위는 러시아, 모로코, 칠레, 브라질, 우즈베키스탄, 남아프리카, 우크라이나, 폴란드, 이탈리아 그리고 멕시코 순이다. 아시아 지역만 놓고 보면 러시아, 우즈베키스탄, 그리고 카자흐스탄이 순서대로 상위권을 차지했다. 한국은 순위권에 들지 안핬지만, 위 지도를 보면 몇몇 정부 기관(빨간색)과 에너지 산업 분야(파란색)의 기업 차량에서 취약점이 발견된 듯 하다.
산업별로 보면, 상위 10개 분야는 정부 기관, 비즈니스 서비스, 제조, 금융, 에너지/자원, 유틸리티, 소비재, 소매, 교육 및 운송이다. 연구진은 특정 사용처도 몇몇 파악했다. 파악된 사용처는 포천 50대에 드는 에너지 기업, 서유럽의 국가 법 집행 기관 및 동유럽 국가의 국군 등이 있었다.
연구진은 "GPS 추적기는 수년 동안 존재해 왔지만, 최근 이러한 장치의 생산이 간소화되면서 접근성이 크게 상승했다"라며, "차량 활성화 또는 비활성화, 속도 모니터링, 경로 및 기타 기능이 가능한 중앙 대시보드를 통해 GPS 추적기를 쉽게 모니터링할 수 있어 많은 개인과 기업 사용자가 유용하게 사용하고 있을 것이다. 하지만 불행히도, 마이코더스 MV720 모델에는 심각한 보안 문제로부터 사용자를 보호하는 기본 보안 장치가 없다. 현재 마이코더스 MV720 GPS 추적기를 사용하는 모든 개인 및 기업 사용자는 보안 패치가 적용될 때까지 해당 장치를 비활성화할 것을 권장한다”라고 말했다. ciokr@idg.co.kr