27 января 2021

От переполнения буфера к сбою наладки распределительного щита: уязвимости в ПО систем управления эксплуатацией зданий от Schneider Electric

Две уязвимости CVE-2021-22697 и CVE-2021-22698 с одинаковым присвоенным рейтингом 7.8 по CVSS 3.0 обнаружены в продукте EcoStruxure Power Build — Rapsody от Schneider Electric.

Продукт предназначен для конфигурирования и расчета стоимости низковольтных распределительных систем. Продукт применяется в составе систем управления эксплуатацией зданий (building operation) и не рассчитан на применение в системах критических инфраструктур.

Первая уязвимость, CVE-2021-22697, возникает вследствие ошибки use-after-free (использование ресурса после его очистки). При соблюдении некоторых условий такие ошибки могут привести к запуску произвольного кода в контексте приложения. Вторая уязвимость, CVE-2021-22698, возникает вследствие ошибки переполнения буфера в стеке, что также может привести к выполнению произвольного кода.

Опасность этих двух уязвимостей заключается в том, что их эксплуатация дает возможность неограниченной загрузки файлов, в том числе вредоносных файлов SSD (system specification description).

Файл SSD содержит спецификацию электротехнической установки, включая однолинейную схему установки, функции и связи с логическими узлами, такими как IED (интеллектуальные электронные устройства), HMI (устройства человеко-машинного интерфейса), шлюзы и проч. Эта спецификация анализируется совместно с описанием IED устройств в файлах ICD (IED Capability Description). На основании файлов этих двух типов конфигуратор системы выполняет назначение логических узлов на конкретные устройства и генерирует файл SCD (Substation Configuration Description). Файл SCD содержит конфигурацию и настройки всех интеллектуальных устройств, установленных на подстанции.

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

Schneider Electric последние пару месяцев активно выпускает уведомления об уязвимостях продуктов EcoStruxure, в том числе ПО SCADA для телеметрии EcoStruxure™ Geo SCADA Expert, системах HMI EcoStruxure™ Operator Terminal Expert и Pro-face BLUE для ОС Windows. Предыдущее уведомление об уязвимостях для продуктов EcoStruxure Building Operation выпущено в ноябре 2020 года. Это свидетельствует о работе над безопасностью продуктов, объединенных этим брендом.

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

Первую как уязвимость класса CWE-434: Unrestricted Upload of File with Dangerous Type vulnerability exists that could allow a use-after-free condition which could result in remote code execution when a malicious SSD file is uploaded and improperly parsed.

Вторую — как уязвимость того же класса: Unrestricted Upload of File with Dangerous Type vulnerability exists that could allow a stack-based buffer overflow to occur which could result in remote code execution when a malicious SSD file is uploaded and improperly parsed.

Из этого описания создается впечатление, что именно загрузка вредоносного файла SSD является исходным действием нарушителя. Однако неочевидно, как использование ресурса после очистки и переполнение буфера могут быть последствиями загрузки SSD файла. На наш взгляд, классификация ошибки CWE-434 не вполне подходит для описания этих уязвимостей. Вероятно, стоило использовать CWE-416 (Use After Free) и CWE-121 (Stack-based Buffer Overflow) для первой и второй из описанных уязвимостей соответственно. Возможность же загрузки произвольного файла является не первичной уязвимостью, а возможным последствием эксплуатации уязвимостей указанных типов, обусловленным назначением продукта. Правильное и точное описание уязвимостей необходимо для выбора верной стратегии борьбы с ними.

Дата публикации информации об уязвимости: 12 января 2021 года.

Источники: Schneider Electric, Kaspersky ICS CERT

Авторы
  • Руководитель группы аналитиков по информационной безопасности, Kaspersky ICS CERT