URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 93057
[ Назад ]

Исходное сообщение
"Странная работа Apache 2.2.22"

Отправлено ethereal , 18-Фев-12 14:22 
Добрый день!
Столкнулся с серьёзной проблемой в безопасности Apache.
Имеется Apache 2.2.22 + mod_php(5.2.17)

С помощью функций exec(),system(),shell_exec()
вызываемых через Apache
могу преспокойно читать многие файлы в каталоге /etc,
возможно и из других каталогов тоже

Вывод exec('who') показывает что процесс выполняется от root.
Но при запуске из консоли
ps aux | grep "httpd"
мне показывается что воркеры apache работают под
пользователем apache, хотя и есть один с пользователем root.

Запрещать выше названные php-функции не хочется, поскольку считаю
что проблема именно в Apache, ведь в документации сказано что его воркеры
работают под непривелигерованным пользователем.

Жду ваших советов.
Спасибо.


Содержание

Сообщения в этом обсуждении
"Странная работа Apache 2.2.22"
Отправлено PavelR , 18-Фев-12 14:39 
> С помощью функций exec(),system(),shell_exec()
> вызываемых через Apache
> могу преспокойно читать многие файлы в каталоге /etc,
> возможно и из других каталогов тоже

Вот это открытие. Вы знаете, что такое права доступа? Попробуйте почитать книги по администрированию Unix/Linux.

> Вывод exec('who') показывает что процесс выполняется от root.

Как это было проверено? Опишите подробнее условия эксперимента.


"Странная работа Apache 2.2.22"
Отправлено ethereal , 18-Фев-12 19:03 
> Вот это открытие. Вы знаете, что такое права доступа? Попробуйте почитать книги

Конечно же я знаю про систему прав.
Но никакие права не мешают пользователю root читать любой файл в его системе,
стало быть и apache работающему от пользователя root также.

>> Как это было проверено? Опишите подробнее условия эксперимента.

//index.php
<?php
echo system('who');
?>

открываем index.php в браузере и видим уже и говорилось ранее
root root и прочая стандартная информация.
Что интересно - я проводил этот эксперимент над apache 2.2.12 указав в httpd.conf
User daemon
Group daemon
и прочитав через
echo system('cat /etc/passwd').
Так вот в этом случае мне вернулась всего одна строчка - соотв. пользователю daemon.
А теперь выводится весь список пользователей.

А по поводу настроек в httpd.conf и файловой системы - я ведь не запрашиваю непосредственно статические файлы в /etc/
я посредством системных функций php читаю файлы и даю их на вывод apache.


"Странная работа Apache 2.2.22"
Отправлено Викентий Жопорезку , 19-Фев-12 18:27 
whoami не who

"Странная работа Apache 2.2.22"
Отправлено Алексей Михайлович , 18-Фев-12 14:48 
> Столкнулся с серьёзной проблемой в безопасности Apache.
> Имеется Apache 2.2.22 + mod_php(5.2.17)
> С помощью функций exec(),system(),shell_exec()
> вызываемых через Apache
> могу преспокойно читать многие файлы в каталоге /etc,
> возможно и из других каталогов тоже
> Жду ваших советов.

Добрый день.
Рекомендую ознакомиться с указанными рекомендациями по поводу усиления защищенности веб-сервера.

Protect Server Files by Default

One aspect of Apache which is occasionally misunderstood is the feature of default access. That is, unless you take steps to change it, if the server can find its way to a file through normal URL mapping rules, it can serve it to clients.

For instance, consider the following example:

# cd /; ln -s / public_html
Accessing http://localhost/~root/

This would allow clients to walk through the entire filesystem. To work around this, add the following block to your server's configuration:

<Directory />
Order Deny,Allow
Deny from all
</Directory>

This will forbid default access to filesystem locations. Add appropriate Directory blocks to allow access only in those areas you wish. For example,

<Directory /usr/users/*/public_html>
Order Deny,Allow
Allow from all
</Directory>
<Directory /usr/local/httpd>
Order Deny,Allow
Allow from all
</Directory>

Подробнее: http://httpd.apache.org/docs/2.2/misc/security_tips.html

Короче говоря, Apache по умолчанию может допустить веб-клиентов к корневой файловой системе сервера.
Нужно запретить ему это делать на основании изложенных выше рекомендации, которые указаны на официальном сайте фонда Apache.


"Странная работа Apache 2.2.22"
Отправлено PavelR , 18-Фев-12 14:58 
> Подробнее: http://httpd.apache.org/docs/2.2/misc/security_tips.html
> Короче говоря, Apache по умолчанию может допустить веб-клиентов к корневой файловой системе
> сервера.
> Нужно запретить ему это делать на основании изложенных выше рекомендации, которые указаны
> на официальном сайте фонда Apache.

А про race conditions (про отсутствие защищенности) сказку (а вообще-то быль) на ночь рассказывать будете?

Про то, что файлы других пользователей имеют высочайшие шансы прочитаться ?

Может быть о эксплойтах уязвимостей ядра с повышением привилегий поговорим ?


"Странная работа Apache 2.2.22"
Отправлено Алексей Михайлович , 18-Фев-12 16:53 
> А про race conditions (про отсутствие защищенности) сказку (а вообще-то быль) на
> ночь рассказывать будете?

Про "race conditions" специально для Вас сказка (а вообще-то быль) на ночь: http://ru.wikipedia.org/wiki/Therac-25

> Про то, что файлы других пользователей имеют высочайшие шансы прочитаться ?
> Может быть о эксплойтах уязвимостей ядра с повышением привилегий поговорим ?

Из прочитанного усматривается, что Вы являетесь крупным специалистом в вопросе информационной безопасности.


"Странная работа Apache 2.2.22"
Отправлено LSTemp , 02-Мрт-12 00:59 
>[оверквотинг удален]
> Вывод exec('who') показывает что процесс выполняется от root.
> Но при запуске из консоли
> ps aux | grep "httpd"
> мне показывается что воркеры apache работают под
> пользователем apache, хотя и есть один с пользователем root.
> Запрещать выше названные php-функции не хочется, поскольку считаю
> что проблема именно в Apache, ведь в документации сказано что его воркеры
> работают под непривелигерованным пользователем.
> Жду ваших советов.
> Спасибо.

а хренли советов ждать - смотри с чем твой апач собран в системе.

даже не показал, какие статически/динамические модули есть и загружаются, а про настройку (проблемы/советы) уже вопишь.