На днях мне позвонил старый приятель, и в панике сообщил, что у него что-то случилось с домашним файлохранилищем NAS QNAP. При обращении к девайсу на экране демонстрируется вот такая вот забавная картинка, вынесенная в заглавие этого поста, а файлы на дисках теперь имеют расширение .encrypt. Вердикт, в общем-то, был очевиден и неутешителен: NAS подвергся атаке трояна-шифровальщика. Несмотря на то, что большинство подобных устройств используют в качестве операционной системы одну из реализаций Linux, вредоносы проникают с завидной регулярностью и туда. И этот случай — лишь один из многих, с которыми мне, так или иначе, доводилось сталкиваться. Как вообще происходят подобные заражения? Возможны несколько вариантов.

▍ В закоулках истории


Первым трояном-энкодером, нацеленным конкретно на заражение NAS, с которым я познакомился лично в 2014 году, был Synolocker. Из названия трояна становится очевидно, на устройствах какого именно производителя он специализировался. Тогда я ещё работал в антивирусной компании, и именно мне выпала миссия делать подробное описание этого вредоноса для вирусной энциклопедии.

Synolocker использовал для проникновения на устройство дыру в реализации протокола SSL в составе устаревших версий ОС DSM, в которых эта уязвимость ещё не была устранена. Он представлял собой исполняемый ELF-файл для архитектуры ARM. Трой состоял из двух модулей: первый отключал доступ к заражённому девайсу по SSL и Telnet, после чего выполнял рекурсивный обход файлов на дисках и шифровал их при помощи алгоритма AES-256-CBC и HMAC-SHA256. Ключ AES формировался на основе хеша имени файла и его размера с добавлением 32 случайных байт, а потом зашифровывался публичным RSA-ключом и записывался в начало файла. Сам публичный ключ сохранялся в файле “/etc/synolock/RSA_PUBLIC_KEY”. Список всех зашифрованных файлов Synolocker записывал в журнал crypted.log, размещённый в папке «/usr/syno/synoman/».


Тот самый Synolocker

Второй модуль трояна отвечал за взаимодействие с пользователем. Он генерировал по специальному шаблону веб-страницу с требованием выкупа и начинал прослушивать порт 80, 8080 или 443 в ожидании команд. При поступлении соответствующей директивы от злоумышленников Synolocker расшифровывал файлы (имена обработанных файловых объектов при этом сохранялись в журнал «/usr/syno/synoman/decrypted.log»), после чего самоудалялся.

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

▍ Воинственные эльфы




Когда я увольнялся из антивирусной компании в конце 2018 года и в качестве «дембельского аккорда» писал итоговый годовой обзор вирусной активности, то обнаружил, что число выявленных угроз для устройств IoT на базе Linux выросло прямо-таки в разы. Думаю, по прошествии четырёх лет ситуация только усугубилась. Fgt, Hajime, Mirai, и их многочисленные модификации вроде BrickBot, Sora, Wicked, Omni, Owari, а также множество других троянов под Linux непрерывно атакуют различные «умные» устройства — роутеры, телевизионные приставки, сетевые хранилища, медиацентры и «одноплатники». Шутка о том, что вредоноса для Linux нужно сначала собрать из исходников, убедиться в том, что в системе есть все нужные библиотеки и зависимости, и только после этого пытаться запустить, выдав ему предварительно права root, утратила актуальность. Современные линукс-трояны прекрасно обходятся и без этого.

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

Этим и пользуются злоумышленники. В первую очередь они брутят по словарю логин и пароль для доступа к девайсу по SSH или Telnet — именно так поступают, например, Mirai и Hajime. В обоих троянах используется генератор случайного диапазона IP, из которого исключаются локальные и служебные адреса, после чего полученный массив данных передаётся сканеру. Тот последовательно стучится на 23-й TCP-порт по каждому из адресов, пробуя установить Telnet-соединение. Если попытка увенчалась успехом, трой начинает брутить атакуемый хост с использованием словаря. В случае неудачи вредонос пытается подключиться к девайсу по SSH.

Если пользователь не удосужился сменить заводские настройки и установить сложный пароль, брут не представляет серьёзной проблемы. Авторизовавшись в системе, троян обычно пытается убедиться в том, что он попал именно в Linux-окружение. Для этого используются разные методы: например, Hajime отправляет устройству сначала команду system для перехода в системное меню, а затем команды shell и sh для запуска терминала. Чтобы проверить, активен ли нужный для его работы шелл, Hajime передаёт на атакуемый хост строку “/bin/busybox ECCHI”. Специфические оболочки не смогут обработать эту команду, в то время как стандартный sh запустит BusyBox, который вернёт сообщение об ошибке в аргументе — “ECCHI: applet not found”. Это служит трояну сигналом о том, что взлом удался и можно приступать к работе.

