Достоинства и недостатки Windows ICF

Достоинства и недостатки Windows ICF

Windows ICF (Internet Connection Firewall – файрволл интернет-соединений) встроен в Windows XP (и в Home, и в Professional). Это действительно превосходный файрволл, который предотвратит большинство атак из Интернет. Однако, недостаточные возможности настройки ограничивают его использование опытными пользователями. В этой статье мы дадим обзор ICF, посмотрим, как он действует при моделируемой атаке, и обсудим все плюсы и минусы ICF.

Михаил Разумов, по материалам SecurityFocus

Windows ICF (Internet Connection Firewall – файрволл интернет-соединений) встроен в Windows XP (и в Home, и в Professional). Это действительно превосходный файрволл, который предотвратит большинство атак из Интернет. Однако, недостаточные возможности настройки ограничивают его использование опытными пользователями. В этой статье мы дадим обзор ICF, посмотрим, как он действует при моделируемой атаке, и обсудим все плюсы и минусы ICF.

Обзор ICF

ICF – контекстный фильтр пакетов. Отслеживание состояния позволяет ICF принимать лучшие решения и создавать более полный набор правил, чем обычные фильтры пакетов. По умолчанию, набор правил ICF обеспечивает полную защиту, запрещая весь входящий трафик из Интернет, включая ICMP echo запросы (ping). Это делает ваш компьютер виртуально невидимым для хакеров, пытающихся исследовать вашу машину.

Набор правил ICF может быть изменен вручную, конфигурированием «services» или программно, с использованием ICF API. ICF содержит стандартные сервисы, такие как HTTP и FTP. Кроме того, он позволяет добавлять дополнительные сервисы, использующие соответствующие дополнительные порты. Однако в наборе правил отсутствует возможность ограничить доступ с определенных адресов. Если вы разрешаете HTTP порт 80, вы разрешаете его для всего Интернет. Невозможно запретить доступ для определенного IP адреса, или набора адресов. Это огромный недостаток ICF.

Помимо ручной конфигурации, ICF имеет API, позволяющий приложениям временно изменять набор правил. На рисунке ниже вы видите, как Windows messenger автоматически открывает порты TCP 12212 и UDP 13037 для своей работы.

 

Это одновременно и полезная и вредная возможность. Полезная потому, что позволяет приложениям, таким как Windows messenger, взаимодействовать с ICF. Это особенно полезно для приложений, которые открывают динамические порты, для которых вы не можете специфицировать порт, так как он может меняться. Это свойство очень ценно для людей, которые играют в игры, поддерживающие DirectPlay 8. В то же время, большинство профессионалов безопасности настораживает возможность приложений самовольно менять наборы правил файрволл. Большое недовольство пользователей также вызывает то, что ICF API требует административных привилегий. И если у вас «limited» Windows XP эккаунт, приложение, которое вы используете, не может изменять набор правил ICF через API. Дополнительную информацию по ICF API можно посмотреть по адресу About Internet Connection Sharing and Internet Connection Firewall.

Наконец, ICF осуществляет некоторые дополнительные проверки, в отличие от стандартных фильтров пакетов:

  1. Он навязывает тройную процедуру установления связи – это защищает от некоторых технологий сканирования.
  2. Он блокирует пакеты, имеющие неправильные наборы флагов (например, одновременно SYN и FYN) – это позволяет предотвратить атаки неправильными пакетами на IP стек.
  3. Предотвращает IP-спуфинг с использованием Raw Sockets и опции IP_HDRINCL – защищает от некоторых форм распределенных DOS-атак.

Официальный обзор ICF от Microsoft смотрите на Internet Connection Firewall overview. Более подробная документация на Internet Connection Firewall Feature Overview.

ICF под атакой

Для испытания, мы установили Windows XP со включенным ICF, подключенный к Интернет. В этом тесте мы не включали ICS (Internet Connection Sharing – Совместный Доступ в Интернет), часто используемый в локальной сети. После чего мы запустили атаки против ICF как из Интернет, так и с самой Windows XP.

Инструменты

Для тестирования мы использовали следующие инструменты:

  1. ISIC – Проверщик целостности IP стека
  2. Fscan - Сканер портов под Windows
  3. Nmap - Сканер портов
  4. Foundscan - Утилита оценки уязвимости
  5. Nessus - Утилита оценки уязвимости
  6. fragrouter - Фрагментатор IP пакетов

Методика и результаты

Методика тестирования состояла в имитации атак хакеров против пользователей ICF. Для имитации атак мы использовали доступные бесплатные и коммерческие сканеры портов и утилиты оценки уязвимости. Кроме того, мы использовали такие утилиты, как ISIC и fragrouter для проверки обработки некорректных пакетов. Методика тестирования включала в себя уязвимости, обнаруженные ранее в других файрволлах, с целью убедиться, что Microsoft не совершила тех же ошибок, что и другие производители этих продуктов.

Тестирование было сосредоточено на атаках из Интернет, поскольку большинство хакерских атак производятся именно извне. Кроме того, проверены возможные атаки при проникновении злонамеренного пользователя на саму Windows XP систему.

Мы запустили ISIC, сканеры портов, утилиты оценки уязвимости, перечисленные выше против Windows XP с запущенным ICF. Сканеры портов и утилиты оценки уязвимости используются многими хакерами для определения запущенных сервисов на удаленном компьютере и потенциальных уязвимостей. ISIC и Nmap использовались для создания пакетов, не соответствующих RFC с целью сильной загрузки ICF. Однако, ICF не только заблокировал все атаки, но даже не наблюдалось никакого уменьшения производительности. Пользователь бы даже не заметил проведенных атак. Все пакеты, не соответствующие RFC, созданные ISIC и Nmap, были заблокированы ICF как неправильные.

Также были проведены атаки с помощью fragrouter для фрагментации IP пакетов. С помощью этой утилиты, мы могли разделять единичный TCP пакет на несколько, в надежде, что ICF пропустит их. Ничего не вышло. Также были опробованы другие стандартные атаки против файрволлов. Итог таков, что ICF очень уверенно выдерживает атаки из Интернет.

Поскольку большинство файрволлов имеют DoS-защиту от внутренних пользователей, мы запустили Fscan с самой ICF-системы. И обнаружили небольшой сюрприз. Хотя не возникало ситуации DoS, мы увидели, что независимо от того, какой хост мы сканируем, порты 21, 389, 1002 и 1720 всегда открыты. Что это, backdoor? С чего это вдруг ICF открывает порты? После долгих исследований, мы определили, что эти порты открываются для прикладного прокси-сервера в сервисе ICF/ICS. Оказалось, что с целью поддержки протоколов, плохо работающих с файрволлами, Microsoft создал соответствующие прокси.

Что значит «плохо работающие» протоколы? Протоколы, динамически открывающие входящие порты, делают создание простого контекстного файрволла невозможным. Возьмем для примера протоколы FTP и H.323. В нормальном режиме FTP (не PASV), клиент подсоединяется к FTP серверу по 21 порту. Все замечательно до тех пор, пока клиент не выдаст команду FTP PORT. Эта команда говорит FTP серверу создать обратное соединение к клиенту по произвольному входящему порту для отсылки данных. Если файрволл не обнаруживает и не обрабатывает команду PORT, он заблокирует пакет. ICF включает FTP прокси для обработки команды PORT.

Аналогично, H.323 используется для соединений (звонков) VoIP (Voice over IP – голос через Интернет). Причем только для установки звонков. Реально голос и видео RTP потоки используют динамические порты, определяемые при звонке. Таким образом, ICF, чтобы пропустить соответствующий трафик, вынужден прослушивать 1720 порт.

Порты 389 и 1002 используются протоколами LDAP и ILS для работы Netmeeting.

