banner

Новости

May 06, 2023

Исследователи извлекают главный ключ шифрования из ПЛК Siemens

Люциан Константин

CSO Старший писатель, CSO |

Исследователи безопасности нашли способ извлечь глобальный ключ шифрования, который был жестко запрограммирован в процессорах нескольких линеек программируемых логических контроллеров (ПЛК) Siemens, что позволяет им поставить под угрозу их безопасную связь и аутентификацию. Siemens советует всем клиентам обновить как встроенное ПО затронутых устройств, так и программное обеспечение TIA Portal, которое инженеры используют для связи с ними и развертывания их программ.

По словам исследователей безопасности из компании Claroty, компания Siemens почти десять лет назад внедрила асимметричную криптографию в свои процессоры ПЛК SIMATIC S7-1200/1500 для защиты их конфигурации, программ и коммуникаций. Однако компания решила сделать это, используя жестко запрограммированный глобальный закрытый ключ для всех устройств из этих семейств продуктов, поскольку в то время динамическое распределение и управление ключами не было обычной практикой и потенциально обременяло клиентов.

«Однако с тех пор достижения в области технологий, исследований в области безопасности и быстро меняющаяся картина угроз сделали такие жестко запрограммированные криптоключи неприемлемым риском», — заявили исследователи в своем отчете. «Злоумышленник, способный извлечь глобальный жестко закодированный ключ, может непоправимо поставить под угрозу безопасность всей линейки устройств».

По словам Клароти, ПЛК Siemens S7-1200 и S7-1500 используют несколько ключей. Ключ «для каждого семейства» используется всеми устройствами из линейки продуктов, а ключ «для каждой модели/прошивки» используется для шифрования конфигураций и обеспечения целостности кода, а также ключ подключения, который используется в процессе аутентификации, а также шифровать общение с клиентами. Ключ подключения получается из ключей конфигурации и используется для шифрования на основе эллиптических кривых.

Это означает, что злоумышленники получают ключ конфигурации, они потенциально могут расшифровать пароль пользователя из конфигурации ПЛК, а также запустить атаку «человек посередине», даже если у них нет доступа для чтения зашифрованной конфигурации.

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

В прошлом году исследователи Claroty обнаружили уязвимость удаленного выполнения кода (CVE-2020-15782), затрагивающую ПЛК S7, которая позволяла им выполнять собственный код на устройствах. Обычно программы или логика, которые инженеры пишут и развертывают в ПЛК с помощью специализированного инженерного программного обеспечения, выполняются внутри «песочницы» ОС ПЛК. CVE-2020-15782 позволил исследователям обойти этот уровень безопасности и напрямую читать и записывать в любой обычно защищенный адрес памяти ПЛК.

«Используя полученное нами разрешение на чтение DA [прямой доступ к памяти], мы смогли извлечь всю зашифрованную прошивку ПЛК (SIMATIC S7-1500) и отобразить ее функции», — говорят исследователи. «В процессе сопоставления мы обнаружили функцию, которая считывает закрытый ключ в ПЛК. Как только мы получили адрес функции, мы переписали функциональность определенных кодов операций MC7+ с помощью нашего шелл-кода, заставив их вызывать собственную функцию, которая считывает закрытый ключ. ... Затем мы скопировали ключ в известный адрес памяти и прочитали его оттуда. Выполнение перезаписанной функции дало нам полный закрытый ключ ПЛК».

Для взаимодействия с ПЛК Siemens требуется пароль, но разрешения, которые клиент предоставляет устройству, определяются четырьмя уровнями защиты, которые можно настроить. Если уровень защиты ниже трех, злоумышленник может извлечь конфигурацию из ПЛК без специального разрешения. Эта конфигурация содержит хэш пароля, но зашифрована. Однако, если у них есть глобальный закрытый ключ, злоумышленники могут расшифровать хэш пароля и использовать его для аутентификации на ПЛК с более высокими привилегиями.

ДЕЛИТЬСЯ