Enumeração UDS explicada: como mapear uma ECU com segurança
O que a enumeração UDS encontra em uma ECU, por que sessões e serviços importam e como um scan não destrutivo mapeia a superfície de diagnóstico sem quebrar nada.
Tom Zaubermann · Publicado em · 7 min de leitura
Antes de proteger uma unidade de controle eletrônico, você precisa saber o que ela expõe. UDS (Unified Diagnostic Services, ISO 14229) é a linguagem que a maioria das ECUs fala para diagnóstico, e a enumeração é o ato de mapear tudo o que ela oferece: quais sessões de diagnóstico existem, quais serviços respondem em cada uma e quais identificadores de dados podem ser lidos.
Por que a enumeração vem primeiro
Uma ECU não é uma interface plana. Um serviço que fica em silêncio na sessão padrão pode responder em uma sessão estendida ou de programação. Um identificador de dados que parece inofensivo pode retornar um número de série, um valor de calibração ou um segredo. Até você percorrer toda a superfície, sessão por sessão, você está adivinhando a superfície de ataque.
O que um bom scan cobre
Uma enumeração completa percorre quatro camadas:
- Endpoints. Os pares de endereços ISO-TP em que a ECU responde, tanto na faixa de 11 bits quanto na de 29 bits.
- Sessões. Padrão, estendida e, com cuidado, programação. A entrada precisa ser robusta, porque alguns gateways ficam travados.
- Serviços. Cada ID de serviço, sondado em cada sessão e classificado: suportado, negado por motivos de segurança, não suportado nesta sessão ou condições incorretas.
- Identificadores de dados. Os DIDs legíveis, seja na faixa de identificação ou no espaço completo de identificadores.
Mantendo tudo não destrutivo
A enumeração deve ler, não escrever. Ela descobre o que está lá e sinaliza os serviços arriscados (reset da ECU, controle de rotinas, acesso à memória) sem acioná-los. Essa é a diferença entre entender uma ECU e perturbá-la, e é por isso que a enumeração é o primeiro passo seguro antes de qualquer fuzzing ou teste de escrita.
É exatamente isso que o motor de enumeração do AutoST faz, automaticamente, em minutos, e ele pontua os serviços arriscados que encontra para que você saiba onde olhar em seguida.
FAQ
Perguntas frequentes
A enumeração UDS é segura?
Feita do jeito certo, sim. A enumeração descobre e lê; ela não escreve nem faz fuzzing. A sessão de programação é tratada com cuidado porque algumas ECUs ficam travadas nela.
O que é uma sessão de diagnóstico?
Uma sessão UDS (serviço 0x10) desbloqueia conjuntos diferentes de serviços. A sessão padrão é limitada; as sessões estendida e de programação expõem mais, e é exatamente por isso que vale a pena testá-las.