Описание новой функции защиты от нехватки памяти для стека TCP

Применяется к
Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Windows Vista Business Windows Vista Enterprise Windows Vista Home Basic Windows Vista Home Premium Windows Vista Starter Windows Vista Ultimate

ВВЕДЕНИЕ

В этой статье описывается новая функция защиты от нехватки памяти для стека TCP. Эта новая функция предоставляется обновлением безопасности 967723.

Дополнительные сведения

Функция защиты от давления давления памяти состоит из трех параметров безопасности. К этим параметрам относятся защита от давления памяти (MPP), профили и исключение портов.

Параметр MPP

Параметр MPP определяет функцию, и она включает следующие два действия при обнаружении атаки:

  • Завершение существующих TCP-подключений.
  • Отбрасывайте входящие SYN-запросы.

Администратор может включать и отключать параметр MPP с помощью команд netsh. Когда администратор включает или отключает параметр MPP, эта функция включается или отключается.

Параметр "Профили"

Функция "Профили" помогает администратору различать публичный и закрытый интерфейсы. Если интерфейс может получить доступ к контроллеру домена, это означает, что интерфейс присоединен к домену или что администратор может настроить интерфейс как частный. Функция "Профили" доступна только в Windows Vista и Windows Server 2008.

Параметр Profiles определяет возможность компьютера прерывать TCP-соединения и отбрасывать входящие SYN-запросы на интерфейсе, присоединенном к домену, и на частном интерфейсе при атаке компьютера с недостаточным объемом памяти. В Windows Server 2003 администратору необходимо использовать записи реестра для отключения функции MPP на определенном интерфейсе. Дополнительные сведения см. в разделе "Настройка этих параметров в Windows Server 2003". По умолчанию параметр "Профили" включен. Когда этот параметр включен, администратор решает ни при каких обстоятельствах не убивать TCP-соединения и не удалять SYN на интерфейсе, присоединенном к домену, и на частном интерфейсе. Если администратор хочет убить TCP-соединения и отбросить SYN на интерфейсе, присоединенном к домену, и на частном интерфейсе при атаке, параметр Profiles должен быть отключен.

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

Параметр исключения портов

Параметр Port Exemption позволяет администратору делать исключения для конкретных портов. По умолчанию, когда параметр MPP включен, функция защиты от давления памяти включена для соединений на всех портах. Если обнаружена атака, существующие соединения могут быть убиты или входящие SYN могут быть сброшены, на основе настроек MPP и Profiles. Однако администратор может установить исключения для подключений на определенных портах, указав их в списке исключений портов.

Заметки

  • Список исключений из портов — это глобальный список, который применяется ко всем интерфейсам и IP-адресам.
  • Параметр исключения портов вступает в силу до того, как на порту будет установлено TCP-подключение. Мы рекомендуем настроить все параметры, связанные с MPP, перед запуском серверных приложений.

Значения по умолчанию для этих параметров на серверах и клиентах

Параметр Значения по умолчанию на серверах Значения по умолчанию для клиентов
МПП Включено Disabled
Профиль Включена Включено
Исключение портов Без исключений Без исключений

Примечание. Если эти параметры изменятся, и администратор хочет отменить изменения к параметрам по умолчанию, администратор может использовать следующую команду netsh:

netsh int tcp resetNote См. раздел "Известные проблемы", прежде чем использовать команду netsh int tcp reset.

Настройка этих параметров в Windows Vista

Администратор может использовать команды netsh для обновления MPP, профилей и параметров исключения портов во время выполнения. Эти параметры определяют, является ли TCP-соединение кандидатом для обрезки или нет. Эта оценка выполняется при создании блока управления передачей этого TCP-соединения, в зависимости от параметров в это время.

  • netsh int tcp reset
    Сбрасывает параметры безопасности вместе с другими параметрами TCP. К этим параметрам безопасности относятся MPP, профиль, исключение портов и параметры ограничения скорости подключения.

  • netsh int tcp show security
    Отображает применяемые в настоящее время параметры безопасности для MPP, профилей и исключений портов, если таковые имеются.

  • netsh int tcp set security mpp=[enabled|disabled|default]
    Переключение параметров MPP.

  • netsh int tcp set security Profiles=[enabled|disabled|default]
    Переключение параметра "Профили".

  • netsh int tcp set security startport=<x> numberofports=<y+1> mpp=[enabled|disabled|default]
    Указывает исключения для портов в диапазоне от x до x+y. Убедитесь, что x и x+y находятся в допустимом диапазоне портов (0 - 65535).

    Примеры

    • Добавьте исключение для диапазона портов:
      Введите следующую команду в командной строке и нажмите клавишу ВВОД:

      netsh int tcp set security startport=5000 numberofports=10 mpp=disabledЭта команда отключает функцию MPP для портов с 5000 по 5009 (включительно).

    • Удаление исключения из диапазона портов:
      Введите следующую команду в командной строке и нажмите клавишу ВВОД:

      netsh int tcp set security startport=5000 numberofports=10 mpp=enableЭта команда удаляет запись исключения, добавленную в первом примере.

      Примечание. Перекрывающиеся диапазоны портов и поддиапазоны портов не обрабатываются командой netsh int tcp set security.

