Илья Медведовский - Атака на Internet
Из всего вышесказанного отнюдь не следует, что использование 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-Apachе).
Завершая рассказ о протоколе 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.
Часть III Операционные системы и приложения
Глава 9 Прошлое и настоящее сетевых операционных систем
Извечной и зловещей мечтой вирусов является абсолютное мировое господство, и, как ни ужасны методы, коими они в настоящее время пользуются, им нельзя отказать в настойчивости, изобретательности и способности к самопожертвованию во имя великой цели.
А. Стругацкий, Б. Стругацкий. Сказка о тройке
В предыдущей части книги были рассмотрены протоколы TCP/IP и показаны их слабые стороны с точки зрения безопасности. Эти протоколы (соответственно и изъяны в них) являются в большей степени независимыми от конкретной их реализации в операционных системах или программах, то есть любая из них в той или иной степени небезопасна. При этом неудачная реализация протоколов еще больше усиливает заложенную в них уязвимость.
Однако протоколы никогда не являлись непосредственной целью атаки кракера. Его действия всегда направлены на определенный компьютер с конкретной реализаций протоколов TCP/IP, с конкретной операционной системой и конкретным набором приложений, поэтому нетрудно предположить, что хакеры также занимаются исследованием особенностей разных ОС и приложений. Ясно, что такие атаки будут специфичными не только для конкретных ОС и программ, но и для их версий и диалектов, хотя и в этом случае можно выделить некоторые общие механизмы атак, классифицировать их и те уязвимости ОС, которые делают подобные атаки возможными.