Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] setuid ?



In <007801bfa905$cfb48c70$390710ac@xxxxxxxxx> Denis Blinov (blinov@xxxxxxxxx) wrote:
DB> Привет

DB> Кто-нибудь смотрел в этом направлении? Пользователь аплоадит файл в свой
DB> домашний каталог. Естественно, хотелось бы, чтобы права на него принадлежали
DB> именно ему, а не nobody. SuExec не работает, так как используется mod_perl.
DB> Единственное, что приходит в голову - suid'ная программка, принадлежащая
DB> руту, принимающая от перлового скрипта данные и, прикинувшись нужным нам
DB> юзером, осуществляющая все файловые операции.
DB> Но как-то это некрасиво.
DB> Судя по архивам, с год назад тут нечто подобное обсуждалось. Ничего
DB> разумного тогда придумать не удалось?

Естественно. На то есть веские, я бы сказал, ПРИНЦИПИАЛЬНЫЕ причины. Дело не
в недостатке кваливикации у создателей Apache.

Итак, давайте посмотрим внимательно на происходящее:
1) имеем процесс с ошибками и дырами (apache) - не то, чтобы я сходу был
готов их продемонстрировать (хотя если подумать... и знать номера версий,
которые у вас стоят...), но и apache и perl НЕ СОЗДАНЫ для того, чтобы
быть 100% secure'ными, а скорее даже наоборот - созданы для того, чтобы
система не сильно пострадала от их взлома (а если еще учесть всякие .so
игрушки perl'овые)...
2) ВНУТРИ этого процесса (через mod_perl) пускаются всякие вещи, которые
могут контролировать ваши пользователи и при этом без больших проблем могут
испортить этот самый процесс...
3) вы хотите, чтобы этот процесс мог произвольным образом менять свою EUID
(чтобы можно было уничтожить не только все файлы, работа с которыми
происходит через эти mod_perl'овые скрипты, но и вообще всю систему
превратить в набор не связанных друг с другом битов)...
4) вы ДЕЙСТВИТЕЛЬНО этого хотите ? тогда пускайте свой apache из под root'а
и все файлы создавайте под ним же - по степени разрушительности это близкое
действие...

P.S. Да, как несложно заметить из вышеописанного, этот самый suid'ный бинарник
НИ В КОЕМ СЛУЧАЕ не должен абсолютно доверять тому, что его вызывает легальный
скрипт; в худшем случае нужно реализовать набор проверок a-la suexec, но лучше
всего вынести авторизацию в него...



=============================================================================
=               Apache-Talk@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.