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

BASH Script как служба xinetd

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

Это происходит примерно так:

    /execute/another/script $WITH $A $FEW $ARGUMENTS

Что заставляет меня опасаться, что это реальная проблема, так это тот факт, что переменные никаким образом не дезинфицируются, и, поскольку это выполняется как root, к этому следует относиться серьезно.

Может кто-нибудь посоветовать? Мне также было бы любопытно узнать, как можно злоупотреблять переменными в таких ситуациях, чтобы выполнить что-то еще, может кто-нибудь привести примеры?

Я вижу два типа атак. Один против самого скрипта, вызывая его с данными, которые могут дать повышенные привилегии. Другой - против bash, используя переполнение буфера или другие ошибки bash. Одна из проблем заключается в том, что bash не был разработан для обеспечения хорошей защиты от атак такого типа, потому что он ожидает, что входные данные будут вводиться тем же человеком, что и тот, кто его запустил.

Как минимум, я бы обновил сценарий bash, чтобы он мог работать как обычный пользователь и использовать sudo или другой механизм Unix для вещей, требующих повышенных привилегий.

Как насчет этого?

export ARGUMENTS='ValidArg&mkdir /var/tmp/hello_there'