Подписание/Вычисление контрольной суммы ядро для предотвращения/обнаруживания управления

Из http://en.wikipedia.org/wiki/Thompson_shell#History

"Имя "оболочка" для интерпретатора командной строки и понятия создания оболочки пользовательская программа за пределами ядра операционной системы было представлено в предшественнике Unix Multics".

Далее вниз кроличья нора Википедии находит это: "Louis Pouzin, представленный термин оболочка для командного языка, используемого в Multics"

Я не считал его полностью, но его запись здесь может дать Вам ответ: http://www.multicians.org/shell.html

Править: действительно это не объяснено. Он просто "ввел" термин. Не забавная история Вы надеялись на, не так ли?

8
21.11.2011, 22:18
2 ответа

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

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

Самый легкий путь нападения является man-in-the-middle, куда взломщик выполняет Вашу нормальную операционную систему под некоторой виртуальной машиной. Слой виртуальной машины передает Ваш вход к Вашей желаемой операционной системе и передает вывод назад. Но это также записывает Ваши нажатия клавиш (мммм, пароли) на стороне, отслеживает закрытые ключи от памяти ОС и так далее.

Для предотвращения этой формы нападения у Вас должен быть корень доверия: компонент системы, которой Вы доверяете по причине кроме того, потому что некоторый другой компонент системы говорит так. Другими словами, необходимо запустить где-нибудь. Запуск с аппаратных средств в Вашем владении является хорошим началом; Вы могли сохранить свою операционную систему на флеш-карте, которая не оставляет Ваш вид, и разъем, что только в аппаратных средствах, в которых у Вас есть достаточная уверенность (аппаратные средства могут иметь вредоносное программное обеспечение!). Следите, если Вы готовы доверять компьютеру, Вы могли бы доверять его жесткому диску также.

Существует техническое решение для устранения разрыва между доверием маленькой микросхеме и доверием целому настольному или портативному компьютеру. Некоторые ПК имеют TPM (модуль надежной платформы), который, среди других, может проверить, что только известная операционная система может быть загружена. Доверяемая Личинка поддерживает TPMs, таким образом, с TPM плюс Доверяемая Личинка, у Вас может быть обеспечение, что ядро, которое Вы выполняете, является тем, которое Вы утвердили.

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

6
27.01.2020, 20:13
  • 1
    +1 для ссылки на большую потенциальную ловушку TPM (иначе Предательские Вычисления) –  Eli Heady 22.11.2011, 03:33
  • 2
    Вы не даете фактических решений, просто упоминаете популярные связанные с безопасностью фразы. То, что Вы говорите о нападении MITM, является угрозой, которая игнорирует основную идею вопроса OP: Используя проверяющий контрольную сумму сценарий, который позволяет начальной загрузке системы, только если определенные условия соблюдены. В той точке не было бы никакой проблемы в проверке, что фактическое используемое оборудование - каково это должно быть, не VM. –  rozcietrzewiacz 22.11.2011, 10:52

Загруженное ядро находится в памяти. Можно сделать сценарий, который определит местоположение его в /dev/mem и, зная размер, вычислите и проверьте его контрольную сумму.

Можно было также зашифровать целый HD без потребности /boot раздел и (почти) никакой способ изменить ядро. Как? двумя путями я могу думать:

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

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

Править: Заметьте, что все, это просто единственные шаги к "доверяемой" или "проверенной" начальной загрузке (на который Gilles справедливо указал). Полный механизм должен также принять во внимание то, что происходит на этапе загрузчика и как используемое оборудование определяется. Взгляните на то, как Google Chromium OS делает это.

-1
27.01.2020, 20:13
  • 1
    Это будет работать? Я не уверен; я не знаю бесцеремонно, изменяет ли ядро свой код в памяти после того, как это запускается. Я знаю, что Вы не можете проверить модуль тот путь, потому что модуль связан в ядро (изменяющий некоторые адреса тут и там), когда это загружается. Это обеспечит желаемые свойства безопасности? Нет, см. мой ответ. Целостность хитра! –  Gilles 'SO- stop being evil' 22.11.2011, 03:09
  • 2
    , кажется, что Вы не прочитали мой целый ответ. Первый абзац, к которому Вы обращаетесь, является только прямым ответом на то, что действительно спросили. Остальная часть моего ответа представляет опции, подобные методу, который Вы упомянули, но лучше, потому что они безопасны против модификации ядра (в отличие от USB pendrive). –  rozcietrzewiacz 22.11.2011, 11:01
  • 3
    @Gilles Забыл к Вы в предыдущем комментарии. Кроме того, я только что проверил то, в чем Вы были не уверены: сделал дамп изображения ядра в оперативной памяти, затем добавил набор модулей, сделал второй дамп региона, сравненного - то же. Можно использовать это. –  rozcietrzewiacz 22.11.2011, 11:24

Теги

Похожие вопросы