Уязвимость в GRUB2, которая может угрожать любому. "BootHole".. Linux новости
Поддержать проект

Уязвимость в GRUB2, которая может угрожать любому. «BootHole».

21
Войдите, чтобы ставить лайкимне нравится
Лайков: +13
войдите, чтобы ставить лайки

GRUB2 BootHole

В самом популярном загрузчике GRUB2 выявлена уязвимость, которая получила название BootHole («дырка в ботинке»). Об уязвимости сообщила компания Eclypsium, которая предлагает различные решения для обеспечения безопасности устройств и данных.

Суть проблемы заключается в том, что файл конфигурации grub.cfg загрузчика GRUB2 хранится на диске в обычном незашифрованном тестовом виде. Злоумышленник может добавить в файл определенные значения (длинные куски данных), которые вызовут переполнение внутреннего буфера парсера GRUB2, обрабатывающего данный файл. Это приведет к тому, что в память компьютера запишется вредоносный программный код. Такой код может полностью управлять и изменять под «свои нужды» процесс загрузки компьютера, вносить исправления в код ядра, а затем контролировать операционную систему.

GRUB2 BootHole

Данный вид атаки работает даже при активированном механизме защиты UEFI Secure Boot, так как не все устройства выполняют криптографическую проверку файла grub.cfg.

Одно из условий, которое требуется для совершения подобной атаки, заключается в том, что злоумышленнику предварительно нужно получить root-доступ к системе, чтобы внести изменения в grub.cfg.

Подобную уязвимость не так просто устранить. В процессе исследований в GRUB2 также был обнаружен целый набор уязвимостей, связанных с «BootHole». Некоторые из них можно устранить быстро, для устранения других требуется много времени. Для устранения всех уязвимостей нужно вносить изменения не только в GRUB2, но и обновлять программы установки дистрибутивов, системных загрузчиков и других компонентов.

В Eclypsium привели пример существенного изъяна в самом коде парсера GRUB2, который занимается обработкой grub.cfg. Если в парсере происходит «потенциально фатальная» ошибка, связанная с переполнением буферов при копировании строк, то GRUB2 не прерывает работу, а просто выводит сообщение об ошибке.

 #define YY_FATAL_ERROR(msg) \
do { \
grub_printf (_("fatal error: %s\n"), _(msg)); \
} while (0)

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

Различные компании приступили к исправлению BootHole, но пока полноценных патчей еще нет. Например, разработчики Red Hat Enterprise Linux столкнулись тем, что после внесения исправлений, дистрибутивы Red Hat Enterprise Linux перестают загружаться.

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

21
  • Опубликовано: 02.08.2020

Комментарии

dbunt1tledАктивный
02.08.2020, 10:22
Постоянная ссылка на комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
Мне казалось что если ты научился писать в папку /etc то зачем все эти сложности?
WosduchАктивный
02.08.2020, 10:24
Постоянная ссылка на комментарийРодительский комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: +3
войдите, чтобы ставить лайки
Та да, коль есть привелегии, то можно просто rm -rf/ ввести
WosduchАктивный
02.08.2020, 10:23
Постоянная ссылка на комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
На KDE neon уже прилетел патч)))))))
DrSheppardАктивный
02.08.2020, 18:03
Постоянная ссылка на комментарийРодительский комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
На Solus тоже))
Buntu1Активный
02.08.2020, 10:33
Постоянная ссылка на комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: +5
войдите, чтобы ставить лайки
Мне кажется, если злоумышленник получит root доступ, то он и так без grub сможет уже спокойно взять под контроль операционку)
fallenАктивный
02.08.2020, 10:35
Постоянная ссылка на комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: +1
войдите, чтобы ставить лайки
на Debian buster тоже вчера прилетел, я вот думаю grub пора хоронить, старый совсем...
dragonАктивный
02.08.2020, 12:34
Постоянная ссылка на комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: +1
войдите, чтобы ставить лайки
Нет граба, нет проблем. Но соглашусь, давать злоумышленникам пароль рут... эээ... несколько опрометчиво.
dbunt1tledАктивный
02.08.2020, 12:55
Постоянная ссылка на комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
Я вообще запутался, нам что то не договаривают, если ты не знаешь паролей, то можно спомощью граба можно сбросить любой пароль в том числе и рут, я такое делал на убунту.
Если злоумышленник удаленно завладел рутом и лазиет по твоей машине то накой ему сдался граб.....
Sa-nyaАктивный
06.08.2020, 15:05
Постоянная ссылка на комментарийРодительский комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
отставить "путаться", проблема банально преувеличена
ReiCodeАктивный
02.08.2020, 13:26
Постоянная ссылка на комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: +1
войдите, чтобы ставить лайки
В RedHat патч ломает загрузку на некоторых компьютерах. С CentOS тоже самое
iii
02.08.2020, 14:00
Постоянная ссылка на комментарийРодительский комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
спасибо, дружище. теперь я буду предельно осторожен при обновлении.
wildwiking
02.08.2020, 18:06
Постоянная ссылка на комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
На мой Acer Aspire ES1-533, GRUB2 поставить проблематично. Поэтому использую Refind и другого не надо.
SergejsАктивный
03.08.2020, 17:29
Постоянная ссылка на комментарийРодительский комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
Могу угадать твою проблематичность с грубом на этом ноутбуке,хотя не только на нём,после установки системы с грубом у тебя после перезагрузки ноутбука экран включается и вырубается и так постоянно,тут нужно идти в биос,поставить пороль на него что бы открылись дополнительные настройки и там уже выбрать свой диск с ситемой где установлен HDD0 например если он один стоит,найти запись например grubx64.efi и кликать по ней,откроется строка на синем фоне,там нужно вписть например название дистрибутива и сохранить,после перезагрузится и это запись появится в Boot меню,её и нужно на первое место ставить,тогда появится груб какой и должен быть,если выставишь первым диск то будут проблемы как у тебя
wildwiking
04.08.2020, 05:25
Постоянная ссылка на комментарийРодительский комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
Тут дело в другом, UEFI данного ноутбука жестко привязан к Windows, и при попытке записать какие либо данные в NVRAM происходит зависание. С Refind решается просто refind-install --usedefault /dev/sdX и ни какой записи в NVRAM. Конечно можно и Grub2 настроить, только возни по больше, да и зачем.
SergejsАктивный
04.08.2020, 16:52
Постоянная ссылка на комментарийРодительский комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
Uefi на этой серии ноутбуков стоит InsydeH20 Setup Utility и нету там привязки к виндовсу так как модели этой серии продются не только с виндовс но и с Linux,точнее Limpus Linux,есть у меня сейчас под рукой ноутбук этой серии как раз который шёл в виндой на борту,а два года назад был ещё один но с Linux и ещё раз скажу что дело всё в настройках Uefi а точнее,нужно поставить сначала пороль на Биос,после войти в биос и во вкладке Boot включить Secure Boot (на время операций ) это для того что бы открылись дополнительные настройки ( Secure Boot Mode на вкладке Security ,тут переходим в строку Select an UEFI File as trusted for executing,входим и выбираем диск(если он один физический стоит то будет написано HDD0 если два например вместо дисковода ещё стоит как у меня например то будет ещё одна запись HDD1)выбираем диск и входим (теперь на примере Fedora напишу)входим например в HDD0 будут записи типа таких в столбик <EFI> <System> в федоре выбираем <EFI> входим тут снова записи в столбик <.> <..> <BOOT> <fedora> выбираю федора ,вот тут будет куча записей в столбик но в ней нам нужна запись со словами grub,так как я ставил 64-х битную систему я выбираю grubx64.efi после этого откроется окно синего цвета посреди экрана и там нужно ввести какое либо слово на энглише что будет потом отображаться в боот меню,жмём ок заходим снова в боот раздел и выключаем Security boot,после перезагружаемя что бы твоя запись появилась в боот меню,она будет в самом низу выглядеть примерно так EFI File Boot 0: Fedora(короче что написал то и будет)ставим эту запись кнопкой f6 в самый верхчто бы была самой первой сохраняем как обычно F10 и перезагружаемся,после у тебя загрузится груб нормально,если у тебя две системы стоит то при загрузке и нажатии f12 будет так же выбор с чего загрузится.Забыл добавить что пока ты не дошёл до синего окошка где нужно писать то можно всегда назад уходить кнопкой Esc (короче в разных дистрибутивах в этих настройках разные записи но все они одинаковые со ловом grub и нужно лазить и искать что бы сделать запись,что бы удалить запись с боот меню в тех же скрытых настройках следующая строка после Select an UEFI File as trusted for executing (куда входил) это будет сброс,сбросишь и запись в боот меню что ты создал исчезнет
wildwiking
04.08.2020, 17:50
Постоянная ссылка на комментарийРодительский комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
Вы наверное не верно прочитали о чем я написал выше, при попытки записи в NVRAM ноутбук зависает и выключить можно только кнопкой Power. При установки GRUB2 он как раз и пытается добавить свою запись в NVRAM. Процитирую вас: "вот тут будет куча записей в столбик но в ней нам нужна запись со словами grub,так как я ставил 64-х битную систему я выбираю grubx64.efi" так откуда появится запись grubx64.efi если grub не установился? И да по вашим скринам что вы так любезно выкладываете очень часто, у вас Aspire ES1-431 не знаю что там за прошивка UEFI я же говорил о модели Aspire ES1-533.
SergejsАктивный
04.08.2020, 19:00
Постоянная ссылка на комментарийРодительский комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
Груб ставится всегда,ты его просто не видишь пока не войдёщь в настройки как я писал,раньше я тоже думал как ты пока не влез глубже в биос,у меня был и ES1 531 они от твоего различаются тоько процессором,у ES1 серии всё впринципе одинаковое
dragonАктивный
04.08.2020, 06:42
Постоянная ссылка на комментарийРодительский комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
Не только. После ввода пароля и обретения дополнительных настроек надо сначала отключить никчемнейшую говнофункцию Секьюри бут. Пароль в дальнейшем можно обнулить, хотя я предпочел оставить. Все же гаджет носимый. Попаду, к примеру, с ним в очередной раз в больницу и в мое отсутствие какой-нибудь (плохое слово) из числа упоротых фанатов 10 и фпс приколу для возьмет да и захреначит мне свой пароль. Паранойя, конечно, но решил пароль оставить. Все равно не часто туда заходишь, лишний раз набрать несколько символов совсем не в падлу.
Хоней
03.08.2020, 02:13
Постоянная ссылка на комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
Хм выглядит нечего этот rEFInd Boot Manager, почему он еще не повсюду?
Sa-nyaАктивный
06.08.2020, 15:33
Постоянная ссылка на комментарийРодительский комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
потому что UEFI по умолчанию до сих пор не везде, и еще автоматический поиск систем не во всех случаях работает, в таких случаях надо еще конфиг править ручками
fallenАктивный
03.08.2020, 10:13
Постоянная ссылка на комментарий
Войдите, чтобы ставить лайкимне нравится
Лайков: 0
войдите, чтобы ставить лайки
мда... сегодня после недолгих размышлений снес grub к чертям, оставил rEFInd грузить ядро, а так же добавил пустышку grub-3.0, что бы не прилетал граб обратно с обновами.

Написать комментарий

Ваше имя:
Текст комментария: