Monday, October 24, 2016

Создание отказоустойчивого IPSec VPN туннеля между Mikrotik RouterOS и Kerio Control



Начиная с версии 8.1 Kerio Control для создания туннелей VPN можно использовать не только пропиетарный протокол Kerio VPN, но и вполне себе расово правильный IPSec. И конечно же мне сразу захотелось скрестить Mikrotik и Kerio Control. 

В этой статье я расскажу о нескольких схемах подключения. Итак, схема первая.

Объединение двух подсетей. Это просто.


И сразу маленькое лирическое отступление на тему направления установки соединения. Т.е. какой из концов туннеля принимает, а какой инициирует соединение VPN. Схема, когда Kerio Control инициирует подключение выбрана для упрощения обеспечения отказоустойчивости VPN туннелей в случае если у Kerio Control и Mikrotik несколько WAN интерфейсов. Подробно на этом я остановлюсь в четвертой части этой статьи. Во всех случаях я буду использовать аутентификацию по предопределенному ключу (паролю).

Для подключения про протоколу IPsec между Kerio Control и Mikrotik RouterBoard на RouterOS 6.1 необходимо на стороне Control создать новый туннель IPsec с следующими настройками:



  • Общие параметры. Активный режим (Control инициирует подключение к Mikrotik). Ведите IP адрес или DNS имя внешнего интерфейса Mikrotik. В примере — 109.172.41.XXX
  • Аутентификация. Предопределенный ключ. Введите надежный пароль.
  • Локальный ИД. Произвольное имя шлюза Control или внешний IP адрес Control. В примере – drgs1-gtw02
  • Отдаленный ИД. Внешний адрес Mikrotik. Если адрес WAN интерфейса Mikrotik отличается от внешнего адреса – укажите адрес WAN интерфейса в Mikrotik. Классический пример, когда провайдер выдает на сетевой интерфейс Mikrotik IP адрес по DHCP из своей серой локальной сети, на который пробрасывает пакеты приходящие на выданный вам внешний статический IP адрес. В этой статье описан именно такой вариант. Поэтому в примере — 10.48.113.102.
  • Удаленные сети. Укажите сеть\маску локальной подсети за Mikrotik. Например 192.168.88.0/24.
  • Локальные сети. Укажите сеть\маску локальной подсети за Kerio Control. Например 192.168.10.0/24.

Для настройки туннеля на стороне Mikrotik необходимо подключиться к роутеру через Winbox и добавить правила фаервола, разрешающие IKE, IPSec-esp, IPSec-ah или временно для отладки весь трафик UDP (очень не советую разрешать весь UDP — заюзают как форвардер DNS запросов злые люди, как минимум) в цепочке input. Для этого в окне терминала необходимо выполнить следующие команды:

/ip firewall filter add chain=input comment="Allow IKE" dst-port=500 protocol=udp
/ip firewall filter add chain=input comment="Allow IPSec-esp" protocol=ipsec-esp
/ip firewall filter add chain=input comment="Allow IPSec-ah" protocol=ipsec-ah
/ip firewall filter add chain=input comment="Allow UDP" protocol=udp

Результатом выполнения команды будут добавленные правила фильтра фаервола. Думаю, что всем это очевидно, но для начинающих отмечу, что эти правила должны находиться выше запрещающих правил в цепочке input. В моем примере выше правила с номером 13.



Далее необходимо отредактировать (или создать) политики шифрования (Proposals) в настройке IPsec. Приведите свои настройки в соответствие с рисунком или выполните в окне терминала команду, указанную ниже. 



Это команда, редактирующая существующее значение политики. В случае, если у вас в proposal нет никаких значений по умолчанию (пусто вообще, нет ни одного) их необходимо создать в соответствии с рисунком. И в этом случае команду выполнять не нужно.

/ip ipsec proposal set [find default=yes] enc-algorithms=3des,aes-128 pfs-group=none

Нам необходимо настроить peer и на этом остановимся особо. Нужно заметить, что в Router OS версии выше 6.0 изменились некоторые настройки, касаемые IPsec Peers и IPSec Policies. В частности, в настройки Peers добавлены новые опции. Теперь для Peer можно указать инициирует Mikrotik или принимает подключение (аналог пассивный\активный в Kerio Control). Нюанс состоит в том, что параметр «passive» нельзя установить через GUI. Его нет ни в Winbox, ни веб интерфейсе управление роутером. По умолчанию, при создании peer через Winbox — он становится активным и начинает непрерывно пытаться установить подключение по адресу указанному в его настройке. Поэтому для создания пассивного конца нашего туннеля необходимо воспользоваться именно CLI и в окне терминала выполнить команду где вместо «password» необходимо указать предопределенный ключ, который вы указали на стороне Kerio Control при его настройке.

/ip ipsec peer add address=109.172.42.XXX/32 dh-group=modp1536 exchange-mode=main-l2tp generate-policy=port-override hash-algorithm=sha1 passive=yes secret=password

Результатом выполнения команды будет созданный peer, ожидающий подключения. В случае, если ваши WAN интерфейсы находятся за NAT провайдера – установите чекбокс NAT-Travesal



При настройке Peer мы указали параметр автоматической генерации политик IPsec. Поэтому нам не требуется создавать ничего в /ip ipsec policies. Необходимые политики будут созданы автоматически после установление соединения. В случае если вы не забыли в настройке туннеля в Kerio Control его включить — это произойдет сразу же, после добавления peer-а.
После этого туннель на стороне Kerio Control должен перейти в статус «Подключено». В Mikrotik на закладке «Policies» в должна появиться автоматически созданная политика для подсетей, которые указывали при настройке Kerio Control в «Удаленные сети» и «Локальные сети». В «Installed SAs» вы увидите, что ваши концы туннелей «подружились» и наконец в «Remote Peers» вы увидите статус подключения. 





Туннель установлен. Но для прохождения трафика между подсетями за Kerio Control и Mikrotik необходимо добавить в правила NAT фаервола правило, которое не позволит замаскарадиться трафику, который вы отправляете в туннель. Если вы не сделаете этого правила – сети дружить не будут, даже если туннель будет установлен. Для этого в окне терминала необходимо выполнить команду:

/ip firewall nat add chain=srcnat dst-address=192.168.10.0/24 src-address=192.168.88.0/24

Важно! Правило должно стоять выше правил маскарадинга. Т.е быть самым верхним в списке правил NAT. 

После этого связь по внутренним адресам между подсетями 192.168.88.0/24 и 192.168.10.0/24 должна работать. На этом настройка туннеля между двумя подсетями окончена. Но это было просто. Дальше интереснее…

Объединение сети за Mikrotik и нескольких VPN сетей за Kerio Control


Рассмотрим более сложный вариант, когда необходимо предоставить доступ локальной сети за Mikrotik к локальным сетям за Kerio Control, подключенных к центральному офису при помощи других VPN туннелей по протоколу Kerio VPN (например). Примерная схема отражена на рисунке ниже.



Казалось бы, чего проще? В настройке VPN туннеля в Kerio Control необходимо всего лишь в списке «Локальные сети» добавить список всех подсетей, к которым необходимо получить доступ из локальной сети за Mikrotik и о которых Head Office уже знает. И соответственно расширить диапазон адресов в правиле NAT в Mikrotik которые не будут маскарадиться, например, создав группу таких адресов в «Address List» и указав эту группу в назначении правила. 

Добавляем, переустанавливаем туннель. Видим, что туннель установился, в IPsec Policies весело добавились автоматические политики для всех подсетей, который мы указали в настройке туннеля на стороне Kerio Control. В Installed SAs видим созданные SAs для всех подсетей. Бинго? А не тут то было…

Вдумчивое курение интернетов на тему IPseс в Mikrotik и объединения локальных сетей за разными типами роутеров дало понимание, что при такой схеме у всех проблема однотипная – невозможность объяснить Mikrotik куда именно слать пакеты. Практически на всех типах роутеров IPSec туннель – это отдельный сетевой интерфейс, что логично. Но не в Mikrotik, и поэтому определить для него маршрут прохождения пакетов в удаленную подсеть невозможно. На практике в связке с Kerio Control — Mikrotik упорно слал пакеты через последний добавленный SAs. Пакеты честно приходили в центральный офис и там отбрасывались Kerio Control. Ни в одной статье я не нашел объяснения логики поведения Mikrotik в таком случае. Я перепробовал все, кажется, возможные варианты с одинаковым результатом. С нулевым. Связь была только с одной подсетью – с последней автоматически добавленной при установке туннеля. 

Пять дней мозгового шторма, потерянный сон, двухдневный запой – позади. Мысль о решении описанном ниже посещала меня примерно на второй день поисков решения, но поначалу была отметена, как крайне кривое решение. Почему кривое и видимые мне недостатки я объясню чуть позже. Но, как известно, на безрыбье – и рак рыба.

Если Mikrotik отлично работает с одной подсетью в политиках IPSec, то нам необходимо логически объединить наши подсети за Kerio Control маской подсети. Т.е. агрегировать подсети за Kerio Control в одну. Адреса в подсетях 192.168.10.0/24, 192.168.20.0/24, 192.168.30.0/24 и 192.168.40.0/24 будут в пределах одной подсети 192.168.0.0/18, добавим именно эту подсеть в список «Локальные сети» при настройке туннеля в Kerio Control и установим туннельное соединение. Mikrotik создаст единственную IPsec Policies и создаст единственный SAs. Теперь он просто не сможет ошибиться куда слать пакеты. Проверка пингом должна показать доступность всех подсетей за Control для сети за Mikrotik. Если вы проверяете доступность по ICMP с Mikrotik – вы должны пускать ping не с WAN интерфейса, а с бриджа, например. Это очень распространенная ошибка, которая приводит к стенаниям в стиле ЧТЯДНТ, ничего не работает, мы все умрем, лапы ломит и хвост отваливается, спасите-помогите.

Для обратного прохождения пакетов из удаленный VPN сетей в сеть за Mikrotik необходимо добавить аналог правила в Mikrotik, которое не позволяет маскарадиться пакетам, отправленным в туннель. Т.к. весь трафик в сеть за Mikrotik из VPN сетей пойдет с интерфейса VPN центрального филиала, нам необходимо правила трафика, которое бы обманывали бы Mikrotik, подменив источник с адреса VPN на адрес из подсети, о которой Mikrotik знает. Правила на рисунке. Адрес 192.168.10.2 – внутренний адрес шлюза центрального офиса.



После этого обмен трафика между подсетями пойдет во все стороны.

Теперь о недостатках это метода. При такой схеме невозможно выдать локальной сети «маршруты» (я намерено беру слово в кавычки, т.к. в реальности никаких привычных для понимании маршрутов в таблице маршрутизации Mikrotik в удаленные подсети нет вообще) только для конкретных удаленных подсетей, подключенных к Head Office. Теоретически существует возможность, что вы не сможете логически объединить адреса в удаленных подсетях в одну при помощи маски. Т.к. они могут находиться вообще в разных классах сетей. В связи с тем, что в диапазон попадает громадное количество адресов, в теории существует возможность, что вам понадобится использовать другие адреса из этого диапазона не в IPSec туннеле, что будет невозможно. Внимание, если ваш адрес Mikrotik попадает в этот диапазон (!!!) то установка туннеля приведет к тому, что вы потеряете связь с Mikrotik. В этом случае зайдите на него через Winbox по MAC адресу и отключите туннель или отключите его на стороне Kerio Control. После этого или вынесите локальный адрес Mikrotik за пределы диапазона, который он получает от Contol при установке VPN туннеля или это (т.е. вариант с агрегацией локальных сетей за Kerio Control) вообще не ваш случай. 

В общем я бы сказал, что решение кривое до нельзя. Кривое, но рабочее. В уже сложившейся инфраструктуре, возможно, придется перепиливать локальные адреса подсетей. Но разработчики RouterOS не оставили мне выбора. Добавление интерфейса для IPSec в хотелках, насколько я знаю, уже давно. На англоязычных форумах неоднократно видел петиции к разработчикам, полные слез и отчаяния.

Используем роутер Mikrotik в качестве клиента VPN


Использование Mikrotik как клиента даст возможность забыть о плясках с IPSec и маршрутизацией не маршрутизируемого. Но имейте ввиду, что доступа к сети за Mikrotik со стороны локальной сети за Kerio Control не будет. И это логично. Учтите, что т.к. Kerio Control лицензируется на подключения в том числе и VPN клиентов — такой тип подключения уменьшает счетчик лицензированных подключений на единицу. Ну или если по-простому – использует одну лицензию на подключение. 

Здесь все предельно просто. Создадим пользователя в Kerio Control или отредактируем существующего. На закладке «Права» установим чекбокс «Пользователи могут подключаться через VPN». 



В правила трафика добавляем правило позволяющее подключаться к Kerio Control по протоколу L2TP из интернета или можете ограничить источник списком доверенных адресов. На рисунке у меня позволено подключение только для списка доверенных адресов удаленных администраторов. 



На стороне Mikrotik необходимо добавить новый интерфейс L2TP Client, выполнив команду в окне терминала:

add comment="L2TP VPN Client" connect-to=109.172.42.XXX disabled=no max-mru=1460 max-mtu=1460 name=INTERFACE-NAME password=password user=username

Значения адреса, имени интерфейса, имени и пароля подключения вам необходимо заменить на свой адрес Kerio Control, свое произвольное имя интерфейса и свой логин\пароль, который вы создали или отредактировали в настройках пользователя. Результатом выполнения команды должен быть новый созданный интерфейс, который немедленно установит соединение с сервером.



В списке адресов Mikrotik появится новый адрес, динамически выданный ему VPN сервером Kerio Control.



Для того, чтобы локальная сеть за Mikrotik получила доступ в сеть за Kerio Control необходимо добавить статические маршруты в таблицу маршрутизации. Для этого в окне терминала необходимо выполнить команды, заменив имя интерфейса на существующее у вас:

/ip route add comment="Route to 192.168.20.0/24" distance=1 dst-address=192.168.20.0/24 gateway=INTERFACE-NAME
/ip route add comment="Route to 192.168.30.0/24" distance=1 dst-address=192.168.30.0/24 gateway=INTERFACE-NAME
/ip route add comment="Route to 192.168.40.0/24" distance=1 dst-address=192.168.40.0/24 gateway=INTERFACE-NAME

Результатом будут добавленные статические маршруты в удаленные подсети за Kerio Control через интерфейс VPN.

Теперь добавим правило маскарадинга в Mikrotik. Для этого в окне терминала выполним команду:

/ip firewall nat add action=masquerade chain=srcnat out-interface=INTERFACE-NAME src-address=192.168.88.0/24

На этом все, доступ из локальной сети за Mikrotik в сеть за Kerio Control и во все сети, подключенные к нему по другим VPN туннелям должен быть. Не забудьте исправить мои значения в командах на свои.

Обеспечение отказоустойчивости туннеля VPN


Ну и на закуску самое сладкое. Обещанный рассказ про организацию отказоустойчивости туннелей. До версии Kerio Control 8.1 в настройке активного подключения нельзя было указать больше одного адреса принимающего конца туннеля, поэтому для обеспечения отказоустойчивости VPN туннелей я бы голосовал за схему, когда Kerio Control в центральном офисе именно принимает подключения. В этом случае отказоустойчивость можно было бы обеспечить мониторингом входящих каналов центрального офиса и автоматической смены единственного DNS имени, на который филиалы устанавливают подключения. Я использую для этого сервис DynDNS и систему мониторинга PRTG Network Monitor. Краткая суть метода такова. При помощи PRTG проверяется доступность каналов центрального офиса и в случае, если фиксируется падение канала, на который филиалы устанавливают подключения, то через API DynDNS, PRTG автоматически меняет DNS имя, зарегистрированное на сервисе DynDNS на которое филиалы устанавливают соединение, дергая ссылку в интернете. Метод рабочий 146%. Проверен у меня на более чем полусотне туннелей подключенных к центральному офису классической звездой. В случае восстановления можно менять IP адрес обратно, можно оставить как есть. Тут как пожелаете.

Казалось бы, что мешает в случае с Mikrotik сделать также? Но и тут подножка от RouterOS. В настройках peer вы хоть и сможете указать DNS имя принимающего конца туннеля, но при сохранении оно будет отрезолвлено и записано как IP адрес. В таком случае придется изобретать скрипты, которые будут мониторить каналы (вместо PRTG) на Kerio Control и менять настройки peer в случае, если текущий канал, на который устанавливается соединение — становится недоступным. Плюс масса плясок с политиками IPSec. И это видится мне жуткой головомойкой. 

Теперь же Kerio Control сам замечательно умеет обеспечивать отказоустойчивость в случае, если сам инициирует подключение, в настройке туннеля можно указать несколько IP адресов (или DNS имен) принимающего конца туннеля. Таким образом, создав на стороне Mikrotik два peer, принимающих подключение, можно добиться желанной отказоустойчивости. Ну, погнали наши городских… Примерная схема отображена на рисунке. Необходимо обеспечить живучесть туннеля при падении любого WAN интерфейса на Kerio или ISP на Mikrotik (названы по-разному во избежание путаницы). 



Начнем с настройки Mikrotik. Т.к. он не умеет понимать имена DNS в значении адреса настроек IPsec Peers, то нам придется создать два пира, для обоих WAN интерфейсов центрального офиса. Для этого перейдем в окно терминала и введем команду, заменив значения адресов и предопределённый ключ на свои:

/ip ipsec peer add address=109.172.42.XXX/32 dh-group=modp1536 exchange-mode=main-l2tp generate-policy=port-override hash-algorithm=sha1 nat-traversal=yes passive=yes secret=PASSWORD
/ip ipsec peer add address=95.179.13.YYY/32 dh-group=modp1536 exchange-mode=main-l2tp generate-policy=port-override hash-algorithm=sha1 nat-traversal=yes passive=yes secret=PASSWORD

Я обращаю ваше внимание, что если вы уже создавали peer по инструкции приведенной в предыдущих частях статьи и решили вместо CLI воспользоваться Winbox и скопировали уже созданный до этого peer, то настройка passive (та самая, которая определяет инициирует или принимает Mikrotik подключения) – не копируется. Поэтому на этом этапе я настоятельно рекомендуется воспользоваться инструментами командной строки. Результатом выполнения команды должно быть успешное создание двух peers ожидающих подключения со стороны Kerio Control.

Но этого мало. При падении WAN1 на Kerio Control туннель успешно переустановится, а вот если упадет ISP1 канал на Mikrotik, то в таком случае значение «удаленный ИД» настроек туннеля в Kerio Control в котором мы указывали серый провайдерский IP на ISP интерфейсе Mikrotik — не совпадет с реальным значением. И мы вместо успешного переподключения получим милую ошибку в консоли администрирования Kerio Control – «Несовпадение ИД». 

Засада? Засада… И я почти отчаялся, потому что фонтан мыслей иссяк, я решительно не понимал, как автоматизировать смену этого ИД. Поколдовал с hosts файлом, но безуспешно. Пришло время вспомнить слова одного умного дядьки с уже, наверняка, совсем седой задницей, который в мохнатом еще году говорил мне – если ничего не помогает, то самое время заглянуть в мануалы и логи. Ну… мануалы – это не про нас (здесь гомерический хохот автора), полез в debug-log Kerio Control, предварительно включив в него все сообщения, касаемые IPSec. Что я могу сказать – ищущий, да обрящет. В нашем случае, когда параметр «удаленный ИД» может динамически изменяться в зависимости от того, к какому IP адресу подключается туннель — в настройках туннеля Kerio Control можно в удаленный ИД указать значение «%any». 
В именах хостов введем через точку с запятой все адреса ISP1 И ISP2 на Mikrotik и значение «%any» в «Удаленный ИД» как на рисунке ниже.



Сохраняем, применяем, счастливыми глазами смотрим на изменившийся статус туннеля на «Подключено» и приступаем к проверке. Эмулируем падение основного канала на Kerio Control сменой мест резервного и основного канала – туннель переподключился и живой. Эмулируем падение основного канала на Mikrotik выдергиванием из него шнурка провайдера. Пока Kerio Control осилил, что туннеля уже нет — прошло около двух минут, но он все таки увел VPN на резерв. Бинго! 

Все эксперименты проводились на Kerio Control 8.1 и RouterOS 6.1. Названия переменных и настроек ROS в командах терминала, приведенные здесь, соответствуют этой версии (6.1). На сегодняшний день версия 6.10 имеет несколько измененных названий настроек, но при минимальном тюнинге все работает и на текущих версиях Kerio Control 8.2 и RouterOS 6.10. Все вышесказанное может быть чуть меньше, чем бредом сумасшедшего ИТ-ишника, я не претендую на правильность формулировок и определений и с удовольствием приму замечания и рекомендации, ведь Mikrotik для меня зверушка новая и загадочная, в отличии от Kerio Control, который почти прочитанная книга.

Friday, October 21, 2016

Шифрование файлов Dropbox

Облачные хранилища данных, такие как Dropbox, более глобальный Amazon и др. предоставляют пользоватлям отличную возможность всегда иметь под рукой свои документы, фото или видео. Причем в последней редакции, с возможностью отката на предыдующие версии документов. Удобно? Бесспорно. А как насчет безопасности? Здесь можно выделить несколько нюансов:
  • Ваши личные данные защищены от всего мира только вашим паролем, который вообще-то можно попытаться подобрать/угадать.
  • Всегда есть вероятность, что в крупных и находящихся под постоянным прицелом сервисах онлайн-хранилищ рано или поздно найдут лазейку и ваши отсканированные права или паспорт утекут в мир.
  • Когда вы, находясь на работе, запускаете Dropbox, то при этом на рабочий компьютер синхронизируются ВСЕ файлы (если они не отмечены как несинхронизируемые в интерфейсе Dropbox). Отмечать какие файлы синхронизировать, какие - нет, не всегда удобно. Вводить каждый день пароль от Dropbox может быть неудобным.
  • Когды вы, придя к кому-то в гости, вынуждены подключить свой Dropbox, те файлы, что зашифрованы, никогда не будут доступны другим.
  • Как выяснилось, верить словам майнтейнерам таких проектов, что "ваши файлы надежно зашифрованы и доступны только вам", нельзя. Ваши личные данные никто, кроме вас, не защитит.
Поэтому тема шифрования файлов на общедоступных сервисах так актуальна.
Шифрование файлов можно осуществлять двумя способами:
  1. Использование криптоконтейнера (например, TrueCrypt).
    При этом после каждого сохранения маленького файлика будет синхронизироваться весь контейнер. А если это 1 Гб??? В общем, это хороший метод, но не для online-сервиса.
  2. Шифровать каждый файл в отдельности.
    Изменили маленький фалик - только его и обновили. Трафик минимальный, время синхронизации - тоже. Минус - если не шифровать имена файлов, можно привлечь повышенное внимание и лишнюю попытку к расшифровке, хоть бы и грубой силой.
Мы выберем второй метод - будем шифровать каждый файл в отдельности, при этом шифровать будем не только сами данные, но и имя файлов. Для этого испольуем программу BoxCryptor, которая "на лету" шифрует каждый файл по отдельности. Используется алгоритм AES-256. BoxCryptor монтирует новый локальный диск, ссылающийся на какую-либо папку, например, в каталоге Dropbox-а. При этом файлы в самой папке зашифрованы, а при работе через примонтированный диск эти же файлы доступны как обычно:
BoxCryptor - шифрование файлов Dropbox
На рисунке видно, что при доступе через примонтированный диск S: с файлами можно работать как обычно. При этом в самой папке Dropbox эти файлы все время зашифрованы.
Доступ к зашифрованным данным приосходит на основе пароля, который необходимо вводить при монтировании диска (либо вручную, либо дать программе запомнить этот пароль).
BoxCryptor - шифрование файлов Dropbox
Установка и настройка BoxCryptor элементарная:
  1. Скачали (бесплатная версия на 2 Гб).
  2. Запустили. Программа сама определит, что у вас установлен (или нет) Dropbox и предложит создать защищенную папку сразу в вашем Dropbox.
  3. После этого вы придумаете пароль и ВСЕ.
Сама программа BoxCryptor работает под Windows. Файлы, защищенные BoxCryptor, могут быть доступны в Linux и MacOS с помощью EncFS.

Google - лучший друг хакера

За последние несколько лет появилось множество статей, которые предупреждают о том, что хакеры (или cracker'ы, если хотите) используют поисковую систему google для получения доступа к файлам, к которым, по идее, они доступа иметь не должны. То, что я расскажу вам, возможно, кто-то уже давно использует в своих целях, но мне всегда было интересно самому узнать, как это работает. В 2001 году, James Middleton написал статью для vnunet.com, в которой шла речь об использовании хакерами специальных слов в поисковой машине google, для нахождения важной банковской информации:
"В сообщении, находившемся в одной из security конференций было сказано, что введя 'Index of / +banques +filetype:xls' в строку поиска, в конечном счете можно было заполучить важные / секретные таблицы Excel из Французских банков. Та же самая технология может быть использована для поиска файлов с паролями"[1]
В другой статье, которая появилась на wired.com, рассказывается, как Adrian Lamo, хакер часто попадающий в сводки компьютерных преступлений, использовал Google, чтобы получить доступ к web сайтам крупных корпораций.
"Например, введя фразу "Select a database to view" - обычная фраза, используемая в FileMaker Pro database interface" - Google выдает примерно 200 ссылок, большинство из которых ведут на страницу с доступом к FileMaker для всех пользователей."[2]
Подобные статьи продолжали и продолжали появляться в internet. Правительственные и Военные сайты Соединенных Штатов были тоже уязвимы, потому что скрипты используемые админами, можно было легко найти с помощью google. Медицинские карты, личные записи - все могло неожиданно оказаться в руках пользователей этой поисковой системы. Но в статьях никогда не было описано, как можно использовать Google в "таких" целях. Даже пример строки, которую вводил хакер не предоставлялся широкой аудитории. После того, как я последний раз прочитал подобную статью, я решил, что пора самому во всем разобраться - действительно ли google позволяет делать все то, о чем так много раз упоминалось в различных докладах. Следующий текст является результатом моих исследований.
Теория
На самом деле, теория очень проста. Чтобы получить интересующую вас информацию, вам нужно попробовать представить, в каких файлах эта информация может находиться, а затем просто попытаться их найти. (Например, попробуйте поискать *.xls файлы). Или же вы можете избрать более интересный подход - подумать, какой софтустановленный на атакуемой машине, предоставляет возможность выполнять нужные вам задачи, затем ввести критические/опасные файлы этого программного обеспечения в строку поиска. Примером может послужить система управления содержанием сайта (content management system). Вам нужно исследовать эту систему, выяснить, какие файлы она в себя включает, а затем воспользоваться google. Но вернемся к примеру о базе данных, рассмотренном чуть выше. Вы знаете, что строка "view database" находится на тех web страницах, которые не должны быть вам доступны. Следовательно, вам остается только найти страницы, в которых содержится данная строка или же узнать, что, например, опция "view database" ссылается на страницу "viewdbase.htm", то есть ее и надо будет ввести в строку поиска.
Самое главное - четко поставить перед собой цель и знать, что вы хотите найти. Только после этого вы можете воспользоваться Google.
Опции поиска Google
Специальные типы файлов: *.xls, *.doc, *.pdf *.ps *.ppt *.rtf
Google позволяет искать специальные типы файлов, то есть, как результат поиска, вы получаете не html-страницы (web сайты), а, например, файл Microsoft Excel. Вот что нужно ввести в строку поиска:
Filetype:xls (для файлов excel) или filetype:doc для файлов Word.
Наверное, будет интереснее найти файлы *.db и *.mdb. Можно поискать и другие типы файлов. Первое, что приходит на ум - *.cfg или *.pwd, *.dat файлы и т. п. Сначала подумайте, какие файлы могут содержать ценную информацию.
Inurl
Еще одна полезная опция при поиске - inurl: опция, которая позволяет искать заданные слова в url. Это дает вам возможность искать нужные каталоги.
Пример: inurl:admin Результатом поиска станут web-сайты, у которых в url имеется слово "admin".
Index of
Опция "index of" тоже не до конца продумана разработчиками google, но нам она очень пригодится. Если вы используете опцию "index of", то как результат, google вам покажет листинг директории на сервере. Вот пример:
"index of" admin или index.of.admin
В результате вы получите листинг множества директорий 'admin'.
Site
Опция "site" позволяет показывать результаты поиска только по определенному домену или сайту. Например, вы можете искать как на всех .com или .box.sk или .nl сайтах, так и только на одном сайте. Будет очень интересно поискать на военных и правительственных сайтах. Вот пример строки поиска:
Site:mil или site:gov
Site:neworder.box.sk "board"
Intitle
Intitle - еще одна интересная опция. Она позволяет вам искать html файлы, в заголовке которых присутствует нужное вам слово или комбинация слов. Строка поиска при этом будет выглядеть так: intitle:здесь_слово. Вы можете узнать, какие слова присутствуют в заголовке, скажем, той же системы управления содержанием сайта, а затем искать эти слова в google, используя при этом опцию Intitle. В результате, вы получите доступ к подобным системам на других сайтах.
Link
Опция Link позволяет вам узнать, на каких web страницах есть ссылка на указанный вами сайт. Как описано в книге 'Hacking Exposed Third Edition' (Секреты Хакеров Третье Издание), эту опцию мы также можем использовать в своих целях.
Комбинируем опции при поиске
Все вышеупомянутые опции могли быть, а могли и не быть вам известны. В любом случае, используя их, мы получим интересный результат. Факт остается фактом - свою магическую силу google проявляет тогда, когда мы начинаем комбинировать друг с другом эти опции. Например, можете попробовать поискать это:
inurl:nasa.gov filetype:xls "restricted" или это: site:mil filetype:xls "password" или может быть это: site:mil "index of" admin
(Эти примеры я взял из головы и не знаю, выдаст ли google что-нибудь интересное. Вам необходимо найти такое сочетание опций, чтобы получить ожидаемый результат).
Примеры; Практический Материал
Специальные типы файлов: *.xls, *.doc, *.pdf *.ps *.ppt *.rtf
Для начала, попробуйте поискать те файлы, в которых, вы думаете, находится интересующая вас информация. Для меня очевидным выбором стали следующие вещи:
Password, passwords, pwd, account, accounts, userid, uid, login, logins, secret, secrets. Конечно, все эти слова я искал с расширением *.doc, *.xls и *.db
Вот и появились первые интересные результаты, особенно, если искать файлы с расширением *.db. Правда, пароли я также находил и в *.doc файлах.
http://www.doc.state.ok.us/Spreadsheets/private%20prison%20survey%20for%20web.xls
http://www.bmo.com/investorrelations/current/current/suppnew/private.xls
http://www.nescaum.org/Greenhouse/Private/Participant_List.xls
http://www.dscr.dla.mil/aviationinvest/attendance_5Apr01.xls
http://web.nps.navy.mil/~drdolk/is3301/PART_IS3301.XLS
Admin.cfg
Admin.cfg, в большинстве случаев, конфигурационный файл админа. Многие разработчики софта также используют имена типа "config", "admin" или "setup". Часто такие файлы содержат чувствительную информацию и поэтому они не должны быть доступны большинству людей. Я попытался поискать файл admin.cfg, используя следующую строку поиска:
inurl:admin.cfg "index of"
В результате, google выдала множество файлов, среди которых были очень интересные ;). Я, например, нашел файл: http://www.alternetwebdesign.com/cgi-bin/directimi/admin.cfg, в котором находились пароли Один пароль был от базы данных, которая находилась по адресу: http://www.alternetwebdesign.com/cgi-bin/directimi/database.cgi?admin.cfg. В базе данных находилась конфиденциальная информация клиентов этой компании. Я решил связаться с этой компанией и рассказать об уязвимости. Люди там оказались дружелюбные и сказали, что в ближайшее время постараются залатать брешь.
Webadmin
Некоторое время назад, когда я работал над этой статьей, я зашел на web сайт:
http://wacker-welt.de/webadmin/
Там было написано, что "webadmin" позволяет удаленно редактировать содержимое web сайта, загружать файлы и т.д. Главная страничка центра управления (control center) webadmin называется "webeditor.php". Очевидно, что следующим моим шагом стало посещение google и использование опции 'inurl', чтобы найти страницы webeditor.php. Вот, что я ввел в строке поиска:
inurl:webeditor.php
и вот, что я нашел:
http://orbyonline.com/php/webeditor.php
http://www-user.tu-chemnitz.de/~hkri/Neuer%20Ordner/webeditor.php
http://artematrix.org/webeditor/webeditor.php
http://www.directinfo.hu/kapu/webeditor.php
Ко всем этим файлам доступ был неограничен, а все потому, что владельцы сайтов не потрудились поставить (правильно) защиту, используя .htaccess. Подобная ошибка позволяет абсолютно любому пользователю интернета заменять web страницы на сервере, а, следовательно, и дефейсить сайт. Возможность загружать свои файлы дает возможность получить полный доступ к серверу.
Походив по этим сайтам, я заметил, что файл, позволяющий загружать файлы, называется "file_upload.php". Затем в дело вступает google.
http://www.hvcc.edu/~kantopet/ciss_225/examples/begphp/ch10/file_upload.php
Вот хороший пример:
http://www.pelicandecals.com/admin/webeditor.php
Данный скрипт позволяет вам изменять файлы, как и в предыдущих примерах, включая index.php. По идее, любой заинтересованный человек может изменить существующий или загрузить свой скрипт на сервер и выполнить его. О последствиях, думаю, упоминать не стоит.
Там также присутствовала ссылка "Return Administration", кликнув по которой, я оказался здесь:
http://www.pelicandecals.com/admin/administration.html
Тут была доступна информация о покупателях, возможность менять цены на товары и т.д.
Системы управления содержанием сайта
Системы управления содержанием сайта - это программы, позволяющие web мастерам редактировать, изменять содержимое web сайта. Тоже относится и к панелям управления web сайтов. Суть заключается в том, что вам надо определить, какие файлы являются ключевыми в данном продукте. Таким файлом может быть "cms.html", "panel.html" или "control.cfg".
Frontpage Server Extensions HTML Administration Forms
"Вы можете удаленно администрировать FrontPage Server Extensions с любого компьютера, подключенного к internet, используя FrontPage Server Extension HTML Administration Forms."
Вот, что говорит об этом документация Microsoft. Это значит, пользователи, имеющие доступ к этим формам, могут выполнять некоторые функции администратора, удаленно. А это значит, что формы должны быть хорошо защищены от неавторизованных пользователей. Ну что, как насчет поискать такие формы в интернете? Первое, что нам нужно сделать - выяснить, какие файлы использует этот софт Краткий визит на web сайт Microsoft или беглый взгляд в документацию FrontPage покажет, что главной страницей всех форм администратора является "fpadmin.htm". Именно этот файл мы и будем искать. Но, сначала, мы должно правильно подобрать те опции, которые будут использоваться в строке поиска, чтобы получить нужный нам результат. Если проводится установка по умолчанию, то все файлы помещаются в директорию "admin". Вспомнив все, что мы узнали об опциях google и теории поиска, ожидаемый результат может выдать строка поиска типа:
inurl:fpadmin.htm "index of" admin или inurl:admin/fpadmin.htm
А вот и полученные при поиске результаты:
http://www.lehigh.edu/~ineduc/degree_programs/tbte/admin/
http://blackadder.eng.monash.edu.au/frontpage/admin/
http://www.lehigh.edu/collegeofeducation/degree_programs/tbte/admin/
http://www.vsl.gifu-u.ac.jp/freeman/frontpage4/admin/
http://www.tech-geeks.org/contrib/loveless/e-smith-fp-2002/frontpage/version5.0/admin/1033/fpadmin.htm
http://fp.nsk.fio.ru/admin/1033/fpadmin.htm
Вот что еще написано в документации к FrontPage:
"Из соображений безопасности, HTML Administration Forms сразу после установки не активны, что не позволит удаленно администрировать FrontPage из web браузера."
Это означает только одно - некоторые ссылки, которые выдала нам поисковая система google, могут оказаться бесполезными и есть только один способ проверить их работоспособность - попробовать воспользоваться некоторыми функциями администратора и посмотреть на результат. Я решил не заходить так далеко, чтобы не нарушать закон. Но я здесь не для того, чтобы учить вас хорошим манерам, по крайней мере сегодня.
Freesco Router
Программное обеспечение Freesco router для Linux по умолчанию устанавливает маленький браузер, который позволяет владельцам контролировать работу роутера через http протокол. По умолчанию, логин и пароль для панели управления - "admin". Очень многие пользователи freesco не знают об этом. Вы можете поискать панель управления Freesco роутеров, использую следующую строку:
intitle:"freesco control panel" или "check the connection" эти слова находятся либо в заголовках страниц, либо на самих страницах. Все сводится к одному - вы должны изучить софт найти те его части, которые отвечают за что-то важное (та же страница администратора) и составить такую строку, воспользовавшись которой, вы получите доступ к этим самым частям.
Дополнительные советы
    • Запомните, Английский, самый распространенный в интренете язык, но он не единственный. Пробуйте искать слова или строки из вашего родного языка или Французского или Немецкого и т.д. Например, "beeheer" по-немецки означает "администрация".
    • Вы можете использовать строки из списка уязвимостей любого сканера безопасности (security scanner). За примерами можно обратиться сюда: http://paris2k.at.box.sk/listings/
    • Пробуйте искать файлы "config.inc.php" или "mysql.cfg" - они могут содержать комбинации логин-пароль от базы данныхMySQL Попробуйте в строке поиска использовать слова PHP SQL, mySQL и т.д.
    • Попробуйте следующие комбинации: inurl:admin "index of" "database" или inurl:phpmyadmin "index of" или inurl:mysql "index of" site:neworder.box.sk intitle:index.of или intitle:index.of.private( = intitle:"index of private")
Заключение
Internet - это сеть, к которой подключены сотни тысяч, а то и миллионов web серверов и по идее, можно получить доступ к любым данным, конечно, если они не защищены подобающим образом. Как разработчики программного обеспечения, так и конечные пользователи должны уделять больше внимания конфигурации защиты, устанавливаемой по умолчанию и политике безопасности. В конце концов, всегда найдутся люди, которые допускают ошибки, устанавливают все по умолчанию, используют плохо защищенное программное обеспечение и совсем об этом не беспокоятся или все еще верят, что ничего не произойдет если они поместят все это в таком виде в интернет. Но все же находятся любопытные личности, которым нравится находить интересную информацию не для посторонних глаз. Google может вам значительно помочь в таких делах, к тому же это совсем не трудно.

Тестирование Firewall Методика тестов

Тестирование производилось на экспериментальном ПК под управлением лицензионной Windows XP с установленным SP1 (тестирования проводились в идеализированных условиях - "операционная система + Firewall" для исключения влияния других программ на чистоту эксперимента). В качестве индикатора успешного доступа к сервисам использовалась утилита APS. В качестве средств внешнего воздействия применялись:
  • сканер XSpider 6.5 и 7.0
  • Retina Network Security Scanner 4.9
  • NMAP
  • несколько сканеров моей разработки.
Кроме того, применялся сниффер CommView 4.1 (в качестве средства наблюдения за сетевым трафиком и в качестве утилиты для генерации и отправки пакетов с различными нарушениями в структуре). Применялись т.н. флудеры (flooder) распространенных типов, утилиты для имитации троянских программ.
На испытательном ПК в качестве средств доступа к сети и Интернет применялся IE 6, Outlook Express 6, TheBat 1.60, MSN Messanger 6.1. Кроме них в тесте участвовали имитаторы троянских программ и реальные троянские / Backdoor программы из моей коллекции (в частности Backdoor.Antilam, Backdoor.AutoSpy, Backdoor.Death, Backdoor.SubSeven, Backdoor.Netbus, Backdoor.BO2K), сетевые / почтовые вирусы (I-Worm.Badtrans, I-Worm.NetSky, I-Worm.Sircam, I-Worm.Mydoom, I-Worm.MSBlast), загрузчики троянских программ TrojanDownloader (в частности TrojanDownloader.IstBar) и шпионские SpyWare компоненты. Главной задачей тестов была попытка взглянуть на Firewall глазами пользователя, отметить его сильные и слабые с моей точки зрения стороны.

Kerio Technologies WinRoute Pro v4.2.5

Инсталляция и деинсталляция:
Проходит без проблем.
Установка с настройками "по умолчанию", без правил - действует только NAT. Работа в сети - без проблем, результаты сканирования - APS не показывает состояние тревоги, сканер считает, что все порты закрыты. Сам Winroute не выдает сигналов тревоги и никак визуально не идентифицирует факт сканирования.
Достоинства:
  1. Функционирует сразу после установки, дыры отсутствуют даже без настроек;
  2. NAT трансляция сразу дает существенную защиту от сканирования портов и удаленных атак;
  3. Хорошо построено протоколирование
Недостатки и особенности:
  1. Пароль администратора должен быть задан сразу после установки, иначе возможно удаленное отключение Firewall или его перенастройка;
  2. Процессы видны в памяти под характерными именами и их уничтожение приводит к отключению защиты - APS поднял тревогу в момент уничтожения процессов;
Общая оценка:
Winroute - это серьезный продукт, гибрид Firewall, прокси сервера, NAT транслятора, простого почтаря …, он требует настройки и понимания принципов работы сети.

Outpost Firewall Pro 2.1 Build 303.4009 (314)

Инсталляция и деинсталляция:
Установка под XP проходит без проблем, при запуске включается режим обучения.
Достоинства:
  1. Русифицированный интерфейс, ориентированный на пользователя. Интерфейс достаточно хорошо продуман, все понятно с первого взгляда.
  2. Встроенный детектор атак. Обнаруживает простые атаки типа сканирования портов, тесты IDS это подтвердили - по крайне мере, сканирование портов он ловит отлично;
  3. Показывает список приложений, прослушивающих порты TCP и UDP (с указанием списка портов по каждому приложению и информации о моменте начала прослушивания - полезно для отлова троянских программ и шпионского ПО);
  4. Режим обучения удобен для обнаружения троянских программ и визуальной настройки правил - он реализован типовым образом и основан на запросе допустимости операции, производимой приложением;
  5. В комплекте содержит ряд плагинов (IDS, средства борьбы с рекламой и т.п.)
Недостатки и особенности:
  1. По умолчанию открыты порты 139 и 445 (XP), поэтому после установки нужно в обязательном порядке создавать правила для блокирования этих портов.
  2. По умолчанию "типовым" приложениям разрешено очень многое - опять-же, стоит пройтись по настройкам и внимательно их проверить;
  3. Firewall виден в списке задач и не препятствует своему удалению - после удаления защита отключается (APS тут же фиксирует тревогу)
Общая оценка:
По сочетанию возможностей и удобства работы (да еще и с поправкой на русскоязычный интерфейс) на мой взгляд один из лучших продуктов на момент тестирования
Получить подробное описание этого Firewall и приобрести его можно в магазине OZON - Outpost Firewall Pro Русская версия (замечу, что по цене это один из самых недорогих русскоязычных Firewall)

Outpost Firewall Pro 2.5.369.4608 (369)

Инсталляция и деинсталляция:
Установка под XP SP 2 проходит без проблем, после установки требует перезагрузку, при запуске включается режим обучения. Инсталлятор предлагает на выбор автонастройку Firewall или ручную настройку. Новшества этой версии описаны на сайте разработчиков http://www.agnitum.com/products/outpost/history.html
Достоинства:
  1. Есть режим "невидимость", и он включен по умолчанию;
  2. Экспериментально проверена стабильная работа этого Firewall под SP1 и SP2;
  3. Есть автопоиск подсетей - по крайней мере уверенно находится "домашняя" подсеть
  4. Настройки объединяются в конфигурации, которые можно сохранять на диске - таким образом можно сделать несколько разных конфигураций и загружать их по мере необходимости
  5. Русифицированный интерфейс, ориентированный на пользователя. Интерфейс достаточно хорошо продуман, все понятно с первого взгляда;
  6. Встроенный детектор атак. Обнаруживает простые атаки типа сканирования портов, тесты IDS это подтвердили - по крайне мере, сканирование портов он ловит отлично;
  7. Показывает список приложений, прослушивающих порты TCP и UDP (с указанием списка портов по каждому приложению и информации о моменте начала прослушивания - полезно для отлова троянских программ и шпионского ПО);
  8. Режим обучения удобен для обнаружения троянских программ и визуальной настройки правил - он реализован типовым образом и основан на запросе допустимости операции, производимой приложением. Кроме того, в описании заявлено, что есть защита от внедрения постороннего кода в доверенный процесс;
  9. В правилах можно указывать не только имя программы, но и ее параметры - это в ряде случаев полезно;
  10. В комплекте содержит ряд плагинов (IDS, средства борьбы с рекламой и т.п.)
  11. При удалении процесса outpost.exe происходит блокировка обмена с сетью - это полезная возможность
  12. Есть опция слежения за библиотеками процесса - к примеру, при появлении нового BHO в IE выводится сообщение о том, что у процесса IE изменился состав используемых им библиотек;
  13. Продуманный просмотрщик протоколов (работает в реальном времени, данные лдостаточно логично сгруппированы
  14. Есть особые настройки для RAW Socket - можно указать, каким приложениям можно их использовать
Недостатки и особенности:
  1. Firewall виден в списке задач и не препятствует своему удалению (но при удалении процесса происходит блокирование обмена с сетью - поэтому это не недостаток);
  2. Большое потребление ресурсов - 33 МБ ОЗУ + 31 МБ вирт. памяти, что конечно многовато, хотя на ПК с 1 ГБ ОЗУ это не особо ощущуется;
  3. Комплекстный тест IDS показал, что она отлично ловит сканирование портов, но остальньные атаки практически не детектирует. Например, явный SYN FLOOD был успешно заблокирован правилами, но IDS по этому поводу ничего не сказал (хотя флудил я со скоростью 2-3 тысячи пакетов/сек)
Общая оценка:
Как и предыдущая версия 2.1, по сочетанию возможностей и удобства работы (да еще и с поправкой на русскоязычный интерфейс) на мой взгляд один из лучших продуктов на момент тестирования
Получить подробное описание этого Firewall и приобрести его можно в магазине OZON - Outpost Firewall Pro Русская версия (замечу, что по цене это один из самых недорогих русскоязычных Firewall)

ZoneLabs ZoneAlarm Pro with Web Filtering 4.5.594.000 - Personal Firewall

Инсталляция и деинсталляция:
В ходе установки подвесил XP в ходе попытки запуститься после инсталляции. После перезагрузки все заработало нормально.
Достоинства:
  1. По умолчанию у него практически ничего не разрешено (в отличие от Outpost)
Недостатки и особенности:
  1. Несколько запутанный на мой взгляд интерфейс
  2. Firewall виден в списке задач и не препятствует своему удалению - после удаления защита отключается (APS тут же фиксирует тревогу)
Общая оценка:
Персональный Firewall среднего класса, вполне соответствующий современным требованиям. Несколько запутанный англоязычный интерфейс является его минусом

AtGuard 3.22>

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

Kerio Personal Firewall 4

Инсталляция и деинсталляция:
Установка проходит без проблем, удаление "чистое" - проблем после деинсталляции не замечено.
Достоинства:
  1. Антитроянские механизмы - может обнаруживать и блокировать запуск одной программы из другой (можно настроить правила), запуск новой программы. В настройках три градации (разрешить, запретить, спросить);
  2. Показывает, какие из запущенных приложений прослушивают порты
  3. Имеет механизмы обучение;
  4. Может настраиваться вручную;
  5. Имеет IDS, которая определяет типовые атаки, в частности сканирование портов;
  6. Может блокировать подозрительные куки (cookies)
Недостатки и особенности:
  1. Разрешения по умолчанию позволяют работать по 135 порту
  2. Есть ряд мелких багов, например при задании опции Alert в настройках фильтра пакетов в условиях атаки с Firewall работать невозможно - выскакивающее окно с сообщением об атаке забирает на себя фокус ввода
  3. В условиях большой нагрузки периодически подтормаживает (это совершенно не критично для работы по модему)
  4. Firewall виден в списке задач и не препятствует своему удалению - после удаления защита отключается (APS тут же фиксирует тревогу)
Общая оценка:
Хороший Firewall, я бы поставил его на одну ступень с Outpost.

Norton Internet Security 2004 (NIS)

Инсталляция и деинсталляция: Установка не вызывает проблем, но из всех проанализированных инсталлятор самый тяжеловесный.
Достоинства:
  1. Интегрированное решение (Антивирус + Firewall + IDS + блокиратор рекламы)
  2. Система обновления через Интернет;
  3. В настройках IDS есть опция блокирования компьютера всех пакетов с хоста, проводящего атаку на заданное время (по умолчанию на 30 минут);
  4. Содержит дополнительные надстройки, в частности, антиспам - систему, встраивающуюся в Outlook Express;
  5. При уничтожении процессов NIS продолжал блокировать доступ с атакующих хостов (большинство остальных при удалении процесса прекращали защищать ПК)
Недостатки и особенности:
  1. Самое "тяжеловесное" из исследованных решение - в памяти находится несколько процессов, потребляющих значительные ресурсы (хотя на ПК с 512 МБ ОЗУ эта тяжеловесность не ощущается)
  2. У меня в ходе тестов отмечался некий "глюк" с закладкой, отображающей статистику и протоколы системы - вместо статистики выдывались ошибки NIS с сообщением о невозможности вызнать некую DLL;
  3. IDS легко можно обмануть и заблокировать работу с "полезными" ПК. Это не минус конкретно NIS, это проблема всех подобных систем;
  4. Слишком тесная итеграция с системой - это по сути его плюс, но лично мне не нравятся программы, которые внедряются и прописываются по максимуму во все возможные места системы;
Общая оценка:

Internet Connection Firewall, ICF - встроенный брандмауэр Windows XP

Инсталляция и деинсталляция: Установка не требуется, является штатным средством XP. Включение производится в настройках сетевого адаптера. По умолчанию ICF работает в режиме максимальной безопасности и (это результат моего наблюдения) принцип его работы таков - запросы приложений выпускаются наружу, а снаружи принимаются только пакеты, пришедшие в ответ на мои запросы (соответствие запрос-ответ явно ведется в виде динамической таблицы). Таким образом, при сканировании портов на компьютере с включенным ICF нет ни одного открытого порта (это логично - пакеты сканера портов не будут пропущены, т.к. их никто не запрашивал). Аналогично дело обстоит с различного рода "нюками", основанными на отправке нестандартных пакетов.
Достоинства:
  1. Встроенное средство в XP - не требует установки и практически не требует настройки;
  2. Обеспечивает надежную защиту от внешнего вторжения даже при отсутствии настроек - ПК не отвечает на пинги, сканирование портов показывает, что все порты недоступны;
  3. Не виден как процесс (и, как следствие, не может быть остановлен вирусом или трояном);
  4. Возможен прием входящих пакетов с возможностью их переадресации на другой ПК и порт - маппингом (здесь можно провести аналогию с NAT - пакет с входящим запросом отправляется в соответвии со статической таблицей правил, заданной в настройке в нашем случае эта настройка задается на закладке)
  5. Блокирует работу троянских и Backdoor программ, которые прослушивают некий порт и ожидают подключение по нему хакера - по умолчанию все запросы на входящие подключения блокируются
Недостатки и особенности:
  1. Полное отсутствие визуализации происходящих процессов. Единственным способом контроля за работой ICF является текстовый протокол, который пишется в указанный файл на диске (протоколирование по умолчанию отключено и его рекомендуется включить). Отсутствие визуального оповещения и просмотра информации в реальном времени на мой взляд является самым большим недостатком;
  2. Достаточно скудные возможности - нет возможности обучения и настройки правил для отдельных приложений, настройки правил для разрешения/запрета работы с определенными хостами по определенным портам. В небольшой степени этот минус скрашивается наличием фильтра пакетов в настройках протокола TCP/IP ;
  3. ICF хорош для защиты домашнего ПК при доступе в Интернет, использовать его в ЛВС сложнее.
  4. ICF прекрасно обходится троянскими программам, которые вместо прослушивания порта организуют отправку данных по email или устанавливают соединение с удаленным сервером по своей инициативе - ICF пропустит исходящий запрос и позволит пройти ответу. В этом плане ICF существенно проигрывает другим персональным Firewall, которые информирут пользователя о попытках приложений обмениваться с сетью
Общая оценка:
Отличное средство для защиты ПК в Интернет начального уровня. Я бы назвал вещи своими именами, т.е. ICF по сути не Firewall, а NAT. Уровень защиты от сканирования и атаки извне при использовании настроек по умолчанию на очень высоком уровне - все мои сканеры показали отсутствие ответов от ПК и отсутствие открытых портов. Если дополнить это тем фактом, что ICF не нужно инсталлировать и он практически не потребляет ресурсов, то это выдвигает его в разряд лидеров

Internet Connection Firewall, ICF - встроенный брандмауэр Windows XP SP2

Инсталляция и деинсталляция: Установка не требуется, является штатным средством XP (входит в пакет обновлений SP2 для XP). Включение производится в настройках сетевого адаптера. Следует заметить, что при установке SP2 или при установке XP с интегрированным SP2 кроме Firewall в системе появляется центр обеспечения безопасности, который может показывать настройки ICF
Достоинства:
  1. Все достоинства, присущие его предыдущей версии;
  2. Появилась возможность индивидуальной настройки для приложений (приложению можно прописать, по каким портам и с какими ПК можно работать). Правила для приложений можно включать и выключать. Еще одним полезным моментом является запрет индивидуальных исключений-настроек одним чекбоксом в основном окне, что позволяет быстро перейти в режим максимальной безопасности;
  3. При нарушении правил выводится окно с предупреждением и возможностью запретить или разрешить активность приложения;
Недостатки и особенности:
  1. По моему мнению сырой драйвер, на котором основан Firewall. Во время тестов я не менее 5 раз наблюдал "синий экран смерти", после таких повисаний Firewall самопроизвольно отключался (после перезагрузки его приходилось включать вручную). Это опасно, т.к. после такой аварийной загрузки ПК не защищен. Кроме того, я наблюдал полное зависание из-за конфликта с драйвером TDI от утилиты TDIMon, в момент старта APS (т.е. Firewall не справился с попытком массового открытия множества портов). Замечу, что такие ошибки носят разовый характер, т.е. при моделировании ситуации, приведшей к повисанию мне не удавалось его повторить. Однако, тем не менее факт есть факт - виснет он часто;
  2. По умолчанию в исключениях разрешен доступ по портам 135,137,138,445 для подсети класса C компьютера (т.е. при выходе в Интернет можно заполучить вирус от соседей). Вывод - это исключение нужно запретить или настроить;
  3. Выводимое окно сообщения (см. рисунок) крайне неинформативно - нет информации о имени exe файла, его местоположении; нет данных о том, по какому порту и к какому хосту идет попытка обращения (или какие порты программа пытается прослушивать ... вместо этого потрясающее сообщение "... брандмауер заблокировал некоторые возможности программы". Узнать подробности невозможно (хотя кнопочка "Подробнее" прямо напрашивается);
  4. При разрешении активности программы в окне запроса (кнопка "Разблокировать") программе разрешается прослушивание любого порта и обмен с любым ПК в Интернет по любому порту ... Что, по моему мнению, избыточно и опасно.
Общая оценка:
Оценка аналогична оценке предыдущей версии - хорошая встроенная защита в Интернет начального уровня. В новой версии интерфейс стал немного лучше, появились новые возможности ... но по сравнению с другими Firewall он конечно никакой критики не выдерживает. По субъективной оценке стабильность у новой версии хуже.

Sygate Personal Firewall Pro 5.5 build 2525

Инсталляция и деинсталляция: Установка программы и ее деинсталляция происходит без проблем. После инсталляции требуется перезагрузка.
Достоинства и особенности:
  1. В окне информации о сетевом событии (в режиме обучения) выводится детальная информация о программе (версия, описание, полный путь, ID процесса, параметры подключения (адреса и порты), данные о пакете (MAC адреса, заголовок и фрагмент пакета). Это очень полезно в режиме обучении Firewall;
  2. Можно создавать правила фильтрации по MAC адресу;
  3. Правила могут действовать по расписанию;
  4. Встроенная IDS. Тесты показали, что уверенно опознаются атаки типа сканирования портов, "пинг смерти", разные виды флуда порта. IDS может блокировать атакующего (блокировка ведется на 10 минут);
  5. Имеется система оповещения по email;
  6. Достаточно удобный просмотрщик протоколов;
  7. Процесс имеет защиту от завершения (стандартными средствами остановить его невозможно);
  8. Есть режим полного блокирования трафика на время работы экранной заставки
  9. Есть режим полного захвата пакетов (по сути получается аналог сниффера, полезно для анализа пакетов)
Недостатки:
  • Существенных недостатков не замечено
Общая оценка:
Хороший Firewall в плане функциональности, стоит обратить внимание на то, что он может использовать правила фильтрации трафика по MAC адресам, производить захват пакетов для их последующего анализа, содержит хорошо работающую IDS

ISS BlackIce 3.6.cci

Инсталляция и деинсталляция: Установка программы и ее деинсталляция происходит без проблем, но в ходе инсталляции возникает ошибка в библиотеке ikernel. Эта-же ошибка возникла и при деинсталляции. Возникнование данной ошибки не влияет на процесс установки и удаления программы. Инсталлятор не потребовал перезагрузку системы, что для Firewall необычно
Достоинства и особенности:
  1. После инсталляции не требуется перезагрузка
  2. Содержит систему "AP" - некий "Firewall для процессов" - позволяет отслеживать появления новых программ и блокировать их запуск в возможностью обучения. Это полезно для борьбы с червями и троянскими программами.
  3. Может проводить захват пакетов для их последующего анализа
  4. Опознает типовые атаки - сканирование портов, SYN флуд
  5. В информации по атакующему показывает его MAC и данные Netbios
Недостатки и особенности:
  1. Может быть удален как процесс, защита при этом пропадает
  2. Содержит достаточно строгий интерфейс, которому на мой взгляд не хватает информативности (это не недостаток, а констатация факта)
Общая оценка:
Достаточно функциональный Firewall, ничем существенным не выделяется

Visnetic Firewall 2.2

Инсталляция и деинсталляция: Установка программы и ее деинсталляция происходит без проблем. После инсталляции требуется перезагрузка.
Достоинства и особенности:
  1. Содержит функцию блокирования сетевого трафика при условии, что Firewall еще не запущен или его процесс принудительно завершен;
  2. Правила фильтрации трафика могут строиться на основе MAC адреса;
  3. Содержит детектор сканирования портов, в котором есть настройка, позволяющая автоматически блокировать атакующий хост;
  4. Имеется функция захвата пакетов;
  5. Содержит функцию оповещения по email;
  6. Содержит функцию экспорта правил в текстовом виде (для распечатки, анализа)
  7. Поддерживает удаленное администрирование - по умолчанию порт 8519
Недостатки:
  1. Не привязывает сетевую активность к процессам. Т.е. является Firewall в чистом виде. Однако подавляющее большинство персональных Firewall обладают такой функцией
  2. Процесс модет быть удален и на короткое время до его автоматического восстановления компьютер уязвим (опция блокирования трафика при отсутствии Firewall сводит этот недостаток к нулю)
  3. В меню, вызываемом по правой кнопке мыши над иконкой в SysTray есть переключение режима работы - пропускать все пакеты, фильтр, блокировать все пакеты. Опцию отключения фильтрации трафика лично я бы вообще не вводил
Общая оценка:
Хороший Firewall, достаточно функциональный. Но не хватает возможности привязки сетевой активности к породившим ее процессам - эта возможность очень полезна для персонального Firewall.

Look n stop personal firewall 2.05

Инсталляция и деинсталляция: Установка программы и ее деинсталляция происходит без проблем. После инсталляции требуется перезагрузка. Для работы устанавливает свой драйвер.
Достоинства и особенности:
  1. Правила могу строится с учетом MAC адреса, есть возможность привязки правила к процессу
  2. Виден как процесс, но удаление этого процесса не приводит к выключению защиты
Недостатки:
  1. В окне запроса (в режиме обучения) абсолютный минимум информации о программе и вообще нет информации собственно о факте сетевой активности. Это серьезный минус, т.к. по сообщению "Программа желает соединиться с Интернет" принимать решения о разрешении/блокировании действия сложно
  2. Очень большое потребление ресурсов во время отражения атаки - на слабом ПК во время атаки вполне возможна ситуация DoS. Процессор Pentium 4 c с тактовой частотой 3 ГГц загружался на время атаки на 60-75% (в тестах других Firewall нагрузка была несущественна - менее 5%)
  3. Протокол непрерывно обновляется на каждое событие - во время флуда портов или сканирования портов работать с ним невозможно
  4. Работа бортовой IDS никак положительно себя не проявила, явные атаки она не детектировала
Общая оценка:
Простой Firewall, на уровне других проигрывает по интерфейсу и функциональности, сильно нагружает процессор в моменты атаки.

Kaspersky AntiHacker 1.5

Инсталляция и деинсталляция: Установка программы и ее деинсталляция происходит без проблем. После инсталляции требуется перезагрузка.
Достоинства и особенности:
  1. Хорошо действующая бортовая IDS. Уверенно распознаются типовые атаки, атакующий хост блокируется на заданное время. Особенностью IDS является возможность просмотра обнаруживаемых типов атак (с кратким пояснением, в чем состоит тот или иной тип атаки) и настройки параметров (что очень полезно и важно, причем для каждой разновидности атаки есть специфичные для нее параметры);
  2. Информативное окно системы обучения. В режиме обучения есть возможность однократной блокировки запрошенного действия;
  3. Есть режим невидимости (который включается независимо от других настроек) и регулировка уровня безопасности
  4. Есть возможность просмотра прослушиваемых портов и установленных соединений с привязкой к процессу;
  5. Содержит встроенный набор типовых правил (которые могут быть удалены или отредактированы)
  6. Процесс AntiHacker-а виден в списке процессов, но имеет защиту от удаления
  7. Малое потребление ресурсов во время работы и в моменты отражения атаки
Недостатки:
  1. Нет возможности построения правил фильтрации трафика по MAC адресу
  2. Во время настроки один раз имело место полное повисание системы ("экран смерти")
  3. Во время обучения удалось пробить защиту по нескольким портам (это, как показали тесты, типовая проблема многих Firewall) - это произошло в момент создания правила. После настройки правил пробить Firewall не удалось
  4. Блокировка и разблокировка атакующих проходит автоматически с занесением отметки в протокол, но я не нашел возможности просмотра списка заблокированных хостов с возможностью ручной разблокировки и настройки исключений
Общая оценка:
Хороший Firewall, содержит отличную IDS. Предоставляет типовые для современного Firewall функции.
Получить подробное описание Kaspersky AntiHacker 1.5 и приобрести его можно в магазине OZON Kaspersky Anti-Hacker

Tiny Personal Firewall Pro 6.0

Инсталляция и деинсталляция: 
Установка программы и ее деинсталляция происходит без проблем. После инсталляции требуется перезагрузка.
Достоинства:
  1. Хороший инсталлятор - позволяет выбрать компоненты (можно отказаться от установки ненужного компонента);
  2. Информативное окно системы обучения. В режиме обучения есть возможность однократной блокировки запрошенного действия, создания правил;
  3. Есть достаточно мощный "Firewall системных операций" - т.е. кроме функций Firewall еще есть возможность отслеживать и блокировать нежелательную активность приложений (по отношению к реестру, файлам, запуску приложений, установке сервисов) ... - все это настраивается. Для приложений ведется контроль цифровой подписи в формате MD5 (т.е. привязка идет не к имени программы, а еще и к ее MD5 хешу - это позволит поймать заражение программы вирусом или подмену программы). В режиме обучения, таким образом, программа информирует о системной и сетевой активности приложений. Есть возможность аудита системных операций (аудит настраивается).
  4. Очень неплохая IDS - все ее правила можно просматривать и редактировать. В базе IDS уже имеется большое количество правил для разных троянов/backdoor, разнообразных видов атак ... Все правила сгруппированы по категориям и могут активироваться индивидуально (или активируются/выключаются все правила группы). В правиле могут фигурировать не только порты и адреса, но содержимое пакета (включая поля заголовка пакета);
  5. Содержит встроенный набор типовых правил (которые могут быть удалены или отредактированы). По умолчанию привила позволяют довольно много - стоит начать работу их анализа и ужесточения;
  6. Правила можно создавать на уровне конкретных пользователей - это позволяет индивидуально настроить Firewall многопользовательской среде
  7. Управление и мониторинг событий выполнены в виде двух отдельных приложений - это экономит память, т.к. их можно выгрузить и загружать по необходимости. Центр управления можно защитить паролем;
  8. Firewall имеет встроенный NAT и ICS, есть поддержка VPN (правда я ее не тестировал)
Недостатки и особенности:
  1. Много настроек (очень много). Это естественно не недостаток (скорее плюс), но рекомендовать такой Firewall начинающему пользователю я бы не стал;
  2. В настройке по умолчанию IDS вяло реагирует на явные атаки, секция WEB атак и Backdoor у нее вообще отключена.
  3. При включении большинства встроенных правил имели место ложные срабатывания IDS - например, при посещении www.ozon.ru IDS был замечен "вредоносный java script" - ничего подобного на самом деле там конечно не было
  4. Процессы Firewall видны в памяти и могут быть удалены;
  5. Я не нашел возможности создания правил по MAC адресам;
  6. За время тестирования центр управления несколько раз "падал" с ошибкой защиты памяти, но на работу Firewall это не оказывало влияния;
Общая оценка:
Хороший Firewall, содержит хорошую настраиваемую IDS и отличные средства мониторинга операционной системы (т.е. по сути Tiny не Firewall, а антихакерский комплекс, что мне в нем и понравилось). Собственно Firewall-ная часть предоставляет типовые для современного Firewall функции. Перед эксплуатацией рекомендуется провести тщательную настройку правил Firewall и его IDS.

McAfee Personal Firewall Plus 6.0 Build 6014

Инсталляция и деинсталляция: 
Установка программы и ее деинсталляция происходит без проблем. После инсталляции требуется перезагрузка.
Достоинства:
  1. Небольшой размер, наличие мастера, позволяющего начинающему пользователю настроить Firewall;
  2. Есть визуальный индикатор трафика и карта, на которой отображается продполагаемое местоположение атакующего;
  3. Удаление процессов Firewall не привело к пропаданию защиты
Недостатки и особенности:
  1. В настройке по умолчанию оказались открыты многие опасные порты (я пробовал выбирать разные профили, но результат примерно одинавок);
  2. Окно сообщения о попытке доступа приложения в сеть неиформативно (нет данных о том, c каким IP идет попытка соединения, по каким портам, нет полного пути к программе и дополнительных данных по нему ...);
  3. Не прослеживается возможность ручного создания правил фильтрации пакетов. Я не нашел такой возможности - может быть, она и есть - но закопана далеко .... Правила для приложений есть, но крайне примитивны (разрешить приложению все, запретить все);
  4. Блокирование прослушивая порта, по моему мнению, сделано очень некорректно - все исследованные мной Firewall позволяли программе открыть порт на прослушивание (и при запрете в правилах Firewall обмена с сетью программа просто не получала по этому порту пакеты). В данном случае блокируется открытие порта - это приводит к ошибкам в некоторых программах;
  5. IDS отсутствует - я проводил лобовые атаки (сканирование портов в 200 потоков, флуд порта со скоростью 2000 соединений/сек ...) - Firewall не выдал никаких сообщений или предупреждений. Зато он обнаружил прихождение на мой ПК единичного пакета по порту 514 (Syslog) и записал это в протокол.
  6. В ходе тестов отмечался некий интересный глюк в системе - перестали отображаться иконки на рабочем столе
Общая оценка:
Весьма примитивный Firewall, ориентированный на уровень начинающего пользователя. Очень бедные возможности, IDS не определяет явные атаки

R-Firewall 1.0 Build 43

Инсталляция и деинсталляция: 
Установка программы и ее деинсталляция происходит без проблем. Размер дистрибутива небольшой (3.8 МБ), можно настроить состав продукта. Работа достаточно стабильная, на эталонном ПК явных сбоев и зависаний не замечено 
Достоинства:
  1. Небольшой размер;
  2. Два уровня настройки - упрощенный для начинающего и расширенный для опытного пользователя;
  3. Содержит детектор атак, фильтр контента для блокирования баннеров, скриптов и т.п. Детектор атак реагирует на сканирование портов, флуд (правда флуд считается как Single port scan)
  4. Детектирует внедрение посторонних DLL в критические процессы типа iexplorer.exe, предупреждая с указанием библиотеки и процесса. Правда не содержит системы проверки цифровых подписей или базы чистых файлов, поэтому ругается на все, включая системные DLL
  5. Блокиратор контента реально опробирован на сайтах типа cracks.am, что показало его работоспособность (конечно, блокирование не стопроцентное, но файктс срабатывания имеет место)
  6. Есть профили настроек с правилами для распространенных программ, что может быть полезно для начинающего пользователя
Недостатки и особенности:
  1. Окно системы обучение не информативно (не выводится полный путь к программе-нарушителю и подробной информации о ней). В случае работы троянской DLL в сообщение фигурирует не DLL, а применяющая ее программа. Например, на тестах Backdoor.Win32.Thunk.i (библиотека c:windowscpu.dll) был запущен через rundll32.exe - в сообщениях firewall ругался именно на эту DLL
  2. Процессы не защищены от убиения, нет контроля установки посторонних драйверов и записи в чужие процессы, из-за чего защита не может быть всесторонней. После убиения управляющих процессов защита судя по всему частично сохраняется, обмен с сетью по крайней не блокируется и ряд тестовых TrojanDownloader смогли успешно работать и обмениваться с Интернет. Убиение процессов провело к отказу контроля за внедрением посторонних DLL
  3. Я не обнаружил (по крайней мере на поверхности) возможностей фильтрации по MAC адресам
  4. Интерфейс и система построения правил лично мне показалась немного запутанной
Общая оценка:
Еще один Firewall, ничем радикально новым или особенным не обличается. Главный его плюс (и несомненный на мой взгляд) состоит в том, это этот продукт бесплатный - один только этот момент может перечеркнуть все его минусы и недостатки.

Общие выводы и заключение

Итак, подведем итоги тестов. По сути, тесты подтвердили мои теоретические представления о состоянии проблемы:
  1. Firewall нужно настраивать. Все тестируемые Firewall неплохо работали, но только после настройки (обучения, создания настроек вручную - не важно). Эксплуатация ненастроенного Firewall может нанести больше вреда, чем пользы (он пропустит опасные пакеты и наоборот, будет мешать полезным программам);
  2. После настройки Firewall и IDS нужно тестировать - это тоже достаточно очевидный вывод, но тем не менее он важен. Первый шаг к созданию тестера я сделал - это утилита APS. Осталось еще два - имитатор троянской програмы (т.е. утилита, которая будет выполнять безопасные для пользователя попытки "сломать" Firewall изнутри (естественно, атаки будут описаны базой данных и будут проводиться по команде пользователя под его управлением), что позволит наблюдать за реакцией Firewall и IDS) и утилита для экспресс-сканирования портов и проведения базовых атак (по сути APS с точностью до наоборот - база портов у них может быть общая). Разработкой этих утилит я уже занимаюсь - их наличие в арсенале пользователя позволит произвести некий "инструментальный контроль".
  3. Персональный Firewall уязвим перед вредоносными программами, работающими из контекста полезных.Вывод - как минимум долой разные "левые" панели и прочие BHO из браузера и электронной почты !! Перед установкой любого плагина, панели, утилиты расширения и т.п. нужно десять раз подумать о их необходимости, т.к. они не являются отдельными процессами операционной системы и работают из контекста родительской программы. Троянская программа легко детектируется персональным Firewall - он "видит", что некоторый процесс (скажем, bo2k.exe) пытается начать прослушивание порта xxxxx или обмен с неким хостом - выдается запрос о допусимости, пользователь начинает разбираться, что же это за "bo2k.exe" и Backdoor оказывается пойман. А вот если бы троянская программа работала из контекста браузера, то на обращение браузера в Интернет почти наверняка никто не обратит внимание. Такие троянские программы существуют, ближайший пример - TrojanDownloader.IstBar - он устанавливается именно как панель IE (в процессах его естественно нет, в списке автозапуска - тоже);
  4. Многие персональные Firewall видны как процессы операционной системы и могут быть остановлены вирусом. Вывод - за работой Firewall нужно следить и его внезапное завершение может служить сигналом о проникновении на ПК вируса;
  5. Некоторые Firewall (например Kerio) допускают дистанционное управление - функцию дистанционного управления необходимо или отключить, или запаролить.