Глава 6. УЯЗВИМОСТЬ WINDOWS 2000
|
Уязвимость WINDOWS 2000 Осенью 1999 года компания Microsoft открыла доступ через Internet к нескольким тестовым серверам с бета-версией операционной системы Windows 2000 Server на узле Windows2000test.com, предлагая всем желающим попытаться взломать этот программный продукт. Материал этой главы основывается на информации, изложенной в разделах главы 3, посвященных вопросам инвентаризации операционной системы Windows NT/2000, а также в главеб, поэтому настоятельно рекомендуем прочитать эти главы, прежде чем приступать к изучению настоящей главы. В процессе обсуждения будут отмечены многие новые возможности обеспечения безопасности, включенные в Windows 2000. Эта новая функциональность поможет системным администраторам избежать многих из описанных ниже проблем. |
Предварительный сбор данных Как упоминаюсь в главе 1, большинство злоумышленников стараются получить максимум информации, не обращаясь напрямую к интересующему их серверу. Основным источником для предварительного сбора информации является система доменных имен DNS (Domain Name System) — стандартный протокол Internet, обеспечивающий преобразование IP-адресов и осмысленных имен типа www.hackingexposed.com. Перенос зоны DNS Поскольку пространство имен активного каталога операционной системы Windows 2000 основывается на использовании системы доменных имен, компания Microsoft существенно обновила реализацию сервера DNS в Windows 2000 с целью обеспечения потребностей активного каталога. По умолчанию перенос зоны DNS возможен на любой удаленный узел, что является основным средством сбора предварительной информации. Более подробные сведения по этому вопросу содержатся в главе 3. Отключение переноса зоны К счастью, реализация системы DNS для Windows 2000 допускает простую возможность ограничения переноса зоны, как описано в главе 3. |
Сканирование Операционная система Windows 2000 прослушивает список портов, многие из которых не были задействованы в Windows NT 4 и появились лишь в этой версии операционной системы. В табл. 6.1 приводится список некоторых портов, прослушиваемых по умолчанию контроллером домена Windows 2000. Каждый из них является потенциальной точкой входа в систему. Список номеров портов TCP и UDP, используемых службами и программами компании Microsoft, можно найти в перечне ресурсов по адресу http://www.microsoft.com/windows2000/
Таблица 6.1. Список портов, прослушиваемых по умолчанию контроллером домена Windows 2000
Контрмеры: отключение служб и блокировка портов Наилучший способ предотвращения всевозможных атак — это блокировка доступа к этим службам как на уровне сети, так и на уровне отдельных компьютеров.
He забудьте прочитать раздел " Отключение служб NetBIOS/SMB в Windows 2000" ниже в этой главе. Проведенное авторами тестирование Windows 2000 показало, что установка фильтров TCP/IP не блокирует эхо-пакетов ICMP (протокол 1), даже если отключить все протоколы IP, кроме 6 (TCP) и 17 (UDP).
Фильтры IPSec Для установки фильтров на порты отдельных компьютеров лучше использовать фильтры протокола IPSec. Эти фильтры явились побочным результатом новой реализации протокола IPSec для Windows 2000 и были с успехом использованы командами разработчиков сетей Openhack и windows2000test.com. Фильтры IPSec обрабатывают пакеты в стеке сети и просто-напросто выбрасывают те из них, которые не удовлетворяют характеристикам фильтра. В отличие от фильтров TCP/IP фильтры IPSec можно применять к отдельным интерфейсам. Кроме того, они блокируют запросы ICMP (однако они не настолько "тонки", чтобы блокировать отдельные подтипы запросов ICMP, скажем, эхо, отклики на эхо-запросы, временные метки и т.д.). Для вступления в силу фильтров IPSec перезагрузка не требуется (хотя изменение параметров фильтров может привести к разрыву существующих соединений IPSec). Такие фильтры обеспечивают решение проблемы для сервера и неприменимы в качестве средства обеспечения функциональности брандмауэра для рабочих станций, поскольку подобно фильтрам TCP/IP они будут блокировать загрузку информации, инициированную даже допустимыми соединениями (если не будут открыты все порты с более высокими номерами). ipsecpol \\имя_компыотера -w REG -p "Web" -о Две последние команды создают политику IPSec под названием Web, включающую два правила фильтрации. Первое из них, BlockAll, блокирует все протоколы поступающих и исходящих сообщений для данного компьютера и всех других компьютеров, а второе, OkHTTP, разрешает трафик через порт 80 данного и всех остальных компьютеров. Если нужно разрешить использование утилиты ping, или других программ, работающих на базе протокола ICMP (чего мы настоятельно не рекомендуем делать без особой необходимости), то в политику Web можно включить такое правило. Таблица 6.2. Параметры утилиты ipsecpol, используемые для фильтрации трафика через компьютеры под управлением Windows 2000
Следует отметить, что фильтры IPSec не блокируют порт 500 (UDP) или, на контроллерах домена Win 2000, порт 88 (TCP/UDP), используемые для аутентификации IPSec (порт 88 применяется протоколом Kerberos, a 500 — для обмена ключами IKE (Internet Key Exchange)). Сервисный пакет Service Pack 1 включает новый параметр реестра, позволяющий закрыть порты Kerberos путем отмены привилегий для драйвера IPSec: HKLM\SYSTEM\CurrentControlSet\ Трафик IKE всегда был привилегированным, и параметры системного реестра на него не влияли. Если же этот параметр реестра принимает значение 1, то все "льготы" для протоколов Kerberos и RSVP отменяются по умолчанию. Автор высказывает благодарность Майклу Ховарду (Michael Howard) из группы обеспечения безопасности Windows 2000 за помощь в изучении команды ipsecpol и нового параметра системного реестра. Поскольку утилита ipsecpol использует синтаксис командной строки, с ней нужно обращаться очень осторожно. В рассмотренном выше примере предполагается, что список фильтров обрабатывается сверху вниз. Простое изменение порядка следования записей в списке может привести к неправильной работе фильтров. Кроме того, утилита не позволяет задать диапазон портов для источника или назначения. Так что несмотря на значительные улучшения, обеспечиваемые фильтрами IPSec по сравнению с фильтрами TCP/IP, с ними нужно обращаться очень аккуратно. Иначе желание блокировать порты так и останется лишь желанием. Отметим еще несколько особенностей, выявленных процессе интенсивного тестирования утилиты ipsecpol.
|
Инвентаризация В главе 3 было показано, как из операционной системы Windows NT 4.0 можно получить сведения об учетных записях, совместно используемых ресурсах и другую информацию. Было показано, что служба NetBIOS передает эти данные анонимным пользователям, проникающим в систему через злополучный нулевой сеанс. Там же было указано, что служба активных каталогов предоставляет эту информацию неаутентифицированным злоумышленникам. Здесь мы не будем снова описывать эти виды атак, однако отметим, что Windows 2000 обеспечивает некоторые новые возможности по решению проблем со службами NetBIOS и SMB. Отключение служб NetBIOS/SMB в Windows 2000 К счастью, можно отключить и порт 445, однако эта операция выполняется отдельно для каждого конкретного адаптера (подобно операции отключения порта 139 в NT 4). При этом сначала необходимо найти соответствующую вкладку (возможно, она переместилась в новое, никому неизвестное местоположение — еще один недостаток графического интерфейса). Теперь ее можно открыть с помощью аплета Network and Dial-up Connections, выбрав команду Advanced>Advanced Settings, как показано на следующем рисунке.
Порт TCP 139 будет отображаться в результате Сканирования портов даже после выполнения указанных действий. Однако этот порт больше не будет предоставлять информацию, связанную со службой NetBIOS. Если вы не отключаете протоколы NetBIOS/SMB, не забывайте установить значение параметра RestrictAnonymous. Теперь это можно сделать с помощью команды Administrative Tools>Local Security Policy (или Domain или Domain Controller>Local Policies>Security Options>No Access Without Explicit Anonymous Permissions. Эта команда эквивалентна установке в системном реестре Windows 2000 значения 2 для параметра RestictAnonymous. Некоторые возможные проблемы, связанные с установкой значения 2 для параметра RestictAnonymous описаны в базе знаний Knowledge Base по адресу http://eearch.support.micro8oft.com. (статья Q246261). Не забывайте, что ограничить доступ к данным протокола NetBIOS или SMB можно также с помощью фильтров IPSec. |
Проникновение Как будет видно из дальнейшего изложения, новая версия операционной системы Windows 2000 подвержена всем тем же типам удаленных атак, что и NT 4. |
Получение пароля NetBIOS или SMB Средства, подобные описанной в главе 5 утилите SMBGrind, пригодны также для получения паролей в системе Windows 2000. Если службы NetBIOS и SMB/CIFS включены, и клиент может использовать SMB-запросы, то пароли доступа к совместно используемым ресурсам являются самым уязвимым местом системы Windows 2000. Один из участников группы разработки серверного и клиентского программного обеспечения Samba (http://eamba.org) Люк Лейтон (Luke Leighton) неоднократно подчеркивал различие между NetBIOS и SMB. NetBIOS — это транспортный протокол, а 8MB — протокол совместного использования файлов, связанный с поддерживаемыми протоколом NBT (NetBIOS поверх TCP) именами типа ИМЯ_СЕРВЕРА#20. Подобно любому серверу общего назначения, такие серверы обмениваются информацией через порт TCP. Таким образом, протокол SMB взаимодействует с портом TCP 445 и не имеет ничего общего с NetBIOS. |
Получение хэш-кодов паролей Утилита перехвата пакетов SMB L0phtcrack, описанная в главе 5, по прежнему может эффективно перехватывать и взламывать хэш-коды диспетчера локальной сети LM и NTLM, передаваемые между клиентами нижнего уровня (NT 4 и Win9x) и сервером Windows 2000. Новая процедура регистрации по протоколу Kerberos предусматривает выполнение идентификации средствами NTLM, если на одном из концов соединения протокол Kerberos не поддерживается, что и происходит между клиентом Windows 2000 и сервером NT 4 или Win9x |
Атаки против IIS 5 По возрастающей популярности с атаками на протоколы NetBIOS или 8MB могут сравниться лишь многочисленные методологии атак на US (Internet Information Server), поскольку это единственная служба, обязательно присутствующая в подключенных к Internet системах под управлением NT/2000. Эта служба встроена в операционные системы семейства Windows 2000. По умолчанию сервер IIS 5.0 и службы Web доступны во всех серверных версиях. И хотя вопросы, связанные с хакингом в Web, будут более подробно рассмотрены в главе 15, мы не можем обойти своим вниманием атаку на Internet Information Server, широко обсуждаемую компьютерной общественностью перед самым выходом в свет этой книги. Проблема US "Translate: f" Проблема, связанная со вскрытием кода (showcode) не нова: она была свойственна и более ранним версиям Internet Information Server. Она получила название Translate: f и была описана Даниелем Дочкалом (Daniel Docekal) в бюллетене Bugtraq. Эта проблема является хорошим примером ситуации, когда взломщик направляет Web-серверу неожиданные данные и тем самым заставляет его выполнять неприемлемые в обычных условиях действия. Это классический вид атаки против протоколов обработки документов типа HTTP. GET/global.asa\ HTTP/1.0 Если путем конвейерной обработки текстовый файл с этой информацией направить (с помощью утилиты netcat) на уязвимый сервер IIS, то в командной строке отобразится содержимое файла /global, as a: D:\type trans.txtI nc -nw 192.168.234.41 80 Мы слегка модифицировали содержимое файла global.asa, чтобы продемонстрировать наиболее характерную информацию, которую может извлечь из него взлом-шик. К сожалению, на многие узлах до сих пор встраивают пароли приложений в ASP и ASA-файлы, повышая тем самым вероятность последующего проникновения хакеров в свои пенаты. Как видно из этого примера, взломщик, вскрывший содержимое файла global.asa, получает в свое распоряжение пароли многих серверов нижнего уровня, включая систему LDAP. Корни проблемы Translate: f - протокол WebDAV и канонизация При первом выявлении этой проблемы вокруг ее причин разгорелись бурные споры. Официальная позиция компании Microsoft сводилась к тому, что причиной является некорректное поведение внутреннего обработчика файлов в ядре US (что в прошлом действительно приводило к некоторым проблемам). Эта позиция была обнародована в разделе MSOO-58, посвященном вопросам безопасности по адресу http: //www.microsoft.com/technet/security/bulletin/fq00-058.asp. Контрмеры: решение для проблемы Translate: f Чтобы уменьшить риск, связанный с проблемой Translate: f и другими попытками вскрытия кода, достаточно просто иметь в виду, что любые исполняемые на сервере файлы могут быть видимы пользователям Internet и никогда не хранить в них секретную информацию. Неизвестно, связано ли это с участившимися попытками вскрытия кода, но компания Microsoft предлагает такой подход в качестве "обычной рекомендации по безопасности" в разделе FAQ MS00-58, уже упомянутом ранее. |
Удаленное переполнение буфера В главе 5, рассматривался вопрос переполнения буфера для системы Windows NT. В настоящее время выявлено несколько случаев переполнения буфера приложений, работающих под управлением NT/2000, но не самой операционной системы. |
Отказ в обслуживании Если большинство серьезных атак против операционной системы NT, направленных на генерацию состояния DoS (отказ в обслуживании), предотвращаются с помощью сервисного пакета NT 4 Service Pack 6a, то Win 2000 является сравнительно надежной в этом отношении операционной системой. До сих пор не было обнаружено никаких угроз возникновения условия DoS, даже после тестирования операционной системы на узле win2000test.com. Атака SYN и бомбардировка IP-пакетами Internet подтверждает известную истину: жизнь — это игра без правил. Особенно наглядно это проявилось в эксперименте с Win2000test.com, когда согласно правилам атаки DoS были категорически запрещены. Тем не менее, серверы этого узла подверглись массированным атакам IP-пакетами, количество которых значительно превысило возможности серверов по их обработке, а также хорошо известным атакам SYN, приводящим к переполнению очередей в стеке протокола TCP/IP (более подробная информация о специфике этих атак содержится в главе 15). Контрмеры против атак DoS Чтобы минимизировать ущерб от подобных атак, необходимо соответствующим образом настроить сетевые шлюзы или брандмауэры (более подробная информация содержится в главе 12). Однако еще раз повторим, что целесообразно также противостоять таким атакам на уровне отдельных компьютеров. Это сыграет свою роль, если одна из линий обороны будет прорвана. Благодаря эксперименту с узлом Win2000test.com компания Microsoft смогла добавить в операционную систему Windows 2000 несколько новых ключей системного реестра, которые можно использовать для защиты стека протокола TCP/IP от атак DoS. В табл. 6.3 содержится информация о конфигурации параметров системного реестра на серверах win2000test.com (эта таблица создана на основе отчета компании Microsoft, посвященного результатам эксперимента и расположенного по адресу http://www.microsoft.com/security, а также личного общения авторов с группой разработчиков Win2000test. com). Некоторые из этих значений, например synAttackProtect=2, в некоторых случаях могут оказаться слишком жесткими. Они были выбраны для защиты сервера Internet с активным трафиком.
Таблица 6.3. Рекомендуемые параметры для стека протокола TCP/IP в операционной системе NT/2000, позволяющие предотвратить атаки DoS
Более подробная информация об этих параметрах и описание параметра SynAttackProtect содержится в статье Q142641 базы знаний компании Microsoft. Генерация состояния DoS сервера ч.,, Telnet Win 2000 Эта простая атака, придуманная в лаборатории SecureXpertLabs (http://www. secure xpert com), предполагает отправку бинарной строки, состоящей из нулей, службе Telnet Microsoft (которая в Win 2000 по умолчанию отключена). Это приводит к выводу службы из строя и автоматическому перезапуску (если таковой предусмотрен). При многократном повторении попыток автоматического перезапуска (когда их число достигает максимально допустимого значения) служба отключается насовсем. Модуль обновления для сервера Telnet Для предотвращения этой атаки необходимо использовать модуль обновления, который можно найти по адресу http://www.microsoft.com/technet/security/ bulletin/MS00-050.asp. Он не включен в сервисный пакет Win 2000 Service Pack 1 и может применяться как до, так и после этого пакета. Сервер Telnet можно сконфигурировать на выполнение автоматической перезагрузки. В этом случае постоянные нападки взломщиков, возможно, по-прежнему будут досаждать, однако теперь их можно отслеживать с помощью маршрутизатора, если поддерживаемый на нем журнал имеет достаточно большой размер и взломщики не используют ложные пакеты. Генерация состояния DoS на сервере имен NetBIOS В июле 2000 года сэр Дастик (Sir Dystic) из группы хакеров Cult of the Dead Caw ("Кутьт мертвой коровы", http://www.cultdeadcow.com) сообщил о том что отправка сообщения "NetBIOS Name Release" службе имен NetBIOS (NBNS UDP 137) компьютера NT/2000 приводит к конфликту, связанному с этим именем, и невозможности его дальнейшего использования. После получения такого сообщения это имя нельзя использовать в сети NetBIOS. Примерно в это же время из лаборатории Network Associates COVERT Labs (http //www.nai.com) сообщили, что сообщение "NetBIOS Name Conflict можно отправить службе имен NetBIOS даже в том случае, если целевой компьютер не находится в процессе регистрации своего имени NetBIOS. Это тоже приводит к конфликту и невозможности дальнейшего использования имени. Контрмеры против атаки DoS на сервер имен NetBIOS К сожалению, протокол NetBIOS не документирован, поэтому авторы не могут гарантировать надежность следующего рецепта. Компания Microsoft разработала ключ системного реестра, предотвращающего подтверждение сообщения Name Release со стороны сервера NBNS. Решение проблемы с сообщением "Name Conflict состоит в том что это сообщение обрабатывается только на этапе регистрации. Таким образом, компьютер остается уязвимым только в это время. Соответствующий модуль обновления и более подробная информация содержится по адресу http: //www.microsoft.com/ |
Расширение привилегий Если взломщик смог добраться до учетной записи пользователя в системе Windows 2000, то следующим его желанием станет получение исключительных привилегий — прав администратора. К счастью, операционная система Win 2000 является более устойчивой, чем ее предшественницы в смысле противостояния таким попыткам (по крайней мере угрозы типа getadmin и sechole ей теперь не страшны). Но к сожалению, если взломщик смог получить данные интерактивной учетной записи, то предотвратить возможность расширения его привилегий очень сложно (интерактивные учетные записи получили гораздо более широкое распространение с появлением терминального сервера Windows 2000, применяемого в целях удаленного управления и распределенной обработки данных). Использование именованных конвейеров для запуска программ с системными привилегиями Атака, обеспечивающая расширение привилегий на основе прогнозирования создания именованного канала при инициализации системных служб Windows 2000 (таких как Server, Workstation, Alerter и ClipBook, связанных с учетной записью SYSTEM), была разработана Майком Шифманом (Mike Schiffman) и отправлена в бюллетень Bugtraq (ID 1535). Перед запуском каждой службы на сервере создается именованный канал с прогнозируемой последовательностью имен. Эту последовательность можно получить из параметра системного реестра HKLM\System\CurrentControlSet\Control\ ServiceCurrent. C:\>whoami /groups Обратите внимание, что эта программа взлома для выполнения своих губительных действий использует учетную запись SYSTEM. Теперь хакер может взломать пароль администратора и зарегистрироваться в системе. (Напомним, что при наличии системных привилегий это не составляет труда. Гораздо сложнее "пробраться" в группу администраторов.) Контрмеры против использования именованных каналов Компания Microsoft выпустила модуль обновления, изменяющий способ создания и размещения именованных каналов диспетчером Win 2000 Service Control Manager (SCM). Его можно найти по адресу http://www.microsoft.com/technet/security/ bulletin/MS00-053 .asp. Этот модуль обновления не вошел в сервисный пакет SP1 и может применяться как до, так и после установки этого пакета.
По умолчанию группа users и учетная запись Guest обладают правом локальной регистрации в системе Win 2000 Professional и на автономных серверах Win 2000 Server. Права пользователей контроллера домена ограничены более жестко благодаря специальной используемой по умолчанию политике (правами локальной регистрации обладают все группы операторов). Мы рекомендуем отменить это право для группы users и учетной записи Guest и строго следить за тем, кому предоставляются такие привилегии.
Нарушение доступа к рабочим станциям Большинство администраторов Windows никогда не слышали о рабочих станциях в контексте одного из наиболее загадочных разделов программирования для Windows. Модель безопасности Win 2000 определяет иерархию контейнеров, предназначенных для разграничения функций зашиты между различными процессами. В этой иерархии объекты упорядочены от общего к частному: сеанс, рабочая станция, рабочий стол. При этом сеанс содержит одну или несколько рабочих станций, которые, в свою очередь, могут включать один или несколько рабочих столов. В рамках этой концепции сфера действия процессов ограничена рабочей станцией, а потоки одного процесса работают с одним или несколькими рабочими столами. Однако по каким-то причинам эта концепция не была реализована в исходной версии Win 2000. При некоторых условиях процесс с более низкими привилегиями, работающий на одном из рабочих столов, в рамках одного сеанса мог получать информацию от рабочего стола другой рабочей станции. Контрмеры против нарушения доступа к рабочим станциям Поскольку эта проблема связана с некорректной реализацией модели безопасности компанией Microsoft, то и в ее решении придется положиться на модуль обновления этой компании. Такой модуль, обеспечивающий корректное разделение процессов для различных рабочих столов, можно получить по адресу http://www.microsoft.com/technet/ |
Несанкционированное получение данных После получения статуса администратора взломщики обычно стараются получить всю информацию, которую можно будет использовать для последующих вторжений. |
Получение хэш-кодов паролей Win 2000 Хакеры будут счастливы узнать, что хэш-коды диспетчера локальной сети LanManager (LM) хранится в предлагаемом по умолчанию местоположении Win 2000 для обеспечения совместимости с клиентами других версий (отличными от Windows NT/2000). Это приводит к проблемам, описанным в главе 5, для устранения которых можно использовать предложенные там же решения. Однако, к небольшому разочарованию хакеров, благодаря некоторым новым свойствам Win 2000 и, в первую очередь, алгоритму шифрования SYSKEY, стандартные приемы взлома паролей теперь неприменимы. Однако, как будет видно из следующих разделов, не все обстоит так благополучно. Получение базы данных SAM На контроллерах доменов Win 2000 хэш-коды паролей хранятся в файле службы каталогов Active Directory (%windir%\NTDS\ntds .dit). При стандартной конфигурации этот файл занимает порядка 10 Мбайт и хранится в зашифрованном виде, поэтому взломщики вряд ли смогут заполучить его с целью последующего анализа. Фаил SAM в Win 2000 по умолчанию кодируется с использованием SYSKEY и восстанавливается с помощью средства pwdump2. Не забывайте очищать каталог Repair \RegBack Не оставляйте взломщикам никаких шансов — переносите файлы каталога Repair\RegBack на съемный диск или в другое безопасное место. А еще лучше — при запуске утилиты создания диска аварийного восстановления не выбирайте опцию архивации системного реестра. Загрузка хэш-кодов чо, с с помощью pwdump2 В операционной системе Win 2000 по умолчанию применяется кодировка SYSKEY (более подробная информация об этом содержится в разделе Q143475 базы знаний и в главе 5). Поэтому с помощью средства pwdump нельзя корректно расшифровать хэш-коды паролей из системного реестра Win 2000. Для решения этой задачи надо использовать pwdump2 (более подробно о pwdump, pwdump2, а также о том, почему для расшифровки SYSKEY не подходит pwdump, читайте в главе 5). Более того, для локальной загрузки хэш-кодов с контроллера домена требуется обновленная версия утилиты pwdump2 (доступная по адресу http://razor.bindview.com), поскольку теперь хранение паролей организовано на базе Active Directory, а не в соответствии с традиционными принципами файла SAM. Контрмеры против загрузки хэш-кодов с помощью pwdump2 Поскольку принципы подключения динамических библиотек в Windows не изменились, то против утилиты pwdump2 не существует никакой зашиты. Слабым утешением служит лишь тот факт, что эта утилита работает локально и для ее запуска требуются привилегии администратора. Если же хакеру удалось получить эти привилегии, то он сможет получить практически любую информацию о локальной системе (другой вопрос, как можно использовать данные SAM для новых атак). Добавление хэш-кодов в файл SAM с помощью chntpw Если хакер получил физический доступ к системе и у него достаточно времени для загрузки другой операционной системы, то он может реализовать сложную атаку, описанную Питером Нордалом-Хагеном (Fetter Nordahl-Hagen). В ряде статей, содержащихся на этом узле, Питер приводит поразительные факты. Например, по его словам, хэш-коды паролей можно добавить в файл SAM в автономном режиме и таким образом изменить пароль любого пользователя системы. Применение этих приемов может привести к повреждению файла SAM. Испытывайте их только на тестовых компьютерах с системой NT/2000 и будьте готовы к возможному отказу операционной системы. В частности, не выбирайте опцию Disable SYSKEY программы chntpw в Win 2000. По отзывам, это может привести к непредсказуемым результатам и даже необходимости полной переустановки системы. Описанный выше прием не позволяет изменять пароли пользователей на контроллере домена Win 2000, а относится лишь к изменению файлов SAM. Напомним, что на контроллере домена хэш-коды паролей хранятся в Active Directory, а не в файле SAM.
Контрмеры против chntpw Если хакеры могут получить неограниченный физический доступ к системе, то противостоять им практически невозможно. Одна из слабых контрмер состоит в такой настройке параметров, при которой требуется привлечение ключа SYSKEY при каждой загрузке. Этого можно добиться, установив режим защиты системного ключа паролем или хранения его на гибком диске (в главе 5 описаны три модели использования ключа SYSKEY). Тогда даже после изменения пароля администратора для загрузки системы хакер должен будет ввести пароль SYSKEY. Конечно же, с помощью программы chntpw хакер может полностью отключить системный ключ, но тогда он рискует вывести из строя операционную систему, если это Win 2000. Удаление пароля администратора, вместе с файлом SAM 25 июля 1999 года Джеймс Дж. Ерейс (James J. Grace) и Томас С.В. Бартлетт III (Thomas S. V. Bartlett III) опубликовали потрясающую статью о том, как удалить пароль администратора, загрузившись в другой операционной системе и удалив файл SAM http://www.deepquest.pf. Имея неограниченный физический доступ к компьютеру и средства для записи информации в разделы NTFS (например, утилиту NTFSDOS Pro, доступную по адресу http://www.sysinternals.com), с помощью этого средства можно легко обойти всю локальную систему зашиты NT/2000. Контроллеры доменов Win 2000 не пострадают от удаления файла SAM, поскольку на этих машинах хэш-коды паролей хранятся в Active Directory. Однако в указанной статье приводится механизм достижения аналогичного результата на контроллере домена, предполагающий установку второй копии Win 2000.
Предотвращение удаления файла SAM Как отмечалось выше на уровне операционной системы существует единственный способ противостояния такой атаке. он заключается в защите паролем системного ключа или установке режима его хранения на гибком диске. Еще один эффективный способ противодействия атакам в автономном режиме- обеспечить физическую защищенность серверов, отключив режим загрузки со съемных носителей или установив пароль BIOS. Авторы советуют использовать все эти механизмы. |
Шифрование файловой системы Одним из главных достижений Win 2000 в области безопасности является шифрование файловой системы. Средство EPS (Encrypting File System) — это система шифрования на основе открытого ключа, предназначенная для кодирования данных на диске в реальном времени и предотвращения несанкционированного доступа к ним. Компания Microsoft опубликовала статью, описывающую детали функционирования EPS (http://www.microsoft.com/windows200/ Применение EFS Систему EFS можно применять для шифрования любого файла или папки. Эту операцию можно выполнить в диалоговом окне свойств объекта с помощью кнопки Advanced во вкладке General. Кроме того, для шифрования и дешифрования файлов можно использовать утилиту командной строки cipher. Для получения справочной информации об этой программе введите команду cipher /?. Будьте внимательны при перемещении зашифрованных файлов. Хотя при использовании стандартных механизмов резервного копирования (например, ntbackup.exe) зашифрованные файлы копируются без модификации, при выполнении обычной операции копирования файлы расшифровываются. Если файл копируется в раздел с файловой системой, отличной от NTFS 5.0, то после копирования файлы окажутся расшифрованными. При копировании файла на удаленный компьютер с файловой системой NTFS 5.0 он будет зашифрован, однако не будет идентичен оригиналу, поскольку удаленная копия будет зашифрована с помощью другого ключа. Таким образом, шифрование файловой системы защищает файлы только при хранении на диске, а при перемещении файлов они расшифровываются.
Расшифровка ключа агента восстановления EFS Продолжим начатое ранее обсуждение статьи Джеймса Дж. Грейса (James J. Grace) и Томаса С.В. Бартлетта III (Thomas S. V. Bartlett III). Возможность изменения пароля учетной записи администратора может иметь гораздо более серьезные последствия, если учесть, что учетная запись Administrator по умолчанию является агентом восстановления ключа. Если зарегистрироваться в системе с пустым паролем администратора, то все зашифрованные системой EFS файлы будут декодированы, поскольку администратор может получить доступ к ключу кодирования файлов (а значит, и содержимому этих файлов) с помощью своего ключа восстановления. Делегирование прав агента восстановления не решает проблему На первый взгляд может показаться, что проблему легко решить, делегировав права агента восстановления другой учетной записи. На самом деле это не так. Джеймс Дж. Грейс (James J. Grace) и Томас С.В. Бартлетт III (Thomas S. V. Bartlett III) разработали средство для изменения пароля любой учетной записи, определенной как агент восстановления. Экспортирование ключей восстановления и их безопасное хранение В ответ на статью Джеймса Дж. Грейса (James J. Grace) и Томаса С.В. Бартлетта III (Thomas S. V. Bartlett III) компания Microsoft признала, что таким способом действительно можно обойти систему EFS, но в свое оправдание заявила, что для предотвращения этой атаки нужно правильно хранить ключ восстановления EFS (http://www. microsoft.com/technet/security/analefs.asp). Запустится мастер, после выполнения рекомендаций которого ключ восстановления будет экспортирован. Для резервного копирования ключа агента восстановления вместе с сертификатом необходимо экспортировать и закрытый ключ. При этом авторы рекомендуют использовать защиту паролем. Напомним, что при простом удалении сертификата агента восстановления из правой панели шифрование файловой системы станет невозможным. На следующем рисунке показано, что происходит при попытке шифрования без агента восстановления — система не работает.
Файлы, зашифрованные до удаления агента восстановления, остаются зашифрованными, но могут быть открыты только соответствующим пользователем или после восстановления агента из резервной копии. Для узлов, входящих в домен, ситуация отличается. Ключи восстановления всех систем, входящих в домен, хранятся на его контроллере. При добавлении к домену компьютера под управлением Win 2000 автоматически вступает в силу используемая по умолчанию политика восстановления домена и агентом восстановления становится администратор домена, а не локальный администратор. Таким образом, ключи восстановления физически отделяются от зашифрованных данных, что значительно затрудняет описанную атаку. Не мешает также экспортировать сертификат агента восстановления с контроллера домена, поскольку при их получении уязвимыми станут все компьютеры данного домена. Компания Microsoft в ответном документе также утверждает, что возможность удаления файла SAM, приводящую к установке пароля администратора в NULL, можно предотвратить с помощью ключа SYSKEY. Но выше было показано, что это не так, если не выбран режим его защиты паролем или хранения на гибком диске (в статье об этом умалчивается). |
Вторжение на доверительную территорию Один из основных приемов взломщиков — поиск данных пользователей домена (а не локальной системы). Это позволяет хакерам получить доступ к контроллеру домена и легко обмануть систему безопасности домена. Такой деятельности обычно невольно способствуют администраторы, которые регистрируются на локальной машине с использованием данных учетной записи домена. Система Win 2000 не может предостеречь своих пользователей от очевидных ошибок. Средства получения данных LSA -живут и здравствуют Как было показано в главе 5, получение данных LSA — основной механизм для вгпома доверительных отношений, поскольку позволяет получить данные о нескольких последних зарегистрированных в системе пользователях и пароли учетных записей служб. С:\>lsadump2
Контрмеры против Isadump2 Компания Microsoft считает, что описанная ситуация не представляет угрозы для безопасности системы, поскольку для запуска утилиты Isadump2 требуется привилегия seoebugprivilege, делегируемая по умолчанию только администраторам. Лучший способ противостояния lsadump2 - защитить учетные записи администраторов. Если же хакер получит доступ к учетной записи администратора, то с помощью lsaduir.P2 он сможет получить и учетные записи служб внешних доменов, и с этим ничего не поделаешь. Новая система множественной репликации и модель доверительных отношений Одним из наиболее значительных отличий Win 2000 от NT в области архитектуры доменов является переход к системе множественной репликации и модели доверительных отношений. В рамках леса Win 2000 все домены хранят реплики совместно используемой службы Active Directory и строят двухсторонние доверительные отношения друг с другом по транзитивному принципу на базе протокола Kerberos (доверительные отношения между лесами доменов или с доменами нижнего уровня NT 4 по-прежнему остаются односторонними). Это приводит к интересным следствиям при разработке топологии доменов. |
Сокрытие следов В Win 2000 применяются в основном те же средства и приемы сокрытия следов, что и в более ранних версиях операционной системы с небольшими отличиями. Приведем их краткое описание. |
Отключение аудита Для включения аудита можно воспользоваться аплетом Local Security Policy (secpol.msc) или Group Policy (gpedit.msc), выбрав на левой панели управляющей консоли элемент Local Policy^Audit Policy или Computer Configuration>Windows SettingsoSecurity Settings>Local Policy>Audit Policy соответственно. Политика групп будет рассмотрена ниже в этой главе. Параметры аудита в Win 2000 в основном совпадают с параметрами NT 4. |
Очистка журнала регистрации событий В Win 2000 по-прежнему возможна очистка журнала регистрации событий, однако доступ к журналам осуществляется посредством нового интерфейса. Просмотреть различные журналы событий теперь можно через управляющую консоль Computer Management с помощью элемента System ToolsЮ Event Viewer. Появилось три новых журнала: Directory Service, DNS Server и File Replication Service. При щелчке правой кнопкой на одном из них открывается контекстное меню, содержащее команду Clear All Events. |
Сокрытие файлов Одной из главных задач хакера после удачного вторжения в систему является надежное сокрытие своего инструментария. В главе 5 обсуждались два способа сокрытия файлов: с помощью команды attrib и файловых потоков. Команда attrib Для сокрытия файлов по-прежнему можно применять команду attrib, но при этом файлы все же останутся видимыми при выборе опции Show All Files для данной папки. Потоки С помощью утилиты ср из набора NTRK (поддерживающей стандарт POSIX) можно скрыть файлы за другими файлами в потоках (см. главу 5). Эту утилиту можно использовать и в Win 2000 даже при переходе на новую версию 5 файловой системы NTFS. |
Потайные ходы Последним пунктом программы хакеров является обеспечение возможности повторного проникновения в систему, усыпив бдительность системных администраторов. |
Манипуляции в процессе запуска системы Как упоминалось в главе 5, излюбленный прием хакеров — оставить в системе свои исполняемые файлы, которые будут автоматически запускаться при загрузке системы. Такие возможности по-прежнему имеются в системе Win 2000. Поэтому необходимо проверять соответствующие папки взломанной системы на наличие неизвестных или странных команд.
В Win 2000 отличается лишь местоположение папки автозагрузки Startup для каждого пользователя. Теперь эта папка находится в папке Documents and Settings (%systemdrive%\ Documents and Settings\%user%\Start Menu\Programs\Startup). Прикрепление к исполняемым файлам Иногда наиболее очевидные потайные ходы сложнее всего разглядеть. Например, можно просто разместить троянскую оболочку Windows под именем explorer.exe в корне каталога %systemdrive% целевой системы (по умолчанию право записи в этот каталог имеют все пользователи). Тогда при интерактивной регистрации пользователя эта профамма по умолчанию будет использоваться в качестве оболочки для этого пользователя. Почему это происходит? Выявление всех относительных путей в реестре Эта проблема была устранена в модуле обновления MS00-052, не включенном в состав сервисного пакета SP1, поэтому этот модуль необходимо применять независимо от установки сервисного пакета. И хотя в разделе часто задаваемых вопросов компания Microsoft заявляет об отсутствии этой угрозы (http://www.microsoft.com/technet/ security/bulletin/fq00-052.asp), Альберто Арагонес (Alberto Aragones) приводит примеры других исполняемых файлов (например, rundll32.exe), для которых пути в реестре явно не указаны. Действительно, имя этого файла многократно встречается в реестре без указания абсолютного пути. Возникает вопрос, как вернуть систему в нормальное состояние, если с ней уже сыграли злую шутку, описанную Альберто? На этот случай Альберто советует запустить программу %windir%\explorer.exe из командной оболочки, а затем удалить "поддельный" проводник, или просто ввести команду геп\ explorer.exe harmless.txt, а затем перезагрузить компьютер с помощью комбинации клавиш <Alt+Ctrl+Del>. |
Удаленное управление Все описанные в главе 5 механизмы удаленного управления по-прежнему работают в новой версии операционной системы. Утилита remote из набора NTRK теперь входит в состав средств поддержки Win 2000 Support Tools (как и многие другие базовые утилиты NTRK). Обновленная версия этой утилиты называется wsremote, но ее функциональность в целом сохранилась. Средства NetBus и WinVNC не претерпели никаких изменений. В Win 2000 может работать и утилита Back Orifice 2000 (ВО2К), поэтому особо беспечным администраторам, которые потешались над возможностью работы исходной версии ВО только в среде Win 9.v, теперь будет не до шуток. Терминальный сервер Значительным новшеством Win 2000 является включение терминальных служб в состав базовых серверных продуктов. Дополнительно устанавливаемый терминальный сервер превращает Win 2000 в абсолютно новую систему, позволяющую выполнять клиентские процессы на центральном процессоре сервера. Во всех предыдущих версиях Windows, за исключением отдельного продукта NT Terminal Server Edition, все клиентские программы всегда выполнялись процессором клиента. Для пользователей операционной системы UNIX и больших машин такой подход не нов, однако администраторам NT/2000, безусловно, понадобится некоторое время, чтобы научиться отличать удаленные интерактивные сеансы от сеансов работы в режиме консоли. Выявление отключенных соединений с терминальным сервером Что может сделать взломщик, имея привилегии администратора на терминальном сервере? Если на момент подключения хакера с данными учетной записи Administrator последний представитель из группы администраторов забыл завершить терминальный сеанс (или несколько сеансов), то взломщик получит следующее информационное сообщение. Выбрав один из открытых сеансов, хакер может получить доступ к конфиденциальным документам или другим секретным данным, а также автоматически получить доступ к работающим приложениям, которые в другое время ему пришлось бы запускать вручную. Завершение терминальных сеансов Если просто закрыть окно клиента терминального сеанса или щелкнуть на кнопке Disconnect, сеанс останется активным. Для завершения терминального сеанса необходимо выбрать соответствующую опцию при выполнении команды Start^Shutdown или воспользоваться комбинацией клавиш <Ctrl+Alt+End> в режиме работы клиента терминального сервера. Приведем список других клавиатурных эквивалентов команд, доступных в режиме работы клиента терминального сервера. Во время подготовки этой книги к печати по адресу http://marvin.criad vcmtage.com/caspian/Software/SSHD-NT/default.php ПОЯВИЛСЯ набор бесплатных утилит Linux для DOS SSHD-NT. Утилиты SSH (Secure Shell) в течение многих лет обеспечивают безопасность удаленного управления UNIX-системами, поэтому на них возлагаются большие надежды и в области удаленного управления Win 2000. Предполагается, что набор SSHD-NT составит достойную альтернативу терминальному серверу в смысле безопасного удаленного управления из командной строки. Более подробная информация по SSH содержится в разделе часто задаваемых вопросов по Secure Shell по адресу http://www.employees.org/~satch/ssh/faq/ssh-faq.html. |
Регистраторы нажатия клавиш В Win 2000 по-прежнему хорошо работают программы, регистрирующие нажатия клавиш, NetBus и Invisible Key Logger Stealth (IKS), описанные в главе 5. |
Контрмеры общего назначения: новые средства обеспечения безопасности Windows В Win 2000 включены новые средства обеспечения безопасности. Теперь этот аспект гораздо лучше систематизирован, чем в NT 4. Эти утилиты позволяют жестко настроить защиту системы во имя избежания возможных брешей в защите. |
Политика групп Одним из наиболее мощных новых средств в Win 2000 является политика групп, которая уже несколько раз упоминалась в этой главе. Объекты политики групп могут храниться как в активном каталоге, так и на локальной машине, и определять параметры конфигурации в масштабах домена или одного компьютера соответственно. Политику групп можно применять к узлам, доменам или организационным единицам. Параметры политики наследуются пользователями или компьютерами, входящим в состав этих единиц ("участниками" группы). Объекты политики групп обеспечивают один из способов защиты больших доменов Win 2000. Однако зачастую политика уровня домена может входить в противоречие с локальной политикой. Кроме того, губительный результат может иметь задержка, возникающая до вступления в силу политики групп. Такую задержку можно устранить, например, с помощью утилиты secedit (эта утилита более подробно обсуждается в следующем разделе), выполняющей немедленное обновление политики. Для обновления политики с помощью утилиты secedit откройте диалоговое окно Run и введите команду secedit /refreshpolicy MACHINE_POLICY
Средства настройки безопасности Для настройки политики групп можно воспользоваться набором утилит для настройки безопасности, в состав которого входят две программы: Security Configuration and Analysis и Security Templates. Команда runas К радости поклонников операционной системы UNIX в состав Win 2000 включена собственная команда переключения привилегий пользователей runas (аналог su). Команда Run as теперь доступна через контекстное меню. |
Резюме В этой главе мы лишь слегка коснулись многочисленных изменений, относящихся к Win 2000, однако проверка программ взлома для NT 4 показала существенное повышение безопасности в новой версии операционной системы. Вселяет оптимизм также добавление распределенной политики безопасности в Win 2000. Однако окончательные выводы о защищенности этой операционной системы можно будет сделать только в процессе ее широкого использования. Для полного выявления всех брешей системы NT 4 понадобилось несколько лет. Примерно столько же времени потребуется и для досконального изучения Win 2000. Приведем несколько советов, основанных на материале этой главы, главы 5, а также материалах многочисленных ресурсов Internet по безопасности Win 2000.
|