Программные межсетевые экраны: огненная стена или соломенная ширма? Часть 2

Программные межсетевые экраны: огненная стена или соломенная ширма? Часть 2

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

 Израэль Дж. Луго и Дон Паркер, перевод Владимир Куксенок

В первой части этой серии статей мы рассмотрели принципы работы межсетевого экрана (МСЭ) и то, как происходит его внедрение в сетевой стек для осуществления фильтрации. Во второй части мы расскажем, как легко обойти МСЭ, путем внедрения злонамеренного ПО непосредственно в сетевой стек.

Обман межсетевого экрана: LSP-троян на 80 порту

Давайте рассмотрим один случай, в котором можно обойти функциональные возможности МСЭ. Путем внедрения злонамеренного LSP в стек протокола, нелегальное приложение может стать частью стека протокола, получив возможность отслеживать разрешенные соединения, инициированные разрешенными процессами и по желанию изменять входящие и исходящие данные. Отличный способ, позволяющий атакующему отправлять команды своему трояну и получать ответы, это открытие обычного разрешенного соединения, скажем через публичный HTTP сервер, запущенный на целевой машине.

Чтобы осуществить это, все что нужно сделать атакующему – реализовать LSP и внедрить его в цепочку протокола WinSock. Такой LSP, также как и любой другой, может отслеживать, изменять и даже блокировать весь входящий и исходящий трафик. Что еще более интересно, можно генерировать поддельный трафик и передавать его на нижние уровни, как реальный трафик, пришедший от разрешенного приложения. Или можно передавать поддельный трафик на верхние уровни, как будто бы он пришел из сети. Таким образом, данный способ является очень подходящим для реализации атаки “человек по середине - man-in-the-middle”.

Рассмотрим следующий пример: корпоративная сеть, находящаяся за МСЭ, имеет публичный веб сервер, доступный из внешней сети. Веб сервер защищен и имеет все необходимые патчи. На сервере установлен локальный межсетевой экран, закрывающий все порты, кроме 80. Только процесс веб сервера имеет право прослушивать 80 порт. Теперь предположим, что эта система была заражена самопальным трояном, работающим на уровне LSP, или модифицированной версией существующего, такого как Trojan.Riler.D или Daga.A, который следит за обменом данными через 80 порт. Может ли атакующий успешно осуществить двухстороннею связь с этим трояном через интернет?

Ответ: скорее всего “да”. Каким образом? Используя обычные запросы браузера, находящего вне внутренней сети веб сервера. Запомните, все сетевые данные анализируются LSP-трояном на сервере. Атакующий может соединиться с веб сервером и отправить несколько HTTP запросов, содержащих в себе зашифрованную команду, которая будет интерпретирована трояном (например, "GET /index.htm HTTP%%givemeadmin%%/1.1"). Так как это допустимый запрос на 80 порт, маршрутизатор передаст его веб серверу. На самом сервере, пакетный фильтр локального межсетевого экрана также увидит допустимый пакет, принадлежащий установленному соединению, и пропустит его. Фильтр пакетов на интерфейсе TDI определит, что этот пакет предназначается для порта, который прослушивается разрешенным приложением (веб сервером) и также пропустит его. Внутри стека протокола LSP-троян проанализирует данные пакета и распознает “%%givemeadmin%%” как команду к действию. Затем троян удалит команду из пакета и передаст пакет на верхние уровни протокола. После этого он начнет выполнять команду (например, в данном случае может начаться подбор паролей, хэши которых сохранены на компьютере).

Когда пакет дойдет до веб сервера, он увидит только корректную часть HTTP запроса: “GET /index.htm HTTP/1.1”. Ответом на этот запрос должно быть содержимое index.htm или информация об ошибке. Предположим, что сервер ответит "HTTP/1.X 404 Not Found". Он отправит эту ошибку через WinSock API, где ее перехватит наш троян. Троян будет использовать данный ответ для передачи результата выполнения команды (например, подобранный пароль администратора). Перед пропуском пакета на нижний уровень стека протокола, он вставит зашифрованный результат выполнения команды в ответ сервера. Другими словами, выходные данные могут быть следующими: "HTTP/1.X %%thepasswordisGOD%%404 Not Found". Локальный МСЭ определит, что разрешенный процесс отправляет данные через разрешенное соединение и пропустит пакет. То же самое сделает МСЭ на маршрутизаторе. И что в результате? Радостный хакер и скомпрометированная сеть.

