Уязвимость бэкдором CryptoPHP довольно известна, ее угроза распространения возникла давно, однако, на нашем хостинге, в скриптах сайтов, последствия бэкдора проявились относительно недавно, около двух недель назад. В данной статье мы решили кратко описать причины появления CryptoPHP, механизм работы, чем он опасен для хостинг-компаний и непосредственно для сайтов.
Напомним, что бэкдор, backdoor - это некий программный код, который установлен в рабочий скрипт той или иной CMS, с целью повторного доступа к ресурсу. Инфекции подвержены популярные CMS: Joomla, WordPress и Drupal.
Как CryptoPHP появляется на сайтах
CryptoPHP появляется в следствии использования null-скриптов.
Nulled scripts (null-скрипты) – это коммерческие веб-приложения, которые вы можете получить с пиратских сайтов. Такие приложения модифицированы для работы без лицензионного ключа. Они являются веб-эквивалентом пиратского ПО. К null-скриптам могут относиться, коммерческие темы и плагины CMS. Иными словами, чтобы внедрить CryptoPHP, злоумышленникам не надо сканировать сайт на уязвимости, пиратские версии коммерческих плагинов и тем со встроенным CryptoPHP для Joomla, WordPress, Drupal закачиваются на сайт с позволения администратора, далее дело за малым: ожидать, пока администраторы web-сайтов установят это пиратское ПО.
Как работает CryptoPHP
В описанном выше null-скрипте есть небольшая строка кода, которая может выглядеть следующим образом:
<?php include('assets/images/social.png'); ?>
Само название "CryptoPHP" появилось исходя из способа управления. Инфицированные бэкдором web-сайты действуют как ботнет. Картинка, по сути, является php-shell’ом, используя которую, через зашифрованный канал связи происходит передача данных на C&C-серверы, которые находятся под контролем злоумышленников и выполняют удаленные команды. Если попытаться открыть картинку по http, то изображения не увидим, однако, такие картинки открываются текстовым редактором, при этом можно наблюдать зловредный код и ключ шифрования для передачи данных. Данный скрипт создан таким образом, что он может автоматически обновляться. Поэтому если злоумышленник хочет добавить ему новые свойства, он легко может контролировать инфицированные сайты. Пример просмотра картинки png:
# vi wp-content/themes/flatsome/images/social.png
@set_time_limit(0);
function XJmVaOhvhAQNoaACoDOM() { if (!defined('WP_OPTION_KEY')) {
$this->SntMBKFkfTlUzXyNVQed = '-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6K/I2l6k2Iz7Vojzxk5Q
43QNfIJm2jWPvXAvFtft+yy4rD3MseQJWx3PLlkoRQjSI1uiiwwlPZWED0e5wFet
nS5tKhvvRaOeUPYJq6MtyUbnaMn7bshlgaAlPaUCVdAOjdtGHMuFaWfnBLgTSu3c
uccVC2zOlXx7XK1tw39eZepRemoh0W3Qhf+hDFsEzACSBmKhBiganwCZzTDvyXpj
nfbRKbf26LJDJ9u2Choh768vQiIfuf0tGLQ+xxcBDl2ZVW0P76cd5I2v+lYRBD/X
vgU32/UZeKDheA8M/oZ5/yFv5QWAU2SHEEKYfLkAQmXs/oRGqMQONqoL3W5Q4bE/
gQIDAQAB
-----END PUBLIC KEY-----'; } private function yOlGcuINHlzAVPznEbGN()
Какова цель CryptoPHP, для чего он служит
Crypto PHP представляет собой инфицированную спам-рассылку, в следствии которой ip-адреса хостинговых компаний попадают в черные списки SpamHOUSE и других подобных организаций. Это приводит к недоставке писем по адресату. Интернет-магазины не могут отправить данные о заказе своим клиентам, менеджеры не могут получить уведомления, почта возвращается отправителю и работа компаний парализуется.
Но главной целью бэкдора является продвижение запрещенного контента. Путем внедрения в ваш контент ссылок на другие сайты, происходит SEO-продвижение чужих ресурсов, в то время, когда Ваш сайт падает в рейтингах поисковых систем.
Как понять, подвержен ли сайт инфекции
Клиентов виртуального хостинга мы сами оповещаем о подобных проблемах. Кто использует VPS, можете найти все файлы social.png и проверить их на наличие вредоносного кода. Так же, компания FoxIT анонсировала скрипт по поиску инфекции, описание и инструкцию можно найти в блоге компании:
http://blog.fox-it.com/2014/11/26/cryptophp-a-week-later-more-than-23-000-sites-affected/
Что делать, если на сайте обнаружены инфицированные файлы
Наши рекомендации не отличаются от рекомендаций специалистов компании FoxIT, которые сделали детальный анализ бэкдора и составили прекрасный полный отчет: https://foxitsecurity.files.wordpress.com/2014/11/cryptophp-whitepaper-foxsrt-v4.pdf
- Найти в коде скрипта инклуды вида: “<?php include(‘images/social.png’); ?>” и удалить их.
- Удалить все инфицированные плагины, компоненты, файлы png, которые будут в оповещении или которые будут найдены скриптом check_filesystem.py.
- В случае обнаружения бэкдора, можно смело утверждать, что злоумышленник имеет доступ к управлению базами данных, поэтому в обязательном порядке нужно сменить пароли к пользователям баз данных, пароли ftp и пароли доступа к CMS.
- Обновить CMS до последней версии.
Вместе с тем есть утверждение, что нет гарантий полной очистки от инфекции, через некоторое время файлы png могут возобновиться. Цитата с отчета:I shall repeat the previous paragraph: removing the "social.png" file DOES NOT remove the infection. "social.png" is only just one small piece of it. The infected account should be reinstalled from scratch.
Выносим благодарности компании Fox IT за исследование и полный отчет по описанной угрозе. Благодарность компании SpamHOUSE за стражу порядка в глобальных сетях.
Дата: 05.08.2015 Автор: Thelli
|
|
Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:
comments powered by Disqus