Прикрой! Я в интернет...

По умолчанию беззащитные порты пользователей Windows ХР во Всемирной Сети самоотверженно "прикрывает" брандмауэр подключения к интернету. От чего он нас оберегает и как - тема данной статьи.

В интернете наиболее часто используются следующие протоколы передачи данных:

  1. TCP - используется для установки долговременного соединения, обеспечивает надежную передачу данных.
  2. UDP - протокол для обмена простыми однопакетными сообщениями, об утере пакетов не сообщается. Главное преимущество: не требователен к ресурсам компьютера.
  3. ICMP - протокол управляющих сообщений. Является вспомогательным протоколом, с его помощью хост может получать различные данные о состоянии объектов сети, маршрутизатор может обмениваться информацией с узлом и т.д.

Порты и протоколы довольно тесно связаны между собой. Термин порта является абстрактным понятием, фактически порт - это канал передачи данных. В большинстве случаев для получения и отправки данных каждому приложению назначается определенный порт. Например, среднестатистический веб-сервер прослушивает 80-й порт, на который Internet Explorer посылает свои запросы. В то же время браузер IE на клиентском компьютере может висеть на любом незанятом порте из диапазона 1023-16384.


Сканирование удаленных портов

Сканирование портов позволяет осуществлять поиск каналов передачи данных. Идея заключается в том, чтобы исследовать как можно больше потенциальных каналов связи и определить, какие именно находятся в состоянии ожидания соединения (открыты). Каждый открытый порт - это сервисная программа, установленная на сервере, к которой можно подключиться и выполнить определенные действия. Например, на 21-м порту висит FTP-сервис. Если к нему удается подключиться (пройти авторизацию, указав верное имя и пароль), то появляется возможность скачивания и закачивания файлов данного компьютера. Наибольший интерес представляют первые 1024 порта, поскольку среди них много стандартных сервисов вроде FTP, HTTP, Telnet и т.д., к которым потенциально можно подключиться (полный список на www.iana.org/assignments/port-numbers). К тому же, в Windows-системах известна уязвимость следующего характера: послав на открытый 139-й порт специальный пакет, можно "выбросить" пользователя из интернета, заставив операционную систему закрыть соединение.

В настоящее время разработано большое количество методов сканирования открытых портов удаленной машины. Перед началом процесса следует определить, находится ли потенциальная жертва в Сети. Для этого в консоли выполняют команду ping, параметром в которой является искомый IP-адрес. В результате выполнения данной команды ваш компьютер отправляет "жертве" ICMP-сообщение и ожидает получения ответа (так называемое ICMP-эхо). Полученный ответ говорит том, что машина с таким адресом в Сети действительно есть. Следующий за этим процесс сканирования TCP- и UDP-портов может быть весьма изощренным и сложным. Если есть желание, с ним можно частично ознакомиться на сайте www.cherepovets-city.ru/insecure. Нам же полученных знаний вполне достаточно, чтобы разобраться с принципом работы InternetConnectionFirewall от дядюшки Билла.


Алгоритм работы брандмауэра ХР

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

Встроенный в Windows XP брандмауэр подключения к интернету является брандмауэром фильтрации пакетов на основе измененного состояния. Суть данного определения станет понятна после того, как разберемся с алгоритмом:

  1. в поле браузера вводится URL;
  2. браузер посылает пакеты (допустим, с порта 3126) веб-серверу (на 80-й);
  3. брандмауэр сохраняет информацию о подключении в так называемой таблице состояний. В дальнейшем она будет использована для подтверждения возвращаемого входящего трафика;
  4. веб-сервер посылает ответ на IP-адрес и исходный порт (у нас он был 3126) запросившего соединение компьютера;
  5. брандмауэр принимает ответ (входящий трафик) и сравнивает адрес источника трафика с адресом назначения пакетов из таблицы состояний; кроме того, сравниваются и номера портов. Если все совпало, то пакет идет беспрепятственно, иначе - блокируется. Кстати, информацию о пропущенных пакетах и подключениях можно просмотреть в журнале безопасности: WINDOWS\pfirewall.log. Если данный файл пустой, следуйте в "Свойства соединения" > "Дополнительно" > "Параметры" > "Ведение журнала безопасности" и ставьте соответствующие галочки. Просматривать этот журнал порой бывает весьма познавательно;
  6. браузер (вы про него еще не забыли?) отображает информацию от веб-сервера.

Все просто.

Если вы желаете сделать свой компьютер сервером и предоставлять с него доступ к службам FTP, HTTP и т.д., тогда в окне "Дополнительные параметры" вам следует поставить соответствующие галочки, иначе брандмауэр будет блокировать попытки подключиться к портам, которые прослушивают эти службы.

Часто приходится встречать в интернете информацию, что компьютер, защищенный встроенным в ХР брандмауэром, невидим для различных сканеров портов. Сам не проверял, но это похоже на правду, давайте разберемся - почему. Представим себе случай, когда злостные хакеры сканируют диапазон IP-адресов, принадлежащих какому-либо предприятию, в надежде "зацепить чайника" и выкачать из него всю нужную информацию. Но вначале из диапазона, допустим, нескольких сотен адресов нужно выбрать один IP-адрес подключенного в данный момент к сети компьютера, ведь мало смысла сканировать IP-адрес выключенного компа... Поэтому, дабы не тратить силы попусту, они посылают по всем IP диапазона ICMP-сообщение, кто откликнется, того и будут сканировать. По умолчанию, компьютер должен откликнутся, послав ICMP-эхо. Но ХР-шный брандмауэр заставит его молчать, и, не получив ответа, хакеры просто его не заметят. Конечно, этот способ не единственный, но и в других случаях машина тоже должна оставаться невидимой, так как брандмауэр отклоняет "незваные" пакеты максимально тихо. Хотя, конечно, не исключено присутствие какой-нибудь уязвимости, все-таки Microsoft...

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


Фильтрация входящего трафика средствами TCP/IP

На компьютерах под управлением Windows 2000 можно создать примитивный брандмауэр, используя фильтрацию TCP/IP. Она полезна с точки зрения безопасности, поскольку работает в режиме ядра, другие же методы контроля входящего доступа зависят от процессов пользователя или служб рабочих станций и серверов. Фильтрация TCP/IP позволяет следить только за входящим доступом. Для настройки безопасности протокола TCP/IP необходимо выполнить следующие действия.

Установите параметр "Фильтрация TCP/IP" в свойствах "Протокола Интернета (TCP/IP)" и нажмите кнопку "Свойства". В появившемся окне нажмите "Дополнительно", перейдите на вкладку "Общие" и выберите параметр. Теперь нажмите кнопку "Свойства" и установите соответствующий флажок. В окне имеются три столбца со следующими именами: TCP-порты, UDP-порты, IP-протоколы.

Для разрешения всех пакетов трафика по протоколу TCP или UDP необходимо выбрать значение "Можно все". Чтобы пропускать только определенный трафик по протоколу TCP или UDP, установите значение "Только" и добавьте нужный порт (чтобы блокировать весь трафик по этим протоколам, не добавляйте номера портов). Но имейте в виду, что таким способом нельзя заблокировать сообщения ICMP, для этого уже потребуется использовать брандмауэр или политику безопасности IP, но это, как говорится, уже совсем другая история.

Дмитрий БАРДИЯН,
localgroup@tut.by

Версия для печатиВерсия для печати

Номер: 

03 за 2004 год

Рубрика: 

Защита информации
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя интересующийся
Все это ерунда. Фаервол использовать надо, но не этот недомерок.

И работает он не в режиме ядра, а в режиме драйвера - это раз. Второе - это то, что даже при настроенном NAT с Wingate'ом компутер все равно будет пинговаться в сети. Да и что говорить, есть админские сканеры портов котрые помимо ICMP сканирования осуществляют Sin, Xmastree, Fin, Ack и др. виды поиска машины...

Аватар пользователя d-mas
Что файервол нужен - спору нет. просто многие предпочитают пользоваться встроенным, надо же знать как он работает.

В режиме ядра работает не файервол, а фильтрация TCP/IP (читай внимательно).

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

Кстати, что за Sin? Может Syn...

Аватар пользователя watchman
для пользователей инета можно было бы и указать необходимые порты, коль уж это статья. спасибо