Pin control attack (Pin control attack)

Перейти к навигации Перейти к поиску

Pin Control Attack (атака на контроль контактов ввода-вывода) — класс атак на встроенные системы (embedded System-on-a-Chip, SoC, Система на кристалле, СнК). При атаке злоумышленник изменяет конфигурацию ввода-вывода (I/O) и прерывает связь устройства с операционной системой (ОС), в то время как программное обеспечение/ОС не получает сообщения об ошибках ввода-вывода. Атака возможна из-за отсутствия прерываний отслеживающих изменения конфигурации контактов. Наиболее значительная цель подобных атак — Программируемый логический контроллер (ПЛК). Значимость вектора атаки обусловлена тем, что механизм ввода-вывода является определяющей функцией ПЛК и критичен для его взаимодействия со внешним миром. Атака изменяет доступность контактов ввода-вывода ПЛК за счет остановки интерфейса коммуникации соответствующего модуля. Впервые атака была продемонстрирована на конференции Black Hat Europe 2016 [1]. Поскольку атака не затрагивает изменение логики ПЛК, злоумышленники могут обойти типичные механизмы защиты встраиваемых систем (embedded systems) [2].

Отличие от типичных атак на ПЛК

[править | править код]

Классические атаки на ПЛК модифицируют ПО устройств, их конфигурационные параметры или процесс исполнения команд. Такие атаки вызывают прерывания в нормальной работе ПЛК. Эти прерывания могут быть отслежены системами обнаружения вторжений. Такие системы, в свою очередь, могут уведомить операторов о нештатном режиме работы. Атака на контроль контактов ввода-вывода нацелена на динамическую память ПЛК, в которой устройство хранит конфигурацию ввода-вывода [3][4].

Векторы атаки

[править | править код]

Исследователи предложили две вариации атаки: Атака на конфигурацию контакта (Pin Configuration Attack) и Мультиплексированная атака (Pin Multiplexing Attack) [5]. Данные векторы различны, но имеют сходную концепцию. Обе вариации физически прекращают возможность доступ из программного обеспечения к вводу-выводу без уведомления программного обеспечения и вызова обработки прерываний [6].

Атака на конфигурацию контакта (Pin Configuration Attack)

[править | править код]

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

Мультиплексированная атака (Pin Multiplexing Attack)

[править | править код]

Встроенные ПЛК обычно используют сотни контактов, подключенных к электрической цепи. Некоторые из контактов имеют лишь одно определенное назначение, например предназначены для работы с тактовой частотой. Поскольку производители оборудования могут иметь особые требованиями к схемам ввода-вывода, разработчики систем-на-кристалле могут использовать определенный вывод для взаимно исключающих функциональных целей, в зависимости от целевого применения [7]. Подобное мультиплексирование контакта является частью спецификаций дизайна СнК [8]. Относительно взаимодействия с ОС, СнК разработчики устанавливают конфигурацию контактов только при запуске системы, поскольку список прерываний для мультиплексирования отсутствуют. Тем не менее, пользователь может провести мультиплексирование позднее и ограничение на такую операцию отсутствуют. Существующий подход к мультиплексированию контактов вызывает ряд вопросов к безопасности систем. Например, приложение может использовать контроллер периферии, который обрабатывает ПЛК контакт имеющий определенную настройку мультиплексирования. В некоторый момент другое приложение может изменить эту настройку. В результате, физическое соединение с первым контроллером периферийного устройства будет прервано. Тем не менее, по причине отсутствия прерывания на уровне аппаратного обеспечения, ОС продолжить работать исходя из предположения, что первый периферийный контроллер все еще доступен. Как результат, ОС продолжит выполнение операций чтения и записи по требованию приложения, но без сообщений об ошибке [6]. Изменение функционала контакта ввода-вывода в режиме исполнения программы названо Pin Multiplexing Attack [9].

Скрытность

[править | править код]

Оба варианта атаки не ведут к сообщениям о прерываниях в аппаратном обеспечении. В результате, во время атаки рабочая память ПЛК будет взаимодействовать с виртуальной памятью ввода-вывода, в то время как злоумышленник физически обрывает связь между вводом-выводом и виртуальной памятью. В таком случае, значения ввода-вывода в памяти приложения не будут соответствовать физической памяти ввода-вывода. Такое состояние называется иллюзией памяти ввода-вывода [10].

Эксперты продемонстрировали новый способ эксплуатации ПЛК — http://www.securitylab.ru/news/483858.php Архивная копия от 18 января 2017 на Wayback Machine

Список литературы

[править | править код]

[1] «Hacking industrial processes with and undetectable PLC Rootkit». Security Affairs. 2016-09-18. Retrieved 2016-11-08.

[2] «Researchers build undetectable rootkit for programmable logic controllers». PCWorld. Retrieved 2016-11-08.

[3] «Researchers Create Undetectable Rootkit That Targets Industrial Equipment». BleepingComputer. Retrieved 2016-11-08.

[4] «PLCs Possessed: Researchers Create 'Undetectable' Rootkit». Dark Reading. Retrieved 2016-11-08.

[5] «How to compromise PLC systems via stealthy Pin control attacks». Information Security Newspaper. 2016-11-05. Retrieved 2016-11-08.

[6] «Ghost in the PLC Designing an Undetectable Programmable Logic Controller Rootkit via Pin Control Attack» (PDF). Black Hat Europe Briefings 2016.

[7] «Pin control subsystem in linux Kernel». Kernel.org.

[8] «A method to make soc verification independent of pin multiplexing change». International Conference on Computer Communication and Informatics (ICCCI). 2013.

[9] «PLCs Vulnerable to Stealthy Pin Control Attacks | SecurityWeek.Com». www.securityweek.com. Retrieved 2016-11-08.

[10] «Ghost in the PLC Designing an Undetectable Programmable Logic Controller Rootkit via Pin Control Attack (Presentation)» (PDF). Black Hat Europe Briefings.