/ Как лучшие СTF’еры из Польши хакнули поезд

Как лучшие СTF’еры из Польши хакнули поезд

Сегодня безопасность автоматизированных систем усправления тесно связана с безопасностью и бесперебойным функционированием объектов в физическом мире. Читайте в нашей новой статье о том, какие "сюрпризы" могут обнаружиться в коде АСУ, и как лучшие СTF’еры из Польши хакнули поезд, исправили ошибки в системе и тем самым избавили компанию-подрядчика от разорения.

поезд.png

Подробности инцидента были представлены на пресс-конференции Oh My H@ck 5декабря 2023 года членами команды Dragon Sector С. Базаньским и М. Ковальчиком, а также Я. Степневичем, специалистом, имеющим опыт в промышленной автоматизации.

Итак, что произошло?

Один из одиннадцати поездов Impuls от компании Newag, эксплуатируемых Нижнеселезскими железными дорогами Польши, внезапно сломался во время техобслуживания. Механизмы поезда оставались в полном порядке, однако запустить его никак не удавалось.
Обслуживающая поезд компания Serwis Pojazdow Szynowych (SPS) по имеющейся инструкции разбирает поезд на части, отправляет детали отдельным производителям, снова собирает поезд и пытается его запустить. Однако после сборки поезд больше не двигается. Инженеры снова и снова изучают многотысячные страницы инструкции, проверяют-сверяют цифры, но так и не находят причину поломки.

Что дальше?

Тем временем подходит очередь второго поезда проходить техобслуживание. И его постигает та же участь. Теперь в депо 2 неработающих состава. Третий поезд пропускает проверку по техническим причинам, а вместо него на сервис отправляется четвертый поезд, с помощью которого компания пытается отбуксировать 2 имеющихся нерабочих состава.

Но происходит что-то невообразимое. Как только специалисты подключают неработающие поезда к четвертому, он также обездвиживается.

SPS имеет несколько подразделений по стране. Так что некоторые поезда данной серии отправляются на обслуживание в другие мастерские. И там уже перестают работать таким же загадочным способом.

Итого 6 поездов Нижней Селезии выведены из строя. А на железных дорогах начинается настоящий коллапс – переполненные поезда и толпы возмущенных граждан.

Рост напряжения

Растет напряжение и в самой SPS. Ведь день простоя поезда в мастерской обходится компании в несколько тысяч злотых штрафа, а ЖД станция собирается растроргнуть с ней контракт на обслуживание поездов по причине невыполнения условий сервиса. Newag отмахивается от проблемы, объясняя поломку блокировкой поездов системой безопасности, при этом специалисты SPS в действующей инструкции не могут найти ничего внятного по этому поводу.

И тогда руководство SPS решается на отчаянный шаг. Они зовут на помощь команду хакеров-CTF’еров, задачей которых становится поиск ошибок в коде системы управления поездом.

Поверить в происходящее сложно – стороны подписывают договор на взлом поезда. Над проектом будет трудиться троица хакеров Я. Степневич, М. Ковальчик и С. Базаньский.

Что удалось обнаружить хакерам?

После месяцев сложного детального анализа кода удалось обнаружить следующие сюрпризы от разработчика:

  • В программном коде поездов Newag были найдены координаты GPS, указывающие на окрестности расположения одного из сервисов для обслуживания поездов – PESA. Затем в коде были обнаружены координаты и других сервисных служб для ремонта и проверки поездов. SPS в этот список не входит.

  • Исследовали нашли еще 1 нюанс, не прописанный в инструкции – при простое в депо более 10 дней система должна заблокировать запуск поезда.

  • Система безопасности поезда должна заблокировать его запуск при замене одного из его компонентов.

  • Блокировку можно снять простой комбинацией клавиш на экране бортового компьютера.

  • В одном из поездов обнаружен код, предписывающий ему «ломаться» после прохождения 1 млн километров.

Были еще некоторые сюрпризы, предписывающие, например, выдавать неисправность компрессора при соблюдении определенных условий. Условие это выглядело так:

  1. если день больше или равен 21;

  2. если месяц больше или равен 11;

  3. если год больше или равен 21.

И с этим условием также произошла забавная история. По задумке разработчика поезд должен был пройти техобслуживание в ноябре 2021 года. Тогда же по всей видимости, обслуживающая компании должна была получить сигнал о необходимости замены компрессора. Однако условия не сработали, так как поезд случайным образом был обслужен ранее запланированного срока, а затем вновь запущен лишь в январе 2022 года.

Системная ошибка или случайность?

Как оказалось, эта же участь постигла и другие ЖД станции, эксплуатирующие поезда Newag Impuls. Все они ломались после наступлении вышеописанных событий.

Ошибки удалось исправить путем снятия программных блокировок с бортового компьютера.

Итого исследователи проанализировали программный код на 29 поездах. И только в 5ти из них не было обнаружено никаких ошибок.

Что это было? Безграмотность разработчиков, заложенные условия с целью генерации наступления определённых событий, как то обслуживание поездов определенным сервисом, внеплановая замена деталей и только на определенные компоненты определенных производителей и т.д.) или простое совпадение судите сами.

Ну, а пока компании будут заниматься судебными тяжбами и выяснять, кто будет оплачивать простой работы и потерю репутации.

7 декабря 2023
Поделиться
Задать вопрос
Регистрация
Заказать пилот
Заказать специальное предложение