Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
19-24.doc
Скачиваний:
12
Добавлен:
19.04.2019
Размер:
202.24 Кб
Скачать

23. Защита ftp- сервера

Общие сведения о FTP уязвимостях. FTP-спецификация содержит множество механизмов, которые могут использоваться для обхода систем безопасности. FTP позволяет пользователю пересылать файлы с сервера на другой компьютер. Эта технология, известная как proxy FTP, вызывает хорошо известные проблемы защиты. FTP спецификация позволяет провести неограниченное число попыток по вводу пароля пользователя. Это позволяет провести подбор пароля. File Transfer Protocol specification (FTP) позволяет пользователю установить FTP-соединение и пересылать файлы между 2-мя FTP серверами. Этот механизм используется для уменьшения полезного трафика в сети. Это особенно эффективно при использовании медленного соединения (например, модем). Proxy FTP вызывает проблему, известную как "bounce attack"- подробнее о ней ниже . Также FTP может использоваться для подбора пароля. FTP Bounce атака. Введение.  Уже несколько лет, проходят постоянные дискуссии о проблемах связанных с командой PORT в FTP протоколе. Эти проблемы основаны на неправильном использовании команды PORT в FTP протоколе. Хотя эта проблема была обнаружена несколько лет назад, но она до сих пор не потеряла своей актуальности. 1.FTP протокол. Чтобы понять атаку надо иметь представление о FTP протоколе (Postel, J., and J. Reynolds, "File Transfer Protocol," STD 1, RFC 959, USC/Information Sciences Institute, October 1985.)[1] Сначала клиент открывает соединение на управляющем порту FTP (порт 21) FTP сервера. Так чтобы сервер потом мог послать данные на машину клиента, потом соединение должно быть открыто между сервером и клиентом. Чтобы осуществить это второе соединение, клиент посылает команду PORT на сервер. Эта команда включает параметры, которые говорят серверу с каким IP адресом надо соединиться и какой порт открыть по этому адресу - в большинстве случаев это предположительно будет порт с большим номером на машине клиента. Сервер затем открывает это соединение, источником соединения является 20 порт на сервере, а приемник - это порт идентифицирующийся по параметрам команды PORT . Команда PORT обычно используется в "active mode" FTP, по умолчанию. И обычно не используется в passive ( также известный как PASV [2]) mode. Имейте введу, что серверы обычно поддерживают оба режима, а клиент определяет какой из методов использовать [3]. 2. The FTP Bounce Attack В соответствии FTP протоколу, команда PORT формируется для каждого клиента специфически - соответственно и порт на стороне клиента тоже. Но это также означает, что атакующий может открыть соединение на порт по своему выбору на машине которая возможно не является истинным клиентом. Получение этого соединения на произвольной машине - это и есть FTP bounce attack. Для иллюстрирования привожу несколько примеров ее использования. 3.1 Port scanning. Атакующий желает произвести сканирование порта хоста и может это сделать с анонимно через FTP сервер который выступает в качестве этапа сканирования. Хост жертвы видит сканирование исходящее от FTP сервера, а не истинный источник ( FTP клиент ). При некоторых обстоятельствах, эта техника представляет атакующему большие преимущества - это точное скрытие реального источника исследования . Когда предположительная жертва в этой подсети является FTP сервером, или когда не фильтруется трафик исходящий с FTP сервера, атакующий может использовать сервер как источник сканирования портов, что предпочтительней чем машину клиента, таким образом удается обойти ограничение доступа, которое могло в противном случае фильтроваться Firewall. 3.2 Обход Firewall. Атакующий может обойти firewall (или другую ограничивающую защиту) в определенных конфигурациях сети. Например, допустим, что хост имеет анонимный FTP сервер за firewall . Используя вышеуказанную технологию сканирования портов атакующий определяет, что внутренний web сервер на этом хосте находится на 8080 порту, порт нормально блокируется firewall. При соединении на public FTP сервер на хосте, атакующий инициирует дальнейшее соединение между FTP сервером и произвольным портом на внутренней машине на хосте (например внутренний web сервер на 8080 порту ). В результате , атакующий устанавливает соединение с машиной которая в противном случае защищается firewall.  3.3 Пример атаки на sendmail.  - Находим сервер который разрешает uploads . - Upload'им на туда файл содержащий SMTP диалог для посылки сообщения  - Даем команду PORT victim-ip,25 - Даем команду RETR filename Тоже самое можно проделать и с диалогом NNTP . 4. Решения. - Защита от Bounce Attack Оригинальная FTP спецификация подразумевает соединение при помощи Transmission Control Protocol (TCP). Порты TCP от 0 до 1023 зарезервированы для таких сервисов, как почта, сетевые новости и контроль FTP соединений. FTP спецификация не имеет ограничений на номер TCP порта, используемый для соединения. При помощи proxy FTP пользователь может провести при помощи сервера атаку сервисов на любой машине. Для избежания подобных атак необходимо запретить открытие соединения в портах TCP, меньших 1024. Если сервер получает команду PORT с параметром, меньшим 1024, сервер отвечает 504 (определено как "Command not implemented for that parameter"). Однако это всё еще оставляет уязвимыми сервисы, запускаемые на портах более чем 1024.  Некоторые источники предлагают использование другого протокола (не TCP). Нужно учесть, что bounce attack требует закачки файла на FTP сервер и последующую его перекачку на атакуемый сервис. Использование файловых защит устранит эту возможность. Взломщик также может атаковать сервис посылкой случайных данных с FTP сервера, что может  доставить некоторые проблемы сервисов. Отключение команды PORT также может быть использовано для защиты от атак. Большинство файловых пересылок может быть сделано при помощи команды PASV. Однако в таком случае proxy FTP не может быть использовано. - Допускать в параметрах команды PORT только IP клиента.  - Либо не поддерживать FTP вообще. 3) Использование погрешности в реализации FTP протокола.[4] Дэвид Сэйсердот в своей статье посвященной уязвимости FTP протокола и датированной аж апрелем 1996 года теоретически уязвимость FTP протокола при его некорректной реализации. В статье интересны два момента, причем не связанные напрямую с ее содержанием а именно:  1. С апреля 1996 года проблема нисколько не утратила своей актуальности. Проблема очень серьезная, поскольку позволяет, например, атаковать клиента находящегося за прокси-сервером (подсунув измененные данные прокси серверу вы тем самым подсунете их клиенту).  2. Дэвид ошибался как в оценке уязвимости FTP-клиентов, так и в сложности реализации данной уязвимости, т.к. указанные им методы чересчур сложны для реального использования.  Лечиться эта проблема так же должна другими методами: сервер не должен принимать более одного соединения на порт данных (так делает IIS, поэтому против него такая атака работает лишь как DoS, не позволяя подсоединиться клиентам). Клиент в активном режиме должен проверять IP адрес соединения и так же не позволять двух соединений на один порт. Кроме того, при получении сообщения об ошибке или при неожиданном закрытии контрольного сеанса, сторона, принимающая данные, должна эти данные игнорировать (т.е. удалять принятый файл). Кроме того, желательно наличие в протоколе команды вычисляющей контрольную сумму файла (хотя этим можно воспользоваться как DoS атакой - требуются большие ресурсы сервера).  Было обнаружено, что стандартный ftp из FreeBSD 2.2.5 (и наверняка любой другой BSD4.2 клиент) уязвим, несмотря на заверения Дэвида в обратном. Так же уязвим практически любой FTPD-based FTP сервер (wu-ftpd, например, практически любой версии или стандартный FTPD) . При этом ftp клиент в Midnight Commander, например, такой проблемы не имеет.  Проблема была исследована ЗАРАЗой [4] после чего он написал эксплоит, который использует точь-в-точь алгоритм предложенный Дэвидом больше трех лет назад. Цитата из его статьи по этому поводу: "Может быть я и изобрел велосипед, но, похоже, на этом велосипеде за три года кататься разучились. По крайней мере, посещаемость FTP серверов не упала а защищенность не увеличилась. " - Угадываем, какой порт будет открыт пассивным FTP-сервером или активным клиентом и атакуем этот порт постоянными запросами на TCP соединение. Если соединение удалось установить, мы либо посылаем туда свои собственные данные либо читаем данные оттуда. Либо - и то и другое. Вопрос лишь в том, как угадать порт, а сделать это не сложно, если вы можете использовать атакуемую машину или как FTP сервер, или как прокси или как сервер для отправки почты. В случае атаки на FTP сервер - мы не имеем никаких проблем.  - Как работает эксплоит: Открывает соединение на 21й порт сервера и через равные интервалы времени дает команду PASV, на которую сервер любезно отвечает номером открытого порта. Вот именно его мы и используем за основу для вычисления атакуемого порта. Соединение устанавливается, программа переходит в режим ожидания данных. Если в течении 5 секунд данные не поступили, то программа сама посылает данные. Работает как против сервера, так и против клиента (при условии, что на машине клиента так же живет FTP-Сервер). Можно атаковать клиента и используя данные о порте полученные другим образом, например, если на компьютере клиента стоит sendmail можно отправлять через него письма на свою машину и определять номер порта, с которого пришло соединения на 25й порт. Если на компьютере клиента есть прокси сервер, то можно запросить любую URL со своего компьютера и так же определить порт входящего соединения.  5) Защита FTP . 1. Ограниченный доступ  Для некоторых FTP серверов предпочтительно ограничить доступ, базированный на сетевом адресе. Например, можно ограничить доступ к определённым файлам с определённых мест (например, если файл не должен выходить за пределы организации). В таком случае, сервер должен проверить сетевой адрес перед посылкой такого файла. Ограничение доступа по сетевому адресу оставляет сервер уязвимым для "spoof" атак. В такой атаке, машина взломщика может присвоить себе адрес другой машины и скачать недоступные вне организации файлы. 2. Защита паролей Чтобы исключить подбор пароля, нужно ограничить число попыток ввода правильного пароля. После 3-5 попыток сервер должен закрыть соединение, послав перед этим код возврата 421 ("Service not available, closing control connection."). Также, рекомендуется установить 5-секундную паузу перед ответом, что пароль неверен. Обход этой технологии возможен при множестве параллельных соединений с сервером. Для борьбы с этим, необходимо ограничить максимально возможное число соединений. Однако это приводит к возможности DOS-атак. 3. Privacy Все данные (включая пароли) посылается через сеть в незашифрованном виде по стандарту FTP. Для гарантирования приватность информации, пересылаемой по FTP. нужно использовать мощный алгоритм шифровки везде, где это возможно. 4. Защита имён пользователей Стандартный FTP определяет реакцию 530 на команду USER, когда имя пользователя не допускается. Если имя пользователя верно и нужно ввести пароль, FTP возвращает 331. Для того, чтобы взломщик не смог определить имена пользователей, FTP должен всегда отвечать 331 на команду USER. 24. Защита почтового сервера

