НЕ вирусы

Постоянно проверяя сайты по 41ой антивирусной базе, мы находим что-то подозрительное почти в каждом. Вот почему так важно знать, какой код является исключением и НЕ является вирусом. В нашей коллекции более сотни таких исключений. Это позволяет нам не наводить панику, когда одна из чрезмерно параноидальных антивирусных программ принимает код за вирус. Мы бьем тревогу только в случае реальной опасности.

Представляем первую тройку самых частых НЕвирусов:




Чемпионский титул с огромным преимуществом выигрывает общеизвестная javascript библиотека jquery

ClamAV распознает разные версии упакованного варианта библиотеки как PUA.Script.Packed-1 или PUA.Script.Packed-2

jQuery JavaScript Library 1.2.6 (файл jquery.min.js) распознается как PUA.Script.Packed-1

Код этого файла (начало и окончание):

eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);
...
.children("div").attr("class") == "content-opened" ){$(this).parent(".part").children("div").attr("class", "content");}}); });</p>

jQuery JavaScript Library v1.4.2 (файл jquery.min.js) распознается как PUA.Script.Packed-2

Код этого файла (начало и окончание):

(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");
...
e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);


Разумеется, jquery ни в коей мере НЕ является вирусом.

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




Как это ни странно, антивирус Rising распознает размещаемую на сайтах narod.ru рекламу Яндекса как вирус Hack.Exploit.Script.HTML.IFrame.o.

Код, который Rising считает подозрительным:

<script language="JavaScript" src="http://yabs.yandex.ru/show/163"></script>

Причиной срабатывания является расположение скрипта закрывающих ниже тегов </body></html> и то, что он при этом фактически вписывает в страницу popup. К самому Яндексу у Rising и других антивирусов претензий нет, в отличие от нашего следующего "финалиста".




Размещаемая этим сайтом реклама распознается антивирусом Sunbelt как Trojan-Clicker.HTML.IFrame (v)

Код, который Sunbelt считает подозрительным:

<iframe width="180" scrolling="yes" height="480" frameborder="0" border="0" style="border: 0px solid rgb(153, 102, 102); visibility: visible;" src="http://dosugcz.info/getThumbs?uid=1065160&amp;p=2&amp;fmt=htm&amp;sid=42&amp;lng=ru&amp;desc=name&amp;cs=5&amp;cp=2&amp;tpl=t1&amp;sty=int&amp;margin=30 &amp;box_border=1&amp;img_border=1&amp;fnt=12&amp;bg=%23feedb2&amp;box_color=%23CC9999&amp;box_border_color=%23996666&amp;fg=%23ff0000&amp;fghover=%23000000&amp;a=&amp;ah=1&amp;img_border_color=%23000000&amp;cols=1&amp;rows=5&amp;tid=1"></iframe>

Само по себе подгружаемое в iframe содержимое ничего вирусного не содержит. Причина срабатывания - попадание домена dosug.cz во многие базы вредоносных доменов, которые создают энтузиасты и специализированные организации. В эти базы стараются собрать сайты, не безопасные для детей, либо задействованные в pfishing или рассылке спама. Таким образом даже безобидное содержимое с этого сайта, подгружаемое в iframe, воспринимается программой Sunbelt как вирус. Так он заботится о моральной чистоте населения.




Кандидатом в первую тройку является сайтоконструктор ucoz, на бесплатных сайтах которого в самом начале стоит рекламный скрипт, на который ругаются многие GUI (графические) антивирусы.

Скрипт расположен перед открывающим тегом <html>, что и делает его подозрительным для антивирусных программ.

 

Пример кода:

<style type="text/css">.caVm3x0 {position:absolute;right:0px;top:0px;} div > table.caVm3x0 {position:fixed;}</style>
<script type="text/javascript">function faVm3x0(a){try{document.getElementById("paVm3x0").style.display=a;}catch(e){}try{document.getElementById("aVm3x0").style.display=a;}catch(e){}}function f2aVm3x0(){faVm3x0('');}</script> <div id="paVm3x0"><table border="0" cellspacing="0" cellpadding="0" class="caVm3x0" id="aVm3x0" style="z-index:10000;width:230px"><tr><td valign="top" width="12"><a href="javascript://" onclick="faVm3x0('none');return false;" title="Закрыть"><img alt="" src="http://s43.ucoz.net/img/ma/cv.gif" style="border:0;width:12px;height:54px;"></a></td><td width="218"><script type="text/javascript">var begun_auto_pad = 170744863; var begun_block_id = 170744923; var begun_self_keywords = 'стеклопакеты, Регистрация иностранных компании';</script><script src="http://autocontext.begun.ru/autocontext2.js" type="text/javascript"></script></td></tr></table></div><html>