[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: это война



On Tue, Feb 28, 2006 at 11:55:45AM +0200, Yura Dik wrote:
> Есть n-ое количество серверов, каждый из которых периодически взламывают
> следующим образом: от пользователя www-data в /tmp закачивается ELF или
> скрипт, который от имени этого же пользователя и запускается, заставить
> прогеров проверить все cgi на безопасность нереально, что
> посоветуете ???

Многие жертвы php пишут глупость типа такой:
if (isset($_GET["page"]))
{
include($_GET["page"]);
} 

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

Однако в php есть глупая фича, которая позволяет читать URL как из
файла, то есть если кто-нить положит на веб-сервер скрипт и твой скрипт
вызовет с указанием page=http://мойсервер/blah, то этот скрипт
выполнится у тебя. Обычно такие попытки можно с лёгкостью видеть в
accesslog апача, ищи слово wget, пиши в прокуратуру.

От этого и некоторых других методов можно защитится, отредактировав
php.ini и запретив там allow-url-fopen (или как-то), expose_php и
show_error. После этого для чтения из url надо юзать интерфейс с curl, а
ошибки смотреть в error_log.

Есть ещё проблема с упенсурсными всякими скриптами типа phpBB2,
mambo и прочего треша, которые написаны бездумно и из рук вон плохо. За
такими надо просто следить и при первых постингах в
bugtraq/full-disclosure накатывать патчи.

> 1. можно ли запретить определенному пользователю запускать программы из
> определенного пути, или разрешать только определенные пути ???

Можно попробовать acl (man setfacl/getfacl)
> 
> 2. как запретить пользователю (например www-data) открывать socket, но
> при этом чтобы сервер работал 

Если в sarge починили Iptables и там таки работает owner, то можно
использовать его.  Если не починили, то простой запрет на исходящие
соединения по tcp/6660-6670 серьёзно снизит шансы твоего ящика стать
частью ботнета. Если только у тебя ядро, для которого ещё нет эксплойтов
(в дебиан это обычно так)



Reply to: