• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Гостевая статья Анализ безопасности устройств, поддерживающих протоколы SCPI и VISA

Когда устаревший протокол подключается через Ethernet, а затем к Интернету, возникают проблемы безопасности. Стандартные команды для программируемых инструментов (SCPI) - это устаревший протокол, который поддерживают многие современные измерительные приборы. Он может быть выдан через универсальную интерфейсную шину (GPIB), универсальный асинхронный приемник / передатчик (UART), универсальную последовательную шину (USB) или Ethernet. Тем не менее, важно отметить, что аутентификация не является встроеной в этом протоколе.

Протокол SCPI, которому уже 30 лет, изначально был разработан для датчиков, соединяющихся по последовательным линиям. Он был спроектирован как простой текстовый протокол ASCII, который делает принятие через различные языки и аппаратные интерфейсы максимально простым. (Даже сегодня консорциум SCPI SCPI как на стандарт, который хорошо работает через интерфейсы RS-232 и с языком программирования BASIC.)

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

Обзор исследований
Keysight Technologies от Agilent Technologies является ключевым игроком на рынке измерительного оборудования. Мы использовали его цифровые мультиметры (DMM) и источники питания, но когда мы прочитали их описывающий, как использовать Python для автоматизации источника питания для лабораторных экспериментов, его интерфейс Ethernet привлек наше внимание.

Мы узнали, что SCPI, хотя и не ограничивается Keysight, может использоваться в моделях, где применяется Ethernet; и порт 5025, поддерживаемый Virtual Instrument Software Architecture (VISA), открыт по умолчанию. Сценарий Python в техническом документе описывает, как сбросить источник питания, установить ограничение напряжения и тока, измерить напряжение и ток, а также включить и выключить выходные каналы.

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

Поскольку сам протокол разработан без аутентификации / шифрования, исправление недоступно. Мы ответственно сообщили об этом исследовании заинтересованным поставщикам в рамках инициативы Zero Day Initiative (ZDI).

fig-1-scpi-keysight-agilent-shodan.png

Рисунок 1. Некоторые из устройств Keysight / Agilent, найденые в Shodan

Мы сделали быстрое сканирование Shodan и обнаружили в Интернете несколько SCPI-совместимых устройств. К счастью, в интернете не было таких источников питания. Тем не менее, мы видели дорогие инструменты; изменение параметра которого также может привести к повреждению блоков или чипов.​

МодемКоличествофункция
EasyEXPERT19Программное обеспечение для определения характеристик устройства на основе графического интерфейса
34972A11Система сбора данных
M819xA9Генератор сигналов произвольной формы
3352xx4Генераторы и синтезаторы функций
344xxA2Цифровой мультиметр
81180A2Генератор сигналов произвольной формы
89601B2Программное обеспечение VSA и анализатор сигналов серии X
DSO6104x2Осциллограф с тактовой частотой 1 ГГц
DSOS104A2Осциллограф с тактовой частотой 1 ГГц
E836xC2Анализатор микроволновой сети PNA
34980A1Многофункциональный переключатель / единица измерения
8164B1Lightwave измерительная система
DSOS054A1Осциллограф 500 МГц
E4438C1ESG векторный генератор сигналов
E4446A1PSA высокопроизводительный анализатор спектра
M8070B1Программное обеспечение для управления платформами MERT BERT и AWG
M9505A15-слотовое шасси AXIe
MSOS804A1Осциллограф высокого разрешения
N9000B1CXA анализатор сигналов
N9320B1РЧ-анализатор спектра (БСА)
N9344C1Ручной анализатор спектра (HSA)
N9923A1Портативный анализатор вектора RF с батарейным питанием
Таблица 1. Выставленные модели и их функции

У нас в офисе был цифровой мультиметр Keysight 34461A, поэтому мы рассмотрели потенциальные проблемы, которые могут возникнуть при его обнаружении в Интернете.

Цифровой мультиметр (DMM): тематическое исследование
Изучив руководство по , мы заметили, что все интерфейсы (даже веб-интерфейс) были включены по умолчанию и не защищены паролями. Многие параметры были также настраиваемы. В дополнение к порту 80 порт 5024 (Telnet) и 5025 (SCPI) также были открыты для общественности.

fig-2-scpi-keysight-dmm-web-interface.png

Рисунок 2. Веб-интерфейс цифрового мультиметра Keysight 34461A

fig-3-scpi-keysight-dmm-network-settings.png

Рисунок 3. Сетевые настройки цифрового мультиметра Keysight 34461A

После того, как пароль установлен или изменен, владелец должен сделать полный сброс или вызвать поставщика для сброса мультиметра. Можно выдавать общие команды SCPI через порты 5024 и 5025, поэтому мы протестировали PyVISA, библиотеку Python, поддерживающую VISA, которая отлично работает на порте 5025. Она работает в Telnet, как показано в следующем примере.

Код:
$ telnet 10.1.169.{BLOCKED} 5024
Trying 10.1.169.{BLOCKED}...
Connected to k-34461a-22828.client.tw.{BLOCKED}et.org.
Escape character is '^]'.
Welcome to Keysights's 34461A Digital Multimeter
34461A> *IDN?
Keysight Technologies,34461A,MY57222828,A.02.17-02.40-02.17-00.52-04-02
34461A> *ESR?
+32
34461A> *PSC?
1
34461A> SYST:ERR?
-113,"Undefined header"

