BASH Script как сервис xinetd
Недавно я обнаружил, что сервер, на котором я работаю, имеет службу xinetd, которая на самом деле является сценарием оболочки, который вызывает другой сценарий оболочки с аргументами, полученными через соответствующие сетевые подключения.
Это делает что-то вроде этого:
/execute/another/script $WITH $A $FEW $ARGUMENTS
То, что заставляет меня бояться, что это настоящая проблема, это то, что переменные никоим образом не очищаются, и, поскольку они выполняются с правами root, к ним следует относиться серьезно.
Может ли кто-нибудь, пожалуйста, посоветовать? Мне также было бы любопытно узнать, как можно злоупотреблять переменными в таких ситуациях, чтобы выполнить что-то еще, кто-то может привести примеры?
2 ответа
Я вижу два типа атак. Один против самого скрипта, вызывая его с данными, которые могут дать повышенные привилегии. Другой против bash, используя переполнение буфера или другие ошибки bash. Одна из проблем заключается в том, что bash не был разработан для обеспечения хорошей безопасности для такого рода атак, поскольку он ожидает, что ввод поступает от того же человека, что и тот, кто его запустил.
Как минимум, я бы обновил скрипт bash, чтобы иметь возможность работать как обычный пользователь и использовать sudo
или другой механизм Unix для вещей, которые требуют повышенных привилегий.
Как насчет этого?
export ARGUMENTS='ValidArg&mkdir /var/tmp/hello_there'