Плата управления ИБП Импульс МКИ-211 : Импортозамещение "курильщика"

Импульс МКИ-211 - И так сойдёт !Под повсеместные разговоры про импортозамещение получили на одну из производственных площадок два новых ИБП Импульс Форвард 6000 с платами управления Импульс МКИ-211. В этой заметке мы не будем обсуждать сами ИБП Импульс, а поговорим именно о плате управления МКИ-211, внимательно посмотрев на то, что же за продукт предлагает нам производитель.

Комплект поставки и внешний вид

Общее описание платы и спецификацию к ней можем найти на сайте производителя по ссылке: Карта SNMP ИМПУЛЬС МКИ-211.

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

Плата управления ИБП Импульс МКИ-211 - Вид сверху

Плата управления ИБП Импульс МКИ-211 - Комплект поставки

В комплект поставки кроме самой платы не входит ничего. Однако в качестве опционального дополнения к плате может быть заказан "Датчик температуры Импульс ТС-01", подключаемый к дискретным входам. Как внешне выглядит этот датчик – загадка, а единственное упоминание об этом датчике я нашёл только в руководстве по эксплуатации на плату, где указано, что … приготовьтесь … диапазон измерения температуры "От - 40 до +1250С", а точность измерений "± 20С"… Как тебе такое, Илон Маск? … Возможно, какая-то блондинка потеряла десятичный разделитель, когда рисовала табличку для спецификации, но и нельзя исключать, что это какие-то новые секретные технологии, и поэтому на сайте нет в явном виде упоминания об этой опции. И да, длина шнура обозначена в 1 метр, что непростительно мало для выносного датчика.

Судя по прошлогоднему заключению Минпромторга производство плат МКИ-211 выполняется на территории РФ компанией "Системотехника".

 

Обновление микрокода платы

В нашем случае поставка ИБП была масштабной и первые коллеги, пытавшиеся настроить платы управления в других регионах, обнаружили проблемы с прошивкой V111_R7005, которая была залита в эти платы. Проблемы носили такой характер, что их невозможно было исправить на месте и потребовалась физическая замена всех поставленных плат. К счастью мне не довелось самому столкнуться с этими проблемами и какой-либо конкретики об этом я рассказать не могу. Однако предметно могу говорить о том, в каком виде плата попала ко мне уже после замены с прошивкой версии U0001_M06. Увиденное, мягко говоря, меня неприятно удивило. Если очень коротко, то сначала я обнаружил, что в прошивке платы из всех заявленных протоколов доступа "работает" лишь один HTTP. При этом большинство попыток управления настройками в веб-интерфейсе сопровождались разными ошибками, не позволяющими выполнить даже базовую конфигурацию платы. Ни о каких HTTPS/SSH/Telnet и даже SNMP речи не было от слова совсем. Последним крайним удивлением стало то, что не было никакой возможности сменить пароль учётной записи "admin" с пароля по умолчанию ("admin") на что-либо другое.

Не смотря на то, что сменная плата не так давно пришла от самого производителя, и весьма малы шансы на то, что существует другая, более вменяемая, прошивка для этой платы, всё же проверил сайт производителя в поисках прошивки, но не нашёл там вообще никаких файлов, кроме пары PDF-документов. Написал письмо на официальный адрес тех.поддержки, указанный в разделе контактов: support@impuls.energy. Прошли сутки – тишина. Перезвонил, мило пообщались с тётенькой, которая продиктовала мне другой секретный адрес tehpod@sstmk.ru. Написал на этот адрес и в этот же день получил ответ со вложенным файлом новой версии прошивки MKI_FW0006.hex (версия микрокода M06_U0006). В своём исходном письме помимо прошивки я просил ещё и историю релизов, чтобы понимать что было изменено, но эту информацию мне не предоставили сообщив, что "Истории релизов нет в открытом доступе" … Наверно это тоже особо секретная информация.

Приложенная к ответному письму инструкция по обновлению заслуживает отдельного внимания. Она представляет собой pdf-файл криво отсканированный с бумажного носителя со станицами, перепутанными между собой. В этой незамысловатой инструкции последним пунктом было указано то, что после обновления прошивки нужно производить сброс настроек платы к заводскому состоянию. Но, как я понял, прошивка сама всё без лишних вопросов всё обнулила, так по началу в веб-интерфейсе все параметры отображались как ненастроенные, а через несколько минут связь с контроллером была полностью утеряна. Поэтому всё же пришлось прибегнуть с полному сбросу настроек по процедуре, описанной в руководстве по эксплуатации на плату (с извлечением платы и временным включением специальной перемычки на плате). То есть следует иметь ввиду, что процедура обновления прошивки приводит к утере всех ранее сделанных настроек, при этом никакой штатной функции сохранения/восстановления настроек конечно же нет.

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

 

