
Безопасность подписанного системного тома
В macOS 10.15 компания Apple представила системный том только для чтения. Он изолирован и предназначен исключительно для содержимого системы. В macOS 11 и новее добавлены надежные средства криптографической защиты содержимого системы посредством подписанного системного тома (SSV). SSV содержит механизм ядра, который проверяет целостность содержимого системы во время выполнения и отклоняет любые данные (код и некодовые данные) без действительной криптографической подписи Apple. Начиная с iOS 15 и iPadOS 15 системный том на iPhone и iPad также имеет средства криптографической защиты подписанного системного тома.
SSV не только помогает предотвратить вмешательство в какое-либо программное обеспечение Apple, входящее в состав операционной системы, но также делает обновление программного обеспечения macOS более надежным и безопасным. И поскольку SSV использует снимки файловой системы Apple, то есть APFS (Apple File System), старую версию системы можно восстановить без переустановки, если обновление выполнить невозможно.
С момента своего внедрения APFS обеспечивает целостность метаданных файловой системы с помощью некриптографических контрольных сумм на внутреннем устройстве хранения. SSV позволяет усилить механизм обеспечения целостности путем использования криптографических хешей, тем самым распространяя действие механизма на каждый бит данных файлов. Данные на внутреннем устройстве хранения (включая метаданные файловой системы) хешируются криптографическим способом в пути чтения, после чего хеш сравнивается с ожидаемым значением в метаданных файловой системы. Если значения не совпадают, система делает вывод, что данные были изменены, и не возвращает их запросившей программе.
Каждый хеш SHA256 SSV хранится в основном дереве метаданных системы, которое хешировано само. Поскольку каждый узел дерева рекурсивно проверяет целостность хешей своих дочерних элементов, аналогично двоичному хеш‑дереву (дереву Меркла), значение хеша корневого узла (называемое печатью) применяется к каждому биту данных на томе SSV. Это означает, что криптографическая подпись распространяется на весь системный том.
Во время установки и обновления macOS эта печать вычисляется заново для файловой системы на устройстве, а полученное измерение сравнивается с измерением, подписанным Apple. На компьютере Mac с чипом Apple загрузчик проверяет печать, прежде чем передать управление ядру. На компьютере Mac с процессором Intel и чипом безопасности Apple T2 загрузчик перенаправляет измерение и подпись в ядро, которое затем проверяет печать напрямую, прежде чем подключать корневую файловую систему. В обоих случаях при сбое проверки процесс загрузки останавливается и пользователю предлагается переустановить macOS. Эта процедура повторяется при каждой загрузке до тех пор, пока пользователь не выберет загрузку с применением политики безопасности более низкого уровня и не решит выключить подписанный системный том.
Во время обновления программного обеспечения iOS и iPadOS системный том схожим образом подготавливается и вычисляется заново. Перед тем как разрешить устройству запустить ядро, загрузчики iOS и iPadOS проверяют, что печать не повреждена и что она соответствует значению, подписанному Apple. Если при загрузке выявлены несоответствия, пользователь получает запрос на обновление системного программного обеспечения на устройстве. Пользователям не разрешено снимать защиту подписанного системного тома в iOS и iPadOS.
SSV и подпись кода
Ядро по-прежнему выполняет принудительное подписание кода. Подписанный системный том обеспечивает защиту во время чтения любого количества байтов с внутреннего устройства хранения, тогда как подпись кода обеспечивает защиту во время сопоставления памятью объектов Mach как исполняемых. Как SSV, так и подпись кода служат для защиты исполняемого кода во всех путях чтения и выполнения.
SSV и FileVault
В macOS 11 и новее аналогичная защита содержимого системы во время хранения обеспечивается с помощью SSV, поэтому шифрование системного тома больше не требуется. Любые изменения, внесенные в файловую систему во время хранения, обнаруживаются файловой системой в процессе чтения данных. Если пользователь включил FileVault, содержимое пользователя на томе данных по‑прежнему шифруется с помощью предоставленного пользователем секрета.
Если пользователь решит отключить SSV, система станет уязвимой для вмешательства во время хранения, и в результате такого вмешательства злоумышленник может извлечь зашифрованные данные пользователя при следующей загрузке системы. Поэтому система не позволит пользователю выключить SSV, если включена функция FileVault. Защиту данных во время хранения следует включать или отключать для обоих томов единообразно.
В macOS 10.15 и более ранних версиях функция FileVault служит для защиты операционной системы во время хранения путем шифрования пользовательского и системного содержимого с помощью ключа, защищенного предоставленным пользователем секретом. Таким образом обеспечивается защита от получения доступа к файловой системе с системным программным обеспечением или управления ею, если у злоумышленника есть физический доступ к устройству.
SSV и компьютер Mac с чипом безопасности Apple T2
На компьютере Mac с чипом безопасности Apple T2 с помощью SSV защищена только сама операционная система macOS. Программное обеспечение, которое выполняется на чипе T2 и проверяет macOS, защищено с помощью безопасной загрузки.