Как мы взламывали «умную» фабрику +5


image

Хотя процесс подключения предприятий к интернету давно уже носит массовый характер, с точки зрения кибербезопасности каждый такой случай уникален, и охватить все возможные варианты нереально. В рамках нашего нового исследования Attacks on smart manufacturing systems мы сосредоточились на изучении одного производственного объекта, а в этом посте делимся некоторыми важными выводами.

Объект исследования


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

Не пытаясь объять необъятное, мы решили сфокусировать внимание на одном экземпляре интеллектуальной производственной системы, в составе которой имеются как аппаратные, так и программные компоненты в виде управляющего ПО, средств разработки и мониторинга.

image
Industry 4.0 Lab — объект нашего изучения. Источник (здесь и далее, если не указано иное): Trend Micro

Объектом нашего исследования стала лаборатория Industry 4.0 Lab, созданная компанией Fiesto на базе Миланского технического университета (Politecnico di Milano). Она включает в себя семь станций, программируемые логические устройства и человеко-машинные интерфейсы Siemens, а также физические приводы (дрели, прессы), датчики температуры и давления, конвейерную ленту и промышленного робота Mitsubishi Melfa.

image
Структурная схема Industry 4.0 Lab

Области исследования


В «умной» производственной системе мы выделяем следующие чувствительные к безопасности направления:

— Промышленное ПО, которое поставляется в виде дополнений, расширений или самостоятельных приложений

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

— Кастомные устройства IIoT

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

Учитывая, что в последнее время компрометация программных библиотек и учётных записей разработчиков в программных репозиториях используется злоумышленниками довольно часто, мы считаем необходимым выделить этот риск в качестве вектора, который будет оказывать всё большее влияние на ландшафт угроз.

— Человеко-машинные интерфейсы (ЧМИ)

Это центральный компонент экосистемы интеллектуального производства. ЧМИ предоставляют киберпреступникам широкую поверхность атак, поскольку в большинстве случаев представляют собой обычные компьютеры со значительным количеством интерфейсов, причём их ОС и ПО обновляется крайне редко. Это значит, что в них остаются программные уязвимости, которые можно сравнить с широко открытыми дверями для киберпреступников.

— Системы управления производством

Это наиболее чувствительная для атак конечная точка «умного» предприятия, поскольку она действует как посредник между производственным цехом и остальной частью корпоративной сети, например, системой ERP. Системы управления производством содержат сложную логику автоматизации и взаимодействуют с одной или несколькими базами данных. Внесение некорректных изменений в эти базы может вызвать выпуск брака или даже повреждение исполнительных механизмов, если в системе не прописаны границы безопасных режимов.

image
Взаимосвязи данных и ПО в контексте «умной» производственной системы

— Программируемые производственные машины

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

О человеческом факторе


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

Один из самых недооценённых по опасности векторов атак на промышленные системы — это воздействие через вредоносный софт и дополнения. Рассмотрим эти атаки более детально.

image
Программные векторы и цели атак на промышленные системы

Атака через вредоносные дополнения к промышленному софту


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

Собственный реестр приложений имеется не только у Google, Apple и Microsoft. Разработчики промышленного софта также используют собственные реестры приложений, из которых инженеры могут загружать дополнения, расширяющие функциональность их сред разработки. К сожалению, некоторые из популярных каталогов промышленного ПО содержат уязвимости, которые позволяют загружать в него непроверенные расширения.

image
Уязвимость каталога расширений ABB приводила к тому, что расширения для RobotStudio становились доступными в среде разработки сразу после загрузки, до этапа проверки и утверждения

Исследуя каталоги приложений, мы обнаружили следующие серьёзные проблемы, потенциально способные привести к серьёзным последствиям:

  1. слабый процесс проверки, больше похожий на её отсутствие;
  2. отсутствие «песочницы» для выполнения загружаемых из каталога дополнений;
  3. доступность загруженных в каталог дополнений до их проверки и утверждения;
  4. отсутствие проверки целостности кода;
  5. использование нешифрованных сетевых соединений.

— Слабый процесс проверки

В каталоге дополнений ABB отсутствует процесс проверки разработчиков. Любой желающий может зарегистрироваться и загрузить дополнения, причём, как мы убедились, строгой проверки загруженных файлов также не производится. Один из наших партнёров без проблем загрузил безвредное дополнение, в описании которого содержался следующий текст:
подготовлено и загружено, чтобы удостовериться в том, что в этом каталоге приложений есть процедура ручной проверки, (…) чтобы проверить, сможет ли кто-либо загрузить в этот каталог ПО, не выполняющее никаких полезных действий.
Дополнение было с лёгкостью утверждено, и в течение 10 дней его зачем-то загрузили 18 пользователей.

image
После загрузки и автоматической установки дополнение к RobotStudio может делать с рабочей станцией что угодно

— Отсутствие песочницы

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

image
Свежезагруженный модуль расширения не отображается в каталоге приложений через браузер, однако через встроенный в RobotStudio интерфейс он уже доступен для установки.

— Доступность дополнений до их утверждения

После загрузки в каталог дополнение теоретически должно пройти проверку, прежде чем получить одобрение и стать доступным для загрузки. Однако из-за ошибки неутверждённые расширения можно загрузить через встроенный каталог среды разработки RobotStudio.

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

— Отсутствие проверки подписи кода

Каталог приложений ABB — не единственный источник потенциально вредоносных дополнений. Сходные проблемы мы обнаружили в Kuka.Sim — инженерном ПО для роботов и станков с ЧПУ.
Kuka.Sim используется для проектирования и тестирования разработанных программ перед установкой их непосредственно в робота или интеллектуальный станок. Для этого используются цифровые модели различных станков и роботов — цифровые близнецы. Каждый такой близнец состоит из трёхмерной модели и исходного кода, определяющего его физическое поведение. Изменяя код, можно изменить поведение модели.

Оказалось, что eCatalog — репозиторий цифровых моделей различных интеллектуальных промышленных установок и роботов для Kuka.Sim — не проверяет целостность публикуемых файлов, представляющих собой обычные ZIP-архивы. Таким образом, у пользователя нет никакой возможности проверить подлинность модели, зато злоумышленник с лёгкостью может добавить в архив вредоносную функциональность.

— Нешифрованный сетевой трафик

Взаимодействие клиента Kuka.Sim и каталогом цифровых моделей происходит по http, то есть трафик передаётся в открытом виде, что позволяет провести атаку «человек посередине», подменив или перехватив файлы моделей.

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

Заключение: контрмеры против будущих угроз


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

  • внедрение практики безопасного кодирования в разработку промышленных приложений, в том числе инженерных сред разработки и каталогов расширений — проверки входных данных, шифрование трафика и проверка подлинности должны стать обязательной частью любого взаимодействия;
  • создание полной цепочки доверия для данных и ПО в рамках «умной» производственной среды: код, реализующий логику автоматизации, включаю прошивку IoT, не должен просто загружаться с ноутбука разработчика на промышленную машину — необходима обязательная проверка ЭЦП на коде программы и всех библиотек; аналогичные проверки необходимы и в средах разработки;
  • предусмотреть механизмы обнаружения уязвимой или вредоносной логики в сложных производственных комплексах, чтобы не дать злоумышленникам возможности создать «бомбу замедленного действия»;
  • реализовать песочницу и механизм разделения привилегий для инженерного ПО, выполняющегося на промышленных машинах — мобильные приложения, например, должны запрашивать разрешения перед доступом к хранилищу или сетевым ресурсам, аналогичным образом — как компоненты с нулевым доверием — должны быть реализованы логика автоматизации и другие программные компоненты.




К сожалению, не доступен сервер mySQL