Искусство цифровой самозащиты - Артимович Дмитрий
Шрифт:
Интервал:
Закладка:
Это один из основных и широко используемых методов обнаружения вирусов. Компании-разработчики антивирусного программного обеспечения поддерживают обширную базу данных сигнатур различных вирусов и вредоносных программ. При установке любого антивируса вся база сигнатур идет вместе с ним и периодически обновляется из интернета. Поэтому, когда мы устанавливаем какое-либо программное обеспечение или загружаем файлы, антивирусное программное обеспечение, работающее в фоновом режиме, сканирует этот файл и сопоставляет его с базой данных сигнатур.
Преимущество метода обнаружения на основе сигнатур заключается в том, что одна сигнатура вируса определенного типа может совпасть с набором вредоносных файлов, имеющих некоторые общие черты. Таким образом, с помощью одной сигнатуры мы можем обнаружить несколько вредоносных файлов. Если сигнатура вновь загруженного файла совпадает с какой-либо вредоносной из существующей базы данных, антивирус уведомляет и предупреждает пользователя. Хотя антивирусное программное обеспечение постоянно обновляет базу данных сигнатур, могут быть файлы, для которых нет совпадений в базе. В таком случае антивирус не сможет определить, безопасен ли только что загруженный файл.
Эвристический анализ
Эвристический анализ – это метод обнаружения компьютерных вирусов и вредоносных программ, которых нет в базах (вирусных сигнатурах), путем изучения фрагментов кода и сравнения их с известными вирусными угрозами.
Термин «эвристика» – греческого происхождения, oзначaeт «отыскивать» или «находить». Технология основывается на гипотетическом предположении, что новые вирусы частично схожи со знакомыми изученными образцами. В большинстве случаев эта догадка правдива. Положительная сторона эвристического анализа – практическая способность нахождения новых, неизученных вредоносных приложений. Несовершенство этой гипотезы – в ошибочном определении вирусного кода в безопасных файлах (ложные срабатывания).
Современные антивирусы оснащены эвристическими анализаторами, в первую очередь для выявления полиморфных вирусов, изменяющих свой программный код после каждого заражения. При нахождении зараженных объектов пользователь информируется об этом. А вот вылечить зараженные файлы станет возможно только после изучения, внесения информации в сигнатурные базы и разработки способа лечения. До этого опасные файлы изолируются в карантине, откуда, в случае ложной тревоги, их можно будет восстановить на прежнее место. Лечение не применяется из опасения потери информации или нанесения большего вреда, чем само заражение.
На практике эвристический анализ оказывается не столь эффективным, как утверждают разработчики антивирусных программ в рекламных проспектах. Авторы вирусов перед распространением тестируют их на популярных антивирусах, чтобы найти способы обмануть эвристику и сигнатурное сканирование.
Как уже было сказано выше, главный недостаток эвристического анализа – ложные срабатывания, когда безопасные программы по ошибке определяются как зараженные, потому что их части машинного кода аналогичны вредоносному программному обеспечению.
Даже если вредоносная программа будет успешно обнаружена, лечение зараженных файлов невозможно. Только люди могут создать алгоритм изъятия вредоносного кода без нанесения вреда остальной информации. Остается лишь изолировать небезопасные объекты в защищенной карантинной зоне и ждать, пока вирус изучат и появится безопасный способ лечения.
Эвристическое сканирование бессильно против передовых новаторскиx вирусных программ, написанных с чистого листа и не похожих на другие компьютерные вирусы (угрозы нулевого дня).
Песочница (sandbox)
Этот метод основан на том, что антивирусное программное обеспечение запускает программу или файл в виртуальной среде. Основная цель – записывать поведение файлов и автоматически анализировать их с помощью системы весов в песочнице. Цель анализа – проверить назначение файла и выявить какие-либо вредоносные действия. Антивирус разрешит выполнение файла в реальной среде только в том случае, если он безопасен.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})Метод песочницы не только определяет вредоносный характер файла, но и предоставляет подробную информацию о файле. Это медленный процесс, потому что после установки антивирус должен запустить программу в виртуальной среде. Кроме того, необходимо дождаться результатов поведенческого анализа. Поэтому метод обнаружения требует времени и не идеален для небольших систем, таких как ноутбуки или настольные компьютеры. Крупные организации, где безопасность важнее времени, в основном используют антивирус с песочницей.
Существенным преимуществом метода песочницы является то, что он предсказывает действия, которые файл может выполнять в реальной системе. Основным ограничением является время, необходимое для анализа файла. Кроме того, для выполнения и сбора отчета о поведении требуется отдельная виртуальная среда.
Проактивная защита
Проактивные технологии – совокупность технологий и методов, используемых в антивирусном программном обеспечении, основной целью которых, в отличие от реактивных (сигнатурных) технологий, является предотвращение заражения системы пользователя, а не поиск уже известного вредоносного программного обеспечения в системе. При этом проактивная защита старается блокировать потенциально опасную активность программы только в том случае, если эта активность представляет реальную угрозу. Серьезный недостаток проактивной защиты – блокирование легитимных программ (ложные срабатывания).
Проактивные технологии начали развиваться практически одновременно с классическими (сигнатурными) технологиями. Однако первые реализации проактивных технологий антивирусной защиты требовали высокого уровня квалификации пользователя, то есть не были рассчитаны на массовое использование простыми пользователями персональных компьютеров. Спустя десятилетие антивирусной индустрии стало очевидно, что сигнатурные методы обнаружения уже не могут обеспечить эффективную защиту пользователей. Этот факт и подтолкнул к возрождению проактивных технологий.
Технологии проактивной защиты:
• Эвристический анализ
Технология эвристического анализа позволяет на основе анализа кода выполняемого приложения, скрипта или макроса обнаружить участки кода, отвечающие за вредоносную активность. Эффективность данной технологии не является высокой, что обусловлено большим количеством ложных срабатываний при повышении чувствительности анализатора, а также большим набором техник, используемых авторами вредоносного ПО для обхода эвристического компонента антивирусного ПО.
• Эмуляция кода
Технология эмуляции позволяет запускать приложение в среде эмуляции, эмулируя поведение ОС или центрального процессора. При выполнении приложения в режиме эмуляции приложение не сможет нанести вреда системе пользователя, а вредоносное действие будет детектировано эмулятором. Несмотря на кажущуюся эффективность данного подхода, он также не лишен недостатков: эмуляция занимает слишком много времени и ресурсов компьютера пользователя, что негативно сказывается на быстродействии при выполнении повседневных операций. Также современные вредоносные программы способны обнаруживать выполнение в эмулированной среде и прекращать свое выполнение в ней.
• Анализ поведения
Технология анализа поведения основывается на перехвате всех важных системных функций или установке т. н. мини-фильтров, что позволяет отслеживать всю активность в системе пользователя. Технология поведенческого анализа позволяет оценивать не только единичное действие, но и цепочку действий, что многократно повышает эффективность противодействия вирусным угрозам. Также поведенческий анализ является технологической основой для целого класса программ – поведенческих блокираторов (HIPS – Host-based Intrusion Systems).