27.11.2020

В Fedora предложили перевести протокол SCP в разряд устаревших


Якуб Елень (Jakub Jelen), инженер по обеспечению безопасности из компании Red Hat, предложил перевести протокол SCP в разряд устаревших. SCP концептуально близок к протоколу RCP и наследует фундаментальные архитектурные проблемы, которые являются источником потенциальных уязвимостей.

В частности, в SCP и RCP решение о том, какие файлы и каталоги отправить клиенту принимает сервер, а клиент следует предписанию сервера и лишь проверяет корректность возвращённых имён объектов. При подключении к серверу, подконтрольному злоумышленнику, сервер может выдать другие файлы, что уже ни раз приводило к выявлению уязвимостей. Например, до недавних пор клиент лишь проверял соблюдение текущего каталога, но не учитывал, что сервер мог выдать файл с другим именем и перезаписать файлы, которые не были запрошены (например, вместо запрошенного «test.txt» сервер может передать файл с именем «.bashrc» и он будет записан клиентом).

Другой проблемой протокола SCP является особенность обработки аргументов. При копировании файлов на внешний сервер путь к файлу добавляется в конец локальной команды scp, например при выполнении команды «scp /sourcefile remoteserver:’`touch /tmp/exploit.sh`/targetfile'» на сервере будет выполнена команда «touch /tmp/exploit.sh» и создан файл /tmp/exploit.sh, поэтому важно использовать корректное экранирование символов в scp. При использовании scp для рекурсивной передачи содержимого каталогов (опция «-r») в файловых системах, допускающих использование символа ‘`’ в именах файлов, атакующий может создать создать файл с апострофами и организовать выполнение своего кода. В OpenSSH указанная проблема остаётся неисправленной, так как её проблематично устранить без нарушения обратной совместимости, например, некоторые пользователи используют запуск команд для проверки наличия каталога перед копированием.

Прошлые обсуждения показали, что scp в большинстве случаев применяется для копирования файлов с одной системы на другую. При этом многие используют scp вместо sftp из-за более простого и очевидного интерфейса для копирования файлов или просто в силу привычки. Якуб предлагает задействовать по умолчанию переделанную реализацию утилиты scp, переведённую на использование протокола SFTP (для каких-то особых случаев в утилите предусмотрена опция «-M scp» для отката на протокол SCP), или добавить в утилиту sftp режим совместимости, позволяющий использовать sftp в качестве прозрачной замены scp.

Из ограничений предложенного подхода упоминается невозможность обмена данными с серверами, не запускающими подсистему sftp, и отсутствие режима передачи между двумя внешними хостами с транзитом через локальный хост (режим «-3»). Некоторые пользователи также отмечают небольшое отставание SFTP от SCP по пропускной способности, которое становится более заметным на плохих соединениях с большими задержками.

Для тестирования в репозиторий copr уже помещён альтернативный пакет c openssh, в котором применён патч с реализацией утилиты scp поверх протокола SFTP.

Источник: https://www.opennet.ru/opennews/art.shtml?num=54039

Добавить комментарий