Дискуссии о том, нужны ли антивирусы, или они совершенно бесполезны, не утихают с момента появления самих антивирусных приложений. Примерно столько же длится непрекращающаяся борьба между вирмейкерами и производителями защитного ПО: одни постоянно изобретают все новые и новые алгоритмы детектирования, другие стремятся во что бы то ни стало их обойти.

Как работают современные антивирусные программы и какие методы используют злоумышленники для борьбы с ними? Об этом — сегодняшняя статья.

 

Как антивирусные компании пополняют базы?

Применительно к современным антивирусным технологиям само понятие «антивирус» — это скорее дань моде, нежели термин, правильно отражающий суть вещей. Классические файловые вирусы, то есть вредоносные программы, способные заражать исполняемые файлы или динамические библиотеки и распространяться без участия пользователя, сегодня очень большая редкость. Подавляющее большинство встречающихся сейчас в «дикой природе» вредоносов — это трояны, не способные ни к заражению файловых объектов, ни к саморепликации. Чуть реже в руки аналитиков попадаются черви: эти программы могут создавать свои копии на съемных носителях или сетевых дисках, «расползаться» по сети или каналам электронной почты, но файлы заражать не умеют. Все остальные традиционные категории вредоносного ПО отличаются друг от друга лишь базовым набором функций, но по своей архитектуре могут быть сведены к этим трем группам.

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

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

Второй канал — «самотек», подозрительные файлы, которые пользователи передают в вирлаб через сайт антивирусной компании, по запросу службы поддержки или выгружают из карантина. Третий канал — ханипоты, специальные приманки для вирмейкеров в виде виртуальных серверов с открытыми наружу портами и логинами-паролями вроде root/root, куда некоторые ботоводы радостно заливают свои творения, дивясь криворукости админов. Наконец, четвертый путь — обмен базами между самими вендорами, но в последние годы в силу обострившейся конкуренции на рынке и сузившейся кормовой базы кооперация между антивирусными компаниями практически сошла на нет.

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

 

Анатомия антивируса

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

  • антивирусный сканер — утилита, выполняющая поиск вредоносных программ на дисках и в памяти устройства по запросу пользователя или по расписанию;
  • резидентный монитор — компонент, выполняющий отслеживание состояния системы в режиме реального времени и блокирующий попытки загрузки или запуска вредоносных программ на защищаемом компьютере;
  • брандмауэр (файрвол) — компонент, выполняющий мониторинг текущего соединения, включая анализ входящего и исходящего трафика, а также проверяющий исходный адрес и адрес назначения в каждом передаваемом с компьютера и поступающем на компьютер пакете информации — данные, поступающие из внешней среды на защищенный брандмауэром компьютер без предварительного запроса, отслеживаются и фильтруются. С функциональной точки зрения брандмауэр выступает в роли своеобразного фильтра, контролирующего поток передаваемой между локальным компьютером и интернетом информации, защитного барьера между компьютером и всем остальным информационным пространством;
  • веб-антивирус — компонент, предотвращающий доступ пользователя к опасным ресурсам, распространяющим вредоносное ПО, фишинговым и мошенническим сайтам с использованием специальной базы данных адресов или системы рейтингов;
  • почтовый антивирус — приложение, выполняющее проверку на безопасность вложений в сообщения электронной почты и (или) пересылаемых по электронной почте ссылок;
  • модуль антируткит — модуль, предназначенный для борьбы с руткитами (вредоносными программами, обладающими способностью скрывать свое присутствие в инфицированной системе);
  • модуль превентивной защиты — компонент, обеспечивающий целостность жизненно важных для работоспособности системы данных и предотвращающий опасные действия программ;
  • модуль обновления — компонент, обеспечивающий своевременное обновление других модулей антивируса и вирусных баз;
  • карантин — централизованное защищенное хранилище, в которое помещаются подозрительные (в некоторых случаях — определенно инфицированные) файлы и приложения до того, как по ним будет вынесен окончательный вердикт.

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

 

Сигнатурное детектирование

Современные антивирусные программы используют несколько методик обнаружения вредоносных программ в различных их сочетаниях. Основная из них — это сигнатурное детектирование угроз.

Данный метод детектирования малвари основывается на создании так называемых сигнатур — уникальных цифровых идентификаторов файла, представляющих собой специальный набор байтов и получаемых на основе содержимого исследуемого файла. Фактически сигнатура — это своего рода «отпечаток пальцев» файла: с помощью сигнатуры можно однозначно идентифицировать тот или иной файл или приложение. Схожим образом устроены хеши файлов, например SHA-1 или SHA-256, — при этом под хешированием в данном случае понимается преобразование содержимого файла с использованием однонаправленной математической функции (алгоритма криптографического хеширования), в результате которого получается уникальный набор шестнадцатеричных символов. Однонаправленной такая функция называется потому, что получить из файла хеш очень просто, а вот восстановить из хеша исходный файл уже невозможно. Вирусная сигнатура устроена несколько сложнее: помимо хеша, она содержит еще целый ряд уникальных признаков файла.

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

Антивирусная программа исследует хранящиеся на дисках (или загружаемые из интернета) файлы и сравнивает результаты исследования с сигнатурами, записанными в антивирусной базе. В случае совпадения такой файл считается вредоносным. Данная методика сама по себе имеет значительный изъян: злоумышленнику достаточно изменить структуру файла на несколько байтов, и его сигнатура изменится. До тех пор пока новый образец вредоноса не попадет в вирусную лабораторию и его сигнатура не будет добавлена в базы, антивирус не сможет распознать и ликвидировать данную угрозу.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


Check Also

Береги глаза! Активируем DC Dimming в iPhone Xs, Pixel 3 XL, Xiaomi Mi 9 и других смартфонах

Вырвиглазные мерцающие OLED-дисплеи остались в прошлом! В Xiaomi изобрели способ сделать O…

4 комментария

  1. Аватар

    Nelex

    12.06.2019 at 22:14

    В последнее время появляется чуток больше интересного контента, а то я аж подзабросил чтение сайта. Тем не менее материал освежает знания. Автору спасибо.

  2. Аватар

    Natusik

    08.07.2019 at 09:24

    Интересно, какие контрдействия есть у разработчиков защитных программ в случае упаковки и шифрования вредоносного ПО?

  3. Аватар

    Alexandr Dorogokup

    11.07.2019 at 13:15

    Слышал, что у антивируса Romad Endpoint Defense модуль, который «предсказывает» появление новых небезопасных программ

  4. Аватар

    s00mbre

    22.07.2019 at 05:59

    Хорошая статья, но было бы лучше снабдить ее ссылками на предыдущие материалы ][, например, что касается методов обфускации, детекту песочницы и т.д…

Оставить мнение