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: