Тот факт, что бесплатные шаблоны для cms, скачанные не с оригинальных сайтов, могут быть заражены, содержать “пасхальные яйца” или уязвимости, вряд ли кого-то удивит. На просторах интернета достаточно много материала на эту тему. Но статьи с предупреждениями об опасности “бесплатного сыра” не содержат конкретных цифр, никто не пытался количественно измерить масштаб бедствия.
Мы решили провести эксперимент: скачали и проверили 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.
С помощью данного бэкдора можно выполнять произвольный код на сайте (загрузить веб-шелл, удалить содержимое каталогов, вставить вирусный код в шаблоны и скрипты, получить доступ к базе данных и многое другое), в результате чего получить полный контроль над всеми сайтами аккаунта хостинга.
Только с сайта wp-templates.ru тему blogdog скачали 309 раз, а в результатах поиска по запросу “ тема wordpress blogdog ” находится несколько десятков сайтов-каталогов с шаблонами. По грубым оценкам, суммарное число скачанных зараженных тем – более 500 000.
Какой вред таят в себе зараженные шаблоны?
1. Спам-ссылки
Подавляющее большинство (около 97%) проверенных тем содержат код, размещающий чужой контент и спам-ссылки на страницах блога. Это так называемое “черное seo” – недобросовестный метод продвижения сайтов в поисковых системах и накручивания поисковых параметров тИЦ и PR. Как он работает? В момент открытия страницы код в файлах header.php, footer.php или functions.php выполняет загрузку списка спам-ссылок с внешнего сайта и размещает их на страницах блога в невидимом для посетителей блоке.
Более продвинутый вариант кода может выполнять кэширование загруженных ссылок в файле (обычно такой файл имеет расширение .png или .gif и размещается в каталоге images темы, чтобы не вызвать подозрение вебмастера). Кроме размещения спам-ссылок в невидимом блоке, код может вставлять чужой контент (текст и ссылки) на страницах блога, а также заменять отдельные слова в тексте на ссылку, ведущую на чужой сайт.
В шаблонах часто можно встретить и статические ссылки на чужие сайты. Но они будут также изначально закодированы с помощью base64 или функции str_rot13.
С учетом большой популярности бесплатных тем, данный метод “черного” продвижения достаточно эффективен, так как позволяет сформировать большую ссылочную массу, поэтому активно используется недобросовеcтными seo оптимизаторами и хакерами для продвижения сайтов клиентов или собственных проектов.
В результате работы вредоносного кода сайт превращается в линкферму, заспамленную “пластиковыми окнами”, “виагрой” и ссылками на сайты для взрослых, теряет лояльность со стороны поисковой системы и посетителей, а иногда попадает в бан или блокируется антивирусным программным обеспечением. Еще одним негативным моментом для сайта является также увеличение нагрузки на процессор и замедление открытия страниц блога, так как каждый при открытии каждой страницы выполняется подключение к внешнему ресурсу.
Пример заражения шаблона:
После декодирования:
2. Критические уязвимости в timthumb.php
Следующая по популярности проблема в шаблонах wordpress – это уязвимости в скрипте timthumb.php. Данный скрипт очень популярен среди разработчиков шаблонов и активно используется в темах для автоматического масштабирования изображений. В версии 2.8.13 и более ранних обнаружено несколько критических уязвимостей, позволяющих исполнять произвольный код на сайте и загружать произвольные файлы на хостинг (в том числе хакерские веб-шеллы). Если на вашем сайте установлена одна из старых версий, необходимо как можно быстрее обновить ее до актуальной из репозитория timthumb.googlecode.com/svn/trunk/timthumb.php. В противном случае все сайты на вашем аккаунте хостинга под угрозой.
3. Бэкдоры и веб-шеллы
И, наконец, переходим к самым опасным и явным признакам зараженной темы – это наличие бэкдоров и веб-шеллов.
Эти скрипты предоставляют хакеру полный контроль над файловой системой и базой данных аккаунта: можно управлять файлами и каталогами, размещать дорвеи, мобильные и поисковые редиректы, вирусный код в шаблонах и многое другое. Поскольку на большинстве виртуальных хостингов скрипты сайта могут получить доступ к файлам соседнего сайта, скопрометированными оказываются все сайты владельца, размещенные на том же аккаунте хостинга.
К счастью, веб-шеллов было обнаружено всего в 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.
Как уберечь свой блог от взлома через уязвимости в шаблонах
Скачивайте темы только из проверенных источников. Если вы скачиваете коммерческую премиум-тему с сайта, где она размещена бесплатно, скорее всего шаблон заражен. Поэтому в первую очередь от взлома блогов на 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/<имя темы>, поэтому не рекомендуем хранить коллекцию тем непосредственно на хостинге. Оставьте одну, активную, а остальные удалите.