20 апреля 2022
Уязвимость АСУ ТП. Как оценить критичность?
В последний день марта команда Claroty (Team82) опубликовала статью о двух найденным ими уязвимостях в продуктах Rockwell Automation:
- CVE-2022-1159 – уязвимость в программном обеспечении Studio 5000 Logix Designer, которая позволяет подменять код во время компиляции проекта для ПЛК;
- CVE-2022-1161 – уязвимость в самих контроллерах серии ControlLogix, которая позволяет подменять скомпилированный код на ПЛК без подмены исходного кода.
Обе уязвимости имеют достаточно высокую оценку по метрике CVSS 3.1 – 7.7 (High) и 10.0 (Critical) соответственно, – и информация о них активно обсуждается в СМИ и среди специалистов. Между тем, мы считаем, что серьезность этих уязвимостей сильно завышена. В то же время самая опасная уязвимость в тех же продуктах Rockwell Automation уже несколько лет остается незамеченной общественностью и владельцами уязвимых продуктов.
Что не так с информацией об этих уязвимостях
Давайте попробуем разобраться с этими уязвимостями более детально.
CVE-2022-1159
Как было написано выше, данная уязвимость позволяет подменить скомпилированный код пользовательского приложения, скачиваемого на ПЛК. Как пишут сами исследователи, для эксплуатации данной уязвимости требуются административные привилегии.
Rockwell Automation указал для этой уязвимости следующий CVSS вектор CVSS:3.1/AV:L/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:H/. То есть по версии вендора:
- Атакующему нужно иметь локальный доступ с повышенными привилегиями к компьютеру с Studio 5000 Logix Designer;
- Требуется взаимодействие с пользователем, поскольку подмена кода происходит во время компиляции приложения инженером;
- В результате атаки полностью нарушаются конфиденциальность, целостность и доступность ПЛК, на который скачивается скомпилированное приложение.
Однако согласно CVSS v3.1: Specification Document:
Поскольку при наличии административного доступа к инженерному компьютеру злоумышленник и так может полностью нарушить конфиденциальность, целостность и доступность ПЛК, – например, при помощи модификации сетевого трафика, – все impact-метрики для этой уязвимости должны быть установлены в значение None.
Поэтому мы не согласны с такой высокой оценкой серьезности данной уязвимости, оцениваем её как незначительную и предлагаем использовать для оценки серьёзности CVE-2022-1159 значение 0.0 (None).
CVE-2022-1161
Вторая уязвимость, которую исследователи приравнивают к «уязвимостям уровня Stuxnet», затрагивает ПЛК серии ControlLogix.
ПЛК хранит и исходный, и скомпилированный код приложения. И тот, и другой изменяются при заливке на ПЛК штатными средствами так, чтобы они соответствовали друг другу. Найденная уязвимость позволяет подменить скомпилированный код без изменения исходного. Это даёт дополнительные возможности злоумышленнику избежать обнаружения инженером несанкционированных модификаций приложения на ПЛК. Неприятная уязвимость!
Rockwell Automation оценивает эту уязвимость в 10 баллов по метрике CVSS 3.1 и использует следующий вектор: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H. То есть по версии вендора атакующий может удалённо, без аутентификации, полностью нарушить работу уязвимого ПЛК.
Давайте разберемся с этой оценкой серьёзности.
Во-первых, для успешной эксплуатации уязвимости требуются права на скачивание приложения на ПЛК. Отметим, что наличие таких прав само по себе дает злоумышленнику возможности нанести очень серьёзный вред без эксплуатации каких-либо уязвимостей.
Это требование можно обойти при помощи эксплуатации другой уязвимости, например, CVE-2021-22681 (см. ниже). Однако этот факт нельзя использовать для искусственного завышения серьёзности оценки CVE-2022-1161 – CVSS v3.1: User Guide явно указывает, что уязвимости должны оцениваться независимо.
Во-вторых, уязвимость позволяет подменить скомпилированный код приложения без изменения исходного, то есть страдает целостность информации для инженерного ПО. Нарушить конфиденциальность или доступность самого инженерного ПО она не позволяет.
По нашему мнению, справедливая оценка критичности данной уязвимости должна быть снижена с 10.0 (Critical) до 6.8 (Medium), и CVSS вектор должен быть CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:N/I:H/A:N.
Как уже было сказано, публикация об этих уязвимостях была довольно шумной. Обе уязвимости определенно интересны с технической точки зрения и не могут не заслуживать внимания исследователей. Однако при оценке уровня опасности каждой уязвимости всегда нужно аккуратно анализировать условия, необходимые для её эксплуатации, – иначе владельцы уязвимых систем не смогут правильно оценить риск, который несет уязвимость.
В случае этих двух уязвимостей опасность была преувеличена.
Мы хотим напомнить еще об одной уязвимости в тех же продуктах Rockwell Automation, которая, на наш взгляд, требует внимания – и которую явно недооценили владельцы уязвимых систем. Мы считаем ее наиболее опасной из всех известных уязвимостей для данных продуктов.
Самая опасная уязвимость
20 сентября 2017 года Kaspersky ICS CERT уведомил команду продуктовой безопасности Rockwell Automation об уязвимости механизма авторизации в нескольких линейках контроллеров Rockwell Automation, включая контроллеры противоаварийной защиты (ПАЗ). Уязвимость позволяет удалённому неаутентифицированному пользователю производить любые операции с контроллерами и ПАЗ Rockwell Automation. Данная уязвимость стала публично известна в 2021 году и получила идентификатор CVE-2021-22681.
Эксплуатация этой уязвимости, в отличие от предыдущих, не требует никаких привилегий и ведёт к полной компрометации устройства. Уязвимость имеет оценку серьёзности 9.8 (Critical) и CVSS вектор CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
Почему мы считаем эту уязвимость настолько важной?
Во-первых, Rockwell Automation даже спустя 4,5 года так и не придумала способа исправить уязвимость. Поэтому в разделе Mitigations значатся лишь компенсационные меры, но никак не обновление безопасности, устраняющее уязвимость.
Всё дело в том, что данная проблема – архитектурная, она связана с дизайном протокола сетевого взаимодействия для всего семейства контроллеров. Такие недостатки устранять, как правило, очень сложно – ведь изменения протокола упираются в порой неразрешимые проблемы совместимости. Заметим также, что проблема, с которой столкнулась Rockwell Automation, далеко не уникальна. Так, например, схожая ситуация сложилась с семейством устройств Modicon от Schneider Electric (CVE-2021-22779).
Во-вторых, уязвимость очень легко обнаружить. После нас её обнаружили ещё две независимые команды, включая Claroty. Соответственно, велика вероятность, что уязвимостью смогут воспользоваться и злоумышленники.
По сравнению с двумя уязвимостями, о которых недавно сообщила Claroty, уязвимость CVE-2021-22681 значительно серьёзнее. При её наличии совершенно неважно, уязвима ли система к CVE-2022-1159 или к CVE-2022-1161, – ведь CVE-2021-22681 позволяет злоумышленнику гораздо проще добиться результатов не только таких же, как в случае эксплуатации первых двух уязвимостей, но и более негативных.
Однако по какой-то причине CVE-2021-22681 не получила такой же огласки, как уязвимости, о которых сообщила Claroty. Опасность недооценили и владельцы уязвимых систем, которые должны были бы применить компенсационные меры для её устранения. Ведь именно этого, как мы видим, они до сих пор не сделали…
Уязвимые системы
В поисковых системах Censys и Shodan на момент написания статьи обнаруживаются соответственно 515 и 6793 доступных устройства с открытым портом 44818/TCP (порт, через который эксплуатируется CVE-2021-22681) и имеющих в описании заголовков или других полей слово Rockwell. Само собой, среди найденных вариантов, наверняка, есть и хонипоты (ловушки или приманки атак). Но значительная доля настоящих контроллеров среди них определённо присутствует.
Так что на некоторые уязвимые устройства Rockwell Automation, вероятно, возможны атаки без каких бы то ни было длинных и сложных цепочек компрометации – ведь устройства оказываются доступными прямо из интернета.
Владельцам систем нужно тратить силы и время не на устранение CVE-2022-1159 и CVE-2022-1161, а на меры для снижения угрозы эксплуатации CVE-2021-22681 – как минимум, сделать уязвимые устройства недоступными из интернета.
В качестве заключения
Мы выбрали CVE-2022-1159, CVE-2022-1161 и CVE-2021-22681, чтобы продемонстрировать важность качества информации об уязвимостях в OT–продуктах и технологиях. Проблемы, которые мы описали на примере этих уязвимостей, присущи информации об уязвимостях в продуктах многих вендоров.
При оценке каждой уязвимости необходимо аккуратно анализировать условия, необходимые для её эксплуатации, и адекватно оценивать ее серьезность.
Эта информация должна быть полезна с практической точки зрения – помогать владельцам уязвимых систем адекватно определять уровень угрозы и принимать на реальных объектах меры для её снижения (все мы прекрасно понимаем, что своевременно исправлять все уязвимости в АСУ – задача сложная, и на практике решать ее способны немногие из их владельцев).