На PHDays студенты нашли уязвимости в АСУ ТП

На PHDays студенты нашли уязвимости в АСУ ТП

Студент первого курса Северо-Кавказского федерального университета Михаил Елизаров (г. Невинномысск, Ставропольский край) и студент из Минска Арсений Левшин стали победителями конкурса по анализу защищенности АСУ ТП, который проходил во время международного форума Positive Hack Days III.

АСУ ТП используются для управления объектами в сферах энергетики, транспорта и многих других. К примеру, такие системы устанавливаются на атомных электростанциях и скоростных электропоездах. Нарушение работоспособности АСУ ТП может привести к серьезным сбоям и значительному ущербу, однако разработчики таких систем все еще уделяют недостаточно внимания защищенности своих продуктов, что и было доказано результатами конкурса.

В ходе соревнования под названием Choo Choo Pwn участники должны были найти и воспользоваться уязвимостями промышленного оборудования, отвечающего за управление и автоматизацию технологических процессов. Цель соревнования — получить доступ к системе управления моделью железной дороги и погрузки контейнеров, а также, в качестве дополнительного задания, нарушить работоспособность автоматического железнодорожного переезда

Конкурс состоял из нескольких этапов. На первом этапе участникам необходимо было получить контроль над краном для погрузки контейнеров, система управления которым была реализована с использованием продуктов фирмы Siemens (Simatic WinCC flexible 2008) и ICP DAS (устройство удаленного ввода-вывода), работающих на протоколе Modbus TCP.

Получить доступ и захватить управление краном специалистам по безопасности удалось уже буквально через час после начала соревнования. В целом же выполнить задание удалось практически всем участникам конкурса. Возникали ситуации, когда за контроль над краном, мешая друг другу, боролись сразу несколько конкурсантов, что приводило в том числе и к отказам в работе оборудования.

На втором этапе соревнования участникам нужно было получить доступ к системе управления моделью железной дороги, которая контролировалась с использованием продуктов компании Siemens (WinCC SP2) и контроллером S7-1200 v3.0 (протоколы S7 и PROFINET).

Это задание оказалось более сложным, однако уже к концу первого дня была найдена уязвимость, с помощью которой конкурсанты смогли добраться до управления веб-интерфейсом SCADA-системы, а в дальнейшем получить и полный доступ.

К концу второго дня форума система управления железной дорогой практически не функционировала, так как промышленные контроллеры и машины со SCADA-системами постоянно находились под атаками специалистов по информационной безопасности, принявших участие в конкурсе.

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

Третий этап многие участники просто не успели пройти из-за нехватки времени, однако несколько попыток использования различных утилит и спуфинга SCADA-системы все же были предприняты. В результате функционирование системы периодически нарушалось, но она быстро возвращалась в рабочий режим. Отметим, что на данном этапе соревнования участникам необходимо было анализировать защищенность SCADA-системы Invensys Wonderware InTouch 10.6, OPC-сервера KEPServerEX и промышленного контроллера Rockwell Automation RSLogix 1400 (протокол DNP3).

Разработкой модели железной дороги и АСУ ТП, представленных на соревновании, занимались эксперты по информационной безопасности Positive Technologies Илья Карпов, Глеб Грицай, Александр Тиморин, Дмитрий Ефанов и Роман Ильин.

Михаил Елизаров рассказал о ходе выполнения задания: «Сначала мы пытались получить контроль над системой погрузки контейнеров, которая работала на протоколе Modbus. Нам удалось найти в сети программу, которая эмулировала работу этого протокола, что помогло подобрать управляющие биты и передать его системе, получив управление над краном для погрузки. Мы успели обнаружить уязвимости не во всех представленных на конкурсе протоколах: нам просто не хватило времени».

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

«Честно сказать, это был мой первый опыт работы с промышленными протоколами. На конкурсе была представлена вполне серьезная эмуляция SCADA, так что поучаствовать в соревновании по анализу защищенности системы было очень интересно», — сказал Арсений Левшин.

«После появления Stuxnet и целенаправленных атак на АСУ ТП защита промышленных систем стала горячей темой для публикаций, конференций и исследований. С другой стороны, во многом это направление является terra incognita и требует серьезных инвестиций. Подобные конкурсы помогают наглядно продемонстрировать насколько низок текущий уровень безопасности критически важных объектов информационной инфраструктуры», — прокомментировал результаты соревнования заместитель генерального директора Positive Technologies Сергей Гордейчик.

Отметим, что Михаил Елизаров также победил в конкурсе по взлому банкомата Leave ATM Alone, который проходил во время форума.

Победители получили призы от организаторов PHDays, компании Positive Technologies, — и от спонсоров мероприятия.

Зачем Яндекс Go создал отдельный язык для расчёта стоимости поездок

Цена поездки в Яндекс Go — это не расстояние, умноженное на минуты и километры. В расчёт вмешиваются геозоны, спрос, скидки, платные дороги, дополнительные остановки и требования вроде перевозки кота, велосипеда или лыж. Чтобы управлять этим хозяйством без бесконечных деплоев, разработчики вынесли алгоритм ценообразования из кода сервиса в собственный язык.

Как объяснили разработчики в статье на Хабре, прайсинг работает не только при заказе машины.

Он пересчитывает стоимость при смене маршрута или способа оплаты, завершении поездки, обращении в поддержку и проверке данных аналитиками. Цена при этом может быть фиксированной, интервальной или считаться по таксометру.

 

Сначала сервисы параллельно собирают параметры поездки: тарифную категорию, геозоны, скидки, повышенный спрос и дополнительные услуги. Зависимости между источниками выстраиваются в граф, а запросы выполняются асинхронно на базе userver. Если некритичный источник не ответил, весь расчёт не падает.

 

Сам алгоритм раньше можно было бы держать в C++, но он меняется в среднем дважды в неделю. Выкатка сервиса на 50 подов занимает около 40 минут, а лес динамических конфигов быстро превратил бы код в музей условных операторов.

Поэтому Яндекс разработал собственный DSL. В нём есть условия, функции, неизменяемые значения и fold вместо циклов. Правила собираются в последовательную цепочку: каждое преобразование получает текущую цену и параметры, а возвращает новый результат с метаданными. Грамматику описали через ANTLR 4, а верификатор Z3 проверяет, что программа не выдаст некорректную цену.

 

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

 

В итоге прайсинг превратился в отдельную платформу, которой уже пользуются Такси, Доставка и сервис зарядки электромобилей.

RSS: Новости на портале Anti-Malware.ru