Существуют два основных метода защиты почтового сервера от спама: защита от поступления спама на этапе получения почтовым сервером и «отделение спама» от остальной почты уже после получения почтовым сервером.

Среди первого метода наиболее популярны такие способы как использование DNS Black List (DNSBL), greylisting и различные timeouts при отправке почты; использование различных технических средств, таких как проверка существования пользователя на отправляющей стороне (callback), проверка «правильности» отправляющего сервера такими методами как наличие записи в реверсной зоне DNS, легальности имени при установке SMTP-сессии (helo), проверка SPF записи (для работы этого в DNS записи о хосте используется соответствующая запись о легальных серверах отправителей).

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

Итак, рассмотрим более подробно данные методы фильтрации электронной почты.

Черные списки. В черные списки заносятся IP-адреса, с которых производится рассылка спама. Широко используются такие списки, как списки «открытых релеев» и «открытых proxy» и различные списки динамических адресов которые выделяются провайдерами для конечных пользователей. Благодаря простоте реализации использование этих black-листов производится через службу DNS.

Серые списки или грейлистинг. Принцип действия серых списков (Greylisting) основан на тактике рассылки спама. Как правило, спам рассылается в очень короткое время в большом количестве с какого-либо сервера. Работа серого списка заключается в намеренной задержке получения писем на некоторое время. При этом адрес и время пересылки заносится в базу данных серого списка. Если удалённый компьютер является настоящим почтовым сервером, то он должен сохранить письмо в очереди и повторять пересылку в течение пяти дней. Спам-боты, как правило, писем в очереди не сохраняют, поэтому спустя непродолжительное время, прекращают попытки переслать письмо. Экспериментальным путём установлено, что в среднем время рассылки спама составляет чуть больше часа. При повторной пересылке письма с этого же адреса, если с момента первой попытки прошло необходимое количество времени письмо принимается и адрес заносится в локальный белый список на достаточно длительный срок.

Первые два метода позволяют отсеивать около 90% спама еще на этапе доставки в почтовый ящик. Уже доставленную почту можно разметить средствами анализа содержимого письма, например, используя программу spamassassin. Данный продукт позволяет на основе особых алгоритмов добавлять в заголовки письма соответствующие строки, а пользователь, на основе почтовых фильтров в почтовом клиенте, может отфильтровать почту в нужные папки почтовой программы.

Разумеется существуют и другие способы защиты от спама, наиболее действенными, к сожалению на данный момент являются превентивные меры, такие как не доставлять свой реальный E-mail на сайтах, форумах и досках объявлений, используя для подобных нужд временные адреса, которые в последствии можно удалить, в случае необходимости публикация e-mail на сайте вместо текста использовать графическое изображение и тому подобные меры.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]