Насколько безопасна способность человека, получившего физический доступ к вашему компьютеру, получить права 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: Только не позволяйте людям, которым вы не доверяете, находиться рядом с вашим компьютером. Обычно это достаточно хорошо.