Глава 6. Уязвимость Windows 2000



Глава 6. УЯЗВИМОСТЬ WINDOWS 2000




1. Уязвимость Windows 2000



Уязвимость WINDOWS 2000


Осенью 1999 года компания Microsoft открыла доступ через Internet к нескольким тестовым серверам с бета-версией операционной системы Windows 2000 Server на узле Windows2000test.com, предлагая всем желающим попытаться взломать этот программный продукт.
Несколько недель спустя, после многочисленных успешных атак со стороны хакеров, этот эксперимент был отменен. Правда, следует отметить, что хакерам не удалось достичь уровня операционной системы. Они лишь обнаружили бреши в приложении Guestbook, основанном на использовании Web-технологии и работающем "на переднем крае" операционной системы. Аналогичные результаты были получены в процессе проведения других подобных тестов.
Такие тесты включают множество параметров, и мы не станем обсуждать их реальные возможности по выявлению преимуществ системы безопасности Windows 2000 по сравнению с конкурирующими программными продуктами. Однако в результате такого тестирования совершенно очевидно одно: правильно сконфигурированные серверы под управлением Windows 2000 на уровне операционной системы столь же надежны, как любые другие серверные платформы. Наиболее уязвимым местом этой операционной системы является уровень приложений, посредством которого можно обойти системные средства обеспечения безопасности.
Защищенность Windows 2000 подкреплена множеством новых средств обеспечения безопасности, встроенных в операционные системы Windows нового поколения. К ним относятся реализация собственного протокола IP Security (IPSec), кодирующая файловая система EPS (Encrypting File System), возможность выбора политики безопасности для групп пользователей, шаблоны защиты Security Templates, средство конфигурирования и анализа политики безопасности, а также возможность централизованного удаленного управления на основе использования сервера удаленной аутентификации RADIUS (Remote Authentication Dial-In User Service) и многое другое. При этом бросается в глаза соответствие всех средств обеспечения безопасности общепризнанным стандартам, что свидетельствует об изменении общеизвестной сепаратистской политики компании Microsoft в вопросах обеспечения безопасности.
Перечисленные технологии обеспечили пользователям NT долгожданные возможности, но достаточно ли корректно они реализованы? Радикальные изменения в Windows 2000, особенно касающиеся нового средства Active Directory (AD), заставят сетевых администраторов изрядно потрудиться при переходе на новую операционную систему. И как показывает опыт, из-за неполной реализации протоколов и проблем совместимости с более ранними версиями говорить о полной безопасности операционной системы можно будет лишь после появления сервисного пакета Service Pack 3.
Во время написания этой книги появился только сервисный пакет Service Pack 1. В нем устранено порядка 17 ошибок, связанных с вопросами безопасности (на самом деле большинство из них касается Internet Information Server (US) и Internet Explorer (IE)). Этот сервисный пакет можно найти по адресу http: //www.microsoft.com/technet/security/w2kspl.asp. В данной главе будут рассмотрены лишь наиболее важные проблемы, связанные с первым сервисным пакетом. При этом обсуждение будет проводиться в соответствии с описанной выше стандартной методологией атак, включающей в себя следующие этапы: предварительный сбор данных, сканирование, инвентаризацию, проникновение (penetrate), выведение из строя служб (при желании), расширение привилегий, извлечение данных (pilfer), отслеживание деятельности и выявление изъянов процесса инсталляции (install back doors). В этой главе будут кратко затронуты лишь первые этапы стандартной атаки, а именно предварительный сбор данных, сканирование и инвентаризация, о которых шла речь в первых трех главах этой книги.

Материал этой главы основывается на информации, изложенной в разделах главы 3, посвященных вопросам инвентаризации операционной системы Windows NT/2000, а также в главеб, поэтому настоятельно рекомендуем прочитать эти главы, прежде чем приступать к изучению настоящей главы.

В процессе обсуждения будут отмечены многие новые возможности обеспечения безопасности, включенные в Windows 2000. Эта новая функциональность поможет системным администраторам избежать многих из описанных ниже проблем.


2. Предварительный сбор данных



Предварительный сбор данных


Как упоминаюсь в главе 1, большинство злоумышленников стараются получить максимум информации, не обращаясь напрямую к интересующему их серверу. Основным источником для предварительного сбора информации является система доменных имен DNS (Domain Name System) — стандартный протокол Internet, обеспечивающий преобразование IP-адресов и осмысленных имен типа www.hackingexposed.com.

Перенос зоны DNS



Поскольку пространство имен активного каталога операционной системы Windows 2000 основывается на использовании системы доменных имен, компания Microsoft существенно обновила реализацию сервера DNS в Windows 2000 с целью обеспечения потребностей активного каталога. По умолчанию перенос зоны DNS возможен на любой удаленный узел, что является основным средством сбора предварительной информации. Более подробные сведения по этому вопросу содержатся в главе 3.

 Отключение переноса зоны



К счастью, реализация системы DNS для Windows 2000 допускает простую возможность ограничения переноса зоны, как описано в главе 3.


3. Сканирование



Сканирование


Операционная система Windows 2000 прослушивает список портов, многие из которых не были задействованы в Windows NT 4 и появились лишь в этой версии операционной системы. В табл. 6.1 приводится список некоторых портов, прослушиваемых по умолчанию контроллером домена Windows 2000. Каждый из них является потенциальной точкой входа в систему.

Список номеров портов TCP и UDP, используемых службами и программами компании Microsoft, можно найти в перечне ресурсов по адресу http://www.microsoft.com/windows2000/
library/resouces/reslcit/ samplechapters/default.asp. 

Таблица 6.1. Список портов, прослушиваемых по умолчанию контроллером домена Windows 2000

Порт
Служба
TCP 25
SMTP
TCP 21
FTP
TCP/UDP 53
DNS
TCP 80
WWW
TCP/UDP 88
Kerberos
TCP 135
RPC/DCE Endpoint mapper
UDP 137
Служба имен NetBIOS
UDP 138
Служба дейтаграмм NetBIOS
TCP 139
Служба сеансов NetBIOS
TCP/UDP 389
LDAP
TCP 443
HTTP поверх SSl/TLS
TCP/UDP 445
Microsoft SMB/CIFS
TCP/UDP 464
Kerberos kpasswd
UDP 500
IKE (Internet Key Exchange) (согласно протоколу IPSec)
TCP 593
HTTP RPC Endpoint mapper
TCP 636
LDAP поверх SSLДLS
TCP 3268
Глобальный каталог службы активных каталогов
TCP 3269
Глобальный каталог службы активных каталогов поверх SSL
TCP 3389
Терминальный сервер Windows

Контрмеры: отключение служб и блокировка портов



Наилучший способ предотвращения всевозможных атак — это блокировка доступа к этим службам как на уровне сети, так и на уровне отдельных компьютеров.
Внешние устройства контроля доступа к сети (переключатели, маршрутизаторы, брандмауэры и т.д.) нужно сконфигурировать таким образом, чтобы пресечь любые попытки доступа извне ко всем указанным портам, (Обычно это делается следующим образом. Отключаются все протоколы для всех доменов, а затем подключаются только некоторые службы для избранных доменов.) При этом, конечно, необходимо помнить об очевидных исключениях: порт 80 или 443 нужно оставить для работы Web-серверов. Ни один из этих портов не должен быть доступен за пределами сети, и лишь некоторые могут предоставляться для использования проверенными пользователями внутренних подсетей. Особенно это касается контроллера домена. На это есть две причины.

  •  В главе 3 было показано, как можно подключиться к портам TCP 389 и TCP 3268 через службу LDAP и глобальный каталог соответственно и получить данные с сервера.
  •  Как отмечалось в главе 3, служба сеансов NetBIOS Session Service, работающая через порт TCP 139, является одним из источников утечки информации и потенциального взлома сети под управлением Windows NT. Большинство действий, описанных в главе 5, выполняется исключительно через соединения по протоколу NetBIOS. Данные операционной системы Windows 2000 могут также быть получены через порт TCP 445.

He забудьте прочитать раздел " Отключение служб NetBIOS/SMB в Windows 2000" ниже в этой главе.
Имеет смысл также защитить порты, находящиеся в состоянии ожидания запросов, отдельных компьютеров. Такая "защита в глубину" значительно затрудняет возможность сетевых атак. Классический совет в этой связи сводится к завершению работы всех ненужных служб с помощью программы services.msc и их отключению. Особое внимание следует уделить котроллерам доменов под управлением Windows 2000: когда контроллеру домена делегируются права сервера (Server) или расширенного сервера (Advanced Server) с помощью команды dcpromo.exe, на нем автоматически устанавливаются служба активного каталога, DNS и сервер DHCP, а также открываются соответствующие порты. Контроллеры доменов — это важнейшие компоненты сети, поэтому они требуют особого обращения. Большинство приложений, файловые службы и службы печати лучше устанавливать на других компьютерах. Стремление к минимуму — первый принцип безопасности.
Чтобы ограничить доступ к портам отдельных компьютеров, можно использовать проверенные временем фильтры для протокола TCP/IP. Доступ к этим параметрам можно получить через вкладку Options диалогового окна, открываемого с помощью команды Network and Dial-up Connections>Properties>lnternet Protocol (TCP/IP) Properties>Advanced. Однако здесь сохранились старые недостатки. Фильтры протокола TCP/IP применяются сразу ко всем адаптерам. Их установка приведет к невозможности загрузки данных, инициированной даже легитимными соединениями, и сделает невозможным обычный просмотр Web-страниц в броузере системы. Кроме того, для корректного вступления в силу внесенных изменений требуется перегрузить систему.

Проведенное авторами тестирование 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 они будут блокировать загрузку информации, инициированную даже допустимыми соединениями (если не будут открыты все порты с более высокими номерами).
Фильтры IPSec можно создать с помощью аплета Administrative Tools^Local Security Policy (secpol .msc). Щелкните правой кнопкой на элементе IPSec Policies On Local Machine в левой панели окна, а затем выберите из контекстного меню команду Manage IP Filter Lists And Filter Actions.
Для управления фильтрами IPSec автор книги предпочитает использовать утилиту командной строки ipsecpol.exe. Ее можно применять при создании сценариев, а, кроме того, пользоваться ею гораздо проще, чем утилитой управления политикой IPSec с графическим интерфейсом. Утилиту ipsecpol.exe можно найти по адресу http:/www.microsoft.com/technet/security/tools.asp среди средств конфигурирования безопасности Windows 2000 Internet Server. Следующие команды утилиты ipsecpol. ехе позволяют оставить открытым на данном компьютере только порт 80.

ipsecpol \\имя_компыотера -w REG -p "Web" -о
ipsecpol \\имя_компьютера -х -w REG -p "Web"-r
"BlockAll" -n BLOCK -f 0+* ipsecpol
\\имл_комльютера -x -w REG -p "Web" -r
"OkHTTP" -n PASS -f 0:80+*::TCP

