В Windows Vista реализован ряд новых функций безопасности , большинство из которых отсутствуют в предыдущих версиях операционной системы Microsoft Windows .
Начиная с начала 2002 года, когда Microsoft объявила о своей инициативе Trustworthy Computing , была проделана большая работа по превращению Windows Vista в более безопасную операционную систему, чем ее предшественники. Внутри компании Microsoft был принят « жизненный цикл разработки безопасности » [1] с базовым принципом «Безопасность по проекту, безопасность по умолчанию, безопасность при развертывании». Новый код для Windows Vista был разработан с использованием методологии SDL, а весь существующий код был пересмотрен и рефакторингован для повышения безопасности.
Некоторые конкретные области, в которых Windows Vista представляет новые механизмы безопасности, включают контроль учетных записей пользователей, родительский контроль, защиту доступа к сети , встроенный инструмент защиты от вредоносных программ и новые механизмы защиты цифрового контента.
Контроль учетных записей пользователей — это новая инфраструктура, которая требует согласия пользователя перед разрешением любого действия, требующего административных привилегий. С этой функцией все пользователи, включая пользователей с административными привилегиями, по умолчанию работают в стандартном пользовательском режиме, поскольку большинству приложений не требуются более высокие привилегии. При попытке выполнения какого-либо действия, требующего административных привилегий, например установки нового программного обеспечения или изменения параметров системы или безопасности, Windows предложит пользователю разрешить действие или нет. Если пользователь выбирает разрешение, процесс, инициирующий действие, повышается до контекста с более высокими привилегиями для продолжения. В то время как обычным пользователям необходимо ввести имя пользователя и пароль административной учетной записи, чтобы повысить права процесса ( Over-the-shoulder Credentials ), администратор может выбрать запрос только на согласие или запрос учетных данных. Если пользователь не нажмет «Да», через 30 секунд запрос будет отклонен.
UAC запрашивает учетные данные в режиме Secure Desktop , где весь экран затемняется и временно отключается, чтобы отобразить только пользовательский интерфейс с повышением прав. Это необходимо для предотвращения подмены пользовательского интерфейса или мыши приложением, запрашивающим повышение прав. Если приложение, запрашивающее повышение прав, не имеет фокуса до переключения на Secure Desktop , то его значок на панели задач мигает, а при фокусировке отображается пользовательский интерфейс с повышением прав (однако невозможно помешать вредоносному приложению незаметно получить фокус).
Поскольку Secure Desktop позволяет запускать только системные приложения с наивысшими привилегиями, ни одно приложение пользовательского режима не может отображать свои диалоговые окна на этом рабочем столе, поэтому любой запрос на согласие на повышение прав можно смело считать подлинным. Кроме того, это также может помочь защититься от атак Shatter , которые перехватывают межпроцессные сообщения Windows для запуска вредоносного кода или подделки пользовательского интерфейса, предотвращая отправку сообщений неавторизованными процессами процессам с высокими привилегиями. Любой процесс, который хочет отправить сообщение процессу с высокими привилегиями, должен повысить свой уровень до контекста с более высокими привилегиями с помощью UAC.
Приложения, написанные с предположением, что пользователь будет работать с правами администратора, испытывали проблемы в более ранних версиях Windows при запуске из-под учетных записей с ограниченными правами, часто из-за того, что они пытались записать в системные каталоги (например, Program Files ) или разделы реестра (в частности, HKLM ) [2] UAC пытается облегчить это с помощью виртуализации файлов и реестра , которая перенаправляет записи (и последующие чтения) в местоположение для каждого пользователя в профиле пользователя. Например, если приложение пытается записать в «C:\program files\appname\settings.ini», а у пользователя нет прав на запись в этот каталог, запись будет перенаправлена в «C:\Users\username\AppData\Local\VirtualStore\Program Files\appname\».
BitLocker, ранее известный как «Безопасный запуск», эта функция предлагает полное шифрование диска для системного тома. Используя утилиту командной строки, можно зашифровать дополнительные тома. Bitlocker использует USB-ключ или Trusted Platform Module (TPM) версии 1.2 спецификаций TCG для хранения своего ключа шифрования. Он гарантирует, что компьютер под управлением Windows Vista запустится в заведомо исправном состоянии, а также защищает данные от несанкционированного доступа. [3] Данные на томе шифруются с помощью полного ключа шифрования тома (FVEK), который далее шифруется с помощью главного ключа тома (VMK) и хранится на самом диске.
Windows Vista — первая операционная система Microsoft Windows, которая предлагает встроенную поддержку TPM 1.2, предоставляя набор API, команд, классов и служб для использования и управления TPM. [4] [5] Новая системная служба, называемая TPM Base Services, обеспечивает доступ к ресурсам TPM и их совместное использование разработчиками, желающими создавать приложения с поддержкой этого устройства. [6]
Шифрованная файловая система (EFS) в Windows Vista может использоваться для шифрования системного файла подкачки и кэша автономных файлов для каждого пользователя . EFS также более тесно интегрирована с корпоративной инфраструктурой открытых ключей (PKI) и поддерживает использование восстановления ключей на основе PKI, восстановление данных с помощью сертификатов восстановления EFS или их комбинацию. Также есть новые групповые политики, требующие смарт-карт для EFS, принудительного шифрования файла подкачки, устанавливающие минимальную длину ключей для EFS, принудительного шифрования папки «Документы» пользователя и запрещающие самоподписанные сертификаты. Кэш ключей шифрования EFS может быть очищен, когда пользователь блокирует свою рабочую станцию или по истечении определенного срока.
Мастер переключений EFS позволяет пользователю выбрать сертификат для EFS, а также выбрать и перенести существующие файлы, которые будут использовать новый выбранный сертификат. Диспетчер сертификатов также позволяет пользователям экспортировать свои сертификаты восстановления EFS и закрытые ключи. Пользователям напоминают о необходимости создания резервных копий ключей EFS при первом использовании с помощью всплывающего уведомления . Мастер переключений также может использоваться для переноса пользователей в существующих установках с сертификатов программного обеспечения на смарт-карты . Мастер также может использоваться администратором или самими пользователями в ситуациях восстановления. Этот метод более эффективен, чем расшифровка и повторное шифрование файлов.
Windows Vista значительно улучшает брандмауэр [7] , решая ряд проблем, связанных с гибкостью брандмауэра Windows в корпоративной среде:
Windows Vista включает Windows Defender, антишпионскую утилиту Microsoft. По словам Microsoft, она была переименована из 'Microsoft AntiSpyware', потому что она не только сканирует систему на наличие шпионского ПО, как и другие бесплатные продукты на рынке, но и включает агентов Real Time Security, которые отслеживают несколько общих областей Windows на предмет изменений, которые могут быть вызваны шпионским ПО. К этим областям относятся конфигурация и загрузки Internet Explorer, приложения с автозапуском, параметры конфигурации системы и надстройки Windows, такие как расширения Windows Shell.
Windows Defender также включает возможность удаления установленных приложений ActiveX и блокирования программ автозагрузки. Он также включает сеть SpyNet , которая позволяет пользователям связываться с Microsoft, отправлять то, что они считают шпионским ПО, и проверять, какие приложения являются приемлемыми.
Windows Vista позволяет администраторам применять ограничения на оборудование с помощью групповой политики , чтобы запретить пользователям устанавливать устройства, ограничить установку устройств предопределенным белым списком или ограничить доступ к съемным носителям и классам устройств. [8] [9]
Windows Vista включает в себя ряд родительских средств контроля для администраторов, чтобы отслеживать и ограничивать активность на компьютере учетных записей стандартных пользователей, которые не являются частью домена ; Контроль учетных записей пользователей обеспечивает соблюдение административных ограничений. Функции включают: Windows Vista Web Filter — реализованный как фильтр Winsock LSP для работы во всех веб-браузерах — который запрещает доступ к веб-сайтам на основе категорий контента или определенных адресов (с возможностью блокировать все загрузки файлов); Ограничения по времени , которые не позволяют обычным пользователям входить в систему в течение даты или времени, указанных администратором (и которые блокируют ограниченные учетные записи, которые уже вошли в систему в это время); Ограничения по играм , которые позволяют администраторам блокировать игры на основе имен, контента или рейтингов, определенных системой рейтинга контента видеоигр , такой как Entertainment Software Rating Board (ESRB) , при этом ограничения по контенту имеют приоритет над ограничениями по рейтингу (например, игры для всех 10+ (E10+) могут быть разрешены для запуска в целом, но игры E10+ с ненормативной лексикой будут по-прежнему блокироваться, если сама ненормативная лексика заблокирована); Ограничения приложений , которые используют белые списки приложений для определенных приложений; и Отчеты об активности , которые отслеживают и регистрируют действия ограниченных стандартных учетных записей пользователей.
Родительский контроль Windows включает в себя расширяемый набор опций с интерфейсами прикладного программирования (API), позволяющими разработчикам заменять встроенные функции собственными.
Windows Vista использует Address Space Layout Randomization (ASLR) для загрузки системных файлов по случайным адресам в памяти. [10] По умолчанию все системные файлы загружаются случайным образом в любое из 256 возможных расположений. Другие исполняемые файлы должны специально установить бит в заголовке файла Portable Executable (PE) , который является форматом файла для исполняемых файлов Windows, чтобы использовать ASLR. Для таких исполняемых файлов стек и куча выделяются случайным образом. Загружая системные файлы по случайным адресам, вредоносному коду становится сложнее узнать, где находятся привилегированные системные функции, тем самым делая маловероятным их предсказуемое использование. Это помогает предотвратить большинство атак удаленного выполнения, предотвращая атаки переполнения буфера возврата в LIBC .
Формат Portable Executable был обновлен для поддержки встраивания адреса обработчика исключений в заголовок. Всякий раз, когда выдается исключение, адрес обработчика сверяется с адресом, сохраненным в исполняемом заголовке. Если они совпадают, исключение обрабатывается, в противном случае это указывает на то, что стек времени выполнения был скомпрометирован, и, следовательно, процесс завершается.
Указатели функций запутываются с помощью XOR-ов со случайными числами, так что фактический адрес, на который указывает указатель, трудно получить. То же самое можно сделать и вручную, так как ключ запутывания, используемый для указателя, будет очень трудно получить. Таким образом, любому неавторизованному пользователю указателя функции сложно будет его использовать. Также метаданные для блоков кучи запутываются с помощью XOR-ов со случайными числами. Кроме того, для блоков кучи поддерживаются контрольные суммы, которые используются для обнаружения несанкционированных изменений и повреждения кучи. Всякий раз, когда обнаруживается повреждение кучи, приложение завершается, чтобы предотвратить успешное завершение эксплойта.
Двоичные файлы Windows Vista включают встроенную поддержку обнаружения переполнения стека. При обнаружении переполнения стека в двоичных файлах Windows Vista процесс завершается, чтобы его нельзя было использовать для продолжения эксплуатации. Кроме того, двоичные файлы Windows Vista размещают буферы выше в памяти, а не буферы, такие как указатели и предоставленные параметры, в нижней области памяти. Таким образом, для фактической эксплуатации необходимо опустошение буфера, чтобы получить доступ к этим областям. Однако опустошение буфера встречается гораздо реже, чем переполнение буфера.
Windows Vista представляет Mandatory Integrity Control для установки уровней целостности для процессов. Процесс с низким уровнем целостности не может получить доступ к ресурсам процесса с более высоким уровнем целостности. Эта функция используется для принудительной изоляции приложений, когда приложения со средним уровнем целостности, такие как все приложения, работающие в контексте стандартного пользователя, не могут подключаться к системным процессам, работающим с высоким уровнем целостности, таким как приложения режима администратора, но могут подключаться к процессам с более низким уровнем целостности, таким как Windows Internet Explorer 7 или 8. Процесс с более низкими привилегиями не может выполнять проверку дескриптора окна с более высокими привилегиями процесса, не может SendMessage или PostMessage в окна приложений с более высокими привилегиями, не может использовать перехватчики потоков для присоединения к процессу с более высокими привилегиями, не может использовать перехватчики журнала для мониторинга процесса с более высокими привилегиями и не может выполнять внедрение DLL в процесс с более высокими привилегиями.
Windows Vista предлагает полную поддержку функции NX (No-Execute) современных процессоров. [11] DEP была представлена в Windows XP Service Pack 2 и Windows Server 2003 Service Pack 1. Эта функция, представленная как NX (EVP) в процессорах AMD64 от AMD и как XD (EDB) в процессорах Intel , может помечать определенные части памяти как содержащие данные вместо исполняемого кода, что предотвращает ошибки переполнения, приводящие к выполнению произвольного кода.
Если процессор поддерживает NX-бит, Windows Vista автоматически применяет аппаратное предотвращение выполнения данных во всех процессах, чтобы пометить некоторые страницы памяти как неисполняемые сегменты данных (например, куча и стек), и впоследствии любые данные не могут быть интерпретированы и выполнены как код. Это предотвращает внедрение кода эксплойта в качестве данных и его последующее выполнение.
Если DEP включен для всех приложений , пользователи получают дополнительную устойчивость к эксплойтам нулевого дня . Но не все приложения совместимы с DEP, и некоторые из них будут генерировать исключения DEP. Поэтому DEP не применяется для всех приложений по умолчанию в 32-разрядных версиях Windows и включен только для критических системных компонентов. Однако Windows Vista вводит дополнительные элементы управления политикой NX, которые позволяют разработчикам программного обеспечения включать аппаратную защиту NX для своего кода независимо от общесистемных настроек обеспечения совместимости. Разработчики могут помечать свои приложения как совместимые с NX при сборке, что позволяет применять защиту при установке и запуске этого приложения. Это обеспечивает более высокий процент кода, защищенного NX, в экосистеме программного обеспечения на 32-разрядных платформах, где политика совместимости системы по умолчанию для NX настроена на защиту только компонентов операционной системы. Для приложений x86-64 обратная совместимость не является проблемой, и поэтому DEP применяется по умолчанию для всех 64-разрядных программ. Кроме того, в версиях x86-64 Windows Vista для большей безопасности используется только процессорно-зависимый DEP.
В Windows Vista появились новые функции управления цифровыми правами и защиты контента, которые помогают поставщикам цифрового контента и корпорациям защитить свои данные от копирования.
Включение новых функций управления цифровыми правами стало источником критики в Windows Vista .
Windows Service Hardening разделяет службы таким образом, что если одна служба скомпрометирована, она не может легко атаковать другие службы в системе. Она не позволяет службам Windows выполнять операции с файловыми системами, реестром или сетями [14] , которые им не положено делать, тем самым уменьшая общую поверхность атаки на систему и предотвращая проникновение вредоносного ПО путем эксплуатации системных служб . Службам теперь назначается идентификатор безопасности (SID) для каждой службы, который позволяет контролировать доступ к службе в соответствии с доступом, указанным идентификатором безопасности. SID для каждой службы может быть назначен во время установки службы через API ChangeServiceConfig2 или с помощью SC.EXE
команды с глаголом sidtype . Службы также могут использовать списки управления доступом (ACL) для предотвращения внешнего доступа к ресурсам, закрытым для них самих.
Службы в Windows Vista также работают в менее привилегированной учетной записи, такой как Local Service или Network Service , вместо учетной записи System . Предыдущие версии Windows запускали системные службы в том же сеансе входа в систему, что и локально вошедший в систему пользователь (Session 0). В Windows Vista Session 0 теперь зарезервирован для этих служб, и все интерактивные входы в систему выполняются в других сеансах. [15] Это призвано помочь смягчить класс эксплойтов системы передачи сообщений Windows, известных как атаки Shatter . Процесс, размещающий службу, имеет только привилегии, указанные в значении реестра RequiredPrivileges в разделе HKLM\System\CurrentControlSet\Services .
Службам также нужны явные разрешения на запись для записи в ресурсы на основе каждой службы. Используя маркер доступа с ограничением записи , только тем ресурсам, которые должны быть изменены службой, предоставляется доступ на запись, поэтому попытка изменить любой другой ресурс не удастся. Службы также будут иметь предварительно настроенную политику брандмауэра, которая дает им только столько привилегий, сколько необходимо для их правильной работы. Независимые поставщики программного обеспечения также могут использовать Windows Service Hardening для усиления защиты своих собственных служб. Windows Vista также усиливает именованные каналы, используемые серверами RPC , чтобы другие процессы не могли их перехватить.
Графическая идентификация и аутентификация ( GINA ), используемые для безопасной аутентификации и интерактивного входа в систему, были заменены поставщиками учетных данных . В сочетании с поддерживающим оборудованием поставщики учетных данных могут расширить операционную систему, чтобы пользователи могли входить в систему с помощью биометрических устройств (отпечатков пальцев, сетчатки глаза или распознавания голоса), паролей, PIN-кодов и сертификатов смарт-карт или любого пользовательского пакета аутентификации и схемы, которые хотят создать сторонние разработчики. Аутентификация смарт-карт является гибкой, поскольку требования к сертификатам смягчены. Предприятия могут разрабатывать, развертывать и опционально применять пользовательские механизмы аутентификации для всех пользователей домена. Поставщики учетных данных могут быть разработаны для поддержки единого входа (SSO), аутентификации пользователей в защищенной точке доступа к сети (используя RADIUS и другие технологии), а также входа в систему на компьютере. Поставщики учетных данных также разработаны для поддержки сбора учетных данных, специфичных для приложений, и могут использоваться для аутентификации в сетевых ресурсах, присоединения компьютеров к домену или для предоставления согласия администратора на управление учетными записями пользователей . Аутентификация также поддерживается с использованием IPv6 или веб-служб . Новый поставщик услуг безопасности CredSSP доступен через интерфейс поставщика поддержки безопасности , который позволяет приложению делегировать учетные данные пользователя от клиента (используя SSP на стороне клиента) на целевой сервер (через SSP на стороне сервера). CredSSP также используется службами терминалов для предоставления единого входа .
Windows Vista может аутентифицировать учетные записи пользователей с помощью смарт-карт или комбинации паролей и смарт-карт ( двухфакторная аутентификация ). Windows Vista также может использовать смарт-карты для хранения ключей EFS . Это гарантирует, что зашифрованные файлы будут доступны только до тех пор, пока смарт-карта физически доступна. Если для входа в систему используются смарт-карты, EFS работает в режиме единого входа , в котором она использует смарт-карту входа для шифрования файлов без дальнейшего запроса PIN-кода.
Быстрое переключение пользователей , которое было ограничено компьютерами рабочей группы в Windows XP, теперь может быть включено для компьютеров, присоединенных к домену, начиная с Windows Vista. Windows Vista также включает поддержку аутентификации для контроллеров домена только для чтения , представленных в Windows Server 2008 .
Windows Vista содержит обновление криптографического API, известного как Cryptography API: Next Generation (CNG). CNG API — это API пользовательского режима и режима ядра , который включает поддержку эллиптической кривой криптографии (ECC) и ряда новых алгоритмов, которые являются частью Suite B Агентства национальной безопасности (NSA). Он расширяем, с поддержкой подключения пользовательских криптографических API в среду выполнения CNG. Он также интегрируется с подсистемой смарт-карт , включая модуль Base CSP , который реализует все стандартные внутренние криптографические функции, необходимые разработчикам и производителям смарт-карт, так что им не нужно писать сложные CSP . Центр сертификации Microsoft может выдавать сертификаты ECC, а клиент сертификата может регистрировать и проверять сертификаты на основе ECC и SHA-2.
Улучшения отзыва включают собственную поддержку протокола статуса сертификата Online Certificate Status Protocol (OCSP), обеспечивающего проверку действительности сертификата в реальном времени, предварительную выборку CRL и диагностику CAPI2. Регистрация сертификатов основана на мастере, позволяет пользователям вводить данные во время регистрации и предоставляет четкую информацию о неудачных регистрациях и просроченных сертификатах. CertEnroll, новый API регистрации на основе COM, заменяет библиотеку XEnroll для гибкой программируемости. Возможности роуминга учетных данных реплицируют пары ключей Active Directory, сертификаты и учетные данные, хранящиеся в хранимых именах пользователей и паролях в сети.
Windows Vista представляет защиту доступа к сети (NAP), которая гарантирует, что компьютеры, подключающиеся к сети или взаимодействующие с ней, соответствуют требуемому уровню работоспособности системы , установленному администратором сети. В зависимости от политики, установленной администратором, компьютеры, не соответствующие требованиям, будут либо предупреждены и им будет предоставлен доступ, либо разрешен доступ к ограниченным сетевым ресурсам, либо им будет полностью отказано в доступе. NAP также может опционально предоставлять обновления программного обеспечения несоответствующему компьютеру для его обновления до уровня, необходимого для доступа к сети, с помощью сервера исправления . Соответствующему клиенту выдается сертификат работоспособности , который он затем использует для доступа к защищенным ресурсам в сети.
Сервер сетевой политики , работающий под управлением Windows Server 2008, действует как сервер политики работоспособности, а клиенты должны использовать Windows XP SP3 или более позднюю версию. VPN- сервер, сервер RADIUS или DHCP- сервер также могут действовать как сервер политики работоспособности.
Был внесен ряд конкретных изменений в безопасность и надежность: