Три методики повышения степени защиты узлов

Как правило, протокол IP Security (IPsec) используется при построении каналов VPN, однако с его помощью можно существенно повысить и уровень защищенности сети. Применение IPsec позволяет решить три типичные проблемы, а именно воспрепятствовать распространению «червей», защитить серверы сети и изолировать домен. Причем ни в одном из случаев не требуется использовать шифрование, существенно снижающее производительность систем. Рассмотрим каждое из этих решений.

IPSec против «червей»

Конечно, лучший способ борьбы с «червями» состоит в том, чтобы не допускать их появления. Но, увы, не все осознают потенциальные угрозы, с которыми связаны использование электронной почты и навигация в Web. На данный момент, к сожалению, надо признать, что от «червей» и других видов вредоносных программ сегодня никуда не деться. Как же можно в данной ситуации снизить риск поражения системы вредоносным кодом? Путей борьбы с подобными программами три: предотвратить возможность установки, не допустить запуска и исключить для таких программ возможность установки каких-либо сетевых соединений.

В ряде случаев единственная возможность одолеть вредоносные программы состоит в том, чтобы исключить для них возможность установки соединений. Используя политики IPsec, можно ограничить для компьютера типы передаваемого и принимаемого трафика. В качестве эффективных базовых фильтров пакетов на отдельных компьютерах можно использовать правила с описаниями фильтров, которые будут просто блокировать или пропускать тот или иной трафик (без применения каких либо функций безопасности IPsec security associations, таких как аутентификация или шифрование трафика). Эти правила могут быть переданы на компьютеры с помощью механизмов групповых политик, что, в свою очередь, поможет воспрепятствовать распространению вредоносного трафика по сети.

Выбор тех или иных политик IPsec определяется типом используемой операционной системы. В Windows 2003 Server и Windows XP имеется встроенный межсетевой экран Windows Firewall, который обеспечивает более эффективную блокировку входящего трафика, чем применение IPsec. Соответственно, если используются эти системы и Windows Firewall, то политики IPsec следует применять только для блокировки исходящего трафика. В операционной системе Windows 2000 межсетевой экран отсутствует, поэтому для компьютеров, работающих под управлением этой системы, можно блокировать входящий и исходящий трафик с помощью политик IPsec.

Рассмотрим в качестве примера «червя» Slammer. Путем распространения по сети сообщений через порт UDP номер 1434 этот вирус обнаруживает в сети компьютеры с запущенными на них Microsoft SQL Server или Microsoft SQL Server Desktop Engine (MSDE). Компания Microsoft выпустила соответствующее исправление, но, чтобы установить его на все компьютеры, потребуется некоторое время. Существует превосходное решение, позволяющее сократить время, необходимое для принятия первоочередных мер защиты. Оно заключается в том, чтобы с помощью групповых политик распространить на компьютеры политики IPsec, которые обеспечат блокировку входящего трафика через уязвимый порт. Безусловно, это блокирует и входящий трафик систем с SQL Server, поэтому после установки исправлений на уязвимые системы данную политику для них следует отменить.

Для того чтобы предотвратить заражение компьютера «червем» Slammer, нужно назначить политику, блокирующую весь трафик, поступающий на IP-адрес данного компьютера через UDP-порт назначения 1434. Соответствующая политика выглядит следующим образом.

  • В списке фильтров должен быть задан фильтр: от любой адрес:любой порт на адрес компьютера:порт 1434/udp.
  • Действие фильтра: блокировка.
  • Правило: связать список с действием; для всех сетевых интерфейсов; без туннеля; метод аутентификации — любой (в данном случае не имеет значения, какой метод используется для аутентификации, поскольку в этом блокирующем фильтре функции безопасности для IPsec не заданы).

Для того чтобы создать политику, сначала следует запустить консоль управления IPsec на том компьютере, который нужно защитить. Для Windows 2003, Windows XP и Windows 2000 процедура одинакова.

  1. Дважды щелкните мышью на значке «Локальная политика безопасности» (Local Security Policy) в папке «Администрирование» (Administrative Tools).
  2. Выберите раздел «Политики безопасности IP на локальном компьютере» (IP Security Policies on Local Computer).

Создайте список фильтров:

  1. Щелкните правой кнопкой мыши в правой половине окна «Локальные настройки безопасности» (Local Security Settings) и выберите в контекстном меню пункт «Управление списками IP-фильтра и действиями фильтра» (Manage IP filter lists and filter actions).
  2. На закладке «Управление списками фильтров IP» (Manage IP Filter Lists) нажмите кнопку «Добавить» (Add).
  3. Введите в поле имени название списка: Slammer filter list.
  4. В появившемся стартовом окне мастера фильтров IP нажмите кнопку «Добавить», а затем кнопку «Далее» (Next).
  5. В качестве источника выберите «Любой IP-адрес» (Any IP Address).
  6. В качестве назначения выберите «Мой IP-адрес» (My IP Address).
  7. В качестве протокола выберите UDP.
  8. Выберите пункт «Пакеты на этот порт» (To this port) и введите в поле значение 1434.
  9. Для завершения работы мастера нажмите кнопку «Готово» (Finish).
  10. Щелкните OK.

Теперь необходимо создать действие фильтра (если в системе уже создано действие с названием «Блокировка» (Block), этот пункт следует пропустить):

  1. В диалоговом окне «Управление списками IP-фильтра и действиями фильтра» (Manage IP filter lists and filter actions) перейдите на закладку «Управление действиями фильтра» (Manage Filter Actions) и нажмите кнопку «Добавить». В появившемся стартовом окне мастера настройки действий фильтров IPsec нажмите кнопку «Далее».
  2. В поле имени введите Block.
  3. В окне настройки общих параметров действия фильтра выберите «Блокировать» (Block).
  4. Для завершения работы мастера нажмите кнопку «Готово»
  5. Для того чтобы завершить процедуру настройки списка и действий фильтров, нажмите кнопку «Закрыть» (Close).

Затем нужно создать политику IPsec:

  1. Щелкните правой кнопкой мыши в правой половине окна «Локальные настройки безопасности», выберите из контекстного меню пункт «Создать политику безопасности IP» (Create IP Security Policy) и в появившемся окне мастера политики IP-безопасности нажмите кнопку «Далее».
  2. Введите в поле имени Slammer filter.
  3. Снимите галочку с пункта «Использовать правило по умолчанию» (Activate the default response rule) и нажмите «Далее».
  4. Оставьте пункт «Изменить свойства» (Edit properties) выбранным и нажмите кнопку «Готово» для завершения работы мастера.

Теперь нужно добавить к созданной политике правило:

  1. В появившемся диалоговом окне свойств политики нажмите кнопку «Добавить», затем кнопку «Далее».
  2. В трех следующих окнах оставьте все настройки без изменений.
  3. Из перечня списков фильтров выберите список Slammer filter.
  4. Из списка действий фильтров выберите Block.
  5. Для завершения работы мастера нажмите кнопку «Готово», после чего закройте диалоговое окно свойств правила, нажав OK.
  6. Закройте диалоговое окно свойств политики с помощью кнопки «Закрыть».

И наконец, необходимо назначить выбранную политику: щелкнуть правой кнопкой на значке политики Slammer filter и выбрать пункт «Назначить» (Assign).

Создание политики IPsec с помощью сценария

Политики IPSec можно создавать и с помощью командной строки, что очень удобно, поскольку описанные процедуры могут выполняться из соответствующего сценария. В Windows 2000 для этого используется утилита ipsecpol.exe из пакета Microsoft Windows 2000 Resource Kit; в Windows XP применяется утилита ipseccmd.exe из пакета Windows Support Tools for Microsoft Windows XP; что же касается систем семейства Windows 2003, то необходимый программный инструмент, а именно утилита Netsh Ipsec, входит в состав этих операционных систем. Для того чтобы применить политику Slammer filter на системе с Windows XP, можно воспользоваться следующей командой:

ipseccmd -w REG -p «Block UDP 1434 Filter»

-r «Block Inbound UDP 1434 Rule»

-f *=0:1434:UDP -n BLOCK -x

Важно строго следовать приведенному синтаксису написания букв, поскольку утилиты ipsecpol.exe и ipseccmd.exe чувствительны к регистру. Также следует помнить, что рассматриваемая командная строка представляет собой одну команду, поэтому вводиться она должна одной строкой.

С помощью показанной выше команды создается и назначается статическая политика под названием Block UDP 1434 Filter, имеющая единственное правило с названием Block Inbound UDP 1434 Rule, в котором содержится созданный нами список фильтров со ссылкой на действие фильтра Block. Статические политики записываются в реестр и сохраняются после перезагрузки системы. Нужно иметь в виду, что политика не будет применена до следующего запуска или перезапуска агента политики IPsec, поэтому если необходимо, чтобы она сразу же вступила в действие, в сценарий следует включить процедуру остановки и повторного запуска службы policyagent. Если же политика была создана через графический интерфейс, то она вступает в силу немедленно.

В том случае когда компьютер уже заражен вирусом Slammer, можно с помощью другого правила IPsec лишить его возможности заражать остальные компьютеры в сети, блокируя исходящие с этого компьютера соединения через порт UDP 1434. Соответствующая политика выглядит следующим образом.

  • Список с одним фильтром: от адрес компьютера:любой порт на любой адрес:порт 1434/udp.
  • Действие фильтра: блокировка.
  • Правило: связать список с действием; для всех сетевых интерфейсов; без туннеля; метод аутентификации — любой.

Прошу обратить внимание на одно отличие: в рассмотренном ранее правиле (для входящего трафика) проверялся трафик от любого адреса:любого порта на адрес компьютера:порт 1434/udp, здесь же создается правило для фильтрации исходящего трафика, то есть от адреса компьютера: через любой порт на любой адрес:порт 1434/udp. С помощью данного правила будет блокирован любой исходящий трафик через порты UDP 1434 остальных компьютеров сети. Для того чтобы создать такое правило в сценарии и добавить его в ту же политику, в которую было добавлено предыдущее правило, используется следующая команда:

ipseccmd -w REG -p «Block UDP 1434 Filter»

-r «Block Outbound UDP 1434 Rule»

-f 0=*:1434:UDP -n BLOCK

В рассмотренной ранее команде применялся ключ -x, означающий создание новой политики. Во втором примере этот ключ пропущен, поскольку здесь мы добавляем к существующей политике новое правило. Также обратите внимание, что в той части рассматриваемой команды, которая касается списка фильтров, символы «0» и «*» поменялись местами. Это связано с тем, что направление действия фильтра изменилось.

С помощью утилит командной строки можно применять и динамические политики, которые действуют только до тех пор, пока система включена (при перезапуске службы policyagent или перезагрузке компьютера они теряются). Динамические политики могут пригодиться в тех случаях, когда заранее известно, что они будут применяться непродолжительное время, а для отмены их действия планируется использовать перезагрузку. Динамическая политика, выполняющая те же функции, что и только что рассмотренная статическая, может быть создана с помощью двух приведенных ниже команд:

ipseccmd -f[*=0:1434:UDP]

ipseccmd -f[0=*:1434:UDP]

Описание фильтра заключено в квадратные скобки — это говорит о том, что отфильтрованный трафик будет блокироваться.

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

IPsec на защите серверов

Одним из характерных примеров применения политик типа «запретить все, кроме» является защита серверов. Действительно, зачем, например, Web-серверу принимать через свой интерфейс, подключенный к Internet, что-то еще, кроме трафика Web? С помощью политики IPsec можно построить элементарный фильтр пакетов, который будет отбрасывать все поступающие данные, за исключением тех, которые необходимы для полноценного выполнения функций сервера. В рассматриваемом примере с Web-сервером может быть блокирован весь трафик, за исключением соединений через порт 80 протокола TCP (а также через порт TCP 443 в тех случаях, когда необходимо просматривать страницы с помощью протокола, защищенного HTTP (HTTPS)).

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

Рассмотрим пример построения политики для Web-сервера. Эта политика содержит два правила.

Правило 1
  • Один фильтр в списке: от любой адрес:любой порт на адрес компьютера:любой порт.
  • Действие фильтра: блокировать.
  • Правило: связать список с действием; для всех сетевых интерфейсов; без туннеля; метод аутентификации — любой.
Правило 2
  • Два фильтра в списке: < любой адрес >:< любой порт > на < адрес компьютера >:< порт 80/tcp> и < любой адрес >:< любой порт > на < адрес компьютера >:< порт 443/tcp>.
  • Действие фильтра: разрешить.
  • Правило: связать список с действием; для всех сетевых интерфейсов; без туннеля; метод аутентификации — любой.

Чтобы создать данную политику через сценарий, используется такая последовательность команд:

ipseccmd -w REG

-p «Web traffic packet filter»

-r «Block everything»

-f *+0 -n BLOCK -x

ipseccmd -w REG

-p «Web traffic packet filter»

-r «Permit web traffic»

-f *+0:80:TCP -f *+0:443:TCP

-n PASS

Экран 1. Список фильтров пакетов для Web-трафика

Обратите внимание на то, что в данных примерах между описаниями комбинаций «IP адрес:порт:протокол» источника и получателя вместо знака равенства (=) используется знак плюс (+). Это указывает агенту политики на то, что создаются «зеркальные» правила, разрешающие Web-серверу трафик данного типа. В противном случае нужно было бы построить два отдельных правила, разрешающие исходящий трафик от Web-сервера через порты TCP 80 и 443. Если эти правила создаются через графический интерфейс, то они автоматически будут считаться зеркальными. На экране 1 показано, как выглядит список фильтров для Web-сервера в графическом интерфейсе. На экране 2 представлена политика фильтрации пакетов Web, содержащая два правила, одно из которых блокирует весь трафик, а другое разрешает трафик Web.

