Темы WordPress и «бесплатный сыр»

Тот факт, что бесплатные шаблоны для cms, скачанные не с оригинальных сайтов, могут быть заражены, содержать “пасхальные яйца” или уязвимости, вряд ли кого-то удивит. На просторах интернета достаточно много материала на эту тему. Но статьи с предупреждениями об опасности “бесплатного сыра” не содержат конкретных цифр, никто не пытался количественно измерить масштаб бедствия. 

def41fd1454e4839a856475b2ee6bd69

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

Результат нас неприятно удивил. Более половины, а точнее 54%, оказались зараженными хакерскими веб-шеллами, бэкдорами, black hat seo (“спам”) ссылками, а также содержали скрипты с критическими уязвимостями. 

Темы и шаблоны для WordPress мы скачивали с популярных сайтов-каталогов, предлагающих русскоязычные премиум и тематические шаблоны:

  • best-wordpress-templates.ru (99% зараженных или уязвимых тем)
  • wordpress-ru.ru (99% зараженных или уязвимых тем)
  • wpfree.ru (97% зараженных или уязвимых тем)
  • wpfreethemes.ru (16% уязвимых тем)
  • bestwordpress.ru (7% уязвимых тем)
  • wordpreso.ru (3% зараженных тем)




Данные сайты были выбраны как наиболее популярные, поскольку находятся по запросу “бесплатные темы для wordpress” в первой десятке в результатах поисковой выдачи. 

Обращаем внимание на то, что они не единственные. Существует огромное число сайтов-клонов, которые предлагают пользователям те же архивы с зараженными и уязвимыми темами. Например, если скачать тему blogdog с другого сайта, например, wp-templates.ru, то мы увидим тот же хакерский бэкдор в файле comments-popup.php. 

f0ecf83420d449bb9b84e6f95704bff5

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

Только с сайта wp-templates.ru тему blogdog скачали 309 раз, а в результатах поиска по запросу “ тема wordpress blogdog ” находится несколько десятков сайтов-каталогов с шаблонами. По грубым оценкам, суммарное число скачанных зараженных тем – более 500 000.
Какой вред таят в себе зараженные шаблоны?

1. Спам-ссылки


Подавляющее большинство (около 97%) проверенных тем содержат код, размещающий чужой контент и спам-ссылки на страницах блога. Это так называемое “черное seo” – недобросовестный метод продвижения сайтов в поисковых системах и накручивания поисковых параметров тИЦ и PR. Как он работает? В момент открытия страницы код в файлах header.php, footer.php или functions.php выполняет загрузку списка спам-ссылок с внешнего сайта и размещает их на страницах блога в невидимом для посетителей блоке.

ef775a46573949f4822dbd994b439600

Более продвинутый вариант кода может выполнять кэширование загруженных ссылок в файле (обычно такой файл имеет расширение .png или .gif и размещается в каталоге images темы, чтобы не вызвать подозрение вебмастера). Кроме размещения спам-ссылок в невидимом блоке, код может вставлять чужой контент (текст и ссылки) на страницах блога, а также заменять отдельные слова в тексте на ссылку, ведущую на чужой сайт.

c9b267e23a984b97bc1d0778b366193c

В шаблонах часто можно встретить и статические ссылки на чужие сайты. Но они будут также изначально закодированы с помощью base64 или функции str_rot13.

85b5c1c242f9498faf7b18d9a14a4fe7

С учетом большой популярности бесплатных тем, данный метод “черного” продвижения достаточно эффективен, так как позволяет сформировать большую ссылочную массу, поэтому активно используется недобросовеcтными seo оптимизаторами и хакерами для продвижения сайтов клиентов или собственных проектов.

В результате работы вредоносного кода сайт превращается в линкферму, заспамленную “пластиковыми окнами”, “виагрой” и ссылками на сайты для взрослых, теряет лояльность со стороны поисковой системы и посетителей, а иногда попадает в бан или блокируется антивирусным программным обеспечением. Еще одним негативным моментом для сайта является также увеличение нагрузки на процессор и замедление открытия страниц блога, так как при открытии каждой страницы выполняется подключение к внешнему ресурсу.

Пример заражения шаблона:

03611797dda548d0a59201ec05f8c11c

После декодирования:

f3a49726b9304154b4cbac68b40a1943

2. Критические уязвимости в timthumb.php


Следующая по популярности проблема в шаблонах wordpress – это уязвимости в скрипте timthumb.php. Данный скрипт очень популярен среди разработчиков шаблонов и активно используется в темах для автоматического масштабирования изображений. В версии 2.8.13 и более ранних обнаружено несколько критических уязвимостей, позволяющих исполнять произвольный код на сайте и загружать произвольные файлы на хостинг (в том числе хакерские веб-шеллы). Если на вашем сайте установлена одна из старых версий, необходимо как можно быстрее обновить ее до актуальной из репозитория timthumb.googlecode.com/svn/trunk/timthumb.php. В противном случае все сайты на вашем аккаунте хостинга под угрозой.

3. Бэкдоры и веб-шеллы


И, наконец, переходим к самым опасным и явным признакам зараженной темы – это наличие бэкдоров и веб-шеллов.

ecec757eb3d74e869fa9fe3c7ded292d

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

К счастью, веб-шеллов было обнаружено всего в 3% проверенных тем каталога wordpresso.ru (в шаблонах 3_PM, beautygames, blogdog, browntextures, edu_0, gamesstylish, gamingzone, grand-banquet, hostingsite, myfinance_0, pink-cake, PurpleStyle, refresh-your-taste). Тем не менее, необходимо быть на чеку и перед использованием проверять темы на наличие хакерских скриптов.

Revisium WordPress Theme Checker


Мы написали небольшой сканер, который ищет вредоносные фрагменты в темах wordpress.

80f6a7ba765645d0abcee45a7915109e

Как уберечь свой блог от взлома через уязвимости в шаблонах

 

  • Скачивайте темы только из проверенных источников. Если вы скачиваете коммерческую премиум-тему с сайта, где она размещена бесплатно, скорее всего шаблон заражен. Поэтому в первую очередь от взлома блогов на wordpress страдают любители халявы. Коммерческие темы для wordpress нужно покупать на официальных сайтах. Это практически исключает вредоносные вставки в шаблонах.
  • Проверьте скачанные темы на наличие вредоносного кода и спам-ссылок. Это можно сделать сканером AI-BOLIT. Все подозрительные файлы проверьте вручную. Для анализа тем на вредоносные вставки вы также можете обратиться к специалистам. Для экспресс-проверки можете воспользоваться сканером тем rwp_checker.php.
    Не рекомендуем использовать десктопные антивирусы для проверки шаблонов. В большинстве случаев они не обнаружат ничего подозрительного, так как обнаружение вредоносного кода в php скриптах — не их профиль.
  • Если на вашем сайте используется скрипт для масштабирования изображений timthumb.php или его модификации (thumb.php, _img.php и пр), проверьте его версию и обновите до последней доступной:timthumb.googlecode.com/svn/trunk/timthumb.php
  • Удалите все неиспользуемые шаблоны из директории wp-content/themes
    По нашим наблюдениям, пользователи устанавливают не один, а сразу несколько бесплатных шаблонов, тем самым увеличивая в разы вероятность взлома сайта. Если тема неактивна, она все равно позволяет открывать вредоносные скрипты из каталога wp-content/wp-themes/<имя темы>, поэтому не рекомендуем хранить коллекцию тем непосредственно на хостинге. Оставьте одну, активную, а остальные удалите.