безопасность Windows Vista: взлом адекватен защите!
В контексте данной статьи будут рассмотрены основные технологии зашиты Windows Vista, и я попытаюсь объективно прокомментировать возможные «черные» и «белые» стороны.
Не секрет, что корпорация Microsoft самым активным образом продвигает технологию x64 путем внедрения ряда уникальных возможностей в 64-разрядные варианты версий Windows Vista Home Basic, Vista Home Premium, Vista Business, Vista Enterprise и Vista Ultimate. По заверениям софтверного гиганта, благодаря ключевым усовершенствованиям и новым технологиям, реализованным только для x64-версий Vista, эти системы можно будет по праву считать самыми безопасными вариантами клиентских ОС, когда-либо созданными Microsoft. Microsoft явно пытается показать миру по-настоящему защищенную систему, подтверждением чего являются новые средства безопасности x64-версий Vista в сочетании с такими функциями x32- версий Vista, как User Account Control (UAC), Windows Defender, Windows Firewall, Windows Service Hardening, Encrypting File System (EFS) и Bit- Locker. Однако начнем, пожалуй, с реалий.
Авторитетный специалист по безопасности Джоанна Рутковска в конце июля нынешнего года изящно представила оригинальные способы обхода средств защиты информации Windows Vista. В ходе конференции Black Hat Briefings and Training, которая проходила в Лас-Вегасе с 28 июля по 2 августа, Рутковска и ее коллега Алекс Терешкин представили разработанные для Vista rootkit-программы. По словам Рутковской, из этических соображений участие в семинаре было ограничено только представителями "легитимных" компаний. Недавно Рутковска продемонстрировала методы, с помощью которых rootkits могут скрывать себя даже от самого надежного на сегодня механизма распознавания — аппаратных средств, считывающих содержание оперативной памяти системы. По ее словам, июльская демонстрация была посвящена именно таким методам. До недавнего времени Рутковска работала в компании Coseinc, а в настоящее время занимается основанием в Польше новой компании, которая будет специализироваться на информационной безопасности.
Потрясает? Пожалуй, да, ведь не будем забывать, что выход системы состоялся ну совсем уж недавно. Однако то ли еще будет. Как обещает многоуважаемая госпожа Рутковска, это только начало, ведь в планах ближайшего времени — опубликовать новые оригинальные способы взлома пресловутой защиты NT 6.0. Чего же все-таки стоит хваленая безопасность новой ОС, и какие технологии за этим стоят? Давайте разберемся.
драйверы с цифровой подписью
Никто не будет отрицать, что значительная часть потенциальных проблем безопасности ОС как раз таки связана с драйверами. По заявлениям Microsoft x64-версии, Vista будут допускать установку драйверов исключительно с цифровой подписью. Порочная практика “драйвер не имеет цифровой подписи — все равно продолжить” должна теперь кануть в небытие?! Понятное дело, что обязательное подписывание драйверов в значительной степени способствует надежности Windows Vista, ведь большинство сбоев ОС и критических ошибок связаны именно с недоработкой драйверов режима ядра.
Прокомментировать подобный вариант защиты от установки драйверов без цифровой подписи можно было бы вполне однозначно — новая технология исправно защищает ядро ОС от модификаций, обеспечивая, как бы это хотелось сказать, непревзойденный уровень защиты... Однако постойте. В начале августа этого года Symantec обнародовала до примитива простой способ обхода всей этой хваленой защиты: защита ядра 32- и 64-битных версий Vista от установки неподписанных драйверов может быть взломана с помощью простой бесплатной утилиты! Специалистам Symantec удалось обнаружить в свободном доступе программу Atsiv, разработанную австралийской компанией Linchpin Labs. Реакция Microsoft на появившееся средство обхода защиты Vista пока неизвестна.
PatchGuard
Как следует из названия, PatchGuard создан для того, чтобы обеспечить защиту от несанкционированной модификации ядра Vista вредоносным кодом. По определению Microsoft, PatchGuard представляет собой не что иное, как “метод предотвращения расширения драйверов режима ядра или замены других служб ядра, а также редактирования какой-либо части ядра сторонними программами”. Чтобы понять суть данной технологии защиты, будет полезным разобраться в том, что же такое kernel patching (изменение ядра).
Под Kernel patching, как это следует из названия, понимается некая модификация/замена критических областей данных ядра Windows на другой код или данные, которые могут быть потенциально вредоносными. Модификация эта, в свою очередь, возможна посредством использования внутренних системных вызовов или другим способом. Вообще модификация и патчинг ядра, по сути, не являются чем-то экзотическим и априорно запрещенным для системы, ведь многие производители ПО достаточно часто модифицируют его для своих целей, например, изменяя адрес функции-обработчика системного вызова (указатель функции) в таблице системных вызовов.
Вдаваясь в технические подробности работы PatchGuard, следует сказать следующее: благодаря данной технологии в системе запрещена модификация:
- таблицы системных вызовов (System Service Tables, SST);
- таблица глобальных дескрипторов (Global Descriptor Table, GDT);
- таблица прерываний (Interrupt Descriptor Table, IDT);
- любой части ядра (работает только на AMD64-системах).
В случае, если какой-либо код попытается модифицировать вышеописанные компоненты ядра, операционная система сгенерирует так называемый bug check и экстренно завершит свою работу. По официальным заявлениям Microsoft, данный компонент системы защиты ядра отключить невозможно. Однако, как оно всегда и бывает, нет ничего невозможного: защита ядра все-таки отключается. Подобное вполне возможно, если в системе работает отладчик ядра. Решение, как мне кажется, не заставит себя ждать.
NX (No Execute) DEP!
Под загадочной аббревиатурой NX стоит вполне прозрачная технология DEP — Data Execution Prevention (предотвращение выполнения данных). Реализованная программно в 32-битной версии Windows Vista, в 64-разрядной версии ОС NX она поддерживается аппаратно.
Понятное дело, что аппаратно реализованная функция DEP более надежна, поскольку здесь на страже нашей безопасности стоит само железо. Для того, чтобы лучше понять, что же такое NX, необходимо разобраться в DEP.
DEP используется для предотвращения проникновения на компьютер вирусов и других угроз безопасности, которые выполняют вредоносный код из областей памяти, которые должны использоваться только операционной системой и другими программами. В ходе своей работы DEP следит, чтобы программы использовали системную память безопасным образом. Для этого DEP работает отдельно или вместе с совместимыми микропроцессорами и помечает некоторые области как “невыполняемые”. Если программа пытается запустить код (любой код) из защищенной области, DEP закрывает программу и отображает уведомление (подобный метод инфекции, описанный выше, при котором вредоносный код выполняется из запрещенных областей памяти, реализуется посредством переполнения буфера).
Механизм переполнения буфера, в свою очередь, заключается в следующем: предположим, что некая процедура для хранения данных использует буфер. Буфер находится в стеке (в определенной области памяти, которая используется во время выполнения программы). Представим в стеке несколько переменных и адрес возврата функции — число, показывающее, куда передать управление после выполнения текущей процедуры. Каким образом программа записывает данные в N-й байт буфера? К адресу начала буфера прибавляется число N. Полученный результат и есть адрес, по которому будут записаны данные. Если размер буфера равен 1024 байта, а мы попытаемся «втиснуть» в него больше, то некоторая часть данных попадет в другую область памяти. Может произойти так, что адрес возврата функции затрется, и как следствие программа выполнит не тот код, на который указывал предыдущий адрес возврата.
Возвращаясь к NX и резюмируя вышесказанное, следует отметить: NX позволяет программному обеспечению помечать сегменты памяти, в которых будут храниться только данные, и процессор не позволит приложениям и службам исполнять произвольный код в этих сегментах. Капитально - скажет кто- нибудь из читателей. Действительно, капитально, если бы не одно но. Методология обхода аппаратной реализации DEP давно уже отработана и поставлена, если так можно выразиться, на поток.
ASLR
Ну что ж, продолжим наш экскурс в технологии защиты новой линейки 6.0. Фанфары и салют, не побоюсь излишнего пафоса: наш следующий подопытный конкурсант, призванный сделать Windows Vista сверхзащищенной системой — это ASLR (Address Space Layout Randomization), или, по-нашему, технология, обеспечивающая случайное расположение адресного пространства.
Говоря о технологии ASLR, следует все же отдать должное Microsoft в обеспечении безопасности Windows Vista. Введя ASLR, спецы из корпорации позаботились о том, чтобы усложнить жизнь писателям эксплойтов. По мнению разработчиков, ASLR практически полностью исключает угрозу удаленных атак для Windows-платформ. Все дело в том, что в настоящее время Windows предусматривает загрузку системных файлов с использованием одинакового смещения в памяти при загрузке системы, что позволяет посредством эксплойта внедрять код “по месту назначения”. Соль новой технологии заключается в том, что в x64-версиях Vista системные файлы загружаются в случайные адреса памяти, что существенно осложняет написание работающего эксплойта. По заверениям Microsoft, свыше 99% всех удаленных атак на x64-версий Vista закончатся крахом.
Смысл ASLR прост и заключается в следующем: каждый раз, когда компьютер перезагружается, ASLR в случайном порядке назначает 1 из 256 возможных вариантов адреса для расположения ключевых системных DLL- и EXE-файлов. А это осложняет поиск эксплойтом нужных файлов и как следствие препятствует выполнению эксплойта. Нетрудно догадаться, что теперь существует всего один шанс из 256, что текущая загрузка файлов произойдет с адреса с тем же смещением, что и при предыдущей загрузке. Потрясает? Действительно. Несомненно, введение данной технологии выведет защиту ОС на принципиально новый уровень.
А вот на какой уровень данное нововведение выведет написание эксплойтов?
Как прокомментировал в списке почтовой рассылки BugTraq исследователь из Next Generation Security Software Дэвид Личфилд (David Litchfield): “Дистанционное использование переполнений значительно усложнилось”, — на что некто под псевдонимом c0ntex в ответе Личфилду заверил, что ASLR “уже много лет элементарно обходится в Linux”.
Ну что ж, рассмотрение «самых страшных и могущественных» технологий защиты NT 6.0 (большинство из которых реализовано аппаратно) закончено, и, как видите, не так все и безоблачно;). Приступим к рассмотрению технологий защиты прикладного уровня, реализованных большей частью программно.
Windows Defender
Нововведением Windows новой линейки стал Windows Defender, как оно следует из названия компонент, призванный активно защищать нашу ось. Как это отмечено в официальном описании Microsoft, данный компонент защищает компьютер от руткитов, кейлоггеров, шпионов, adware, ботов и другого вредоносного ПО. Хотя от червей и вирусов не защищает:). Ну да ладно, антивирус-то все равно придется ставить свой. Итак, кто же такой этот Windows Defender?
Windows Defender содержит 9 агентов безопасности, которые постоянно наблюдают за теми критическими областями ОС, которые наиболее часто пытается изменить вредоносное ПО. Вот что к ним относится.
Автозагрузка. Агент безопасности постоянно наблюдает за списком программ, которым позволено загружаться при старте системы. Таким образом реализуется защита от вредоносного ПО, которое пытается загрузиться вместе с системой.
Настройки безопасности системы. Агент безопасности постоянно проверяет настройки безопасности Windows. Не секрет, что некоторое вредоносное ПО старается изменить настройки безопасности с целью облегчения вредного воздействия на ОС. Агент безопасности этой области не позволит неавторизованному ПО изменить настройки безопасности.
Аддоны (Add-ons) Internet Explorer. Агент безопасности следит за приложениями, которые загружаются вместе с браузером. Spyware и другое вредоносное ПО может маскироваться под аддоны Internet Explorer и загружаться без вашего ведома. Агент безопасности не позволит загрузиться такому виду вредоносного ПО.
Настройки Internet Explorer. Агент безопасности следит за настройками безопасности браузера, потому что вредоносное ПО может попытаться изменить их.
Загрузки Internet Explorer (Internet Explorer Downloads). Агент безопасности следит за файлами и приложениями, предназначенными для работы с IE (например, ActiveX controls). Браузер может загрузить, установить и запустить данные файлы без вашего ведома. Вредоносное ПО может быть включено в такого рода файлы и загрузиться на компьютере-жертве, но агент безопасности защитит и от этой напасти.
Службы и драйверы. Агент безопасности данной области наблюдает за состоянием служб и драйверов во время их взаимодействия с ОС и приложениями. Поскольку службы и драйверы выполняют важнейшие функции, они имеют доступ к важным областям ОС. Вредоносное ПО может использовать службы для доступа к компьютеру, а также с целью маскировки под нормальные компоненты системы.
Выполнение приложений. Агент безопасности следит за приложениями во время их выполнения. Spyware и другое вредоносное ПО, используя уязвимости приложений, могут нанести вред. Например, spyware может загрузиться во время запуска часто используемого вами приложения. Windows Defender предупредит вас о подозрительном поведении приложений.
Регистрация приложений. Агент безопасности данной области постоянно наблюдает за инструментами и файлами ОС, где приложения регистрируются с целью загрузки. Spyware и другое вредоносное ПО может зарегистрировать приложение с целью загрузки без вашего ведома и периодически собирать с помощью него вашу личную информацию. Данный агент сообщит пользователю об обнаружении нового приложения, пытающегося зарегистрироваться с целью загрузки.
Windows Add-ons. Агент безопасности следит за так называемыми аддонами, также известными как программные утилиты для Windows. Аддоны позволяют настроить такие аспекты ОС, как безопасность, производительность, мультимедиа. Однако они могут и устанавливать ПО, которое будет собирать информацию о вас и вашем компьютере.
Ну что, прокомментировать вышеописанное можно было бы лихо, сказать же следует лишь следующее: то, что раньше было прерогативой антивируса и (частично) межсетевого экрана, теперь вобрал в себя этот самый Windows Defender. Плохо это или хорошо, вовсе не вопрос для обсуждения в рамках данной статьи, но то, что комплексный продукт вместо нескольких может быть потенциально более уязвим — очевидный факт.
WindowsServiceHardening
Под сборным названием WindowsServiceHardening подразумевается система безопасности, основной концепцией которой является принцип “ограниченных служб” (restricted services), которые загружаются с минимальными привилегиями, и влияние их на компьютер и сеть, таким образом, ограничено. Дабы исключить случайную путаницу и неопределенности, нелишним будет вспомнить, что же представляет собой эта самая служба.
Итак, служба — это тип приложения, которое запускается в фоновом режиме и сходно с приложениями-процессами UNIX. Чаще всего в виде служб запускаются серверные приложения, базы данных, веб-приложения для локальных и удаленных пользователей и т.п. Большинство служб в системе запускаются под учетной записью LocalSystem, что аналогично правам администратора, а если вспомнить правило “вредоносный код может все то, что может пользователь и служба”, становится вполне понятно, от чего WindowsServiceHardening спасает нашу ось :).
В качестве примера, пожалуй, уместно привести такую заразу, как Slammer, Blaster и Sasser, которые атаковали систему, используя как раз таки системные службы, запущенные с высокими привилегиями. Радует и то, что данная система защиты координирована с улучшенным (по заверениям корпорации) файрволлом Windows. Теперь если служба или сервис попытается использовать недозволенный ей порт для отправки или получения чего- либо, межсетевой экран заблокирует эту попытку. Ну что ж, очень даже неплохо, особенно по сравнению с предыдущим встроенным файрволлом Windows, который к исходящему трафику был мертв вообще :).
User Account Control
Не секрет, что в предыдущих версиях Windows абсолютное большинство создаваемых учетных записей являлись членами локальной группы
“Администраторы”. Почему так? Удобно, ответят многие из читателей, и, несомненно, будут правы. Ну, а что касается безопасности — так это вопрос риторический... И не важно, что «вселенский» закон гласит о том, что «код может то, что может пользователь»... Как можно отказаться от функциональности, заменив ее на ограниченную учетную запись, которая сокращает и без того невысокую продуктивность работы: ведь такие базовые задачи, как изменение системного времени, присоединение к безопасной беспроводной сети или установка драйвера принтера, требуют административных привилегий? Действительно.
Выход из этой, казалось бы, безвыходной ситуации Microsoft нашла, внедрив в Windows Vista UAC (User Account Control, контроль пользовательских учетных записей). Это новый подход, согласно которому все операции в системе подразделяются на две категории: - те, которые может выполнять пользователь со своими стандартными правами;
- и те, которые требуют администраторских привилегий.
Применение нового подхода, несомненно, выводит уровень безопасности ОС на новую черту, в то же самое время, предоставляя пользователям с обычными не администраторскими привилегиями большинство каждодневных функций. UAC значительно расширяет список стандартных возможностей пользователя путем включения в него множества базовых функций, которые не несут риска нарушения безопасности, хотя раньше требовали привилегий администратора. К этим новым функциям можно отнести следующие:
- изменение временной зоны;
- установку новых шрифтов;
- изменение настроек экрана;
- настройку системы управления питанием;
- добавление принтера и других устройств при условии, что драйверы для них уже установлены в системе;
- просмотр календаря и системного времени;
- загрузка и установка обновлений при условии использования UAC-совместимого инсталлятора;
- создание и настройка VPN-соединения;
- установка WEP (Wired Equivalent privacy) для соединения с защищенной беспроводной сетью.
Помимо прочего, UAC контролирует доступ к возможной конфиденциальной информации в папке “Мои документы”. Теперь, если пользователь не является создателем файла, то ни прочесть, ни изменить, ни удалить его он не сможет.
Рассмотрев основные особенности User Account Control, позвольте все это справедливо прокомментировать. И первое, что сразу же хочется сказать, — «лучше поздно, чем никогда». К чему это мы? Да все, вероятно, к тому, что подобная политика безопасности с ограничением прав, пользовательскими каталогами, правами доступа к файлам и прочим chown и chmod уже сколько десятилетий практикуется в Unix-системах. Создатели Windows Vista, видимо, всерьез решили перенять прогрессивный опыт Unix-систем. Ну наконец то! /* Справедливости ради следует отметить, что многопользовательская среда и средства контроля доступа существуют в NT-системах тоже очень давно, и даже в чем-то превосходят юниксовые, вопрос в том, что они слабо прижились среди конечных пользователей. Причин тут много, основнми мне видятся две – достаточно лояльные дефолты и нежелание владельца персонального компьютера ограничивать себя в правах. – прим. ред. */
BitLocker Drive Encryption
Последним нововведением, которое мы кратко рассмотрим в рамках данной статьи, будет BitLocker Drive Encryption (шифрование тома )— инструмент, позволяющий защитить конфиденциальную информацию на диске путем его шифрования.
1. Технология обеспечивает конфиденциальность информации в случае кражи диска и/или несанкционированного доступа, что достигается передовыми алгоритмами шифрования.
2. BitLocker позволяет изменить стандартный процесс загрузки ОС, проверяя подлинность пользователя через USB-устройство с ключами дешифрования. 3. Применение BitLocker гарантирует загрузку только оригинальных системных файлов при старте системы — иначе система просто не загрузится. Комментируя вышеописанное, хотелось бы заметить, что BitLocker Drive Encryption будет исключительно полезен в корпоративных версиях Vista — на серверах, требующих двухфакторной аутентификации.
Что же касается домашних машин, то здесь он будет скорее лишним, если только пользователь вдруг не захочет поиграть в Джеймса Бонда. Следует отметить, что в контексте данной статьи я перечислил лишь основные технологии защиты Windows Vista. Более подробную информацию относительно новой NT 6.0 можно узнать на официальном сайте производителя.
эпикриз
Ну что ж, вот, собственно, и настал момент истины, чтобы подвести окончательные итоги и вынести справедливый вердикт. Исходя из имеющихся данных, можно с уверенностью заявить, что корпорация сделала существенный шаг на пути усиления системы безопасности своей новой ОС. Многие из технологий защиты поддерживаются аппаратно, что можно считать значительным прорывом в области обеспечения безопасности системы. То, что акцент сделан на защиту ядра, не случайно: современные тенденции развития вредоносного ПО смещаются в сторону руткитов. Введение гибких инструментов ограничения прав и доступа наталкивает на мысль, что корпорация всерьез решила перенять прогрессивный опыт Unix-систем.
Резюмируя, можно сказать, что в целом система безопасности Windows Vista производит очень даже неплохое впечатление, и это несмотря на имеющиеся в настоящее время инструменты взлома, поэтому вполне закономерно можно дать оценку - восемь по десятибалльной.
Олег Бойцев, boytsev_om@mail.ru.
Не секрет, что корпорация Microsoft самым активным образом продвигает технологию x64 путем внедрения ряда уникальных возможностей в 64-разрядные варианты версий Windows Vista Home Basic, Vista Home Premium, Vista Business, Vista Enterprise и Vista Ultimate. По заверениям софтверного гиганта, благодаря ключевым усовершенствованиям и новым технологиям, реализованным только для x64-версий Vista, эти системы можно будет по праву считать самыми безопасными вариантами клиентских ОС, когда-либо созданными Microsoft. Microsoft явно пытается показать миру по-настоящему защищенную систему, подтверждением чего являются новые средства безопасности x64-версий Vista в сочетании с такими функциями x32- версий Vista, как User Account Control (UAC), Windows Defender, Windows Firewall, Windows Service Hardening, Encrypting File System (EFS) и Bit- Locker. Однако начнем, пожалуй, с реалий.
Авторитетный специалист по безопасности Джоанна Рутковска в конце июля нынешнего года изящно представила оригинальные способы обхода средств защиты информации Windows Vista. В ходе конференции Black Hat Briefings and Training, которая проходила в Лас-Вегасе с 28 июля по 2 августа, Рутковска и ее коллега Алекс Терешкин представили разработанные для Vista rootkit-программы. По словам Рутковской, из этических соображений участие в семинаре было ограничено только представителями "легитимных" компаний. Недавно Рутковска продемонстрировала методы, с помощью которых rootkits могут скрывать себя даже от самого надежного на сегодня механизма распознавания — аппаратных средств, считывающих содержание оперативной памяти системы. По ее словам, июльская демонстрация была посвящена именно таким методам. До недавнего времени Рутковска работала в компании Coseinc, а в настоящее время занимается основанием в Польше новой компании, которая будет специализироваться на информационной безопасности.
Потрясает? Пожалуй, да, ведь не будем забывать, что выход системы состоялся ну совсем уж недавно. Однако то ли еще будет. Как обещает многоуважаемая госпожа Рутковска, это только начало, ведь в планах ближайшего времени — опубликовать новые оригинальные способы взлома пресловутой защиты NT 6.0. Чего же все-таки стоит хваленая безопасность новой ОС, и какие технологии за этим стоят? Давайте разберемся.
драйверы с цифровой подписью
Никто не будет отрицать, что значительная часть потенциальных проблем безопасности ОС как раз таки связана с драйверами. По заявлениям Microsoft x64-версии, Vista будут допускать установку драйверов исключительно с цифровой подписью. Порочная практика “драйвер не имеет цифровой подписи — все равно продолжить” должна теперь кануть в небытие?! Понятное дело, что обязательное подписывание драйверов в значительной степени способствует надежности Windows Vista, ведь большинство сбоев ОС и критических ошибок связаны именно с недоработкой драйверов режима ядра.
Прокомментировать подобный вариант защиты от установки драйверов без цифровой подписи можно было бы вполне однозначно — новая технология исправно защищает ядро ОС от модификаций, обеспечивая, как бы это хотелось сказать, непревзойденный уровень защиты... Однако постойте. В начале августа этого года Symantec обнародовала до примитива простой способ обхода всей этой хваленой защиты: защита ядра 32- и 64-битных версий Vista от установки неподписанных драйверов может быть взломана с помощью простой бесплатной утилиты! Специалистам Symantec удалось обнаружить в свободном доступе программу Atsiv, разработанную австралийской компанией Linchpin Labs. Реакция Microsoft на появившееся средство обхода защиты Vista пока неизвестна.
PatchGuard
Как следует из названия, PatchGuard создан для того, чтобы обеспечить защиту от несанкционированной модификации ядра Vista вредоносным кодом. По определению Microsoft, PatchGuard представляет собой не что иное, как “метод предотвращения расширения драйверов режима ядра или замены других служб ядра, а также редактирования какой-либо части ядра сторонними программами”. Чтобы понять суть данной технологии защиты, будет полезным разобраться в том, что же такое kernel patching (изменение ядра).
Под Kernel patching, как это следует из названия, понимается некая модификация/замена критических областей данных ядра Windows на другой код или данные, которые могут быть потенциально вредоносными. Модификация эта, в свою очередь, возможна посредством использования внутренних системных вызовов или другим способом. Вообще модификация и патчинг ядра, по сути, не являются чем-то экзотическим и априорно запрещенным для системы, ведь многие производители ПО достаточно часто модифицируют его для своих целей, например, изменяя адрес функции-обработчика системного вызова (указатель функции) в таблице системных вызовов.
Вдаваясь в технические подробности работы PatchGuard, следует сказать следующее: благодаря данной технологии в системе запрещена модификация:
- таблицы системных вызовов (System Service Tables, SST);
- таблица глобальных дескрипторов (Global Descriptor Table, GDT);
- таблица прерываний (Interrupt Descriptor Table, IDT);
- любой части ядра (работает только на AMD64-системах).
В случае, если какой-либо код попытается модифицировать вышеописанные компоненты ядра, операционная система сгенерирует так называемый bug check и экстренно завершит свою работу. По официальным заявлениям Microsoft, данный компонент системы защиты ядра отключить невозможно. Однако, как оно всегда и бывает, нет ничего невозможного: защита ядра все-таки отключается. Подобное вполне возможно, если в системе работает отладчик ядра. Решение, как мне кажется, не заставит себя ждать.
NX (No Execute) DEP!
Под загадочной аббревиатурой NX стоит вполне прозрачная технология DEP — Data Execution Prevention (предотвращение выполнения данных). Реализованная программно в 32-битной версии Windows Vista, в 64-разрядной версии ОС NX она поддерживается аппаратно.
Понятное дело, что аппаратно реализованная функция DEP более надежна, поскольку здесь на страже нашей безопасности стоит само железо. Для того, чтобы лучше понять, что же такое NX, необходимо разобраться в DEP.
DEP используется для предотвращения проникновения на компьютер вирусов и других угроз безопасности, которые выполняют вредоносный код из областей памяти, которые должны использоваться только операционной системой и другими программами. В ходе своей работы DEP следит, чтобы программы использовали системную память безопасным образом. Для этого DEP работает отдельно или вместе с совместимыми микропроцессорами и помечает некоторые области как “невыполняемые”. Если программа пытается запустить код (любой код) из защищенной области, DEP закрывает программу и отображает уведомление (подобный метод инфекции, описанный выше, при котором вредоносный код выполняется из запрещенных областей памяти, реализуется посредством переполнения буфера).
Механизм переполнения буфера, в свою очередь, заключается в следующем: предположим, что некая процедура для хранения данных использует буфер. Буфер находится в стеке (в определенной области памяти, которая используется во время выполнения программы). Представим в стеке несколько переменных и адрес возврата функции — число, показывающее, куда передать управление после выполнения текущей процедуры. Каким образом программа записывает данные в N-й байт буфера? К адресу начала буфера прибавляется число N. Полученный результат и есть адрес, по которому будут записаны данные. Если размер буфера равен 1024 байта, а мы попытаемся «втиснуть» в него больше, то некоторая часть данных попадет в другую область памяти. Может произойти так, что адрес возврата функции затрется, и как следствие программа выполнит не тот код, на который указывал предыдущий адрес возврата.
Возвращаясь к NX и резюмируя вышесказанное, следует отметить: NX позволяет программному обеспечению помечать сегменты памяти, в которых будут храниться только данные, и процессор не позволит приложениям и службам исполнять произвольный код в этих сегментах. Капитально - скажет кто- нибудь из читателей. Действительно, капитально, если бы не одно но. Методология обхода аппаратной реализации DEP давно уже отработана и поставлена, если так можно выразиться, на поток.
ASLR
Ну что ж, продолжим наш экскурс в технологии защиты новой линейки 6.0. Фанфары и салют, не побоюсь излишнего пафоса: наш следующий подопытный конкурсант, призванный сделать Windows Vista сверхзащищенной системой — это ASLR (Address Space Layout Randomization), или, по-нашему, технология, обеспечивающая случайное расположение адресного пространства.
Говоря о технологии ASLR, следует все же отдать должное Microsoft в обеспечении безопасности Windows Vista. Введя ASLR, спецы из корпорации позаботились о том, чтобы усложнить жизнь писателям эксплойтов. По мнению разработчиков, ASLR практически полностью исключает угрозу удаленных атак для Windows-платформ. Все дело в том, что в настоящее время Windows предусматривает загрузку системных файлов с использованием одинакового смещения в памяти при загрузке системы, что позволяет посредством эксплойта внедрять код “по месту назначения”. Соль новой технологии заключается в том, что в x64-версиях Vista системные файлы загружаются в случайные адреса памяти, что существенно осложняет написание работающего эксплойта. По заверениям Microsoft, свыше 99% всех удаленных атак на x64-версий Vista закончатся крахом.
Смысл ASLR прост и заключается в следующем: каждый раз, когда компьютер перезагружается, ASLR в случайном порядке назначает 1 из 256 возможных вариантов адреса для расположения ключевых системных DLL- и EXE-файлов. А это осложняет поиск эксплойтом нужных файлов и как следствие препятствует выполнению эксплойта. Нетрудно догадаться, что теперь существует всего один шанс из 256, что текущая загрузка файлов произойдет с адреса с тем же смещением, что и при предыдущей загрузке. Потрясает? Действительно. Несомненно, введение данной технологии выведет защиту ОС на принципиально новый уровень.
А вот на какой уровень данное нововведение выведет написание эксплойтов?
Как прокомментировал в списке почтовой рассылки BugTraq исследователь из Next Generation Security Software Дэвид Личфилд (David Litchfield): “Дистанционное использование переполнений значительно усложнилось”, — на что некто под псевдонимом c0ntex в ответе Личфилду заверил, что ASLR “уже много лет элементарно обходится в Linux”.
Ну что ж, рассмотрение «самых страшных и могущественных» технологий защиты NT 6.0 (большинство из которых реализовано аппаратно) закончено, и, как видите, не так все и безоблачно;). Приступим к рассмотрению технологий защиты прикладного уровня, реализованных большей частью программно.
Windows Defender
Нововведением Windows новой линейки стал Windows Defender, как оно следует из названия компонент, призванный активно защищать нашу ось. Как это отмечено в официальном описании Microsoft, данный компонент защищает компьютер от руткитов, кейлоггеров, шпионов, adware, ботов и другого вредоносного ПО. Хотя от червей и вирусов не защищает:). Ну да ладно, антивирус-то все равно придется ставить свой. Итак, кто же такой этот Windows Defender?
Windows Defender содержит 9 агентов безопасности, которые постоянно наблюдают за теми критическими областями ОС, которые наиболее часто пытается изменить вредоносное ПО. Вот что к ним относится.
Автозагрузка. Агент безопасности постоянно наблюдает за списком программ, которым позволено загружаться при старте системы. Таким образом реализуется защита от вредоносного ПО, которое пытается загрузиться вместе с системой.
Настройки безопасности системы. Агент безопасности постоянно проверяет настройки безопасности Windows. Не секрет, что некоторое вредоносное ПО старается изменить настройки безопасности с целью облегчения вредного воздействия на ОС. Агент безопасности этой области не позволит неавторизованному ПО изменить настройки безопасности.
Аддоны (Add-ons) Internet Explorer. Агент безопасности следит за приложениями, которые загружаются вместе с браузером. Spyware и другое вредоносное ПО может маскироваться под аддоны Internet Explorer и загружаться без вашего ведома. Агент безопасности не позволит загрузиться такому виду вредоносного ПО.
Настройки Internet Explorer. Агент безопасности следит за настройками безопасности браузера, потому что вредоносное ПО может попытаться изменить их.
Загрузки Internet Explorer (Internet Explorer Downloads). Агент безопасности следит за файлами и приложениями, предназначенными для работы с IE (например, ActiveX controls). Браузер может загрузить, установить и запустить данные файлы без вашего ведома. Вредоносное ПО может быть включено в такого рода файлы и загрузиться на компьютере-жертве, но агент безопасности защитит и от этой напасти.
Службы и драйверы. Агент безопасности данной области наблюдает за состоянием служб и драйверов во время их взаимодействия с ОС и приложениями. Поскольку службы и драйверы выполняют важнейшие функции, они имеют доступ к важным областям ОС. Вредоносное ПО может использовать службы для доступа к компьютеру, а также с целью маскировки под нормальные компоненты системы.
Выполнение приложений. Агент безопасности следит за приложениями во время их выполнения. Spyware и другое вредоносное ПО, используя уязвимости приложений, могут нанести вред. Например, spyware может загрузиться во время запуска часто используемого вами приложения. Windows Defender предупредит вас о подозрительном поведении приложений.
Регистрация приложений. Агент безопасности данной области постоянно наблюдает за инструментами и файлами ОС, где приложения регистрируются с целью загрузки. Spyware и другое вредоносное ПО может зарегистрировать приложение с целью загрузки без вашего ведома и периодически собирать с помощью него вашу личную информацию. Данный агент сообщит пользователю об обнаружении нового приложения, пытающегося зарегистрироваться с целью загрузки.
Windows Add-ons. Агент безопасности следит за так называемыми аддонами, также известными как программные утилиты для Windows. Аддоны позволяют настроить такие аспекты ОС, как безопасность, производительность, мультимедиа. Однако они могут и устанавливать ПО, которое будет собирать информацию о вас и вашем компьютере.
Ну что, прокомментировать вышеописанное можно было бы лихо, сказать же следует лишь следующее: то, что раньше было прерогативой антивируса и (частично) межсетевого экрана, теперь вобрал в себя этот самый Windows Defender. Плохо это или хорошо, вовсе не вопрос для обсуждения в рамках данной статьи, но то, что комплексный продукт вместо нескольких может быть потенциально более уязвим — очевидный факт.
WindowsServiceHardening
Под сборным названием WindowsServiceHardening подразумевается система безопасности, основной концепцией которой является принцип “ограниченных служб” (restricted services), которые загружаются с минимальными привилегиями, и влияние их на компьютер и сеть, таким образом, ограничено. Дабы исключить случайную путаницу и неопределенности, нелишним будет вспомнить, что же представляет собой эта самая служба.
Итак, служба — это тип приложения, которое запускается в фоновом режиме и сходно с приложениями-процессами UNIX. Чаще всего в виде служб запускаются серверные приложения, базы данных, веб-приложения для локальных и удаленных пользователей и т.п. Большинство служб в системе запускаются под учетной записью LocalSystem, что аналогично правам администратора, а если вспомнить правило “вредоносный код может все то, что может пользователь и служба”, становится вполне понятно, от чего WindowsServiceHardening спасает нашу ось :).
В качестве примера, пожалуй, уместно привести такую заразу, как Slammer, Blaster и Sasser, которые атаковали систему, используя как раз таки системные службы, запущенные с высокими привилегиями. Радует и то, что данная система защиты координирована с улучшенным (по заверениям корпорации) файрволлом Windows. Теперь если служба или сервис попытается использовать недозволенный ей порт для отправки или получения чего- либо, межсетевой экран заблокирует эту попытку. Ну что ж, очень даже неплохо, особенно по сравнению с предыдущим встроенным файрволлом Windows, который к исходящему трафику был мертв вообще :).
User Account Control
Не секрет, что в предыдущих версиях Windows абсолютное большинство создаваемых учетных записей являлись членами локальной группы
“Администраторы”. Почему так? Удобно, ответят многие из читателей, и, несомненно, будут правы. Ну, а что касается безопасности — так это вопрос риторический... И не важно, что «вселенский» закон гласит о том, что «код может то, что может пользователь»... Как можно отказаться от функциональности, заменив ее на ограниченную учетную запись, которая сокращает и без того невысокую продуктивность работы: ведь такие базовые задачи, как изменение системного времени, присоединение к безопасной беспроводной сети или установка драйвера принтера, требуют административных привилегий? Действительно.
Выход из этой, казалось бы, безвыходной ситуации Microsoft нашла, внедрив в Windows Vista UAC (User Account Control, контроль пользовательских учетных записей). Это новый подход, согласно которому все операции в системе подразделяются на две категории: - те, которые может выполнять пользователь со своими стандартными правами;
- и те, которые требуют администраторских привилегий.
Применение нового подхода, несомненно, выводит уровень безопасности ОС на новую черту, в то же самое время, предоставляя пользователям с обычными не администраторскими привилегиями большинство каждодневных функций. UAC значительно расширяет список стандартных возможностей пользователя путем включения в него множества базовых функций, которые не несут риска нарушения безопасности, хотя раньше требовали привилегий администратора. К этим новым функциям можно отнести следующие:
- изменение временной зоны;
- установку новых шрифтов;
- изменение настроек экрана;
- настройку системы управления питанием;
- добавление принтера и других устройств при условии, что драйверы для них уже установлены в системе;
- просмотр календаря и системного времени;
- загрузка и установка обновлений при условии использования UAC-совместимого инсталлятора;
- создание и настройка VPN-соединения;
- установка WEP (Wired Equivalent privacy) для соединения с защищенной беспроводной сетью.
Помимо прочего, UAC контролирует доступ к возможной конфиденциальной информации в папке “Мои документы”. Теперь, если пользователь не является создателем файла, то ни прочесть, ни изменить, ни удалить его он не сможет.
Рассмотрев основные особенности User Account Control, позвольте все это справедливо прокомментировать. И первое, что сразу же хочется сказать, — «лучше поздно, чем никогда». К чему это мы? Да все, вероятно, к тому, что подобная политика безопасности с ограничением прав, пользовательскими каталогами, правами доступа к файлам и прочим chown и chmod уже сколько десятилетий практикуется в Unix-системах. Создатели Windows Vista, видимо, всерьез решили перенять прогрессивный опыт Unix-систем. Ну наконец то! /* Справедливости ради следует отметить, что многопользовательская среда и средства контроля доступа существуют в NT-системах тоже очень давно, и даже в чем-то превосходят юниксовые, вопрос в том, что они слабо прижились среди конечных пользователей. Причин тут много, основнми мне видятся две – достаточно лояльные дефолты и нежелание владельца персонального компьютера ограничивать себя в правах. – прим. ред. */
BitLocker Drive Encryption
Последним нововведением, которое мы кратко рассмотрим в рамках данной статьи, будет BitLocker Drive Encryption (шифрование тома )— инструмент, позволяющий защитить конфиденциальную информацию на диске путем его шифрования.
1. Технология обеспечивает конфиденциальность информации в случае кражи диска и/или несанкционированного доступа, что достигается передовыми алгоритмами шифрования.
2. BitLocker позволяет изменить стандартный процесс загрузки ОС, проверяя подлинность пользователя через USB-устройство с ключами дешифрования. 3. Применение BitLocker гарантирует загрузку только оригинальных системных файлов при старте системы — иначе система просто не загрузится. Комментируя вышеописанное, хотелось бы заметить, что BitLocker Drive Encryption будет исключительно полезен в корпоративных версиях Vista — на серверах, требующих двухфакторной аутентификации.
Что же касается домашних машин, то здесь он будет скорее лишним, если только пользователь вдруг не захочет поиграть в Джеймса Бонда. Следует отметить, что в контексте данной статьи я перечислил лишь основные технологии защиты Windows Vista. Более подробную информацию относительно новой NT 6.0 можно узнать на официальном сайте производителя.
эпикриз
Ну что ж, вот, собственно, и настал момент истины, чтобы подвести окончательные итоги и вынести справедливый вердикт. Исходя из имеющихся данных, можно с уверенностью заявить, что корпорация сделала существенный шаг на пути усиления системы безопасности своей новой ОС. Многие из технологий защиты поддерживаются аппаратно, что можно считать значительным прорывом в области обеспечения безопасности системы. То, что акцент сделан на защиту ядра, не случайно: современные тенденции развития вредоносного ПО смещаются в сторону руткитов. Введение гибких инструментов ограничения прав и доступа наталкивает на мысль, что корпорация всерьез решила перенять прогрессивный опыт Unix-систем.
Резюмируя, можно сказать, что в целом система безопасности Windows Vista производит очень даже неплохое впечатление, и это несмотря на имеющиеся в настоящее время инструменты взлома, поэтому вполне закономерно можно дать оценку - восемь по десятибалльной.
Олег Бойцев, boytsev_om@mail.ru.
Сетевые решения. Статья была опубликована в номере 12 за 2007 год в рубрике save ass…