/var/log/nginx

Maxim Dounin mdounin на mdounin.ru
Чт Дек 16 05:04:50 MSK 2010


Hello!

On Thu, Dec 16, 2010 at 01:28:04AM +0200, Gena Makhomed wrote:

> On 16.12.2010 0:23, Maxim Dounin wrote:
> 
> >Просто нужно понять для себя, что "PHP Local File ..." легко
> >превращается в remote code execution.  И лечить проблему, а не
> >следствие.
> 
> для себя я понимаю. но кроме меня есть еще много людей,
> которым нужен софт, который создан с использованием PHP.
> в том числе и killer app, аналогов которым нет (MediaWiki)

Этот софт или exploitable, или нет.  Если exploitable - надо 
лечить.

> >Не говоря уже о том, что средств ограничить php в том, до каких
> >файлов он вообще сможет добраться - море, начиная от классического
> >chroot
> 
> "chroot is not and never has been a security tool" (ц) Alan Cox
> не говоря уже о том, что например, для 2000 сайтов надо будет 2000
> chroot`ов и как минимум 2000 одновременно запущенных экземпляров PHP.

Так и проблему решаем не имеющую отношения к security.  Проблема, 
имеющая отношение к security - она имеет чёткое решение, описанное 
выше.

> >и заканчивая php'шным же open_basedir.
> 
> защита open_basedir имеет смысл только в том случае,
> если PHP не имеет права выполнять внешние программы.
> если имеет, то ограничение open_basedir легко обходится.

Опять же - какую проблему решаем?  Заткнуть простую эскалацию "php 
local file include ..." в remote code execution?  Тогда 
open_basdir снимет часть головной боли, не заставляя ставить 
ужасные права на всё что попало.  Решить вообще все проблемы php?  
Тут, естественно, поможет только патч Бармина.

> >>>А почему параноики ставят минимальные права, с которыми вообще
> >>>способна работать программа, на всё, до чего дотянутся - для меня
> >>>загадка.  Видимо, потому что параноики.
> 
> >>это называется "Principle of least privilege".
> 
> >Я знаю, как это называется, спасибо.  И очень хорошо знаю, к чему
> >это приводит на практике.
> 
> вот я поэтому и задаю вопросы в этом списке рассылки, чтобы понять,
> какие могут быть проблемы, если добавить пользователя nginx в группу
> www-logs и поставить права доступа root:www-logs 0750 /var/log/nginx ?

С точки зрения nginx'а - проблем не будет (ему там вообще 
достаточно x).  С точки зрения администрирования - проблем почти 
не будет, если не забудете включить всех заинтересованных в группу 
www-logs.

Но, повторюсь, я не считаю ограничение прав в данном случае 
правильным.  Проблема не в правах на логи nginx'а, проблема в php 
local file include.  Подобное ещё может быть как-то уместно на 
shared-хостинге, но уж точно не как general practice.

Maxim Dounin



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