볼보·아이셔 차량 관제 플랫폼 해킹: 전 차량 장악 취약점 발견
인도의 상업용 차량 관제 플랫폼인 My Eicher에서 심각한 API 보안 취약점이 발견되었습니다. 해커는 인증되지 않은 내부 API를 통해 수십만 명의 고객 정보와 OTP 데이터를 무단으로 열람하고 특정 기업의 차량 관제 시스템을 완전히 장악할 수 있었습니다. 이는 대규모 개인정보 유출과 물류망 마비를 초래할 수 있는 치명적인 사이버 보안 사고입니다.
볼보그룹과 아이셔 모터스의 합작 법인인 VE Commercial Vehicles는 인도의 상업용 차량 고객을 위해 'My Eicher'라는 차량 관제 시스템을 구축하고 유지 관리합니다. "My Eicher는 상업용 차량 소유자, 차량 관리자 및 운영자를 위해 설계된 완벽한 차량 관리 및 차량 GPS 추적 시스템입니다. 저희의 고도로 진보된 텔레매틱스 플랫폼을 통해 이전과는 비교할 수 없는 수준으로 차량을 관리할 수 있습니다." API에서 숨겨진, 인증되지 않은 내부/관리자 API를 찾아낼 수 있는 취약점이 발견되었습니다. 이러한 API는 시스템에 대한 높은 수준의 접근 권한을 얻고 계정 탈취(Account takeover)까지 가능하게 만들었습니다. 계정 탈취가 발생하면 수백 대의 차량으로 구성된 개인(또는 회사)의 전체 차량에 대한 통제권을 얻는 것이 가능해집니다. 노출된 데이터를 수치로 살펴보면 다음과 같습니다. 2024년 11월 기준으로 27만 5천 대의 차량과 11만 5천 명의 고객이 등록되어 있다고 발표되었습니다. API에서 추출한 일부 수치가 왜 공식 수치보다 훨씬 높은지는 불분명합니다.
74만 8천 명의 고객 17만 4천 명의 사용자 18만 6천 명의 인물 정보 67만 6천 대의 차량 7만 6천 건의 문서 (아드하르 카드, 운전면허증 등)
어서 오세요, 제 다음 대작 자동차 해킹 사례 소개로 여러분을 초대합니다! 이번 사례는 2024년 초 제가 토요타 보험 회사 해킹을 공개했던 시점으로 거슬러 올라가는 오랜 역사를 가지고 있습니다. 재미있는 사실은, 사실 그 당시에도 이 My Eicher에서 취약점을 찾으려고 노력했었지만 실패했다는 것입니다. 그리고 1년이 넘는 시간이 흐른 2025년에야 비로소 My Eicher의 보안을 완전히 뚫어버리는 돌파구를 우연히 발견했습니다.
My Eicher 인도에 거주하지 않는다면 아마 My Eicher에 대해 들어보지 못했을 것입니다. 이는 상업용 차량 고객이 트럭과 버스로 이루어진 자신의 차량을 추적하고 관리할 수 있게 해주는 앱/웹사이트입니다. 실시간으로 차량을 추적하고, 실시간 계기판을 보고, 지오펜스(Geofence)를 설정하는 등의 유용한 기능들을 수행할 수 있습니다. 웹사이트는 이곳(원문 링크)에 있으며, 안드로이드 및 아이폰 앱도 제공됩니다. 여기서 공개되는 취약점은 인도 내 상업용 차량 및 고객에게만 영향을 미칩니다.
행운의 돌파구 이 취약점은 믿을 수 없을 정도로 단순했으며 순전히 우연히 발견되었습니다. 웹사이트 홈페이지에서 휴대전화 번호를 확인하기 위해 사용되는 API가 있습니다: https://www.myeicher.in/cepauthmgr/user/validateMobileNo 웹사이트의 자바스크립트(JavaScript)에는 저런 API들이 많이 있습니다. 몇 가지 흥미로운 API도 있었지만, 전체 플랫폼을 해킹하는 데 사용할 수 있는 것은 없었습니다. 그러던 중 무작위로 하루는 브라우저에서 이 엔드포인트(endpoint)로 이동해 보기로 결심했습니다: https://www.myeicher.in/cepauthmgr/user/ 99%의 경우 API 경로를 이런 식으로 거슬러 올라가면 HTTP 에러가 발생합니다. 하지만 이번에는 사용자와 관련된 모든 API의 목록이 쫙 나타났습니다: 전체 목록은 여기(원문 링크)에서 볼 수 있습니다. 더 놀라운 점은, 이 API들이 인증(Authentication) 처리가 전혀 되어있지 않았다는 것입니다! 'customers(고객)' 엔드포인트를 찾았고, 이는 74만 8천 명에 달하는 방대한 고객 목록을 그대로 보여주었습니다: 'users(사용자)' 및 'persons(인물)'에 대한 API도 있었습니다: 심지어 비밀번호까지 반환해주었습니다. 물론 암호화되어 있어서 바로 사용할 수는 없었습니다. 그럼에도 불구하고 이는 엄청난 발견이었습니다. 이 시스템을 사용하는 사람들을 더 이상 찾기 어렵지 않게 되었기 때문입니다. 이 API들을 통해 전체 계정 목록을 손에 넣었습니다. 만약 여기에 어떤 형태의 로그인 취약점이라도 있었다면, 이 시스템 내의 모든 사람들에게는 게임 오버(끝장)였을 것입니다.
모든 OTP(일회용 비밀번호)는 이제 내 것입니다 저의 행운은 계속되었습니다. 2021년으로 거슬러 올라가는 250만 개의 전체 OTP 목록을 반환하는 API가 있었습니다: 특정 휴대전화 번호에 대한 OTP만 반환하는 더 구체적인 API들도 있었습니다: 아마 이것이 어디로 향하고 있는지 짐작하실 수 있을 것입니다. 이제 계정 탈취를 위한 무대는 완벽하게 세팅되었습니다! 1단계: 사용자 목록에서 휴대전화 번호를 하나 골라 OTP를 발송합니다. 저는 대형 엔지니어링 회사와 연결된 번호를 골랐습니다. 2단계: API를 사용해 휴대전화 번호로 OTP를 찾아냅니다: 3단계: 해당 OTP를 입력하여 로그인합니다. 이 기술을 통해 저는 모든 사용자 계정에 대한 완벽한 통제권을 얻을 수 있었고, 그로 인해 파생되는 차량 및 차량 관제 시스템까지 모두 장악할 수 있었습니다. 이 모든 과정의 부작용은 실제로 OTP를 발송하여 사용자에게 미리 알람을 울려버린다는 점입니다. 그렇기 때문에 불행히도 완벽하게 은밀한 공격은 아니었습니다.