Плюсы и минусы безопасности 64-битной версии Vista
Windows Vista от Microsoft вышла почти год назад. Перед ее запуском Билл Гейтс дал обещание, что безопасность этой системы имеет для компании наивысший приоритет. Разрабатывая изначально безопасный по своей архитектуре и реализации код, компания намеревалась создать операционную систему, непроницаемую для изощренных вредоносных программ и удаленных атак, которые преследовали ее предшественницу - Windows XP. Microsoft создавала новую систему с нуля на протяжении пяти полных лет и к моменту ее выхода на рынок в конце января 2007 года уже прошло два года с изначально запланированного времени выпуска.
Во время этого двухлетнего периода, разработчики компьютерного железа начали создавать устройства, позволяющие выполнять 64-битный код под управлением соответствующей операционной системы. Осознав растущую востребованность 64-битных компьютерный вычислений, Microsoft разделила процесс разработки Vista и последующих версий на две подкатегории: 32-битную (x-86) и 64-битную (x-64) версии.
64-битные системы предоставляют ряд преимуществ в производительности и масштабируемости по сравнению с моделью x-86 , которые, в свою очередь, накладывают ограничения на способы обеспечения безопасности, что и является предметом данной статьи. Следующий выпуск Советов по безопасности более тщательно рассмотрит все улучшения безопасности, представленные в Vista.
Преимущество # 1: Полное предотвращение выполнения кода (Data Execution Prevention, DEP)
DEP использует возможности современных процессоров для обозначения определенных областей памяти как содержащие биты неисполняемого кода, предотвращая таким образом исполнение хранящегося в них кода. DEP помогает предотвратить использование вредоносным кодом переполнения буфера, которое происходит когда процесс достигает границ выделенной ему памяти и пытается произвести запись в соседние области, используемые другими процессами.
Технология DEP на системах x-64 позволяет включить собственную аппаратную защиту для всех запущенных программ и служб. Для сравнения, DEP на 32-битных системах доступна только для важнейших и указанных пользователем программ и служб.
Преимущество # 2: Защита ядра от изменения (Kernel Patch Protection, KPP)
Технология KPP, называемая также Patch Guard, это мера, призванная ограничить прямое изменение программами памяти ядра Windows – центральной части операционной системы. Microsoft долго настаивала на том, что изменения ядра сторонними разработчиками недопустимы и, по сути, полностью закрыла доступ к ядру в последних версиях 64-битной Windows (XP и Vista). Данный шаг был совершен с целью минимизации потенциальной угрозы, представляемой изощренными вредоносными программами, такими как kernel-mode руткиты, которые изменяют ядро (меняют структуры ядра таким образом, что новые внедряемые ими данные не могут быть зарегистрированы или распознаны системой), чтобы остаться незаметными.
С одной стороны, данный шаг был действительно необходим для обеспечения безопасности путем «опечатывания» ядра от внешних несанкционированных изменений, с другой он дорого стоил сторонним разработчикам средств безопасности, которые основывали свои продукты на изменении ядра с целью укрепления защиты, не обеспечиваемой самой системой. Как оказалось, то, как работает KPP, в действительности не является сильным сдерживающим фактором для самых упорных вредоносных программ – KPP разработана лишь для эпизодической проверки целостности ядра, что позволяет производить несанкционированные изменения в периоды между проверками. При обнаружении изменения ядра система вызывает аварийное выключение, результатом чего может стать потеря несохраненных пользователем данных.
Хакеры и исследователи безопасности, естественно, нашли пути обхода KPP. По мере того, как Microsoft выпускает обновления, появляются примеры того, как кому-то удается обойти последний патч KPP, подтверждая несостоятельность KPP в противостоянии серьезным вторжениям на уровне ядра.
В ответ на просьбы разработчиков средств безопасности обеспечить приемлемый способ доступа к ядру для реализации защиты их пользователей, Microsoft согласилась предоставить квалифицированным разработчикам (в том числе и Agnitum) интерфейс прикладного программирования (Application Programming Interface, API). Этот API будет доступен в SP1 для Vista, который в данный момент находится на стадии бета-тестирования, а выпуск его намечен на первый квартал 2008 года.
Преимущество # 3: Подпись драйвера
Подпись драйверов, еще одно сомнительное, но существенное изменение от Microsoft, требующее наличие цифровой подписи у всех kernel-mode драйверов; к сожалению, это также слабо помогает в противоборстве с изощренным вредоносным ПО. Проблема заключается в том, что доверенный и сертифицированный разработчик, переметнувшийся на темную сторону (или недовольный или уволенный сотрудник, обладающий цифровым сертификатом, выданным на имя его компании), может самостоятельно подписать драйвер своей персональной подписью и выпустить вредоносную программу. Драйвер сможет беспрепятственно загружаться на системах пользователей и работать на 64-битных версиях Vista. Служба сертификации или Microsoft (как, например, в недавнем примере) могут, конечно, отозвать сертификат и таким образом запретить работу драйвера, но это требует некоторого времени и пользователи все равно подвергаются риску, пока драйвер работает.
Другая слабая сторона этого подхода заключается в том, что простой параметр командной строки может запретить вообще все подписи в Vista 64 – довольно несложная операция для вредоносной программы.
Преимущество # 4: Проверка целостности кода при загрузке
При загрузке операционной системы, все бинарные файлы (исполняемые файлы, драйверы и прочий программный код), используемый в процессе, проверяются на подлинность. Данная процедура гарантирует, что бинарные файлы не были изменены и система чиста. Проверка осуществляется путем сверки подписей бинарных файлов в системных каталогах. Загрузчик Vista проверяет целостность ядра, уровня аппаратных абстракций (Hardware Abstraction Layer, HAL) и загружающихся при старте системы драйверов, надежно защищая систему от встроенного вредоносного, несанкционированного или дефектного кода.
Выводы
Несмотря на прогресс Microsoft в стабилизации 64-битной версии Vista, уязвимости, существовавшие в системах x-86, до сих пор актуальны и для x-64, и эксперты полагают, что эта тенденция сохранится. Взгляд на историю документированных уязвимостей Vista показывает, что обе системы практически одинаково чувствительны (например, см. этот отчет Microsoft) к вредоносному коду, нацеленному на использование любой уязвимости Vista.
Заключение
Так что же означают все эти улучшения в 64-битной версии ОС для пользователей компьютеров под управлением Vista? Для большинства из них изменения на благо, они хорошо задуманы, хотя иногда и бедно реализованы. SP1 и API будут иметь большое значение при распределении сил между Microsoft и сторонними разработчиками. А пока следуйте советам по безопасности и используйте сторонние антивирусы/антишпионы, брандмауэры и другую защиту, так как в целом они более мощные и гибкие, чем встроенные аналоги Vista. |