Исследование функциональности микрокода

При подключении по протоколу HTTP перед нами появляется веб-интерфейс довольно аскетичного вида с примитивным набором пунктов меню, который, кстати говоря, нам зачем-то показывают ещё до прохождения аутентификации. Страница "Авторизация" зачем-то уже содержит введённый логин, что уже намекает о наличии предопределённой учётной записи "admin". Для успешного прохождения аутентификации достаточно указать пароль по умолчанию "admin".

Импульс МКИ-211 - Авторизация

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


В первом разделе "Параметры" в опции "Текущий режим" можно заметить, что статус периодически (несколько раз в минуту) меняется с вида "UPS OK" на "Link Error" и обратно. При этом состояние ошибки подкрашено зелёным цветом, как будь-то состояние ошибки – это штатная ситуация. К слову и обрыв входящего напряжения, отображаемый здесь в виде "Line Fault" также будет подкрашен зелёным цветом. Весьма оригинальное решение визуализации проблемы.

Ошибка "Link Error" в разделе "Параметры"

При переходе в раздел "Настройки" нас сразу отправляют во вкладку "Аккумуляторы", где нам потребуется настроить сведения о подключенных АКБ.

Настройки АКБ в разделе "Аккумуляторы"

При изменении каких-либо настроек мы можем подумать, что настройки не сохраняются. Так как после нажатия кнопки "Применить", закрытия браузера и повторного открытия все настройки в веб-интерфейсе принимают изначальный вид, будто мы ничего и не настраивали вовсе:

Настройки АКБ в разделе "Аккумуляторы" (настройки по умолчанию)

Тайное знание заключается в том, что после применения настроек нужно перезагружать контроллер через "Настройки" > "Сервис" > "Перезагрузка" для того, чтобы веб-интерфейс показывал реальные, заданные нами, данные.

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


На вкладке "SNMP" настройки организованы не совсем интуитивно понятным образом, но после экспериментов становится очевидно, что настраиваемой перечень из пяти IP-адресов не является списком разрешённых хостов, с которых можно выполнять опрос по протоколу SNMP, а является перечнем хостов на которые следует отправлять оповещения SNMP Trap (об этом говорит и руководство эксплуатации). Для опроса по SNMP можно изменить строку подключения "Read Community" на отличную от "public" и это, как ни странно, работает.

Импульс МКИ и настройки SNMP

В спецификации на плату указана поддержка "PPC MIB, RFC1628", но это не похоже на правду. Найти совместимых MIB-файлов, по которым бы можно было опрашивать плату. мне не удалось. Выяснилось, что операцией walk с платы можно считать только параметры, находящиеся в неизвестной ветке OID .1.3.6.1.4.1.55814.1. И как можно интерпретировать значения этих параметров в целях мониторинга, мне решительно непонятно. Написал об этом вопрос на секретный адрес тех.поддержки, но ответа пока не получил.

Чтобы проверить возможность записи по SNMP со строкой, указанной в поле "Write Community", нужно понимать в какие OID мы можем писать. Но так как нет совместимого MIB, из которого мы могли бы узнать OID, доступные на запись, от этой проверки пришлось отказаться. Вопрос тех.поддержке по этому поводу также пока остался без ответа.

Отдельного поля для возможности указать community-строку для отсылаемых оповещений SNMP Trap - нет. Но эксперименты показали, что трапы прилетают со строкой, указанной в поле "Read Community". То есть и для опроса SNMP Probe и для оповещений SNMP Trap используются одни и те же настройки community.

При имитации нештатной ситуации, например, при отключении входящего электропитания, сами по себе трапы платой вроде бы отсылаются, но при этом имеют всё те же идентификаторы .iso.org.dod.internet.private.enterprises.55814, которые непонятно как интерпретировать.

То есть поддержка SNMP v1/v2 какая-то вот такая странная, а поддержки SNMPv3 нет совсем.


Вкладка "Сетевые параметры" позволяет указать IP-адрес платы, адрес шлюза и маску сети. Такие мелочи, как, например, адресы DNS-серверов, разработчиков не интересуют. Да и зачем заниматься разрешением имён, если везде прописываются IP. Работает ведь всё и без DNS!

