Потрясает? Пожалуй, да, ведь не будем забывать, что выход системы состоялся ну совсем уже недавно. Однако то ли еще будет. Как обещает многоуважаемая Рутковска, это только начало, ведь в планах ближайшего времени опубликовать новые оригинальные способы взлома пресловутой защиты NT 6.0.
Чего же все-таки стоит хваленая безопасность новой операционной системы и какие технологии за этим стоят? Попробуем разобраться в этом.
Драйверы с цифровой подписью
Никто не будет отрицать, что значительная часть потенциальных проблем безопасности операционных систем связана именно с драйверами. По заявлениям Microsoft, x64-версии Vista будут допускать установку драйверов исключительно с цифровой подписью. Порочная практика «драйвер не имеет цифровой подписи – все равно продолжить» должна теперь кануть в небытие?! Понятное дело, что обязательное подписывание драйверов в значительной степени способствует надежности Windows Vista, ведь большинство сбоев операционной системы и критических ошибок связаны именно с недоработкой драйверов режима ядра.
Прокомментировать подобный вариант защиты от установки драйверов без цифровой подписи можно было бы вполне однозначно: новая технология исправно защищает ядро операционной системы от модификаций, обеспечивая, как бы это хотелось сказать, непревзойденный уровень защиты.
Однако постойте. В начале августа этого года Symantec обнародовала до примитива простой способ обхода всей этой хваленой защиты: защита ядра 32-и 64-битных версий Vista от установки неподписанных драйверов может быть взломана с помощью простой бесплатной утилиты! Специалистам Symantec удалось обнаружить в свободном доступе программу Atsiv, разработанную австралийской компанией Linchpin Labs.
Реакция Microsoft на появившееся средство обхода защиты Vista пока неизвестна.
PatchGuard
Как следует из названия, PatchGuard создан, чтобы обеспечить защиту от несанкционированной модификации ядра Vista вредоносным кодом. По определению Microsoft, PatchGuard представляет собой не что иное, как «метод предотвращения расширения драйверов режима ядра или замены других служб ядра, а также редактирования какой-либо части ядра сторонними программами».
Чтобы понять суть данной технологии защиты, будет полезным разобраться в том, что же такое kernel patching (изменение ядра).
Под kernel patching, как это следует из названия, понимается некая техника модификации/замены критических областей данных ядра Windows на другой код или данные, которые могут быть потенциально вредоносными. Модификация эта, в свою очередь, возможна посредством использования внутренних системных вызовов или другим способом. Вообще, модификация и обновление ядра, по сути, не являются чем-то экзотическим и априорно запрещенным для системы, ведь многие производители ПО достаточно часто модифицируют его для своих целей, например, изменяя адрес функции-обработчика системного вызова (указатель функции) в таблице системных вызовов (system service table, SST).
Вдаваясь в технические подробности работы PatchGuard, следует сказать, что благодаря данной технологии в системе запрещена модификация таких компонентов ядра, как:
таблицы системных вызовов (system service tables, SST);
таблицы глобальных дескрипторов (global descriptor table (GDT));
таблицы прерываний (interrupt descriptor table (IDT)).
В случае если какой-либо код попытается модифицировать вышеописанные компоненты ядра, операционная система сгенерирует отчет об обнаруженной уязвимости и экстренно завершит свою работу. По официальным заявлениям Microsoft, данный компонент системы защиты ядра отключить невозможно. Однако, как оно всегда и бывает, нет ничего невозможного: защита ядра все-таки отключается. Подобное вполне возможно, если в системе работает отладчик ядра. Решение, как мне кажется, не заставит себя долго ждать.
NX (No Execute) DEP!
Под загадочной аббревиатурой NX стоит вполне прозрачная технология DEP – DATA EXECUTION PREVENTION. Реализованный программно в 32-битной версии Windows Vista, в 64-разрядной версии операционной системы NX реализован аппаратно. Понятное дело, что аппаратно реализованная функция DEP более надежна, поскольку здесь на страже нашей безопасности стоит само «железо».
Чтобы лучше понять, что же такое NX, необходимо разобраться в DEP.