Как можно взломать любой Linux-компьютер через grub2 secure?

52

Насколько безопасна способность человека, получившего физический доступ к вашему компьютеру, получить права root с помощью этих шагов?

  1. Когда откроется меню grub2, нажмите e для редактирования параметров запуска Linux
  2. Изменить:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro   quiet splash" 
    

    чтобы:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro init=/bin/bash"
    
  3. Теперь у вас есть доступ с правами root:

    mount -o remount,rw /
    passwd user
    mount -o remount,ro / 
    sync
    
  4. перезагрузите компьютер и вы выиграете.

Мой вопрос: как можно взломать любой Linux-компьютер через grub2 secure? Я не понимаю этот факт о Linux, спасибо за ваши ответы.

Clutchy
источник
51
Кто сказал, что физический доступ должен быть невозможным? Когда кто-то имеет физический доступ -ВСЕ- ставки -OFF-. Владелец машины должен всегда иметь доступ к своей машине, когда он рядом с ней. В противном случае можно было бы замуровать его без способов восстановления.
Rinzwind
7
и вы можете пожаловаться на это: но как насчет встраивания живого DVD / USB в систему? Или вынуть диск, вставить его в другой компьютер и вставить ddдиск? А "линукс"? Работает для других систем, которые тоже используют grub ... окна с другой стороны ... когда окна ломаются ... вы, вероятно, можете только отформатировать систему: P
Rinzwind
10
Чтобы быть полностью защищенным, вам нужно это решение
Anwar
5
О нет, товарищи! @ Clutchy открыл наш секрет. Мы все должны принять капсулы с цианидом.
Ползаг
3
@paulzag Понятно, я собираюсь запустить механизм самоуничтожения серверной комнаты. Слава RMS!
Каз Вулф

Ответы:

108

Насколько безопасна способность человека, получившего физический доступ к вашему компьютеру, получить права root [используя Grub / Bash]?

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

Кроме того, представьте, что ваш X-сервер сломался, и у вас больше нет графического интерфейса. Вам нужно загрузиться в консоль восстановления, чтобы исправить ситуацию, но вы не можете, потому что это небезопасно. В этом случае у вас полностью сломанная система, но, по крайней мере, она "безопасна!"

Но Каз, как это возможно? Я установил пароль на моем Grub, чтобы вы не могли изменить мой initна Bash!

О, ты сделал, не так ли? Интересно, потому что это похоже на ваш фотоальбом. GRUB не имеет никакого присущего ему фактора безопасности. Это просто загрузчик , а не шаг в какой-то безопасной цепочке загрузки и аутентификации. «Пароль», который вы установили, на самом деле чертовски легко обойти.

Что, и какой сисадмин не несет загрузочный диск на них в чрезвычайных ситуациях?

Но как?! Вы не знаете мой пароль (который совершенно не P@ssw0rdкстати)

Да, но это не мешает мне открыть твой компьютер и вытащить твой жесткий диск. Оттуда, это всего лишь пара простых шагов, чтобы смонтировать диск на моем компьютере, что дает мне доступ ко всей вашей системе. Это также имеет огромное преимущество в обход вашего пароля BIOS. Это, или я мог бы просто сбросить вашу CMOS. Либо / или.

Итак ... как я не позволю вам получить доступ к моим данным?

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

Итак, могу ли я просто поставить свой компьютер в центр обработки данных или что-то? Это довольно безопасно, верно?

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

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

Что вы можете! Это твой компьютер! Поможет ли это мне остановить? Ни в малейшей степени. Я могу просто заменить что-то важное, например, /usr/bin/firefoxмоей собственной вредоносной программой. В следующий раз, когда вы откроете Firefox, все ваши секретные данные будут перенаправлены на какой-то секретный сервер где-нибудь в секрете. И ты даже не узнаешь. Или, если у меня частый доступ к вашему компьютеру, я могу просто настроить вашу домашнюю папку для копирования /usr/share/nonsecrets/home/или любое другое (не зашифрованное) местоположение.

Хорошо, а как насчет полного шифрования диска?

Это ... на самом деле довольно хорошо. Тем не менее, это еще не идеально! Я всегда могу выполнить холодную атаку, используя мой надёжный баллончик со сжатым воздухом. Или я могу просто подключить аппаратный кейлоггер к вашему компьютеру. Одно очевидно легче другого, но путь не имеет значения.

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

Конечно, я все еще могу заставить вас установить некоторые вредоносные программы / бэкдоры, предложив вам PPA или аналогичный, но это попадает в очень темную область доверия пользователей.

Итак ... как iPhone настолько безопасен? Даже при физическом доступе вы мало что можете сделать.

Ну да и нет. Я имею в виду, что если бы я был достаточно мотивирован, я мог бы прочитать флэш-чип и получить все, что мне нужно. Но айфоны принципиально отличаются, поскольку они полностью заблокированы платформы. Но в то же время вы действительно жертвуете удобством использования и возможностью восстанавливаться после катастрофических сбоев. GRUB (за исключением случаев, когда он специально разработан) не является цепочкой в ​​системе безопасности. На самом деле, у большинства систем Linux цепочки безопасности запускаются после загрузки, поэтому после того, как GRUB завершит свою работу.

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

Но как насчет TPM / SmartCards / [вставить криптовалюту здесь]?

Что ж, теперь вы объединяете физическую безопасность в уравнение, оно еще более усложняется. Но на самом деле это не решение, потому что TPM относительно слабы, а шифрование не выполняется на кристалле. Если ваш TPM (как-то) достаточно силен, когда он выполняет шифрование на самом чипе (на некоторых очень причудливых жестких дисках есть что-то подобное), ключ никогда не будет раскрыт, а такие вещи, как холодная загрузка, невозможны. Однако ключи (или необработанные данные) могут по-прежнему присутствовать в системной шине, что означает, что они могут быть перехвачены.

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

Теперь, если вы берете свою TPM / смарт-карту / что-нибудь еще с собой, и все шифрование фактически выполняется на чипе (то есть ваш ключ вообще не хранится в ОЗУ), то для меня практически невозможно войти в все, если только вы (пользователь) не заблудитесь и не забудете что-то. То есть, если я не найду способ прочитать (незашифрованный) ключ с системной шины.

Но что, если у меня есть какая-либо форма криптографической / цифровой подписи во всех моих программах, чтобы убедиться, что они законны?

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

Тем не менее, это все еще не идеальный метод! Применение цифровой подписи не остановит аппаратный кейлоггер, например. Это также должно быть абсолютно без ошибок, то есть я не могу найти эксплойт, который позволил бы мне загрузить свой собственный сертификат в хранилище сертификатов вашей машины. Кроме того, это означает, что каждый исполняемый файл в вашей системе должен быть подписан . Если вы не хотите вручную проходить и делать все это, будет очень трудно найти пакеты Apt и тому подобное, которые имеют цифровые подписи на всем. Аналогичным образом это блокирует законное использование неподписанных исполняемых файлов, а именно восстановление. Что если вы сломаете что-то важное, и у вас нет (подписанного) исполняемого файла, чтобы это исправить? Ну, вот и ваша система.

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

Значит, невозможно держать тебя подальше от моего компьютера?

По сути, да, извините. Если у меня есть физический доступ и достаточно мотивации, всегда можно попасть в систему. Без исключений.

В действительности, однако, большинство злых людей не будут пытаться зайти так далеко просто ради некоторых фотографий кошек. Как правило, только полное шифрование диска (или даже просто запуск Linux!) Достаточно, чтобы удержать большинство сценаристов от двух секунд славы.

TL; DR: Только не позволяйте людям, которым вы не доверяете, находиться рядом с вашим компьютером. Обычно это достаточно хорошо.

Каз Вулф
источник
Или просто зашифруйте свой домашний раздел.
user13161 26.10.16
5
@ user13161 Это по-прежнему позволяет злонамеренному объекту заменить что-то вроде /bin/bashсвоего собственного злого скрипта, который будет делать плохие вещи с незашифрованной домашней папкой.
Каз Вулф
GRUB позволяет использовать зашифрованный загрузочный раздел LUKS, при котором пароль для загрузки не может быть обойден. См. Wiki.archlinux.org/index.php/Dm-crypt/… .
v7d8dpo4
@ v7d8dpo4: шифрование /bootна самом деле бесполезно. Он добавит загрузочный пароль, но вам все равно нужно расшифровать, /чтобы сделать что-то действительно полезное, поэтому вы просто добавляете дополнительные издержки, которые приносят мало пользы. Кроме того, я могу просто использовать свой собственный диск Grub, чтобы обойти вашу зашифрованную загрузку, если только /boot она защищена. Или я могу просто читать диск как обычно.
Kaz Wolfe
2
Я думаю, что iPhone (начиная с 6 лет) не только имеет полное «дисковое» шифрование, но и связан с пин-кодом / биометрической регистрацией. Поэтому, если вы хотите, чтобы ваш компьютер отказывался загружаться без вмешательства, вы также можете привязать шифрование его диска к модулю аппаратного токена / пароля / TPM. Это просто довольно много работы.
pjc50
17

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

GRUB 2 Примечания по защите паролем

Grub 2 может устанавливать требования к паролю для:

  • Все меню
  • Специальные меню
  • Для определенных пользователей: например, пользователь «Джейн» может получить доступ к Ubuntu, но не к режиму восстановления Windows, который доступен только «Джону», суперпользователю.
  • Администратор должен включить защиту паролем вручную, отредактировав системные файлы GRUB 2.

  • Пользователи и пароли должны быть указаны в том /etc/grub.d/00_headerили ином файле скрипта GRUB 2.

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

    • Вручную редактируя /etc/grub.d/сценарии Grub 2, такие как 10_linuxи30_os-prober
    • Вручную путем редактирования пользовательского файла конфигурации, созданного пользователем.

    • Любой из описанных выше способов позволяет GRUB 2 автоматически добавлять требование пароля в файл конфигурации (grub.cfg) каждый раз, когда выполняется update-grub.

    • Вручную, редактируя /boot/grub/grub.cfg. Изменения в этом файле будут удалены при update-grubзапуске и защита паролем будет потеряна.

  • Если включена какая-либо форма защиты паролем GRUB 2, имя и пароль суперпользователя необходимы для доступа к командной строке GRUB 2 и режимам редактирования меню.

  • Имя пользователя и / или пароль не обязательно должны совпадать с именем и паролем для входа в Ubuntu.
  • Если не используется функция шифрования пароля GRUB 2, пароль сохраняется в виде простого текста в читаемом файле. См. Раздел «Шифрование пароля» для получения инструкций по использованию этой функции.

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

Rinzwind
источник
Давайте будем честными, эти пароли можно легко обойти с помощью физического доступа. Они защищают систему от нубов, но не от злоумышленников, обладающих некоторыми базовыми навыками (использование Google может быть уже достаточно) и физического доступа.
Byte Commander
3

Ваш преднамеренный взлом начинается с этого:

  1. Когда откроется меню grub2, нажмите «e» для редактирования параметров запуска linux.

Но вы можете защитить паролем eпараметр, как описано здесь: Как добавить защиту паролем GRUB в процесс загрузки ОС, а не при редактировании параметров загрузки

Вы можете выполнить дополнительный шаг шифрования пароля grub, как описано в ссылке. В самом деле, когда около 3% населения (дикие догадки) используют Linux / Ubuntu дома, системным администраторам неплохо бы защитить от eработы в производственных системах на работе. Я предполагаю, что если Ubuntu будет использоваться на работе, то 30-40% будут использовать его и дома, и, возможно, 10% из них будут учиться делать это eв своих домашних системах.

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

WinEunuuchs2Unix
источник
1
Давайте будем честными, эти пароли можно легко обойти с помощью физического доступа. Они защищают систему от нубов, но не от злоумышленников, обладающих некоторыми базовыми навыками (использование Google может быть уже достаточно) и физического доступа.
Byte Commander
@ByteCommander Все дело в физическом доступе. BIOS можно настроить с помощью пароля администратора, чтобы он никогда не загружался с USB или DVD. Кто-то может открыть корпус, короткие два контакта на материнской плате и пароль сбрасывается на пробелы (пароль не требуется для изменения порядка загрузки BIOS).
WinEunuuchs2Unix
0

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

Поскольку пароль хранится на самом диске, его перенос в другую систему не поможет хакеру.

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

Скуби-2
источник
Поздний комментарий, но я хотел бы отметить, что иногда это можно победить простыми способами. Может быть какая-то (задокументированная) команда производителя, чтобы очистить пароль жесткого диска без запуска формата. Точно так же я мог бы просто «одолжить» жесткие диски жесткого диска и поместить их в свой собственный контроллер - пароль (как правило) хранится в NVRAM контроллера, а не на самих пластинах.
Каз Вулф
@Kaz, вы абсолютно правы в том, что говорите, но в вашей фразе необходимо подчеркнуть «время от времени» слово «иногда это можно победить простыми способами». Поскольку технология жестких дисков продолжает улучшаться, вопреки тому, что вы говорите, почти все производители теперь хранят свои прошивки и пароли на пластинах, поэтому смена платы контроллера не поможет. Существует программное обеспечение для разблокировки дисков без очистки данных, но оно работает только на старых дисках.
Скуби-2