- Em 11 de junho de 2024, foi descoberta uma vulnerabilidade em veículos da Kia que permitia controlar remotamente funções principais do carro usando apenas a placa
- Um invasor podia obter silenciosamente informações pessoais da vítima, como nome, telefone, endereço de e-mail e endereço físico
- Explorando essa vulnerabilidade, o invasor podia se adicionar como um segundo usuário invisível do veículo sem que o proprietário soubesse
- Uma ferramenta de demonstração foi criada para mostrar o impacto da vulnerabilidade, mas ela não foi realmente divulgada nem usada de forma maliciosa
- Essa vulnerabilidade foi corrigida depois, a ferramenta não foi lançada, e a equipe da Kia confirmou que a falha nunca foi explorada maliciosamente
Veículos afetados
- Diversos modelos da Kia, de 2014 a 2025, foram afetados
- Dependendo do modelo, eram possíveis funções como travar/destravar remotamente, ligar/desligar remotamente, buzina/luzes remotas e câmera remota
Detalhes da vulnerabilidade
Há cerca de 2 anos, encontramos vulnerabilidades de segurança em mais de 12 fabricantes de automóveis. Descobrimos falhas críticas que permitiam rastrear remotamente a localização, desligar, destravar e dar partida em mais de 15 milhões de veículos - Paul Roberts
- Depois de bastante tempo, decidiu-se revisitar os sites dos fabricantes nos quais vulnerabilidades haviam sido encontradas anteriormente
- O site owners da Kia e o app móvel chamaram atenção porque podiam enviar comandos de controle do veículo pela internet
- O site encaminhava comandos para a API de backend por meio de um servidor proxy, enquanto o app acessava a API diretamente
- Exemplo de requisição HTTP enviada pelo site owners para solicitar o destravamento da porta:
POST /apps/services/owners/apigwServlet.html HTTP/2 Host: owners.kia.com Httpmethod: GET Apiurl: /door/unlock Servicetype: postLoginCustomer Cookie: JSESSIONID=SESSION_TOKEN; - O servidor usava
JSESSIONIDpara criar um ID de sessãoSide o encaminhava à API de backend da seguinte forma:GET /apigw/v1/rems/door/unlock HTTP/1.1 Host: api.owners.kia.com Sid: 454817d4-b228-4103-a26f-884e362e8dee Vinkey: 3ecc1a19-aefd-4188-a7fe-1723e1663d6e Sidé o token de sessão, eVinkeyé um UUID mapeado para o número de identificação do veículo (VIN)
Vulnerabilidade na infraestrutura de concessionárias
- Também foi decidido examinar o site de concessionárias da Kia, porque havia curiosidade sobre como a empresa tratava os dados dos clientes ao comprar um carro novo
- Foi identificado o URL do e-mail enviado ao cliente para registrar um veículo novo no site da concessionária:
https://kiaconnect.kdealer.com/content/kDealer/… - O domínio
kiaconnect.kdealer.com, nunca visto antes, chamou atenção - Nesse URL, o parâmetro
tokenera uma chave VIN, um token de acesso de uso único gerado pela concessionária. Ele permitia modificar o veículo especificado pelo parâmetrovin - Ao carregar o URL, era enviada uma requisição HTTP para validar o token:
POST /apps/services/kdealer/apigwServlet.html HTTP/1.1 Host: kiaconnect.kdealer.com { "token": "985a49f0-1fe5-4d36-860e-d9b93272072b", "vin": "5XYP3DHC9NG310533", "scenarioType": 3, "loginPref": null } - Foi interessante notar que o URI de requisição do site da concessionária era o mesmo
/apps/services/kdealer/apigwServlet.htmlusado no site owners - Suspeitou-se da existência de um proxy que encaminhava requisições para uma API interna das concessionárias
- Ao examinar o código JavaScript, foram encontrados chamados de API para funções exclusivas de funcionários, como consulta de veículo da concessionária, consulta de conta, registro e cancelamento
- Tentou-se acessar os endpoints da API usando o VIN de um veículo próprio, mas ocorreu erro 401 Unauthorized. Com o token da concessionária, não funcionava
Acesso à API de concessionária com conta comum
- Então decidiu-se criar uma conta comum no site da concessionária, gerar um token de acesso e tentar acessar a API com ele, já que o site owners e o formato da API pareciam semelhantes
- Ao tentar registrar um usuário no site da concessionária da mesma forma que no site owners, funcionou!
- Depois de fazer login e emitir um token de acesso, ao chamar a API de consulta de VIN que antes era inacessível, a resposta continha nome, telefone e e-mail do proprietário do veículo
- Isso significava que, autenticando no portal da concessionária com a conta comum criada e usando um header de canal modificado, era possível acessar todas as APIs destinadas à concessionária
Acesso não autorizado ao veículo
- Após analisar o código JavaScript por várias horas, foi possível entender como funcionavam os endpoints de registro, cancelamento e modificação de veículos
- Era possível acessar o veículo da vítima seguindo estas 4 etapas:
- Gerar um token de concessionária e extrair o valor de "token" do header de resposta HTTP
- Descobrir o e-mail e o telefone da vítima
- Modificar as permissões de acesso do proprietário existente usando o e-mail vazado e o VIN
- Adicionar o invasor como novo proprietário do veículo
- Do ponto de vista da vítima, não havia qualquer notificação de acesso ao carro nem aviso de que as permissões tinham sido alteradas
- Um invasor podia descobrir o VIN a partir da placa de alguém e, via API, rastrear a vítima em segredo e enviar comandos como abrir as portas, ligar o carro e acionar a buzina
Criação de um dashboard de prova de conceito
- Para demonstrar a gravidade da vulnerabilidade, foi criado um dashboard de prova de conceito no qual o invasor podia (1) inserir a placa de um veículo Kia, (2) obter dados pessoais do proprietário e (3) executar comandos de controle do veículo
- A página "Exploit" tentava obter acesso não autorizado ao veículo, e a página "Garage" permitia emitir comandos e rastrear a localização
- Os testes foram realizados com um carro Kia alugado e trancado, e no vídeo no topo do blog é possível ver o veículo sendo hackeado pelo smartphone e, em seguida, remotamente travado/destravado, ligado/desligado, com a buzina acionada e a localização rastreada
Conclusão
- Assim como a Meta pode, durante o desenvolvimento, introduzir por engano uma mudança de código que permita a alguém tomar sua conta do Facebook, montadoras também podem criar esse tipo de vulnerabilidade no seu carro
- Vulnerabilidades continuarão sendo descobertas em automóveis
Linha do tempo
- 06/07/24 16:40 UTC - Pergunta à equipe da Kia sobre como reportar a vulnerabilidade
- 06/10/24 13:21 UTC - Resposta recebida da equipe da Kia
- 06/11/24 22:41 UTC - Vulnerabilidade reportada
- 06/12/24 18:20 UTC - Envio de e-mail de alerta sobre o ticket devido à gravidade
- 06/14/24 18:00 UTC - Resposta da equipe da Kia informando que estava investigando
- 06/18/24 16:41 UTC - Envio de e-mail de alerta sobre o ticket e screenshots da ferramenta devido à gravidade
- 06/20/24 02:54 UTC - Envio de e-mail de alerta sobre o ticket e screenshot mostrando acesso via inserção da placa
- 08/12/24 12:30 UTC - Solicitação de atualização por e-mail de alerta sobre o ticket
- 08/14/24 17:41 UTC - Resposta da equipe da Kia informando que a vulnerabilidade havia sido corrigida e estava em testes
- 09/26/24 08:15 UTC - Após confirmar a correção, divulgação pública
Opinião do GN⁺
- É um caso chocante que mostra que o hackeamento de carros já é uma realidade. Com o aumento dos carros conectados, esse tipo de problema tende a se tornar ainda mais grave
- Este incidente expõe claramente a falta de consciência de segurança das montadoras e um desenho de sistema frouxo. A adoção urgente de um ciclo de vida de desenvolvimento seguro (SSDLC), com gestão de vulnerabilidades de software e revisão de código, parece necessária
- A tecnologia de controle remoto de veículos aumenta a conveniência, mas também amplia a superfície de ataque. Será importante equilibrar tecnologia, segurança e privacidade
- O caso também revela os problemas de métodos de autenticação baseados em informações pessoais. Ser capaz de sequestrar um veículo apenas conhecendo a placa é frágil demais. Serão necessários mecanismos de autenticação mais fortes, como biometria ou autenticação multifator
- Os usuários precisam conseguir perceber e controlar o estado de segurança de seus veículos. São necessários recursos como notificações informando quem acessou meu carro e quais comandos foram executados
4 comentários
Nossa, que terrível.
Acredito que os proprietários de carros deveriam ter uma opção adequada para desconectar fisicamente o veículo da internet.
Eu estava curioso sobre a estrutura dos planos, e pelo visto eles fazem a adesão oferecendo o básico de graça por vários anos..
Opiniões do Hacker News
A decisão da Kia de omitir o imobilizador nos veículos dos EUA causou um problema nacional de roubo de carros
Seria possível criar um app de "rideshare" que faz crawling de um banco de dados vulnerável da Kia, mostra os carros da Kia por perto e os destranca
O problema é que qualquer pessoa pode se registrar como concessionária, e concessionárias podem consultar informações até de veículos que não venderam
Segundo a matéria, originalmente só a Kia e as concessionárias podiam rastrear os veículos, mas agora pessoas "não autorizadas" também conseguem fazer isso
O problema é que a Kia mantém muitos dados sobre os veículos e seus proprietários
Um irmão que tem um Kia está sofrendo impactos negativos na saúde mental por causa dos roubos de veículos
Eu não compraria um carro que exige a criação de uma conta online para ser ativado
Hoje não existem carros novos sem recursos de conectividade no mercado
Como dono de um Kia, fico aliviado que a vulnerabilidade foi corrigida e não foi explorada de forma maliciosa
Acho que carros não deveriam ser conectados à internet