Естественно, это простейший пример. Более сложный вариант с использованием протокола с бинарной передачей данных (такого как FTP или HTTPS) и шифрованием передаваемых данных, очень сильно усложнил бы обнаружение скрытого канала. Даже если в сети используется МСЭ Checkpoint, шансы на то, что данный способ связи останется необнаруженным, будут очень велики.

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

Пример из реальной жизни: Компрометация IIS с помощью скрытого LSP-трояна

Как мы видим, существует множество способов обхода стандартных средств МСЭ. Самое слабое звено здесь это правила фильтрации исходящих соединений. Межсетевой экран всего лишь гарантирует, что конкретный процесс, в отличие от других, выполняющихся в данный момент, удовлетворяет установленному набору правил. Если процесс прошел такую проверку, ему разрешается взаимодействовать с сетью. Однако, это создает огромную дыру в защите, когда в игру вступает вышеупомянутый LSP-троян.

Сейчас мы опишем вариант развития событий, при котором хорошо защищенная сеть будет скомпрометирована. Это поможет нам осознать, насколько ненадежны большинство современных технологий межсетевой защиты. Вначале проанализируем структуру атакованной сети.

В нашей корпоративной сети присутствует маршрутизатор, как первая линия обороны. На нем закрыты все порты, кроме действительны необходимых, а также блокированы исходящие ICMP сообщения. За маршрутизатором находится Cisco PIX firewall. Этот МСЭ помещен за маршрутизатором для снижения его нагрузки.

Подключившись к маршрутизотору, мы получим доступ к главному свитчу, который в свою очередь контролирует несколько других свитчей и в нашем случае настройки DMZ (демилитаризованной зоны), как описано ниже. За МСЭ находится веб сервер и сервер Microsoft Exchange. Кроме этого, в различных отделах находятся обычные рабочие станции и их внутренние LAN сервера.

Атакующий, просканировав сеть, узнает, что порты 22, 25, 53, 80 и 110 открыты и возможно работают сервисы, слушающие эти порты. Следующим шагом нашего хакера будет отправка одного SYN пакета на 80 порт с целью определения ОС, под управлением которой работает сервер. Получив в ответ SYN/ACK пакет, и проанализировав такие параметры как TTL, размер окна и др., он может определить, что имеет дело с IIS.

Предположим, атакующий доработал существующий эксплойт для IIS, и с его помощью получил доступ с правами системы. На этом этапе атакующий закачивает свой LSP-троян. Наш хакер понимает, что активность TFTP будет легко обнаружена, если на сервере функционирует система обнаружения вторжений, однако, он идет на риск. Как только LSP-троян и несколько вспомогательных bat-скриптов загружены, можно считать, что атакующий закрепился на системе. Несмотря на то, что атакующий имеет права системы на доступ к серверу, любую связь с компьютером ему нужно проводить максимально скрытно через LSP-троян, с целью снижения возможности его обнаружения в будущем. Скрытность – главная задача хакера.

Необнаруженные атаки или кто следит за вашим IDS?

В контексте описанной ситуации, понимая принцип работы LSP-трояна, нам нужно ответить на вопрос: обнаружат ли атаку средства защиты этой сети? Как мы уже знаем, сам МСЭ не в состоянии обеспечить защиту от такого типа угроз. Однако, активность TFTP во время загрузки трояна была бы обнаружена любой современной IDS. Проблема в том, что многие из этих средств защиты редко контролируются. Это грустное, но во многих случаях истинное утверждение. Кроме того, даже если логи проверяются, существует немалая вероятность того, что человек, производящий мониторинг, не обладает необходимыми навыками и знаниями для адекватного анализа проверяемых данных. В некоторых случаях, в больших сетях каждый день в логах появляются сотни тысяч предупреждений.

