set-verity-state Установить состояние verity Тип файла: команда usage: set-verity-state [0] Комментарии Цель состоит в том, чтобы предотвратить внедрение злоумышленником (имеющим физический доступ к устройству) вредоносного кода, например. в низкоуровневые службы Android, хранящиеся в разделе /system или /recovery. Для разделов, отмеченных флагом verity в fstab, во время сборки вычисляется хеш-дерево dm-verity раздела. Хэш-дерево подписывается ключом RSA и добавляется к разделу в качестве метаданных. Открытая часть ключа RSA добавляется в загрузочный раздел. Во время загрузки ядро проверяет целостность подписанного хеш-дерева в метаданных раздела, используя открытый ключ RSA, хранящийся в загрузочном разделе. Затем он может вычислить хэш-дерево раздела и сравнить его с хэш-деревом из метаданных. При несоответствии ядро отказывается загружаться. Следовательно, если злоумышленник манипулирует разделом, хеш-дерево, вычисленное во время загрузки, не будет соответствовать хеш-дереву из метаданных раздела. Если злоумышленник также манипулирует хэш-деревом из метаданных раздела, проверка подписи с помощью открытого ключа RSA завершится ошибкой. Конечно, тогда вам понадобится дополнительный механизм для обеспечения целостности загрузочного раздела. Это можно сделать с помощью механизмов, подобных Secure-Boot, где загрузочный раздел снова подписывается другим ключом (RSA), а общедоступная часть этого ключа встраивается на более низком уровне (зависит от поставщика). Такая цепочка механизмов проверки называется цепочкой доверия. В идеале вы хотели бы, чтобы цепочка доверия простиралась до аппаратного уровня, а некоторый ключ поставщика был записан в чип. Android 4.4 и выше поддерживает Verified Boot с помощью дополнительной функции ядра device-mapper-verity (dm-verity), которая обеспечивает прозрачную проверку целостности блочных устройств. dm-verity помогает предотвратить постоянные руткиты, которые могут удерживать привилегии суперпользователя и скомпрометировать устройства. Эта функция помогает пользователям Android быть уверенными, что при загрузке устройства оно находится в том же состоянии, что и при последнем использовании. Потенциально вредоносные приложения (PHA) с привилегиями root могут скрываться от программ обнаружения и иным образом маскировать себя. Программное обеспечение для рутирования может сделать это, потому что оно часто имеет больше привилегий, чем детекторы, что позволяет программному обеспечению «лгать» программам обнаружения. Функция dm-verity позволяет просмотреть блочное устройство, базовый уровень хранения файловой системы, и определить, соответствует ли оно ожидаемой конфигурации. Это делается с помощью криптографического хеш-дерева. Для каждого блока (обычно 4k) есть хэш SHA256. Поскольку хеш-значения хранятся в дереве страниц, для проверки остальной части дерева следует доверять только «корневому» хэшу верхнего уровня. Возможность изменить любой из блоков будет эквивалентна взлому криптографического хэша. |