Мы смогли прочитать измеренное напряжение / ток, если к мультиметру подключено тестируемое устройство.

Код:
34461A> MEAS:CURR?
+2.24079819E-09
34461A> MEAS:VOLT?
-5.23101894E-05

Следует отметить, что, хотя существует возможность утечки данных измерения DUT, цифровой мультиметр не является источником питания и не может причинить слишком много вреда, если точки измеренных данных не являются источником какого-либо привода. Если это так, любое изменение CALCulate: SCALe: GAIN или CALCulate: SCALe: OFFSet может вызвать проблемы в нисходящем направлении.

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

Если прибор является источником питания, можно снять защиту с выхода, выдав команду OUTP: PROT: CLE . После удаления можно установить максимальное значение напряжения и тока, которое может выдавать устройство. Более того, триггеры шины * TRG или GPIB следуют за * OPC? команда вызывает отказ в обслуживании (DoS), которая может быть исправлена только командой GPIB DCL (очистка устройства).

Одним из приемов, которые субъект угрозы может использовать на большинстве - если не на всех - открытых устройствах, является команда DISP: TEXT , которая отображает текст на передней панели. Это не причиняет вреда, но может показаться неприемлемым.

fig-4-scpi-disp-text.jpg

Рисунок 4. DISP: образец текста на передней панели

Исполнитель может также установить безопасный код (пароль калибровки), чтобы реальный владелец не мог изменить важные конфигурации. Это может вызвать неудобства, но владелец может внести чтобы предотвратить случайные или несанкционированные модификации инструмента.

Сценарий атаки
Даже если блок питания (PSU) не обнаружен в Интернете, показания открытого цифрового мультиметра могут быть изменены другими сторонами (независимо от намерения), что приведет к каскадному эффекту. Мы проконсультировались с руководством для инженеров по тестированию для воображаемого сценария автоматизированного тестирования.

fig-5-scpi-rd-test-system.jpg

Рисунок 5. Блок-схема тестовой системы, используемой для исследований и разработок (R & D), на основе рисунка из Agilent Technologies

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

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

В производственной системе цифровой мультиметр, функциональные генераторы, осциллограф и тестируемое устройство подключаются к шине LXI или SCPI через RS485 или Ethernet. Краткая и абстрактная последовательность испытаний аналогична описанию в следующей таблице.


Шаг программыУсловие ввода (стимул для DUT)Настройка измерения (для измерения сигнала вне DUT)Измерения DUT проведены
1Установите условие ввода 1 (0 градусов C)
2Подготовить настройку измерения 1 (напряжение)
3Контрольная точка 1 напряжение
4Контрольная точка 2 напряжения
5Испытательная точка 3 напряжения
6Установите условие ввода 2 (25 градусов C)
7Контрольная точка 1 напряжение
8Контрольная точка 2 напряжения
9Испытательная точка 3 напряжения
10Установите условие ввода 3 (55 градусов C)
11Подготовить настройку измерения 2 (ток)
12Точка испытания 1 ток
13Точка испытания 2 текущая
14Точка испытания 3 ток
Таблица 2. Выдержка из образца последовательности испытаний в автоматическом тесте на основе таблицы из Agilent Technologies

Когда стимул изменяется (то есть, изменение температуры, как в таблице), тестовая система должна ждать стабилизации DUT, прежде чем можно будет проводить измерения. Необходимо измерить чувствительные к времени компоненты (например, контур фазовой синхронизации [PLL] и стабилизацию регулятора с малым выпадением напряжения [LDO]). Если измерением манипулируют, фаза синхронизации ФАПЧ может быть нарушена или ТУ может быть сожжено пусковым током.

Заключение и рекомендации по безопасности
Команды SCPI очень полезны во многих реализациях и могут даже изменять практически любые настройки инструментов, поддерживающих протокол. Хотя в качестве примера для этого блога мы взяли цифровой мультиметр Keysight, протокол SCPI фактически поддерживается основными поставщиками приборов. Вполне возможно, что воздействие может быть ограничено не только в лабораториях с дорогими ИУ, но также и в полупроводниковом автоматизированном испытательном оборудовании (ATE). Закрепление измерительных приборов можно выполнить, следуя нашим рекомендуемым методам, таким как:

  • Никогда не выставляйте инструменты в интернет
  • Поместите приборы в изолированную сеть или отдельную виртуальную локальную сеть (VLAN), если необходимо подключение Ethernet.
  • Установите защитный код (пароль для калибровки), чтобы предотвратить несанкционированное удаление лицензий и калибровку
  • Реализуйте схему безопасности в случае, если источник питания подключен к высокоточному DUT (в случае, если выход был подделан в Интернете / интрасети)
  • Рассмотрите возможность того, что показания могут быть подделаны в Интернете / интрасети, если показания мультиметра поступают на привод
  • Внедрить мониторинг входящего и исходящего трафика (например, на предмет подозрительного поведения или ненормального доступа к лабораторным устройствам)
Источник:
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!