любит — не любит?.. Windows — не Windows?..

В чем вы видите главный момент создание защищенной сети своего предприятия? Да, вы выделили особой сегмент сети, демилитаризованную зону (DMZ), вывели в нее "боевые" серверы, к примеру, почтовый сервер, веб-сервер на котором расположен представительский сайт вашей компании и прочие. Далее на внешнем межсетевом экране закрыли неиспользуемые порты < 1024, оставив торчать наружу только вышеупомянутые сервисы и службы. Ваш системный администратор или администратор безопасности (если вы ими и являетесь — то вы) установили самые последние версии используемых сервисов, установлены последние обновления и патчи уязвимых систем. Введена система мониторинга и/или авто-обновления. И теперь вы полностью уверены в своей безопасности? Зря!
Возникает несколько интересных вопросов. Насколько велико время между обнаружением новой уязвимости и следующим за ней выпуском компании производителем security-patch на используемую у вас систему и его установкой на станциях вашей сети? Задумались? А знаете ли вы, что нередко, а зачастую и всегда, компания-производитель различного операционного и программного обеспечения узнает о уязвимости в их продукте от своих клиентов, чьи системы были скомпрометированы через неизвестные доселе широкой общественности уязвимости... Стоит задуматься над этим...
Следуя из всего вышеперечисленного риск поражения вашей системы остается достаточно большим, стоит лишь посмотреть ленту новостей какого-нибудь портала по информационной безопасности, на котором явно видно, что количество найденных уязвимостей растет день ото дня.
Соответственно, перед вами стоит задача максимально сократить риск поражения вашей системы. Любой, кто сталкивался с проблемой оценки рисков, знает, что полностью устранить риски порой просто невозможно и все усилия затрачиваются на их снижение. Не знакомые со спецификой действия различных компьютерных злоумышленников администраторы абсолютно не уделяют внимания такому направлению в обеспечении безопасности сети, как изменение различных признаков операционных систем и используемых сервисов. Ведь для того, чтобы злоумышленнику поразить систему, ему для начала нужно ее "узнать" Тут как в ситуации в знакомстве с девушкой. Не познакомившись с ней, вы не узнаете, что она любит или, наоборот, не любит.
Соответственно, не зная, какая система у вас используется, злоумышленник не может сказать, что ей не нравится, соответственно и "взломать" ее.
Если ваша сеть не была предварительно "заказана", то риск ее поражения сводится к двум вероятностям, обе из которых связаны с автоматизированными средствами взлома, практикуемыми обычно script kiddies. В первом случае на основе известных уязвимостей производят собственно взлом системы. Схема такова: обнаружение уязвимой системы — реализация уязвимости — автоматическое создание "черного" входа в систему. Другой метод предусматривает создание некого банка данных, когда большой диапазон сетей класса B,C просто сканируется и определяются версии ОС и служб. Потом после обнародования уязвимости хакер просто ищет подверженную систему и реализует атаку на нее.
Подобная информация накапливается у злоумышленника и при выходе эксплоита, к примеру, к Sendmail, ему остается просто произвести поиск в своей базе. Соответственно изменение признаков и баннеров сервисов — это путь значительного (!!!) снижения вероятности того, что ваша система будет атакована.
Вопрос изменения параметров TCP-стека в различных системах широко освещен в сети /* была об этом статья и в «Сетевых Решениях», и в той же статье мимоходом затрагивалась и обсуждаемая здесь проблема. Ну да ничего, повторение — мать сами знаете чего ;) — прим. ред. */ Поэтому вопросы Nmap и прочих сканеров мы оставим.
В данной статье я рассмотрю принципы изменения типичных баннеров сервисом базированных на платформе Microsoft Windows NT/2000. Во-первых, это признанный во всем мире корпоративный стандарт, во-вторых, полностью рассмотреть в данной статье все аспекты вопросов изменения признаков я не могу физически, так как это материал не одной книги. /* рассматривать GNU-шные и прочие софты с открытым исходным кодом тем более нет смысла, поскольку а) они в большинстве своем имеют богатые возможности настройки, в том числе и строк-баннеров и б) на крайняк есть же исходный код! — прим. ред. */
Предположим что в нашей системе видны извне только сервис электронной почты под управлением Microsoft Exchange Server 2000 и веб-сервер IIS.
Начнем с IIS.
Как же злоумышленник определяет версию веб-сервиса, в нашем случае IIS. В подавляющем большинстве случаев это реализуется просмотром ответа сервера по HTTP протоколу при обращении к нему.

>telnet iisserver.com 80 HEAD / HTTP/1.0

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Mon, 22 Sep 2003 01:59:20 GMT
Connection: Keep-Alive
Content-Length: 1270
Content-Type: text/html

Как мы видим, сервер без проблем возвращает нам свою версию. Также он и возвращает ее многочисленным автоматизированным средствам banner-grabbing'а. Всего способов определения IIS лично я знаю порядка 20 вариантов. Но мы рассматриваем этот из-за его повального распространения.
Итак, какие же способы «защиты» существуют на сегодняшний день?
Во-первых это предлагаемый самой же Microsoft программы Urlscan. Его функциональные возможности я не буду рассматривать здесь, так как они уже широко известны.
Компания KodeIT предлагает продукт IISBanner/1.0 обеспечивающий установку в вашей системе ISAPI-фильтра, которые и обрабатывает все HTTP-ответы сервера. Соответственно при его использовании результат будет примерно следующий:

HTTP/1.1 200 OK
Server: Powered By IISBanner/1.0 (KodeIT)
Date: Mon, 22 Sep 2003 01:59:20 GMT


Я лично все недостатки вышеупомянутых продуктов вижу в том, что используемая вами система наследует уязвимости в данных продуктах. Многочисленные рекомендации по обеспечению безопасности в IIS говорят о том, что при возможности требуется полностью отключить серверные расширения ISAPI, FrontPage и прочие.
Несмотря на то, что описанные ниже действия нарушают лицензионное соглашение между вами и Microsoft, они оптимальны для решения возникшей перед нами проблемы.
Баннер IIS хранится в w3svc.dll. Соответственно используя любой редактор бинарных файлов мы можете внести требуемые изменения. Эта процедура автоматизирована нами. Используя написанную нами утилиту IISh вы за минимальные сроки можете внести нужные изменения, а именно изменения баннера.
Выдержки из Readme нашей программы:
Данная программа используется для изменения баннера веб-сервера Microsoft IIS. Она изменяет параметр Server: Microsoft IIS в библиотеке w3svc.dll. Это сделано для увеличения безопасности и снижения риска поражения вашей системы автоматизированными сканнерами, использующими уязвимости в веб-сервере IIS. Данная программа тестировалась на IIS 1.0 и IIS5.1 Она свободна доступна для скачивания на нашем сайте (ust.icqinfo.ru)./* редакция не проверяла сий дивный бинарник на работоспособность, равно как и «на вшивость». Use at your own risk, как говаривают буржуи. — прим. ред. */
Теперь перейдем к баннерам Microsoft Exchange 2000 Server. Что мы можем видеть при установке соединения с сервером:

>telnet exchangeserver.com 25

220 hostname.domain.com Microsoft ESMTP MAIL Service, Version: 5.0.2195.1600 ready at Sun, 21 Sep 2003 18:09:43 +0400

Прежде чем перейти к изменению баннера полезно ознакомиться со статьями Microsoft под номерами Q281224 "How to Modify the SMTP Banner" и Q303513 "How to Modify the POP or IMAP Banner".
Ну это вы сделаете потом, а сейчас вернемся, как говорится, к нашим баранам.
Для изменения smtp-баннера нужно скачать с сайта Microsoft утилиту MetaEdit. Далее после ее запуска найдите Lm\Smtpsvc\значение виртуального сервера, выберите нужный параметр и в правом поле ввода введите 36907. Это и есть адрес искомого параметра. После чего измените этот параметр на нужный вам. Вы можете и оставить значение пустым но все же это может вызвать подозрение и простое любопытство у злоумышленника. Если вы поставите значение к примеру тот же ESMTP Sendmail 8.11.6/8.11.0; это опять же может привлечь внимание хакера к вашей системе если будет найдена уязвимость в Sendmail указанной версии. Что будете делать — решать вам. /* Как вариант — ввести что-нибудь экзотическое из реально существующего (под экзотику редко выходят сообщения о дырах/эксплойты) или вовсе отсебятину, но чтоб выглядела внушительно — с правдоподобным номером версии, например. — прим. ред. */
После внесения изменений проверьте результат, опять же установив соединение с 25 портом.
При установке соединения с pop/imap сервисами вы можете видеть следующее:

