Коллектив авторов - Защита от хакеров корпоративных сетей
Или все-таки есть способ? Первое, что приходит в голову, – так это то, что HTTP не является протоколом, ориентированным на трафик, который состоит из отдельных частей потока передаваемых данных в зависимости от нажатия клавиш. Протокол HTTP – это быстрый протокол без запоминания состояний. Он предназначен для передачи коротких запросов с тем большей скоростью, чем выше скорость их загрузки в удаленный компьютер по каналу связи. Поэтому можно проанализировать трафик даже защищенного криптографическим экраном туннеля, используя присущие ему уязвимости для выяснения происходящих в нем вещей. В военное время простое знание того, кто с кем ведет переговоры, зачастую позволяет понять передвижение сил противника. Многочисленные обращения в течение короткого времени на склады с оружием могут означать, что на них хранится оружие, готовое к боевому применению.
Конечно, трассируемость сообщений позволит выявить нежелательное подключение, но подключение может быстро утратить свое свойство трассируемости, заводя тем самым расследование в тупик. Анализ передаваемого потока данных поможет внести существенный вклад в определение нежелательного трафика, хотя, как правило, это малоэффективно. Передающийся в сетях большой, трудноанализируемый поток данных, создающий напряженный трафик, позволяет эффективно скрыть любую систему туннелирования. И помните, что если есть некто, который открыто и на законных основаниях делает то же самое, что пытается тайно осуществить пользователь, то в чрезмерной таинственности нет необходимости.
Удобство: «Какие усилия могут потребоваться для инсталляции программ и их выполнения?»
Основополагающим для определения возможности инсталляции программ и их выполнения является ответ на следующие два вопроса:
• что нужно установить на стороне клиента, который хотел бы принять участие в передаче данных по туннелю?
• что нужно установить на стороне сервера, который хотел бы принять участие в передаче данных по туннелю?
Инсталляция программы всегда опасна. Да, это так. Источником инсталляционного кода могут оказаться что угодно и кто угодно, поэтому всегда есть риск подмены устанавливаемого кода на Троянского коня. Установленный код должен выполняться на компьютере, который, возможно, прекрасно перед этим работал, а инсталляция, например, может вывести из строя хорошо зарекомендовавшую себя систему, чрезвычайно важную для повседневной деятельности компании. Всегда вопрос упирается в цену предлагаемого решения. К счастью, зачастую ее компенсирует польза, полученная в результате установки новой системы. Туннели расширяют возможности сетевого взаимодействия, позволяя лучше понять разницу между полезными и выгодными системами, с одной стороны, и системами, которые не окупают затрат на электричество для сохранения себя в работоспособном состоянии – с другой. До сих пор открыт вопрос, кто за это платит.
Обновление клиента может оказаться более удобным и выгодным, потому что в этом случае исправления локализуются в нужном месте: тот, кто наиболее нуждается в дополнительных возможностях, зачастую больше заинтересован в обновлении своих программ. Напротив, обновление сервера отделено от пользователя и вынуждает его делать работу, которая принесет пользу другим. (Нельзя также проигнорировать и тот факт, что в общем случае обновление устойчиво работающих серверов не является хорошим способом исправления чего-то, что не может привести к отказу работы большого числа пользователей.)
Другие системы туннелирования извлекают преимущества из уже размещенных на стороне клиентов программ, обеспечивая для них поддержку сервера. Обычно этот поход позволяет предоставить новые возможности туннелирования гораздо большему числу клиентов, попутно позволяя администратору существенно повысить безопасность всей системы при помощи простых настроек. Например, автоматически перенаправить весь трафик HTTP через шлюз протокола HTTPS или вынудить использующих радиоканал клиентов обращаться к туннелю через протокол PPTP (Point-to-Point Tunneling Protocol – протокол двухточечного туннеля. Новая сетевая технология, которая поддерживает многопротокольные виртуальные частные сети (VPN), позволяя удаленным пользователям безопасно обращаться к корпоративным сетям с помощью коммутируемого соединения, предоставляемого провайдером Интернет или с помощью прямого подключения к Интернету), который является стандартом в операционных системах клиентов.
А наиболее мощные и наименее удобные решения туннелирования требуют инсталляции специального программного обеспечения на сервере и клиенте одновременно. Следует подчеркнуть, что используемое здесь слово специальное подразумевает изящное решение для достижения невозможного. Иногда невозможно достигнуть определенных результатов без одновременного распространения «цены» решения туннелирования на клиента и сервер.
Очевидным выводом является то, что для большинства удобных, но наименее эффективных систем не требуется инсталляции программ ни на стороне клиента, ни на стороне сервера. Наиболее часто это происходит, когда после инсталляции систем по умолчанию на каждой из сторон туннеля внезапно обнаруживается, что они могут использоваться и для решения других, ранее не предусмотренных задач. Взламывая укоренившиеся взгляды на использование устоявшихся функций неизменных приложений, можно получить невероятные результаты, вызывающие удивление.
Гибкость: «Какие еще существуют варианты использования туннеля?»
Основополагающими вопросами, на которые следует ответить при рассмотрении этого требования, являются следующие:
• что может передаваться по анализируемому туннелю;
• следует ли ожидать неприятностей от чрезмерно большой пропускной способности туннеля?
Иногда туннель является прозрачной системой защиты, а иногда системой с ошибками. Поэтому в одном случае получается туннель под Ла-Маншем, а в другом – хрупкий веревочный мостик. Не все решения туннелирования передают действительно необходимый и правильный трафик.
Многие системы просто инкапсулируют битовый поток данных в криптоуровень независимо от того, сделаны они с помощью подручных средств наспех или это профессионально выполненная работа. Протокол TCP, являющийся системой надежного обмена данными между хостами, обращается к необходимому ему программному обеспечению через интерфейс сокетов. Создается ощущение, что протокол защищенных сокетов SSL с самого начала предназначался как более удобная замена стандартных сокетов, но всякого рода несовместимости помешали осуществлению этой затеи. (Также создается впечатление, что в конечном счете SSL собирается стать «функциональным решателем проблем», то есть системой, которая будет автоматически преобразовывать все обращения к сокетам в вызовы протокола SSL.)
При проектировании систем туннелирования может быть использован протокол SSH. Наибольшую производительность систем туннелирования можно достичь при переадресации (forwarding) TCP-сессий. Реализация протокола SSH предусматривает поддержку очень широкого диапазона передаваемых данных, начиная от трафика протокола TCP и заканчивая командами командного процессора для X-приложений, которые могут быть выданы чрезвычайно гибким способом, настраиваемого по мере необходимости. Подобная гибкость делает протокол SSH весьма привлекательным для многих решений туннелирования, хотя и не бесплатно.
Остроумное замечание. Отличающиеся высокой гибкостью решения туннелирования могут страдать от излишней пропускной способности. Сказанное известно как проблема «излишней пропускной способности». Другими словами, если установка туннеля преследовала какую-то цель, то не может ли одна из сторон туннеля воспользоваться соединением для получения больших прав доступа, чем ей доверяют на самом деле?
Несмотря на то что протокол X-Windows на платформе UNIX несколько неуклюж, он является разумной архитектурой графических приложений, используемой для многооконного отображения графики и текста. Одним из его самых больших достоинств является сетевая прозрачность. Окно приложения не обязательно должно быть отображено на компьютере, на котором оно было запущено. Идея заключается в том, что медленные и недорогие аппаратные средства для работы пользователей могут быть развернуты в сети где угодно. Для пользователя это не важно. Но каждое из выполняющихся на них приложений будет «казаться» быстрым, потому что на самом деле приложения выполняются на очень быстром и дорогом сервере, расположенном вдали от любопытных глаз. (Подобные решения годятся для автоматизации задач бизнеса, потому что намного проще получить высокую прибыль на большом сервере, чем на небольших настольных компьютерах. Совсем недавно это своеобразное «вращение карусели» с различным успехом было повторено в Web-сетях, сетевых компьютерах Java и, конечно, в архитектуре. NET.)