04 марта 2021

В реализациях протоколов OPC опять найдены критические уязвимости

В 2020 году команда исследователей Claroty проанализировала продукты нескольких вендоров, использующих семейство протоколов Open Platform Communications (OPC DA, AE, HDA, XML DA, DX и OPC UA), которые используются в качестве сторонних решений многими крупными производителями систем промышленной автоматизации, такими как Rockwell Automation и GE. Результаты анализа оказались неутешительными: решения на основе данных библиотек подвержены множественным уязвимостям, которые могут привести к отказам оборудования, удаленному выполнению кода и утечке критичных данных.

Claroty сообщает о трех производителях программных компонентов: Softing Industrial Automation GmbH, Kepware PTC и Matrikon Honeywell, которые выпустили для своих реализаций функций OPC исправления уязвимостей, связанные с переполнением буфера стека и кучи, считыванием данных за пределами выделенной памяти, некорректной обработкой исключений и неконтролируемым потреблением ресурсов.

1. Softing Industrial Automation GmbH

Softing Industrial Automation GmbH — поставщик решений для мониторинга и диагностики коммуникационных сетей. OPC Software Platform от Softing Industrial Automation представляет собой решение, которое обеспечивает взаимодействие между OPC UA и OPC Classic, а также реализует подключение к облачным ресурсам. Интегрированный сервер OPC UA Server предоставляет доступ к данным с ПЛК Siemens, Rockwell Automation, B&R Industrial Automation, Mitsubishi и другим ПЛК, поддерживающими обмен данными по протоколу Modbus.

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

Первая уязвимость (CVE-2020-14524) была обнаружена в библиотеке OPC DA XML Softing HTTP SOAP-сервера. Веб-сервер не ограничивает длину и не санатизирует (экранирует) значения в заголовке SOAP-сообщений. Использование слишком больших заголовков SOAP в конечном итоге приводит к исчерпанию ресурсов динамической памяти. Поскольку веб-сервер не проверяет результат операции выделения памяти, данные будут записаны в неинициализированную область, что приведет к сбою веб-сервера. Этой критической уязвимости присвоен рейтинг 9.8 согласно CVSS v3.1.

Вторая уязвимость (CVE-2020-14522) заключается в использовании недопустимого значения для некоторых параметров, что вызывает бесконечный цикл выделения памяти, и в итоге — чрезмерное потребление памяти и отказ в обслуживании.

2. Kepware PTC

Kepware является компанией-разработчиком коммуникационного программного обеспечения для предприятий промышленного производства, нефтегазовой отрасли, электроэнергетики, а также для систем автоматизации зданий. Решения Kepware используются в SCADA-системах для соединения с промышленными устройствами Allen Bradley, AutomationDirect, BACnet, DNP 3.0, GE, Honeywell, Mitsubishi, Modicon, Omron, Siemens, Texas Instruments, Yokogawa и др.

Уязвимыми являются версии:

  • KEPServerEX v6.0 — v6.9;
  • ThingWorx Kepware Server v6.8 — v6.9;
  • ThingWorx Industrial Connectivity — все версии;
  • ThingWorx OPC-Aggregator — все версии.

В ThingWorx Edge Server обнаружена уязвимость переполнения стека (CVE-2020-27265), которая не требует аутентификации и может эксплуатироваться удаленно. Ошибка в логике декодирования строк OPC позволяет записывать строки длиннее 1024 байт без выделения дополнительной памяти. Эксплуатируя уязвимость, злоумышленник может перезаписать данные в стеке после первых 1024 байт и вызвать сбой в работе сервера и, возможно, осуществить выполнение вредоносного кода (рейтинг CVSS v. 3.1 — 9.8).

Еще одна уязвимость потока декодирования строк OPC (CVE-2020-27263) может привести к утечке данных и отказу сервера из-за чтения вне границ выделенной динамической памяти. Она присутствует как в Windows-, так и Linux-версиях ThingWorx Edge Server (рейтинг CVSS v. 3.1 — 9.1).

В Kepware KEPServerEX Edge Server имеется возможность использования данных после освобождения памяти. Эксплуатация уязвимости (CVE-2020-27267) не требует аутентификации и вызывает «гонку потоков», что приводит к попытке использования освобожденного объекта после закрытия соединения с ним и последующему сбою сервера (рейтинг CVSS v. 3.1 — 9.1).

3. Matrikon Honeywell OPC UA Tunneler

Matrikon — компания-поставщик программных решений по промышленной автоматизации для ABB, Honeywell, GE, IBM, Oracle, Rockwell Automation, Schneider Electric, Shell, Siemens, Wonderware и др. Matrikon OPC UA Tunneller позволяет клиентским приложениям с поддержкой OPC UA взаимодействовать не только с серверами OPC UA, но и с серверами и клиентами OPC Classic.

Уязвимыми являются все версии Matrikon OPC UA Tunneller младше 6.3.0.8233.

В компонентах Matrikon OPC UA Tunneller были найдены множественные уязвимости, включая критическое переполнение динамической памяти (кучи) (CVE-2020-27297, рейтинг CVSS v. 3.1 — 9.8) и утечку данных из-за чтения области памяти за границами кучи (CVE-2020-27299).

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

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

Ранее Kaspersky ICS CERT выпустил исследование безопасности протокола OPC UA, где сообщается о 17 найденных и уже закрытых уязвимостях.

Характер выявленных Claroty уязвимостей свидетельствует, что с момента выхода отчёта Kaspersky ICS CERT в 2018 году остаётся актуальной проблема контроля качества кода функций стека протоколов OPC.

Исследователи Claroty опубликовали подробный отчет с результатами исследований OPC.

Источник: Claroty