Сетевые параметры в разделе "Настройки"


Вкладка "Аварии" имеет всего три настройки границ аварийных состояний. В руководстве написано, что эти границы влияют на отсылку SNMP Trap. И опять же, проверять это на практике без MIB – занятие малоинтересное. Для проверки мы занижали лимит температуры ИБП и верхнюю границу нагрузки в % таким образом, чтобы они явно были меньше текущих значений. В результате - ни на главной странице в разделе "Параметры", ни в логе в разделе "Журнал" мы не увидели никакой реакции.

Импульс МКИ-211 - Настройки - Аварии


На вкладке "Сервис" нам доступны важные сервисные операции управления платой и самим ИБП. Нажатие на любую кнопку возвращает нам странное сообщение "Данные сохранены".

Импульс МКИ-211 - Настройки - Сервис

Нажатие кнопки "Запуск теста" показало, что не существует никакой индикации процесса. То есть о происходящем нет никакой информации ни на главной странице в разделе "Параметры", ни в логе в разделе "Журнал", и при этом нет никаких исходящих трапов SNMP. Понять то, что ИБП находится в режиме тестирования, фактически можно только находясь рядом с ним физически и наблюдая за статусной панелью на самом ИБП.

Эксперимент с использованием кнопки "Перезапуск ИБП" также выявил странное поведение. При первом нажатии кнопки не произошло ничего. Выждав несколько минут, нажали кнопку ещё раз и перезапуск ИБП произошёл, о чём в журнале появилось событие временного перехода на Bypass.


На вкладке "Время" в качестве источника точного времени можно указать IP-адрес только одного NTP-сервера (привет коллегам, которые удивлялись зачем я добавил серверы NTP в кластер сетевой балансировки). Текущая дата выводится в каком-то странном формате.

Настройки синхронизации времени

При указании адреса NTP-сервера и попытке выбора режима, отличного от "Авто" или "Раз в 6 часов", например, "Раз в 24 часа", мы всегда будем получать многозначительное сообщение "Ошибка данных".

Импульс МКИ - "Ошибка данных"


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

Импульс МКИ-211 - Настройки - Действия


На вкладке "Доступ", которая, как я понимаю, для прошивки МКИ-211 является инновационной, теперь у нас есть уникальная возможность сменить пароль и даже логин пользователя "admin".

Импульс МКИ-211 - Настройки - Доступ

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

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


В разделе "Информация" можно заметить, что микрокод не в состоянии точно определить модель платы управления и показывает нам сразу две модели "MKI111/MKI211". Кроме этого, здесь мы не увидим никакой идентификационной информации о самом ИБП, в который установлена данная плата управления.

Импульс МКИ-211 - Информация

При заполнении полей следует указывать непустое значение для всех полей и постараться избежать использования спецсимволов. Иначе получим "Ошибка данных". Использованные пробелы после перезагрузки платы могут быть заменены на знак "+" или "%2".

Не возвращается информация об ИБП, и даже данные о заполненных здесь полях, также и при опросе по протоколу SNMP, поэтому использовать плату управления в инвентаризационных целях не представляется возможным.


Последний раздел "Журнал" показывает нам какой-то единственный "Журнал состояния ИБП", хотя в PDF-спецификации на плату написано про запись двух журналов во внутреннюю память: "Лог событий (1000 записей), лог данных (2000 записей)".

Импульс МКИ-211 - Журнал

То есть, например, здесь мы не увидим никаких данных, которые можно было бы использовать для аудита доступа к плате управления. А имеющийся "Журнал состояния ИБП", по ощущениям, не фиксирует на периодической основе данные о параметрах электросети, как это делают платы управления практически всех других производителей. То есть, выглядит всё так, что записи в журнале носят исключительно ситуационный характер и адекватно использовать эти данные для исторического анализа качества электросети не получится.


Дополнительно можно отметить, что довольно забавным выглядит тот факт, что пользовательские сессии в веб-браузере кажутся какими-то неубиваемыми, то есть они не рвутся даже после перезагрузки контроллера с последующим перезапуском браузера. И даже процедура смены пароля через веб-интерфейс по мнению микрокода не является причиной для того, чтобы сбросить сессию. Чтобы сессия окончательно разорвалась нужно закрыть браузер и/или бездействовать примерно 15 минут. При этом в веб-интерфейсе нет даже такой банальной функции, как Logoff для форсированного закрытия сессии управления. Хотя, на фоне всего увиденного, это уже кажется сущим пустяком.

 