Две последние команды создают политику IPSec под названием Web, включающую два правила фильтрации. Первое из них, BlockAll, блокирует все протоколы поступающих и исходящих сообщений для данного компьютера и всех других компьютеров, а второе, OkHTTP, разрешает трафик через порт 80 данного и всех остальных компьютеров. Если нужно разрешить использование утилиты ping, или других программ, работающих на базе протокола ICMP (чего мы настоятельно не рекомендуем делать без особой необходимости), то в политику Web можно включить такое правило.
ipsecpol \\имя_компыотера -х -w REG -p "Web" -r "OkICMP" -n PASS -f 0+*::ICMP
 В этом примере политика устанавливается для всех адресов, однако ее можно легко модифицировать на случай одного IP-адреса с помощью ключа -f (табл. 6.2) и направить действие этого правила на один интерфейс. Если система сконфигурирована с помощью этого примера, то при сканировании портов будет виден только порт 80. После отключения политики все порты снова станут доступными.
Описание всех аргументов, использованных в примере, приводится в табл. 6.2 (для получения полной информации о возможностях утилиты ipsecpol запустите команду ipsecpol -?).

Таблица 6.2. Параметры утилиты ipsecpol, используемые для фильтрации трафика через компьютеры под управлением Windows 2000

Параметр
Описание
-w REG
Переводит утилиту ipsecpol в статический режим (static mode), при котором выполняется запись политики в указанное местоположение (в отличие от используемого по умолчанию динамического режима, который действует только во время функционирования службы Policy Agent). Параметр REG определяет, что политика будет записана в системный реестр и подходит для отдельно стоящих Web-серверов (другой параметр, DS, позволяет записывать политику в каталог)
-P
Задает произвольное имя (например, web) для данной политики. Если уже существует политика с таким именем, то данное правило добавляется к ней. Например, в третьей строке к политике Web добавляется правило ОШТТР
-r
Задает произвольное имя для правила. Если политика уже включает правило с таким именем, то новое правило его заменит
-n
В статическом режиме может принимать одно из трех значений: BLOCK, PASS и IN PASS. Конкретные значения параметра описываются ниже
BLOCK
Исключает остальные значения параметра -п и создает фильтры блокировки. Эта команда аналогична выбору переключателя Block в программе управления политикой IPSec с графическим интерфейсом
PASS
Исключает остальные значения параметра -п и создает фильтры, обеспечивающие передачу данных через порты. Эта команда аналогична выбору переключателя Permit в программе управления политикой IPSec с графическим интерфейсом
-f
Задает список, состоящий из одного или нескольких IP-фильтров. Правила фильтрации задаются в следующем формате, получившем название спецификации фильтра (filterspec):
А . B . C . D/ маска: порт=А .B.C. D/
маска : порт:Ipprotocol

где в левой части равенства всегда задается адрес источника, а в правой — адрес получателя. Если знак = заменить на символ +, то будут созданы два зеркальных (mirrored) фильтра, по одному в каждом направлении. Маску и номер порта задавать необязательно. Если они не указаны, то в качестве маски подсети используется 255. 255. 255. 255, а в качестве номера порта — любой порт. Комбинацию А . в . C . D/ маска можно заменить следующими символами:
0 задает адрес локальной системы 
* обозначает произвольный адрес 
имя ONS (заметим, что множественное разрешение игнорируется).
Тип IP-протокола (например, ICMP) задавать необязательно. Если он не указан, то подразумевается любой IP-протокол. Чтобы задать конкретный IP-протокол, перед его названием необходимо точно указать номер порта или символ : :
-x
Необязательный параметр, активизирующий политику в случае ее записи в системный реестр локальной машины (он использовался в предыдущем примере при определении первого правила. По каким-то причинам этот параметр работает только при создании первого фильтра политики)

Необязательный параметр, отключающий политику в случае ее записи в системный реестр локальной машины
-o
Необязательный параметр, удаляющий политику, имя которой задано параметром -р. (Заметим, что при этом удаляются все аспекты указанной политики. Его не следует использовать, если другие политики ссылаются на объекты данной политики)

Следует отметить, что фильтры 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\
Services\IPSEC\NoDefaultExempt
Type: DWORD
Max: 1
Min: 0
Default: 0

Трафик IKE всегда был привилегированным, и параметры системного реестра на него не влияли. Если же этот параметр реестра принимает значение 1, то все "льготы" для протоколов Kerberos и RSVP отменяются по умолчанию.

Автор высказывает благодарность Майклу Ховарду (Michael Howard) из группы обеспечения безопасности Windows 2000 за помощь в изучении команды ipsecpol и нового параметра системного реестра.

Поскольку утилита ipsecpol использует синтаксис командной строки, с ней нужно обращаться очень осторожно. В рассмотренном выше примере предполагается, что список фильтров обрабатывается сверху вниз. Простое изменение порядка следования записей в списке может привести к неправильной работе фильтров. Кроме того, утилита не позволяет задать диапазон портов для источника или назначения. Так что несмотря на значительные улучшения, обеспечиваемые фильтрами IPSec по сравнению с фильтрами TCP/IP, с ними нужно обращаться очень аккуратно. Иначе желание блокировать порты так и останется лишь желанием. Отметим еще несколько особенностей, выявленных процессе интенсивного тестирования утилиты ipsecpol.

  •  Для отмены политики иногда приходится отключать ее с помощью ключа -у до или после ее удаления с использованием параметра -о. Автору приходилось сталкиваться с ситуацией, когда даже удаленная политика продолжает действовать до момента ее отключения.
  •  При изменении политики необходимо пользоваться либо только утилитой командной строки ipsecpol, либо исключительно программой с графическим интерфейсом. Если политика была создана с помощью программы ipsecpol, а затем отредактирована в другой программе, то при ее работе возможны сбои и бреши в защите.
  •  Не забывайте удалять ненужные фильтры, чтобы избежать конфликтов. Эту задачу лучше выполнять с помощью программы с графическим интерфейсом, поскольку в ней отображается список всех существующих фильтров.



4. Инвентаризация



Инвентаризация


