stringtranslate.com

Загрузочный сектор

В этом примере показаны различные компоненты GNU GRUB , распределенные по секторам жесткого диска. Когда GRUB установлен на жесткий диск, boot.img записывается в загрузочный сектор этого жесткого диска. boot.img имеет размер всего 446 байт.

Загрузочный сектор — это сектор постоянного устройства хранения данных (например, жесткого диска , дискеты , оптического диска и т. д.), который содержит машинный код , который должен быть загружен в оперативное запоминающее устройство (ОЗУ), а затем выполнено компьютерной системой . встроенная прошивка (например, BIOS ).

Обычно самый первый сектор жесткого диска является загрузочным, независимо от размера сектора (512 или 4096 байт) и типа разметки ( MBR или GPT ).

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

Целью последовательной загрузки сначала прошивки (например, BIOS), затем некоторого кода, содержащегося в загрузочном секторе, а затем, например, операционной системы, является максимальная гибкость.

IBM PC и совместимые компьютеры

На компьютере , совместимом с IBM PC , BIOS выбирает загрузочное устройство, затем копирует первый сектор с устройства (который может быть MBR , VBR или любым исполняемым кодом) в физическую память по адресу памяти 0x7C00. В других системах процесс может быть совершенно другим.

Единый расширяемый интерфейс прошивки (UEFI)

UEFI (не устаревшая загрузка через CSM) не зависит от загрузочных секторов, система UEFI загружает загрузчик ( файл приложения EFI на USB-диске или в системном разделе EFI ) напрямую. [1] Кроме того, спецификация UEFI также содержит «безопасную загрузку», которая по сути требует, чтобы код UEFI имел цифровую подпись .

Повреждение загрузочного сектора

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

Таблицы разделов

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

Наличие IBM PC-совместимого загрузчика для процессоров x86 в загрузочном секторе по соглашению обозначается двухбайтовой шестнадцатеричной последовательностью 0x55 0xAA(называемой сигнатурой загрузочного сектора) в конце загрузочного сектора (смещения 0x1FEи 0x1FF). Эта подпись указывает на наличие по крайней мере фиктивного загрузчика, запуск которого безопасен, даже если он не сможет фактически загрузить операционную систему. Он не указывает на конкретную файловую систему или операционную систему (или даже на ее наличие) , хотя некоторые старые версии DOS 3 полагались на нее в своем процессе обнаружения носителей в формате FAT (более новые версии этого не делают). Загрузочный код для других платформ или процессоров не должен использовать эту подпись, поскольку это может привести к сбою, когда BIOS передает выполнение загрузочному сектору, предполагая, что он содержит действительный исполняемый код. Тем не менее, некоторые носители для других платформ ошибочно содержат подпись, что на практике делает эту проверку не на 100% надежной.

Подпись проверяется большинством системных BIOS, начиная (по крайней мере) с IBM PC/AT (но не с исходного IBM PC и некоторых других машин). Более того, он также проверяется большинством загрузчиков MBR перед передачей управления загрузочному сектору. Некоторые BIOS (например, IBM PC/AT) выполняют проверку только для фиксированных/съемных дисков, тогда как для дискет и супердискет достаточно начать с байта, большего или равного, 06hи первые девять слов не должны содержать одинаковое значение. , прежде чем загрузочный сектор будет признан действительным, что позволяет избежать явной проверки 0x55, 0xAAна дискетах. Поскольку старые загрузочные сектора (например, очень старые носители CP/M-86 и DOS) иногда не содержат этой подписи, несмотря на то, что они могут успешно загружаться, в некоторых средах проверку можно отключить. Если код BIOS или MBR не обнаруживает действительный загрузочный сектор и, следовательно, не может передать выполнение коду загрузочного сектора, он попытается использовать следующее загрузочное устройство в строке. Если все они терпят неудачу, обычно отображается сообщение об ошибке и вызывается INT 18h. Это либо запустит дополнительное резидентное программное обеспечение в ПЗУ ( ROM BASIC ), перезагрузит систему через INT 19h после подтверждения пользователя, либо заставит систему остановить процесс начальной загрузки до следующего включения.

К системам, не соответствующим описанной выше конструкции, относятся:

Операция

На компьютерах , совместимых с IBM PC , BIOS не учитывает различие между VBR и MBR, а также разделение. Прошивка просто загружает и запускает первый сектор накопителя. [3] Если устройство представляет собой дискету или флэш-накопитель USB , это будет VBR. Если устройство представляет собой жесткий диск, это будет MBR. Это код в MBR, который обычно понимает разметку диска и, в свою очередь, отвечает за загрузку и запуск VBR любого основного раздела, настроенного для загрузки (активного раздела ). Затем VBR загружает загрузчик второго этапа из другого места на диске.

Более того, все, что хранится в первом секторе дискеты, USB-устройства, жесткого диска или любого другого загрузочного устройства хранения данных, не требует немедленной загрузки какого-либо загрузочного кода для ОС, если вообще когда-либо. BIOS просто передает управление всему, что там существует, при условии, что сектор соответствует очень простому требованию наличия подписи загрузочной записи 0x55, 0xAA в последних двух байтах. Вот почему обычный загрузочный код, находящийся в MBR, легко заменить более сложными загрузчиками, даже большими многофункциональными менеджерами загрузки (программами, хранящимися в другом месте на устройстве, которые могут работать без операционной системы), предоставляя пользователям несколько вариантов выбора. в том, что произойдет дальше. При такой свободе часто происходят злоупотребления в виде вирусов загрузочного сектора.

Вирусы загрузочного сектора

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

Чтобы бороться с этим поведением, в BIOS системы часто включена опция, запрещающая программному обеспечению запись в первый сектор любого подключенного жесткого диска; Таким образом, он может защитить от случайной перезаписи главную загрузочную запись , содержащую таблицу разделов , но не загрузочные записи тома в загрузочных разделах. [4] В зависимости от BIOS попытки записи в защищенный сектор могут блокироваться как с участием пользователя, так и без него. Однако большинство BIOS отображают всплывающее сообщение, дающее пользователю возможность отменить настройку. Опция BIOS отключена по умолчанию, поскольку сообщение может отображаться неправильно в графическом режиме, а блокировка доступа к MBR может вызвать проблемы с программами настройки операционной системы или доступом к диску, инструментами шифрования или разбиения на разделы, такими как FDISK , которые, возможно, не были записаны в помните об этой возможности, что приведет к их некорректному прерыванию и, возможно, оставит разделы диска в несогласованном состоянии. [номер 1]

Например, вредоносная программа NotPetya пытается получить административные привилегии в операционной системе, а затем попытается перезаписать загрузочный сектор компьютера. [5] [6] ЦРУ также разработало вредоносное ПО, которое пытается изменить загрузочный сектор , чтобы загрузить дополнительные драйверы, которые будут использоваться другими вредоносными программами. [7]

Смотрите также

Примечания

  1. ^ Одной из утилит FDISK, написанной для учета функций защиты загрузочного сектора BIOS, является FDISK R2.31 (и выше) DR-DOS, которая обнаруживает этот сценарий и отображает дополнительные интерактивные сообщения, помогающие пользователю пройти через него. В отличие от других утилит FDISK , DR-DOS FDISK является не только инструментом создания разделов, но также может форматировать недавно созданные разделы в FAT12, FAT16 или FAT32. Это снижает риск случайного форматирования неправильных томов.

Рекомендации

  1. ^ "UEFI — OSDev Wiki" . wiki.osdev.org . Проверено 26 сентября 2020 г.
  2. ^ Справочное руководство программиста Commodore 128. Бантамские книги. 1986. стр. 446–667. ISBN 0-553-34292-4.
  3. ^ Смит, Родерик В. (14 апреля 2010 г.). «Перейти на GRUB 2». IBM.com . Проверено 5 марта 2013 г.
  4. ^ «Словарь настроек BIOS системных плат Intel для настольных ПК» (PDF) . Интел . Проверено 1 сентября 2013 г.
  5. ^ «Новый вариант программы-вымогателя «Nyetya» ставит под угрозу системы по всему миру» . blog.talosintelligence.com . 27 июня 2017 г. Проверено 28 мая 2018 г.
  6. ^ «Что произойдет, если в эпоху глобальных атак вредоносных программ не будет аварийного выключателя?». Погружение ИТ-директора . Проверено 28 мая 2018 г.
  7. ^ «ЦРУ разработало вредоносное ПО для Windows, которое изменяет загрузочный сектор для загрузки большего количества вредоносных программ» . Газета «Информационная безопасность» . 01.09.2017 . Проверено 28 мая 2018 г.

Внешние ссылки