Таким образом, требуются специальные средства, удерживающие «доброкачественную» информацию внутри, а «вредную» — снаружи. Один из способов состоит в применении IPsec. Этот метод защищает данные при их пересылке. Однако шифрование не спасает от вирусов и хакеров, способных проникнуть в локальную сеть. Помочь защитить сети от нежелательного проникновения снаружи может установка межсетевых экранов, к рассмотрению которых мы сейчас обратимся.
Межсетевые экраны (firewalls, также называемые брандмауэрами) представляют собой современную реализацию средневекового принципа обеспечения безопасности. Они напоминают ров, вырытый вокруг замка. Суть конструкции заключается в том, что все входящие и выходящие из замка должны проходить по одному подъемному мосту, где полиция ввода/вывода сможет проверить их личность. Тот же принцип может быть применен и в сетях: у компании может быть несколько локальных сетей, соединенных произвольным образом, но весь внешний трафик должен проходить через электронный подъемный мост (межсетевой экран), как показано на рис. 8.25. Не существует никакого другого пути.
Рис. 8.25. Межсетевой экран, защищающий внутреннюю сеть
Брандмауэр работает как пакетный фильтр (packet filter). Он исследует каждый входящий и исходящий пакеты. Пакеты, удовлетворяющие определенным критериям, пропускаются сквозь фильтр. Не сумевшие пройти проверку пакеты удаляются.
Критерии фильтрации обычно устанавливаются правилами или таблицами, где перечислены допустимые и блокируемые отправители и получатели, а также правила, описывающие действия над исходящими и входящими пакетами.
В общем случае настроек TCP/IP информация о получателе или отправителе состоит из IP-адреса и номера порта. Номера портов определяют требуемую службу. Например, порт 25 используется для почты, порт 80 — для HTTP. Некоторые порты просто могут быть заблокированы. Например, компания может заблокировать все входящие пакеты для всех IP-адресов, в сочетании TCP и совместмых с портом 79. Он раньше широко использовался службой Finger для поиска электронных адресов, но мало используется в настоящее время.
Остальные порты блокируются не так просто. Сложность состоит в том, что сетевые администраторы мечтают о безопасности, но не могут блокировать коммуникацию с внешним миром. Второй вариант был бы проще и лучше для безопасности, но поток жалоб от пользователей шел бы без перерыва. Здесь помогают такие решения, как DMZ (DeMilitarized Zone — демилитаризированная зона), которая показана на рис. 8.25. DMZ — это часть сети компании, которая не угрожает ее безопасности. Сюда включается все. Если разместить веб-сервер в DMZ, то компьютеры через Интернет могут войти с ним в контакт, чтобы зайти на сайт компании. Межсетевой экран может быть настроен так, чтобы блокировать входящий трафик TCP к порту 80, так что компьютеры, подключенные к Интернету, не смогут использовать этот порт, для того чтобы атаковать компьютеры во внутренней сети. Для того чтобы веб-сервером можно было управлять, межсетевой экран может разрешать соединения между машинами во внутренней сети и веб-сервером. Межсетевые экраны стали все более сложными в процессе гонки вооружений с преступниками. Изначально они применяли набор правил независимо для каждого пакета, затем оказалось сложно писать правила, которые бы предоставляли необходимую функциональность, но блокировали весь нежелательный трафик. Межсетевые экраны с контекстной фильтрацией (statefull firewalls) привязывали пакеты к соединениям и заголовкам TCP/IP, чтобы отслеживать соединения. Благодаря этому создавались такие правила, что, например, внешний веб-сервер мог посылать пакеты внутреннему хосту, но только если внутренний хост сначала устанавливал соединение с внешним сервером. Такое правило было невозможно при простой пакетной фильтрации, когда пропускаются или не пропускаются все пакеты с внешнего сервера.
Следующий уровень усложнения для учета контекста — это шлюз прикладного уровня (application-level gateway). Во время этой обработки межсетевой экран просматривает пакеты даже за пределами заголовка TCP, чтобы проверить, что делает приложение. При этом возможно разделить HTTP-трафик, используемый для того, чтобы зайти на сайты в сети Интернет и HTTP-трафик, используемый для обмена файлами. Администратор может написать такие правила, чтобы сотрудники компании не обменивались файлами, но позволить заходить на сайты, которые необходимы для бизнеса. С помощью этих методов исходящий трафик может исследоваться примерно так же, как входящий трафик, например, для того, чтобы важные документы не уходили по электронной почте за пределы компании.
Как ясно из обсуждения выше, межсетевые экраны нарушают стандартные иерархические расположения слоев протоколов. Они являются устройствами сетевого уровня, но также контролируют транспортный уровень и уровень приложений, чтобы производить фильтрацию. Это делает их довольно хрупкими. Например, межсетевые экраны ориентируются на стандартную нумерацию портов, чтобы определить, какой трафик находится в пакете. Стандартные порты часто используются, но все же не всеми компьютерами и не всеми приложениями. Некоторые пиринговые приложения выбирают динамические порты, чтобы их было трудно вычислить (и заблокировать). Шифрование с помощью IPSEC или других схем скрывает информацию более высокого уровня от межсетевого экрана. Наконец, межсетевой экран не может быстро сказать компьютерам, которые связываются с помощью него, почему соединение не удалось. Он должен просто притвориться разрезанным кабелем. По всем этим причинам сетевые пуристы считают межсетевые экраны недостатком архитектуры Интернета. Тем не менее Интернет может оказаться опасным местом. Межсетевые экраны помогают решать эту проблему, так что они, скорее всего, будут существовать и дальше.
Даже в случае идеально настроенного межсетевого экрана остается множество проблем, связанных с безопасностью. Например, если входящие пакеты пропускаются только со стороны конкретных сетей (например, со стороны ЛВС дочерней фирмы компании), взломщик, находящийся вне зоны действия брандмауэра, может просто фальсифицировать адрес отправителя и тем самым преодолеть барьер. Если же нечестный сотрудник компании решит переслать секретную документацию, он может зашифровать ее или вообще сфотографировать, и тогда эти данные смогут проникнуть через любые почтовые анализаторы. Мы даже не обсуждаем тот факт, что хотя 75 % атак происходит вне зоны действия межсетевого экрана, атаки, которые происходят в зоне действия межсетевого экрана (например, производятся недовольными сотрудниками), являются самыми опасными (Verizon, 2009).
Еще один недостаток межсетевых экранов состоит в том, что они обеспечивают единый периметр или единую защиту. Если эта защита ломается — все пропало. По этой причине межсетевые экраны используются для многоуровневой защиты. Например, межсетевой экран может охранять вход во внутреннюю сеть, и на каждом компьютере также может быть свой межсетевой экран. Читатели, считающие, что достаточно одного контрольно-пропускного пункта, видимо, давно не летали международными авиалиниями.
К тому же существует целый класс атак, с которыми не способны справиться никакие межсетевые экраны. Идея, лежащая в основе межсетевых экранов, заключается в том, чтобы не давать взломщикам проникнуть в систему, а секретным данным — уходить наружу. К сожалению, в мире есть много людей, которые не могут найти себе лучшего занятия, нежели препятствовать работоспособности сайтов. Они отправляют вполне легитимные сообщения до тех пор, пока сайт не перестанет функционировать из-за чрезмерной нагрузки. Например, такое хулиганство может заключаться в рассылке пакетов SYN для установки соединений. Сайт выделит часть таблицы под это соединение и пошлет в ответ пакеты SYN + ACK. Если взломщик не ответит, табличная запись будет продолжать оставаться зарезервированной в течение нескольких секунд до наступления тайм-аута. Если одновременно посылаются тысячи запросов на соединение, никакие запросы от честных граждан просто не пробьются к серверу, так как все ячейки таблицы окажутся заняты. Атаки, целью которых является нарушение деятельности объекта, а не получение секретных данных, называются атаками типа DoS (Denial of Service — отказ в обслуживании (запроса)). Обычно адрес отправителя в пакетах с запросами фальсифицирован, поэтому найти вандала не так просто. DoS атаки против серьезных сайтов являются обычным делом.