Назад | Перейти на главную страницу

Почему AcceptEnv * считается небезопасным?

В /etc/ssh/sshd_config, есть опция под названием AcceptEnv который позволяет ssh-клиенту отправлять переменные среды. Мне нужно иметь возможность отправлять большое количество переменных среды. Они меняются при каждом подключении от клиента, поэтому добавить их в сценарий входа на сервер будет сложнее.

Я читал это "AcceptEnv *" небезопасно. Я хотел бы понять, почему, прежде чем пытаться получить список всех переменных среды, которые пытались установить туда.

Почему это считается небезопасным? Могу я привести пример?

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

Не все версии справочных страниц для sshd_config упоминают это. Если переменные среды изменяются заранее и определенные привилегированные процессы выполняются с новыми библиотеками, указанными в них, могут возникнуть проблемы.

Взгляни на http://www.dankalia.com/tutor/01005/0100501004.htm и выполните поиск по запросу "LD_PRELOAD Exploit". К сожалению, на странице нет якорных ссылок.

См. Также этот вопрос на StackOverflow "Что такое трюк с LD_PRELOAD?"

Установка переменных среды после подключения - это нормально, но когда эти переменные интерпретируются демоном ssh, как установлено AcceptEnv, могут возникнуть плохие вещи.

Не принимать переменные окружения:

Видеть эксплойт Shellshock это появилось недавно ... если вы принимаете переменные окружения, вы открываете действительно неприятный эксплойт.