К сожалению, проблема отсутствия мониторинга систем обнаружения вторжений или неверной интерпретации данных очень широко распространена. Слишком многие компании вкладывают деньги в технологии, но экономят на обучении сотрудников. В среднестатистической компании IDS была бы установлена на главный свитч для анализа всего входящего и исходящего трафика. Так же как и МСЭ, система обнаружения вторжений часто находится за маршрутизатором для облегчения его нагрузки.

Итак, теперь мы можем представить типичные проблемы хакера во время связи с компрометированным компьютером, а также меры противодействия злонамеренной деятельности. МСЭ не распознал злонамеренный трафик, а логи IDS, обнаружившей передачу данных по протоколу TFTP, не были проанализированы должным образом. Возникает вопрос, обладаем ли мы надежным способом обнаружения связи между хакером и компрометированным компьютером? Печально, но реальный ответ на этот вопрос – нет.

В описанном случае, атакующий, используя существующее разрешенное соединение, обойдя возможности фильтров исходящего трафика, будет отправлять команды и скрытно получать ответы. Это стало возможно благодаря внедрению LSP-трояна в TCP/IP стек. Стандартные методы обнаружения в данном случае бесполезны. Бесполезными оказались и МСЭ и система обнаружения вторжений. В идеале, если бы производилось какое-либо простейшее шифрование команд и ответов на них, даже просмотр конкретных пакетов не выявил бы сразу наличие канала связи с трояном.

Обнаружение атаки

Теперь, когда мы знаем методы обхода защиты, напрашивается вопрос, как можно обнаружить злонамеренное присутствие? Это очень хороший вопрос, на который нет категоричного ответа.

Если атакующий использовал известный и широко доступный LSP-троян, его можно обнаружить локальными антивирусными сканерами, конечно, при условии, что сигнатура этого трояна будет в базе данных антивируса. Однако, использование квалифицированным хакером всем известного трояна для атаки на корпоративную сеть было бы скорее исключением, а не правилом. Подготовленный атакующий скорее всего создаст свой собственный троян, удовлетворяющий его потребностям, или переделает существующий настолько, чтобы его не смогли обнаружить антивирусные сканеры, ведущие поиск по сигнатуре.

Можно написать троян, который будет очень трудно обнаружить, или даже почти невозможно, если атакующий имеет достаточную квалификацию. Используя продвинутые методики можно создать исполняемый файл без какой-либо уникально опознаваемой сигнатуры. Таким образом, даже если копия трояна попадет в антивирусную компанию, будет очень сложно создать утилиту для его автоматического обнаружения. Хотя факт появления подобного злонамеренного ПО у аналитиков антивирусных компаний сам по себе маловероятен, так как хакеры, атакующие корпоративные сети, обычно создают программы только для себя и не распространяют их.

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

Эта статья обращает внимание на соотношение уровня сетевой безопасности и удобства пользователей. Используя внутренние ресурсы, можно создать собственные сигнатуры для IDS, учитывающие большое количество разных методов обхода фильтров на высоком уровне. Однако, для этого потребуется много времени и знаний. Не каждая организация может позволить себе такое, не говоря уже о взятии дополнительного сотрудника и обучении его всевозможным методам обмана защиты. Решением может являться принцип глубокой защиты. Кроме стандартной межсетевой защиты и системы обнаружения вторжений, вашей компании нужна многоуровневая защита. Перспективной технологий является система предотвращения вторжений (IPS). Такая система плюс статистический анализ потока пакетов могли бы реально повысить обнаружение таких проблем как LSP-трояны.

Что вы можете предпринять, будучи зараженными LSP-трояном? Есть несколько утилит, которые различными способами удаляют и отключают LSP. Однако нужно помнить, первый шаг борьбы с угрозой не удаление, а обнаружение, и этот шаг самый трудоемкий в случае с троянами на основе LSP.

Выводы

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

Большой брат следит за вами, но мы знаем, как остановить его

Подпишитесь на наш канал!