>telnet exchangeserver.com

110 Microsoft Exchange 2000 POP3 server version 6.0.4417.0 (kremlin.gov) ready.

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

smtpmd SET -path imap4svc/1 -dtype STRING -prop 49884 -value "<новое значение на ваш выбор>"

Вот список значение в метабазе:
POP3ConnectionString — 41661
POP3DisconnectionString — 41662
IMAP4ConnectionString — 49884
IMAP4DisconnectionString — 49885
Опять же вы можете использовать значения, выдаваемые системами Linux/Unix, например:
pop: +OK Qpopper at kremlin.gov starting. или +OK QPOP (version 2.53) at UkRserv starting. imap4: OK Courier-IMAP ready. Copyright 1998-2001 Double Precision, Inc. See COPYING for distribution information.


После этого запустите сервис и проверьте результативность проделанных изменений.
/* Если вы используете софт от третьих производителей (а почему бы, черт возьми, его не использовать!) — смотрите по ситуации. Либо у них есть штатный механизм изменения баннеров (чаще всего через файлы настроек), который, впрочем, может еще и не работать корректно (так было, например, с ранними версиями MDaemon), либо применяйте универсальный механизм, описанный выше: «перебивание» строковых данных в бинарных файлах (как исполняемых, так и библиотечных, смотря куда эти баннеры «прошил» производитель софта).
Позволю себе некоторые практические рекомендации по этому методу (поскольку сама активно его практикую ;)
1. Обязательно бэкапьте оригинальный файл!!!
2. Используйте подходящий редактор (упаси бог, не юзайте Notepad или чего еще похлеще (Wordpad etc). Если нормального редактора бинарных файлов под рукой нет, а безобразничать очень хочется, воспользуйтесь встроенным редактором FAR’а, обязательно в режиме замены символов (overwrite mode).
3. Не забывайте, что существует проверка целостности (количественная) бинарного файла, и бывает она либо побайтовой, либо побитовой. В первом случае вам нужно будет подобрать новый баннер таким образом, чтобы количество символов в нем совпало с предыдущим. Во втором же случае (слава богу, это редкость) придется еще учитывать, что это за символы. То есть вы сможете либо переставить символы местами в существующем баннере (такими наивными «хитростями» вы обманете, разве что, глупого робота ;), либо подойти к вопросу совсем уж творчески и «обменять» символы строки баннера на символы из других малозначимых строк. При удачном раскладе оно даже будет работать ;)
4. Имейте в виду, что то, что вы видите как баннер, скорее всего окажется объединением нескольких подстрок. Обычно выделяется наименование, версия и, может быть, ОС. Причем и то, и другое и третье может фигурировать в бинарнике далеко не в единственном числе. Ведите лог внесенных вами изменений или создавайте множественные бэкапы пока не получите нужный вам результат (сохранив работоспособность софта, что немаловажно ;) — прим. ред. */

заключение


Данные изменения намного сократят риск поражения вашей системы автоматизированными средствами изучения и атаки, многочисленными "интеллектуальными" CGI-сканерами и вызовут недоумение у относительно большого количества тех, кто причисляет себя к "хакерскому сообществу".

Павел П. aka UkR-XblP, UkR security team.
Примечания Alice D. Saemon.



Сетевые решения. Статья была опубликована в номере 11 за 2003 год в рубрике save ass…

©1999-2024 Сетевые решения