Что такое эвристический вирус
Антивирусные программы - это программы, основной задачей которых является защита именно от вирусов, или точнее, от вредоносных программ.
Методы и принципы защиты теоретически не имеют особого значения, главное чтобы они были направлены на борьбу с вредоносными программами. Но на практике дело обстоит несколько иначе: практически любая антивирусная программа объединяет в разных пропорциях все технологии и методы защиты от вирусов, созданные к сегодняшнему дню.
Из всех методов антивирусной защиты можно выделить две основные группы:
- Сигнатурные методы - точные методы обнаружения вирусов, основанные на сравнении файла с известными образцами вирусов
- Эвристические методы - приблизительные методы обнаружения, которые позволяют с определенной вероятностью предположить, что файл заражен
Слово сигнатура в данном случае является калькой на английское signature , означающее "подпись" или же в переносном смысле "характерная черта, нечто идентифицирующее". Собственно, этим все сказано. Сигнатурный анализ заключается в выявлении характерных идентифицирующих черт каждого вируса и поиска вирусов путем сравнения файлов с выявленными чертами.
Сигнатурой вируса будет считаться совокупность черт, позволяющих однозначно идентифицировать наличие вируса в файле (включая случаи, когда файл целиком является вирусом). Все вместе сигнатуры известных вирусов составляют антивирусную базу.
Задачу выделения сигнатур, как правило, решают люди - эксперты в области компьютерной вирусологии, способные выделить код вируса из кода программы и сформулировать его характерные черты в форме, наиболее удобной для поиска. Как правило - потому что в наиболее простых случаях могут применяться специальные автоматизированные средства выделения сигнатур. Например, в случае несложных по структуре троянов или червей, которые не заражают другие программы, а целиком являются вредоносными программами.
Практически в каждой компании, выпускающей антивирусы, есть своя группа экспертов, выполняющая анализ новых вирусов и пополняющая антивирусную базу новыми сигнатурами. По этой причине антивирусные базы в разных антивирусах отличаются. Тем не менее, между антивирусными компаниями существует договоренность об обмене образцами вирусов, а значит рано или поздно сигнатура нового вируса попадает в антивирусные базы практически всех антивирусов. Лучшим же антивирусом будет тот, для которого сигнатура нового вируса была выпущена раньше всех.
Одно из распространенных заблуждений насчет сигнатур заключается в том, каждая сигнатура соответствует ровно одному вирусу или вредоносной программе. И как следствие, антивирусная база с большим количеством сигнатур позволяет обнаруживать больше вирусов. На самом деле это не так. Очень часто для обнаружения семейства похожих вирусов используется одна сигнатура , и поэтому считать, что количество сигнатур равно количеству обнаруживаемых вирусов, уже нельзя.
Соотношение количества сигнатур и количества известных вирусов для каждой антивирусной базы свое и вполне может оказаться, что база с меньшим количеством сигнатур в действительности содержит информацию о большем количестве вирусов. Если же вспомнить, что антивирусные компании обмениваются образцами вирусов, можно с высокой долей уверенности считать, что антивирусные базы наиболее известных антивирусов эквивалентны.
Важное дополнительное свойство сигнатур - точное и гарантированное определение типа вируса. Это свойство позволяет занести в базу не только сами сигнатуры, но и способы лечения вируса. Если бы сигнатурный анализ давал только ответ на вопрос, есть вирус или нет, но не давал ответа, что это за вирус , очевидно, лечение было бы не возможно - слишком большим был бы риск совершить не те действия и вместо лечения получить дополнительные потери информации.
Другое важное, но уже отрицательное свойство - для получения сигнатуры необходимо иметь образец вируса. Следовательно, сигнатурный метод непригоден для защиты от новых вирусов, т. к. до тех пор, пока вирус не попал на анализ к экспертам, создать его сигнатуру невозможно. Именно поэтому все наиболее крупные эпидемии вызываются новыми вирусами. С момента появления вируса в сети Интернет до выпуска первых сигнатур обычно проходит несколько часов, и все это время вирус способен заражать компьютеры почти беспрепятственно. Почти - потому что в защите от новых вирусов помогают дополнительные средства защиты, рассмотренные ранее, а также эвристические методы, используемые в антивирусных программах.
Слово " эвристика " происходит от греческого глагола "находить". Суть эвристических методов состоит в том, что решение проблемы основывается на некоторых правдоподобных предположениях, а не на строгих выводах из имеющихся фактов и предпосылок. Поскольку такое определение звучит достаточно сложно и непонятно, проще объяснить на примерах различных эвристических методов
Если сигнатурный метод основан на выделении характерных признаков вируса и поиске этих признаков в проверяемых файлах, то эвристический анализ основывается на (весьма правдоподобном) предположении, что новые вирусы часто оказываются похожи на какие-либо из уже известных. Постфактум такое предположение оправдывается наличием в антивирусных базах сигнатур для определения не одного, а сразу нескольких вирусов. Основанный на таком предположении эвристический метод заключается в поиске файлов, которые не полностью, но очень близко соответствуют сигнатурам известных вирусов.
Положительным эффектом от использования этого метода является возможность обнаружить новые вирусы еще до того, как для них будут выделены сигнатуры. Отрицательные стороны:
- Вероятность ошибочно определить наличие в файле вируса, когда на самом деле файл чист - такие события называются ложными срабатываниями
- Невозможность лечения - и в силу возможных ложных срабатываний, и в силу возможного неточного определения типа вируса, попытка лечения может привести к большим потерям информации, чем сам вирус, а это недопустимо
- Низкая эффективность - против действительно новаторских вирусов, вызывающих наиболее масштабные эпидемии, этот вид эвристического анализа малопригоден
Другой метод, основанный на эвристике, исходит из предположения, что вредоносные программы так или иначе стремятся нанести вред компьютеру. Метод основан на выделении основных вредоносных действий, таких как, например:
- Удаление файла
- Запись в файл
- Запись в определенные области системного реестра
- Открытие порта на прослушивание
- Перехват данных вводимых с клавиатуры
- Рассылка писем
- И др.
Понятно, что выполнение каждого такого действия по отдельности не является поводом считать программу вредоносной. Но если программа последовательно выполняет несколько таких действий, например, записывает запуск себя же в ключ автозапуска системного реестра, перехватывает данные вводимые с клавиатуры и с определенной частотой пересылает эти данные на какой-то адрес в Интернет, значит эта программа по меньшей мере подозрительна. Основанный на этом принципе эвристический анализатор должен постоянно следить за действиями, которые выполняют программы.
Преимуществом описанного метода является возможность обнаруживать неизвестные ранее вредоносные программы, даже если они не очень похожи на уже известные. Например, новая вредоносная программа может использовать для проникновения на компьютер новую уязвимость, но после этого начинает выполнять уже привычные вредоносные действия. Такую программу может пропустить эвристический анализатор первого типа, но вполне может обнаружить анализатор второго типа.
В первой части статьи Вирусы и как с ними бороться мы рассмотрели теоретические основы вирусостроения. Сегодня подбираемся ближе к практике.
Для чего нам нужен антивирус?
В первую очередь для того, чтобы своевременно обнаруживать и удалять вирусы и тому подобную заразу. Но для начала нам его нужно установить. Сразу оговоримся, что помимо вирусов как таковых существует еще целый ряд деструктивных сетевых действий, на борьбу с которыми рассчитан фаервол (он же брандмауэр), часто идущий в пакете с антивирусом в виде модуля расширения, который можно установить, а можно и отказаться от его установки, воспользовавшись услугами таких мэтров как Agnitum Outpost Firewall Pro - кстати, последний не уживается практически ни с какими сторонними разработками. Вообще роль брандмауэра в системе нельзя умалять, он закрывает неиспользуемые сетевые порты, "мониторит" их на предмет нецелевого использования, а также запрещает выход в сеть неугодным приложениям, отражает сканирование портов, DDoS атаки и выполняет еще массу различных и крайне необходимых мер безопасности, так что отнеситесь к нему с большим вниманием, а на штатное решение компании Microsoft особо полагаться не стоит. О фаерволах нужна отдельная статья, потому что они тоже делятся на классы и типы фильтрации сетевого трафика (динамическая и пакетная фильтрация), у которых, разумеется, тоже есть свои достоинства и недостатки.
Каждый производитель выпускает антивирусы для различных платформ, например существуют версии того же самого AVP как для различных Windows платформ, так и для Unix/Linux систем, MacOS. Уже многие компании начали выпуск антивирусных пакетов для мобильных устройств на базе SymbianOS, PalmOS и клоны Windows CE (WM, Pocket, Smartphone и т.п.). Многие юзеры, конечно, и не подозревают о том, что уже существуют вирусы и под эти платформы, а некоторые уже знают о них, получив через Bluetooth вирус Duts для WM 2002/2003 или Cabir для Symbian.
Слухи о том, что якобы появились вирусы под мобильные телефоны, небезосновательны, но особо бояться их не стоит. Во-первых, теоретически, мобильный телефон можно заразить только посредством java-мидлета, а во-вторых, от модели к модели нередко меняется аппаратная и программная часть, и написать вирус, поражающий все модели телефонов одновременно, просто невозможно - тем более, что доступ к файловой системе телефона получить не так просто, да и подсистема памяти у мобилок устроена несколько иначе, чем у смартов.
Где взять антивирус
Можно иметь дело с коробочной версией антивируса - той, которая продается в красивой коробке и стоит немало, а можно установить себе и триал-версию продукта, которая будет исправно трудиться в течении определенного производителем срока, а после этого либо прекратит работу (может работать частично, просто обнаруживая вирусы, но отказываясь их лечить), либо лишится поддержки и обновления антивирусных баз. Для установки антивируса нужно обязательно удалить предыдущий антивирус (если он от стороннего производителя), иначе два разных ядра перехватчика системных событий не уживутся, и возникнет конфликт, вплоть до полной невозможности загрузки ОС, тогда придется загружаться в безопасном режиме и удалять один антивирус. А может быть и еще хуже, придется откатывать систему к контрольной точке восстановления.
В процессе установки разные антивирусы могут предлагать различные попутные настройки с обязательно установленной кнопкой в положение Recommended. Если вы не особо разбираетесь в работе антивируса, то лучше так и оставьте. Далее возможна ситуация, когда антивирус просканирует ОЗУ вашего кремниевого друга и удалит все вирусы из нее, после этого поступит предложение просканировать весь жесткий диск на предмет вирусов, до перезагрузки (если в памяти были найдены вирусы), не советую пренебрегать этим предложением. После сканирования перезагружаемся и если до этого в системе антивирус установлен не был, то наблюдаем более низкую скорость загрузки ОС, потерю нескольких десятков мегабайт ОЗУ, а если машина совсем уж слабенькая, то может наблюдаться и замедление работы — но поверьте, оно того стоит.
Как работает антивирус?
Практически каждый антивирус состоит из нескольких модулей, а именно из сканера, монитора, брандмауэра и различных блоков, защищающих нас от спама, фишинга и тому подобных неприятностей.
Начнем по порядку: с того, какие типы обнаружения вирусов существуют, а их всего три, это сигнатурный, эвристический и проактивный.
Сигнатурный метод обнаружения вирусов
Для начала давайте разберемся, что же такое сигнатура. Сигнатура - это участок кода вируса, который обнаружили антивирусные компании и добавили этот участок кода в базу сигнатур антивируса, и теперь во время сканирования антивирус будет проверять каждый файл на компьютере на наличие такой сигнатуры в коде (как бы прикладывая ее к телу файла). Если он ее отыщет, то она будет извлечена из тела файла, то есть файл окажется вылечен (этим занимаются фаги и полифаги). Многие пользователи не могут представить себе, как антивирус может вообще заглянуть в файл, и хотят посмотреть на примере участок кода (открою вам секрет: вирус не может заразить чисто текстовый файл таких форматов как txt, rtf или "чистый" html, и если вы посмотрите эти файлы с помощью HEX-редактора, то сразу поймете, почему). Итак, откроем файл adptif.dll из директории System32 программой ResHacker (она позволяет декомпилировать некоторые файлы для последующего анализа исходника).
На рисунке видна сигнатура, которую я специально добавил в тело "диллки" из существующего вируса под названием Email-Worm.Win32.Happy (из легендарного вируса!), примерно так и работает антивирус, декомпилируя файл и ища в нем сигнатуры вирусов (на самом деле, конечно же, код длинней, но и на сохраненные изменения в этом файле моя "Панда" отреагировала незамедлительно).
Многих также интересовал вопрос, как же все таки тело вируса попадает в антивирусные лаборатории, и я постараюсь на него ответить. Ну, во-первых, у каждой компании есть специальный робот, который называется Honeypots (липучка), сканирующий Интернет в поисках вирусов посредством эвристического анализа и проактивных методов (о которых чуть ниже), также вирусы присылают "зараженные" пользователи, чей антивирус с помощью эвристического анализатора обнаружил вирус и поместил его в карантин (специальная директория, в которую помещается инфицированный файл до тех пор, пока антивирусная компания не выпустит сигнатуру с кодом этого вируса и антивирус не сможет "выкусить" этот участок вредоносного кода фагом, тем самым, вылечив файл, а до тех пор придется выкусить пользователю :) Файлы из этой директории не могут быть запущены на выполнение).
В некоторых случаях сигнатуры новых вирусов отправляют друг другу и компании антивирусного ПО. Да-да, это не шутка. Несмотря на маркетинговую политику, такое происходит, это поведал один руководитель крупной российской антивирусной компании в онлайн-интервью. А вообще в антивирусные компании ежедневно поступают из всех помянутых источников 200-300 свеженьких образцов различных "зверушек", написанных как профи, так и не очень опытными вирусописателями, некоторым образцам так и не суждено заразить ни одной машины, а некоторым, таким как Win95.CIH (он же "Чернобыль"), Sasser, NetSky, MyDom удается произвести настоящий шум.
После того как сигнатуры на сервере антивирусной компании добавлены в базы, антивирус подключается к официальному серверу или к зеркалу (если этому не противоречит регламент) и скачивает новые сигнатуры, добавляя к уже существующим.
Иногда в неделю добавляется сигнатур объемом в 350-400 кб, и после того как сигнатуры добавлены, файлы, находившиеся в карантине, будут вылечены (т.е. если вирусы, которыми они заражены, найдутся в базе).
Также иногда возникает спор на тему того, что у одного антивируса в базе 75 000 известных вирусов, а у другого их аж 125 000, и последний, как правило, в глазах несведущих пользователей выглядит привлекательней. Но тут тоже есть рекламная хитрость, дело в том, что у одного вируса может быть несколько мутаций (небольшое изменение кода вследствие модификации вредоносного кода), так вот, некоторые компании считают группу мутаций одного вируса (которая может достигать десятка) одним вирусом, другие считают каждую мутацию отдельным вирусом. Сигнатурный метод очень хорош тем, что в случае, когда вирус известен антивирусной компании и его сигнатура занесена в базы, он будет найден наверняка, на все 100%.
У сигнатурного метода обнаружения есть и слабые места, а именно: при увеличении файла(ов) сигнатур увеличиваются и требования к ресурсам компьютера, а еще такой метод поиска и обнаружения способен отыскать только те вирусы, которые заранее известны и не более того. Новые вирусы пишутся просто с бешеной скоростью, а на то, чтобы обнаружить новый вирус и добавить в базы, нужно время. Если учитывать, что на написание нового вируса у профи может уйти всего 15-20 минут, а на распространение и заражение сотен компьютеров в сети и того менее - 20-30 секунд (!), то станет понятно, что динамичным и надежным такой метод назвать трудно.
Эвристический метод обнаружения вирусов
Сразу после изобретения сигнатурного анализатора антивирусные компании начали искать альтернативы - по той простой причине, что успевать за вирусописателями и их творениями (которые, к слову, могут сами себя видоизменять и шифровать), стало совсем непросто. Тем более, что упаковщики, в которые упаковывают вирусы при создании, становятся все сложнее и сложнее, что делает добывание сигнатур еще более медленным и трудоемким делом. И в дополнение к старому методу был добавлен эвристический анализатор.
Слово "эвристика" происходит от греческого "отыскиваю, открываю", и построен этот метод, грубо говоря, на анализе проб и ошибок. На практике при работе антивируса эвристический анализатор распознает некоторые виды мутировавших вирусов, но зачастую такой метод порождает ложные срабатывания. Зато именно с помощью этого метода возможна некоторая защита от отсутствующих в базе вирусов, то есть подозрительный файл будет помещен в карантин, откуда будет передан антивирусной компании в момент следующего обновления. В компании его исследуют и добавят код в базу сигнатур, после чего этот файл, возможно, будет вылечен.
Один совет по поводу сотрудничества с антивирусными компаниями. Иногда антивирусная компания просит присылать обнаруженный вирус или инфицированный файл по почте с пометкой "вирус", но дело в том, что по дороге от почтового сервера к почтовому серверу файл подвергнется проверке и будет либо удален, либо дезинфицирован, поэтому следует его предварительно упаковать в архив с паролем и в тексте письма указать пароль.
Помните, что ни один антивирус не обнаружит вирус в запароленном архиве. Когда же вирус или инфицированный файл попадает в карантин, то он сразу шифруется и становится недоступным для всех приложений, кроме антивируса, и в лабораторию при следующем соединении с сервером он будет отправляться также в зашифрованном виде, но уже напрямую, минуя почтовые сервера. Ни один антивирусный монитор не даст вам сделать ни одного действия над зараженным файлом, а будет его блокировать (обычно на защищенных от записи носителях) или сразу лечить, поэтому нужно будет, отключив резидентный модуль (о нем ниже), заархивировать файл с паролем, а потом запустить резидента снова (вообще я все эксперименты с вирусами произвожу на виртуальной машине, что и вам советую).
Проактивный метод обнаружения вирусов (или поведенческий)
Этот метод обнаружения впервые появился в продукте "Антивирус Касперского 6.0" и произвел в некотором роде переворот в антивирусном ПО.
Этот метод включает в себя несколько принципов анализа. Первый из них - вычисление контрольных сумм файлов, которую при последующем сканировании антивирус будет сравнивать со своей базой (слепком), и когда контрольная сумма осталась без изменения, он этот файл проверять не станет. Второй принцип - это проверка системного реестра на состояние (целостность) критически важных ключей и, соответственно, снимок реестра, а третий способ (его еще называют поведенческим) включает в себя мониторинг поведения программ, а именно - того, что в данный момент выполняет программа, и если ее действия подозрительны, антивирус вам об этом сообщит. Проактивный метод не стоит путать с эвристикой и расширенной эвристикой, это несколько разные методы, потому что эвристика все равно обращается к сигнатурам, а проактивный метод имеет четкие правила поведения программ и записей в реестре, которые разработаны производителем.
Но, конечно, и у этого метода есть как сильные стороны, так и слабые. Правила поведенческого анализатора выпускаются производителем в специальных базах (как и сигнатуры), и если, допустим, хакеры изучат поведение антивируса в той или иной ситуации, то они могут создать такое правило для своего вируса, которое будет вписываться в рамки "допустимости" антивирусного модуля проактивной защиты, и тем самым обманут его. Также стоит отметить, что те пользователи, которые работали с таким методом обнаружения вирусов, очень часто натыкались на "ложную тревогу", когда антивирус принимал совершенно безобидное приложение за шпиона или трояна.
Полифаги и фаги
Это доктора, встроенные в антивирус, которые позволяют вылечить файл, после того как в нем был обнаружен вирус сканером - а если быть точным, то фаги извлекают из файла вредоносный код. Однако в некоторых случаях вирусы не только добавляют себя в тело файла, но и уродуют код последнего, делая его восстановление невозможным.
Теперь давайте разберемся, как работает антивирус на практике и как вообще построен процесс работы антивируса. Для начала стоит напомнить, что современные антивирусы состоят из нескольких блоков (как уже упоминалось выше), а именно из монитора (резидентного модуля), сканера, фаервола (брандмауэра) и различных модулей по работе со спамом, фишингом, шпионами, адварами и тому подобной дрянью.
В процессе работы компьютера в оперативной памяти всегда находится монитор, на программном уровне это ядро антивируса, так называемый перехватчик системных событий, который очень глубоко интегрируется в систему (именно по этой причине несколько перехватчиков от различных производителей не уживаются на одной машине - а вот антивирусы, состоящие из двух ядер, существуют, например, у компании McAfee), и все последующие действия отслеживаются антивирусом (будь то проверка файлов на сигнатуры или то поведенческий анализ).
Также во время установки антивируса в систему он интегрируется в почтовые программы, такие как Outlook Express, Eudora, The Bat! и т.д.
Это очень важный аспект, поскольку во время получения почты нужно прямое сканирование трафика из протоколов POP3, SMTP, NNTP, IMAP и тому подобных, потому что многим типам червей, распространяющихся через эти протоколы, совершенно не нужно запуска, им главное попасть на ваш компьютер, дальше сработает механизм. Учтите это! Вам же не хочется, чтобы какой-нибудь червь с трояном отправили на все ваши адреса из почтовой программы ругательные письма. Представляете, что будет с вашим лицом через пару дней, когда до вас доберутся обиженные адресаты? :)
В процессе того, как монитор отслеживает поведение программ и файлов возможна такая ситуация, что будет обнаружен вирус - где угодно, то ли в кэше вашего браузера, который только что загрузил свеженький вирус с сайта, то ли уже в запущенном процессе или вообще лежащий в файле на диске.
Первым делом задача антивируса - это не дать файлу прав на исполнение, простыми словами - блокировать его, и любые действия над ним будут невозможны (копирование, архивация и т.д.), вторым по плану будет задача встроенного фага обезвредить файл. Конечно же, если вирус был найден эвристическим методом или проактивным, то о лечении и речи быть не может, только карантин до появления сигнатуры в базах или удаление. Также возможно переименование файла, это не даст возможности его запуска в другой раз.
Совсем другая ситуация с уже запущенным процессом, который выполняет деструктивные действия или является частью вирусного механизма. Здесь сложней. Во-первых, этот процесс нужно сначала убить, а затем произвести все вышеназванные действия над ним - но что же делать, если процесс не убиваем? Да, да к сожалению, и такое бывает. Как я уже писал, в таких случаях поможет либо безопасный режим, либо DOS (многие антивирусы позволяют из главного окна программы или меню "Пуск" создать либо загрузочные дискеты для лечения ПК из DOS, либо записать на CD). Когда вирусная активность была замечена проактивным сканером в реестре или конфигурационном файле приложения, сразу поступит предложение исправить это досадное положение и сделать откат на случай ошибки. Решать вам.
В отличие от монитора, сканер нужно запускать вручную, натравив антивирус либо на один файл из контекстного меню, либо через главное окно производить поверку выбранных объектов, целых дисков, отдельных папок.
Эвристическое сканирование — метод работы антивирусной программы, основанный на сигнатурах и эвристике, призван улучшить способность сканеров применять сигнатуры и распознавать модифицированные версии вирусов в тех случаях, когда сигнатура совпадает с телом неизвестной программы не на 100 %, но в подозрительной программе налицо более общие признаки вируса. Данная технология, однако, применяется в современных программах очень осторожно, так как может повысить количество ложных срабатываний.
Практически все современные антивирусные средства применяют технологию эвристического анализа программного кода. Эвристический анализ нередко используется совместно с сигнатурным сканированием для поиска сложных шифрующихся и полиморфных вирусов. Методика эвристического анализа позволяет обнаруживать ранее неизвестные инфекции, однако, лечение в таких случаях практически всегда оказывается невозможным. В таком случае, как правило, требуется дополнительное обновление антивирусных баз для получения последних сигнатур и алгоритмов лечения, которые, возможно, содержат информацию о ранее неизвестном вирусе. В противном случае, файл передается для исследования антивирусным аналитикам или авторам антивирусных программ.
Технология эвристического анализа Править
Методы эвристического сканирования не обеспечивают какой-либо гарантированной защиты от новых, отсутствующих в сингатурном наборе, компьютерных вирусов, что обусловлено использованием в качестве объекта анализа сигнатур ранее известных вирусов и а в качестве правил эвристической верификации – знаний о механизме полиморфизма сигнатур. В тоже время, этот метод поиска базируется на эмпирических предположениях, полностью исключить ложные срабатывания нельзя.
В ряде случаев, эвристические методы оказываются чрезвычайно успешными, к примеру, в случае очень коротких программных частей в загрузочном секторе: если, программа производит запись в сектор 1, дорожку 0, сторону 0, то это приводит к изменению раздела накопителя. Но кроме вспомогательной программы FDISK эта команда больше нигде не используется, и потому в случае ее неожиданного появления речь идет о загрузочном вирусе.
В процессе эвристического анализа производится проверка эмулируемой программы анализатором кода. К примеру, программа инфицирована полиморфным вирусом, состоящим из зашифрованного тела и расшифровщика. Эмулятор кода эмулирует работу данного вируса по одной инструкции, после этого анализатор кода подсчитывает контрольную сумму и сверяет ее с той, которая хранится в базе. Эмуляция будет продолжаться до тех пор, пока необходимая для подсчета контрольной суммы часть вируса не будет расшифрована. Если сигнатура совпала - программа идентифицирована.
Другим распространенным методом эвистического анализа, применяемым большой группой антивирусов, является декомпиляция подозрительной программы и анализ ее исходного кода. Исходный код подозрительного файла проходит сверку и сравнение с исходным кодом известных вирусов и образчиков вирусной активности. В случае, если определенный процент исходного кода идентичен коду известного вируса или вирусной активности, файл отмечается как подозрительный, о чем оповещается пользователь.
Недостатки эвристического сканирования Править
- Чрезмерная подозрительность эвристического анализатора может вызывать ложные срабатывания при наличии в программе фрагментов кода, выполняющего действия и/или последовательности, в том числе и свойственные некоторым вирусам. В частности, распаковщик в файлах, запакованных PE-упаковщиком (Win)Upack вызывает ложные срабатывания целого ряда антивирусных средств, де-факто не признающих такой проблемы. Другой проблемой анализаторов является ошибочное срабатывание при проверке совершенно безобидного кода.
К примеру, скомпилированный с помощью Delphi 7 или Delphi 2007 код:
- Наличие простых методик обмана эвристического анализатора. Как правило, прежде чем распространять вредоносную программу (вирус), ее разработчики исследуют существующие распространенные антивирусные продукты, различными методами избегая ее детектирование при эвристическом сканировании. К примеру, видоизменяя код, используя элементы, выполнение которых не поддерживается эмулятором кода данных антивирусов, используя шифрование части кода и др.
Несмотря на заявления и рекламные проспекты разработчиков антивирусных средств относительно совершенствования эвристических механизмов, эффективность эвристического сканирования на данный момент далека от ожидаемой. Независимые тесты компонентов эвристического анализа показывают, что уровень обнаружения новых вредоносных программ составляет не более чем 40-50% от их числа. [3] (англ.)
- Даже при успешном определении, лечение неизвестного вируса практически всегда является невозможным. Как исключение, некоторыми продуктами возможно лечение однотипных и ряда полиморфных, шифрующихся вирусов, не имеющих постоянного вирусного тела, но использующих единую методику внедрения. В таком случае, для лечения десятков и сотен вирусов может существовать одна запись в вирусной базе, как это реализовано, к примеру, в антивирусе И. Данилова.
Читайте также: