Что такое защита от записи в биосе

Обновлено: 02.07.2024

Помните, когда флэш-ПЗУ BIOS были защищены от записи с помощью физического аппаратного переключателя/перемычки? Это была чрезвычайно простая мера, которая фактически сделала невозможным повреждение BIOS программным обеспечением, вредоносным или каким-либо иным образом.

Безусловно, выполнять обновления BIOS было «неудобно», но в те дни обновления BIOS также не были так уж распространены. Я не думаю, что когда-либо должно быть "удобно" делать что-то подобное с базовой системной прошивкой - по самой своей природе она должна быть стабильной и редко меняться. Почему-то это вызывает у меня жуткую ностальгию. в те дни, когда BIOS казался гораздо менее глючным и нуждался в постоянных изменениях. Теперь я слышу истории о ноутбуках с установленной на заводе хренью, которая молча обновляет BIOS в фоновом режиме (!), блокируя машину, когда с ней случайно происходит что-то еще неприятное (например, полная перезагрузка). Я помню ритуал «загрузки с с дискеты в простую подсказку DOS, запустите программу обновления и подождите несколько напряженных секунд, пока она обновит BIOS".

Упоминание «Thunderbolt Option ROM» ясно показывает, что Thunderbolt — это, по сути, внешняя версия PCI(e). Иными словами, даже не имея возможности модифицировать какую-либо прошивку, уже возможна куча других зловредов — так же и с любым другим устройством, имеющим прямой доступ к системной шине. Точно так же, как вы, вероятно, не стали бы подключать к своей системе случайный ненадежный адаптер PCI(e), вам следует проявлять такую ​​же осторожность при использовании Thunderbolt.

Перемычка может включать напряжение стирания для флэш-памяти. С другой стороны, он также может просто потянуть вверх или вниз запрошенный вывод, прежде чем программа флэш-памяти выполнит свою работу. Например, в одном руководстве Intel Mobo[1] прямо говорится, что перемычка защищает от случайного повреждения.

Это интересный пример гибридной схемы защиты: вы можете выбирать между "программное обеспечение решает", "всегда защищено" и "всегда незащищено". Учитывая, что джампер находится сразу за вспышкой, я склонен считать, что это настоящая аппаратная защита; скорее всего, средний контакт подключен к разрешению записи флэш-памяти, левый контакт подключен к GPIO, чтобы программное обеспечение могло им управлять, а правый контакт подключен к постоянному напряжению, чтобы отключить любую запись через оборудование. Открытое положение оставляет контакт свободным для записи.

Раньше на компьютерах Mac в дополнение к настройке программного обеспечения требовался физический шаг для изменения загрузочного ПЗУ. Я думаю, что это было что-то вроде загрузки обновления прошивки, которая инициирует перезагрузку, после перезагрузки нажмите и удерживайте кнопку питания, пока не раздастся громкий звуковой сигнал компьютера, после чего обновление прошивки может продолжиться. Не удобно, но более безопасно.

Это сброс PRAM, который требовался на старых компьютерах Mac, чтобы действительно происходили некоторые изменения прошивки (поскольку прошивка кэшировалась).

Маки PowerPC (в 2000-х годах, до перехода на Intel) действительно требовали ручного обновления загрузочного ПЗУ/прошивки — механизм, отличный от сброса PRAM. Вы запустите программу установки, а затем либо выключите, либо перезагрузите Mac. Во время загрузки нужно либо удерживать кнопку питания, либо кнопку прерывания (в зависимости от модели), чтобы начать обновление.

Нет, сброс PRAM запускается нажатием и удержанием команды-опция-P-R. Это был специальный шаг, который требовался специально для обновления встроенного ПО.

Это напоминает мне аппаратный переключатель в оригинальном Chromebook, cr-48, который требует, чтобы вы щелкнули переключателем под куском ленты, прежде чем вы сможете установить альтернативную операционную систему.

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

Конечно, предполагается, что загрузчик Chromebook не имеет проблем с защитой.

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

это атака физического доступа. когда у вас есть физический доступ, игра окончена. (и ваш переключатель биоса бесполезен).

Я понимаю, что вставить устройство Thunderbolt проще, чем получить доступ к выключателю, но это не намного намного сложнее.

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

Порты Thunderbolt/USB предназначены для подключения. Именно так вы передаете данные и расширяете компьютер новыми периферийными устройствами. Может быть невозможно предотвратить блокировку компьютера периферийным устройством Thunderbolt или USB, но это может привести к тому, что контроль над ним будет передан третьей стороне, что является неприемлемым нарушением безопасности, не по вине пользователя и должно быть исправлено.< /p>

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

> то же самое, что обвинять сотрудников, которые подбирают брошенные USB-накопители на парковках и подключают их к рабочим компьютерам

Так было всегда, пока существовал USB. Более широкая версия — «не подключайте ненадежное оборудование» — была верна с тех пор, как существуют компьютеры.

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

> это то же самое, что сказать, что виноваты сотрудники, которые подбирают брошенные USB-накопители на парковках и подключают их к рабочим компьютерам

о, моя наука, они, безусловно, есть.

> Порты Thunderbolt/USB предназначены для подключения к сети

да, но в тот момент, когда вы вставляете их в машину, считается, что им доверяют. (это мое мнение, оно может быть неверным)

Помните, как это было только в течение коротких 1-2 лет, как рефлекторная реакция на вирус CIH?

На старых ПК биос хранился в EPROM (окно UV на чипе), а не в EEPROM. Это была единственная физическая защита. Позже Intel представила концентратор встроенного ПО (FWH) с программной защитой от перепрошивки (нужно было разблокировать определенный регион памяти/доступ к io), затем появились SPI flash-чипы с некоторой защитой от копирования (опять же контролируемой программно).

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

SD-карта с защитой от записи

Защита от записи — это способность аппаратного устройства или программного обеспечения предотвращать запись новой информации или изменение старой информации. Другими словами, информацию можно прочитать, но ничего нельзя добавить или изменить. На рисунке показан пример переключателя защиты от записи на SD-карте, используемого для включения и выключения защиты от записи.

Включить и отключить защиту от записи с помощью программного обеспечения

Чтобы защитить файл в командной строке Microsoft Windows или MS-DOS, используйте команду attrib. В Windows вы можете просмотреть свойства файла и включить атрибут только для чтения. Наконец, в варианте Linux или Unix можно использовать команду chmod для включения и отключения защиты от записи.

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

Включить и отключить аппаратную защиту от записи

3,5-дюймовая дискета

Предыдущие съемные носители, такие как дискеты, использовали защиту от записи для защиты диска от стирания или перезаписи. 5,25-дюймовая дискета имела отверстие в верхнем углу дискеты, которое можно было закрыть лентой для защиты от записи. У 3,5-дюймового диска в углу была вкладка, которую можно было перемещать вверх или вниз, чтобы включить или отключить защиту от записи. Перемещая вкладку, чтобы заблокировать отверстие или разблокировать отверстие, вы можете включать и отключать защиту от записи.

Зачем использовать защиту от записи?

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

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

Должен ли я использовать «защиту от записи» или «защиту от записи» в своем письме?

При написании "защита от записи", "защита от записи" или "защита от записи" всегда переносите два слова через дефис.

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

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

Это обоснование глубокоэшелонированной защиты.

У меня следующие вопросы:

