Як можна проникнути на будь-яку машину Linux через grub2 secure?


52

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

  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. Тепер у вас є кореневий доступ просто:

    mount -o remount,rw /
    passwd user
    mount -o remount,ro / 
    sync
    
  4. перезавантажте комп'ютер, і ви переможете.

Моє запитання полягає в тому, як можна перейти на будь-яку машину Linux через grub2 secure? Я не розумію цього факту щодо Linux, дякую за відповіді.


51
Хто сказав, що фізичний доступ потрібно зробити неможливим? Якщо у когось фізичний доступ, -ALL- ставки -OFF-. Власник машини повинен - ​​ЗАВЖДИ - мати доступ до своєї машини, коли він знаходиться поруч. Інакше можна було би цегляно цеглити без способів відновлення.
Rinzwind

7
і ви можете поскаржитися на це: а як щодо вставлення живого DVD / usb в систему? Або виймаючи диск, поміщаючи його в іншу машину і ddдиска? І "linux"? Працює і для інших систем, які також використовують grub ... windows з іншого боку ... коли Windows ламається ... ви, ймовірно, можете лише форматувати систему: P
Rinzwind

10
Щоб бути повністю захищеним, вам потрібно це рішення
Anwar

5
О, не товариші! @Clutchy відкрив нашу таємницю. Усі ми повинні приймати ціанідні капсули зараз.
Паульзаг

3
@paulzag Зрозумів, я збираюся запустити механізм самознищення серверної кімнати. Слава RMS!
Каз Вулф

Відповіді:


108

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

Тому що якби Linux вирішив почати це робити, хакери просто експлуатуватимуть інші дірки в безпеці. Перше правило безпеки полягає в тому, що якщо я маю фізичний доступ до вашої системи, це закінчиться грою. Я переміг.

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

Але Каз, як це можливо? Я встановив пароль на своєму Grub, щоб ви не могли змінити мене initна Bash!

О, ти це зробив, чи не так? Цікаво, адже це схоже на ваш фотоальбом. GRUB взагалі не має властивого фактору безпеки. Це просто завантажувач , а не крок у захищеному ланцюзі завантаження та аутентифікації. Встановлений вами "пароль" насправді досить просто обійти.

Що, і що sysadmin не здійснює завантажувальний привід на них у надзвичайних ситуаціях?

Але як?! Ви не знаєте мого пароля (який зовсім не P@ssw0rdbtw)

Так, але це не заважає мені відкривати ваш комп'ютер і витягувати ваш жорсткий диск. Звідси - це кілька простих кроків, щоб встановити диск на моєму комп’ютері, надаючи мені доступ до всієї вашої системи. Це також має дивовижну перевагу в обход вашого пароля BIOS. Це, або я міг просто скинути ваш CMOS. Або.

Отже ... як я не дозволяю вам отримати доступ до моїх даних?

Простий. Тримайте ваш комп'ютер подалі від мене. Якщо я можу доторкнутися до нього, отримати доступ до клавіатури, вставити власні флешки або розібрати її, я можу перемогти.

Отже, чи можу я просто помістити свій комп'ютер у центр обробки даних чи щось таке? Це досить безпечно, правда?

Так, вони є. Але ви забуваєте, що люди теж підлягають хакерству, і, маючи достатньо часу та підготовки, я, мабуть, міг би потрапити в цей центр обробки даних і зафіксувати всі ті приємні, солодкі дані з вашого комп’ютера. Але я відволікаюсь. Тут ми маємо справу з реальними рішеннями.

Гаразд, так ти назвав мій блеф. Я не можу помістити його в центр обробки даних. Чи можу я просто зашифрувати домашню папку чи щось таке?

Звичайно, можна! Це ваш комп'ютер! Чи допоможе це зупинити мене? Не найменше. Я можу просто замінити щось важливе, як-от /usr/bin/firefoxвласну шкідливу програму. Наступного разу, коли ви відкриєте Firefox, всі ваші таємні дані будуть передані на секретний сервер десь секретом. І ти навіть не дізнаєшся. Або якщо я маю частий доступ до вашої машини, я можу просто налаштувати вашу домашню папку, яку потрібно скопіювати, /usr/share/nonsecrets/home/або будь-яке подібне (незашифроване) місце.

Гаразд, що з повним шифруванням диска?

Це ... насправді досить добре. Однак це ще не ідеально! Я завжди можу виконувати атаку з холодним завантаженням, використовуючи свою надійну банку зі стисненим повітрям. Або я можу просто підключити апаратний кейлоггер на комп'ютер. Один явно простіше, ніж інший, але спосіб насправді не має значення.