В главе 3 было показано, как из операционной системы Windows NT 4.0 можно получить сведения об учетных записях, совместно используемых ресурсах и другую информацию. Было показано, что служба NetBIOS передает эти данные анонимным пользователям, проникающим в систему через злополучный нулевой сеанс. Там же было указано, что служба активных каталогов предоставляет эту информацию неаутентифицированным злоумышленникам. Здесь мы не будем снова описывать эти виды атак, однако отметим, что Windows 2000 обеспечивает некоторые новые возможности по решению проблем со службами NetBIOS и SMB.
Одним из наиболее существенных новшеств Windows 2000 является возможность обойтись без протокола NetBIOS. Как было показано в главе 3, службу NetBIOS, работающую поверх протокола TCP/IP, можно отключить с помощью команды Properties of Network&Dial-up Connection^Properties of Internet Protocol (TCP/IP)c*Advanced(KHonKa)[=> WINS(BKnaflKa)=>Disable NetBIOS Over TCP/IP.
Однако не все так просто. Следует отметить, что, несмотря на отключение транспортного протокола NetBIOS, Windows 2000 при этом продолжает использовать протокол SMB поверх TCP (порт 445) для совместного использования файлов (см. табл. 6.1).
Таким образом, компания Microsoft сыграла злую шутку с неопытными пользователями, которые, отключив службу NetBIOS поверх TCP/IP (с помощью вкладки WINS диалогового окна свойств соединения для локальной сети) будут считать, что все проблемы с нулевым сеансом решены. На самом деле это не так. Такое отключение закрывает лишь порт TCP 139, но не 445. На первый взгляд может показаться, что этого достаточно для решения проблем с нулевым сеансом, поскольку злоумышленники, не установившие сервисный пакет Service Pack 6a, не могут подключиться через порт 445 и открыть нулевой сеанс. Однако клиентам Windows 2000 и пользователям более ранней операционной системы с сервисным пакетом Service Pack 6a такая возможность доступна. Следовательно, они могут выполнять инвентаризацию, использовать команды user2sid/sid2user и выполнять другие опасные действия, подробно описанные в главе 3. Поэтому не следует заблуждаться по поводу наличия новых команд в интерфейсе и терять бдительность.

Отключение служб NetBIOS/SMB в Windows 2000



К счастью, можно отключить и порт 445, однако эта операция выполняется отдельно для каждого конкретного адаптера (подобно операции отключения порта 139 в NT 4). При этом сначала необходимо найти соответствующую вкладку (возможно, она переместилась в новое, никому неизвестное местоположение — еще один недостаток графического интерфейса). Теперь ее можно открыть с помощью аплета Network and Dial-up Connections, выбрав команду Advanced>Advanced Settings, как показано на следующем рисунке.
При сбросе флажка File and Printer Sharing for Microsoft Networks (рис. 6.1) доступ к портам 139 и 445 через нулевое соединение будет отключен (а за одно будет отключена и возможность совместного использования файлов и принтеров). Для вступления в действие этих изменений перезагрузка не требуется (компанию Microsoft следует поблагодарить за полученную наконец возможность установки многих сетевых параметров без перезагрузки компьютера). Это по-прежнему наилучший способ конфигурирования внешних интерфейсов сервера, соединенного с Internet.



Рис. 6.1. Отключение служб NetBIOS и SMB/CIFS, обеспечивающих совместное использование файлов и принтеров, в диалоговом окне Advanced Settings аплета Network and Dial-up Connections

Порт 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.


1.gif

Изображение: 

5. Проникновение



Проникновение


Как будет видно из дальнейшего изложения, новая версия операционной системы Windows 2000 подвержена всем тем же типам удаленных атак, что и NT 4.


6. Получение пароля NetBIOS или SMB



Получение пароля 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.


7. Получение хэш-кодов паролей



Получение хэш-кодов паролей


Утилита перехвата пакетов SMB L0phtcrack, описанная в главе 5, по прежнему может эффективно перехватывать и взламывать хэш-коды диспетчера локальной сети LM и NTLM, передаваемые между клиентами нижнего уровня (NT 4 и Win9x) и сервером Windows 2000. Новая процедура регистрации по протоколу Kerberos предусматривает выполнение идентификации средствами NTLM, если на одном из концов соединения протокол Kerberos не поддерживается, что и происходит между клиентом Windows 2000 и сервером NT 4 или Win9x
Интересным видом атаки для Windows 2000 яачяется попытка отключения протокола идентификации Kerberos (например, "парализуя" пакетом SYN порт TCP 88 контроллера домена, используемый протоколом Kerberos) с целью вынудить клиентов использовать процедуры аутентификации для NT 4, уязвимые для перехвата пакетов SMB.


8. Атаки против IIS 5



Атаки против 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.
Атака Translate: f состоит в отправке искаженного запроса GET протокола HTTP на выполнение серверного сценария или обработку другого файла аналогичного типа (например, файлов с расширением .ASP (Active Server Pages) или global.asa). Эти файлы предназначены для выполнения на сервере, а не на клиентском компьютере. Видоизменение запроса приводит к тому, что Internet Information Server направляет содержимое файла удаленному клиенту, а не выполняет его с использованием соответствующего механизма обработки сценариев. Ключевым свойством искаженного запроса GET для протокола HTTP является наличие специального заголовка, завершающегося выражением Translate: f, и использование адреса URL, завершающегося символом обратной косой \. Ниже приводится пример такого запроса (строка [CRLF] означает символ возврата каретки/перевода строки, который в шестнадцатеричной системе счисления имеет код ODOA). Обратите внимание на обратную косую после имени файла global .asa и заголовок Translate: f.

GET/global.asa\ HTTP/1.0
Host: 192.168.20.10
User-Agent: SensePostData
Content-Type: application/x-www-form-urlencoded
Translate: f
[CRLF]
[CRLF]

Если путем конвейерной обработки текстовый файл с этой информацией направить (с помощью утилиты netcat) на уязвимый сервер IIS, то в командной строке отобразится содержимое файла /global, as a:

D:\type trans.txtI nc -nw 192.168.234.41 80
(UNKNOWN) [192.168.234.41] 80 (?) open
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Wed, 23 Aug 2000 06:06:58 GMT
Content-Type: application/octet-stream
Content-Length: 2790
Etag: "0448299fcd6bf1:bea"
Last-Modified: Thu, 15 Jun 2000 19:04:30 GMT
Accept-Ranges: bytes
Cache-Control: no-cache
<!-Copyright 1999-2000 bigCompany.com—>
<object RUNAT=Server SCOPE=Session ID=fixit
PROGID="Bigco.object"x/object>
("ConnectionText") = "
DSN=Phone;UID=superman;Password=test;"
("ConnectionText") = "
DSN=Backend;UID=superman;PWD=test;"
("LDAPServer") = "LDAP://Idap.bigco.com:389"
("LDAPUserlD") = "cn=Admin"
("LDAPPwd") = "password"

Мы слегка модифицировали содержимое файла global.asa, чтобы продемонстрировать наиболее характерную информацию, которую может извлечь из него взлом-шик. К сожалению, на многие узлах до сих пор встраивают пароли приложений в ASP и ASA-файлы, повышая тем самым вероятность последующего проникновения хакеров в свои пенаты. Как видно из этого примера, взломщик, вскрывший содержимое файла global.asa, получает в свое распоряжение пароли многих серверов нижнего уровня, включая систему LDAP.
Готовые сценарии взлома на языке Perl, упрощающие описанную выше процедуру использования команды netcat, можно найти в Internet (авторы этой книги пользовались сценариями tarans.pl Ройлофа Темминга (Roelof Temmingh) и srcgrab.pl Смайлера (Smiler)).

Корни проблемы Translate: f - протокол WebDAV и канонизация



При первом выявлении этой проблемы вокруг ее причин разгорелись бурные споры. Официальная позиция компании Microsoft сводилась к тому, что причиной является некорректное поведение внутреннего обработчика файлов в ядре US (что в прошлом действительно приводило к некоторым проблемам). Эта позиция была обнародована в разделе MSOO-58, посвященном вопросам безопасности по адресу http: //www.microsoft.com/technet/security/bulletin/fq00-058.asp.
Однако Даниель Дочкал (Daniel Docekal) считает, что причиной проблемы является протокол WebDAV (Web Distributed Authoring and Versioning) — протокол обеспечения стандартов Internet, поддерживаемый преимущественно компанией Microsoft и позволяющий удаленным авторам создавать, удалять, перемещать, находить и изменять атрибуты файлов и каталогов на Web-серверах (чувствуете, с какими проблемами это может быть сопряжено?). Протокол WebDAV Web-сервером IIS 5 поддерживается по умолчанию. И хотя заголовок HTTP Translate: не описан в спецификации протокола WebDAV (RFC 2518) или других известных авторам документах, Даниель Дочкал утверждает, что встречал ссылку на него в библиотеке сети MSDN компании Microsoft. По его словам, там рассказывалось об использовании этого заголовка для получения файлового потока путем указания значения F (false) в поле заголовка Translate.
В процессе обсуждения этого вопроса с группой обеспечения безопасности продуктов Microsoft выяснилось, что это действительно так. По их словам протокол WebDAV реализован в динамической библиотеке httpext.dll в виде фильтра ISAPI, интерпретирующего Web-запросы до их передачи ядру IIS. Заголовок Translate: f предполагает обработку этого запроса, а обратная косая вводит фильтр в заблуждение, и он направляет этот запрос непосредственно операционной системе. Система Win 2000 благополучно возвращает этот файл системе злоумышленника, а не выполняет его на сервере (как положено по всем правилам).
Здесь мы вплотную подошли к вопросу канонизации (canonicalization). Это понятие описано специалистами компании Microsoft в разделе MSOO-57 по адресу http://www.microsoft.com/technet/security/bulletin/fq00-057.asp. Там говорится следующее: "Канонизация — это процесс приведения различных эквивалентных форм имени к единому стандартному имени, называемому каноническим именем (canonical name) . Например, на данном компьютере имена c:\dir\test.dat и . . \. . \test.dat могут ссылаться на один и тот же файл. Канонизация — это процесс приведения таких имен к виду c:\dir\test.dat."
Использование одной из различных эквивалентных форм канонического имени файла может привести к обработке запроса другими средствами IIS или операционной системы. Хорошим примером проблемы канонизации является вскрытие исходного кода с помощью выражения : :$DATA. Если к некоторому файлу обратиться по специальному имени, то файл будет возвращен броузеру в некорректном виде (Более подробная информация об этом содержится в главе 15).
Подобным образом работает и заголовок Translate: f. Значение f вводит службу WebDAV в заблуждение, в результате чего файловый поток возвращается броузеру.

Контрмеры: решение для проблемы Translate: f



Чтобы уменьшить риск, связанный с проблемой Translate: f и другими попытками вскрытия кода, достаточно просто иметь в виду, что любые исполняемые на сервере файлы могут быть видимы пользователям Internet и никогда не хранить в них секретную информацию. Неизвестно, связано ли это с участившимися попытками вскрытия кода, но компания Microsoft предлагает такой подход в качестве "обычной рекомендации по безопасности" в разделе FAQ MS00-58, уже упомянутом ранее.
Еще один способ решения этой проблемы сводится к установке сервисного пакета Service Pack 1 к системе Win 2000, упомянутого в том же разделе FAQ. При его установке IIS будет интерпретировать серверные исполняемые сценарии и схожие типы файлов с помощью соответствующего механизма обработки сценариев на сервере независимо от типа заголовка.
Как указывает Расе Купер (Russ Cooper) (бюллетень NTBugtraq), проблема Translate: f существенно связана с версией сервера IIS. Например, модуль обновления для 1IS4 успешно решает эту проблему. Таким образом, решение указанной проблемы сводится к следующему.
1. Аналогичная проблема для IIS4.0/IIS5.0, а также проблема размещения виртуальных каталогов на совместно используемых дисках с именами UNC, решается с помощью MSOO-019. Таким образом, после установки сервисного пакета системы с сервером IIS 4 становятся неуязвимыми для таких атак.
2. Системы на базе IIS 5.0 (с применением MSOO-019 или без) необходимо обновить с помощью сервисного пакета SP1 или MS00058.
Заметим также, что если для виртуального каталога IIS, содержащего нужный файл, установлено разрешение, отличное от Read, то при атаке Translate: f будет возвращена ошибка "HTTP 403 Forbidden" (даже если установлен режим Show Source Code). Если же для виртуального каталога, содержащего указанные файлы установлено разрешение Read, то эти файлы могут быть доступны взломщику.
Надеемся, этот экскурс в страну 1IS будет полезен читателю и поможет осознать один из способов проникновения в операционную систему. Более подробная информация об атаках на IIS содержится в главе 15.


9. Удаленное переполнение буфера



Удаленное переполнение буфера


В главе 5, рассматривался вопрос переполнения буфера для системы Windows NT. В настоящее время выявлено несколько случаев переполнения буфера приложений, работающих под управлением NT/2000, но не самой операционной системы.


10. Отказ в обслуживании



Отказ в обслуживании


Если большинство серьезных атак против операционной системы 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

Параметр в разделе HKLM\Sye\CCS\ Services
Рекомендуемо значение
 Описание
Tcpip\ Parameters \ SynAttackProtect
2
Этот параметр позволяет настраивать процесс передачи подтверждений SYN-ACK и обеспечивает более быстрый переход в режим ожидания при выявлении атаки SYN. Выявление этой атаки базируется на текущих значениях параметров TcpMaxPortsExhausted, TCPMaxHalfOpen и TCPMaxHalfOpenRetried. Значение 2 обеспечивает наилучшую защиту от SYN-атак, но может привести к проблемам с соединениями, характеризующимися высокой задержкой. Кроме того, если этот параметр принимает значение 2, то не учитываются следующие опции сокетов: переменный размер окна (RFC 1323) и настройка параметров TCP для каждого адаптера (размер окна)
Tcpip\Parameters\ EnableDeadGWDetect
0
Если этот параметр принимает значение 1 , то протокол TCP может выявлять неактивные шлюзы и в случае трудностей с несколькими соединениями переключаться на резервный шлюз. Резервные шлюзы можно определить в разделе Advanced диалогового окна конфигурации протокола TCP/IP аплета Network панели управления. Если этот параметр принимает значение 0, то взломщик не может спровоцировать переключение на менее желательные шлюзы
Tcpip\Parameters\ EnablePMTUDiscovery
0
Если этот параметр принимает значение 1 (true), то протокол TCP пытается определить максимальную единицу передачи MTU (Maximum Transmission Unit) для каждого соединения с удаленным узлом. Определив значение MTU и ограничив этим значением размер сегментов TCP, можно устранить фрагментацию на маршрутизаторах, соединяющих сети с различными значениями MTU вдоль пути следования пакетов. Фрагментация может приводить к пробкам в сети. Если этот параметр принимает значение 0, то значение MTU принимается равным 576 байт для всех соединений, инициированных извне локальной подсети. Это препятствует попыткам хакеров изменить значение MTU на меньшее с целью переполнения стека
Tcpip \Parameters \Keep AliveTime
300000 (5минут)
Этот параметр отвечает за частоту отправки контрольных пакетов (keep-alive), проверяющих, не разорвано ли соединение, находящееся в режиме ожидания. Если удаленная система все еще достижима и функционирует в нормальном режиме, то она направляет подтверждение. Контрольные пакеты по умолчанию не отправляются. Это свойство можно включить для данного соединения с помощью соответствующего приложения. Данные параметры являются глобальными, т.е. применяются для всех интерфейсов. Их значения могут оказаться слишком малыми для адаптеров, используемых в целях управления или резервирования
Tcpip\Parameter \Interfaces \ <интерфейс>NoName ReleaseOnDemand
0 (false)
Этот параметр определяет, следует ли компьютеру возвращать свое имя NetBIOS в ответ на запрос Name-Release из сети. Значение 0 предотвращает атаки, направленные на получение имени NetBIOS (см. бюллетень Microsoft Security Bulletin MSOO-047). До конца не ясно, к какому результату могут привести подобные атаки при отключении протоколов NetBIOS/SMB/CIFS, как описано выше в этой главе
Tcpip \ Parameters\Interfaces\ <интерфейс> РеrfоrmRouterDiscovery
0
От значения этого параметра зависит, будет ли Windows NT/2000 выполнять поиск маршрутизатора согласно спецификации RFC 1256 для каждого интерфейса в отдельности. Значение 0 предотвращает попытки атак с использованием ложных пакетов от ложных маршрутизаторов. Для определения, какой интерфейс соответствует сетевому адаптеру, можно использовать значение ключа TcpipXParameters \Adapters

Более подробная информация об этих параметрах и описание параметра SynAttackProtect содержится в статье Q142641 базы знаний компании Microsoft.

Генерация состояния DoS сервера ч.,, Telnet Win 2000



Эта простая атака, придуманная в лаборатории SecureXpertLabs (http://www. secure xpert com), предполагает отправку бинарной строки, состоящей из нулей, службе Telnet Microsoft (которая в Win 2000 по умолчанию отключена). Это приводит к выводу службы из строя и автоматическому перезапуску (если таковой предусмотрен). При многократном повторении попыток автоматического перезапуска (когда их число достигает максимально допустимого значения) служба отключается насовсем.
Эта атака легко реализуется с помощью команды netcat (см. главу Ь) в операционной системе Linux, nc target.host 23 < /dev/zero

Модуль обновления для сервера 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. Это тоже приводит к конфликту и невозможности дальнейшего использования имени.
Сэр Дастик (Sir Dystic) написал программу взлома под названием nbname, с помощью которой можно отправить пакет "NBNS Name Release" всем компьютерам, зарегистрированным в таблице имен NetBIOS, и тоже вызвать аналогичную проблему. Хакеры локальных сетей (NBNS не поддерживает маршрутизацию) считают эту программу достаточно мощным средством реализации атак DoS.

 Контрмеры против атаки DoS на сервер имен NetBIOS



К сожалению, протокол NetBIOS не документирован, поэтому авторы не могут гарантировать надежность следующего рецепта. Компания Microsoft разработала ключ системного реестра, предотвращающего подтверждение сообщения Name Release со стороны сервера NBNS. Решение проблемы с сообщением "Name Conflict состоит в том что это сообщение обрабатывается только на этапе регистрации. Таким образом, компьютер остается уязвимым только в это время. Соответствующий модуль обновления и более подробная информация содержится по адресу http: //www.microsoft.com/
technet/security/bulletin/MS00-047.asp
. Этот модуль обновления не вошел в SP1 и может применяться как до, так и после установки сервисного пакета.
Более надежное решение, конечно, состоит в отказе от использования службы NetBIOS и, как следствие, полном предотвращении подобного хулиганства. Кроме того, безусловно, необходимо отключить UDP-порт 137 для доступа извне.


11. Расширение привилегий



Расширение привилегий


Если взломщик смог добраться до учетной записи пользователя в системе 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.
Любой интерактивный пользователь Win 2000 (включая удаленных пользователей терминального сервера) может спрогнозировать имя канала, инсталлировать его и таким образом запустить программу с системными привилегиями. Если к этому именованному каналу добавить посторонний код, то он тоже получит системные привилегии и сможет выполнить практически любые действия в локальной системе (например, добавить текущего пользователя в группу администраторов).
Тестовый код, написанный хакером Мачо (Масео), несколько менее эффективен: он находит пользователя с относительным идентификатором RID 500 (более подробная информация об идентификаторах RID содержится в главе 5), т.е. учетную запись администратора независимо от того, была ли она переименована, и выводит на экран его пароль в зашифрованном виде. Так работает приведенная ниже программа взлома main. Однако сначала покажем, что текущий интерактивный пользователь является членом группы операторов резервного копирования Backup Operators, запустив утилиту whoami.

C:\>whoami /groups
[Group 1] = "Everyone"
[Group 2] = "BUILTIN\Backup Operators"
[Group 3] = "LOCAL"
[Group 4] = "NT AUTHORITYMNTERACTIVE"
[Group 5] = "NT AUTHORITYXAuthenticated Users"
G:\>main
The ClipBook service is not started.
More 'help is available by typing NET HELPMSG 3521.
Impersonating: SYSTEM Dumping SAM for RID 500 ...
F:Ox020001000000000000000000000000000000000000COO.
V:0x00000000a800000002000100a80000001a000000000c4.

Обратите внимание, что эта программа взлома для выполнения своих губительных действий использует учетную запись SYSTEM. Теперь хакер может взломать пароль администратора и зарегистрироваться в системе. (Напомним, что при наличии системных привилегий это не составляет труда. Гораздо сложнее "пробраться" в группу администраторов.)

Контрмеры против использования именованных каналов



Компания Microsoft выпустила модуль обновления, изменяющий способ создания и размещения именованных каналов диспетчером Win 2000 Service Control Manager (SCM). Его можно найти по адресу http://www.microsoft.com/technet/security/ bulletin/MS00-053 .asp. Этот модуль обновления не вошел в сервисный пакет SP1 и может применяться как до, так и после установки этого пакета.
Привилегии интерактивных учетных записей конечно же необходимо жестко ограничить в любой системе, содержащей конфиденциальные данные, поскольку в противном случае задачи хакера значительно облегчаются. Чтобы проверить права интерактивных учетных записей в системе Windows 2000, запустите аплет Security Policy (либо для локальной политики либо для политики групп), найдите элемент User Rights Assignment в группе Local Policies и ознакомьтесь с тем, как выделяются права при локальной регистрации.
В Win 2000 появилась новая возможность отменять для некоторых групп или пользователей действие многих привилегий. Например, как видно из рисунка, возможность локальной регистрации отменяется путем выбора политики Deny logon locally.


По умолчанию группа users и учетная запись Guest обладают правом локальной регистрации в системе Win 2000 Professional и на автономных серверах Win 2000 Server. Права пользователей контроллера домена ограничены более жестко благодаря специальной используемой по умолчанию политике (правами локальной регистрации обладают все группы операторов). Мы рекомендуем отменить это право для группы users и учетной записи Guest и строго следить за тем, кому предоставляются такие привилегии.

 Нарушение доступа к рабочим станциям



Большинство администраторов Windows никогда не слышали о рабочих станциях в контексте одного из наиболее загадочных разделов программирования для Windows. Модель безопасности Win 2000 определяет иерархию контейнеров, предназначенных для разграничения функций зашиты между различными процессами. В этой иерархии объекты упорядочены от общего к частному: сеанс, рабочая станция, рабочий стол. При этом сеанс содержит одну или несколько рабочих станций, которые, в свою очередь, могут включать один или несколько рабочих столов. В рамках этой концепции сфера действия процессов ограничена рабочей станцией, а потоки одного процесса работают с одним или несколькими рабочими столами. Однако по каким-то причинам эта концепция не была реализована в исходной версии Win 2000. При некоторых условиях процесс с более низкими привилегиями, работающий на одном из рабочих столов, в рамках одного сеанса мог получать информацию от рабочего стола другой рабочей станции.
Следствием этого явилась возможность для злоумышленников интерактивно зарегистрироваться в системе Win 2000 и взаимодействовать с процессами, работающими в рамках этого же интерактивного сеанса. (Заметим, что при этом нельзя взаимодействовать с другими пользователями терминального сервера, поскольку они работают в отдельных сеансах.) Взломщики также могут создать процесс на другой рабочей станции. Однако до конца не ясно, какие действия они могут предпринять, даже если созданный ими процесс обладает системными привилегиями. Хакеры, как минимум, могут считывать вводимую с клавиатуры и выводимую на экран информацию.

Контрмеры против нарушения доступа к рабочим станциям



Поскольку эта проблема связана с некорректной реализацией модели безопасности компанией Microsoft, то и в ее решении придется положиться на модуль обновления этой компании. Такой модуль, обеспечивающий корректное разделение процессов для различных рабочих столов, можно получить по адресу http://www.microsoft.com/technet/
security/bulletin/ms00-020.asp.
Кроме того, он вошел в состав сервисного пакета SP1.
Еще один полезный совет сводится к ограничению привилегий интерактивной учетной записи (см. приведенное выше описание проблемы с именованными каналами).
Эта проблема наделала много шума и обсуждалась даже в бюллетене NTBugtraq (http://www.ntbugtraq.com), однако она не принесла никакого вреда, хотя основные трудности, возможно, еще впереди. Следует отметить, правда, что к моменту выхода в свет этой книги ни о каких новых проблемах речь не шла. Все же советуем читателям периодически обращаться к Web-узлу компании Microsoft, посвященному вопросам безопасности.


2.gif

Изображение: 

12. Несанкционированное получение данных



Несанкционированное получение данных


После получения статуса администратора взломщики обычно стараются получить всю информацию, которую можно будет использовать для последующих вторжений.


13. Получение хэш-кодов паролей Win 2000



Получение хэш-кодов паролей Win 2000


Хакеры будут счастливы узнать, что хэш-коды диспетчера локальной сети LanManager (LM) хранится в предлагаемом по умолчанию местоположении Win 2000 для обеспечения совместимости с клиентами других версий (отличными от Windows NT/2000). Это приводит к проблемам, описанным в главе 5, для устранения которых можно использовать предложенные там же решения. Однако, к небольшому разочарованию хакеров, благодаря некоторым новым свойствам Win 2000 и, в первую очередь, алгоритму шифрования SYSKEY, стандартные приемы взлома паролей теперь неприменимы. Однако, как будет видно из следующих разделов, не все обстоит так благополучно.

 Получение базы данных SAM



На контроллерах доменов Win 2000 хэш-коды паролей хранятся в файле службы каталогов Active Directory (%windir%\NTDS\ntds .dit). При стандартной конфигурации этот файл занимает порядка 10 Мбайт и хранится в зашифрованном виде, поэтому взломщики вряд ли смогут заполучить его с целью последующего анализа.
Однако интерес для хакеров может представлять файл диспетчера учетных записей защиты SAM (Security Account Manager), содержащийся на компьютерах, не выступающих в роли контроллеров домена. Получение данных этого файла в операционной системе NT 4 не составляло большого труда. Местоположение файла SAM в новой версии операционной системы по прежнему определяется параметром %systemroot%\system32\config, а доступ к файлу блокируется операционной системой. Поэтому получение данных путем загрузки в режиме DOS по-прежнему возможно даже при использовании пятой версии файловой системы NTFS. Для реализации этой задачи можно воспользоваться утилитой NTFSDOS, расположенной по адресу http://www.sysinternals.com/. Местоположение резервной копии файла SAM определяется параметром %systemroot%\repair (этот файл называется SAM, а не ЗАМ._, как в NT 4). В ней содержится информация обо всех пользователях системы на момент ее установки. В приложение Microsoft Backup v.5 (файл ntbackup.exe) интегрирована утилита rdisk, поэтому с его помощью можно создать аварийный диск. При выборе команды Create Emergency Repair Disk открывается диалоговое окно, в котором нужно указать, следует ли копировать системный реестр в резервный каталог, как показано ниже.
При выборе этого режима весь системный реестр, включая улей SAM, копируется в папку %windir%\ repair\RegBack. Члены группы Users обладают правом чтения информации из этой папки, а члены группы Power Users — правом ее модификации, если диск отформатирован для использования файловой системы NTFS. Следовательно, только члены группы Power Users имеют расширенный доступ к этому файлу, а не все пользователи. Атаки, направленные на получение резервной копии файла SAM, также несколько осложняются тем, что этот файл зашифрован с использованием нового алгоритма шифрования SYSKEY, а на сегодняшний день механизм расшифровки таких файлов (отличный от pwdump2) неизвестен.


Фаил 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 в автономном режиме и таким образом изменить пароль любого пользователя системы.
Но это еще не все! Далее Питер предлагает программу изменения паролей в операционной системе NT chntpw, а также загрузочную дискету с операционной системой Linux, которую можно использовать для входа в систему NT/2000, изменения пароля администратора (даже если он был переименован), перезагрузки системы и регистрации в ней с новым паролем.
Дальше больше, Питер утверждает, что этот метод работает даже при использовании шифрования SYSKEY и даже в режиме защиты ключа SYSKEY паролем или его хранения на гибком диске.
"Минуточку ,— возразит читатель, — средство SYSKEY использует второй, 128-разрядный тип шифрования паролей на основе уникального ключа, который можно хранить в реестре, защитить паролем или записать на гибкий диск (см. главу 5). Как же можно изменить пароль, не зная системного ключа для его создания?"
Для таких читателей Питер рассказывает, как отключить режим SYSKEY. Более того, он обнаружил, что взломщику это не понадобится: при добавлении в файл SAM хэш-кодов старого образца (не использующих кодировку SYSKEY) они автоматически кодируются с помощью ключа SYSKEY после перезагрузки системы. Такой глубокий анализ достоин восхищения. Браво Питеру!
Питер отключает SYSKEY следующим образом (хотя можно этого и не делать).
1. Устанавливает для параметра HKLM\System\CurrentControlSet\Control\LsaXSecureBoot значение 0 (этот параметр может принимать следующие значения: 0 — системный ключ отключен, 1 — ключ хранится в реестре в открытом виде, 2 — ключ хранится в реестре и защищен паролем, 3 — ключ хранится на гибком диске).
2. Сбрасывает соответствующий флаг в бинарной структуре HKLM\SAM\Domains\AccountXF. Этот параметр недоступен в процессе работы операционной системы.
3. В Win 2000 задает для параметра HKLM\security\Policy\PolSecretEncryption Key\<default> значение 0.
Питер утверждает, что изменение значения лишь одного из двух первых параметров в операционной системе NT 4 даже при наличии сервисных пакетов вплоть до SP6 приводит к появлению предупреждения о несовместимости файла SAM с системными параметрами при завершении загрузки и повторному включению ключа SYSKEY. В Win 2000 в случае несовместимости значений трех перечисленных параметров сразу же выполняется перезагрузка и значение параметров изменяется на наиболее типичное.

Применение этих приемов может привести к повреждению файла SAM. Испытывайте их только на тестовых компьютерах с системой NT/2000 и будьте готовы к возможному отказу операционной системы. В частности, не выбирайте опцию Disable SYSKEY программы chntpw в Win 2000. По отзывам, это может привести к непредсказуемым результатам и даже необходимости полной переустановки системы. Описанный выше прием не позволяет изменять пароли пользователей на контроллере домена Win 2000, а относится лишь к изменению файлов SAM. Напомним, что на контроллере домена хэш-коды паролей хранятся в Active Directory, а не в файле SAM.

Контрмеры против chntpw



Если хакеры могут получить неограниченный физический доступ к системе, то противостоять им практически невозможно. Одна из слабых контрмер состоит в такой настройке параметров, при которой требуется привлечение ключа SYSKEY при каждой загрузке. Этого можно добиться, установив режим защиты системного ключа паролем или хранения его на гибком диске (в главе 5 описаны три модели использования ключа SYSKEY). Тогда даже после изменения пароля администратора для загрузки системы хакер должен будет ввести пароль SYSKEY. Конечно же, с помощью программы chntpw хакер может полностью отключить системный ключ, но тогда он рискует вывести из строя операционную систему, если это Win 2000.
С помощью готовой программы chntpw можно лишь полностью отключить SYSKEY. Спрашивается, а что если параметр SecureBoot будет принимать значение 1, а не 0, для локального хранения системного ключа? Это значение позволит отключить защиту SYSKEY паролем и режим его хранения на гибком диске, сводя на нет эти контрмеры. Исходный код программы chntpw можно найти на узле Питера. Можно также воспользоваться существующей утилитой chntpw в режиме редактирования реестра.
В условиях отсутствия надежной защиты ключа SYSKEY необходимо полагаться на традиционные методы защиты, такие как обеспечение физической безопасности важных систем, установки паролей на BIOS или отключения режима загрузки системы с гибкого диска.

Удаление пароля администратора, вместе с файлом 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.
Хотя описанная в статье процедура предполагает установку второй копии операционной системы NT или 2000 наряду с исходной, это требование не является обязательным, если взломщик преследует лишь цель удаления пароля учетной записи администратора. Можно просто удалить файл SAM.
Эта атака может иметь серьезные последствия при использовании шифрования файловой системы, описанные в следующем разделе.

Контроллеры доменов Win 2000 не пострадают от удаления файла SAM, поскольку на этих машинах хэш-коды паролей хранятся в Active Directory. Однако в указанной статье приводится механизм достижения аналогичного результата на контроллере домена, предполагающий установку второй копии Win 2000.

Предотвращение удаления файла SAM



Как отмечалось выше на уровне операционной системы существует единственный способ противостояния такой атаке. он заключается в защите паролем системного ключа или установке режима его хранения на гибком диске. Еще один эффективный способ противодействия атакам в автономном режиме- обеспечить физическую защищенность серверов, отключив режим загрузки со съемных носителей или установив пароль BIOS. Авторы советуют использовать все эти механизмы.


3.gif

Изображение: 

14. Шифрование файловой системы



Шифрование файловой системы


Одним из главных достижений Win 2000 в области безопасности является шифрование файловой системы. Средство EPS (Encrypting File System) — это система шифрования на основе открытого ключа, предназначенная для кодирования данных на диске в реальном времени и предотвращения несанкционированного доступа к ним. Компания Microsoft опубликовала статью, описывающую детали функционирования EPS (http://www.microsoft.com/windows200/
library/howitworks/security/encrypt.asp
). Система EFS позволяет закодировать файл или папку с помощью быстрого симметричного алгоритма шифрования на основе случайно сгенерированного ключа FEK (File Encryption Key) специально для этого файла или папки. В качестве алгоритма шифрования в исходной версии системы EFS используется расширенный стандарт шифрования данных DESX . Случайно сгенерированный ключ для шифрования файла сам, в свою очередь, кодируется с помощью одного или нескольких открытых ключей, включая ключ пользователя (в Win 2000 каждый пользователь получает пару ключей — открытый и закрытый) и агент восстановления ключа. Эти зашифрованные значения хранятся как атрибуты файла.
Процедура восстановления ключа применяется для восстановления информации в том случае, если сотрудник, зашифровавший данные, больше не работает в организации, а его ключ утерян. Чтобы обеспечить возможность восстановления зашифрованных данных в Win 2000 существует агент восстановления данных EFS. Без агента восстановления система EFS не работает. Поскольку ключ шифрования файла абсолютно не зависит от пары ключей пользователя, агент восстановления может дешифровать содержимое файла, не раскрывая закрытого ключа пользователя. По умолчанию агентом восстановления данных в системе служит локальная учетная запись администратора.
Хотя шифрование файловой системы во многих случаях может оказаться полезным, его не стоит применять для защиты данных разных пользователей одной рабочей станции друг от друга. Для защиты данных от других пользователей существуют списки управления доступом (ACL — Access Control List) файловой системы NTFS. Компания Microsoft рассматривает систему EFS как средство защиты от атак, направленных на получение данных в обход операционной системы (путем загрузки через другую операционную систему или использования средств доступа к жесткому диску от сторонних производителей), или для зашиты файлов, расположенных на удаленных серверах. В статье компании Microsoft, посвященной системе EFS. говорится буквально следующее: "Система EFS служит для обеспечения защиты информации от доступа из других операционных систем, т.е. от физического доступа к файлам раздела NTFS без соответствующих прав". Далее будет показано, насколько это утверждение соответствует истине.

Применение EFS



Систему EFS можно применять для шифрования любого файла или папки. Эту операцию можно выполнить в диалоговом окне свойств объекта с помощью кнопки Advanced во вкладке General. Кроме того, для шифрования и дешифрования файлов можно использовать утилиту командной строки cipher. Для получения справочной информации об этой программе введите команду cipher /?.
Хотя файлы можно шифровать и по отдельности, компания Microsoft рекомендует делать это на уровне папок, поскольку отдельно зашифрованные файлы могут подвергаться разнообразным манипуляциям или случайно оказаться расшифрованными. Кроме того, зашифрованные файлы не подлежат сжатию.
Для обеспечения наиболее рационального шифрования файловой системы авторы советуют прислушаться к рекомендациям по использованию EFS, приведенным в упомянутой выше статье компании Microsoft.

Будьте внимательны при перемещении зашифрованных файлов. Хотя при использовании стандартных механизмов резервного копирования (например, ntbackup.exe) зашифрованные файлы копируются без модификации, при выполнении обычной операции копирования файлы расшифровываются. Если файл копируется в раздел с файловой системой, отличной от NTFS 5.0, то после копирования файлы окажутся расшифрованными. При копировании файла на удаленный компьютер с файловой системой NTFS 5.0 он будет зашифрован, однако не будет идентичен оригиналу, поскольку удаленная копия будет зашифрована с помощью другого ключа. Таким образом, шифрование файловой системы защищает файлы только при хранении на диске, а при перемещении файлов они расшифровываются.

Расшифровка ключа агента  восстановления EFS



Продолжим начатое ранее обсуждение статьи Джеймса Дж. Грейса (James J. Grace) и Томаса С.В. Бартлетта III (Thomas S. V. Bartlett III). Возможность изменения пароля учетной записи администратора может иметь гораздо более серьезные последствия, если учесть, что учетная запись Administrator по умолчанию является агентом восстановления ключа. Если зарегистрироваться в системе с пустым паролем администратора, то все зашифрованные системой EFS файлы будут декодированы, поскольку администратор может получить доступ к ключу кодирования файлов (а значит, и содержимому этих файлов) с помощью своего ключа восстановления.
Почему это происходит? Напомним, как работает система EFS. Случайно сгенерированный ключ шифрования файла РЕК сам кодируется с помощью других ключей, и это зашифрованное значение хранится в качестве атрибута файла. Ключ РЕК, зашифрованный с помощью открытого ключа пользователя (каждый пользователь системы Win 2000 имеет пару ключей: закрытый и открытый), хранится в атрибуте DDF (Data Decipher Field). При доступе к файлу атрибут DDF расшифровывается закрытым ключом, и с помощью декодированного ключа РЕК расшифровывается сам файл. Значение, полученное после расшифровки ключа РЕК с помощью ключа агента восстановления, хранится в атрибуте DRF (Data Recovery Field). Поэтому, если локальная учетная запись администратора является агентом восстановления (а по умолчанию это так), то любой человек с правами администратора в данной системе может декодировать значение атрибута DRF своим закрытым ключом, получить ключ РЕК и расшифровать файл.

Делегирование прав агента восстановления не решает проблему



На первый взгляд может показаться, что проблему легко решить, делегировав права агента восстановления другой учетной записи. На самом деле это не так. Джеймс Дж. Грейс (James J. Grace) и Томас С.В. Бартлетт III (Thomas S. V. Bartlett III) разработали средство для изменения пароля любой учетной записи, определенной как агент восстановления.
Конечно же, хакеров не интересует сам агент восстановления. Просто это самый простой способ доступа к любому файлу на диске, зашифрованному системой EFS. Еще один способ борьбы с делегированием прав агента восстановления — просто "представиться" пользователем, зашифровавшим файл. Утилита chntpw (см. выше) позволяет изменить пароль любой учетной записи в автономном режиме. Затем взломщик может зарегистрироваться в системе как нужный ему пользователь и декодировать значение атрибута DDF с помощью своего закрытого ключа, расшифровав таким образом ключ FEK. и сам файл. При этом закрытый ключ агента восстановления данных не понадобится.

Экспортирование ключей восстановления и их безопасное хранение



В ответ на статью Джеймса Дж. Грейса (James J. Grace) и Томаса С.В. Бартлетта III (Thomas S. V. Bartlett III) компания Microsoft признала, что таким способом действительно можно обойти систему EFS, но в свое оправдание заявила, что для предотвращения этой атаки нужно правильно хранить ключ восстановления EFS (http://www. microsoft.com/technet/security/analefs.asp).
К сожалению, приведенное по этому адресу описание процесса экспортирования устарело, а в файлах справки по EFS другой способ не приводится. Чтобы экспортировать сертификат агента восстановления на отдельный компьютер, откройте аплет задания групповой политики Group Policy (gpedit.msc), найдите элемент Computer ConfigurationWVindows Settings\Security Settings\Public Key PoliciesVEncrypted Data Recovery Agents и выберите из контекстного меню агента восстановления на правой панели команду All Tasks>Export.


Запустится мастер, после выполнения рекомендаций которого ключ восстановления будет экспортирован. Для резервного копирования ключа агента восстановления вместе с сертификатом необходимо экспортировать и закрытый ключ. При этом авторы рекомендуют использовать защиту паролем.
И наконец, не забудьте удалить закрытый ключ, выбрав опцию Delete The Private Key If export Is Successful. После этого заполучить ключ к агенту восстановления из локальной системы будет крайне сложно (авторы просто избегают употреблять слово "невозможно"):

Напомним, что при простом удалении сертификата агента восстановления из правой панели шифрование файловой системы станет невозможным. На следующем рисунке показано, что происходит при попытке шифрования без агента восстановления — система не работает.


Файлы, зашифрованные до удаления агента восстановления, остаются зашифрованными, но могут быть открыты только соответствующим пользователем или после восстановления агента из резервной копии.

Для узлов, входящих в домен, ситуация отличается. Ключи восстановления всех систем, входящих в домен, хранятся на его контроллере. При добавлении к домену компьютера под управлением Win 2000 автоматически вступает в силу используемая по умолчанию политика восстановления домена и агентом восстановления становится администратор домена, а не локальный администратор. Таким образом, ключи восстановления физически отделяются от зашифрованных данных, что значительно затрудняет описанную атаку. Не мешает также экспортировать сертификат агента восстановления с контроллера домена, поскольку при их получении уязвимыми станут все компьютеры данного домена.

Компания Microsoft в ответном документе также утверждает, что возможность удаления файла SAM, приводящую к установке пароля администратора в NULL, можно предотвратить с помощью ключа SYSKEY. Но выше было показано, что это не так, если не выбран режим его защиты паролем или хранения на гибком диске (в статье об этом умалчивается).


4.gif

Изображение: 

5.gif

Изображение: 

15. Вторжение на доверительную территорию



Вторжение на доверительную территорию


Один из основных приемов взломщиков — поиск данных пользователей домена (а не локальной системы). Это позволяет хакерам получить доступ к контроллеру домена и легко обмануть систему безопасности домена. Такой деятельности обычно невольно способствуют администраторы, которые регистрируются на локальной машине с использованием данных учетной записи домена. Система Win 2000 не может предостеречь своих пользователей от очевидных ошибок.

Средства получения данных LSA -живут и здравствуют



Как было показано в главе 5, получение данных LSA — основной механизм для вгпома доверительных отношений, поскольку позволяет получить данные о нескольких последних зарегистрированных в системе пользователях и пароли учетных записей служб.
Хотя компания Microsoft объявила об устранении ошибок, связанных с получением данных LSA, в сервисном пакете SP3, многие из этих важных данных можно получить с помощью обновленной утилиты Isadump2 Тодда Сабина (Todd Sabin) . Приведем пример извлечения с помощью lsadump2 данных учетной записи службы на контроллере домена Win 2000. Последняя запись свидетельствует о том, что служба BckpSvr регистрируется с паролем password1234.

С:\>lsadump2
$MACHINE.ACC
7D 58 DA 95 69 3E 3E 9E AC Cl B8 09 Fi Oc C4 9E } X.. i»...
6A BE DA 2D F7 94 B4 90 B2 39 D7 77 j ..-...9.w
TemServLiceningSignKey-12d4b7c8-77d5-lld1-8c24-OOc04fa3080d
TS:InternetConnectorPswd
36 00 36 00 2В 00 32 00 48 00 68 О0 32 0O 62 00 6.6.+.2.H.h.i.b.2
44 00 55 00 41 00 44 00 47 00 50 00 ОС О0 D.U.D.G.P....
SC_BckpSrv
74 00 65 00 73 00 74 00 75 00 73 00 65 00 72 00 p. a. s. s.w.o. r .d.
31 00 32 00 33 00 34 00 1.2.3.4.


Зная пароль службы, взломщик может использовать утилиты (например, встроенную net user или nltest/TRUSTED_DOMAINS из набора Resource Kit) для изучения учетных записей пользователей и доверительных отношений в этой системе (что легко реализуется с помощью привилегий администратора). Такое исследование скорее всего приведет к выявлению пользователя bckp (или ему подобного) и доверительных отношений с внешними доменами. Попытка зарегистрироваться в этих доменах с помощью bckp/passwordl234, по всей вероятности, окажется успешной.

Контрмеры против Isadump2



Компания Microsoft считает, что описанная ситуация не представляет угрозы для безопасности системы, поскольку для запуска утилиты Isadump2 требуется привилегия seoebugprivilege, делегируемая по умолчанию только администраторам. Лучший способ противостояния lsadump2 - защитить учетные записи администраторов. Если же хакер получит доступ к учетной записи администратора, то с помощью lsaduir.P2 он сможет получить и учетные записи служб внешних доменов, и с этим ничего не поделаешь.

Новая система множественной репликации и модель доверительных отношений


Одним из наиболее значительных отличий Win 2000 от NT в области архитектуры доменов является переход к системе множественной репликации и модели доверительных отношений. В рамках леса Win 2000 все домены хранят реплики совместно используемой службы Active Directory и строят двухсторонние доверительные отношения друг с другом по транзитивному принципу на базе протокола Kerberos (доверительные отношения между лесами доменов или с доменами нижнего уровня NT 4 по-прежнему остаются односторонними). Это приводит к интересным следствиям при разработке топологии доменов.
Первым порывом многих администраторов доменов является попытка создания отдельного леса для каждого объекта защиты в рамках организации. На самом деле это неверный подход. Главной задачей администраторов должна стать консолидация доменов в рамках единой схемы управления. Более тонкое управление доступом можно поддерживать на уровне отдельных объектов леса. Возможности такого управления настолько широки, что многие администраторы приходят в замешательство от обилия имеющихся вариантов разрешений. В решении задачи большую помощь могут оказать контейнеры каталогов OL (Organizational Units) и новое средство делегирования прав (delegation feature).
Однако в рамках этой модели члены новых универсальных групп (например, группы администраторов предприятия Enterprise Admins) и в меньшей степени глобальных групп домена (например, Domain Admins) вступают в доверительные отношения со всеми доменами леса. Поэтому взлом учетной записи члена одной из таких групп обеспечивает хакеру доступ ко всем доменам леса. Поэтому авторы советуют организовывать не вполне доверенные сущности (например, подсети организаций-партнеров) или объекты, подверженные угрозам извне (например, центр данных Internet) в отдельный лес или реализовывать их как отдельные серверы.
Кроме того, при двухсторонних транзитивных доверительных отношениях группа Authenticated Users приобретает совсем другой смысл. В больших организациях не имеет смысла рассматривать эту группу как доверенную.


16. Сокрытие следов



Сокрытие следов


В Win 2000 применяются в основном те же средства и приемы сокрытия следов, что и в более ранних версиях операционной системы с небольшими отличиями. Приведем их краткое описание.


17. Отключение аудита



Отключение аудита


Для включения аудита можно воспользоваться аплетом 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 не планируется — все журналы по-прежнему хранятся на локальных машинах, что является слабым местом по сравнению с системой регистрации syslog в UNIX. И конечно же. Windows 2000 по-прежнему отказывается записывать IP-адрес удаленного соединения для подозрительных событий типа неудачной регистрации. Некоторые вещи никогда не изменятся.
Для включения и отключения аудита можно использовать также утилиту auditpol из набора средств NTRK. Эта утилита работает точно так же, как описано в главе 5, если не учитывать интерфейс настройки аудита политики групп. Что бы мы делали без NTRK?


18. Очистка журнала регистрации событий



Очистка журнала регистрации событий


В Win 2000 по-прежнему возможна очистка журнала регистрации событий, однако доступ к журналам осуществляется посредством нового интерфейса. Просмотреть различные журналы событий теперь можно через управляющую консоль Computer Management с помощью элемента System ToolsЮ Event Viewer. Появилось три новых журнала: Directory Service, DNS Server и File Replication Service. При щелчке правой кнопкой на одном из них открывается контекстное меню, содержащее команду Clear All Events.
Утилита elsave, описанная в главе 5, позволяет очистить все журналы (включая и новые) в удаленном режиме. Например, следующая команда приводит к очистке журнала службы репликации файлов File Replication Service на удаленном сервере joel (для удаленного выполнения этой операции требуются соответствующие привилегии).
С:\> elsave -s \\joel -1 "File Replication Service" -С
 


19. Скрытие файлов



Сокрытие файлов


Одной из главных задач хакера после удачного вторжения в систему является надежное сокрытие своего инструментария. В главе 5 обсуждались два способа сокрытия файлов: с помощью команды attrib и файловых потоков.

Команда attrib



Для сокрытия файлов по-прежнему можно применять команду attrib, но при этом файлы все же останутся видимыми при выборе опции Show All Files для данной папки.

Потоки



С помощью утилиты ср из набора NTRK (поддерживающей стандарт POSIX) можно скрыть файлы за другими файлами в потоках (см. главу 5). Эту утилиту можно использовать и в Win 2000 даже при переходе на новую версию 5 файловой системы NTFS.
Для выявления файловых потоков можно использовать утилиту sfind от компании NTObjectives. Она вошла в состав пакета Forensic Toolkit, доступного по адресу http://www.ntobjectives.com.


20. Потайные ходы



Потайные ходы


Последним пунктом программы хакеров является обеспечение возможности повторного проникновения в систему, усыпив бдительность системных администраторов.


21. Манипуляции в процессе запуска системы



Манипуляции в процессе запуска системы


Как упоминалось в главе 5, излюбленный прием хакеров — оставить в системе свои исполняемые файлы, которые будут автоматически запускаться при загрузке системы. Такие возможности по-прежнему имеются в системе Win 2000. Поэтому необходимо проверять соответствующие папки взломанной системы на наличие неизвестных или странных команд.
Параметры запуска системы задаются в системном реестре в следующих подразделах раздела HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion:

  •  ...\Run
  •  ...\RunOnce
  •  ...\RunOnceEx
  •  ...\RunServices

В Win 2000 отличается лишь местоположение папки автозагрузки Startup для каждого пользователя. Теперь эта папка находится в папке Documents and Settings (%systemdrive%\ Documents and Settings\%user%\Start Menu\Programs\Startup).

Прикрепление к исполняемым файлам



Иногда наиболее очевидные потайные ходы сложнее всего разглядеть. Например, можно просто разместить троянскую оболочку Windows под именем explorer.exe в корне каталога %systemdrive% целевой системы (по умолчанию право записи в этот каталог имеют все пользователи). Тогда при интерактивной регистрации пользователя эта профамма по умолчанию будет использоваться в качестве оболочки для этого пользователя. Почему это происходит?
В документации к набору средств разработки программных продуктов (SDK — Software Development Kit) компании Microsoft ясно сказано, что если имя исполняемого файла или динамической библиотеки DLL указано в реестре без задания пути к этому файлу, то операционная система Windows NT/2000 выполняет поиск этого файла в следующей последовательности.
1. В каталоге, из которого загружено приложение.
2. В текущем каталоге родительского процесса.
3. В системном каталоге %windir%\System32.
4. В системном каталоге %windir%\System.
5. В каталоге Windows %windir%.
6. В каталогах, определяемых значением переменной окружения PATH.
Потенциальная опасность такого поведения проявляется при использовании предлагаемой по умолчанию оболочки NT/2000, задаваемой ключом реестра нкъм\SOFTWARE\-Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell. По умолчанию этому ключу соответствует значение explorer.exe без явного указания пути к этому файлу. Следовательно, если некто в процессе загрузки скопирует модифицированную оболочку с именем explorer. ехе в корневой каталог системного диска (например, диска С: \), то она и будет использована для данного сеанса пользователя по умолчанию, поскольку поиск файла оболочки будет выполняться в корневом каталоге (текущим каталогом в процессе загрузки системы считается %systemdrive%).
По словам Альберто Арагонеса (Alberto Aragones) (http://www.quimeras.com/ecadv/ntpath.htm), для демонстрации этого эффекта достаточно скопировать командную оболочку NT/2000 cmd.exe в корневой каталог системного раздела, завершить сеанс, а затем зарегистрироваться снова. Тогда вместо стандартной оболочки Windows будет использоваться командная оболочка.
Рассмотрим последствия этой ситуации. Как будет описано в главе 14, существуют средства (типа eLiTeWrap), с помощью которых можно легко объединить несколько программ с целью их незаметного и асинхронного выполнения. Иными словами, программу типа Back Orifice 2000 можно связать с копией explorer.exe, поместить этот пакет в корневой каталог системного диска, и эта хакерская программа будет незаметно запускаться при каждой следующей интерактивной регистрации. При этом Explorer будет работать как ни в чем не бывало. Жуть...
Альберто на своем Web-узле приводит остроумный способ реализации такого подхода с удаленного компьютера, основанный на использовании службы telnet для NT/2000, работающей на целевом компьютере. Для этого нужно подключиться к службе telnet на целевом компьютере, затем загрузить на этот компьютер "запасной вариант" explorer. ехе (например, через службу FTP в режиме командной строки), и, наконец, из командной строки telnet переписать его в каталог %windir%, запустить настоящий explorer.exe и завершить сеанс telnet. После этого в каждом интерактивном сеансе вместо реального проводника будет использоваться "подставной вариант" explorer. ехе.
Этот же прием применим для подмены динамических библиотек. Информация об именах динамических библиотек хранится в соответствующих исполняемых файлах Windows. Поиск указанных библиотек выполняется в том же приведенном выше порядке. Такая последовательность поиска может вызвать схожие проблемы с подменой библиотек DDL.

Выявление всех относительных путей в реестре



Эта проблема была устранена в модуле обновления MS00-052, не включенном в состав сервисного пакета SP1, поэтому этот модуль необходимо применять независимо от установки сервисного пакета. И хотя в разделе часто задаваемых вопросов компания Microsoft заявляет об отсутствии этой угрозы (http://www.microsoft.com/technet/ security/bulletin/fq00-052.asp), Альберто Арагонес (Alberto Aragones) приводит примеры других исполняемых файлов (например, rundll32.exe), для которых пути в реестре явно не указаны. Действительно, имя этого файла многократно встречается в реестре без указания абсолютного пути.
Один из способов решения проблемы состоит в выявлении всех переменных в реестре, для которых не заданы абсолютные пути, и добавлении таких путей вручную. Однако эта процедура может оказаться слишком длительной.
Возможно более эффективным решением яштяется ограничение возможности интерактивной регистрации на сервере (правда, это несколько осложняется появлением терминального сервера). И, конечно же, необходимо установить указанный выше модуль обновления. Этот модуль устраняет угрозу за счет добавления префикса %systemroot% к имени оболочки.

Возникает вопрос, как вернуть систему в нормальное состояние, если с ней уже сыграли злую шутку, описанную Альберто? На этот случай Альберто советует запустить программу %windir%\explorer.exe из командной оболочки, а затем удалить "поддельный" проводник, или просто ввести команду геп\ explorer.exe harmless.txt, а затем перезагрузить компьютер с помощью комбинации клавиш <Alt+Ctrl+Del>.


22. Удаленное управление



Удаленное управление


Все описанные в главе 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, безусловно, понадобится некоторое время, чтобы научиться отличать удаленные интерактивные сеансы от сеансов работы в режиме консоли.
Из предыдущего раздела, посвященного сканированию, ясно, что верным признаком терминального сервера является открытый TCP-порт 3389. При его выяштении хакеры наверняка постараются воспользоваться клиентом терминальной службы (тем более, что его установочный комплект занимает две дискеты и находится в каталоге %windir%\ system32\clients сервера Win 2000) и предпринять атаку, направленную на взлом пароля учетной записи администратора. Если эта учетная запись является интерактивной, то взломщики беспрепятственно продолжат атаковать контроллер домена Win 2000, даже если включен режим блокировки пароля passprop /adminlockout (более подробная информация об этом содержится в главе 5). Однако процесс подключения клиента терминальной службы после пяти неудачных попыток прекращается, поэтому для взлома пароля потребуется немало времени.

Выявление отключенных соединений  с терминальным сервером



Что может сделать взломщик, имея привилегии администратора на терминальном сервере? Если на момент подключения хакера с данными учетной записи Administrator последний представитель из группы администраторов забыл завершить терминальный сеанс (или несколько сеансов), то взломщик получит следующее информационное сообщение.


Выбрав один из открытых сеансов, хакер может получить доступ к конфиденциальным документам или другим секретным данным, а также автоматически получить доступ к работающим приложениям, которые в другое время ему пришлось бы запускать вручную.

Завершение терминальных сеансов



Если просто закрыть окно клиента терминального сеанса или щелкнуть на кнопке Disconnect, сеанс останется активным. Для завершения терминального сеанса необходимо выбрать соответствующую опцию при выполнении команды Start^Shutdown или воспользоваться комбинацией клавиш <Ctrl+Alt+End> в режиме работы клиента терминального сервера. Приведем список других клавиатурных эквивалентов команд, доступных в режиме работы клиента терминального сервера.
<Ctrl+Alt+End> Открывает диалоговое окно безопасности Windows
<Alt+Page Up> Позволяет переключаться между программами слева направо
<Alt+Page Down> Позволяет переключаться между программами справа налево
<Alt+Ins> Позволяет переключаться между программами в порядке их запуска
<Alt+Home> Отображает меню Start
<Ctrl+Alt+Break> Выполняет переключение между оконным и полноэкранным режимом
<Alt+Del> Отображает всплывающее меню данного окна
<Ctrl+Alt+MHHyc(-)> Помещает копию активного окна на компьютере клиента в буфер обмена терминального сервера (выполняет ту же функцию, что и <Alt+Print Screen> на локальном компьютере). Для выполнения этой операции используется клавиша <-> на цифровой клавиатуре <Ctrl+Alt+ruiK>c(+)> Помещает копию всей области экрана компьютера клиента в буфер обмена терминального сервера (выполняет ту же функцию, что и < Print Screen> на локальном компьютере). Для выполнения этой операции используется клавиша <+> на цифровой клавиатуре.

Во время подготовки этой книги к печати по адресу 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.


6.gif

Изображение: 

23. Регистраторы нажатия клавиш



Регистраторы нажатия клавиш


В Win 2000 по-прежнему хорошо работают программы, регистрирующие нажатия клавиш, NetBus и Invisible Key Logger Stealth (IKS), описанные в главе 5.


24. Контрмеры общего назначения: новые средства обеспечения безопасности Windows



Контрмеры общего назначения: новые средства обеспечения безопасности Windows


В Win 2000 включены новые средства обеспечения безопасности. Теперь этот аспект гораздо лучше систематизирован, чем в NT 4. Эти утилиты позволяют жестко настроить защиту системы во имя избежания возможных брешей в защите.


25. Политика групп



Политика групп


Одним из наиболее мощных новых средств в Win 2000 является политика групп, которая уже несколько раз упоминалась в этой главе. Объекты политики групп могут храниться как в активном каталоге, так и на локальной машине, и определять параметры конфигурации в масштабах домена или одного компьютера соответственно. Политику групп можно применять к узлам, доменам или организационным единицам. Параметры политики наследуются пользователями или компьютерами, входящим в состав этих единиц ("участниками" группы).
Объекты политики групп можно просматривать и редактировать в любом окне управляющей консоли при наличии привилегий администратора. В комплект поставки Win 2000 входят следующие объекты политики групп: Local Computer, Default Domain и Default Domain Controller. При запуске программы gpedit.msc из меню Start вызывается объект политики групп локального компьютера. Объекты политики групп можно также просмотреть во вкладке Group Policy окна свойств каждого объекта активного каталога (домена, организационной единицы или узла). Там отражена конкретная политика, применяемая к выбранному объекту (типы политики перечислены в соответствии с приоритетом), а также указано, где блокируется наследование объектов политики. Здесь же можно редактировать объекты политики групп.
Благодаря возможности редактирования политики можно обеспечить множество безопасных конфигураций для объектов каталога. Значительный интерес представляет подраздел Security Options раздела Computer Configurations-Windows Settings>Security Settings>Local Policies. В нем содержится более 30 различных параметров конфигурации, обеспечивающих безопасность любого компьютерного объекта, к которому применяется данная политика. В число этих опций входят режим ограничения анонимных соединений Additional Restrictions For Anonymous Connections (параметр системного реестра RestrictAnonymous), параметр уровня аутентификации LanManager, и опция переименования учетной записи администратора.
В разделе Security Settings можно также выбрать политику для учетных записей, политику аудита, параметры журнала регистрации событий, открытый ключ и настроить политику IPSec. Благодаря возможности настройки этих политик на уровне узла, домена и организационной единицы задача обеспечения безопасности в больших сетях значительно упрощается. Предлагаемая по умолчанию политика групп на уровне домена показана на рис. 6.2.


Объекты политики групп обеспечивают один из способов защиты больших доменов Win 2000. Однако зачастую политика уровня домена может входить в противоречие с локальной политикой. Кроме того, губительный результат может иметь задержка, возникающая до вступления в силу политики групп. Такую задержку можно устранить, например, с помощью утилиты secedit (эта утилита более подробно обсуждается в следующем разделе), выполняющей немедленное обновление политики. Для обновления политики с помощью утилиты secedit откройте диалоговое окно Run и введите команду secedit /refreshpolicy MACHINE_POLICY
Для обновления политики, заданной в разделе User Configuration, введите secedit /refreshpolicy USER_POLICY



Рис. 6.2. Объект политики групп Default Domain Policy

Средства настройки безопасности



Для настройки политики групп можно воспользоваться набором утилит для настройки безопасности, в состав которого входят две программы: Security Configuration and Analysis и Security Templates.
Программа Security Configuration and Analysis позволяет администраторам выполнять проверку соответствия конфигурации локальных систем определенному шаблону и изменять любые несовместимые параметры. Эта программа встроена в управляющую консоль, а также существует в виде утилиты командной строки secedic. Это довольно мощный механизм для быстрой проверки безопасности системы. К сожалению, эта утилита позволяет анализировать только локальную систему и не работает в масштабе домена. Ее можно использовать в командном файле сценария регистрации и распространить таким образом ее действие на удаленные системы, однако она не так удобна для распределенной среды, как средство Group Policy.
К счастью, шаблоны защиты можно импортировать в программу Group Policy, обеспечив передачу шаблона каждому домену, узлу или организационной единице, к которым применяется политика групп. Чтобы импортировать шаблон защиты в утилиту Group Policy, щелкните правой кнопкой на элементе Computer ConfigurationWVindows Settings\Security Settings и выберите из контекстного меню команду Import. По умолчанию импортирование выполняется из каталога %windir%\ securityXtemplates, где хранится 11 стандартных шаблонов.
Фактически эти 11 шаблонов и составляют средство Security Templates. Файлы шаблонов соответствуют различным уровням безопасности, которые могут использоваться совместно со средством Security Configuration and Analysis. Хотя многие параметры этих шаблонов не определены, они являются хорошей отправной точкой при разработке шаблона для конфигурирования и анализа системы. Эти файлы можно просмотреть с помощью управляющей консоли Security Templates или вручную сконфигурировать в любом текстовом редакторе (напомним, что файлы шаблонов имеют расширение . inf и расположены в каталоге %windir%\security\templates\).

Команда runas



К радости поклонников операционной системы UNIX в состав Win 2000 включена собственная команда переключения привилегий пользователей runas (аналог su).
В соответствии с требованиями безопасности для выполнения задач пользователю желательно предоставлять минимально необходимые для этого привилегии. Исполняемые файлы, почтовые сообщения и удаленные Web-узлы, посещаемые через броузер, могут запускать команды с привилегиями текущего пользователя. Значит, чем выше привилегии этого пользователя, тем вероятнее опасность таких операций.
Многие из опасных атак могут происходить в процессе выполнения повседневных операций. Об этом особенно нужно помнить тем пользователям, которым для выполнения части задач приходится использовать привилегии администратора (к числу таких задач относятся добавление рабочей станции к домену, управление пользователями, аппаратными средствами и т.д.). Положа руку на сердце, можно сказать, что администраторы никогда не регистрируются как обычные пользователи, как того требуют правила безопасности. Это особенно опасно в современном мире тотального подключения к Internet. Если пользователь с правами администратора посетит хакер-ский Web-узел или прочтет сообщение в формате HTML с внедренным активным содержимым (см. главу 16), то он нанесет своей системе гораздо больше вреда, чем допустивший эту же ошибку обычный пользователь Вася Иванов.
Команда runas позволяет любому пользователю зарегистрироваться в системе с более низкими привилегиями и получать права администратора для выполнения конкретных задач. Например, предположим Вася Иванов зарегистрировался на контроллере домена через терминальный сервер как обычный пользователь, а затем ему срочно потребовалось изменить пароль одного из администраторов домена (скажем, потому, что этого администратора только что уволили и он в ярости грозится напомнить о себе). К сожалению, зарегистрировавшись как обычный пользователь, Вася не сможет даже запустить службу Active Directory Users and Computers, а не только изменить пароль администратора. Для этого Васе придется выполнить следующие действия.
1. Выбрать команду Start>Run и ввести 
runas /user:mydomain\Administrator "mmc %windir%\system32\dsa.msc"
2. Ввести пароль администратора.
3. После запуска службы Active Directory Users and Computers (файл dsa.mmc) с привилегиями администратора домена изменить пароль администратора.
4. Затем он завершит сеанс службы Active Directory Users and Computers и продолжит работу как обычный пользователь.
Таким образом, Вася избавит себя от необходимости завершения сеанса терминального сервера, регистрации с правами администратора и повторной перерегистрации с привилегиями обычного пользователя. Основным правилом должно стать использование минимального уровня привилегий.
Более наглядный пример осторожного использования утилиты runas — понижение привилегий для запуска Web-броузера или чтения почты. В конце марта 2000 года состоялась интересная дискуссия (http://www.ntbugtraq.com) о том, какие привилегии должны использоваться при вызове некоторого адреса URL в окне броузера, если в системе открыто несколько окон, в том числе некоторые с привилегиями администратора runas /u:Administrator. Один из подходов сводился к тому, чтобы ярлык броузера поместить в группу автозагрузки Startup и всегда запускать его с минимальными привилегиями. Последняя точка в этом споре относительно целесообразности использования runas так и не была поставлена. Дело в том, что приложения, запускаемые в рамках динамического обмена данными DDE, типа IE, информацию о ключах защиты получают из порождающего их процесса. Следовательно, runas никогда не создает процессы IE, необходимые для обработки гиперссылок, внедренных документов и т.д. Создание порождающего процесса зависит от программы, поэтому очень сложно определить реального владельца этого процесса. Возможно, компания Microsoft когда-нибудь разъяснит, действительно ли runas обеспечивает большую безопасность, чем полное завершение работы всех программ, требующих привилегий администратора, перед использованием броузера.
Утилита runas — не панацея. По словам Джеффа Шмидта (Jeff Schmidt), устраняя некоторые угрозы, она открывает возможности для других. Поэтому ее следует использовать с осторожностью.

Команда Run as теперь доступна через контекстное меню.
Для ее запуска нужно щелкнуть правой кнопкой
мыши на имени файла в окне проводника
Win 2000 при нажатой клавише <Shift>.


7.gif

Изображение: 

8.gif

Изображение: 

26. Резюме



Резюме


В этой главе мы лишь слегка коснулись многочисленных изменений, относящихся к Win 2000, однако проверка программ взлома для NT 4 показала существенное повышение безопасности в новой версии операционной системы. Вселяет оптимизм также добавление распределенной политики безопасности в Win 2000. Однако окончательные выводы о защищенности этой операционной системы можно будет сделать только в процессе ее широкого использования. Для полного выявления всех брешей системы NT 4 понадобилось несколько лет. Примерно столько же времени потребуется и для досконального изучения Win 2000. Приведем несколько советов, основанных на материале этой главы, главы 5, а также материалах многочисленных ресурсов Internet по безопасности Win 2000.

  •  Изучите резюме к главе 5, где приводится перечень мер по защите NT. Практически все эти советы применимы и к Win 2000. (Местоположение некоторых параметров изменилось. Некоторые из них нашли отражение в интерфейсе пользователя, в частности объект политики групп Computer Configuration Windows Settings\Security Settings\Local Policies\Security Options).
  •  Воспользуйтесь рекомендациями по обеспечению безопасности IIS5, приведенными по адресу http://www.microsoft.com
    /security
    . Загрузите также средство конфигурирования IIS5, обеспечивающее возможность настройки пользовательских шаблонов.
  •  Информация по защите SQL Server 7.0 для Win 2000 содержится по адресу http://www.microsoft.com/
    technet/SQL/Technote/secure.asp
    .
  •  Помните, что атаки, как правило, не совершаются на системном уровне. Чаще различным угрозам подвержен уровень приложений, особенно это касается современных приложений на основе Web-технологий. На основе приведенной в этой главе информации необходимо, конечно, защитить уровень операционной системы, но основные усилия следует сосредоточить на защите уровня приложений.
  •  Может это покажется смешным, но удостоверьтесь в корректности версии Win 2000. Продукты Win 2000 Server и Advanced Server задействуют множество служб (особенно в качестве контроллеров домена для службы Active Directory), поэтому их необходимо ограждать от недоверенных сетей, пользователей и других ненадежных объектов.
  •  Для обеспечения хорошей зашиты применяйте принцип минимализма: если нечего атаковать, то атака невозможна. Отключите все необязательные службы (с помощью services .msc). Обеспечьте необходимую безопасность для оставшихся обязательных служб. Например, настройте службу DNS таким образом, чтобы ограничить возможности переноса зоны.
  •  Если службы файлов и печати необязательны, запустите аплет Network and Dial-up Connections, а затем выберите команду Advanced => Advanced Settings и сбросьте флажок File And Printer Sharing for Microsoft Networks для каждого адаптера, чтобы отключить использование протокола NetBIOS поверх TCP/IP, как показано на рис. 6.1 в начале этой главы. Это наилучший способ настройки внешних интерфейсов подключенного к Internet сервера.
  •  Используйте фильтры TCP/IP и IPSec (описанные в этой главе) для блокировки доступа к прослушиваемым портам, за исключением минимально необходимого набора открытых портов.
  •  Защитите серверы, имеющие выход в Internet, с помощью брандмауэра или маршрутизатора, чтобы ограничить DoS-атаки. Кроме того, с помощью описанных в этой главе методов защититесь от стандартных DoS-атак.
  •  Регулярно устанавливайте сервисные пакеты и модули обновления. Расширяющийся с каждым днем список этих средств можно найти по адресу http://www.microsoft.сот/security.
  •  Ограничьте привилегии интерактивных учетных записей, чтобы в зародыше предотвратить атаки, направленные на расширение привилегий.
  •  По возможности завершайте терминальные сеансы, а не просто отключайтесь от терминального сервера и не оставляйте открытых сеансов на "растерзание" взломщикам, получившим права администратора.
  •  Используйте новые средства типа Group Policy (gpedit.msc) и Security Configuration and Analysis с дополнительными шаблонами для реализации распределенной схемы защиты среды Win 2000.
  •  Придерживайтесь строгих правил физической защиты от атак в автономном режиме против файла SAM и средства EFS, описанных в этой главе. Храните системный ключ на гибком носителе или защищайте его паролем. Обеспечьте физическую защищенность жизненно важных серверов, установите для них пароли на BIOS и отключите дисководы для съемных носителей, которые можно использовать для загрузки в систему с помощью альтернативной операционной системы.
  •  Воспользуйтесь информацией из справочной системы по рациональному использованию шифрования файловой системы. Реализуйте шифрование на уровне каталогов для максимального числа пользователей, особенно для пользователей переносных компьютеров. Не забудьте экспортировать ключ агента восстановления, а затем удалить его с локальной машины, чтобы не подвергать зашифрованные файлы атакам в автономном режиме.
  •  Подпишитесь на бюллетень NTBugtraq (http://www.ntbugtraq.com), чтобы быть в курсе обсуждения последних новостей, касающихся безопасности NT/2000. Если объем информации в этом бюллетене для вас слишком велик, подпишитесь на дайджест, чтобы получать все важнейшие сообщения за данный период. Для подписки на дайджест нужно отправить по адресу listserv@listserv.ntbugtraq.com сообщение следующего содержания "set NTSecurity digest" (тему сообщения задавать не надо).
  •  Бюллетень Win2KsecAdvice по адресу http://www.ntsecurity.net во многом дублирует NTBugtraq, но может содержать и новую информацию. Для него тоже существует компактный вариант дайджеста.