Настройка этих параметров в Windows Server 2003

В Windows Server 2003 эти параметры необходимо настроить с помощью реестра.

Настройка параметра MPP в Windows Server 2003

Внимание! В этом разделе метод или задача содержит шаги по изменению реестра. Однако ошибки при изменении реестра могут привести к серьезным проблемам. Поэтому будьте внимательны, выполняя описанные действия. В качестве дополнительной меры предосторожности перед внесением изменений создайте резервную копию реестра. Тогда в случае возникновения проблемы вы сможете восстановить реестр. Дополнительные сведения о создании резервной копии и восстановлении реестра см. в следующей статье базы знаний Майкрософт:

322756 Резервное копирование и восстановление реестра Windows

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

  • Интернет-протокол версии 4 (IPv4):
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableMPP

  • Интернет-протокол версии 6 (IPv6):
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\EnableMPP

Например, чтобы отключить параметр MPP на IPv4, выполните следующие действия:

  1. Нажмите кнопку Пуск, нажмите кнопку Выполнить, введите команду regedit в поле Открыть и нажмите кнопку ОК.

  2. Найдите и щелкните следующий подраздел реестра:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  3. В меню Правка выберите пункт Создать, а затем — Параметр DWORD.

  4. Введите EnableMPP и нажмите клавишу ВВОД.

  5. Щелкните правой кнопкой мыши EnableMPP и выберите пункт "Изменить".

  6. В поле "Значение" введите 0 и нажмите кнопку "ОК".

  7. Закройте редактор реестра.

  8. Перезагрузите компьютер.

Заметки

  • Если вы хотите снова включить параметр MPP, установите значение DWORD для записи реестра EnableMPP равным 1, а затем перезагрузите компьютер.

  • Вы можете выполнить те же действия, чтобы настроить следующую запись реестра для параметра MPP на IPv6:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\EnableMPP

Настройка параметра MPP для определенного интерфейса в Windows Server 2003

Внимание! В этом разделе метод или задача содержит шаги по изменению реестра. Однако ошибки при изменении реестра могут привести к серьезным проблемам. Поэтому будьте внимательны, выполняя описанные действия. В качестве дополнительной меры предосторожности перед внесением изменений создайте резервную копию реестра. Тогда в случае возникновения проблемы вы сможете восстановить реестр. Дополнительные сведения о создании резервной копии и восстановлении реестра см. в следующей статье базы знаний Майкрософт:

322756 Резервное копирование и восстановление реестра Windows

Примечание. По умолчанию в Windows Server 2003 функция MPP включена на всех интерфейсах.

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

  • IPv4:
    <HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\GUID>\DisableMPPOnIF
  • IPv6:
    <HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip6\Parameters\Interfaces\GUID>\DisableMPPOnIF

Например, вы можете выполнить следующие действия, чтобы отключить параметр MPP для определенного интерфейса на IPv4:

  1. Нажмите кнопку Пуск, нажмите кнопку Выполнить, введите команду regedit в поле Открыть и нажмите кнопку ОК.

  2. Найдите и щелкните следующий подраздел реестра:

    <HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\GUID>

  3. В меню Правка выберите пункт Создать, а затем — Параметр DWORD.

  4. Введите DisableMPPOnIF, а затем нажмите клавишу ВВОД.

  5. Щелкните правой кнопкой мыши DisableMPPOnIF, а затем выберите пункт "Изменить".

  6. В поле "Значение" введите "1" и нажмите кнопку "ОК".

  7. Закройте редактор реестра.

  8. Перезагрузите компьютер.

