Рубрика:
Безопасность /
Безопасность
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
АНДРЕЙ БИРЮКОВ
Средства обеспечения безопасности в Windows Vista Часть 1
Выбирая, какую операционную систему использовать, мы уделяем большое внимание средствам обеспечения информационной безопасности. В этой статье мы начнем рассматривать новые средства безопасности, появившиеся в Windows Vista.
Безопасность в каждой новой версии операционной системы семейства Windows всегда была и остается темой для жарких споров. На многих тематических интернет-форумах специалисты и обычные пользователи спорят о том, насколько защищена или наоборот уязвима Windows Vista. В этих спорах зачастую приводятся в качестве примеров технологии, используемые в новой операционной системе. В этой статье мы попробуем разобраться в новых средствах обеспечения безопасности, представленных в Windows Vista.
Прежде всего, приведу немного официальной информации, которая была представлена Microsoft перед выходом Windows Vista.
Итак, по заявлению разработчика, Windows Vista – это первая клиентская операционная система, в которой контроль за безопасностью осуществляется на всех этапах разработки (технология Microsoft’s Security Development Lifecycle – SDL).
Это означает, что безопасности в новой ОС уделено большое внимание. Согласно технологии SDL к разработчикам ПО с самого начала приставляется консультант по безопасности, который контролирует все этапы разработки на предмет отсутствия уязвимостей в программном коде.
Кроме того, Microsoft сертифицировала Windows Vista по стандарту ISO «Общие Критерии» с целью получения сертификатов EAL4 и Single Level OS Protection Profile.
Какими сертификатами на данный момент обладает Windows Vista и другие продукты Microsoft, можно узнать на сайте Common Criteria [4].
Аппаратная защита
Защита операционной системы происходит на нескольких уровнях. Это аппаратная, программная и защита данных. Начну с описания аппаратной защиты.
Аппаратную защиту можно считать нововведением, ведь до выхода Windows Vista другие операционные системы из этого семейства не обладали средствами взаимодействия с механизмами аппаратной защиты.
Но сначала немного поговорим о том, от чего мы собственно защищаемся.
Как известно, исполняемый машинный код и данные, которые используются в приложениях, размещаются в оперативной памяти. Таким образом была возможна ситуация, когда блок данных большей, чем предполагалось длины, мог затереть часть машинного кода. Это могло привести как минимум к сбою в работе приложения, а если заменяющие данные были правильно составлены (то есть содержали определенный код), то и к выполнению произвольного кода и получению несанкционированного доступа к целевой системе. Такой тип атак получил название переполнение буфера (Buffer Overflow).
Так вот, для борьбы с переполнениями буфера на аппаратном уровне в Windows Vista была использована технология NX (No Execute). NX позволяет программному обеспечению, используя возможности оборудования, помечать сегменты памяти, в которых будут храниться только данные, так чтобы процессор не смог исполнять произвольный код в этих сегментах.
Множество современных процессоров поддерживают ту или иную форму NX, и Microsoft в свою очередь, начиная с Windows XP SP2, включила поддержку процессоров с NX‑технологией посредством инструмента Data Execution Prevention (DEP). Windows Vista обеспечивает дополнительную поддержку NX, позволяя производителям ПО встраивать защиту NX в свои программные продукты.
Подробнее о технологии DEP и NX, а также об их достоинствах и недостатках можно прочесть в [3].
Еще одно улучшение в защите Windows Vista связано с определением переполнения «кучи» (области памяти, выделяемой программе для динамически размещаемых структур данных). Такой вид атак аналогичен атакам на переполнение буфера и поэтому требует наличия средств предотвращения переполнения «кучи».
При вмешательстве в буфер «кучи» операционная система генерирует исключение. В случае если в приложении разработчиками не предусмотрена обработка данного исключения, ОС немедленно завершает скомпрометировавший себя код (многие антивирусные системы используют подобную технологию), тем самым предотвратив несанкционированное проникновение в систему.
Эта технология используется для защиты компонентов ОС, включая встроенные системные службы, хотя может использоваться и сторонними производителями ПО через специальные API-вызовы.
Особое внимание следует уделить 64-битным версиям Windows Vista. Для данной архитектуры наличие уже упоминавшейся защиты NX – стандарт. Также операционная система под 64-битную архитектуру поддерживает технологию защиты ядра (иногда используется термин PatchGuard), которая запрещает неавторизованному ПО изменять ядро Windows.
Для понимания сути данной технологии необходимо разобраться в том, что означает термин kernel patching (изменение ядра).
Эта техника использует внутренние системные вызовы, а также различные неподдерживаемые ОС механизмы с целью изменения или замены кода, а возможно, и критических структур данных ядра Windows на другой «неавторизованный» код или данные, которые могут быть и вредоносными. Под понятием «неавторизованный» имеется в виду код, не авторизованный Microsoft как часть ядра Windows, например различные закладки, позволяющие произвести несанкционированный доступ к системе.
Осуществить неавторизованный доступ можно, изменяя адрес функции-обработчика системного вызова (указатель функции) в таблице системных вызовов (system service table, SST), которая представляет собой массив из указателей функций, находящихся в памяти. Такая процедура изменения адреса называется хуком (hook).
Когда выполняется любой системный вызов (например, NtCreateProcess), диспетчер системных вызовов в соответствии с номером вызова передает адрес функции-обработчика данного системного вызова. Соответственно, если поменять адрес функции-обработчика на адрес начала «неавторизованного» кода, диспетчер системных вызовов перейдет по этому адресу, и «неавторизованный» код будет исполнен.
Для предотвращения подобных проникновений Microsoft решила запретить модификацию ядра в 64-битных версиях Windows Vista. Конкретнее – запрещена модификация следующих компонентов ядра [1]:
- таблицы системных вызовов (system service tables, SST);
- таблица прерываний (interrupt descriptor table (IDT));
- таблица глобальных дескрипторов (global descriptor table (GDT));
- изменение любой части ядра (работает только на AMD64-системах).
В случае если какое-либо приложение попытается произвести замену одной из перечисленных частей ядра, будет получено сообщение об ошибке, и система аварийно завершит работу.
По утверждению Microsoft, отключить эту защиту нельзя. Также ядро может изменяться только официальными обновлениями от разработчика.
Программная защита. Windows Service Hardening
На этом описание аппаратных средств защиты завершается, перейдем к рассмотрению программных средств Windows Vista. Здесь тоже появилось довольно много новых средств.
Одной из наиболее частых целей взломщиков являются системные службы ОС, так как они загружаются с самыми высокими привилегиями (Local System), и внедрение в них своего кода может позволить вредоносному приложению скрыться от антивирусных программ и средств обнаружения вторжения.
Системные службы – это фоновые процессы, которые загружаются для поддержки ключевых функций операционной системы, так что разработчики Vista постарались максимально защитить систему от последствий взлома таких служб.
Windows Vista предлагает концепцию «ограниченных служб» (restricted services), которые загружаются с минимальными привилегиями, и влияние их на компьютер и сеть ограничено. Этот подход позволяет существенно сократить число служб, способных нанести серьезный вред пользовательской машине. Данное средство получило название Windows Service Hardening.
Системные службы могут быть однозначно идентифицированы, что позволяет вести списки контроля доступа для каждой службы, разрешая, например, службам записывать только в определенные места файловой системы, реестра или других системных ресурсов.
Кроме того, применение данного подхода позволяет предотвратить изменение важных настроек файловой системы или реестра скомпрометированной службой.
Теперь встроенные службы ОС семейства Windows имеют собственные профили, которые определяют необходимые права для каждой службы, правила доступа к системным ресурсам и сетевые порты, которые службам разрешено использовать.
Если служба попытается отправить или получить данные с сетевого порта, который ей не разрешен для использования, межсетевой экран заблокирует эту попытку. Для этого в межсетевом экране Windows Vista уже имеется набор соответствующих шаблонов.
Например, службе удаленного вызова процедур (Remote Procedure Call service) запрещено перемещать системные файлы, модифицировать реестр, вмешиваться в конфигурации других служб в системе таких, как конфигурация и сигнатуры вирусов и антивирусного ПО.
Следует также отметить, что каждая служба, которая входит в состав ОС Windows Vista, имеет сконфигурированный заранее профиль, который применяется автоматически в процессе установки Windows. Данный процесс не требует каких бы то ни было усилий со стороны пользователей или администраторов.
Еще одним средством, затрудняющим вредоносному коду (эксплойтам) внедрение в систему, является технология случайного распределения адресного пространства (Address Space Layout Randomization (ASLR)). Каждый раз, когда компьютер перезагружается, ASLR в случайном порядке назначает 1 из 256 возможных вариантов адреса для размещения в памяти содержимого ключевых системных DLL- и EXE-файлов. Это осложняет эксплойту задачу поиска нужных данных, а следовательно, противодействует выполнению его функций.
ASLR лучше использовать в связке с Data Execution Prevention, потому что в некоторых случаях компонент Data Execution Prevention можно обойти путем построения эксплойта, который сам по себе не внедряется, но перехватывает системные функции для атаки.
Контроль установки драйверов
Еще одно дополнительное средство защиты для 64-битной архитектуры – это возможность использования только подписанных драйверов. Конечно, и в предыдущих версиях можно было запретить использование неподписанных драйверов устройств с помощью групповых политик, но обычно администраторы позволяли их устанавливать, так как слишком большое количество оборудования не подписывало свои драйверы. По заявлениям Мicrosoft, именно неподписанные драйверы являются причиной большинства сбоев ОС Windows. Хотя, я думаю, многие администраторы и пользователи не согласятся с данным утверждением.
User Account Control
Какие еще средства появились в системе безопасности Windows Vista? Довольно интересное новшество – появление контроля пользовательских учетных записей (User Account Control).
В предыдущих версиях Windows большинство пользовательских учетных записей являлись членами локальной группы «Администраторы», тем самым предоставляя пользователям все системные привилегии и возможности, требуемые для установки и конфигурирования приложений, загрузки некоторых фоновых системных процессов и драйверов устройств, изменения конфигурации системы и выполнения базовых повседневных задач.
Такой подход существенно облегчал жизнь как самим пользователям, так и специалистам техподдержки (хотя бы отчасти), ведь для установки каких-либо дополнительных приложений или внесения изменений в настройки не требовалось привлекать обладателей административных прав, все можно было сделать самостоятельно.
Но по этой же причине на рабочую станцию, на которой пользователь работал, под учетной записью с административными правами могло внедряться вредоносное ПО, которое могло использовать системные привилегии для повреждения файлов, изменения конфигурации (например, отключение межсетевого экрана), кражи или изменения конфиденциальной информации.
Конечно, работа из-под учетных записей простых пользователей тоже не является панацеей, так как вредоносный код может и там нанести ущерб, но сделать это, не обладая административными привилегиями, гораздо сложнее. Да и сам пользователь мог внести в систему изменения, приводящие к сбоям и системным ошибкам.
Конечно, когда рабочая станция находится в домене Active Directory, контролировать учетные записи и гибко назначать пользователям права можно с помощью групповых политик, но очень часто возникают ситуации, когда пользователю необходимы права локального администратора, например на ноутбуке, когда он отправляется в командировку (ведь без административных прав нельзя, к примеру, прописать IP-адрес или изменить настройки подключения к беспроводной сети).
В Windows Vista для решения проблемы ввели контроль пользовательских учетных записей. В соответствии с данным подходом все операции в системе разделены на две категории: те, которые может выполнять пользователь со своими стандартными правами, и те, которые требуют административных привилегий. Благодаря этому производить какие-либо несанкционированные действия вредоносному коду будет гораздо сложнее (например, троян не сможет прописать себя в реестр, а вирус – повредить системные файлы).
UAC переопределяет список стандартных возможностей пользователя путем включения в него множества базовых функций, которые не несут риска нарушения безопасности, хотя раньше требовали административных привилегий (например, изменение временной зоны, настройки системы управления питанием, добавления устройств при условии, что драйверы к ним уже установлены в системе, и другие действия).
UAC также помогает контролировать доступ к ценной информации, находящейся в папке «Мои документы». Теперь если пользователь не является создателем файла, он не сможет его ни прочесть, ни изменить, ни удалить, то есть, другими словами, доступ к файлам других пользователей закрыт. Такая политика используется по умолчанию и будет применяться, даже если пользователь не вносил никаких изменений в настройки доступа к своим файлам.
Если обычный пользователь, не обладающий административными правами, попытается выполнить задачу, требующую административных привилегий (например, установка нового приложения или изменение важных системных настроек), ему предлагается ввести пароль администратора. IT-администраторы имеют возможность отключить процедуру ввода пароля администратора для обычных пользователей, тем самым запретить работу с административными привилегиями для данной учетной записи. Это позволит сократить риск несанкционированных действий со стороны последних.
Если же пользователь с административными правами работает в системе, то при попытке произвести какое-либо действие, являющееся критичным с точки зрения UAC, на экран будет выведен запрос на подтверждение данного действия (см. рис. 1). А неожиданное появление предупреждения в процессе работы может свидетельствовать о попытке проникновения вредоносного кода в систему. При необходимости данные напоминания можно отключить с помощью политик безопасности.
Рисунок 1. Иллюстрация работы UAC
Такое предупреждение не позволит вредоносному коду незаметно внести изменения в системе. Также UAC помогает существующим приложениям работать с правами стандартного пользователя без модификаций путем предоставления им специальной платформы, которая помогает последним обойтись без использования административных привилегий в обычных ситуациях.
Например, чтобы обеспечить нормальную работу приложений, требующих для своего выполнения административных привилегий, Windows Vista содержит механизм виртуализации файловой системы и реестра. Данный механизм перенаправляет запросы чтения и записи из защищенных областей в какое-либо место внутри профиля пользователя, таким образом, приложение работает корректно, не влияя на ресурсы других пользователей или систему в целом.
В случае если вы не уверены, будет ли то или иное приложение работать с правами определенного пользователя, Windows Vista предлагает ряд инструментов, технологий и ресурсов, чтобы помочь производителям составлять новые программы, корректно работающие под UAC.
Например, инструмент Standard User Analyzer [2] позволяет определить, будет ли корректно работать то или иное приложение с правами стандартного пользователя или же нет.
Контроль USB-устройств
Еще одним источником проникновения в систему вредоносного кода являются различные USB-накопители. Бесконтрольное использование в организации флешек может привести к утечке конфиденциальной информации и другим малоприятным последствиям.
Также самовольное подключение пользователями USB-устройств, таких как принтеры или сканеры, могло привести к нестабильной работе системы при использовании некорректной версии драйверов.
При работе с предыдущими версиями Windows администраторам приходилось использовать программное обеспечение от сторонних производителей.
Однако в ОС Windows Vista реализован гибкий механизм контроля использования USB-устройств. Посредством «Групповой Политики Windows» Vista позволяет системным администраторам блокировать установку неавторизованных USB-устройств в компьютер.
Данная политика может применяться как к отдельному компьютеру, так и к множеству компьютеров по всей сети. У администраторов в руках находится весьма гибкий инструмент по настройке политики запрета USB-устройств.
Например, можно разрешить установку только определенного класса устройств, таких как принтеры, запретить установку любых типов USB-накопителей или установку любых неавторизованных устройств.
Данные политики можно перекрывать путем ввода пароля администратора для установки того или иного устройства.
И наконец, можно открывать доступ по чтению/записи к устройствам для определенных пользователей или компьютеров.
Улучшения в EFS (Encrypting File System)
Шифрующая файловая система уже присутствовала в предыдущих версиях операционных систем семейства Windows, однако теперь Windows Vista EFS поддерживает хранение пользовательских ключей и ключей восстановления на смарт-картах.
Кроме этого, EFS в Windows Vista может быть использована для шифрования файла подкачки (эта опция может быть активирована системным администратором через групповую политику), что тоже существенно усиливает общую защиту системы, так как теперь злоумышленники не смогут воспользоваться содержимым файла подкачки, в котором могут находиться конфиденциальные данные, используемые приложениями.
Рисунок 2. Интерфейс для работы с EFS
Кэш на стороне клиента, в котором сохраняются копии документов с файлового сервера, также может быть зашифрован с помощью EFS. В этом случае даже локальный администратор, не обладая пользовательским секретным ключом, не сможет расшифровать файлы пользователя.
Также в «Групповой Политике» появился ряд новых опций, по поддержке EFS. К ним относятся опции включения возможности шифрования файла подкачки, сохранения ключей на смарт-картах, ограничения минимальной длины ключа и т. д.
Кроме вышеперечисленного, существует возможность «прозрачного» шифрования пользовательских файлов при сохранении их на файловом сервере Windows Server 2008. При этом файл шифруется в процессе копирования незаметно для пользователя. Такая операция необходима в тех ситуациях, когда нет доверия к серверу. Но шифрующая файловая система доступна не во всех редакциях Windows Vista. EFS доступна в версиях Windows Vista Business, Enterprise и Ultimate.
Заключение
На этом я завершаю первую часть статьи. Практическую пригодность новых функций безопасности покажет время. Ну а во второй части мы поговорим о новом средстве контроля Parental Control, Bitlocker, NAP и других нововведениях.
- Статья о новшествах безопасности Windows Vista – http://www.microsoft.com/rus/smallbusiness/issues/sgcv2/security-guidance-centre/vistasecurity.mspx.
- Standard User Analyzer – http://technet.microsoft.com/en-us/library/cc766021.aspx.
- Касперски К. Судьба shell-кода на системах с неисполняемым стеком. //Системный администратор, №1, 2006 г. – С. 66-74 (http://www.samag.ru/art/01.2006/01.2006_11.html).
- Информация о ПО, сертифицированном по Common Criteria – http://www.commoncriteriaportal.org/products_OS.html#OS.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|