Поймали вирус на UBNT? Тогда вам сюда

Рейтинг
Оценка: 4.83Голосов: 6Комментарии: 6

За последнюю неделю в компанию Ubiquiti обратилось несколько владельцев устройств airMAX M, которые сообщили о выходе из строя устройств под управлением операционной системы airOS.

Проблемы можно поделить на две основные группы:

  1. На устройствах происходит сброс всех параметров к заводским настройкам;
  2. Устройства работают, при этом отсутствует возможность получить доступ к панели управления.

Причина этих проблем – воздействие вредоносного программного обеспечения, которое использует уязвимость в коде программного обеспечения, позволяющее получить доступ к устройству без авторизации через протокол HTTP (порт 80) и HTTPS (порт 443).

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

Как проверить устройство на предмет уязвимости?

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

Устройство Прошивка
airMAX M (XM/XW/TI) v.5.6.2+
airMAX M (XM/TI) v. 5.5.11
airMAX M (XM) v. 5.5.10u2
airMAX ac v.7.1.3+
TOUGHSwitch v.1.3.2
airGateway v.1.1.5+
airFiber (AF24/AF24HD/AF5) v.2.2.1+
airFiber (AF5x) v. 3.0.2.1+
airFiber X v.3.0.2.1+

.

Проверка устройства на предмет уязвимости

Рис.1. Проверка устройства на предмет уязвимости

.

Утилита для диагностики и исправления проблем под Android

Ubiquiti серьезно отнеслась к этой проблеме. Для платформы Android выпущено специальное приложение «UBNT Virus Removal», которое позволяет провести сканирование вашей сети и, при необходимости, выполнить удаление вируса и обновление прошивки устройств.

Утилита для диагностики и исправления проблем под Android

Рис.2. Утилита для диагностики и исправления проблем под Android

.

Утилита протестирована на платформе airMAX M. Поддерживаются также airMAX ac, airGatewat, airFiber и TOUGHSwitsh, хотя для этих платформ тестирование не проводилось. В случае возникновения проблем, смело обращайтесь в службу поддержки Ubiquiti.

Важное замечание: для устройств airMAX M производится удаление вредоносного кода и модернизация прошивки до версии airOS v.5.6.5, полностью отключающей использование пользовательских скриптов. Если ваше устройство недоступно, потребуется восстановление прошивки при помощи TFTP (инструкция чуть ниже).

Утилита для диагностики и исправления проблем под Linux, Windows и OSX

На текущий момент репозитарий на GitHub является неактуальным и не обновляется, обновляется только APK-приложение. Сделано это намеренно, для того, чтобы не раскрывать алгоритм работы утилиты, т.к. он может быть использован авторами вируса для усовершенствования вредоносного кода.

Для использования на платформах Linux, Windows и OSX, необходимо скачать файл CureMalware-0.8.jar. Для работы утилиты в системе должен быть установлен Java.

Утилита производит поиск вредоносного кода в двух вариациях, которые встречали программисты Ubiquiti. При обновлении airMAX M до версии v.5.6.5 удаляются все скрипты «rc.xxxxxxxxx». В дальнейшем использование пользовательских скриптов становится невозможным, имейте это ввиду.

Обращаем ваше внимание! Автоматическое обновление ПО airOS доступно только для устройств airMAX M, для остальных платформ доступно только удаление вредоносного кода.

Как использовать утилиту CureMalware?

Для запуска воспользуйтесь командой:

java -jar CureMalware-0.8.jar
.

Например:

C:\Users\ubnt\Downloads>java -jar CureMalware-0.7.jar.
.

После запуска команды вы увидите следующий текст:

Possible formats for IP(s):
IP <192.168.1.1>
IP list <192.168.1.1, 192.168.1.2>
IP range <192.168.1.1-192.168.1.254>
Enter IP(s):
.

Система сообщает, что необходимо ввести IP-адрес устройства, список через запятую или диапазон IP-адресов через тире согласно указанному формату.

Вводим адрес нашего устройства:

Enter IP(s): 192.168.1.31
.

Далее система предлагает нам следующие действия:

Possible actions:
Check [1]
Check and Cure [2]
Check, Cure and Update [3]
Enter action <1|2|3>:
1 – только проверка;
2 – проверка и очистка;
3 – проверка, очистка и обновление.
.

Выбираем наиболее подходящий вариант:

Enter action <1|2|3>: 3
.

Далее система попросит нас указать порт SSH:

Enter ssh port [22]:
.

По-умолчанию, используется порт 22.

Далее система просит ввести логин, по дефолту это «ubnt»:

Enter user name [ubnt]: ubnt
.

Следующий параметр можно указать «y» (Yes), в случае, если на ваших устройствах везде одинаковый пароль:

Reuse password <y|n>[y]: y
.

Это позволит избежать необходимости повторно вводить тот же пароль. Если пароли везде разные – укажите «n» (No).

Система начинает сканирования:

Processing ubnt@192.168.1.31:22 …
.

Для найденного устройства появится запрос пароля:

Password for ubnt@192.168.1.31:
.

После ввода пароля система запустит проверку прошивки, отобразится соответствующий статус «проверка…»:

Checking…
.