Примечание. Вы можете выполнить те же действия, чтобы настроить следующий подраздел реестра для параметра MPP для определенного интерфейса на IPv6:

<HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip6\Parameters\Interfaces\GUID>\DisableMPPOnIF

Настройка параметра исключения портов в Windows Server 2003

Внимание! В этом разделе метод или задача содержит шаги по изменению реестра. Однако ошибки при изменении реестра могут привести к серьезным проблемам. Поэтому будьте внимательны, выполняя описанные действия. В качестве дополнительной меры предосторожности перед внесением изменений создайте резервную копию реестра. Тогда в случае возникновения проблемы вы сможете восстановить реестр. Дополнительные сведения о создании резервной копии и восстановлении реестра см. в следующей статье базы знаний Майкрософт:

322756 Резервное копирование и восстановление реестра Windows

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

  • IPv4:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MPPExcludedPorts

  • IPv6:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\MPPExcludedPorts

Например, вы можете выполнить следующие действия, чтобы указать исключения портов для диапазона портов от xxxx до yyyy на IPv4:

  1. Нажмите кнопку Пуск, нажмите кнопку Выполнить, введите команду regedit в поле Открыть и нажмите кнопку ОК.

  2. Найдите и щелкните следующий подраздел реестра:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  3. В меню "Правка " наведите указатель мыши на пункт "Создать", а затем выберите пункт "Многострочное значение".

  4. Введите MPPExcludedPorts и нажмите клавишу ВВОД.

  5. Щелкните правой кнопкой мыши MPPExcludedPorts и выберите пункт "Изменить".

  6. В поле Значение введите диапазон портов в формате xxxx-yyyy (например, 5000–5010) и нажмите кнопку ОК.

  7. Закройте редактор реестра.

  8. Перезагрузите компьютер.

Заметки

  • Вы должны указать диапазон портов в формате xxxx-yyyy, где xxxx и yyyy находятся в допустимом диапазоне портов. Диапазон включает начальное и конечное значения.

  • Вы можете выполнить следующие действия, чтобы настроить следующий подраздел реестра для параметра исключения портов в IPv6:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\MPPExcludedPorts

  • В этом списке можно указать не более 12 диапазонов портов. Дополнительные диапазоны будут игнорироваться, а исключения не применяются.

Известные проблемы

  • В Windows Vista с пакетом обновления 2 (SP2) и в Windows Server 2008 с пакетом обновления 2 (SP2) на ограничение скорости подключения влияет команда netsh int tcp reset.

    Перед установкой этого обновления для системы безопасности команда netsh int tcp reset сбрасывает параметры TCP. Сюда входят параметры дымохода, явное уведомление о перегрузке (ECN), автоматическая настройка окна приема, составной TCP (CTCP) и метки времени. После установки этого обновления для системы безопасности команда netsh int tcp reset также сбрасывает параметры безопасности, включая MPP, профили и параметры ограничения скорости подключения. Даже если требуются параметры MPP и профилей, сброс параметра ограничения скорости подключения также происходит во время выполнения. Чтобы снова настроить ограничение скорости подключения, необходимо изменить подраздел реестра. Дополнительные сведения о параметре ограничения скорости подключения см. в следующей статье базы знаний Майкрософт:

    969710 Включение ограничения на полуоткрытые TCP-подключения в Windows Vista с пакетом обновления 2 (SP2) и в Windows Server 2008 с пакетом обновления 2 (SP2)

  • В Windows Server 2003 г. при установке обновления системы безопасности 967723 а затем установки IPv6 журнал событий содержит сведения, похожие на следующие сведения для события IPv6 с кодом 4229:

    Не удается найти описание события с кодом 4229 из источника Tcpip6. Компонент, вызывающий это событие, не установлен на локальном компьютере или установка повреждена. Вы можете установить или восстановить компонент на локальном компьютере.

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

    На мероприятие была включена следующая информация:

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

    • В Windows Server 2003 SP2 добавьте строку %systemroot%system32\w03a3409.dll в раздел HKLM\System\CCS\Services\eventlog\System\tcpipv6\EventMessageFile
    • В Windows Server 2003 SP1 добавьте строку %systemroot%system32\w03a2409.dll в раздел HKLM\System\CCS\Services\eventlog\System\tcpipv6\EventMessageFile
    • В Windows Server 2003 г. добавьте строку %systemroot%system32\ws03res.dll в раздел HKLM\System\CCS\Services\eventlog\System\tcpipv6\EventMessageFile