7 pontos por GN⁺ 2024-09-27 | 4 comentários | Compartilhar no WhatsApp
  • 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 JSESSIONID para criar um ID de sessão Sid e 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, e Vinkey é 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 token era uma chave VIN, um token de acesso de uso único gerado pela concessionária. Ele permitia modificar o veículo especificado pelo parâmetro vin
  • 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.html usado 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:
    1. Gerar um token de concessionária e extrair o valor de "token" do header de resposta HTTP
    2. Descobrir o e-mail e o telefone da vítima
    3. Modificar as permissões de acesso do proprietário existente usando o e-mail vazado e o VIN
    4. 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

 
aer0700 2024-09-28

Nossa, que terrível.

 
unsure4000 2024-09-27

Acredito que os proprietários de carros deveriam ter uma opção adequada para desconectar fisicamente o veículo da internet.

 
bbulbum 2024-09-30

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..

 
GN⁺ 2024-09-27
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

    • Isso levou a um aumento acentuado nos furtos de veículos em cidades como Milwaukee e Chicago
    • Era possível roubar o carro apenas com um cabo USB entortado
  • 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

    • Um funcionário da concessionária poderia abusar disso para perseguir alguém
  • 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

    • Fica a dúvida de por que é aceitável uma empresa rastrear veículos, mas vira problema quando outra pessoa faz o mesmo
  • O problema é que a Kia mantém muitos dados sobre os veículos e seus proprietários

    • Essa vulnerabilidade já foi corrigida, mas a questão dos dados continua
  • 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

    • Um Kia que já tive consumia 1 quart de óleo a cada 1.000 milhas antes mesmo de chegar a 100.000 milhas
  • Hoje não existem carros novos sem recursos de conectividade no mercado

    • Fico me perguntando se ainda é viável fabricar um veículo não conectado
  • Como dono de um Kia, fico aliviado que a vulnerabilidade foi corrigida e não foi explorada de forma maliciosa

    • Mas a Kia ainda precisa melhorar muito
  • Acho que carros não deveriam ser conectados à internet