Защита WordPress: null-скрипты и инфекция CryptoPHP
Статья написана от лица компании WordFence
Наши друзья из компании Fox-IT, расположенной в Делфте (Нидерланды), связались со мной по поводу интересного исследования, которое они не так давно опубликовали. Если вы обладаете техническими навыками и хотите получить как можно больше деталей, я советую вам пропустить эту запись и перейти сразу к отчету (состоит из 50 страниц). Я решил опустить все детали и привести общее описание проблемы.
Nulled scripts (null-скрипты) – это коммерческие веб-приложения, которые вы можете получить с пиратских сайтов; эти приложения модифицированы так, чтобы работать без лицензионного ключа. Они являются, по сути, веб-эквивалентом пиратского ПО. К null-скриптам могут относиться, к примеру, коммерческие темы и плагины WordPress.
Благодаря Fox-IT до нашего сведения дошла интересная информация о том, что null-скрипты распространяются по нескольким сайтам со сложной предустановленной инфекцией. Fox-IT решили назвать эту инфекцию CryptoPHP вследствие того, что она шифрует данные перед их отправкой командным и управляющим серверам.
Инфекция довольно проста: в null-скрипте есть небольшая строка кода, которая может выглядеть следующим образом:
<?php include('assets/images/social.png'); ?>
Если вы являетесь PHP-разработчиком, то вы сразу поймете, что выглядит этот код странновато: это PHP-директива для подключения внешнего файла, содержащего PHP-код, однако файл фактически является изображением. В этом файле изображения в действительности содержится PHP-код, который специально обфусцирован, т.е. запутан, чтобы скрыть тот факт, что он является вредоносным.
Если вы являетесь клиентом Wordfence, и вы решите провести сканирование при стандартных настройках, Wordfence не будет проверять файлы изображений на наличие инфекций. Однако мы знаем о таких видах инфекций, поэтому не так давно мы добавили опцию сканирования файлов изображений, как будто они являются PHP-кодом. Нововведение привело к тому, что Wordfence заметит директиву include в вашем PHP-файле, поэтому, даже если у вас выключено сканирование изображений, вы все равно сможете отловить все известные варианты этой инфекции – если у вас, конечно, стоит последняя версия Wordfence.
Разработчики Fox-IT определили, что целью инфекции является, в данный момент, вовлечение в черное SEO путем внедрения в ваш контент ссылок на другие сайты – по-видимому, вредоносные. Однако данная инфекция достаточно сложна, она связывается с командными и управляющими серверами, которые могут разрешить ей выполнять массу команд, включая возможность самообновления. То есть, это классическая ботнет-инфекция, которая превращает все зараженные сайты в подконтрольные ресурсы, через которые можно что-то делать – к примеру, рассылать спам на почту, отправлять SEO-спам, размещать нелегальный контент, совершать атаки на другие сайты.
Исследователи считают, что они, возможно, идентифицировали расположение автора этого вируса. В коде инфекции есть проверка user-agent, значение которой сравнивается с «chishijen12». Если соответствие имеется, приложение выводит все PHP-ошибки в браузер – по-видимому, с целью отладки. Fox-IT нашли IP-адрес, связанный с данным user-agent, и этот IP территориально расположен в Кишиневе (Молдавия). Название города Кишинев (Chisinau) напоминает строку chishijen12, с которой и производится проверка, что несколько подкрепляет эту теорию.
Эта инфекция затрагивает не только WordPress, но также Drupal и Joomla. Опция, которую мы добавили в плагин, выявляет инфекцию и в исходниках Drupal и Joomla, если они будут находиться в пределах вашей директории WordPress.
Если вы корпоративный клиент, и вы используете IDS, такой как, к примеру, Snort или набор правил EmergingThreats, компания Fox-IT создала Snort сигнатуры, находящиеся в отчете; насколько я слышал, EmergingThreats обновили свой собственный набор правил сегодня для обнаружения этой инфекции.
Источник: www.wordfence.com/blog