После этого Linux-вредоносы обычно пытаются определить, на каком «железе» собран девайс. Самый простой способ сделать это — прочитать заголовок файла “/bin/echo”, чтобы узнать тип процессора. Обычно подобные трояны уже имеют доступ к хранящемуся на управляющем сервере или другом инфицированном хосте набору заранее скомпилированных бинарников для разных архитектур: ARM, MIPS, PowerPC, SPARC, M68K, SuperH, SH-4 или Intel x86-64. Узнав, с каким железом он имеет дело, вредонос получает из файла «/proc/mounts» список смонтированных файловых систем и ищет открытые на запись папки, отличные от «/proc», «/sys» или «/». В одну из таких папок загружается ELF-файл под соответствующую архитектуру и запускается. Всё, заражение произошло.

Распространяя такую малварь, злоумышленники могут преследовать разные цели — это организация DDoS-атак, майнинг, использование взломанного девайса в качестве прокси-сервера, формирование ботнетов. Я своими глазами наблюдал домашнюю сеть, в которой отовсюду лезла реклама порносайтов и онлайн-казино, хотя на компьютерах не обнаруживалось ни единого вредоноса. Проблема заключалась в трояне, поселившемся в недрах роутера: он подменял адреса DNS-серверов, из-за чего в веб-трафик подмешивалась реклама. Смена настроек DNS на правильные не помогала: через определённые промежутки времени роутер автоматически перезагружался и всё возвращалось на круги своя. Ну а если трою удалось проникнуть в NAS, самый выгодный для злодеев вариант — зашифровать все файлы и потребовать у владельца денег за их расшифровку.

▍ И снова уязвимость


В случае с моим приятелем, с упоминания которого я начал эту заметку, причиной атаки, по всей видимости, послужила старая RCE-уязвимость в PHP7 под названием CVE-2019-11043. NAS от QNAP, как и многие другие сетевые хранилища, «смотрит» в интернет, и на нём поднят небольшой веб-сервер. Упомянутая уязвимость позволяет выполнять на атакуемом хосте произвольный код, просто обращаясь к определённым URL с добавлением к ним префикса «?a=[…]». PoC-эксплоит для CVE-2019-11043 был опубликован на GitHub ещё в 2019 году, а сама уязвимость для своей эксплуатации не требует каких-то глубоких знаний и специальных навыков, что и предопределило её популярность.

Эта дыра актуальна только для веб-серверов на платформе nginx с поддержкой FastCGI Process Manager или PHP-FPM. Чтобы злодеи могли запустить шифровальщика в сетевом хранилище, требуется сочетание нескольких факторов. Во-первых, операционная система QTS, которая обслуживает сетевые накопители QNAP, не должна быть обновлена до актуальной версии (в которых все потенциально опасные дыры уже пофиксили), во-вторых, на устройстве должен работать nginx и PHP-FPM (не на всех сетевых накопителях он запущен по умолчанию). Здесь сработали все эти факторы: NAS имел доступ в интернет, на нём была установлена «торрентокачалка», а обновлений он не видел со времён царя Гороха.


DeadBolt

Сегодня вектор атак с использованием уязвимостей применяется для распространения шифровальщика-вымогателя DeadBolt, который часто досаждает владельцам NAS, уделяя особое внимание устройствам QNAP и ASUSTOR. Причём он зачастую использует для взлома сетевых накопителей уязвимости в медиасервере Plex или EZ Connect. Только в январе 2022 года DeadBolt зашифровал более 3600 устройств QNAP, после чего производитель NAS вынужден был выкатывать пользователям принудительные обновления.


Qlocker

Исторически одним из первых вымогателей для устройств QNAP был троян, известный под названием Qlocker. Воспользовавшись одной из уязвимостей в ПО сетевого хранилища, Qlocker упаковывал хранящиеся на дисках файлы в запароленные 7z-архивы, а потом требовал у пользователя 0,01 биткоина, обещая предоставить пароль. Заработав таким образом около 350 000 долларов, в мае 2021 года вирусописатели прикрыли взаимодействующий с трояном сайт и сообщили, что прекращают дальнейшее распространение вымогателя.

Не меньше хлопот владельцам NAS доставляет и написанный на Go вымогатель ech0raix, который проникает на устройства старым добрым методом — брутфорсом, хотя не брезгует и использованием уязвимостей. Этот трой первым делом проверяет языковые и региональные настройки NAS: жители России, Украины и Беларуси — избегают счастливой участи стать жертвами энкодера. Затем ech0raix запрашивает с расположенного в Tor управляющего сервера публичный ключ шифрования, прибивает процессы httpd, mysqld, mysqd, php-fpm, apache2 и nginx, после чего начинает шифровать документы Microsoft Word, OpenOffice, PDF-файлы, изображения, видеофайлы, текстовые документы и базы данных. По окончании процесса жертве демонстрируется требование заплатить выкуп в биткойнах на BTC-кошелёк, уникальное имя которого троян получает с управляющего сервера. Любопытно, что вирусописатели регулярно обновляют код трояна, устраняя возможность использования различных утилит для расшифровки файлов, которые создают ИБ-эксперты. А исходя из того, что в URL для запроса данных на C&C используется специальный параметр, идентифицирующий трояна, можно предположить, что для распространения ech0raix активно используются различные партнёрки, продвигающие его по схеме SaaS.


ech0raix

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

▍ Что делать-то?


Таким образом, мы установили два основных вектора атак малвари на сетевые хранилища, и первый из них — несвоевременная установка обновлений. Тут совет простой: не отключайте авто-апдейты и по возможности скачивайте и устанавливайте обновлённые прошивки с сайта производителя устройства по мере их появления. Однако, если речь идёт об уязвимостях нулевого дня, которыми, в частности, пользовался DeadBolt, это не поможет. Авторы трояна даже обращались к производителям NAS с предложением продать им информацию о 0-day уязвимостях, которые использует малварь для проникновения на устройство, и заодно обещали им передать мастер-ключ для расшифровки всех пострадавших от нашествия DeadBolt файлов, но не нашли понимания. Так что своевременное обновление — это важная вещь, но отнюдь не панацея.

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

  • Установите сложные и уникальные пароли для доступа к устройству;
  • Измените порты по умолчанию для веб-доступа к NAS (80, 8080, 8000, 8001), а также порты удалённого доступа Telnet/SSH (443 и 22);
  • Если вы не используете их, отключите службы Terminal, SSH и SFTP;
  • Закройте порты и отключите службы Plex и EZ Connect, если они вам не нужны;
  • По возможности вообще не подключайте NAS к интернету.

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

Существует и ещё один вектор атак, о котором я не упомянул ранее — социальная инженерия и фишинг. Имеется тысяча и один способ выманить у пользователя логин-пароль от его учётки на сервере электронной почты или в социальных сетях. Кроме того, в Telegram полно ботов, предлагающих выдать по адресу электронной почты или номеру телефона привязанные к ним пароли, слитые со взломанных сайтов интернет-магазинов и различных служб доставки. Если вы везде используете одни и те же учётные данные, у меня для вас плохие новости. Безусловно, городить атаку методом социальной инженерии, чтобы взломать чей-то личный NAS — довольно непростое и накладное мероприятие. Но если за расшифровку ценных файлов у жертвы можно запросить несколько тысяч долларов, а злоумышленник точно знает, что такие деньги у пострадавшего есть, игра вполне может стоить свеч.

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

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

Комментарии (32)


  1. dlinyj
    19.07.2022 12:30
    +1

    Больше всего меня беспокоит безопасность таких устройств. Они обычно работают без нашего контроля, внутрь туда не лезешь обычно, а разработчики редко озадачиваются хоть какой-то безопасностью. И в результате всякие мелкие маршрутизаторы, NAS и прочее мелкое барахло с Linux на борту становится целью атак.


    1. Holmogorov Автор
      19.07.2022 12:34
      +1

      Безопасность там весьма относительная, как показывает практика...


      1. dlinyj
        19.07.2022 12:37

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


    1. YMA
      19.07.2022 12:46
      +5

      Прячем их за файрволл, а дырочки в нем открываем port knoсking'ом, или ходим в домашнюю сеть через VPN с сертификатом. По крайней мере от тупых ботов-сканеров защитит.


  1. maledog
    19.07.2022 12:34
    +3

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

    А шо? Таки панели управления VPS и всякие там web-панели давно не взламывали? Или VPS c терабайтными дисками стал стоить хотя бы на порядок выше NAS?


    1. polar_yogi
      19.07.2022 12:41
      +4

      А шо вы удивляетесь? Это блог компании продающей VPS.


    1. Holmogorov Автор
      19.07.2022 12:48
      +1

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


      1. daggert
        19.07.2022 15:10

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

        У меня торчат пяток NAS'ов и три сетевых ЖД (WD) в мир - ни разу не взломали, но это не значит что они безопасны, это лишь означает что я неуловимый Джо. Однако VPS, на котором нет сайта и он занимается роутингом определенным, регулярно рапортует что на honeypot слетаются разные мухи.


  1. YMA
    19.07.2022 12:54
    +2

    Можно вставлю 5 копеек про оффлайн бэкапы? И пусть шифровальщики отдыхают...

    А если данные меняются в небольшом количестве - можно даже автоматом сделать, цепляем BD-писалку, вставляем в нее BD-R на 25(50,100) ГБ, и пусть раз в неделю по планировщику туда новой сессией дописываются измененные данные. В зависимости от объема данных одного диска может хватить надолго ;)


    1. Holmogorov Автор
      19.07.2022 13:06
      +1

      Хм. Интересно: а сколько итераций перезаписи выдержит такой диск?


      1. YMA
        19.07.2022 13:13

        А вот кто его знает - надо попробовать, плюс предлагаю не пере- а до-запись, диски это позволяют.

        На DVD на сессию терялось около 10 мегабайт, если на BR столько же - то итераций может быть много...


        1. Holmogorov Автор
          19.07.2022 13:27

          У меня где-то в кладовке валяется Iomega ZIP на 750 мегабайт. В свое время было очень хорошим девайсом для резервного копирования - я на нем вёрстку журналов хранил. Жалко, драйверов под современные ОС к этому девайсу уже не существует...


          1. Yuriy_krd
            19.07.2022 16:40

            Так поднять в VM_Ware виртуалку с семеркой или XP, там есть проброс портов USB… Или у вас с интерфейсом FireWare?


            1. Holmogorov Автор
              19.07.2022 20:15

              Нет, он USB 2.0. В случае использования виртуалки придется возиться с настройками для копирования файлов с хостовой машины, а я человек довольно-таки ленивый...


  1. Vest
    19.07.2022 13:12

    Интересно было бы почитать про вектора атаки на Synology QuickConnect. Потому что это, в принципе, хороший способ получить доступ к серверу, не открывая и не пробрасывая порты наружу.


    1. Holmogorov Автор
      19.07.2022 13:18

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


      1. Vest
        19.07.2022 13:19

        Нет, я не из них, я этим пользуюсь. Поэтому и интересуюсь :)


        1. Holmogorov Автор
          19.07.2022 13:23

          Просто после того случая я зарёкся вообще что-то писать про продукцию этой замечательной компании: как плохое, так и хорошее :)


          1. Vest
            19.07.2022 13:25

            Жаль, ну ладно. Спасибо, что рассказали про QNAP. Это было тоже познавательно (для меня).


  1. greenkey
    19.07.2022 16:20

    Удалось дешифровать то? Или все снесли? Ценные данные старого приятеля то были там?


    1. Holmogorov Автор
      19.07.2022 20:16

      Там ничего особенно ценного не было, так что - снесли.


      1. greenkey
        20.07.2022 16:11

        Я однажды занимался дешифровкой - очень давно, когда они только появились. Повезло, в алгоритме шифрования был изъян, который был найден исследователями, они же и написали скрипт для дешифровки, емнип. Интересный был опыт, но это, в целом, слишком дорогое удовольствие.


  1. 13werwolf13
    20.07.2022 08:48
    +1

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

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


    1. Wolframium13
      20.07.2022 10:19
      +1

      Люди поэтому и покупают коробочку, чтоб не читать и не настраивать.


      1. 13werwolf13
        20.07.2022 10:26
        +1

        чтобы потом прочитать в два раза больше ага..


  1. vviz
    20.07.2022 09:41
    +1

    Насколько я понял пользователи на осмысленно вешают NAS на "белый" адрес и после имеют проблемы. Ну это как уходя из жилища оставить входную дверь не запертой...


    1. dimka11
      20.07.2022 18:30

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


      1. vviz
        20.07.2022 18:47
        +1

        Есть такая штука - VPN называется, очень пользительна.
        А можно узнать, зачем проковыривать в НАТ дырку на веб-морду домашнего NAS?


  1. Zed-nsk
    20.07.2022 13:51

    Меня, как владельца NAS со стажем 15 лет беспокоит вопрос наличия подобной малвари для других платформ, например FreeBSD. Встречалось ли кому на просторах подобное?


  1. R7R
    21.07.2022 01:51

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


    Некоторые? Это весьма распространенное убеждение.

    Шутка о том, что вредоноса для Linux нужно сначала собрать из исходников, убедиться в том, что в системе есть все нужные библиотеки и зависимости, и только после этого пытаться запустить, выдав ему предварительно права root, утратила актуальность.


    Похоже, что вы первый, кто осмелился написать об этом публично (ранее мне ничего подобного не попадалось :)


  1. yoz
    21.07.2022 10:48

    Может просто не высовывать NAS наружу? Те же кунапы и синолоджи имеют пакеты банального openvpn сервера, что отрежет 99% возможностей его поломать.


  1. Didimus
    22.07.2022 08:32

    1. В чем проблема собрать NAS на традиционных ОС, которые обновляются и безопасностью которых занимаются намного плотнее? Например, сборки, предназначенные для веб-серверов

    2. Непонятно, зачем домашний NAS к интернету подключать. Используйте прокси в виде домашней машины, а доступ к NAS-у только по самбе

    3. Пока не используйте, выключайте NAS