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

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

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

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

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

Технология эвристического анализа

[править | править код]

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

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

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

Недостатки эвристического сканирования

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