У переважній більшості випадків це гарне місце для зупинки. Можливо, з’єднайте його з TPM (обговорюється нижче), і ви золото. Якщо ви не розгнівали агенцію з трьома листами або дуже мотивованого хакера, ніхто не збирається докладати зусиль, необхідних пройти цей етап.

Звичайно, я все ще можу змусити вас встановити деякі шкідливі програми / на задньому плані, пропонуючи вам PPA або подібне, але це потрапляє в саму мутню область довіри користувачів.

Отже ... наскільки iPhone такі безпечні? Навіть при фізичному доступі ти не можеш багато чого зробити.

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

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

А як щодо TPM / SmartCards / [вставте сюди криптовалюту]?

Що ж, тепер ви поєднуєте фізичну безпеку в рівняння, все ще стає складніше. Але це насправді не є рішенням, оскільки TPM порівняно слабкі і все шифрування не відбувається на мікросхемі. Якщо ваш TPM (якимось чином) досить сильний там, де він шифрує сам чіп (у деяких дуже фантазійних жорстких дисків є щось подібне), ключ ніколи не буде розкритий, і такі речі, як атаки з холодним завантаженням, неможливі. Однак ключі (або необроблені дані) все ще можуть бути присутніми в системній шині, тобто вони можуть бути перехоплені.

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

Тепер, якщо ви берете з собою свою TPM / смарт-карту / що завгодно, і все шифрування фактично робиться на мікросхемі (це означає, що ваш ключ взагалі не зберігається в оперативній пам’яті), тоді мені практично неможливо ввійти в все, якщо ви (користувач) щось підсунути і щось забути. Тобто, якщо я не знайду способу прочитати (незашифрований) ключ із системної шини.

Але що робити, якщо я маю певну форму виконання криптографічного / цифрового підпису у всіх своїх програмах, щоб переконатися, що вони легітимні?

Як показали різні компанії смартфонів, це дуже хороший спосіб поводження з безпекою. Тепер ви скасували мою здатність вводити якийсь код на вашу машину, щоб робити шкідливі речі, що є плюсом. Ефективно ви відключили мою здатність віддалено зберігати постійний доступ до вашої машини, що є величезним плюсом.

Однак це все ще не ідеальний метод! Застосування цифрового підпису не зупинить апаратний кейлоггер. Він також повинен бути повністю позбавлений помилок, це означає, що я не можу знайти подвиг, який дозволяє завантажувати мій власний сертифікат у магазин сертифікатів вашої машини. Крім того, це означає, що кожен виконуваний файл у вашій системі повинен бути підписаний . Якщо ви не хочете вручну пройти і не зробити все це, буде дуже важко знайти пакети Apt тощо, які мають цифровий підпис на всьому. Аналогічно, це блокує законне використання для непідписаних виконуваних файлів, а саме відновлення. Що робити, якщо ви зламаєте щось важливе, і у вас немає (підписаного) виконуваного файлу, щоб це виправити? Ну, там іде ваша система.

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

Отже, неможливо утримати тебе від мого комп’ютера?

Ефективно, так, вибачте. Якщо у мене фізичний доступ і достатня мотивація, завжди можна потрапити в систему. Немає винятків.

Насправді, однак, більшість злих людей не намагатимуться йти так далеко лише для деяких зображень котів. Зазвичай просто повного дискового шифрування (або навіть просто запущеного Linux!) Достатньо, щоб утримати більшість дітей-скриптів від отримання двох секунд слави.

TL; DR: Просто не дозволяйте людям, яким ви не довіряєте біля свого комп’ютера. Це, як правило, досить добре.


Або просто зашифруйте домашній розділ.
user13161

5
@ user13161 Це все ще дозволяє зловмисному суб'єкту замінити щось на кшталт /bin/bashвласного злого сценарію, який спричинить погані речі з незашифрованою домашньою папкою.
Каз Вулф

GRUB дозволяє використовувати зашифрований завантажувальний розділ LUKS, в якому сценарій пароль для завантаження неможливо обійти. Дивіться wiki.archlinux.org/index.php/Dm-crypt/… .
v7d8dpo4

@ v7d8dpo4: Шифрування /bootнасправді марний imo. Він додасть пароль для завантаження, але вам все одно потрібно буде розшифрувати, /щоб насправді зробити щось корисне, тому ви просто додаєте додаткові накладні витрати за невелику користь. Крім того, я можу просто використовувати власний диск Grub, щоб обійти ваш зашифрований завантажувач, якщо він лише /boot захищений. Або я просто можу прочитати диск, як звичайний.
Каз Вулф

2
Айфони (6 далі, я думаю) не тільки мають повне "дискове" шифрування, але це пов'язано з пінкодом / біометричним входом. Тож якщо ви хочете, щоб ваш комп’ютер відмовився завантажуватися без втручання, ви також можете прив'язати його шифрування диска до апаратного маркера / пароля / модуля TPM. Це просто досить багато роботи.
pjc50

17

Якщо ви хочете, щоб його зв'язали, використовуйте пароль . За посиланням:

GRUB 2 Примітки щодо захисту пароля

Grub 2 може встановити вимоги до пароля щодо:

  • Усі меню
  • Конкретні меню
  • Для конкретних користувачів: Наприклад, користувач "Jane" може отримати доступ до 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) щоразу, коли виконується оновлення-grub.

    • Вручну, редагуючи /boot/grub/grub.cfg. Зміни цього файлу будуть видалені, коли update-grubзапущено, а захист паролем буде втрачено.

  • Якщо ввімкнена будь-яка форма захисту паролем GRUB 2, ім'я та пароль суперпользователя потрібні для отримання доступу до командного рядка GRUB 2 та режимів редагування меню.

  • Ім'я користувача та / або пароль не повинні відповідати імені / паролю для входу в Ubuntu.
  • Якщо не використовується функція шифрування паролем GRUB 2, пароль зберігається як звичайний текст у читаному файлі. Щоб отримати вказівки щодо використання цієї функції, див. Розділ Шифрування паролем.

За замовчуванням (!) В цьому випадку юзабіліті козирять безпеку. Якщо ви не можете довіряти людям, які знаходяться навколо вас, постійно тримайте машину з собою. Люди, які потребують більшої безпеки, як правило, шифрують всю свою систему, роблячи необхідність ввести пароль обов'язковим.


Будемо чесними, ці паролі легко обійти фізичним доступом. Вони захищають систему від нубів, але не від зловмисників, які мають деякі базові навички (використання Google вже може бути достатньо) та фізичний доступ.
Командир байтів

3

Ваш навмисний злом починається з цього:

  1. Коли меню grub2 відкриється, натисніть "e" для редагування параметрів запуску Linux

Але ви можете захистити паролем eпараметр, про який говорилося тут: Як додати захист паролем GRUB до процесу завантаження ОС замість редагування параметрів завантаження

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

Завдяки вашому питанню вони тільки що дізналися більше. Маючи вищенаведене посилання, системні адміністратори мають ще одне завдання зі свого списку завдань щодо захисту виробничого середовища.


1
Будемо чесними, ці паролі легко обійти фізичним доступом. Вони захищають систему від нубів, але не від зловмисників, які мають деякі базові навички (використання Google вже може бути достатньо) та фізичний доступ.
Байт-командир

@ByteCommander Вся справа у фізичному доступі. BIOS може бути налаштований з паролем адміністратора, щоб він ніколи не міг завантажуватися з USB або DVD. Хтось може відкрити корпус, короткі два штифти на материнській платі та пароль скидаються на заготовки (для зміни порядку завантаження BIOS не потрібен пароль).
WinEunuuchs2Unix

0

Для того, щоб зробити ґрунт безпечним, вам потрібно захистити доступ до нього. Це можна зробити просто за допомогою пароля жорсткого диска, і я тут говорю про безпеку диска, де він зберігається в прошивці самого диска. Диск не можна читати з або записувати на нього. Звідси не тільки, що груб недоступний без пароля, і ваші дані теж.

Оскільки пароль зберігається на самому диску, переміщення його в іншу систему не допоможе хакеру.

Існує програмне забезпечення, навколо якого можна видалити пароль з дисків деяких виробників, але воно також ефективно протирає диск. Тож ваші дані все ще є безпечними.


Пізній коментар, але я хотів би зазначити, що іноді це може бути переможене простими способами. Можливо, є якась (задокументована) команда виробника для очищення пароля жорсткого диска, не запускаючи формат. Так само я міг би просто "запозичити" платівки жорсткого диска і покласти їх у свій власний контролер - пароль (як правило) зберігається в NVRAM контролера, а не на самих плат.
Каз Вулф

@Kaz, ви абсолютно праві в тому, що ви говорите, але в вашій фразі слід наголошувати на слові "періодично", "це може періодично перемагати простими способами". Оскільки технологія жорсткого диска продовжує вдосконалюватися, всупереч сказаному вами, майже всі виробники зараз зберігають свою прошивку та паролі на тарілках, тож зміна картки контролера не допоможе. Навколо існує програмне забезпечення для розблокування накопичувачів без витирання даних, але воно працює лише на старих накопичувачах.
Скубі-2
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.