Целостность операционной системы

В основу операционных систем Apple заложены функции обеспечения безопасности. Например, аппаратный корень доверия обеспечивает безопасную загрузку, а процесс обновления ПО позволяет быстро и надежно обновлять систему безопасности. Операционные системы Apple также используют специальные аппаратные возможности чипа, чтобы предотвращать использование уязвимостей во время работы операционной системы. Эти функции среды выполнения защищают целостность доверенного кода во время его выполнения. Операционная система Apple помогает смягчить последствия атак и использования уязвимостей независимо от того, исходят ли они от вредоносного приложения, из интернета или из любого другого источника. Перечисленные здесь средства защиты доступны на устройствах, поддерживающих системы на кристалле Apple, в том числе iOS, iPadOS, macOS на Mac с чипом Apple, tvOS, visionOS и watchOS.

1. Монитор защиты таблицы страниц (SPTM) поддерживается в системах на кристалле A15 и новее, а также M2 и новее. Он заменяет уровень защиты страниц на поддерживаемых платформах.

2. Уровень защиты страниц (PPL) и монитор защиты таблицы страниц (SPTM) требуют выполнения только подписанного и надежного кода на всех платформах, кроме macOS (система macOS разработана для выполнения любого кода). Все остальные инструменты безопасности, в том числе защита таблиц страниц, применяются на всех поддерживаемых платформах.

Защита целост­нос­ти ядра

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

Чтобы предотвратить возможность перенастройки, оборудование, используемое для работы KIP, блокируется после завершения процесса загрузки.

Быстрые огра­ниче­ния разреше­ний

В системах на кристалле Apple A11 Bionic и S3 был представлен новый аппаратный примитив. Этот примитив — быстрые ограничения разрешений — включает реестр ЦП для быстрого ограничения разрешений на уровне потока. Используя быстрые ограничения разрешений (также известные как регистры APRR), поддерживаемые операционные системы могут удалять из памяти разрешения на выполнение, не тратя время на системный вызов и проход по таблице страниц или ее сброс. Эти регистры обеспечивают дополнительный уровень защиты от сетевых атак, в частности компилируемых во время выполнения (точно в нужный момент), поскольку память не позволяет исполнять код в то время, когда происходит чтение или запись.

Защита целост­нос­ти систем­ного сопроцес­сора

Прошивка сопроцессоров, таких как Secure Enclave, процессор датчика изображений и сопроцессор движения, выполняет многие критически важные системные задачи. Поэтому ее безопасность имеет решающее значение для безопасности всей системы. Чтобы предотвратить изменение прошивки сопроцессора, Apple использует механизм, называемый защитой целостности системного сопроцессора (SCIP).

SCIP работает во многом так же, как KIP. Во время загрузки iBoot загружает прошивку каждого сопроцессора в защищенный регион памяти, который зарезервирован для этого сопроцессора и отделен от региона KIP. iBoot настраивает диспетчеры памяти каждого сопроцессора, чтобы помочь предотвращать следующие события:

  • исполняемые сопоставления за пределами выделенной части защищенного региона памяти;

  • доступные для записи сопоставления внутри выделенной части защищенного региона памяти.

Кроме того, операционная система Secure Enclave настраивает защиту целостности системного сопроцессора для Secure Enclave во время загрузки. После завершения процесса загрузки оборудование, используемое для работы SCIP, блокируется. Эта мера направлена на то, чтобы предотвратить возможность перенастройки.

Коды аутен­тифи­кации указа­теля

Коды аутентификации указателя (PAC) используются для защиты от атак, связанных с использованием повреждения памяти. Системное программное обеспечение и встроенные приложения используют PAC, что помогает предотвращать изменения указателей функций и адресов возвратов (указателей кода). PAC использует пять секретных 128-битных значений для подписания инструкций и данных ядра, а каждый процесс пользовательского пространства имеет свои собственные ключи B. К объектам добавляется случайное значение («соль») и подпись, как указано в таблице ниже.

Элемент

Ключ

Соль

Адрес возврата функции

IB

Адрес хранилища

Указатели функции

IA

0

Функция вызова блока

IA

Адрес хранилища

Указатель дескриптора блока

DA

Адрес хранилища + 0xC0BB

Кэш метода Objective-C

IB

Адрес хранилища + класс + вариант

Isa‑указатель Objective‑C

DA

Адрес хранилища + 0x6AE1

Суперуказатель Objective‑C

DA

Адрес хранилища + 0xB5AB

ivars Objective‑C типа селектора

DB

Адрес хранилища + 0x57C2

Указатель данных класса Objective‑C, доступный только для чтения

DA

Адрес хранилища + 0x61F8

Записи таблицы виртуальных методов C++

IA

Адрес хранилища + хеш (искаженное имя метода)

Указатели таблицы виртуальных методов C++

DA

Адрес хранилища + хеш (искаженное базовое имя V‑table)

Вычисленная метка перехода

IA

Хеш (имя функции)

Состояние потока ядра

GA

Регистры состояния пользовательского потока

IA

Адрес хранилища

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

Уровень защиты страниц

Уровень защиты страниц (PPL) в iOS, iPadOS, visionOS и watchOS предотвращает изменение кода в пользовательском пространстве после завершения проверки подписи кода. Уровень защиты страниц (PPL), основанный на KIP и быстром ограничении разрешений, управляет переопределениями разрешений таблицы страниц, гарантируя, что только PPL может изменять защищенные страницы, содержащие код пользователя и таблицы страниц. Система значительно сокращает уязвимую область, помогая обеспечить целостность кода в масштабе всей системы даже в условиях взлома ядра. Этого средства защиты нет в macOS, поскольку PPL применим только в системах, требующих подписания абсолютно всего исполняемого кода.

Монитор защиты таблицы страниц и Монитор доверенного выполнения

Монитор защиты таблицы страниц (SPTM) и Монитор доверенного выполнения (TXM) в iOS, iPadOS, macOS и visionOS, работая совместно, помогают защищать от изменений таблицы страниц пользовательских процессов и процессов ядра. Это работает, даже если взломщик имеет возможность записи в ядро и может обойти защиту потока управления Для этого SPTM задействует более высокий уровень полномочий, чем у ядра, а TXM с более низкими полномочиями обеспечивает соблюдение политик, управляющих выполнением кода. Эта система разработана таким образом, что взлом TXM не приводит к автоматическому обходу SPTM благодаря разделению полномочий и управлению доверием между двумя компонентами. В системах на кристалле A15 и новее, а также M2 и новее функция SPTM (в сочетании с TXM) заменяет собой PPL: она уменьшает поверхность атаки, не зависящую от доверия ядра даже на ранних этапах загрузки системы. SPTM задействует новые примитивы для микрочипа — они стали результатом развития Быстрых ограничений разрешений, используемых PPL, и доступны только в процессорах, перечисленных в таблице выше.

Обеспечение целостности памяти

Обеспечение целостности памяти (MIE) — это комплексная защита памяти на платформах Apple, доступная в процессорах A19, M5 и новее. Технология MIE построена на надежной базе безопасных распределителей памяти Apple в сочетании с расширением улучшенной маркировки памяти (EMTE) в синхронном режиме и поддерживается обширными политиками обеспечения конфиденциальности меток. Технология MIE встроена в чип Apple и предлагает не имеющую аналогов, всегда включенную защиту ключевых атакуемых областей, в том числе ядра, без ущерба для производительности и удобства работы пользователей. Подробная информация приведена в статье Обеспечение целостности памяти: комплексный подход к безопасности памяти на устройствах Apple (на английском языке) в блоге Apple об исследованиях в сфере безопасности.

Расширение маркировки памяти

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

Расширение улучшенной маркировки памяти

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

Обеспечение конфиденциальности меток

Обеспечение конфиденциальности меток защищает работу безопасных распределителей памяти от технических угроз и гарантирует конфиденциальность меток EMTE, в том числе от атак по сторонним каналам и атак путем спекулятивных вычислений. Монитор защиты таблицы страниц защищает вспомогательное хранилище распределителя ядер и хранилище меток. Система также гарантирует, что при доступе ядра к памяти от имени приложения применяются те же правила проверки меток, что и для пользовательского пространства. Обеспечение конфиденциальности меток также помогает избежать утечки меток из‑за атак временным анализом и спекулятивных атак, а также включает защиту против Spectre V1.

Дата публикации: 28 января 2026 г.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
Эта страница полезна?
Максимальное количество символов: 250
Максимальное количество символов: 250.
Благодарим вас за отзыв.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.