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
- CVE-2020-14524: Heap-Based Buffer Overflow (CWE-122)
- CVE-2020-14522: Uncontrolled Resource Consumption (CWE-400)
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
- CVE-2020-27265: Stack-based buffer overflow (CWE-121)
- CVE-2020-27263: Heap-based buffer overflow (CWE-122)
- CVE-2020-27267: Use-after-free (CWE-416)
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
- CVE-2020-27297: Heap overflow due to integer overflow (CWE-122)
- CVE-2020-27299: Information leak due to OOB read (CWE-125)
- CVE-2020-27274: Improper check for unusual or exceptional conditions (CWE-754)
- CVE-2020-27295: Uncontrolled resource consumption (CWE-400)
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