
Este año, el programa de competencia Positive Hack Days se ha reabastecido con la competencia para piratear elementos del sistema de red inteligente:
MeterH3cker . Los participantes tenían a su disposición una maqueta de dos casas, según lo concebido por los organizadores, los paneles solares suministraban electricidad a las casas, y la energía excedente que se generaba podía venderse a la red eléctrica general a una tarifa especial. La tarea de los atacantes era interrumpir el proceso normal de medición de electricidad y afectar el saldo de caja en el sistema de facturación por cualquier medio posible.
Pararse
Stand MeterH3ckerLas casas modernas equipadas con paneles solares pueden consumir electricidad y devolver el exceso de generación a la red. Este modelo formó la base de la cabina MeterH3cker.
El stand era un modelo de dos edificios residenciales modernos con equipos reales, que implementaron elementos de tecnología de red inteligente. En cada casa, se instalaron controladores solares, medidores de electricidad inteligentes y consumidores de energía. Ambas casas estaban conectadas a un modelo de subestación eléctrica en la que se instaló un dispositivo de transmisión y recolección de datos (DTD); entrevistó los medidores y el medidor de subestación.
Además, cada casa estaba equipada con un sistema de calefacción y aire acondicionado, que estaba bajo el control general de un controlador disponible en la red general del stand. Además, cerca de las casas inteligentes, se instaló una estación de carga real para vehículos eléctricos, que transmitió a la USPD indicaciones de su consumo de electricidad para el vehículo eléctrico conectado.
Establecimos los escenarios de día y de noche. En el modo "día", los paneles solares en las casas generaban electricidad, y sus contadores giraban en la dirección opuesta y tomaban en cuenta la energía "consumida" y "dada". Cada casa tenía su propia cuenta personal, cuyo saldo aumentó durante la generación de energía y disminuyó durante el consumo, y las tarifas configuradas en los medidores también influyeron en los valores.
La tarea principal de los participantes del concurso era aumentar el saldo de la cuenta personal de las casas atacando el equipo del stand, y así obtener beneficios financieros directos de sus acciones de piratas informáticos.
Para visualizar los resultados, escribimos nuestro propio servidor de facturación, que recopilaba datos de USPD. El propio USPD, a su vez, interrogó a los contadores de varias maneras:
- mostrador en la casa No. 1 - de acuerdo con el protocolo abierto de tipo Modbus del vendedor;
- el dispositivo VR-007.3 interrogó al mostrador de la casa No. 2 utilizando el protocolo abierto tipo Modbus del proveedor, y luego el USPD recibió datos del servidor web VR-007.3 a través de HTTP;
- medidor de subestación - de acuerdo con el protocolo Modbus TCP.
Para obtener valores reales de consumo de energía, los medidores de referencia que no estaban disponibles para los atacantes se conectaron a los mismos circuitos de corriente y voltaje que los medidores atacados. El servidor de facturación los encuestó directamente a través de la interfaz RS-485.
Para permitir a los visitantes del foro observar lo que estaba sucediendo, se instaló un gran monitor cerca del stand, en el que se mostraban gráficos de consumo de electricidad en tiempo real. El gráfico azul marcaba las lecturas de la USPD. Cambiaron dependiendo de las acciones de los atacantes. El gráfico verde mostró lecturas reales de la generación y el consumo de electricidad recopilados de medidores de referencia.
Visualización de los valores actuales de cada vivienda: saldo de cuenta personal, energía consumida y entregada a la red, tarifaUn portal interno para los participantes del concurso también estaba disponible en la red del stand. Allí, se mostraron los valores actuales de los gráficos, una sección con una descripción de cada elemento del stand; Las reglas del concurso fueron publicadas allí y de vez en cuando aparecían consejos.
Portal internoTérminos de participación
La competencia se llevó a cabo durante dos días. El primer día hubo competiciones clasificatorias. Al conectarse a la red de stands, cada participante tuvo acceso a todos los equipos de dos casas, una subestación y una estación de carga. Los participantes tuvieron la oportunidad de estudiar equipos, encontrar vulnerabilidades y posibles vectores de ataque. Durante el día, periódicamente se agregaron nuevos consejos al portal interno de la competencia, lo que permitió a los participantes detectar debilidades en el equipo del stand. Los participantes que alcanzaron el éxito en el stand el primer día fueron invitados a participar en el torneo final el segundo día.
La final fue una especie de duelo. Dos participantes fueron invitados al stand, cada uno de los cuales tenía su propia casa. Su tarea es engañar a los contadores por cualquier medio durante una ronda de diez minutos y generar más energía que el enemigo: un vecino condicional. El ganador fue el que tenía un mayor saldo de cuenta personal al final de la competencia. Al mismo tiempo, la tarea se complicó por el hecho de que los participantes tenían acceso al equipo de los demás, lo que significa que podrían dañar a su vecino y subestimar sus resultados.
Día uno: ronda clasificatoria
Había muchas personas que querían probar suerte en piratear equipos. Tenga en cuenta que algunos de ellos estaban seriamente preparados para la competencia y tenían el software necesario con ellos. Entre ellos se encontraban participantes de Japón, quienes desde las primeras horas de la competencia estudiaron cuidadosamente el stand, lo que les permitió lograr resultados significativos en el segundo día.
Una gran sorpresa para nosotros fue la participación de un entusiasta de la piratería de 12 años: a pesar de su edad, pudo navegar por el equipo presentado y mostró varios ataques.
ConcursantesObtuvimos los primeros resultados a mitad del día: los investigadores japoneses unieron fuerzas para tomar el control de la estación de carga de automóviles eléctricos y dejaron de cargar el automóvil eléctrico enviando comandos de control a través de una interfaz web. Un poco más tarde, pudieron obtener la contraseña del administrador del controlador solar y apagar la generación de electricidad.
El joven hacker tampoco se quedó atrás de los adultos: aprendió a provocar un reinicio continuo del USPD, implementando así un ataque de denegación de servicio e interrumpió la encuesta de los contadores.
Hacia la noche, uno de los miembros del grupo japonés logró serias desviaciones entre los valores de energía en la referencia y los contadores atacados, aumentando considerablemente el valor del conteo. Y su colega descubrió una vulnerabilidad en la interfaz web del contador de la subestación, que permitió leer el contenido de los archivos de la tarjeta flash del dispositivo, uno de los cuales contenía un hash de contraseña de administrador. Por lo tanto, después de seleccionar con éxito una contraseña, obtuvo acceso a los parámetros del contador.
Una hora antes del final de la ronda de clasificación, un participante llamado Oleg se unió al stand. A pesar de que le quedaba poco tiempo, logró llevar a cabo un ataque exitoso y entrar en el torneo, que se celebró al día siguiente.
Como resultado, al final del día, todos los participantes podrían cambiar las lecturas de energía en todos los medidores eléctricos disponibles y controlar varios elementos del soporte: controladores, una estación de carga.
Resultados de los ataques de los participantes contra los mostradores. El gráfico inferior derecho muestra que el coeficiente de transformación del contador ha cambiado, y el gráfico inferior izquierdo muestra que se realizó con éxito un ataque de denegación de servicio en el contador -4Día dos: torneo y final
Con base en los resultados de los informes enviados por los participantes al final del primer día, seleccionamos a siete participantes que pudieron encontrar y explotar vulnerabilidades en el equipo del stand.
Dado que el segundo día, los participantes durante las rondas podrían influir en las lecturas no solo de sus contadores, sino también del contador del vecino rival, cualquier negligencia podría acarrear graves consecuencias. Entonces, el participante Oleg, al realizar un ataque contra el equipo de un vecino, aumentó erróneamente el puntaje de su vecino, porque llevó a cabo el ataque en el momento de la generación, y luego no logró "torcerlo" en la otra dirección durante el tiempo restante de la ronda. En las peleas posteriores, los participantes tomaron en cuenta esta triste experiencia y actuaron de manera competente, por ejemplo, establecieron los valores máximos de los coeficientes de su contador durante el período de generación (modo "día") y los mínimos durante el período de consumo (modo "noche").
PosicionesUna batalla seria se desarrolló en la final de la competencia. Al comienzo de la ronda, la ventaja fue para Satoru Takeksoshi, quien en los primeros minutos pudo llevar a cabo con éxito el ataque y aumentar considerablemente el saldo de su cuenta. El segundo participante, Alexey Kuznetsov, también pudo realizar un ataque al comienzo de la ronda y aumentar el saldo de su cuenta, pero en una cantidad mucho menor. La brecha en las lecturas de energía generada fue de 25 GW · h contra 5 GW · h. Durante la mayor parte de la ronda, el puntaje no ha cambiado. Probablemente, para no repetir la triste experiencia de los primeros participantes que atacaron en el momento equivocado, Alex se comportó con cautela y monitoreó el cambio de regímenes. En la segunda mitad de la ronda, logró realizar un ataque exitoso en el medidor de la subestación eléctrica y hacer que la separación del vecino sea mínima, pero el puntaje total aún no le permitió ganar. En los últimos segundos, Alex volvió a atacar su contador y aumentó con éxito su testimonio, lo que le permitió arrebatarle la victoria al líder. Por lo tanto, Alexey ganó, aumentando su saldo a 92 mil millones. e., y dado su exitoso ataque al medidor de la subestación eléctrica, su puntaje total le permitió ganar incondicionalmente.
El estado de las cuentas personales en los últimos segundos después del ataque final.Resumen
Entonces, los ganadores: el primer lugar fue ocupado por Alexei Kuznetsov, el segundo lugar fue para Satoru Takekoshi, Nikita Stupin cerró los tres primeros. El premio especial, por el 4to lugar, fue recibido por el joven cracker Yuri Grishin.
Durante la competencia (especialmente en el torneo final) se demostraron ataques completamente diferentes. La mayoría de los participantes intentaron realizar ataques a las lecturas de energía tomadas de los medidores, aumentar la producción de energía en el momento de la generación y reducirla en el momento del consumo. Además, en algunas rondas, los competidores atacaron con éxito la estación de carga para el automóvil eléctrico y el controlador solar.
Sin embargo, ninguno de los participantes pudo realizar ataques exitosos contra USPD y reemplazar los datos recopilados directamente en él. Potencialmente, estos ataques podrían llevar a un control completo de los datos transmitidos al centro de facturación y aumentar su cuenta por un valor arbitrario. Durante los dos días, registramos solo uno de esos intentos de ataque, que, aparentemente, terminó en fracaso.
Además, nadie atacó el controlador que controla el sistema de calefacción y aire acondicionado. Se suponía que el atacante se conectaría al dispositivo y podría controlar el equipo utilizando las señales de control existentes. La principal dificultad para los atacantes fue comparar los puertos abiertos y el nombre del equipo, por ejemplo, para solicitar información utilizando el protocolo FOX. No fue necesario utilizar software especializado para atacar este equipo. La sugerencia tampoco ayudó, porque los atacantes no la usaron, y todo lo que se necesitaba era reemplazar el encabezado User-Agent en su navegador para una conexión exitosa.
De otras observaciones. Durante la competencia, los concursantes hicieron muchas preguntas aclaratorias sobre la estructura y el funcionamiento del stand, así como sobre los dispositivos disponibles. Esto puede explicarse por el hecho de que, además de la tarea de "romper" los dispositivos, era necesario descubrir qué hace cada uno de ellos y cómo explotar sus vulnerabilidades para obtener ganancias.
La altura del primer díaNos complació que, aunque nuestra competencia es una recién llegada al foro, vinieron muchos espectadores que no iban a participar, pero estaban interesados en el trabajo del stand, los éxitos de los concursantes. ¡Otomanas gratis frente al stand terminaron rápidamente!
Otro hecho interesante está asociado con los participantes de Japón. El portal interno de la competencia y la documentación de los dispositivos de los fabricantes nacionales estaban en ruso, sin embargo, esto no se convirtió en un obstáculo para el equipo japonés: había suficientes habilidades prácticas para demostrar una serie de ataques exitosos. Sin embargo, después de la competencia, admitieron que, sin embargo, les causó pequeños inconvenientes.
En general, la competencia demostró que en menos de dos días es muy posible comprender los sistemas modernos de medición de electricidad y llevar a cabo ataques exitosos contra ellos.
Análisis de otros concursos Positive Hack Days 8: