Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
В качестве примера смотрите самозащиту Каспера и ДрВеба.
применяют средства доверенной загрузки, в функции которых входит и контроль целостности СЗИ и среды функционирования (ОС), до ее запуска
Предзагрузочный контроль целостности невозможен.сводится к банальной проблеме останова, теореме Райса и т.д. Т.е. вы апелируете к тому, что в конкретных реализациях (ntfs-3g vs ntfs.sys) есть разница в реализации (в любом нетривиальном коде наверняка есть хотя бы одна ошибка).
Но это же столько отечественных научных работ по доверенной загрузке нужно признать несостоятельными.
Почему вы считаете, что в модуле Secure Boot не может быть уязвимостей, а в таком же модуле UEFI, загружающемся из Option ROM обязательно будут?
На всякий случай уточню, что АПМДЗ точно также может проверять целостность загрузчика уже после загрузки в память.
3. Я не могу отвечать за все СЗИ под Windows на Российском рынке, но то, что я разрабатываю, работает больше похоже на Secure Boot: наш АПМДЗ контролирует целостность загрузчика, ядра и веток реестра, которые парсит загрузчик, а потом стартует наш бутовый драйвер, который контролирует целостность остального уже с использованием виндовых драйверов/функций ядра.
На всякий случай уточню, что изначально реестр винды грузит и парсит winload, а не ядро, вычитывая оттуда список бутовых драйверов, к которым относятся и все средства защиты.
Драйвера файловых систем в АПМДЗ и целевом Linux'е, как вы понимаете, одинаковые.
Если отличий в реализации парсера реестра / драйвера NTFS в АПМДЗ и winload'е будет мало, а их поиск будет слишком дорогим, то проще будет выбрать другой вектор атаки.
Бывает защита, пробивание которой стоит дороже, чем данные, которые она защищает.
В этом случае АПМДЗ контролирует целостность ядра и initramfs (в котором СЗИ реализовано в виде LSM-модуля), а потом делает в него kexec, без всяких загрузчиков.
Я лишь утверждаю, что поэтапный контроль лучше.
АПМДЗ является частым случаем реализации одной из стадий поэтапного контроля. Это такой же кусок кода, как и сам winload. Они одновременно находятся в одной и той же памяти и исполняются одновременно на одном уровне привелегий. От того, что вы расположите их в одном PE или в разных ничего не поменяется.
Еще раз повторю: вы говорите о различиях в реализации парсинга в winload'е и АПМДЗ, что является частным случаем ошибки/уязвимости. Точно такие же ошибки есть в любом коде, будь то Secure Boot или любая другая система защиты.
Ничего не мешает АПМДЗ проверять целостность реестра и наличие драйвера СЗИ уже в памяти по ExitBootServices. Можно использовать для проверки реестра в памяти куски кода winload'а, вызывая их из своего UEFI-модуля.
Можно исполнять все, вплоть до получения управления драйвером в тонком гипервизоре (blue pill/bitvisor) и контролировать целостность всех исполняемых страниц памяти при их вызове (ага, мы так умеем).
На любой названный вами вектор атаки я всегда смогу ответить методом защиты. Это обычное соревнование брони и снаряда.
winload не умеет в файлы транзакций, так что ничем не отличается даже от аккорда. Незакрытые транзации закроет уже ядро, а все бутовые драйвера, загруженные winload'ом, получат управление.
Незакрытые транзации закроет уже ядро, а все бутовые драйвера, загруженные winload'ом, получат управление.
В модель угроз не входит возможность исполнить код в ядре, а без этого вы NTFS не поломаете.
Ничего не забыл? Т.е. ни одна из предложенных вами атак в реальной жизни не сработает. Это вовсе не означает, что вы не сможете найти уязвимость.

Предзагрузочный контроль целостности невозможен.
Ничего не забыл? Т.е. ни одна из предложенных вами атак в реальной жизни не сработает. Это вовсе не означает, что вы не сможете найти уязвимость.
На предложение сотрудничества по устранению обнаруженного руководство СмартЛайн отреагировало вяло, что еще больше удивляет.
DLP-система DeviceLock 8.3: прошёл год, Билли, а ты совсем не изменился