Несмотря на несколько академичное название, тема носит вполне себе практичный характер.
Когда мы видим заголовки новостей об очередном успешном взломе чатов Telegram или WhatsApp (ЦРУ, Иранскими спецслужбами, Zimperium – нужное подчеркнуть), людям достаточно часто приходится объяснять, что компрометация операционной системы или аккаунта пользователя не является синонимом слабости защиты самого приложения, и это не является поводом отказаться от пользования своим любимым мессенджером, т.к. на его месте может оказаться без принципиальной разницы любой другой. А если вы, например, загрузившись с флэшки «перезабиваете» пароли администратора любой своей Windows-машины, это отнюдь не говорит о чудовищных дырах в «мастдае», а о вас – как о супер-хакере, взломавшем детище Microsoft. Хотелось бы немного прояснить вопросы среды, компонентов доверия и угроз, чтобы создать целостную картинку и разобраться в том, чего мы ждём в плане безопасности от операционной системы, BIOS и любимого чат-приложения, дабы не перекладывать ответственность с больной головы на здоровую. Итак, начнём с практики, есть следующий кейс: Вы после успешного празднования дня системного администратора, забыли все свои логины и пароли для входа в систему и не можете работать со своими компьютерами. Как вернуть доступ? Рассмотрим на примере двух популярных ОС: Ubuntu и Windows (MacOS рассмотрим попозже). Если у вас при загрузке компьютера появляется меню выбора операционных систем, то, скорее всего, у вас в нём есть пункт, обозначенный как recovery mode.  Загрузитесь в него, в Меню восстановления выберите root для перехода в командный интерпретатор суперпользователя.  У вас запустится консоль с правами root. Если у вас одна операционная система, то для отображения меню загрузчика GRUB при загрузке необходимо удерживать кнопку Shift (или ESC на некоторых компьютерах). Если это не срабатывает, то попробуйте при загрузке компьютера (когда вы видите заставку Ubuntu) нажать на кнопку Reset на системном блоке компьютера, при следующей загрузке меню GRUB отобразится без каких-либо манипуляций. Если пункта recovery mode нет, то: Загрузится тот же терминал с правами суперпользователя. Если у вас по тем или иным причинам отключён выбор операционных систем при загрузке, то пароль можно сбросить с помощью любого Live CD с Linux. Для этого необходимо загрузиться с Live CD, примонтировать ваш корневой раздел, а далее сбросить пароль пользователю путём редактирования файла etc/shadow на этом разделе. Нам потребуется изменить системный файл /etc/shadow, поэтому крайне рекомендуется перед выполнением дальнейших действий сделать резервную копию: Теперь в любом текстовом редакторе от имени root откройте файл /etc/shadow, найдите строку, начинающуюся с логина нужного пользователя, и удалите всё между первым и вторым двоеточием в этой строке. Например, была такая строка: Для удаления пароля пользователю admin необходимо привести её в обоих файлах к виду: После этого пароль пользователя admin будет сброшен. Теперь можно перезагрузиться в нашу систему и войти в систему без пароля. Не забудьте установить после сброса нормальный пароль администратору Рассмотрим два сценария для сброса пароля локального пользователя в Windows 10. Для использования данного способа потребуется одно из: Live CD с возможностью загрузки и доступа к файловой системе компьютера, диск (флешка) восстановления или дистрибутив Windows 10, 8.1 или Windows 7. Далее будет рассмотрен сброс пароля с помощью средств восстановления Windows на установочной флешке. Первым шагом будет загрузка с одного из указанных накопителей. После загрузки и появления экрана выбора языка установки нажмите клавиши Shift + F10. Это вызовет появление командной строки. Если ничего подобного не появляется, вы можете на экране установки, после выбора языка, слева внизу выбрать пункт «Восстановление системы», затем зайти в Устранение неполадок — Дополнительные параметры — Командная строка. В командной строке введите по порядку команды (после ввода нажать Enter):  Вы увидите список разделов на жестком диске. Найдите букву раздела, на котором установлена Windows 10. Введите команду Exit и нажмите Enter для выхода из DiskPart. Используя букву раздела (С) в командах, следует ввести далее: move c:\windows\system32\utilman.exe c:\windows\system32\utilman2.exe
copy c:\windows\system32\cmd.exe c:\windows\system32\utilman.exe  Если все прошло успешно, введите команду wpeutil reboot для перезагрузки компьютера (можно перезагрузить и по-другому). В этот раз загрузитесь с вашего системного диска, а не с загрузочной флешки или диска. После загрузки в окне ввода пароля нажмите на иконку «Специальные возможности» внизу справа. Откроется командная строка Windows 10. В командной строке введите net user имя_пользователя новый_пароль и нажмите Enter. Если имя пользователя состоит из нескольких слов, используйте кавычки. Если вы не знаете имени пользователя, используйте команду net user, чтобы посмотреть список имен пользователей Windows 10. После смены пароля, вы сразу же сможете зайти под новым паролем в учетную запись.  Есть еще один интересный, простой и работающий способ сброса пароля. Здесь также потребуется либо загрузочный дистрибутив с ОС, либо диск восстановления, либо сторонний Live CD со средствами редактирования реестра. Суть способа в следующем: Для продолжения загрузки ОС, наберите в командной строке exit и нажмите Enter. Каким-либо образом возвращать параметры в исходное состояние не потребуется: параметр SetupType в реестре вернется к значению 0. Вот здесь как раз и всплывают вопросы среды и доверия к ней.
Итак, что произошло выше? Фактически мы отстранили от управления штатно установленную операционную систему и загрузили другую среду (с Live-носителя или загрузчика), которая и обеспечила нам доступ к системному носителю с целью перезаписи (сброса) хэшей забытых паролей. Концептуально это означает то, что компьютерная система подобно зданию строится на фундаменте (причем не одном), и если безопасность не обеспечена на самом нижнем уровне, то всё рухнет вне зависимости от толщины стен и надёжности сигнализации на 110-м этаже. В IT мы фактически говорим о вложенных средах, каждый компонент выполняется внутри (в среде) компонента более низкого уровня, используя его сервисы. Например, браузер использует вызовы операционной системы для распределения памяти под веб-страницу, открытия/закрытия портов для сетевых соединений. Ниже приведена иерархия вложенности системных сред, задача полной их систематизации не стояла:  Соответственно, если присутствует некорректная конфигурация или уязвимость компонента нижнего уровня, например ошибка в микрокоде BIOS, то закрыть её на более высоком уровне (например, на уровне «хостовой» ОС») либо сложно, либо практически невозможно. В общем-то это так же бесперспективно, как надеяться заделать трещины в стенах здания с покосившемся фундаментом. Как же нам получить надёжное здание? В IT это называют доверенные системы (trusted systems) или доверенной средой/платформой (trusted platform). Понятие «доверенная среда» на текущий момент не имеет устоявшегося определения, специалисты не могут сойтись во мнениях, а в нормативной базе, строго говоря, термин «доверенный» не определен. Само понятие «доверенная среда» появилось уже после "доверенная система", введённого ещё в 1983г. в так называемой Оранжевой книге (TSSEC — Trusted Computer System Evaluation Criteria), явившейся исходным материалом для ряда руководящих документов Гостехкомиссии РФ, например, РД АС. Под доверенной системой в стандарте понимается система, использующая аппаратные и программные средства для обеспечения одновременной обработки информации разной категории секретности группой пользователей без нарушения прав доступа. Одним из технических средств обеспечения доверенной системы является средство доверенной загрузки. Основная функция доверенной загрузки – загрузка системы только с заранее определенных носителей, после успешного прохождения процедуры проверки целостности и подтверждения своих полномочий, путем идентификации и аутентификации пользователя. В следующих статьях мы рассмотрим способы защиты от атак, описанных выше, с использованием механизма доверенной загрузки, для этого изучим классический сценарий загрузки ЭВМ и в целом поймём, как концептуально строятся защищенные системы. Рассмотрим загрузку ЭВМ с использованием средств доверенной загрузки (СДЗ) и сравним СДЗ с протоколом Secure Boot (UEFI).