HTTP-туннели
HTTP-туннели
Когда люди слышат слова HTTP-туннели, они часто думают буквально. Для них это некоторые данные, которые передаются внутри данных HTTP. Этот ход рассуждений на самом деле недалек от истины. Данные передаются через порт 80, и этот порт обычно связан с HTTP, но на этом буквальная интерпретация, упомянутая выше, заканчивается. Как правило, данные не инкапсулируются в самом протоколе HTTP, а просто отправляются через порт 80. Чтобы понять все причины, лежащие в основе туннелей HTTP, нам сначала нужно понять несколько концепций и то, как они влияют на использование этих туннелей.
В большинстве корпоративных сетей существует достаточно хорошая система безопасности для предотвращения нарушений. Некоторые другие сети также обеспечивают еще более высокий уровень безопасности. Эта повышенная безопасность состоит из различных компонентов. Одна из них заключается в том, что для исходящих подключений остается открытым лишь определенное небольшое количество портов. Некоторые из этих портов могут быть портами 25, 110 и 80, чтобы сотрудники компании могли просматривать веб-страницы и проверять электронную почту. Многие другие порты, связанные с проблемными приложениями, такими как IRC, закрыты на маршрутизаторе для исходящих соединений. Такие порты, как 6666, обычно не разрешены для исходящих конечных точек.
Наличие у вашего системного администратора согласованной политики использования Интернета имеет большое значение для обеспечения безопасности вашей сети. Маршрутизатор можно использовать в качестве мощной первой линии защиты как для входящей, так и для исходящей активности. После составления такой политики нередко можно увидеть, как некоторые сотрудники пытаются обойти эти меры безопасности. Один из наиболее часто используемых и часто слышимых — использование туннелей HTTP. Через HTTP-туннель можно использовать всевозможные программы, и именно отсюда исходит угроза. Учитывая, что почти в каждой компании разрешен исходящий трафик HTTP 80, вы действительно знаете, что происходит, или, точнее, входящий или исходящий порт 80?
Знай врага
Туннели HTTP на самом деле могут иметь два применения, поскольку они влияют на безопасность компьютера. Один из них заключается в том, что люди туннелируют через него другие приложения, такие как вышеупомянутый IRC, или что его можно использовать как обратный HTTP-туннель. Ни один из них не является желательным, но обратный HTTP-туннель представляет гораздо большую угрозу. Иметь дело с туннелем, который используется, скажем, для использования IRC, достаточно плохо, но вопрос в том, как вы его остановите или обнаружите? Закрытие портов для исходящего трафика — очень хороший первый шаг, но это может побудить кого-то использовать туннель через разрешенный исходящий порт 80.
Можно уменьшить использование программ HTTP-туннелирования, имея предварительно одобренное базовое программное обеспечение для корпоративной сети. Кроме того, устанавливать программное обеспечение может только тот, у кого есть права системного администратора. Это хорошие первые шаги, но их может обойти кто-то с минимальным знанием компьютера. Как только кто-то получает физический доступ к компьютеру, все ставки сняты, и повышение привилегий может быть выполнено довольно легко. Это возвращает нас к моменту обнаружения использования этих программ, а их существует несколько. Эта программа HTTP-туннелирования довольно наглая в отношении услуг, которые она предлагает.
Знать, что существуют угрозы, — это хорошо, но вы сможете понять их, только фактически используя их. Будь то использование POC для определенного переполнения буфера или установка и использование программы туннелирования HTTP. Подавляющее большинство из них просты в использовании, отсюда и их популярность.
Обнаружение HTTP-туннелей
Обнаружение туннелей HTTP ни в коем случае не является невыполнимой задачей, но для этого требуется некоторое знание самого протокола HTTP. Мы знаем, что HTTP соблюдает модель клиент/сервер и работает через порт 80. Нам также известно, что обычно веб-браузер отправляет короткие пакеты на веб-сервер. Веб-сервер, в свою очередь, будет отправлять обратно в основном большие куски данных. Другими словами, вы довольно часто будете видеть размеры пакетов от веб-сервера, входящих к клиенту, с размером пакета, близким к 1500 байтам.
Теперь у нас есть число, с которым нужно работать. Кроме того, если вы быстро изучите размеры пакетов, отправляемых веб-клиентом, они, как правило, довольно малы, то есть: несколько сотен. Кроме того, HTTP не является постоянным соединением. Под этим я подразумеваю, что веб-клиент не будет поддерживать открытое соединение с каким-либо внешним сайтом через порт 80 в течение нескольких часов. Вероятно, это продлится в течение нескольких минут. Знание этого является второй ключевой метрикой, которую мы можем использовать для обнаружения туннелей HTTP. Кто-то, использующий такой туннель, вероятно, будет открывать его часами, если он использует IRC или другую подобную программу.
посмотрим как
Итак, теперь у нас есть рудиментарная информация, с которой можно работать, пытаясь отследить эти туннели. Мы также должны убедиться, что предприняты некоторые другие шаги для продолжения наших усилий. Если вы не используете IDS или другое устройство для сбора пакетов, я предлагаю вам установить windump.exe, чтобы вы могли взять выборку данных, чтобы вы могли их добывать. Этот метод сбора данных позволит вам собрать только те данные, которые вы хотите, или собрать все. Для этого упражнения нет смысла собирать весь внутренний трафик. Вам нужен только трафик, предназначенный для порта 80. Вам потребуется собрать этот файл данных на компьютере со значительным объемом доступной памяти. Кроме того, его, вероятно, нужно будет подключить к порту span вашего главного коммутатора, чтобы он видел весь трафик, выходящий из вашей сети.
-s 1514 -w collection_file ip и src net 192.168 и dst порт 80
Упомянутый выше фильтр при входе через windump.exe будет захватывать первые 1514 байт пакетов и записывать их в двоичный файл журнала с именем «коллекция_файл». Это предполагает, что вы не сузили полосу пропускания выше по течению. Кроме того, они должны поступать из исходной сети 192.168/16 и направляться на порт 80. Это помогает сузить фокус вашей коллекции.
Вы можете расширить это и написать битовую маску для поля «Общая длина» в заголовке IP. Если вы думаете об этом, это весьма полезно для поиска таких тайных туннелей. Обычный сеанс HTTP будет генерировать только небольшие пакеты для веб-сервера. Незаконное использование сеанса или туннеля HTTP, скорее всего, приведет к отправке больших исходящих пакетов на порт 80. Это будет одним из определяющих методов, с помощью которого мы, вероятно, обнаружим использование туннелей HTTP. Синтаксис такого фильтра будет следующим:
-s 1514 -w collection_file2 ip и src net 192.168 и 'dst port 80' и 'ip[2:2] > 200'
Заворачивать
Когда дело доходит до защиты ваших сетей, вы всегда должны быть осведомлены о ситуации. Это происходит во многих формах, и некоторым из нас мы помогаем поддерживать это, подписываясь на различные списки рассылки. Это также помогает понять, как работают сами программы и протоколы. Очень полезно знать, как работает HTTP-туннель и как он выглядит на уровне пакетов. Вы также заметили, что сбор пакетов вне сети также является отличным средством понимания того, что происходит в вашей сети.
Хотя упомянутые выше фильтры являются отправной точкой, их также необходимо усовершенствовать. Не весь трафик, проходящий через туннель HTTP, будет соответствовать нормам протокола HTTP. Имея под рукой эту информацию о поведении HTTP-туннелей, вы можете приступить к их поиску. Я надеюсь, что эта статья была вам полезна, и, как всегда, буду рада вашим отзывам. Наконец, пожалуйста, помните, что для того, чтобы по-настоящему понять что-то, вам действительно нужно воссоздать это или сделать это самостоятельно.