Почему загрузка по протоколу ftp считается небезопасным способом передачи файлов

Протокол FTP (SFTP, FTPS) — что это такое, соединение между клиентом и сервером по ФТП

Здравствуйте, уважаемые читатели блога Goldbusinessnet.com. Очередным шагом на пути познания механизма передачи информации в интернете станет изучение FTP, посредством которого можно в том числе работать с любыми файлами на удаленном сервере.

Как и в случае с HTTP (о всех нюансах которого я сообщал тут), базовой составляющей действия этого протокола является взаимодействие «клиент-сервер», подробности которого мы непременно разберем в данной публикации.

Перед нами не стоит цель с головой окунуться в дебри и по косточкам разобрать абсолютно все разделы этой темы, но вот знание основ работы ФТП и его безопасных вариантов SFTP, FTPS, а также туннелирования посредством SSH-соединения может оказать вам практическую пользу в дальнейшем. В процессе повествования я постараюсь избежать ненужных заумных выражений и объяснить все простыми и понятными словами.

Что такое FTP и в чем его отличие от HTTP

Итак, аббревиатура FTP означает «File Transfer Protocol» и переводится с английского на русский как «протокол передачи файлов». Как и HTTP, файловая передача основывается на модели, состоящей из совокупности протоколов TCP/IP (Transmission Control Protocol/Internet Protocol), на которой и базируется современный интернет.

Если HTTP, который также является протоколом, был изначально предусмотрен создателями для осуществления передачи гипертекста (что это такое?) и небольших текстовых файликов, то ФТП служит для «транспортировки» практически любых файлов.

Вообще, чтобы получше понять суть сегодняшней темы и осмыслить те нюансы, которые будут разобраны нами далее, лучше сразу обратить внимание на основные отличия между FTP и HTTP, выделенные в ниже следующей табличке:

ФТП-соединение по умолчанию происходит через port 21, если не установлен другой порт. Важно также отметить, что этот протокол снабжен двоичным (бинарным) режимом передачи, что экономит трафик и сокращает время обмена данными при передачи больших файлов.

Взаимодействие между Клиентом и Сервером по ФТП

Перед тем, как продолжить, необходимо определиться с еще некоторыми терминами, которые будут совсем не лишними для восприятия картины в целом.

FTP server — это сервер, который предусматривает возможность использования протокола передачи файлов. Он обладает определенными особенностями, отличающими его от обычных вэбсерверов, а именно теми, которые в основном также присущи одноименному протоколу и представлены в табличке выше:

  • необходима аутентификация пользователей (ввод логина и пароля);
  • все операции производятся в рамках текущей сессии;
  • возможность осуществления различных действий: загрузка и выгрузка файлов, их переименование и удаление, создание и удаление каталогов и т.д.;
  • применяется отдельный канал для каждого соединения;
  • поддерживается два варианта передачи: текстовый и двоичный (бинарный), что позволяет передавать файлы различного размера;

Ярким примером ФТП-сервера может служить server хостинга (что означает этот термин), на котором «живет» сайт. Эта информация для вебмастеров не является тайной за семью печатями, но вот тем, кто только планирует заняться сайтостроением, будет как раз к месту.

FTP client — это программа, позволяющая подключиться к удаленному серверу по ФТП и также выполнять на нем необходимые действия с элементами файловой системы. К слову, клиентом вполне может быть браузер, в адресную строку которого следует ввести урл, представляющий собой путь (c протоколом FTP) до определенного каталога или файла на удаленном сервере, в соответствии с общей блок-схемой URL:

Или применить более сложный вариант, ежели используется порт, отличный от 21:

Однако же, использование веб-обозревателя в таком разрезе позволит лишь просмотреть или скачать интересующие файлы. Для того, чтобы в полной мере задействовать все плюсы FTP, в качестве клиента следует применить специализированный софт наподобие Файлзиллы (в этом мануале даны все нужные инструкции по установке, настройке и работе с данной программой):

Читайте также:  Схема добычи угля открытым способом

Чтобы подключиться через уже настроенный клиент FileZilla к удаленному серверу, необходимо ввести название хоста, в качестве которого используется IP-адрес сайта, соответствующий его домену (что такое доменное имя и как его приобрести), имя пользователя, пароль и порт.

Кстати, в статье о Файлзилле дана не только стандартная информация, но и практические советы по устранению ее уязвимости в плане безопасности (несмотря на кучу плюсов, проблемы такого рода у ней есть, впрочем, как и у других программ подобного профиля), поэтому настоятельно рекомендую прочитать этот материал, перейдя по чуть выше предоставленной ссылке.

Но продолжим. Схематически взаимодействие «клиент-сервер» при ФТП-соединении можно наглядно представить следующим образом:

Если расписать этот процесс по пунктам, то получится примерно следующее:

  1. Пользователь активирует клиентское приложение и соединяется с сервером, введя логин и пароль.
  2. Устанавливается управляющее соединение между соответствующими модулями — интерпретаторами протокола со стороны клиента и сервера.
  3. Пользователь посредством клиента посылает команды серверу, определяющие различные параметры FTP-соединения (активный или пассивный режим, порт, вид передачи данных, их тип), а также директивы для действий, которые юзер намерен осуществить (например, удалить, переименовать, закачать файл и т.д.).
  4. После того, как установлены все необходимые параметры, один из участников (к примеру, клиент), являющийся пассивным, становится в режим ожидания открытия соединения на порт, который задан для передачи информации. Затем активный участник открывает соединение и начинает передавать данные по предназначенному для этого каналу.
  5. По завершении передачи это соединение закрывается, но управляющий канал между интерпретаторами остается открытым, вследствие чего пользователь в рамках той же сессии может вновь открыть передачу данных.

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

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

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

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

На практике при анонимном ФТП обычно в качестве логина для доступа применяется известное в сети слово «anonymous», а в качестве пароля — адрес электронной почты, который, впрочем, в большинстве случаев не проверяется.

Безопасный ФТП (SFTP, FTPS и с использованием SSH)

Этот протокол изначально не задумывался как защищенный, так ка разрабатывался в далеком 1971 году и использовался поначалу лишь в научно-исследовательской сети APRANET, доступ в которую имели только несколько военных объектов и университетов.

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

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

По этой причине были разработаны несколько методов, позволяющих зашифровать передаваемую посредством ФТП информацию. Вкупе все эти способы получили обобщающее и емкое название «Безопасный FTP». Вот какие разновидности протокола соответствуют этому термину:

1. FTPS (FTP + SSL) — фактически это расширение стандартного протокола передачи файлов, которое обеспечено криптографическим протоколом SSL (Secure Sockets Layer — уровень защищенных сокетов). На сегодняшний день более передовым его аналогом является TLS (Transport Layer Security — защита транспортного уровня). При этом есть два метода предоставления безопасности:

Читайте также:  Математика 3 класс реши примеры удобным способом

1.1. Неявный является устаревшим и использует стандартный протокол, требующий применения SSL или TLS, которые могут обеспечить шифрование информации. При таком методе обязательно нужно использовать порты, отличные от обычных, что создает неудобства, поскольку нарушается совместимость клиентов и серверов, не поддерживающих FTPS.

1.2. Явный — намного более удобный, так как применяет команды стандартного протокола FTP, но при отправке ответа зашифровывает информацию, что позволяет сохранить совместимость, поскольку в этом случае применяются одни и те же порты как для FTPS, так и для FTP. При этом для шифрования данных клиентом отправляется команда «AUTH TLS» или «AUTH SSL».

2. SFTP (SSH FTP) — протокол прикладного уровня для передачи файлов, который работает поверх безопасного канала, его не следует путать с «Simple File Transfer Protocol», имеющего такую же аббревиатуру. Если FTPS является просто расширением FTP, то SFTP это отдельный и никак не связанный с ФТП протокол, который снабжен SSH (Secure Shell — безопасная оболочка).

Главное, в чем заключается его отличие от стандартного ФТП и ФТПС, это то, что СФТП шифрует абсолютно все команды, имена пользователей, пароли и другую конфиденциальную информацию. Так как это совершенно другая конфигурация, клиенты FTP (FTPS) не могут соединиться с SFTP-сервером.

3. FTP через SSH — производит обычную FTP-сессию через SSH-туннель, то есть этот вариант нельзя путать с SFTP, который является отдельным независимым протоколом. Этот метод нельзя назвать стопроцентно безопасным. Почему?

Дело в том, что если несколько SSH-клиентов устанавливают туннель для управляющего канала, который изначально осуществляется через 21 порт (а такая ситуация практически всегда и наблюдается), то защищенным окажется именно этот канал. При передаче же данных клиентское программное обеспечение откроет новые TCP-соединения, которые будут находиться уже вне воздействия защитной оболочки SSH.

Надеюсь, вы не запутались во всех этих вариантах безопасных протоколов. Для того, чтобы как-то облегчить понимание, позволю себе сделать краткое резюме. Объективно обеспечивающим самую высокую степень защиты является SFTP. Немного уступает ему в надежности явный FTPS, однако он более удобен, поскольку дает возможность пользоваться обычными портами. Какой из них выбрать, зависит от вида задачи, которая перед вами стоит и, конечно, настроек сервера.

Источник

Анализ FTP-трафика во время реагирования на инциденты

Протокол FTP может быть полезным для бизнеса, но в то же время использоваться злоумышленником при реализации различных сценариев с целью компрометирования.

Автор: Howard Poston

Введение в протокол FTP

Как следует из расшифровки аббревиатуры FTP (File Transfer Protocol), протокол предназначен для передачи файлов между компьютерами и используется в различных ситуациях, но наиболее распространенное применение – передача страниц к/от удаленного веб-сервера.

Одна из проблем FTP – отсутствие шифрование и возможность анонимной аутентификации. Поскольку этот протокол предназначен для передачи файлов между клиентом и удаленным севером, вышеуказанная особенность может оказаться большой проблемой в плане безопасности.

Для защиты FTP существуют разные протоколы. Например, FTPS, когда трафик заворачивается в TLS (Transport Layer Security), и SFTP, связанного с SSH и также используемого для реализации зашифрованной передачи файлов.

Анализ протокола FTP в Wireshark

FTP – протокол без шифрования, оперирующий на портах 20 и 21. В Wireshark этот трафик можно идентифицировать при помощи фильтра ftp.

Рисунок 1: Пример трафика, передаваемого по протоколу FTP

На рисунке выше показан пример FTP-трафика, отфильтрованного из TCP-потока при помощи Wireshark. Как нетрудно догадаться, протокол FTP работает по схеме «запрос-ответ». Каждый запрос представляет собой команду, в которой могут быть аргументы. Ответы включают в себя код запроса и запрашиваемые данные.

Рисунок 2: Пример запроса и ответа

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

Поскольку пакеты в примере выше демонстрируют анонимную аутентификацию на FTP-сервер (которую следовало бы отключить по соображениям безопасности), то легко можно перехватить учетные данные пользователя. По этой причине предпочтительно использовать альтернативные протоколы: SFTP, SCP, FTPS и так далее.

Читайте также:  Мочалка игрушка ежик способ 2

Анализ FTP-трафика во время реагирования на инциденты

FTP – это протокол, спроектированный с упором на простоту и функциональность, а не безопасность, в результате чего у злоумышленников есть несколько вариантов компрометирования в случае получения доступа к серверу.

Утечка данных

FTP предназначен для передачи файлов между сервером и (потенциально) множеством различных клиентов. Наиболее распространенное применение этого протокола – создание файловых серверов для совместного централизованного использования официальных копий внутри организации с простым доступом.

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

Кроме того, FTP сервер может использоваться в качестве промежуточного звена для утечки данных, поскольку наиболее распространенное применение этого протокола – добавление/удаление файлов, и списки управления доступом фаервола (ACL) могут разрешать FTP трафик внутри корпоративной сети. Мониторинг FTP протокола на предмет нестандартного использования – важная мера по предотвращению утечки данных.

Установка вредоносных программ

Одна из наиболее сложных проблем, с которой сталкивается злоумышленник во время компрометирования, — установка и запуск вредоносной программы на целевой машине. В следствии многих угроз, связанных с исполняемыми файлами (в том числе с расширением .exe), реализуются меры по усилению антифишинговых мероприятий, что в свою очередь затрудняет загрузку и запуск приложений через электронную почту.

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

Использование украденных учетных записей (credential stuffing)

Поскольку количество аккаунтов в сетевых сервисах увеличивается, становится сложнее поддерживать уровень безопасности. В результате многие используют слабые и распространенные пароли. По статистике примерно 10% пользователей используют один из 25 наиболее распространенных паролей, и 62% использую одни и те же пароли в персональных и рабочих учетных записях. Даже если злоумышленник будет просто пробовать слабые и распространенные пароли по всем учетным записям, вероятность получения доступа в одном из случаев значительно повышается.

Этот тип атаки, называемый credential stuffing, требует доступа или к хэшам паролей, или к сетевому сервису, требующему аутентификации. Хорошо настроенная FTP служба удовлетворяет второму критерию, когда пользователю нужно пройти авторизацию при помощи рабочей учетной записи для использования этого сервиса.

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

Атака FTP bounce

Во время атаки FTP bounce используется команда PORT, которая предназначена для перенаправления FTP трафика на другой сервер. В этом случае злоумышленник может проникнуть в системы, доступ к которым заблокирован правилами фаервола. Любое использование команды PORT протокола FTP должно быть тщательно проанализировано на предмет неправомерного использования.

Заключение

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

Источник

Оцените статью
Разные способы