Экран 2. Политика фильтра пакетов для Web-трафика

Можно ли выполнить эту задачу с помощью встроенного в систему межсетевого экрана? Безусловно, можно, и для системы Windows Server 2003 я бы выбрал именно такое решение. Но если мы имеем дело с Windows 2000 Server, то использование механизмов фильтрации пакетов с помощью IPsec помогает весьма эффективно сузить зону, которая является потенциально опасной для различных видов атак. Сначала проводится анализ тех функций, которые выполняет каждый из серверов предприятия. После этого, с учетом выполняемых серверами функций, для них разрабатываются политики IPsec. Затем, если сгруппировать учетные записи серверов в организационные подразделения (OU) в соответствии с решаемыми задачами, то распространение на них созданных политик может быть реализовано через механизмы групповой политики. С помощью этой простой методики ограничения поступающего на сервер трафика можно значительно повысить степень защищенности информационной инфраструктуры предприятия.

Изолирование доменов

Обычно администратор располагает данными о том, какие пользователи могут быть аутентифицированы контроллером домена (DC) при попытках обращения к сетевым ресурсам. А что при этом известно об их компьютерах? Разумеется, некоторые из них, как правило, тоже являются членами этого же домена, однако в среде Windows членство компьютера в домене, к ресурсам которого он пытается обратиться, не является обязательным требованием. Если при обращении к сетевым ресурсам пользователь указывает корректные параметры учетной записи, он может получать права доступа к любому компьютеру в сети. Имеющийся в системе Windows XP менеджер учетных записей позволяет клиенту, который не является членом домена, еще более упростить процедуру получения доступа к сетевым ресурсам.

Применение концепции изолирования доменов может существенно затруднить «компьютерам-злоумышленникам» процедуру получения доступа к ресурсам домена и разрешить взаимодействие в пределах домена только авторизованным в нем компьютерам. Компьютерам, которые являются членами домена, можно доверять в большей степени, поскольку при всех взаимодействиях между ними используются те механизмы безопасности, которыми администратор домена может централизованно управлять. К таким механизмам относятся групповые политики, шаблоны безопасности, настройка ограничений для программного обеспечения, политики IPsec и Microsoft Systems Management Server (SMS). Если конфигурация компьютеров находится под контролем, значит, они могут делать только то, что им разрешено. Соответственно, такие компьютеры представляют гораздо меньшую опасность для информационной среды компании, чем неподконтрольные компьютеры злоумышленников, о конфигурации, а зачастую и о существовании которых администратор не имеет ни малейшего представления. Так что уже сама собой напрашивается мысль о необходимости срочного изолирования домена.

Изолирование домена осуществить гораздо проще, чем кажется. Для начала добавим к используемому по умолчанию доменному объекту групповой политики (GPO) следующую политику IPsec.

  • Список фильтров: использовать существующий список фильтров «Весь трафик IP» (All IP Traffic).
  • Действие фильтра: только Encapsulating Security Payload (ESP), нулевое шифрование (null encryption), проверка целостности SHA-1 (SHA-1 integrity), обязательная защита (require security), запрет взаимодействия между компьютерами без использования протокола IPsec.
  • Правило: связать список с действием; для всех сетевых интерфейсов; без туннеля; метод аутентификации — Kerberos, нет отклика по умолчанию.

В данном случае следует использовать ESP-null, поскольку нас интересует только аутентификация каждого пакета, а не шифрование передаваемых данных. Понятие конфиденциальности не ограничивается только аутентификацией и целостностью данных, что обеспечивается хешем SHA-1. Вместо ESP-null можно задействовать заголовок аутентификации IPsec (IPsec Authentication Header (AH)), но при этом данная политика не будет работать с теми системами, которые осуществляют сетевое взаимодействие через устройства, выполняющие функцию трансляции сетевых адресов (NAT).

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

  • Список фильтров: фильтры, содержащие адреса или диапазон адресов контроллеров домена.
  • Действие фильтра: разрешить.
  • Правило: связать список с действием; для всех сетевых интерфейсов; без туннеля; метод аутентификации — любой.

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

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

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


Старший менеджер подразделения Security Business and Technology Unit в Microsoft. steriley@microsoft.com