- PVSM.RU - https://www.pvsm.ru -
Доброго времени суток, уважаемые хабрапользователи. Наконец-то у меня появился ещё один клиент позволивший на условиях анонимности описать решение его проблемы. Под катом рассказ о том, как происходила борьба с вредоносным кодом, появляющемся на сайтах заказчика несколькими путями одновременно. В связи с тем, что статьи большого объёма много кому не нравятся, в этот раз я постарался изложить всё как можно короче.
Исходные данные были следующими. Есть виртуальный сервер под управлением Ubuntu 10.04. Заказчик администрирует его своими силами. На сервере расположены 13 сайтов, 12 из которых развёрнуты на WordPress, а один состоит из статичных html-страниц. Управление их файловым содержимым идёт через FTP, причём только с 2 компьютеров. Один Mac, второй PC с Win7 и лицензионным KAV.
Регулярно, раз в 1-2 недели, происходит их заражение — в коде php-скриптов появляются обфусцированные вставки. При первой беседе клиент сказал что в скриптах постоянно появляется один и тот же iframe-код, но, как выяснилось позже, вредоносов там было несколько. В конце концов сайты повылетали из выдачи Google и Yandex, и постепенно количество посетителей стало равным нулю.
После первого осмотра выяснилось ещё несколько интересных деталей:
Всё это серьёзно прибавляло хлопот. На этом этапе стало ясно что проблема не простая, и чтоб избавить клиента от этой беды необходимо работать не только с паролями FTP и защитой клиентских машин (как это часто бывает в подобных ситуациях).
Далее был составлен список возможных путей заражения, каждый из которых нужно было проверить. В первую очередь, просто из-за своей распространённости, рассматривался вариант инфицирования с помощью украденных ранее паролей от сервисов удалённого доступа. Конечно свежий KAV на Win-машине является хорошим аргументом, но пароли могли быть украдены до того как антивирус был установлен. И не факт что администратор их сразу сменит.
На второе место поставили заражение через всевозможные бэкдоры. Допустим что когда-то администратор не вовремя обновил WP и на сайт был залит какой-нибудь шелл, через который вредоносный код теперь постоянно даёт о себе знать.
И в качестве третьего варианта рассматривалось заражение через уязвимость в скриптах сайтов. В связи с невозможностью обновления по техническим причинам на некоторых ресурсах стоял WP 2.9.2. В момент выполнения работ для этой версии была известна только SQL-инъекция в функции TrackBack`а, которая клиентом ни на одном сайте не использовалась. Но не нужно забывать о плагинах и темах. В них тоже часто находят ошибки. Кроме того, на одном из сайтов был установлен форум phpBB версии 3.0.8. Он не был рабочим (нет соединения с БД, не верные данные в конфигурационном файле), но всё же решено было его проверить. В публичных источниках информации об уязвимостях данной версии я не нашёл, зато на официальном форуме есть тема (http://www.phpbb.com/community/viewtopic.php?f=46&t=2119662 [2]) в которой описывается её взлом. При этом подробностей изъяна нет, как и нет гарантии того, что форум этой версии не может быть взломан при отсутствии соединения с БД.
После этого были проверены логи веб- и ftp-сервера за последние несколько дней. Выяснились любопытные вещи. Один робот раз в день проходил авторизацию на FTP и тут же отключался. Видимо проверял валидность аккаунта. Ещё один ежедневно заходил на FTP, скачивал 12 всегда разных скриптов и, если в них не имелось вредоносных вставок, исправлял ситуацию. В логах веб-сервера засветился дорвей, куда люди приходили преимущественно с Яндекса. Нашёлся и странный редирект пользователей мобильных браузеров происходивший из разных точек сайтов. Он был реализован через корневые .htaccess. Кроме того, было обнаружено 3 веб-шелла к которым иногда шли POST-запросы. Вообщем все 12 сайтов просто кишили разного рода вредоносами.
Сперва клиентом предлагалось не трогать текущие опасные вставки и просто накатить чистую, как он думал, резервную копию, которая была сделана ещё до того как были замечены все эти неприятности. Но после детального изучения оказалось что она тоже имеет в себе всё вышеперечисленное, просто в меньшем количестве. Поэтому решено было разбираться с каждой проблемой отдельно.
Тут необходимо сделать отступление и сказать о том, что подобная борьба бесполезна если источники заражения не устранены. Можно чистить код хоть сколько — вредоносные вставки всё равно вернутся. Поэтому была проделана следующая работа:
Расчёт, после всех этих действий, был следующий. Как только вредоносный код и шеллы будут вычищены, мы станем просто ждать. Если что-то было упущено и заражение снова произойдёт, его источник можно будет вычислить мгновенно, ведь все сайты изолированы друг от друга как в файловой системе так и в БД.
Теперь следовало произвести чистку. Сперва был сделан простой скрипт, представляющий из себя сигнатурный сканнер кода. Последовательно собирались одна за другой обфусцированные вставки и помещались в его базу. Скрипт, в свою очередь, должен был по команде разом очистить все повреждённые файлы. Благодаря этой работе было найдено несколько вариантов редиректоров (работали по людям пришедшим с поисковиков) и один iframe, про который заказчик и говорил в самом начале. Затем был написан крон, регулярно проверяющий с помощью консольных утилит исходные коды сайтов на наличие в них фраз типа «system(», «base64_decode(» и т. д. В случае обнаружения таковых он должен был рапортовать на почту мне и администратору. Здесь нужно сказать что не всё то вирус что обфусцированно. В темах WP (а на каждом сайте они были не стандартные) было обнаружено множество таких вставок. Они представляли из себя своеобразную защиту от удаления копирайтов. Пришлось их привести в нормальный вид, дабы избежать ложных срабатываний.
После этого коды сайтов были разом почищены, дорвеи и шеллы удалены, .htaccess`ы исправлены. По истечению нескольких дней никаких изменений в файлах не наблюдалось, так что проблему можно было считать закрытой.
И ещё один момент. В процессе исследования дорвеев был найден хост, с которого по http грузился их контент. На этом хосте, на веб-сервере, было несколько директорий названных именами других взломанных сайтов. Быстренько убедившись в том, что на обнаруженных доменах тоже присутствуют дорвеи я написал их веб-мастерам и администраторам. К сожалению ни одного ответа я не получил. Начинка дорвеев на них сохраняется до сих пор. Зато удалось справиться с сервером-раздатчиком. Он оказался
Основываясь на всём вышесказанном, хотелось бы дать следующие рекомендации веб-мастерам, а также администраторам веб-ресурсов:
Благодарю Вас за потраченное время. Надеюсь вы вынесли из этой статьи для себя что-нибудь полезное.
Автор: AntonKuzmin
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/6422
Ссылки в тексте:
[1] VDS: https://www.reg.ru/?rlink=reflink-717
[2] http://www.phpbb.com/community/viewtopic.php?f=46&t=2119662: http://www.phpbb.com/community/viewtopic.php?f=46&t=2119662
Нажмите здесь для печати.