Анализируем и устраняем последствия вредоносной подмены метатегов на сайте

Анализируем и устраняем последствия вредоносной подмены метатегов на сайте

SEO-спам имеет множество форм, одной из самых скверных является подмена поисковой выдачи, когда поисковые системы отображают предупреждение о наличии нежелательного контента или зараженных веб-страниц. Подобные предупреждения наносят серьезный ущерб репутации сайта — несомненно, утверждение поисковой системы, что «этот сайт мог быть взломан», снизит входящий трафик и повлияет на место в рейтинге.

 

 

 

 

1. Подмененные результаты выдачи

2. Изучаем причину

3. Модифицированные файлы сайта

4. Как отображается SEO-спам

5. Превентивные меры

 

Подмененные результаты выдачи

Представьте себе ситуацию, когда владелец бизнес-сайта обнаруживает в поисковой выдаче Google предупреждение, что на его сайте размещен порнографический контент. Само собой, владелец заинтересован быстрее избавиться от этого, так как уже теряет огромное количество потенциальных клиентов и ставит под сомнение сложившиеся деловые связи. Это дело рук SEO-спама, который не только создал поддельные метаданные и описания, а также изменил дополнительные ссылки ниже основной:

 

Рисунок 1. Поисковая выдача зараженного сайта

 

Изучаем причину

Далее изучим причину возникновения нашей проблемы и начнем со сканирования файлов и базы данных сайта. Подозрение вызывает файл .cache.php — с ним связан запуск вредоносной задачи cron, однако он не является первопричиной появления порнографического спама.

Это подтверждается, если мы удалим файл .cache.php, очистим кэш сайта и запустим curl-команду, которая позволит нам просмотреть вывод сайта в текстовом виде с HTTP-заголовками.

Что еще более важно, это позволит нам подменить наш user-agent, заставив сайт думать, что мы поисковый бот:

 

Таблица 1. Команда, выводящая сайт в том виде, в котором он отображается поисковому боту Google

curl -sD – -L -A “Mozilla/5.0 (compatible; Googlebot/2.1;

+http://www.google.com/bot.html)” http://infecteddomain.com

 

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

 

Рисунок 3. Порносодержимое, которое видит только бот Google

 

 

Модифицированные файлы сайта

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

  • ./wp-includes/load.php
  • ./wp-admin/includes/class-wp-text.php

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

./wp-includes/load.php:

Это файл ядра WordPress, который не должен меняться ни в каких случаях за исключением ситуации обновления движка, либо редких случаях кастомизации. Ни один из файлов, лежащих рядом, не обновлялся, так что изменение этого файла сразу натолкнуло на мысль о том, что в нем может содержаться вредоносный код. Кроме того, этот файл запускается каждый раз, когда WordPress загружается в браузере, так что он является отличной целью для сокрытия вредоноса. Злоумышленник надеется, что вы будете искать вредоносный код в файлах темы WordPress (например, в header.php, footer.php) либо в файлах, которые находятся в корневом каталоге (например, index.php, wp-load.php).

./wp-admin/includes/class-wp-text.php:

Этот файл не является файлом ядра WordPress, поэтому он должен существовать только в этом каталоге. Для того чтобы понять, является ли тот или иной файл или каталог частью движка, вы можете посетить страницу https://core.svn.wordpress.org/tags/.

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

То есть в этом случае мониторинг оповестил бы вас, что появился новый файл ./wp-admin/includes/class-wp-text.php, а старый ./wp-includes/load.php был изменен. И вместо того чтобы вручную проверять тысячи файлов, вы уже знаете, где искать вредоносный код. Существует ряд бесплатных сервисов для мониторинга файлов в виде плагинов для WordPress — вот, например, один из них.

 

Как отображается SEO-спам

Злоумышленник изменил файл ./wp-includes/load.php таким образом, что веб-сервер будет загружать /wp-admin/includes/class-wp-text.php. Как уже упоминалось ранее, каждый раз, когда сайт запрашивается гостем, WordPress запускает файл ./wp-includes/load.php. Рассмотрим подробнее внедренный в ./wp-includes/load.php вредоносный код:

 

Рисунок 4. Файл load.php подгружает файл class-wp-text.php

 

В строке 669 вредоносная функция include_once загружает файл ./wp-admin/includes/class-wp-text.php. 

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

Теперь, когда мы знаем, как загружается вредоносный файл, посмотрим, что же делает файл ./wp-admin/includes/class-wp-text.php.

Он содержит функции, работающие с user-agent пользователей, и пытается получить как можно больше информации об IP посетителей сайта. Это важно, потому что злоумышленники хотят отобразить порнографические метаданные только поисковым роботам. Если бы вредоносные данные выдавались обычным посетителям, владелец сайта быстро заметил бы это и принял меры.

После анализа мы выясняем, что файл использует функцию PHP file_get_contents, которая позволяет получить данные из нескольких источников. Как правило, злоумышленники используют функцию file_get_contents, чтобы получить данные непосредственно из URL.

Чтобы еще больше запутать анализ, злоумышленник использует переменную для хранения вредоносного URL, а потом функцию @file_get_contents, чтобы получить данные из этой переменной. Можно увидеть вредоносный URL, сохраненный в переменной $ req_uri на рисунке ниже:

 

Рисунок 5. Вредоносный URL, спрятанный в переменную

 

В данном случае вредоносное содержимое — порнографические метаданные, получаемые функцией file_get_contents. Это выгодно для злоумышленника, поскольку не нужно хранить тысячи порнографических терминов в файлах сайта, и если кто-то будет искать их там, то ничего не найдет.

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

Далее вредоносный файл подключает еще один файл template.html (wp-admin/includes/template.html для WordPress, и libraries/joomla/application/template.html для Joomla). Этот файл содержит грубо созданную страницу, которая имитирует страницу сайта WordPress. По сути, это самодельный шаблон.

На рисунке ниже показаны общие метатеги для поисковой оптимизации, такие как Open Graph и <link rel>, до того, как были добавлены вредоносные:

 

Рисунок 6. Исходные метатеги до заражения

 

Превентивные меры

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

  • Всегда используйте надежные пароли для всех пользователей WordPress. Сведите к минимуму количество администраторов.
  • Всегда держите плагины и темы в актуальном состоянии.
  • Любое программное обеспечение, которое больше не используется на сайте, должно быть удалено. Будет мало просто отключить уязвимый плагин.
  • Используйте различные настройки, повышающие безопасность: отключение редактора тем WordPress через WP-config.php, предотвращение запросов в wp-content/uploads.
  • Регулярно проверяйте все компьютеры и устройства, которые используются для доступа администратора. Вредоносные программы на локальном компьютере могут украсть ваши учетные данные.
Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

RSS: Новые статьи на Anti-Malware.ru