Hacking medidores inteligentes no PHDays 8: análise do concurso MeterH3cker

imagem

Este ano, o programa de competição Positive Hack Days foi reabastecido com a competição por elementos de hackers do sistema de rede inteligente - MeterH3cker . Os participantes tinham à sua disposição um modelo de duas casas, conforme concebido pelos organizadores, painéis solares forneciam eletricidade para as casas e a energia excedente que podia ser gerada podia ser vendida à rede elétrica em geral a uma taxa especial. A tarefa dos atacantes era interromper o processo normal de medição de eletricidade e afetar o saldo de caixa no sistema de cobrança por qualquer meio possível.

Suporte


imagem

Medidor de suporte

Casas modernas equipadas com painéis solares podem consumir eletricidade e devolver geração em excesso à rede. Este modelo formou a base do estande MeterH3cker.

O estande era um modelo de dois edifícios residenciais modernos com equipamentos reais, que implementavam elementos da tecnologia de rede inteligente. Em cada casa, foram instalados controladores solares, medidores inteligentes de eletricidade e consumidores de energia. Ambas as casas estavam conectadas a um modelo de uma subestação elétrica na qual um dispositivo de coleta e transmissão de dados (DTD) estava instalado; entrevistou os medidores e o medidor da subestação.

Além disso, cada casa estava equipada com um sistema de aquecimento e ar condicionado, que estava sob o controle geral de um controlador disponível na rede geral do estande. Além disso, perto das casas inteligentes, foi instalada uma estação de carregamento real para veículos elétricos, que transmitia ao USPD indicações de seu consumo de eletricidade para o veículo elétrico conectado.

Estabelecemos os cenários de dia e noite. No modo "dia", os painéis solares nas casas geravam eletricidade, e seus contadores giravam na direção oposta e levavam em conta a energia "consumida" e "fornecida". Cada casa tinha sua própria conta pessoal, cujo saldo aumentou durante a geração de energia e diminuiu durante o consumo, e as tarifas configuradas nos medidores também influenciaram os valores.

A principal tarefa dos participantes do concurso era aumentar o saldo da conta pessoal das casas, atacando o equipamento do estande e, assim, obter benefícios financeiros diretos de suas ações de hackers.

Para visualizar os resultados, escrevemos nosso próprio servidor de cobrança, que coletava dados do USPD. O próprio USPD, por sua vez, interrogou os contadores de várias maneiras:

  1. balcão interno nº 1 - de acordo com o protocolo Modbus do fornecedor aberto;
  2. o contador da casa n ° 2 foi interrogado pelo dispositivo VR-007.3 usando o protocolo Modbus de fornecedor aberto e, em seguida, o USPD recebeu dados do servidor da web VR-007.3 via HTTP;
  3. medidor de subestação - de acordo com o protocolo Modbus TCP.

Para obter valores reais de consumo de energia, os medidores de referência que não estavam disponíveis para os atacantes foram conectados aos mesmos circuitos de corrente e tensão dos medidores atacados. O servidor de cobrança os pesquisou diretamente por meio da interface RS-485.

Para permitir que os visitantes do fórum observassem o que estava acontecendo, um grande monitor foi instalado próximo ao estande, no qual os gráficos de consumo de eletricidade eram exibidos em tempo real. O gráfico azul marcou as leituras do USPD. Eles mudaram dependendo das ações dos atacantes. O gráfico verde mostrou leituras reais de geração e consumo de eletricidade coletados nos medidores de referência.

imagem

Exibição dos valores atuais de cada casa: saldo da conta pessoal, energia consumida e entregue à rede, tarifa

Um portal interno para os participantes do concurso também estava disponível na rede do estande. Lá, os valores atuais dos gráficos foram exibidos, uma seção com uma descrição de cada elemento do estande; as regras do concurso eram publicadas lá e, de tempos em tempos, apareciam dicas.

imagem

Portal interno

Termos de participação


A competição foi realizada por dois dias. No primeiro dia houve competições classificatórias. Ao se conectar à rede de estandes, cada participante teve acesso a todos os equipamentos de duas casas, uma subestação e uma estação de carregamento. Os participantes tiveram a oportunidade de estudar equipamentos, encontrar vulnerabilidades e possíveis vetores de ataque. Durante o dia, novas dicas foram adicionadas periodicamente ao portal interno da competição, permitindo que os participantes detectassem pontos fracos no equipamento do estande. Os participantes que obtiveram sucesso no estande no primeiro dia foram convidados a participar do torneio final no segundo dia.

