DevSecOps

9 jul, 2015

Ciber segurança em sistemas automotivos

Publicidade

ESCAR é um evento bastante interessante. Ele aborda temas sobre segurança em sistemas embarcados na indústria automotiva. Entretanto, percebo que é um assunto ainda distante da comunidade de ciber segurança empresarial.

Se você acredita que IoT é um mar maravilhoso de oportunidades, acredite, seu carro estará lá. Mecânicos terão que ter noções básicas de TCP/IP ou frames; isso porque existem vários lugares lógicos para hackear um carro (conector OBD-II, interfaces sem fio). Atualmente, já se discute com bastante aprofundamento os métodos para testes de penetração de sistemas embarcados automotivos.

O desejo da indústria – e para quem não sabe o Google já possui seu carro -, é aumentar a conectividade em veículos e assim fazer a exfiltração de dados em tempo real. A tendência é que tenhamos um mundo onde exista CaaS (Cars as a Service – neologismo meu, pessoal! rs).

Em um futuro próximo, a direção e os atos subjetivos inerentes a condição humana serão substituídos por uma rede neural de tráfego, sensores nos automóveis e muita informação sendo trocada em tempo real. Sabemos que o Waze já gera muita informação, mas ele é apenas a ponta do Iceberg da locomoção humana, quer seja no âmbito individual, quer seja no âmbito coletivo.

A troca de dados massiva é atravessada por questões de confiabilidade, disponibilidade e integridade. A preocupação mais atual dos fabricantes de soluções embarcadas parece estar centrada em soluções de IDS / IPS para veículos.

Antes de aprofundar o assunto vamos entender a rede de um automóvel.

Entendendo o CAN Bus

O CAN Bus foi projetado para o ambiente de automóveis e é aí que ele está amplamente implantado. Um carro moderno tem ECU e muitos sensores diferentes com natureza multicast.

Quando você acelera o veículo por exemplo, a informação é transmitida apenas uma vez no controlador por algum sensor da roda, e pode ser usado ao mesmo tempo pelo painel, ABS, controle de cruzeiro, rádio / navegação e outros dispositivos.

Resiliência da rede: alguns dados e alguns nós são mais importantes do que os outros. O controlador CAN-Bus implementa alguns recursos de segurança, tais como contadores de erro de auto-desconexão do barramento em caso de falhas, ele próprio pode ainda sofrer uma falha catastrófica, tal como um corte no meio do cabo. Por esta razão, os carros complexos têm geralmente mais de um barramento, frequentemente rodando a velocidades diferentes. Como um exemplo que eu encontrei em um carro nacional da marca X: um barramento está rodando a uma velocidade relativamente alta (500kbps) e é ligado apenas na frente do carro, a fim de conectar sistemas críticos, tais como controle do motor, ABS, direção hidráulica e assim por diante… Existindo, então, um barramento adicional com uma velocidade muito mais baixa (50Kbps), permitindo a conexão de segmentos mais longos, utilizado apenas pelos equipamentos não críticos, como o painel de instrumentos, aparelho de som, vidros elétricos, faróis, sensor de estacionamento etc.

Todos os barramentos de veículos são normalmente ligados a um ECU comum em algum ponto, o qual pode ser utilizado como um substituto para transportar seletivamente algumas informações entre barramentos, mantendo o isolamento físico por razões de segurança.

Imagem retirada do site: http://www.obd-2.de/opel-steuergeraete-codieren.html
Imagem retirada do site: http://www.obd-2.de/opel-steuergeraete-codieren.html

Entendendo um ataque ao um sistema embarcado automotivo

O atacante, assim como em qualquer sistema operacional classe C (para mais informações Googleit: Orange Book), escalona privilégios no sistema embarcado do veículo, via TCP/IP (internet), Bluetooth ou WI-FI e pode enviar mensagens ao ECU (engine control unit), entre outros controladores. O resultado mais comum deve ser um carro rebocado. Mas também saber das suas rotas, tempo médio de tráfego e outras informações pelo GPS e computador de bordo.

Podemos pensar além… Indo, por exemplo, a um ataque distribuído por negação de serviços (Ddos) em uma rede automotiva. Naturalmente, isso já foi pensado e a indústria caminha para que isso não aconteça.

O CAN Bus tem o kernel do Linux de forma nativa na camada de rede, com um monte de drivers para ambos os controladores embutidos no barramento, por exemplo USB. Por tal motivo, agora é bastante fácil adicionar uma interface para qualquer laptop Linux ou WIN e ter um playground com ele. Ainda existem APIs SocketCAN e alguns utilitários para isso.

O CAN Bus aceita um broadcast contínuo (todos os nós estão conectados ao mesmo cabo) e o protocolo faz funcionar logicamente como multicast. Isso faz com que o barramento seja muito bem adequado no ambiente do automóvel e da sua automação, onde alguns sensores podem colocar os dados no barramento que é utilizado por muitos processadores ou atuadores, e permite misturar nós com diferente poder de computação no mesmo barramento. Resumindo, não foi pensado para atuar em rede e em ambientes heterogêneos.

Por esse motivo pensar em IDS /IPS para esses sistemas é completamente pertinente.

Sim, existirá segurança!

Entretanto, nem tudo é problema. As novas tecnologias embarcadas são muito interessantes, tais como os sistemas de prevenção de colisão de veículos. A ideia geral é que um veículo vai balizar a sua localização e enviar estatísticas para que outros veículos a utilizem a fim de evitar colisões, avisando aos demais condutores.

No geral, eu vejo um monte de paralelos entre a segurança de automóveis e a segurança de automação industrial. As histórias de desenvolvimento, paradigmas, e (falta de) os ciclos de vida de desenvolvimento de software e testes de segurança.

Onde os dois divergem talvez seja o mais interessante. A segurança automobilística, por ser voltada ao consumidor direto, parece mudar a consideração que é dada à segurança da automação industrial. Sem surpresa, a segurança do negócio supera a segurança particular e a privacidade. Já a segurança da automação industrial, por ser mais isolada, tem um aspecto menos célere, mesmo depois do caso do Stuxnet.

Finalizando, eu acredito que os vendedores de soluções embarcadas estão começando a tratar da segurança do seu veículo como uma rede não confiável, como de fato é. A boa e velha desconfiança básica de qualquer entrada de dados e o desafio nos processos começa a ganhar corpo, entretanto temos que percorrer um longo caminho no sentido de tornar os veículos mais robustos e seguros no aspecto digital.