Большинство новых ПК поставляются с 64-битная версия Windows - как Windows 7, так и 8 - уже много лет. 64-разрядные версии Windows - это не только использование дополнительной памяти. Они также более безопасны, чем 32-разрядные версии.
64-битные операционные системы не защищены от вредоносных программ, но у них есть больше функций безопасности. Отчасти это также относится к 64-битным версиям других операционных систем, например Linux. Пользователи Linux получат преимущества безопасности, переключившись к 64-битной версии своего дистрибутива Linux .
Рандомизация макета адресного пространства
ASLR - это функция безопасности, которая приводит к произвольному расположению ячеек данных программы в памяти. До появления ASLR расположение данных программы в памяти могло быть предсказуемым, что значительно упрощало атаки на программу. С помощью ASLR злоумышленник должен угадать правильное местоположение в памяти при попытке использовать уязвимость в программе. Неверное предположение может привести к сбою программы, поэтому злоумышленник не сможет повторить попытку.
Эта функция безопасности также используется в 32-битных версиях Windows и других операционных системах, но гораздо эффективнее в 64-битных версиях Windows. 64-битная система имеет гораздо большее адресное пространство, чем 32-битная система, что делает ASLR намного более эффективным.
Обязательная подпись драйвера
64-разрядная версия Windows требует обязательной подписи драйверов. Весь код драйвера в системе должен иметь цифровую подпись. Сюда входят драйверы устройств режима ядра и драйверы пользовательского режима, например драйверы принтера.
Обязательная подпись драйверов предотвращает запуск неподписанных драйверов, предоставляемых вредоносным ПО, в системе. Авторам вредоносных программ придется каким-то образом обойти процесс подписи с помощью руткита при загрузке или подписать зараженные драйверы действительным сертификатом, украденным у законного разработчика драйвера. Это затрудняет запуск зараженных драйверов в системе.
Подписание драйверов также может быть принудительно выполнено в 32-разрядных версиях Windows, но это не так - вероятно, для постоянной совместимости со старыми 32-разрядными драйверами, которые, возможно, не были подписаны.
Чтобы отключить подпись драйверов во время разработки в 64-разрядных версиях Windows, вам необходимо: прикрепить отладчик ядра или используйте специальный параметр запуска, который не сохраняется при перезагрузке системы.
Защита ядра от исправлений
KPP, также известный как PatchGuard, - это функция безопасности, доступная только в 64-разрядных версиях Windows. PatchGuard предотвращает установку исправлений ядра Windows программным обеспечением, даже драйверами, работающими в режиме ядра. Это всегда не поддерживалось, но технически возможно в 32-разрядных версиях Windows. Некоторые 32-разрядные антивирусные программы реализовали свои меры антивирусной защиты с помощью исправлений ядра.
PatchGuard не позволяет драйверам устройств исправлять ядро. Например, PatchGuard не позволяет руткитам изменять ядро Windows для встраивания в операционную систему. Если обнаружена попытка установки исправлений ядра, Windows немедленно выключится с синим экраном или перезагрузится.
Эту защиту можно было установить в 32-разрядной версии Windows, но этого не произошло - вероятно, для постоянной совместимости с устаревшим 32-разрядным программным обеспечением, которое зависит от этого доступа.
Защита выполнения данных
DEP позволяет операционной системе помечать определенные области памяти как «неисполняемые», устанавливая «бит NX». Области памяти, которые должны содержать только данные, не будут исполняемыми.
Например, в системе без DEP злоумышленник может использовать своего рода переполнение буфера для записи кода в область памяти приложения. Затем этот код может быть выполнен. С помощью DEP злоумышленник может записать код в область памяти приложения, но эта область будет помечена как неисполняемая и не может быть выполнена, что остановит атаку.
64-битные операционные системы имеют аппаратную DEP. Хотя это также поддерживается в 32-разрядных версиях Windows, если у вас современный процессор, настройки по умолчанию более строгие, и DEP всегда включен для 64-разрядных программ, а для 32-разрядных программ он отключен по умолчанию из соображений совместимости.
Диалог конфигурации DEP в Windows немного вводит в заблуждение. Как Микрософт’с документатион утверждает, что DEP всегда используется для всех 64-битных процессов:
«Параметры конфигурации системы DEP применяются только для 32-битных приложений и процессов при работе в 32-битных или 64-битных версиях Windows. В 64-битных версиях Windows, если доступно аппаратное обеспечение DEP, оно всегда применяется к 64-битным процессам и пространствам памяти ядра, и нет никаких настроек конфигурации системы для его отключения ».
WOW64
64-разрядные версии Windows запускают 32-разрядное программное обеспечение Windows, но делают это через уровень совместимости, известный как WOW64 (32-разрядная версия Windows в 64-разрядной версии Windows). Этот уровень совместимости накладывает некоторые ограничения на эти 32-разрядные программы, что может помешать правильной работе 32-разрядных вредоносных программ. 32-разрядные вредоносные программы также не смогут работать в режиме ядра - только 64-разрядные программы могут делать это в 64-разрядной ОС, поэтому это может помешать правильной работе некоторых старых 32-разрядных вредоносных программ. Например, если у вас есть старый аудио-компакт-диск с руткитом Sony, он не сможет установить себя в 64-разрядной версии Windows.
64-разрядные версии Windows также отказываются от поддержки старых 16-разрядных программ. Помимо предотвращения запуска древних 16-битных вирусов, это также заставит компании обновлять свои старые 16-битные программы, которые могут быть уязвимы и не исправлять.
Учитывая, насколько широко сейчас распространены 64-битные версии Windows, новые вредоносные программы, скорее всего, смогут работать в 64-битной Windows. Однако отсутствие совместимости может помочь защитить от старых вредоносных программ в дикой природе.
Если вы не используете старые скрипучие 16-битные программы, старое оборудование, которое предлагает только 32-битные драйверы, или компьютер с довольно старым 32-битным процессором, вам следует использовать 64-битную версию Windows. Если вы не знаете, какую версию используете, но у вас современный компьютер под управлением Windows 7 или 8, скорее всего, вы используете 64-разрядную версию.
Конечно, ни одна из этих функций безопасности не является надежной, и 64-разрядная версия Windows по-прежнему уязвима для вредоносных программ. Однако 64-битные версии Windows определенно более безопасны.
Кредит изображения: Уильям Хук на Flickr