두 대형 완성차 업체, 전 차량의 원격 도어 잠금 해제 및 시동 가능성 노출
요약
보안 연구원들이 두 대형 완성차 업체의 연결 백엔드 인프라 취약점을 발견했습니다. 이들은 서버 API의 보안 문제와 부실한 구현을 악용하여 원격으로 차량 문 잠금 해제 및 시동이 가능함을 입증했습니다. 또한, 위치 정보, 주행 거리 등 민감한 고객 개인정보가 노출된 것도 확인되었습니다.
핵심 포인트
- 원격 접근 취약점: 차량의 도어 잠금 해제 및 엔진 시동이 가능함.
- 개인정보 유출 위험: 위치, 주행거리, 고객 정보 등이 노출됨.
- 공격 경로 분석: 디컴파일된 앱과 하드코딩된 API 키를 악용함.
- 보안 취약점 근원지: ForgeRock 인증 서비스의 구현 및 보안 관행 미흡.
더 나아가기 전에 독자 여러분께 앉아서 헬멧이라도 하나 잡으시길 권고합니다. 이 글은 많은 '얼굴을 감싸 쥐거나' '이마를 치게' 만들 내용이기 때문입니다. 두 보안 연구원이 힘을 합쳐 2026년 초에 두 자동차 제조사의 차량 연결 백엔드 인프라를 해킹하는 데 성공했으며, 이를 통해 여러 지역에서 원격으로 그들의 네트워크 연결 차량 문을 열고 엔진 시동까지 걸 수 있었습니다.
이 취약점들은 빠르게 수정되었으며, 해당 문제들은 각 제조사의 모바일 애플리케이션이 사용하는 여러 서버 API에 존재하는 몇 가지 믿기 어려운 보안 문제와 관련되어 있습니다. 게다가 원격으로 차량을 열고 시동 거는 것이 가장 우려되는 부분이었지만, 이 취약점들은 또한 차량의 위치, 주행 거리(mileage), 연료, 주행 가능 거리(range), 도어 상태, 그리고 고객의 개인 정보까지 노출시켰습니다.
이 화이트햇 해킹 듀오는 영향을 받은 자동차 제조사의 이름을 공개하지 않고 있지만, 그들은 Automaker #1의 미국 내 차량에 접근하는 데 성공했으며, Automaker #2의 차량은 호주, 미국, 캐나다에서 계획에 없던 잠금 장치 해제 취약점에 노출되었습니다. 시각적 검사만으로 판단했을 때, 두 번째 업체는 해킹 시연 영상이 RAV4 SUV를 묘사하는 것으로 보아 Toyota일 수 있습니다.
영향을 받은 두 자동차 제조사 모두 ForgeRock의 인증 및 권한 부여 서비스를 사용하고 있지만, 아주 작은 예외가 있었습니다. Shubham Shah와 Sam Curry가 발견한 취약점들은 전반적으로 부실한 구현과 보안 관행에 관련된 것이었습니다. 그들의 글 중 하나는 양 회사 모두에 대한 ForgeRock 관련 사안을 자세히 다루고 있으며, 샤의 기사는 Automaker #2와 호주 연결 차량 인프라의 구체적인 내용을 논하고 있습니다.
Shah는 먼저 해당 회사의 Android 애플리케이션을 디컴파일(decompiled)하여 텔레매틱스 서브도메인으로 연결되는 네트워크 호출(network calls)을 발견했고, 곧 로그인 프롬프트가 있는 'TEST HARNESS' 페이지를 포함하는 'admintool' 위치를 찾아냈습니다. 지금까지 주목하지 않았다면, 첫 번째 문제는 이 엔드포인트(endpoint)가 광범위하게 인터넷에서 접근 가능하다는 점입니다. 하지만 Shah의 흥미를 진정으로 끈 것은 두 번째 문제였습니다. 불필요한 잔여물(cruft)이 제거되었어야 할 JavaScript 코드 번들 안에 실제로는 백엔드의 전체 기능을 담고 있는 코드가 포함되어 있었는데, 이는 추가적인 악용을 위한 지도를 제공했습니다.
이것만으로도 Shah는 해당 JavaScript에 하드코딩된 API 키를 사용하여 고객 정보를 조회할 수 있는 능력을 얻었습니다. 몇 가지 요청(requests) 체이닝과 공개적으로 이용 가능한 정보로 차량 번호판을 차대번호(VIN)와 연결한 후, 그는 이를 특정 고객에게 연결하여 이메일 주소를 찾아냈습니다. 이때 팀은 해당 자동차 제조사가 ForgeRock의 인증 메커니즘(authentication mechanisms)을 사용하고 있다는 것을 알아차렸고, 이것이 어떻게 사용되는지 파악하는 데 '몇 주'를 할애했습니다.
그리고 여기서 그들은 가장 쉬운 승리의 경로는 모든 사용자에게 액세스 토큰(access token)을 발급받는 것이라고 평가하게 되었는데, 이 작업은 _하드코딩된 관리자 자격 증명(administrator credentials)_이 포함된 엔드포인트에서 발견한 '악마적인' JavaScript 번들 덕분에 훨씬 쉬워졌습니다. 이것들은 스테이징 환경(staging environment)용으로 의도되었을 가능성이 높지만, 두 연구원은 그럼에도 불구하고 이를 활용할 수 있다고 정확하게 추정했습니다.
이 지점에서 그들은 서비스 앞에 있는 WAF(Web Application Firewall)와 마주쳤습니다. 웹 애플리케이션 방화벽은 네트워크 방화벽과 유사하지만, IP 주소와 포트로 작동하는 대신 엔드포인트(URL)와 이를 접근하기 위한 요구사항을 고려합니다. 연구원들은 이것이 좋고 표준적인 관행임에도 불구하고, WAF가 그 아래의 상황이 얼마나 심각했는지 때문에 설치되었으리라 추측했습니다.
그리고 그들은 옳았습니다. 앱 디컴파일을 통해 "pinService"가 드러났고, Shah는 이것이 WAF(웹 방화벽)를 통해 접근 가능하다는 것을 발견했습니다. 이를 바탕으로 그들은 "getUser"를 찾아냈고, 이메일, 전화번호, ID만 있으면 사용자 정보를 검색할 수 있다는 것을 정확하게 추측했습니다. 관리자 자격 증명을 기억하십니까? 그것들이 유용하게 쓰여 사용자들의 비밀번호 해시값(password hashes)을 알아내는 데 성공했지만, 이것들이 SHA-512 방식이었기 때문에 크래킹하는 것은 불가능했습니다.
이 지점에서 그들은 GPT-5.6 Sol Ultra를 이용해 경로 이름에 대한 무차별 대입 공격(brute-force path names)을 감행했고, 결국 어떤 사용자든 비밀번호를 덮어쓸 수 있는 보호되지 않은 경로를 찾아냈으며, 이는 계정을 탈취하는 것을 부분적으로 가능하게 했습니다. 하지만 여전히 다단계 인증(MFA)이라는 장애물이 남아 있었습니다.
알고 보니 그것마저도 잘못 설정되어 있어, 호주 환경에서는 사용자들이 MFA 단계를 완전히 건너뛸 수 있게 되어 있었습니다. 엔드포인트와 모바일 앱 전반에 걸쳐 신중하게 토큰을 조작(token shuffling)한 끝에, 그들은 마침내 액세스 토큰(access tokens)을 발급할 수 있었고, 이를 통해 어떤 사용자 계정이라도 완전히 사칭할 수 있게 되었으며... 심지어 차량의 잠금장치까지 해제할 수 있었습니다. 이후에는 "door-unlock" 명령을 위한 API 요청만 보내면 되었고, 예상대로 테스트 차량은 즉시 열렸습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Tom's Hardware의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기