Re: чтение чужих файлов: не стоит патчить

Pavel V. pavel2000 на ngs.ru
Сб Ноя 26 10:28:04 UTC 2011


Здравствуйте, Dmitry.

Вы писали 26 ноября 2011 г., 12:19:20:

> Еще размышления на тему стоит ли патчить nginx

> смотрите. человек от которого мы хотим защищаться

> 1. имеет возможность создавать симлинки
> 2. использует nginx далее для выкачки нужных файлов

Brawo.

В общем случае, любой пользователь системы всегда имеет возможность создавать симлинки,
если у него есть какой-то каталог, доступный на запись.
Даже не имея явного шелла (SSH), симлинки можно создавать, залив специально
обученный скрипт, например, по FTP и вызвав его по HTTP.

> поскольку у него есть [1] ... он УЖЕ имеет доступ ко всем файлам системы.

Умопомрачительная логика. Соглашаясь с ней, мы должны признать, что "всякие" rwxr-x---, права
доступа, владелец/группа файлов - это "ничто". Но это не так. Права на файлы есть, и системные
проверки уровня файловой системы работают.

Имея возможность создать симлинк, пользователь _ещё_ не имеет доступа ко всем файлам системы.
Ваши размышления - неверны.

>  то следовательно nginx здесь всего один из
> путей.  стоит ли nginx или не стоит.

Nginx - один из немногих путей. В разбираемой ситуации их, собственно, всего "два":
- Веб-сервер nginx, запущенный от имени пользователя,
  имеющего право чтения "всех" файлов, в т.ч. и по симлинку.
- Веб-сервер apache и его модули, в т.ч. mod-php, также запущенный от имени пользователя,
  имеющего право чтения "всех" файлов, в т.ч. и по симлинку.

И вот теперь, когда на сервере есть веб-сервер, имея возможность создать симлинк, вот тогда
пользователь _уже_ имеет доступ ко всем файлам системы, к которым имеет доступ веб-сервер.

Данная тема уже обсуждалась, со всеми подробностями, с учетом возможности обхода защит путем
эксплуатирования Race Conditions, с чтением документации по Apache и уточнением из неё, что
апачевская директива SymLinksIfOwnerMatch - также не является панацей.

Цитирую http://httpd.apache.org/docs/2.2/mod/core.html#Options :
"This option should not be considered a security restriction, since symlink testing is subject
to race conditions that make it circumventable."

Других веб-серверов,  кроме Apache и Nginx я не эксплуатирую, как в них обстоят дела с аналогичной
проблемой - не знаю. 

-- 
С уважением,
 Pavel                          mailto:pavel2000 at ngs.ru



Подробная информация о списке рассылки nginx-ru