A final foi uma espécie de duelo. Dois participantes foram convidados para o estande, cada um com sua própria casa. A tarefa deles é enganar os contadores por qualquer meio durante uma rodada de dez minutos e gerar mais energia que o inimigo - um vizinho condicional. O vencedor foi quem teve um saldo maior na conta pessoal no final da competição. Ao mesmo tempo, a tarefa foi complicada pelo fato de os participantes terem acesso ao equipamento um do outro, o que significa que eles poderiam prejudicar os vizinhos e subestimar seus resultados.

Primeiro Dia: Ronda de Qualificação


Havia muitas pessoas que queriam testar seus equipamentos de hackers. Observe que alguns deles estavam seriamente preparados para a competição e tinham o software necessário. Entre eles estavam os participantes do Japão, que desde as primeiras horas da competição estudaram cuidadosamente o estande, o que lhes permitiu alcançar resultados significativos no segundo dia.

Uma grande surpresa para nós foi a participação de um entusiasta de hackers de 12 anos: apesar de sua idade, ele foi capaz de navegar pelo equipamento apresentado e apresentou vários ataques.

imagem

Participantes

Obtivemos os primeiros resultados no meio do dia: pesquisadores japoneses uniram forças para assumir o controle da estação de carregamento de carros elétricos e pararam de carregar o carro elétrico enviando comandos de controle por meio de uma interface da web. Um pouco mais tarde, eles conseguiram pegar a senha do administrador do controlador solar e desligar a geração de eletricidade.

O jovem hacker também não ficou atrás dos adultos: ele aprendeu a causar uma reinicialização contínua do USPD, implementando um ataque de negação de serviço e interrompendo a pesquisa de contadores.

À noite, um dos membros do grupo japonês alcançou sérios desvios entre os valores de energia nos balcões de referência e atacados, aumentando bastante o valor da contagem. E seu colega descobriu uma vulnerabilidade na interface da web do contador da subestação, que permitia a leitura do conteúdo dos arquivos do cartão flash do dispositivo, um dos quais continha um hash de senha de administrador. Assim, após selecionar com êxito uma senha, ele obteve acesso aos parâmetros do contador.

Uma hora antes do final da rodada de qualificação, um participante chamado Oleg entrou no estande. Apesar de ter pouco tempo, ele conseguiu realizar um ataque bem-sucedido e entrar no torneio, que foi realizado no dia seguinte.

Como resultado, até o final do dia, todos os participantes poderiam alterar as leituras de energia em todos os medidores elétricos disponíveis e controlar vários elementos dos controladores de posição, uma estação de carregamento.

imagem

Resultados dos ataques dos participantes aos contadores. O gráfico inferior direito mostra que o coeficiente de transformação de contador foi alterado e o inferior esquerdo mostra que um ataque de negação de serviço foi realizado com êxito no contador -4

Dia Dois: Torneio e Final


Com base nos resultados dos relatórios enviados pelos participantes no final do primeiro dia, selecionamos sete participantes capazes de encontrar e explorar vulnerabilidades nos equipamentos do estande.

Como no segundo dia, os participantes durante as rodadas podem influenciar as leituras não apenas de seus contadores, mas também do contador do vizinho rival, qualquer negligência pode trazer sérias conseqüências. Assim, o participante Oleg, conduzindo um ataque ao equipamento de um vizinho, aumentou erroneamente a pontuação do vizinho, porque ele executou o ataque no momento da geração e, em seguida, não conseguiu "torcer" ele na outra direção pelo tempo restante da rodada. Nas brigas subseqüentes, os participantes levaram em conta essa triste experiência e agiram com competência, por exemplo, definiram os valores máximos dos coeficientes de seu contador durante o período de geração (modo "dia") e o mínimo durante o período de consumo (modo "noturno").

imagem

Classificação

