Одна из презентаций на недавно прошедшей конференции BlackHat была посвящена уязвимостям в SDK Codesys. Уязвимости нашли специалисты компании Microsoft, а история их обнаружения подробно изложена в этой публикации. Codesys — это среда разработки для систем промышленной автоматизации, а именно для работы с программируемыми логическими контроллерами (PLC). Специалисты Microsoft показали практическую эксплуатацию проблемы в двух контроллерах производства Schneider Electric и WAGO, но так как уязвимости были найдены именно в SDK, скорее всего, им подвержены все устройства, использующие данную среду разработки, — а это несколько сотен наименований.



Всего специалисты нашли 15 уязвимостей в пяти разных компонентах SDK, реализующих коммуникацию по сети с использованием проприетарного протокола Codesys V3. При этом все уязвимости имеют одну и ту же причину: некорректная обработка так называемых меток данных для маркировки пересылаемых пакетов. При наихудшем сценарии отправка модифицированного пакета данных на уязвимый контроллер PLC может приводить либо к выполнению произвольного кода и перехвату контроля, либо к отказу в обслуживании.

Ошибка, найденная в коде, относится к классической уязвимости типа «переполнение буфера». В определенный момент содержимое меток копируется в буфер оперативной памяти, причем без предварительной проверки размера тега. Авторы исследования смогли создать условия, при которых запись происходит в область памяти, предназначенную для исполняемого кода. Кроме того, в процессе им удалось обойти системы Data Execution Prevention и ASLR. Одну и ту же уязвимую процедуру они обнаружили в коде SDK 15 раз — отсюда и 15 уязвимостей. «До конца» удалось протестировать только две уязвимости в конкретных компонентах: одна из них приводит к отказу в обслуживании, другая — к выполнению произвольного кода.

Для создания практического эксплойта исследователям пришлось задействовать еще одну, довольно старую уязвимость в Codesys, известную как CVE-2019-9013. Она позволяет перехватить учетные данные для авторизации на контроллере, так как при их передаче используется неэффективное шифрование. Сначала атакующий крадет учетные данные, затем авторизуется на контроллере и уже после этого отправляет вредоносные пакеты данных.

Microsoft отправила информацию об уязвимостях разработчику SDK еще в сентябре прошлого года, но тот закрыл их только в апреле. Но так как речь идет об SDK, распространение патча непосредственно на уязвимые контроллеры займет достаточно много времени.

Что еще произошло:

В Юго-Восточной Азии зафиксировано распространение вредоносной программы, подписанной сертификатом разработчика VPN-клиента Ivacy VPN.

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

Разработчики браузера Google Chrome планируют предупреждать пользователей о том, что у них установлено вредоносное расширение.

На конференции Def Con анонимный посетитель пытался атаковать владельцев iPhone, рассылая приглашения для подключения к устройству Apple TV. Пока не совсем понятно, считать ли эту возможность уязвимостью, — то есть, если согласиться на подключение, будут ли переданы атакующему какие-либо приватные данные. Но у рассылки таких приглашений (по факту — пакетов данных по протоколу Bluetooth) есть одна интересная особенность: они принимаются, даже если Bluetooth выключен в так называемом Control Center. Деактивация Bluetooth в этом меню, таким образом, не выключает беспроводной модуль до конца. Для этого нужно деактивировать Bluetooth в соответствующем разделе настроек телефона.

Еще одна интересная презентация на конференции BlackHat рассказывает о методе шифрования файлов исключительно с помощью клиента OneDrive. Для успешной атаки необходимо сперва получить доступ к учетной записи OneDrive. Затем можно зашифровать файлы, удалить незашифрованные копии и, например, потребовать выкуп.

Комментарии (3)


  1. NutsUnderline
    22.08.2023 07:04

    Овен, Fastwell, Regul,, еще некоторые .. по идее должны готовить обновление прошивки

    Но общие рекомендации более простые: не светить сеть промышленного оборудования в интернет вообще


  1. danilbal
    22.08.2023 07:04

    Так уязвимость же не в прошивке, в среде разработки. Что-то не так компилирует, видимо, подробностей нет.

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


    1. NutsUnderline
      22.08.2023 07:04

      а это надо по ссылочкам походить, почитать будут и подробности и рекомендации эти. там довольно обычный buffer overflow за счет протокола, протокол обрабатывается прошивкой, а не рантаймом