Эвристическое сканирование

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Эвристический анализ»)
Перейти к навигации Перейти к поиску

Эвристический анализ (эвристическое сканирование) — совокупность функций антивируса, нацеленных на обнаружение вредоносных программ, неизвестных для вирусных баз. В то же время этот термин обозначает и один из конкретных способов.

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

Технология эвристического анализа[править | править код]

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

В ряде случаев эвристические методы оказываются чрезвычайно успешными, к примеру, в случае очень коротких программных частей в загрузочном секторе: если программа производит запись в сектор 1, дорожку 0, сторону 0, то это приводит к изменению раздела накопителя. Но кроме вспомогательной программы fdisk эта команда больше нигде не используется, и потому в случае её неожиданного появления речь идёт о загрузочном вирусе.

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

Недостатки эвристического сканирования[править | править код]

  • Чрезмерная подозрительность эвристического анализатора может вызывать ложные срабатывания при наличии в программе фрагментов кода, выполняющего действия и/или последовательности, в том числе и свойственные некоторым вирусам. В частности, распаковщик в файлах, запакованных PE-упаковщиком (Win)Upack вызывает ложные срабатывания целого ряда антивирусных средств, не признающих такой проблемы.
  • Наличие простых методик обмана эвристического анализатора. Как правило, прежде чем распространять вредоносную программу (вирус), её разработчики исследуют существующие распространенные антивирусные продукты, различными методами избегая её детектирование при эвристическом сканировании. К примеру, видоизменяя код, используя элементы, выполнение которых не поддерживается эмулятором кода данных антивирусов, используя шифрование части кода и др.
  • Несмотря на заявления и рекламные проспекты разработчиков антивирусных средств относительно совершенствования эвристических механизмов, эффективность эвристического сканирования далека от ожидаемой.
  • Даже при успешном определении, лечение неизвестного вируса практически всегда является невозможным. Как исключение, некоторыми продуктами возможно лечение однотипных и ряда полиморфных, шифрующихся вирусов, не имеющих постоянного вирусного тела, но использующих единую методику внедрения. В таком случае, для лечения десятков и сотен вирусов может существовать одна запись в вирусной базе.

См. также[править | править код]

Ссылки[править | править код]