Можно ли защитить микросхемы BIOS от записи на аппаратном уровне, например.с устройством, имеющим форм-фактор, аналогичный BIOS Savior, но вместо этого обладающий аппаратным переключателем, который физически предотвращает попадание тока в схему, способную перезаписать BIOS? (Примечание: "подразделение АНБ [имеет] явное предпочтение внедрять свой вредоносный код [в] BIOS".")

Аналогичным образом можно ли защитить процессоры от записи на аппаратном уровне, например. с устройством, имеющим аналогичный форм-фактор, с соответствующими изменениями, описанному выше для BIOS, т. е. физически расположенным между разъемом ЦП на материнской плате и самим ЦП, и снова обладающим аппаратным переключателем, который физически предотвращает попадание тока на схема, способная перезаписать прошивку ЦП?

Хранилище операционной системы

Уже можно защитить от записи носитель, содержащий установку операционной системы, на аппаратном уровне, используя оптический привод только для чтения для этого хранилища (например, CD-ROM, DVD-ROM и т. д.). Другие варианты включают в себя USB-накопители с защитой от записи или судебные блокировщики записи USB, установленные между USB-портом и диском, содержащим ОС.

Несмотря на то, что Live CD часто используются для тестирования или экспериментирования, похоже, это не является обычной практикой при развертывании. Возможно, это связано с тем, что системные администраторы предпочли бы не получать физический доступ к каждому серверу для каждого обновления ОС, даже если это будет просто вопрос замены DVD-ROM и перезагрузки; но я не разделяю этого предпочтения: для меня безопасность важнее.

  • Существуют ли какие-либо серверные операционные системы/дистрибутивы, предназначенные для поддержки такой конфигурации?
  • Есть ли какие-либо информационные ресурсы (книги, веб-сайты), посвященные развертыванию и обслуживанию серверов таким образом?

Микрокод процессора нельзя изменить навсегда; обновления должны выполняться BIOS или ОС при каждой загрузке.

Архитектура Intel, том 3, раздел 9.11.6.1: «Последствия загруженного обновления удаляются из процессора после полной перезагрузки».

2 ответа 2

Quis custodiet ipsos custodes?

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

Это подводит нас к вопросу: кто наблюдает за сторожами? В информационной безопасности высшими сторожами являются TCB. Чем их меньше, тем безопаснее система. Хотя полностью решить эту проблему невозможно, одним из распространенных эффективных решений является реализация доверия к оборудованию, которое гораздо труднее подделать, чем программное обеспечение. Аппаратное обеспечение проверяет небольшое количество программного обеспечения. Это небольшое программное обеспечение проверяет более крупное программное обеспечение и так далее. Это объясняется далее в этом посте.

Отвечаю на ваши вопросы

Можно ли защитить микросхемы BIOS от записи на аппаратном уровне, например с устройством, имеющим форм-фактор, аналогичный BIOS Savior, но вместо этого оснащенный аппаратным переключателем, который физически предотвращает попадание тока в схему, способную перезаписать BIOS?

Некоторые старые системы требовали установки перемычек для записи в BIOS. В наши дни это почти всегда в программном обеспечении. Вы хотели бы использовать современный компьютер, который поддерживает BootGuard, чтобы смягчить это. BootGuard запускается в ЦП еще до загрузки BIOS и проверяет цифровую подпись в BIOS, чтобы убедиться, что она не была подделана. Загрузка возобновится только в том случае, если подпись действительна.

Аналогично, возможно ли защитить процессоры от записи на аппаратном уровне, например. с устройством, имеющим аналогичный форм-фактор, с соответствующими изменениями, описанному выше для BIOS, т. е. физически расположенным между разъемом ЦП на материнской плате и самим ЦП, и снова обладающим аппаратным переключателем, который физически предотвращает попадание тока в схема, способная перезаписать прошивку ЦП?

ЦП не имеет прошивки. По сути, у них вообще нет постоянного хранилища. У Intel даже есть «заявление о нестабильности» во многих своих документах, в котором, по сути, говорится, что подержанный процессор не будет содержать никакой личной информации или постоянных изменений от его предыдущего владельца. Например, в техническом описании Xeon E5 v4 раздел 1.1.4 содержит следующее:

Технически ЦП имеет небольшой объем постоянного хранилища, называемого одноразовыми программируемыми предохранителями (OTP), но они используются для постоянного изменения некоторых основных параметров, например, активен ли BootGuard. Он не содержит исполняемых файлов.

Возможно, вы имеете в виду микрокод. Микрокод — это способ, с помощью которого ЦП может изменять поведение определенных инструкций, маршрутизируя их через таблицу микрокода. Это используется для исправления ошибочных инструкций или даже для их полного отключения. Однако он не встроен в ЦП и может загружаться только во время выполнения. После перезагрузки ЦП микрокод теряется. ЦП может загружать микрокод двумя основными способами:

  • BIOS, который часто содержит микрокод с момента изготовления.
  • Программное обеспечение, которое загружает и вставляет последний микрокод.

Микрокод проверяется с помощью ключа подписи, известного только корпорации Intel. Чтобы вставить вредоносный микрокод, нужно иметь возможность заставить вас запустить его и получить ключ подписи Intel.

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

Tails специально разработан для этого. Это амнестическая живая система, которая хранит данные только в памяти. Он использует специальный тип файловой системы, называемый объединением, для объединения двух других файловых систем. В частности, он объединяет файлы squashf только для чтения, имеющиеся на USB-накопителе или DVD, и файл tmpfs в памяти. Любые изменения в файловой системе union записываются в tmpfs. Это создает иллюзию одной большой файловой системы с возможностью записи, тогда как на самом деле существует только одна, которая никогда не изменяется, а другая существует только в памяти.

Есть ли какие-либо информационные ресурсы (книги, веб-сайты), посвященные развертыванию и обслуживанию серверов таким образом?

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

Другое оборудование, которое можно модифицировать

Предоставленный вами список оборудования не является исчерпывающим. На современной материнской плате есть еще много чего, что можно модифицировать, например:

  • И жесткие диски, и твердотельные накопители имеют микроконтроллеры с возможностью записи. присутствуют почти в каждом устройстве PCI и выполняются BIOS.
  • Прошивка графического процессора обычно недоступна для записи поверх программного обеспечения, но она не защищена от записи.

Есть еще кое-что, и если у вас нет способа проверить процесс загрузки, попытка защитить все от записи будет игрой в кошки-мышки.

Измеренная загрузка

Приложив некоторые усилия, даже используя только программное обеспечение (на современном оборудовании), вы все равно сможете проверить целостность своего оборудования, резко сократив количество компонентов, которым вы должны доверять. Это можно сделать даже удаленно для компьютера, к которому у вас нет физического доступа! Это называется дистанционной аттестацией. Обычно это делается с помощью TPM.

TPM – это небольшой аппаратный компонент (хотя он часто эмулируется в прошивке новых процессоров), устойчивый к взлому и безопасный. Он имеет минимальную функциональность и может делать только несколько вещей. В первую очередь он используется для объединения хэшей различных компонентов системы, и они сами разблокируются (распечатают), когда хэши совпадут с известным значением. Различные части программного обеспечения отправляют копии частей системы в TPM для хеширования. В результате хэши TPM изменятся при изменении любого компонента системы. Все начинается с доверенного CRTM (Core Root-of-Trust for Measurement), который обычно является компонентом BIOS, доступным только для чтения, который отправляет хэш самого BIOS в TPM. Если CRTM и TPM являются доверенными, то остальная часть системы не является доверенной.

TPM проверяет несколько различных компонентов системы и сохраняет в нем PCR. Каждый PCR имеет свою цель и проверяет разные части системы (взято из другого поста):

Важно помнить, что доверенный платформенный модуль не может воздействовать на любое обнаруженное вмешательство. На самом деле он принципиально не способен, располагаясь на шине LPC. Все, что он может сделать, это убедиться, что аппаратное обеспечение находится в нормальном состоянии, и отказаться от вскрытия в противном случае. Запечатанные данные могут включать в себя ключ шифрования диска (гарантирующий, что система не загрузится, если система была взломана) или секрет, известный только вам и не поддающийся разгадыванию (и, следовательно, подделке) злоумышленниками, например строка (которая так работает Anti-Evil Maid от ITL).

В конце этого процесса вы сократили TCB для всей вашей системы до небольшого CRTM, доступного только для чтения, и самого защищенного чипа TPM.

Ресурсы/указатели

Поскольку вы запросили некоторые ресурсы, я хотел бы рассмотреть следующие вопросы для улучшения безопасности (уменьшения доверенной вычислительной базы) рабочей станции COTS:

  • Измеренная загрузка
  • Удаленная аттестация
  • Доверенный платформенный модуль (TPM)
  • Статический источник доверия для измерения (SRTM)
  • Динамический источник доверия для измерений (DRTM)

Некоторые другие вопросы, которые могут иметь отношение к делу и помочь вам понять этот процесс:

Защита от записи — это игра в кошки-мышки. Единственное практическое решение — использовать измеренную загрузку.



Форум Win-Raid (Драйверы - Прошивка - Моддинг) � Специальные темы � Поддержка NVMe для старых систем � Помощь при перепрошивке модифицированного BIOS при включенной защите от записи


Лорд Дагон

Привет! Я здесь новичок, и у меня есть старый Dell T5600 (версия прошивки A19), который я пытаюсь модифицировать в BIOS/UEFI для поддержки NVMe. Первоначально я использовал Clover, который работал, но имел некоторые недостатки. Поэтому я хотел попытаться изменить BIOS/UEFI, чтобы вместо этого добавить поддержку NVMe.

После нескольких возни (сначала я извлек и модифицировал стоковую прошивку из Dell exe), я сбросил текущую версию BIOS с платы с помощью fptw64. Затем я использовал UEFItool для вставки NvmExpressDxe_4.ffs и сохранил обратно .bin правильного размера. Прежде чем прошивать измененный файл, я попытался прошить исходный дамп, чтобы проверить наличие ошибок. Однако это приводит к ошибке «Ошибка 280: не удалось отключить защиту от записи для пространства BIOS!» Теперь я прочитал об использовании AFU для обхода, но также прочитал, что мне больше не следует использовать AFU, поэтому я нахожусь в небольшая дилемма.

Я нашел руководство с некоторыми идеями, но, похоже, оно было связано с материнскими платами Asus. Итак, помимо использования аппаратного программатора EEPROM Flash, какие варианты программного обеспечения у меня есть?

PS: Спасибо за всю полезную информацию.
--------------------------

На самом деле, возможно, я нашел решение. Эта плата оснащена перемычкой сервисного режима. К сожалению, так много читать на этом форуме. Прошу прощения за вопрос, на который уже есть ответы. Иногда просеивание занимает немного времени. Я буду обновлять с результатом. Спасибо!
----------------------------------------

Хорошо, я попытался прошить свой модифицированный BIOS, и моя система зависла. Правда, я пробовал прошивать из-под винды, а на NVMe-накопителе уже запускал через Clover. Итак, я использовал Rufus и сделал загрузочную флешку и прошил оттуда. Кажется, это сработало. Я не делал новую установку Windows, но мне пришлось зайти в настройки BIOS, перейти на UEFI и указать правильный загрузочный файл. Я знаю, что мне странно говорить спасибо, когда я единственный, кто участвует в этой теме, но я просто хочу сказать «Спасибо» в целом за всю информацию на форумах. Информация на этом сайте мне очень помогла.

Читайте также: