Пост канала
- фото
Почему переменная PATH может стать точкой атаки 👋 Приветствую в мире цифровой безопасности! Когда вы вводите ls или python, Linux ищет нужную программу в каталогах из переменной PATH. Но что произойдёт, если в этом списке окажется каталог, куда может записывать другой пользователь? ⏺Посмотреть порядок поиска можно командой: echo "$PATH" Например: /usr/local/bin:/usr/bin:/bin Система проверяет каталоги слева направо и запускает первый подходящий исполняемый файл. ⏺Где появляется проблема: Допустим, скрипт администратора вызывает команду без полного пути: #!/bin/bash backup-tool /var/www Если в начале PATH находится доступный для записи посторонним каталог, там можно разместить другую программу с именем backup-tool. Скрипт запустит её вместо ожидаемой утилиты. ⏺Особенно опасно, когда такой скрипт выполняется с повышенными привилегиями. Тогда подменённая программа может получить права процесса, который её запустил. Проверить, какой файл будет найден, можно через: type -a backup-tool command -v backup-tool ⏺Как защититься? Для привилегированных скриптов лучше задавать безопасный PATH и использовать абсолютные пути к важным утилитам: PATH=/usr/sbin:/usr/bin:/sbin:/bin export PATH /usr/bin/id Также стоит проверить, что каталоги из PATH не доступны на запись непривилегированным пользователям. ⏺Есть и менее очевидный случай: пустой элемент в PATH, например :/usr/bin, означает поиск программы в текущем каталоге. Если скрипт запускается из недоверенной директории, это создаёт дополнительный риск. Сам по себе PATH не уязвимость. Проблемы начинаются, когда привилегированная программа доверяет окружению и запускает команды, не контролируя, откуда они берутся. 🤖Бесплатный ChatGPT
Открыть в MAX- Просмотры
- 356
- ER
- 0,6%
- Реакции
- 2