Uma batalha séria se desenrolou na final da competição. No início da rodada, a vantagem era para Satoru Takeksoshi, que nos primeiros minutos foi capaz de realizar o ataque com sucesso e aumentar bastante o saldo de sua conta. O segundo participante - Alexey Kuznetsov - também foi capaz de realizar um ataque no início da rodada e aumentar o saldo de sua conta, mas em uma quantidade muito menor. A diferença nas leituras de energia gerada foi de 25 GW · h contra 5 GW · h. Na maior parte da rodada, a pontuação não mudou. Provavelmente, para não repetir a triste experiência dos primeiros participantes que atacaram na hora errada, Alex se comportou com cautela e acompanhou a mudança de regime. Na segunda metade da rodada, ele conseguiu realizar um ataque bem-sucedido ao medidor da subestação elétrica e tornar a separação do vizinho mínima, mas a pontuação total ainda não lhe permitiu vencer. Nos últimos segundos, Alex novamente atacou seu contador e aumentou com sucesso seu testemunho, o que lhe permitiu obter a vitória do líder. Assim, Alexey venceu, aumentando seu saldo para 92 bilhões. e., e dado seu ataque bem-sucedido ao medidor da subestação elétrica, sua pontuação total permitiu que ele vencesse incondicionalmente.

imagem

O estado das contas pessoais nos últimos segundos após o ataque final

Sumário


Assim, os vencedores: o primeiro lugar foi conquistado por Alexei Kuznetsov, o segundo lugar foi para Satoru Takekoshi, Nikita Stupin fechou os três primeiros. O prêmio especial, pelo 4º lugar, foi recebido pelo jovem cracker Yuri Grishin.

Durante a competição (especialmente no torneio final), ataques completamente diferentes foram demonstrados. A maioria dos participantes tentou realizar ataques às leituras de energia obtidas dos medidores, aumentar a produção de energia no momento da geração e reduzir no momento do consumo. Além disso, em algumas rodadas, os competidores atacaram com sucesso a estação de carregamento do carro elétrico e do controlador solar.

No entanto, nenhum dos participantes foi capaz de realizar ataques bem-sucedidos no USPD e substituir os dados coletados diretamente nele. Potencialmente, esses ataques podem levar ao controle completo dos dados transmitidos ao centro de cobrança e aumentar sua conta por um valor arbitrário. Nos dois dias, registramos apenas uma tentativa de ataque que, aparentemente, terminou em fracasso.

Além disso, ninguém atacou o controlador que controla o sistema de aquecimento e ar condicionado. Supunha-se que o invasor se conectasse ao dispositivo e pudesse controlar o equipamento usando os sinais de controle existentes. A principal dificuldade para os atacantes foi comparar as portas abertas e o nome do equipamento, por exemplo, solicitar informações usando o protocolo FOX. Não era necessário usar software especializado para atacar este equipamento. A dica também não ajudou, porque os atacantes não a usaram, e tudo o que era necessário era substituir o cabeçalho User-Agent no navegador para uma conexão bem-sucedida.

De outras observações. Durante a competição, os participantes fizeram muitas perguntas esclarecedoras sobre a estrutura e operação do estande, bem como sobre os dispositivos disponíveis. Isso pode ser explicado pelo fato de que, além da tarefa de "quebrar" os dispositivos, era necessário descobrir o que cada um deles faz e como explorar suas vulnerabilidades para obter lucro.

imagem

A altura do primeiro dia

Ficamos satisfeitos que, embora nossa competição seja uma novidade no fórum, muitos espectadores vieram que não estavam participando, mas estavam interessados ​​no trabalho do estande, no sucesso dos participantes. Os otomanos livres na frente do estande terminaram rapidamente!

Outro fato interessante está associado aos participantes do Japão. O portal interno da competição e a documentação dos dispositivos dos fabricantes nacionais estavam em russo, no entanto, isso não se tornou um obstáculo para a equipe japonesa - havia habilidades práticas suficientes para demonstrar uma série de ataques bem-sucedidos. No entanto, após a competição, eles admitiram que isso lhes causava um pequeno inconveniente.

Em geral, a competição mostrou que em menos de dois dias é bem possível entender os modernos sistemas de medição de eletricidade e realizar ataques bem-sucedidos.

Análise de outros concursos Positive Hack Days 8:


Source: https://habr.com/ru/post/pt414557/


All Articles