Безопасность >>>
Программно-аппаратные методы защиты от удаленных атак
К программно-аппаратным средствам обеспечения информационной безопасности средств связи в вычислительных сетях относятся:
- программно-аппаратные шифраторы сетевого трафика;
- методика Firewall, реализуемая на базе программно-аппаратных средств;
- защищенные сетевые криптопротоколы;
- программные средства обнаружения атак (IDS - Intrusion Detection Systems) (см. главу 9);
- программные средства анализа защищенности (см. главу 9);
- защищенные сетевые ОС.
Существует огромное количество литературы, посвященной средствам защиты для использования в сети Internet (за последние несколько лет практически в любом номере компьютерного журнала встречаются статьи на эту тему).
Эти средства мы опишем по возможности кратко, чтобы не повторять хорошо известную всем информацию. При этом мы преследуем следующие цели: во-первых, еще раз вернуться к мифу об "абсолютной защите", которую якобы обеспечивают системы Firewall; во-вторых, сравнить существующие версии криптопротоколов, применяемых в Internet, и дать оценку критическому, по сути, положению в этой области.
Методика Firewall
В общем случае методика Firewall как основное программно-аппаратное средство осуществления сетевой политики безопасности в выделенном сегменте IP-сети реализует следующие основные функции.
1. Многоуровневая фильтрация сетевого трафика
Фильтрация обычно происходит на четырех уровнях OSI:
- Канальном (Ethernet).
- Сетевом (IP).
- Транспортном (TCP, UDP).
- Прикладном (FTP, TELNET, HTTP, SMTP и т. д.).
Фильтрация сетевого трафика является основной функцией систем Firewall и позволяет администратору безопасности сети централизованно осуществлять необходимую сетевую политику в выделенном сегменте IP-сети, то есть, настроив соответствующим образом Firewall, можно разрешить или запретить пользователям как доступ из внешней сети к соответствующим службам хостов или к хостам, находящимся в защищаемом сегменте, так и доступ пользователей из внутренней сети к соответствующим ресурсам внешней сети. Можно провести аналогию с администратором локальной ОС, который для осуществления политики безопасности в системе назначает необходимым образом соответствующие отношения между субъектами (пользователями) и объектами системы (файлами, например), что позволяет разграничить доступ субъектов системы к ее объектам в соответствии с заданными администратором правами доступа. Те же рассуждения применимы к Firewall-фильтрации: в качестве субъектов взаимодействия будут выступать IP-адреса хостов пользователей, а в качестве объектов, доступ к которым необходимо разграничить, - IP-адреса хостов, используемые транспортные протоколы и службы предоставления удаленного доступа.
2. Proxy-схема с дополнительной идентификацией и аутентификацией пользователей на Firewall-хосте
Proxy-схема позволяет, во-первых, при доступе к защищенному Firewall сегменту сети осуществить на нем дополнительную идентификацию и аутентификацию удаленного пользователя и, во-вторых, является основой для создания приватных сетей с виртуальными IP-адресами. Смысл proxy-схемы заключается в создании соединения с конечным адресатом через промежуточный proxy-сервер (в переводе с англ. "proxy" - полномочный) на хосте Firewall.
3. Создание приватных сетей с "виртуальными" IP-адресами
Если администратор безопасности сети считает целесообразным скрыть истинную топологию своей внутренней IP-сети, то ему можно порекомендовать использовать системы Firewall для создания виртуальных сетей с применением технологии NAT (Network Address Translation). Для адресации во внешнюю сеть через Firewall необходимо либо использовать на хосте Firewall описанные выше proxy-серверы, либо применять только специальные системы маршрутизации (через которые и возможна внешняя адресация). Это происходит из-за того, что используемый во внутренней приватной сети "виртуальный" IP-адрес, очевидно, непригоден для внешней адресации, то есть адресации к абонентам, находящимся за ее пределами. Поэтому proxy-сервер должен осуществлять связь с абонентами из внешней сети со своего настоящего IP-адреса. Кстати, эта схема удобна в том случае, если вам для создания IP-сети выделили недостаточное количество IP-адресов: в стандарте IPv4 это случается сплошь и рядом, поэтому для полноценной IP-сети с использованием proxy-схемы достаточно одного выделенного IP-адреса для proxy-сервера.
Итак, любое устройство, реализующее хотя бы одну из этих функций Firewall-методики, и является Firewall-устройством. Например, ничто не мешает вам использовать в качестве Firewall-хоста компьютер с обычной ОС FreeBSD или Linux, у которой соответствующим образом нужно скомпилировать ядро ОС. Firewall такого типа будет обеспечивать только многоуровневую фильтрацию IP-трафика. Другое дело - предлагаемые на рынке мощные Firewall-комплексы, созданные на базе ЭВМ или мини-ЭВМ, обычно реализуют все функции Firewall-методики и являются полнофункциональными системами Firewall.
Но Firewall не является гарантией абсолютной защиты от удаленных атак в Internet. Эта система - не столько средство обеспечения безопасности, сколько возможность централизованно осуществлять сетевую политику разграничения удаленного доступа к ресурсам вашей сети. Да, в том случае, если, например, к данному хосту запрещен удаленный TELNET-доступ, Firewall однозначно предотвратит возможность такого доступа. Однако большинство удаленных атак имеют совершенно другие цели (бессмысленно пытаться получить определенный вид доступа, если он запрещен системой Firewall). Действительно, зададим себе вопрос, а какие из рассмотренных удаленные атак может предотвратить Firewall? Анализ сетевого трафика? Очевидно, нет! Ложный ARP-сервер? И да, и нет (для защиты вовсе не обязательно использовать Firewall). Ложный DNS-сервер? Нет, к сожалению, Firewall вам тут не помощник. Навязывание ложного маршрута при помощи протокола IСМР? Да, эту атаку путем фильтрации ICMP-сообщений Firewall легко отразит (хотя достаточно будет фильтрующего маршрутизатора, например Cisco). Подмена одного из субъектов TCP-соединения? Ответ отрицательный - Firewall тут абсолютно ни при чем. Нарушение работоспособности хоста путем создания направленного шторма ложных запросов или переполнения очереди запросов? В этом случае применение Firewall только ухудшит дело. Взломщику достаточно атаковать только один Firewall, а не несколько хостов (это легко объясняется тем, что связь внутренних хостов с внешним миром возможна лишь через Firewall), чтобы вывести из строя (отрезать от внешнего мира) все хосты внутри защищенного Firewall-системой сегмента.
Из всего вышесказанного отнюдь не следует, что использование Firewall абсолютно бессмысленно. На данный момент этой методике (именно как методике) нет альтернативы. Однако нужно четко понимать и помнить ее основное назначение.
Программные методы защиты
К программным методам защиты можно отнести прежде всего защищенные криптопротоколы, с использованием которых появляется возможность надежной защиты соединения. Далее речь пойдет о существующих на сегодняшний день в Internet подходах и основных, уже разработанных, криптопротоколах.
SKIP-технология и криптопротоколы SSL, S-HTTP как основное средство защиты соединения и передаваемых данных в сети Internet
Прочитав главы 4-6, читатель, очевидно, уяснил, что одна из основных причин успеха удаленных атак на распределенные ВС кроется в использовании сетевых протоколов обмена, которые не могут надежно идентифицировать удаленные объекты, защитить соединение и передаваемые по нему данные. Поэтому совершенно естественно, что в процессе функционирования Internet были созданы различные защищенные сетевые протоколы, использующие криптографию как с закрытым, так и с открытым ключом. Классическая криптография с симметричными криптоалгоритмами предполагает наличие у передающей и принимающей сторон симметричных (одинаковых) ключей для шифрования и дешифрирования сообщений. Эти ключи заранее должны быть распределены между конечным числом абонентов, что в криптографии называется стандартной проблемой статического распределения ключей. Очевидно, что применение классической криптографии с симметричными ключами возможно лишь на ограниченном множестве объектов. В сети Internet для всех ее пользователей решить проблему статического распределения ключей не представляется возможным. Однако одним из первых защищенных протоколов обмена в Internet был протокол Kerberos, основанный именно на статическом распределении ключей для конечного числа абонентов. Таким же путем, используя классическую симметричную криптографию, вынуждены идти наши спецслужбы, разрабатывающие свои защищенные криптопротоколы для Internet. Итак, чтобы дать возможность защититься всему множеству пользователей сети Internet, а не ограниченному его подмножеству, необходимо использовать динамически вырабатываемые в процессе создания виртуального соединения ключи, применяя криптографию с открытым ключом (см. главу 6 и [7]). Далее мы рассмотрим основные на сегодняшний день подходы и протоколы, обеспечивающие защиту соединения.
SKIP-технологией (Secure Key Internet Protocol - Internet-протокол с защищенным ключом) называется стандарт инкапсуляций IP-пакетов, позволяющий в существующем стандарте IPv4 на сетевом уровне обеспечить защиту соединения и передаваемых по нему данных. Это достигается следующим образом: SKIP-пакет - это обычный IP-пакет, его поле данных представляет собой SKIP-заголовок определенного спецификацией формата и криптограмму (зашифрованные данные). Такая структура SKIP-пакета позволяет беспрепятственно направлять его любому хосту в Internet (межсетевая адресация происходит по обычному IP-заголовку в SKIP-пакете). Конечный получатель SKIP-пакета по заранее определенному разработчиками алгоритму расшифровывает криптограмму и формирует обычный TCP- или UDP-пакет, который и передает соответствующему обычному модулю (TCP или UDP) ядра операционной системы. В принципе ничто не мешает разработчику формировать по данной схеме свой оригинальный заголовок, отличный от SKIP-заголовка.
S-HTTP (Secure HTTP - защищенный HTTP) - это защищенный HTTP-протокол, разработанный компанией Enterprise Integration Technologies (EIT) специально для Web. Протокол S-HTTP позволяет обеспечить надежную криптозащиту только HTTP-документов Web-сервера и функционирует на прикладном уровне модели OSI. Такая особенность протокола делает его абсолютно специализированным средством защиты соединения, следовательно, его применение для защиты всех остальных прикладных протоколов (FTP, TELNET, SMTP и др.) невозможно. Кроме того, ни один из существующих на сегодняшний день основных Web-браузеров (ни Netscape Navigator, ни Microsoft Explorer) не поддерживает данный протокол.
SSL (Secure Socket Layer - защищенные скрытые гнезда) - разработка компании Netscape - универсальный протокол защиты соединения, функционирующий на сеансовом уровне OSI. Он использует криптографию с открытым ключом и на сегодняшний день, по нашему мнению, является единственным универсальным средством, позволяющим динамически защитить какое угодно соединение с применением любого прикладного протокола (DNS, FTP, TELNET, SMTP и т, д.). Это связано с тем, что SSL, в отличие от S-HTTP, функционирует на промежуточном сеансовом уровне OSI - между транспортным (TCP, UDP) и прикладным (FTP, TELNET). При этом процесс создания виртуального SSL-соединения происходит по схеме Диффи и Хеллмана (см. главу 6), которая позволяет выработать криптостойкий сеансовый ключ, используемый в дальнейшем абонентами SSL-соединения для шифрования передаваемых сообщений.
Протокол SSL уже практически оформился в качестве официального стандарта защиты для HTTP-соединений, то есть для защиты Web-серверов. Его поддерживают, естественно, Netscape Navigator и, как ни странно, Microsoft Explorer (вспомним ожесточенную войну браузеров компаний Netscape и Microsoft). Конечно, для установки SSL-соедипения с Web-сервером еще необходимо и наличие Web-сервера, поддерживающего SSL (например, SSL-Apache).
Завершая рассказ о протоколе SSL, нельзя не отметить следующий факт: законами США до недавнего времени был запрещен экспорт криптосистем с длиной ключа более 40 бит (не так давно лимит был увеличен до 56 бит), поэтому в существующих версиях браузеров используются именно 40-битные ключи. Проведя эксперименты, криптоаналитики выяснили, что в имеющейся версии протокола SSL шифрование с использованием 40-битного ключа не является надежной защитой для передаваемых по сети сообщений, так как путем простого перебора (240 комбинаций) этот ключ подбирается за время от 1.5 (на суперкомпьютере Silicon Graphics) до 7 суток (в вычислениях было задействовано 120 рабочих станций и несколько мини-ЭВМ).
Итак, очевидно, что повсеместное применение защищенных протоколов обмена, особенно SSL (конечно, с длиной ключа более 40 бит), поставит надежный барьер на пути всевозможных удаленных атак и серьезно усложнит жизнь кракеров всего мира. Однако весь трагизм сегодняшней ситуации с обеспечением безопасности в Internet состоит в том, что пока ни один из существующих криптопротоколов (а их уже немало) не оформился в качестве единого стандарта защиты соединения, который поддерживался бы всеми производителями сетевых ОС. Протокол SSL подходит на эту роль наилучшим образом, но его не поддерживают все сетевые ОС. Поэтому были созданы специальные прикладные SSL-совместимые серверы (DNS, FTP, TELNET, WWW и др.). Если не договориться о принятии единого стандарта на защищенный протокол сеансового уровня, то
тогда нужно принимать многие стандарты на защиту каждой отдельной прикладной службы. Например, уже разработан экспериментальный протокол Secure DNS. Также существуют экспериментальные SSL-совместимые Secure FTP- и TELNET-серверы. Но все это без принятия единого стандарта на защищенный протокол не имеет абсолютно никакого смысла. В настоящее время производители сетевых ОС не могут договориться о единой позиции по этому вопросу и тем самым перекладывают решение проблемы непосредственно на пользователей Internet.
|