входим в нору КРИС КАСПЕРСКИ Спецвыпуск: Хакер, номер #072, стр. 072-054-5 А вот легальным разработчикам антивирусов, брандмауэров и прочих программ подобного рода приходится либо сворачивать свой бизнес, либо бухаться в колени Microsoft и просить предоставить им «ручку» в виде соответствующего вызова API, а в идеале — интегрировать их продукт в ядро (но разработчиков много, а интегрировать можно только одного, и вовсе не факт, что он будет лучшим из всех имеющихся). Собственно говоря, кое-какая API для этого появилось еще в NT, и всякий желающий мог установить свой собственный фильтр, контролирующий сетевой трафик или содержимое открываемых файлов. Почему же тогда разработчики предпочли модифицировать ядро системы? Да потому, что это надежнее! Легкость установки легального фильтра компенсируется легкостью его снятия, не говоря уже о том, что все имеющиеся на данный момент фильтры работают на довольно высоком уровне, что позволяет зловредным программам легко обходить их! Ладно бы Microsoft закрыла ядро отдельным кольцом, защитив его и от «хороших», и от «плохих» программ. Так ведь нет! Легальные программы вынуждены либо отключать Patch-Guard, что чревато далеко идущими последствиями, либо становится жертвой rootkit'ов. Чтобы никакой зловредный код не смог пробиться на уровень ядра, Microsoft заблокировала загрузку драйверов без цифровой подписи. Даже обладая администраторскими правами, владелец системы не может загрузить неподписанный драйвер. Снять блокировку можно тремя путями: подключить ядерный отладчик, при старте системы нажать <F8> или отредактировать опции загрузки в boot.ini Стоп! В висте уже нет boot.ini, и опции загрузки хранятся в бинарном формате, манипулировать которым можно штатной утилитой BCDedit. Так же в состав SDK входит тестовая цифровая подпись, содержащая слово «test» и предназначенная исключительно для отладочных целей. Ни один из этих способов для коммерческих продуктов, разумеется, не пригоден, и финальная версия драйвера должна быть подписана полноценной цифровой подписью, которую в настоящей момент уполномочена выдавать только одна компания — Verisign. Сертификат начального уровня стоит $500 и выдается только американским фирмам или фирмам, имеющим свое представительство в США. Подробности о политике цифровой подписи читайте в официальном документе «Kernel-Mode Code Signing Walkthrough» от Microsoft: http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/KMCS_Walkthrough.doc. |