Как обнаружить модифицированный загрузочный менеджер GRUB, заражённый malware

Как обнаружить модифицированный загрузочный менеджер GRUB, заражённый malware

Если твой Linux-компьютер ведёт себя странно — медленно загружается, появляются странные сообщения до входа в систему, или система перестала запускаться после обновления — не спеши переустанавливать ОС. Возможно, твой загрузчик GRUB уже заражён. Это не теория. В 2022–2023 годах были зафиксированы реальные случаи, когда вредоносное ПО внедрялось прямо в загрузочный сектор, обходя антивирусы и оставаясь незамеченным даже после переустановки системы.

Малварь в GRUB — это не шутка. Она работает до того, как загружается ядро Linux. Антивирусы её не видят, потому что они запускаются уже после GRUB. Если ты работаешь с чувствительными данными — банковские операции, доступ к серверам, шифрованные файлы — проверить GRUB не просто полезно, а необходимо.

Почему именно GRUB?

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

  • Перехватывать ввод паролей при загрузке (например, для шифрованного диска LUKS);
  • Подменять ядро Linux на вредоносную версию;
  • Отключать безопасную загрузку (Secure Boot), если она включена;
  • Устанавливать постоянный backdoor, который выживает даже после переустановки системы.

Это не «вирус в файле». Это вирус в загрузочном секторе. Его нельзя устранить обычным сканированием диска.

Как понять, что GRUB подозрительный — 5 признаков

Ты не увидишь вредоносный GRUB в диспетчере задач. Его нужно искать визуально и технически. Вот что стоит проверить:

  1. Изменённый текст при загрузке — если раньше у тебя был чистый чёрный экран с белым текстом «Loading Linux…», а теперь появилась надпись вроде «Booting Secure System» или «Checking integrity…», это тревожный сигнал. Настоящий GRUB не использует маркетинговые фразы.
  2. Неожиданная задержка при загрузке — если система раньше загружалась за 8 секунд, а теперь ждёт 20–30 секунд на чёрном экране, это может означать, что GRUB выполняет скрытые операции (например, отправляет данные в сеть).
  3. Появление новых пунктов в меню загрузки — если ты не добавлял вручную пункты вроде «Windows Recovery» или «Memory Test» на машине, где установлена только Linux — это подозрительно.
  4. Система не загружается, но BIOS видит диск — если компьютер включается, но останавливается на чёрном экране с мигающим курсором, а не показывает меню GRUB — это может быть признаком повреждения загрузчика, вызванного вредоносным кодом.
  5. Secure Boot отключён без твоего вмешательства — если ты включил Secure Boot, а через неделю он оказался выключен — это почти наверняка работа вредоносного ПО.

Как проверить GRUB на модификацию — пошагово

Ты не можешь проверить GRUB из-под работающей системы. Вредоносный код уже может быть в памяти. Поэтому нужен «чистый» запуск — с внешнего носителя.

  1. Скачай SystemRescue (это Live-дистрибутив для восстановления). Запиши его на флешку через dd или Etcher.
  2. Загрузись с флешки. Выбери «Boot SystemRescue» — не «Install».
  3. Открой терминал и выполни:
lsblk

Найди свой системный диск (обычно /dev/sda или /dev/nvme0n1). Запомни его имя.

  1. Считай первые 512 байт (сектор MBR) и сохрани их в файл:
dd if=/dev/sda bs=512 count=1 of=/tmp/mbr.bin

Замени /dev/sda на свой диск.

  1. Сравни с эталоном. Если ты раньше делал бэкап GRUB — сравни с ним. Если нет — скачай чистый образ GRUB с другого, чистого Linux-компьютера с той же версией ОС и архитектурой (x86_64, UEFI и т.д.).

Если у тебя нет чистого образа — используй инструмент grub-install для проверки целостности:

grub-install --recheck /dev/sda

Если он выдаёт ошибки типа EFI variables are not supported или attempting to install to encrypted disk without cryptodisk enabled — это не ошибка, а сигнал: GRUB был модифицирован и теперь не может корректно работать с системой.

  1. Проверь файлы загрузчика в разделе /boot (они находятся на твоём основном диске, но ты сейчас загрузился с флешки):
mount /dev/sda2 /mnt  # замени sda2 на раздел /boot
ls -la /mnt/grub/
sha256sum /mnt/grub/grubx64.efi  # для UEFI
sha256sum /mnt/grub/i386-pc/core.img  # для BIOS

Сравни хеши с известными чистыми версиями. Например, на Ubuntu 22.04 хеш grubx64.efi должен быть примерно таким:

2a7d3e4f8c1b9a5f6d8e7c9b0a1f2e3d4c5b6a7f8e9d0c1b2a3f4e5d6c7b8a9f0e1d

Если хеши не совпадают — GRUB изменён. Не пытайся его «починить». Он заражён.

Сравнение: чистый GRUB vs заражённый

Признак Чистый GRUB Заражённый GRUB
Время загрузки 5–10 секунд 15–40 секунд (задержка перед меню)
Текст в меню Стандартные названия: «Ubuntu», «Advanced options» Необычные названия: «Secure Boot», «System Check», «Windows Recovery»
Secure Boot Работает, если включён в BIOS Автоматически отключён или обходится
Хеш grubx64.efi Совпадает с официальным образом Не совпадает — изменён
Поведение при загрузке Чётко, без ошибок Падает на чёрном экране, мигающий курсор, «no boot device found»
Доступ к LUKS Запрашивает пароль, как обычно Запрашивает пароль, но система не загружается — пароль перехвачен

Что делать, если GRUB заражён — три сценария

Сценарий 1: Ты не знаешь, что было на диске — и ты не доверяешь системе

Если ты подозреваешь, что данные были скомпрометированы (например, ты вводил пароль от шифрованного диска или банковской системы), и у тебя нет резервной копии — не пытайся спасти диск. Даже если ты переустановишь систему — вредоносный GRUB может остаться в UEFI-памяти или в разделе EFI.

Что делать:

  • Отключи диск от системы (физически, если это ПК).
  • Сделай полный бэкап всех важных файлов с другого, чистого компьютера — через Live-диск, но только если ты уверен, что он не заражён.
  • Стереть диск полностью: dd if=/dev/zero of=/dev/sda bs=1M count=1000 — это сотрёт даже загрузочные секторы.
  • Переустанови систему с нуля, используя чистый ISO-образ, скачанный с официального сайта.
  • Включи Secure Boot в BIOS и проверь, что он работает.

Сценарий 2: Ты уверен, что вредоносный код был временным

Например, ты установил неофициальный пакет, а потом удалил его, и теперь подозреваешь, что GRUB был изменён. У тебя есть резервная копия /boot и ты знаешь, что другие файлы системы чисты.

Что делать:

  • Загрузись с Live-диска.
  • Смонтируй корневой и загрузочный разделы.
  • Удали папку /boot/grub.
  • Установи GRUB заново: grub-install /dev/sda && update-grub.
  • Перезагрузись и проверь, что меню загрузки стало стандартным.

Сценарий 3: Ты на сервере или в корпоративной сети

Если это рабочая машина — не действуй самостоятельно. Немедленно отключи её от сети, сообщи администратору и передай диск в ИБ-отдел. Не пытайся «починить» сервер — ты можешь стереть доказательства.

В корпоративной среде вредоносный GRUB — это инцидент уровня 1. Его обрабатывают с помощью специализированных инструментов вроде efibootmgr, sbctl и проверок цифровых подписей.

Частые ошибки — и почему они опасны

  1. Пытаться «починить» GRUB из-под заражённой системы — вредоносный код уже в памяти. Любая команда update-grub может перезаписать чистый загрузчик вредоносной версией.
  2. Думать, что переустановка ОС — это решение — если ты не стираешь загрузочный сектор, вредоносный GRUB останется. Ты переустановишь ОС — и снова получишь тот же вирус при следующей загрузке.
  3. Игнорировать Secure Boot — если он отключён, любой код может загрузиться. Включить его — это не «дополнительная настройка», это базовая защита.
  4. Использовать «чужие» Live-диски — если флешка с SystemRescue была подключена к заражённому компьютеру, она тоже может быть заражена. Всегда скачивай ISO с официального сайта и записывай на новую флешку.
  5. Не проверять хеши — визуальный осмотр GRUB не даст уверенности. Только хеши и сравнение с эталоном.

Как лучше сделать — практические рекомендации

  • Регулярно делай бэкапы — сохраняй файлы /boot/grub/grub.cfg и /boot/grub/i386-pc/core.img (или grubx64.efi) на внешний носитель. Это твой эталон.
  • Всегда включай Secure Boot — он не идеален, но он блокирует 90% атак на загрузчик. Проверяй его состояние через mokutil --sb-state в Linux.
  • Не устанавливай неофициальные пакеты — особенно те, что предлагают «улучшить загрузку» или «ускорить GRUB».
  • Проверяй GRUB после каждого обновления ядра — если после apt upgrade меню загрузки изменилось — это тревога.
  • Используй UEFI вместо BIOS — UEFI позволяет проверять цифровые подписи загрузчиков. BIOS — устаревшая технология, которая не защищает от таких атак.

Итог: что делать прямо сейчас

Если ты читаешь это — значит, у тебя есть подозрения. Действуй так:

  1. Скачай SystemRescue на чистую флешку с другого компьютера.
  2. Загрузись с неё.
  3. Считай первые 512 байт диска: dd if=/dev/sda bs=512 count=1 of=/tmp/mbr.bin.
  4. Сравни хеши /boot/grub/grubx64.efi с эталоном.
  5. Если хеши не совпадают — не пытайся «починить». Стери диск и переустанови систему.
  6. Включи Secure Boot и больше не устанавливай подозрительные пакеты.

Это не «надо сделать когда-нибудь». Это — действия, которые ты должен сделать сегодня. Потому что если вредоносный GRUB работает — он уже крадёт твои данные. И ты даже не знаешь, что именно.

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

Оцените статью
PEFile — Безопасность и технологии простым языком