Безопасность сервера SMB. Microsoft Windows 95 и Windows for Workgroups. Диалекты протокола SMB, страница 11

Атака Man-in-the-Middle основана на том, что «вызов», шифруемый клиентом, формируется только сервером и может быть выбран каким угодно. Благодаря этому можно получить доступ на атакуемый сервер, даже не зная пароля. Для проведения такой атаки нужно привлечь чем-либо пользователя атакуемого сервера, чтобы тот попытался подключиться по SMB к системе злоумышленника (рис. 4-11).

Рис. 4-11. Атака Man-in-the-Middle позволяет получить доступ к серверу, не зная пароля пользователя.

1.  Клиент начинает установление сеанса с системой злоумышленника командой SMB_COM_NEGOTIATE.

2.  Злоумышленник посылает аналогичный запрос на атакуемый сервер.

3.  Ответ сервера взломщику содержит случайный «вызов».

4.  Система злоумышленника транслирует этот же «вызов» клиенту пользователя так, будто вызов выбран им самим.

5.  При помощи пароля пользователя клиент формирует «ответ» и передает его на проверку взломщику.

6.  Злоумышленник транслирует «ответ» атакуемому серверу и, естественно, получает к нему доступ.

Забавно, что разработчики Microsoft сами использовали этот хакерский по сути прием. Входящий в состав Windows 95 сервер 8MB в режиме защиты на уровне пользователя проверяет подлинность подключающихся клиентов по сценарию Man-in-the-Middle: если ему удается открыть от имени пользователя сеанс с контроллером домена, значит, удаленный пользователь указал правильный доменный пароль. Конечно, сервер Windows 95 сразу после проверки вежливо закрывает сеанс с контроллером домена, но ждать подобной галантности от взломщика, кажется, несколько наивно.

Основные меры защиты

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

Предотвращение гостевого входа

Гостевой вход на сервер Windows NT закрывается с помощью диспетчера пользователей. В окне свойств учетной записи Guest должен быть установлен флажок Disabled(при установке операционной системы Windows NT 4.0 он устанавливается автоматически). Снимать его рекомендуется лишь в случае действительной необходимости.

Ограничение прав анонимного пользователя

Установка пакета обновления Service Pack 3 для Windows NT 4.0 закрывает для анонимного пользователя доступ к реестру системы. Кроме того, появляется возможность запретить выдачу списка сетевых ресурсов сервера и списка пользователей домена. Для этого необходимо установить следующее значение в реестре системы:

куст:       HKEY_LOCAL_MACHINE\SYSTEM

раздел:   CurrentControlSet\control\LSA

параметр: RestrictAnonymous

тип:         REG_DWORD

значение: 1

Платой за это являются некоторые специфические осложнения при администрировании сети из нескольких доменов. Если между двумя доменами установлены односторонние доверительные отношения (trust), то администратор доверяющего (trusting) домена не сможет разрешить доступ к управляемым им ресурсам для пользователей доверяемого (trusted) домена. Ведь чтобы занести такого пользователя в группу или в список разрешений, нужен идентификатор безопасности (SID). Последний должен быть получен от контроллера доверяемого домена. Но, поскольку доверие установлено лишь в одну сторону, контроллер доверяемого домена не сможет опознать учетную запись администратора доверяющего домена и откажет ему в доступе к списку пользователей. Эта проблема не возникнет, если в качестве администратора доверяющего домена использовать учетную запись из доверяемого домена, — это рекомендуемая практика в сетях на базе Windows NT.

Дополнительные меры по защите от анонимного доступа журнала событий описаны в главе 8. Ограничение прав анонимного пользователя см. в статье Q143474 из Microsoft Knowledge Base.