А что "под капотом"?

Сканирование портов с помощью nmap показало, что встроенный в микрокод веб-сервер – это часть стека lwIP - A Lightweight TCP/IP stack версии 1.3.1. И если посмотреть интернет-сайт проекта lwIP, то становится ясно, что последняя актуальная версия этого стека - 2.1.3 от Ноября 2021 года, а версия 1.3.1 датируется Августом 2009 года. То есть, даже от даты последнего актуального релиза код lwIP в модуле управления МКИ-211 отстаёт на 12 лет. Копаться в релиз-нотах lwIP за этот период времени для выявления вороха незакрытых уязвимостей и осознания уровня накопленных багов я, конечно-же, не буду. Ситуация тут, думаю, итак понятна.

 

В чём нас обманывает производитель

В целом всё, что мы увидели – это и есть всё то, на что способна плата управления Импульс МКИ-211. На разных розничных интернет-площадках можно встретить ценовые предложения за данную плату в районе 11-15 тысяч рублей. То, какого качества продукт мы получим за эти деньги, думаю более или менее понятно из всего изложенного выше. Но здесь более интересным является другой вопрос. А что из того, что обещает нам производитель, мы на самом деле не получим?

По информации с сайта, мы получим "отправку сообщений по e-mail", но это ложь, так как настроек протокола SMTP не предусмотрено совсем.

Ложью является и заявленная на сайте и в PDF-спецификации информация про поддержу шифрования. Нет ни поддержки SSL для HTTP, ни поддержки SSH. Настроек, связанных с шифрованием в веб-интерфейсе нет от слова совсем, как и нет TCP-прослушивателей на портах 443/22. В руководстве по эксплуатации платы также нет никаких упоминаний об этом функционале.

Помимо этого отсутствуют признаки наличия протоколов Telnet и TFTP, о которых идёт речь в PDF-спецификации.

Как я уже обозначил выше, довольно странная ситуация с реализацией протокола SNMP v1/v2. Она вроде бы как и есть, и даже как-то работает, но заявленное соответствие "PPC MIB, RFC1628" вызывает вопросы.

Заявленный в PDF-спецификации "Встроенный файловый менеджер", тоже так и остался загадкой и никак себя не выявил в реальности.

Диапазон рабочей температуры на сайте обозначен как "0 – 400С", в PDF-спецификации как "0 ~ +50 ⁰С"… Опять блондинка? Как можно верить такой информации? … Тем, кто использует оборудование в агрессивных средах и кому данный показатель важен, вероятно, придётся обращаться с уточнением в "секретную" тех.поддержу производителя.

 

Выводы

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

Заметка написана по большей степени для того, чтобы открыть глаза некоторым моим коллегам. Хотя, порой бывает довольно непросто достучаться до людей с мышлением в духе "а чо такова" и "итак сойдёт". Любой современный продукт, позиционируемый как очередная веха в области импортозамещения требует тщательного предварительного изучения на предмет адекватности декларируемых возможностей.

Всего комментариев: 7 Комментировать

  1. Максим /

    А как обстоят дела с функцией network shutdown?

    1. Алексей Максимов / Автор записи

      Вам показан практически весь доступный функционал платы.
      Судя по всему ответ на Ваш вопрос : Никак.

  2. Евгений /

    Максим, спасибо за статью! И сочувствую, что приходится работать с продуктами такого уровня качества... У Импульсов по крайней мере в линейке Freestyle 1000-3000 поставляется китайская платка, она тоже звёзд с неба не хватает, но всё-таки работает чуть лучше, по крайней мере с SNMP точно проблем нет, базовые вещи в тот же заббикс утянуть не проблема.

  3. Sergey /

    Я слава богу не повелся на них.. Взял только два очень маленьких, у них есть серия для мелких шкафов. Остальное пока Бастион с платой управления от Инматикс. пока лучше плат
    не видел, есть для всего что можно, даже с АРС работают, ценник гуманный, датчик температуры адекватен.

    1. Алексей Максимов / Автор записи

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

  4. Дмитрий /

    Ещё вот такие карты есть:
    https://spd.net.ru/Hardware/SKUP-3
    Довольно простые, но весь заявленный функционал работает.
    На сайте есть описание, MIB-файлы. Датчик температуры идёт в комплекте.

    1. Рустэм /

      "Скорость передачи данных по Ethernet: 10 Мбит/сек " найду ли я свитч таким портом :)

Добавить комментарий