Прикладные прокси были разработаны для ICS. Однако, поскольку ICS и ICF реализованы как один сервис, прокси работают даже при отключенном ICS. Но, несмотря на то, что и в прокси-серверах могут быть проблемы безопасности, мы остановили свои тесты на этом. Почему? Да потому, что если хакер физически проник уже на ваш компьютер или в локальную сеть в случае работы ICS, у вас уже возможны большие проблемы. Тем не менее, прикладные прокси-сервера могут оказаться хорошим объектом для поиска уязвимостей.

Также, ICF прослушивает PPTP подключения для разрешения пакетов GRE, а также T.120 соединения, используемые для VoIP.

Хотя ICF хорошо защищает от атак из Интернет, мы разработали троянскую атаку по e-mail, которая элементарно проходит через файрволл. Несомненно, ICF – не антивирусный сканер, и не должен обнаруживать трояны; однако, недостаточная фильтрация исходящего трафика позволяет нашему трояну открыть соединение для хакера. Подробнее о таких атаках читайте в статье When Dreamcasts Attack. Кроме того, хотя ICF и защищает против DDoS атак, предотвращая махинации с IP адресом источника, тем не менее, эти адреса можно изменить, создавая Ethernet пакеты с использованием вызовов драйвера NDIS.

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

Плюсы

Windows ICF имеет большое количество возможностей и достоинств. Нельзя не обратить внимания на некоторые из них, в частности:

  • ICF бесплатен и внедрен в операционную систему.
  • ICF уверенно работает как находясь под атакой, так и при сильной загрузке.
  • ICF защитит от большинства атак из Интернет. По умолчанию, набор правил файрволла запрещает почти все соединения, предохраняя от большинства атак. Большинства потому, что он не защитит от вируса или атак, запущенных с вашего компьютера.
  • ICF- -это контекстный файрволл. Такие файрволлы обычно более безопасны, чем простые фильтры пакетов.
  • ICF, возможно, уже установлен у вас и включен. Если вы использовали Network Setup Wizard, возможно он уже включил у вас ICF.
  • ICF API позволяет открывать нужные порты для приложений, чтобы разрешить входящий трафик. Это полезно для таких программ, как Windows Messenger и игр типа Warcraft 3, которым требуются входящие соединения.
  • Прикладные прокси-сервера позволяют ICF работать с протоколами, «не дружащими» с файрволлами.

Минусы

Несмотря на все эти достоинства, Windows ICF может создать некоторые проблемы, особенно для корпоративных и опытных пользователей, которые желают иметь более полный контроль над своим файрволлом. Некоторые из этих проблем перечислены ниже:

  • ICF не дает работать многим приложениям. Вряд ли это хорошая особенность для файрволла, все-таки он предназначен для блокирования трафика. Однако, невозможность создать детальный набор правил доступа, и задать доверенные хосты, заставляет пользователей просто отключать его. ICF не поддерживает RPC, так что почтовые напоминания в Outlook не будут корректно работать. Также не будут работать сервисы типа file sharing.
  • ICF не осуществляет исходящую фильтрацию. Он так создан, что делает его бесполезным против троянов.
  • В ICF отсутствует предупреждение об атаке в реальном времени. Можно только записывать информацию о разрешенном и запрещенном трафиках в файл.
  • Чтобы приложения могли динамически открывать порты, необходимы административные права. Если вы используете принцип наименьших привилегий, и ваш эккаунт – “limited”, ваши приложения не смогут использовать ICF API для динамического открытия портов.

Заключение

ICF – превосходный инструмент безопасности для большинства людей. Он защищает от большинства атак из Интернет. И он хорошо работает с приложениями, которые могут использовать ICF API. ICF имеет поддержку индустриальных протоколов типа FTP, H.323, PPTP. Однако, если вы опытный пользователь, вы можете захотеть использовать другой файрволл, который даcт более детальную возможность настройки, без которой приходится иногда просто отключать ICF, мешающий работе некоторых приложений.

Ваша приватность умирает красиво, но мы можем спасти её.

Присоединяйтесь к нам!