
Bom dia. Bom dia. Bom dia a todos. Aqui com a palestra de vulnerabilidade e segurança cibernética em dispositivos de mediação avançada de energia elétrica. Vou chamar Wesley Leite pro palco aqui. Bem-vindo ao palco da BSAIS.
Obrigado pessoal. Eh, bom, a gente fala um pouquinho sobre esses dispositivos, as preocupações que tem esse meio, que talvez a gente esteja tá baixo. Vou tentar mudar de microfone.
Alô, alô. Melhor. Boa. Eh, vamos falar um pouco sobre as preocupações. Eh, esse trabalho a gente tá tocando desde 2021, tá? Eh, então a gente tem um compilado de várias atividades que foram realizadas no setor elétrico, porém e os dispositivos em testes aqui, eles são comuns em medições de vários outros setores também, saneamento e outros grupos, tá? Só para saber, alguém de setor elétrico? Boa beleza. Mas de modo geral vocês vão ver que eh são falhas simples de serem exploradas. Eh, o que a gente viu no a gente viu na TI há alguns anos atrás vem se repetindo no ambiente de automação industrial e energia elétrica, principalmente, que é o foco desse trabalho. E temos uma publicação ano
passado no SBSG desse trabalho e aqui a gente traz um pouco mais de detalhe, mas vou ter que me conter quanto ao quantidade de detalhe para não expor ninguém, tá? Então vamos lá.
Eh, só queria começar com essa pequena observação de que eu acredito que qualquer uma das duas é a mesma coisa. Guitarra elétrica tendo captador e cortas esticadas é a mesma coisa. Agora é a hora que eu vejo uma galera saindo do palco, indo embora, ninguém. OK, mas a gente pode debater sobre isso, tá? Mas o tema não é esse, tá? É, é, pode ser um absurdo para alguns, para mim é a mesma coisa, tá? Eu sou guitarrista também, tá? Mas só não sou aquele guitarrista profissional. Mas bom, quem somos nós, né? Nós somos um grupo independente. Eh, não somos eh somos CLT de certa forma, mas independente de certa forma. Eh, acabamos que independente eh mas acabamos ajudando muito setor
elétrico, outras companhias também, até eh empresas de TI, tecnologia a gente vem apoiando com inteligência e head, penest, entre outras. Nosso objetivo é conseguir enumerar as vulnerabilidades antes que os atores estejam explorando elas. E aqui a gente vai mostrar alguns desses exemplos que poderiam basicamente colocar o nosso meia sociedade em risco também, não somente a concessionária, mas toda a população de modo geral, tá? Aqui um pouco dos nossos contatos. Eu sou o Wesley Leite, eu sou um dos fundadores, tá? O restante dos fundadores estão aqui também com a gente. Eh, e a gente criou esse grupo porque ninguém aceitava a gente, então a gente criou o nosso grupo. Beleza? Então, de modo geral, é isso. Não tem
nada demais. E quais suas motivações para fazer esse trabalho? Eh, esse trabalho surgiu por conta a gente tava pesquisando muito sobre vulnerabilidades no setor elétrico e encontramos muito material teórico, tá? Então, nossa primeira motivação é a ausência de material prático sobre isso, tá? Eh, os trabalhos acadêmicos normalmente eles vem trazendo muita visão de é possível, existe vulnerabilidade, mas na prática nada concretizado, nada eh realmente eh concretizado, né? O risco não era materializado. Nosso objetivo era materializar esses riscos para ver até onde nós conseguiríamos chegar e se realmente dispositivos poderiam comprometer a organização de alguma forma ou até mesmo a sociedade. Eh, outro ponto também que nos motivou é a baixa ou nenhuma regulamentação. Eh, os dispositivos que eu vou
apresentar aqui, eh, eles não tm nenhuma regulamentação e ou órgão que faz gestão para garantir que eles não são que eles são seguros suficiente ou até mesmo eh que são aptos a entrar no meio no no ambiente ali de da organização, tá? Então, eh isso de certa forma é bom, mas também é ruim, né? uma faca de dois gumes. Por quê? Eh, possibilita que outras empresas criam dispositivos, aumenta a concorrência, eh acaba barateando um pouco a solução também, porém e sem sem a legislação adequada ou sem a os controles adequados, vulnerabilidades e problemas surgem. Beleza? Grande visibilidade do tema nesses últimos anos também. O que eu vou falar não é nada novo, pelo menos a gente fala
disso pelo menos no setor elétrico há mais de 20 anos, né? sobre medição avançada, AMI. Eh, muitos anos atrás, por exemplo, já ouvi falar que a concessionária tem capacidade de coletar os dados todos por meio da energia elétrica, tá? Porém, com uma pequena perda, né? Aceitável para alguns casos, mas não para todos, né? Então, não é nada novo e grande aumento a visibilidade do setor. É que a gente tem falado muito disso ultimamente. É um setor estratégico, tá? interessante eh pra segurança nacional e soberania do país. E imagine, por exemplo, hoje a gente tem muito visão ali da guerra na Ucrânia e Rússia, né? Eh, o que vem trazendo de estrago para sobre esse cenário, né? muitas substações atacadas,
o setor elétrico vem sofrendo. Imagine que antemão ali um atacante sabe das vulnerabilidades do seu de uma região onde ele consiga comprometer, né, a companhia de energia elétrica ou até mesmo a região ali, deixando no apagão completo. Ela certamente, se ela conseguisse fazer isso em tempo hábil, ela poderia ter uma vantagem competitiva sobre isso, né? Ela ganharia uma uma vantagem sobre o atacante. E pode ser divertido sempre divertido e perigoso também sempre, né? Porque a gente, de certa forma, quando a gente tá lidando com energia elétrica, eh a os dados que estão os dados não, a a concessão ou até a transmissão dos dados até o cliente final, a gente pode estar imputando algum problema no ambiente, desde
acionando um religador eh ou acionando um equipamento que estaria desligado no momento e alguém estaria mexendo na linha viva ali, poderia ser um problema para ele e poderia casar até a morte, né? Bom, mas o que é esse negócio de infraestrutura de medição avançada? Aqui eu trago um exemplo de um smart grid. Eh, porque é muito comumente é confundido, porém não é a mesma coisa, né? O AMI é de modo geral é uma parte do Smart Grid, né? Mas imagine que e a concessionária é a empresa ali no centro, né? O centro das operações e em volta vamos ter todas as as demais empresas, organizações, um shopping center, né? Vamos ter também eh os clientes finais, né? Sua residência. Eh,
e de certa forma a concessionária, ela quer coletar isso de forma automatizada ou até mesmo, né, não automatizada, mas ir mandar um leiturista até o local para poder coletar esses dados. A dificuldade é em algum desses locais tem difícil acesso ou a a implantação não está adequada, né, o medidor elétrico não está adequado com os padrões que a organização usa hoje, né, tá virado para dentro, o leitorista tem que acessar o local para poder fazer a leitura, coletar os dados, então dificulta muito, né? Então, foram criados meios para garantir uma para facilitar essa essa captura de dados, né? E esses meios estão colocando a organização em em risco, né? De modo geral, eh o AMI é o
sistema de comunicação que vai permitir, por exemplo, a coleta dos dados, o meio de comunicação, mas o gerenciamento desses dados, tá? Então, é composto por esses três dispositivos e três meios aí ou três formas de e pensando nessas três formas, a gente entende que seja o MI, tá? E o medidor elétrico não é isso, né? Não a pessoa que foi medindo fio ali na rua, né? Mas é é e eh para contextualizar, tá? Então aqui na sua casa, provavelmente você já deve ter visto, provavelmente um dispositivo desse, né? Certamente se você eh passou pelas eh pelos portão ali, você cruzou com equipamento desse. Então aqui é para não fazer bullying, né? é um editor não
muito inteligente. Eh, então nós vamos ter de modo geral até mais de dois, mas vou focar em trê em dois dispositivos, né, que vão ser os analógicos onde é claramente identificado pelos dispositivos que vão ter aqueles reloginhos ali. O leiturista basicamente passaria coletando esses dados. E o elétrico, o elétrico basicamente é o display que vai ter os dados de medição ali, né? é o consumo em quilows ou algum dado adicional no display do dispositivo. É fácil de identificar como ele é quando ele é digital, né? Então são esses dois e essas duas tecnologias que a gente tem com medidores, medidores não muito inteligente. Em contrapartida, a gente tem os medidores inteligentes, né? Os medidores elé elétricos inteligentes são
dispositivos que de alguma forma vão permitir a coleta dos dados de forma um pouco mais automatizada ou, né, eh, facilitar ali a vida do leiturista, tá? Eh, esses dispositivos, de um modo geral, eles vêm nascendo em grande escala no meio, tá? E para poder contextualizar, essa imagenzinha representa um dispositivo conectado ao medidor elétrico, né? Então, como não tem regulamentação ou algo que define claramente qual é o medidor elétrico, né? E pensando também que a concessionária para poder transformar tudo eh eh melhorar a tecnologia dela e deixar um pouco mais smart ali, ela precisaria de substituir todos os medidores, né? Isso seria extremamente caro. Às vezes é mais fácil investir num equipamento que vai conectar o medidor,
fazer a coleta dos dados e transmitir para um leitorista, por exemplo, em campo com PDA, do que, né, simplesmente fazer a troca de todos os dispositivos. Então, e o objetivo mais ou menos é esse, tá? Eh, proporcionar e facilitar essa leitura, tá? E, bom, a questão de tudo é e se conseguimos comprometer o medidor de eh o o ambiente de medição da da organização, né? O que que a gente pode fazer? que que a gente poderia tá imputando de risco dentro do ambiente. Eh, aqui a gente vai tá apresentando basicamente um trabalho onde que nós fomos a parte técnica dele. Eh, a gente pede cautela, né? Vão ter dados específicos ali, então a gente tentou eh
mascarar o máximo possível e não tentei fazer isso em casa. Beleza? é básico. Eh, essa daqui é uma tecnologia que foi uma das primeiras, não foi, não foi das primeiras, não, mas eh uma tecnologia que chegou pra gente testar. Eh, nós temos aqui o medidor elétrico digital e esse dispositivo preto conectado na porta emantada do do medidor, tá? Eh, eu chamei ele de Vicapvop, tá? para não revelar o nome. E o objetivo dele era simplesmente coletar os dados de medição, facilitar o trabalho do do leitorista e automatizar alguns processos, como se o leitorista tivesse, por exemplo, uma ordem de desligamento de uma de uma UN ou de uma unidade unidade de negócio, não, de uma de uma
residência, tá? Se tivesse como ordem de serviço ali desligamento, ele poderia ir com seu PDA até o local e acionar o desligamento daquele sem ter uma mão de obra muito sem ter muito trabalho, tá? Facilitar por ele, tá? conectado nessa porta emantada, ele permite um gerenciamento maior, tá? E permitir desde reconfiguração do dispositivo, corte e ligamento e entre outras configurações, tá? Tudo por meio de uma configuração. O número de dois, de modo geral roda um firmezinho, né? Uma imagenzinha que é configurada. E esse equipamento ele transfere os dados pro leiturista por meio de Bluetooth de baixa frequência, tá? Então o o objetivo aqui basicamente era ver o que que ele poderia comprom como a gente
comprometeria a organização ou, né, parcialmente, eh, sabendo somente, tendo somente com base ali, tendo a PK, que é um dispositivo roda no PDA, mais a URL da PI.
Bom, quando instalamos o APK, a primeira coisa que a gente observou é que ela tinha uma uma tela de ativação e como a gente recebeu apenas o o APK e a URL, entendemos que deveríamos passar por todos os controles, senão a gente não teria não seríamos dignos de conseguir fazer o teste, né? Eh, então fizemos a engenharia reversa do processo, identificamos que provavelmente provavelmente não existia no código, um trecho de código que fazia o processo de de ativação do dispositivo e criamos um código, um javazinho. A leitura tá ruim porque tá pequeno, né? Tá um pouco embaçado, mas basicamente a parte selecionada, que é o código que tá apresentando lá em cima, é o e-mail do
dispositivo, né? Então ele aplica um um digest ali, faz basicamente um MD5 S, depois faz um CRC32 e basicamente no final ele gera um uma string de ativação. Então geramos, rodando o nosso código, a gente gerou uma string de ativação do dispositivo. Basicamente é um craque, né? Imagine que o Office, pacote do Office da vida lá pede um uma K, né? É semelhante o que a gente fez, né? Colocamos aqui que a gente gerou e temos dispositivo habilitado, primeiro controle quebrado. Depois achamos uma parte de configuração porque a gente ainda tinha o desafio de saber onde colocar aquela URL, né? Eh, que pra gente até então era um pouco obscuro. Então, vimos que tinha uma outra parte
de ativação. Agora não tratava com e-mail, mas seguindo uma lógica semelhante, criamos um outro script. É um codigozinho ali em Java também que permitiria a gente gerar um código de ativação para esse controle também. Jogamos rodamos o script, inserimos aqui e novamente a gente conseguiu acessar a interface para que deu pra gente o a a URL, não, mas deu pra gente aonde colocar o URL. Beleza? Então, nesse trabalho, dois craques já criado para poder ativar o controle. E, bom, posteriormente a isso, após clicar no OK ali da vida, a gente vê a comunicação acontecendo com a cloud fornecedor e ativando o dispositivo de fato, tá? Porém, ainda não é suficiente, a gente tem mais um controle para passar, né?
Aqui é um controle com Office 365, com AD ativo Direct David Active Direct, não o ID, obrigado. Eh, entra da Microsoft e bom, sem permissão para poder logar, né? Nós nem tínhamos conta para poder acessar esse dispositivo. Porém, mesmo ele não nos dando eh uma conta válida, nós não temos uma não tendo a conta válida, dando permissão negada, ele entregava pra gente um famoso de token JWT, tá? E com isso nós conseguimos eh colocar um fuz rodando na plataforma e encontrar um end point específico que filtrava pra gente todos os usuários da aplicação. Aí já não é no APK, né? Eu tô fazendo um fuzzinho direto na PI para poder encontrar os end points, tá? E
essa chamada com token JWT adequado, eu listo todas as contas da plataforma, né? E as contas da plataforma todas eles vão ter uma também. Abrindo o token JWT, vou ter todas as roles da aplicação. Eu ainda não tenho acesso, tá? Eh, porém, eh, identificando os usuários, achando os usuários específicos ali da que eu mostrei agora a pouco, né? Essas duas contas que eram o local, né, da aplicação, eu consegui somar todas as roles que eu precisava para poder comprometer o ambiente. Então, somando o total, foram 63 roles imputados no token JWT, que estava com validação inadequada. Com isso, no mobile a gente consegue nosso primeiro acesso, tá? Primeiro acesso com usuário comum, né? Até que a
gente identifica que o segundo usuário da plataforma também ele possui algumas roles administrativas. Imputamos ela e ganhamos acesso administrativo no APK. Tudo isso porque o token JWT não era validado, coisa que a gente não vê hoje na TI, né? Pelo menos as aplicações construídas pelo padrão TI, né? diríamos assim, eh essa essas falhas não são tão comuns mais, porém pro ambiente de automação industrial, parece que eles estão aprendendo a fazer as coisas de TI agora ou mudando um pouco o conceito, pegando que já já funciona bem, tem levando para OT. Então, eh, essas falhas estão começando a acontecer lá por agora. Bom, não era muito foco do trabalho, mas no web também a gente conseguiu acesso
administrativo usando todos os mesmos conjuntos de roles, tá? Então, ativamos também o acesso administrativo da plataforma, lembrando que nós não tínhamos uma conta para acessar, tá? Então, primeira aplicação vencida aqui por por mau gerenciamento. E eu vou dar mais detalhes em seguida. Não era o suficiente ainda. Eh, existia um end point que nos dava um permitia fazer um dump de todas as credenciais dos medidores elétricos, tá? Os medidores elétricos para serem configurados, eles precisam que eh a gente tenha uma senha, tá? Não é simplesmente eu abrir lá, conectar na porta emantada lá um RFI ou, né, alguma coisa, algum dispositivo mágico lá. Eu preciso de uma credencial para poder configurá-lo, tá? Então, com base nessas
credenciais, a gente poderia inutilizar, reconfigurar ou modificar padrões de configuração desses medidores elétricos. Então, foram baixados mais de 3.000 que, como eles ainda estavam em teste até chegar na gente, os 3.000 medidores foram obtidos aqui. E bom, desse primeiro trabalho, qual o resultado que a gente obteve? Controle total de dispositivo e tecnologias instaladas. Permissão de gerenciamento tanto web quanto mobile, capacidade de reprogramar todos os medidores. É lógico que a gente não fez isso porque aí inutilizar o dispositivo não ser legal. Controle de cortes e e ligação de energia, né? A gente poderia sair pela rua procurando um dispositivo semelhante a esse que tivesse essa tecnologia simplesmente para poder ativar com o nosso celular que a gente que estaria OK. Uma vez que
dampou aquelas senhas pelo próprio APK, eu passava a ter controle do medidor elétrico de que tinha que aquela tecnologia instalada. Então podia simplesmente cortar energia daquele cliente. Então isso aqui na mão da pessoa errada pode dar problema. Como base desse para mostrar valor nesse trabalho não é simplesmente mostrar a vulnerabilidade, né? Nosso objetivo foi tentar entender um pouco ali numa concessão, por exemplo, de 1000 unidades consumidores, né? né? Então a gente estudou um pouquinho como faria isso, eh, que seria semelhante ao impacto no DEC, né, que é um medidor regulatório da organização, né, pelo menos da concessionária. Então, eh, se a energia fica interrompida por um período específico, ela tem uma multa regulatória, tem uma um órgão que
gerencia aquilo ali e fala assim: "Olha você teve 10 ordens de indisponibilidade, fugiu do controle, você perdeu o deck", então você vai ter uma multa aplicada aquilo ali, tá? Só que nesse caso a gente não tem os valores da multa específico. O que que a gente tá trazendo aqui eh é um valor não arrecadado, tá? Nesse caso aqui, por exemplo, pensando numa concessão de 1 milhão de clientes e um consumo médio ali de 0.5 kWh e uma tarifa média de 84 centavos, o cliente e durante 10 horas de operação, a concessionária em cima dessa concessão estaria ganhando 4.2 milhões. Se conseguíssemos comprometer 10% dessa concessão, ou seja, 100.000 1000 unidades consumidoras, nós estaríamos aí usando as mesmas
contas, né? Kilwh 0.5, tarifa média de 84 e tempo de indisponibilidade de 10 horas, essa concessão estaria deixando de arrecadar R$ 420.000. Eh, e bom, eu não sei como funciona o frigorífico, por exemplo, frigorífico, né? Eh, certamente ele vai ter lá o um gerador ou alguma coisa assim para poder impedir que coisa assim aconteçam. Eh, mas a gente tá pensando aqui que eles não vão ter, vão estar somente contando com a energia que tá sendo fornecida pelo pela concessão ali. Então é uma forma da gente mostrar valor sobre esse trabalho. Eu não tenho como aplicar multa, mas tem como falar aproximadamente quanto que ela deixa de arrecadar nesse período. O segundo trabalho aqui, eles não estão
na ordem, tá? Eh, esse aqui foi talvez um dos primeiros. Eh, aqui em cima nós temos o medidor elétrico. Eu chamei ele de engenharia do mal, tá? Porque vocês vão entender agora é mesmo por quê. Eh, ele tá conectado numa porta PIMA do medidor, tá? Essa porta é uma porta somente de leitura. Então, eu não tenho por meio desse dispositivo uma forma de imputar dados direto pro medidor. É um pouco mais seguro porque é somente leitura, dispositivo de somente leitura. Eh, porém ele me permite fazer leitura, por exemplo, de do serial number e do consumo elétrico daquele momento, tá? Eh, e bom, e aqui e o legal desse aqui que transmite via Wi-Fi, tá? Então ele
tem um hotspotzinho ali que roda, tem um um SSID específico, eh, que normalmente é o serial do medidor e transmite esses dados pro leitorista tiver conectado no mesmo no mesmo Wi-Fi. Eh, a solução também, ela usa um medidor não muito inteligente, exatamente para poder tentar dar um pouco mais de inteligência a ele, sem que eu tenha que trocar o medidor elétrico, que vai ser um pouco mais caro. Eh, a o trabalho inicial ele visava atender 6.000 1000 clientes que são problemáticos naquele momento. Porém, já se sabia que naquela concessão 500.000 clientes eram problemáticos a ponto de utilizar essa tecnologia, tá? Aí aqui uma imagenzinha de um medidor bem obscuro, né? Eh, e bom, o primeiro passo desse
dispositivo era você tinha que formar um SSID para poder se conectar no medidor elétrico. No medidor não, né? no dispositivo que estava conectado ao medidor elétrico. Eh, então forneci o que o SSID, que era exatamente seria o número do medidor. Bom, a gente achou a parte do código que faria isso, é uma ação de clique, né? Então, uma ação de clique. O código tava ligeiramente ofuscado, não pode se falar que é uma ofuscação, que aquela ofuscação gerada pela ideia. Então, eh, para quem analisa código sabe que não é nada praticamente, né? a gente consegue chegar no resultado final somente andando, andando, andando, ba, ba, ba da vida lá, achando a classe, achando arquivo, no final a gente vai achar uma
classezinha lá que basicamente faz ação, né? Então ele basicamente gerava um chá 56, depois ela picava um base 64 em cima de uma senha que é criptografada em cima do SSID do dispositivo, tá? Então ele gerava uma senha baseada nisso. Nosso objetivo primeiro é como que ele faz essa geração desse dessa senha para poder entender como construir a engenharia que a gente pretende, tá? Analisando essa parte do código, conseguimos novamente eh gerar um código que permitiria a gente gerar um SSID dessa a senha para esse SSID, tá? Para esse dispositivo. Usando essa esse códigozinho criado, giramos a senha para conectar no Wi-Fi, tá? Eh, aí, bom, um base 64 que aí eu vou imputar ali no meu computador ou,
né, sei lá o que eu vou fazer e vou guardar ele, né, porque por enquanto é só conhecimento. Depois, eh, encontramos um socket também dentro do código, então uma fuscação quase zero, né? Tinha uma string lá que falava o IP, que é 926841 e uma porta 8001. 8001, né? Eh, e basicamente o que ela fazia era chamar uma motração ligeiramente ofuscada, que aí ele tinha uma espécie de relow, né? Ele mandava uma string, o dispositivo mobile mobile mandava uma string de relow ali pro dispositivo pendurado no medidor. E esse medidor basicamente eh mandava um retorno que basicamente era o seral number mais o dado de consumo elétrico daquele momento, tá? Então, um conchete, uma string qualquer
que a gente identifica depois, dois pontos seria o number mais eh dados de consumo. Criamos um scriptinho em Python também para poder facilitar nossa vida ali. Criamos um relzinho que é um string conchete MB, um carreir return mais um line feed. Submetemos essa conexão pro socet que a gente identificou aqui, a gente já tá conectado no Wi-Fi, né? Então, submetendo essa string, a gente tem um retorno que basicamente é o serial number, mais exatamente o dado que tava voltando no display. A partir desse momento, a gente entende que já tem alguma coisa em mãos, né? A gente já sabe alguma coisa. Então, levantando o que nós sabemos, sabemos como funciona o servidorzinho que tá conectado no
medidor elétrico, sabemos como gerar senha do dispositivo, sabemos também como fazer interação com o equipamento. E o que fazemos com isso? Eh, isso aqui foi interessante que eu tava no cantinho do escritório lá chorando, tava escura a luz, a luz tava bem baixa. Eu tava chorando um pouquinho, minha filha chegou e perguntou: "Pai, por que você chora?" Então, eu tava um pouco angustiado porque eu falei: "Poxa, eu vou ter uma apresentação lá na Upside e eu não consigo mostrar um valor aqui, não consigo mostrar uma prova concreta do trabalho". Eh, o slide tá aberto no meu computador, eu não consigo fazer uma poquzinha. Ela tem 4 anos. Ela. Então eu lembro que eu adormeci brevemente no
chão gelado e então ela acordei de manhã com o bilhetinho dela, esse dispositivozinho do meu lado, tá? Até emocionei aqui, gente, chorei. Mas basicamente que ele falava o bilhete, pai, criei para você não se estender porque eu sei que você gosta. Já coloquei o servidorzinho ali imputando. Tem um script que tá nesse diretório homescriptidor. Fiz em porque você adora beh, criei um hotspot usando rato spot que vocês já usam muito, tá? Coloquei um BSS ali, uma um SSID com o nome do Bside 20. Ó lá, deu até para ver que ela esqueceu. Ela errou ali, ó, um caracter. Então é só você conectar nesse Wi-Fi, clicar no dispositivo, conectar, que você vai fazer o que você quer. E gerou esse
scriptinho para mentar main BH, que basicamente é o o servidor fake, tá? Então eu falei: "Poxa, eu vou testar esse negócio, essa menina tem futuro". Em seguida, ela deixou só uma anotação bem breve. Pai, criei também um DHCP Server. Por quê? O leiturista, na hora que ele vai se conectar no Wi-Fi, eu preciso entregar o IP para ele. Só percebi isso no final, tá? Então, coloquei e você pode tentar fazer sapo lá que vai funcionar. Sei. Bom, bora para demo. Você colocou sua filha no programa da NASA, né? Ela é daada. Ela ganha crédito no É, exatamente. Pai, você tá devagar, hein? Eu já tinha dado até uma máquina para ela quântica. Ela tem unzinho com 28 núcleos, 32 GB.
Então ó eh, aqui eu vou criar, vou subir o o Raspberry, tá? Esse rbzinho ele ligando aqui, eh, basicamente ele vai subir aquele hotspot lá pra gente. Nesse dispositivo eu tenho uma versão do aplicativo usado pelo leiturista, exatamente para poder fazer essa poc exportado somente essa essa essa essa activity pra gente fazer o trabalho. Então, eu tô conectado no medidor Bside 20. Em seguida, opa, cadê? aqui. Aí eu vou abrir o dispositivo, abrir a aplicação e na hora que ela terminar de conectar, basicamente o que a gente faria realizar a leitura e pronto, o dispositivo. Agora eu posso fazer interação. O leitorista toda vez que chegar no medidor elétrico, quem na verdade vai est fazendo a
leitura do medidor fake que eu criei pensando na seguinte situação. Imagine que eh estaríamos danificando o dispositivo da concessionária e colocando esse aqui para atuar no lugar dele. Então eu vou passar para esse cliente agora um desconto. Vou passar a fornecer para ele um desconto, por tô te fornecendo um dispositivo, vou te fornecer, por exemplo, eh, 100 kW a menos no mês, mas você me dá uma taxa aí para poder garantir a operação de serviço, né? Então a gente fornece para ele um meio de dele economizar, a gente ganha uma graninha e tá todo mundo bem. Beleza? É, temos evolução nesse caso. Temos, temos sim. É um replay ataque, né? Tentaram fazer melhor, porém a gente viu
que o tráfego agora vinha criptografado. Eles estavam basicamente imputando um ali, só que foi um, eu não tive como quebrar mais por conta da do tempo, né? Foi um tempo curto. Eh, todos esses trabalhos foram realizados com base em em pestes normais, né? Então a gente tinha uma janela de início, janela de fim, então ali 15 dias, às vezes uma semana, alguns deles a gente tinha três dias para poder analisar por causa da janela. Então nesse daqui foi bem curto a análise para poder viabilizar o negócio. A gente viu que eh ele tava criptografando os dados, porém ainda não era suficiente. Por quê? A string, a gente extraía essa string, colocava no arquivo de string.rereplay.txt, por
exemplo, depois fazia, basicamente subia o server e deixava o replay acontecendo. O problema é que isso aqui não vai perdurar muito tempo, né? Eh, a gente não teve muito tempo de analisar como a gente evoluiria, porém esse projeto acabou sendo cancelado, tá? Por conta dos problemas que a gente identificou. Esse resolv segir em outra linha, tá? Resultados: 500.000 clientes problemáticos habilitados para receber essa solução. 6.000 clientes para instalação imediata. Aí vamos ver como é que a gente fatura isso. Me dá grana e eu vou tentar aliciar 1000 clientes desse numa taxa de R$ 50 e um mês eu tenho uma receita de 50k. Nada mal, né? Pensando que não vou vai est instalando qualquer cliente, né? Vai ter, pô, pelo
menos ali imaginar que um cliente de R$ 500 economiza um 1 kwh dele ali e tal maroto, de modo que eu consiga ganhar 50 conto, não é ruim, né? Né? Pensando que são 500.000 1000 no final para implantar, daria para poder fazer uma receitinha bacana aí, tá? Eh, e bom, outro caso que a gente trouxe aqui para poder exemplificar para vocês também, eh, a gente chamou bagunçando a treta toda. Eh, para quem tá no setor elétrico já deve conhecer um dispositivo desse aqui, né? Esse aqui chama-se remota, tá? Eh, existem várias formas como ele at nesse meio nesse meio da da concessão elétrica ali. Eles podem estar instalados em campo lá. eh em campo, vão ter, vão estar
conectado na porta antada do dispositivo, né? E bom, o objetivo aqui é atender grandes clientes, não dá para poder instalar em qualquer cliente, tá? Por quê? O custo disso aqui não justifica, ele é um pouco mais caro do que aquelas outras soluções. Então precisaria de um consumo considerado ali para poder fazer a instalação. E normalmente eles são instalados. Aliás, normalmente não. Chegou pra gente a seguinte informação: "Olha, eu preciso que vocês validem eh eu preciso usar a rede do cliente para não ter que colocar um chip 3G ou até uma uma conexão a DSL lá para poder gerenciar esse dispositivo. Vai ficar caro para mim. Eu preciso saber se eu colocar na rede do cliente vai ser um problema, tá?
Aqui é um pouco de como funciona essa arquitetura. Na parte de baixo nós temos eh a rede do cliente com medidor elétrico, mas esse azulzinho é o a a remota, né? E o gateway de saída da internet do cliente. Lá em cima, normalmente a gente vai ter um fil, assim espero sempre. Depois vai ter um dispositivo que irá normalizar esses dados, ou seja, vê se o que tá passando realmente é o que interessa, né? né? Ou seja, se não tem nenhum ataque acontecendo, tipo um ids ou IPS da vida, tá? Mas pro ambiente elétrico, tá? Depois vamos ter o banco de dados. As imagens aqui não necessariamente representam o que elas são, tá? Porque eu gosto das imagens da
WS ela são bonitinha. E aqui o a o a interface web de gerenciamento do dispositivo, que é o gerenciamento de dados, tá? Normalmente ali o a remota, quando ela precisa de alguma coisa, ela ela é mais passiva, né? Só que ela fica conectada lá no dispositivo esperando que o gerenciamento de dados solicite alguma coisa. Por exemplo, ó, preciso dos seus dados de faturamento. Ele vai lá, conecta e fala: "Beleza, vou consolidar aqui, capturar esses dados e vou gerar e te mandar". Beleza? É, faz isso, transmite em seguida, tá? É, demora, né? Cada 2 minutos, 1 minuto, vai variar. E normalmente transmite dados assim, meio confuso aqui, não dá para ver direito, mas é uma string numeral, depois um um
comandinho, por exemplo, faturamento, né? e depois uma sequência de hexadecimal e ou dados lá qualquer aleatório separados por vírgula e que cada uma daquelas vai representar alguma coisa, por exemplo, alarme, custo, consumo, entre outras informações, tá tudo em texto claro. Ai, fica melhor para enxergar. Texto claro. Eh, então nosso primeiro processo ali na remoto é identificar como que ela se autentica no meio, uma autenticação extremamente frágil e fácil de quebrar. Então o que a gente fez foi simplesmente imputar e de comando daquele no meio e passar para um socket que era o IP de conexão da remota. Beleza? E com isso a gente conseguiu se autenticar na remota dentro da do sistema de gerenciamento de
dados da concessionária, né? Bom, sabendo autenticar, nós passamos a gerar alarmes dentro do dispositivo, né? Não só alarmes de de problemas, né? Mas também temperatura, como também conseguimos fechar a fatura desse cliente até 2030, ou seja, até 2030 tinha valores fixos. eh, garantidos ali, né? É certo que isso aí ser dedificado, gente, mas a gente quer mostrar que o sistema era vulnerável mesmo, tá? E bom, temperatura dispositiva, a temperatura do Sol ali, né? E o que faria, por exemplo, deslocamentos, deslocamentos desnecessários, deslocamentos dentro da do ambiente de concessão elétrica ali costumam ser caros, né? Ou seja, tudo que eles evitam o tempo todo é, cara, tem que mandar alguém lá, pô, vai ser caro, vai ser
caro, não é barato, né? Então a gente tem sempre essa reclamação. Então ali é basicamente o comando executando para poder ativar os sensores. A gente tem autenticação e depois os da vida ali. E o resultado final basicamente é essa loucura aqui de sensores alarmando temperatura e sinal também lá nas alturas. Tá bom? Não somente isso, mas dentro do protocolo, eh protocolo não, dentro desse ambiente vão ter eh formas de normalizar os dados, né? Um deles chama-se a BNT. Eh, o ABNT tem pelo menos 16 versões diferentes, tá? Então não dá para poder simplesmente automatizar isso em grandes casos. Você precisa entender qual que é o protocolo que tá acontecendo. Mas uma vez que você entende qual que é, como
que tá normalizando aqueles dados, você consegue identificar onde que é a parte do código que você tem que injetar. Então nós identificamos nisso aqui que no sistema de gerenciamento de dados quando a gente injetava strings ou parte de código nessas áreas a gente conseguia eh acesso dentro do navegador do do cliente da concessionária, porque ele acessou exatamente aquela área daquele daquela remota que nós injetamos o payload. Por exemplo, no JavaScript, né, que a gente transfere a sessão dele para para fora da rede, depois acessamos e se aquela aplicação tiver exposta, a gente acessa a interface de gerência da aplicação, que é mais ou menos o que a gente tenta exemplificar aqui, né? a gente injeta um payload, esse payload
fica armazenado no banco de dados, né, aguardando até que o profissional da concessionária vá acessar aquele dispositivo. Uma hora que ele vai acessar para poder verificar qual que é o problema, aquele payload que tava no banco de dados sobre pro MDM. Subindo pro MDM, ele vai explodir e trazer o controle pro atacante. Resultado inestimado, tá? Eh, por nós não temos somente clientes aqui, né? Normalmente a gente tem diversos eh diversas indústrias, empresas e entre outros também eh trabalhando aqui. Então, não temos como não fizemos um trabalho para estimar qual que seria o custos aqui ou o problema conta dos diversos cenários que nós tínhamos, tá? Até daria pensando naqueles modelos que a gente apresentou anteriormente, mas
aqui a gente já vê que a esfera, o buraco tá mais embaixo, né? A gente tem um grande problema, não somente para pros clientes, mas pra concessionária em si, né? Que pode ser comprometida de forma muito simples, diríamos assim. E conclusão, eu trago uma provocação para essa conclusão, eh, né, se a gente tá comprometendo até medidor agora, se eles já são vetores de ataque, será que a gente tá pensando bem nossa segurança? Será que a gente tá preparado para isso? Será que a concessionária tá preparada realmente para poder trabalhar isso? Eh, será que faz sentido a nossa segurança hoje? Será que nós estamos realmente pensando nesses gaps ou nessas tecnologias que estão sendo imputadas dentro do meio, seja no cliente? né,
normalmente por um fornecedor ou até mesmo pela concessão. Eh, será que a gente tá olhando para isso? Será que nós temos tecnologia para detectar isso? A princípio, todas as tecnologias convencionais para poder analisar esse tipo de tráfego estavam nessas empresas, tá? Então, nós injetamos pelo de todas as formas, né? Eh, não fomos detectados. E bom, é isso. Eu quero deixar aberto para perguntas e respostas agora. Wesley, parabéns, primeiramente pela Wesley, primeiramente, parabéns pela palestra, top demais trazer esse assunto que é tá sendo bem emergente aí, principalmente na eu que sou entusiasta de hardware hacking, é um bagulho que tá crescendo para caramba. Se na época tivesse vingado a internet pela energia elétrica, boa parte disso daí já não
estaria resolvido? Provavelmente, né? Que aí estaremos olhando para isso, né? estaremos olhando mais pro eh talvez teriam mais pesquisa ou mais pessoas trabalhando em cima, né? Eh, e agora, tipo assim, a gente tá caindo no bolo, tudo funcionando, a gente precisa estar trabalhando em cima dos problemas que estão já instalados nos clientes ou nas tecnologias. Aí, lembrando que assim, já tá instalado há muito tempo, a gente só tá achando agora, né? Tá nascendo agora. Show. Obrigado. Tá, mais alguém? Show. Valeu. [Aplausos] Tem mais uma pergunta ali. Já vai, já tá indo lá.
Oi, oi, oi. Tá escutando por aí? Tu durante esse projeto ou os projetos envolvendo os medidor, tu viu alguma coisa de DLMS? DLMS. Não, não tô lembrado de ter visto isso. Tá, mas a DMS, essas redes novas estão surgindo, sim. Temos publicações recentes, inclusive quanto a isso, com dispositivos Nvidia que estão trabalhando dentro desse ambiente para poder conceder máquina virtual, né, e renderização de interface. Eh, a gente inclusive publicou um CV recente neles.
Mais alguma? Beleza. Obrigado pessoal e foi isso. Valeu, [Aplausos]
S. Obrigado, hein, Wesley. Agora pra palestra de exercícios de Red Team. Não simule ameaça, seja ameaça. Vou chamar aqui Oliveira Lima.