Далее отобразится результат проверки, примерно следующего вида:

CRITICAL: Infected by exploitim
WARNING: User Script(s) is(are) installed:
/etc/persistent/rc.poststart
.

Система сообщает о найденном эксплоите с указанием его расположения и названия.

Дальнейшие действия выполняются в зависимости от ранее установленных параметров (удаление, очистка):

Review/remove manually!
Done.
Cleaning…
Done.
.

Система порекомендует сменить пароль, а также запустить процесс обновления:

IT IS STRONGLY RECOMMENDED TO CHANGE PASSWORD ON CURED DEVICE!
IT IS STRONGLY RECOMMENDED TO RUN CURED+UPDATE PROCEDURE!
Preparing Upgrade…
Done.
Uploading firmware: /firmwares/XM.bin …
Sending… [%100]
Done.
Upgrading…
Current ver: 329220
New version: 329221
No need to fix.
Writing ‘u-boot ‘ to /dev/mtd0(u-boot ) … [%100]
Writing ‘kernel ‘ to /dev/mtd2(kernel ) … [%100]
Writing ‘rootfs ‘ to /dev/mtd3(rootfs ) … [%100]
Done.
.

Ручное удаление эксплоита

Бывают случаи, когда необходимо удалить вирус/эксплоит в ручном режиме. Сделать это можно с помощью командной строки (через SSH). Один из самых популярных клиентов SSH – PuTTY.

Удаление вируса в ручном режиме с помощью командной строки одного из самых популярных клиентов SSH - PuTTY

Рис.3. Удаление вируса в ручном режиме с помощью командной строки одного из самых популярных клиентов SSH – PuTTY

.

Убедитесь, что у вас включен сервер SSH: раздел Deviсe > Management Connection Settings > SSH Server.

Предварительно проверьте правильность ключей и пользователя:

grep -E “users|sshd.auth.key” /tmp/system.cfg
.
Проверка правильности ключей и пользователя

Рис.4. Проверка правильности ключей и пользователя

.

Настоятельно рекомендуется удаление всех пользовательских скриптов, если вы их не используете вообще:

rm -fr /etc/persistent/rc.* /etc/persistent/profile
.

После этого выполните команду:

cfgmtd -w -p /etc/; reboot -f
.

Устройство перезагрузится, после чего рекомендуется удалить ключ аутентификации (с перезагрузкой):

cfgmtd -w; reboot -f
.

Панель управления airOS недоступна, что делать? Восстанавливаем прошивку через TFTP

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

Если устройство не загружается, либо имеются проблемы с доступом – следует прибегнуть к процедуре восстановления прошивки. Первым делом скачиваем клиент tfpt2 (либо tftpd32, что удобнее).

Установите на компьютере статический IP-адрес 192.168.1.254 и маску 255.255.255.0. Отключите питание, затем зажмите кнопку Reset и, не отпуская, подключите сетевой кабель к устройству.

Кнопку Reset требуется удерживать до тех пор, пока индикаторы на устройстве не начнут мигать, обычно где-то 8-15 сек.

Обновление прошивки

Рис.5. Обновление прошивки

.

Запустите командную строку и убедитесь, что адрес 192.168.1.20 пингуется. С помощью утилиты ftpd2 (или tftpd32) загрузите файл прошивки на IP 192.168.1.20. Процедура обновления занимает некоторое время, дождитесь окончания и ни в коем случае не отключайте питание.

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

tftp -i 192.168.1.20 put название_файла_прошивки.bin
.

Повышение безопасности с помощью файрволла

Бывают случаи, когда без пользовательских скриптов не обойтись. В этом случае нужно воздержаться от обновления на v.5.6.5 и оставаться на v.5.6.4 до выпуска новой версии ПО.

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

Для устройств, имеющих публичный (внешний) IP, в разделе Network > Remote Management (Сеть > Удаленное управление) следует ограничивать доступ извне.

Для защиты внутри локальной сети, следует использовать правила файрволла. Эта функция есть в режиме маршрутизатора (Router).

Ниже приведен пример конфигурации Firewall, где IP роутера 192.168.1.31.

192.168.0.51 – IP-адрес компьютера, с которого разрешен доступ к панели управления.

Повышение безопасности с помощью файрволла

Рис.6. Повышение безопасности с помощью файрволла

.

Для каждого из трех протоколов добавляется по 2 правила. HTTP использует 80-й порт, HTTPS 443-й, а SSH – 22-й порт.

Правило «Accept» разрешает доступ с IP 192.168.0.51. Правило «Drop» отбрасывает пакеты, которые приходят с IP, отличного от 192.168.0.51 Восклицательный знак перед IP обозначает, что правило срабатывает для всех адресов, которые не совпадают с тем, что указан перед восклицательным знаком. Вместо этого также можно использовать сети, например 192.168.1.0/24 и т.д., если вы хотите запретить доступ из определенной подсети.

Если Вы нашли ошибку в тексте, то выделите ее мышкой и нажмите Ctrl + Enter или нажмите здесь.

Сообщение об ошибке

Ошибка:

Ваш комментарий (не обязательно):

Да Отмена

Об авторе DmitryAVET

30 years / Ukraine MTI University / System Administrator, Marketing