Как антивирус распознает вирусы

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

Все антивирусы осуществляют поиск вирусов по трем основным схемам. В большинстве антивирусных программ эти методики комбинируются для повышения эффективности. К ним относятся:

1. Поиск вируса по его сигнатуре. Это самый простой и действенный метод поиска вируса, который заложен в основу любого антивируса и применяется для поиска нежелательных программ чаще всех остальных способов. У всех вирусов есть свой уникальный программный код, также, как у людей отпечатки пальцев. Антивирус сравнивает все файлы ПК на наличие таких кодов, которые заложены в его базе данных и требуют регулярного обновления. Однако, у этого способа есть существенный минус — он не может находить вариации вируса. Это похоже на прививку от гриппа — вирус один, а его разновидностей неслыханное множество, и с каждым разом вариаций все больше. Второй существенный минус этого метода в том, что не все антивирусные компании справляются с базами данных. Новые вирусы появляются каждую минуту, и антивирусы просто не успевают обновлять свои хранилища. Третий серьезный недостаток — этот тип поиска вирусов отнимает большое количество времени, и иногда на проверку уходит около половины суток, что, согласитесь, не очень-то удобно.

2. Эвристический метод. Он распознает вирусы по сигнатуре. Сигнатура — это поведение вируса, его особенности строения и логика. Антивирус работает в поисках программ, которые имеют определенный набор команд, которые у антивируса есть в базе. Данный метод помогает находить вирусы, которые еще не успели причинить компьютеру вред. Очень часто антивирус находит вирус эвристическим методом, когда «зараза» дает сигнал, к примеру, включить мелодию или удалить папку. У этого способа обнаружения есть ряд минусов: Во-первых, он очень чувствителен и часто срабатывает без причины. Во-вторых, базы данных этого метода очень трудно обновлять из-за больших объемов методики. В-третьих, не всегда при обнаружении вируса его можно устранить.

3. Помещение вируса на «карантин» — не столько метод поиска, сколько проверка подозрительных программ. Антивирус имеет дело с «подозрительной» программой и помещает ее в безопасную область, где следит за ней. В пределах карантина если вирус и включится, то не сможет ничего передать или испортить. Под контролем вирус будет до тех пор, пока антивирус не решит, удалять его в связи с опасностью или отпустить, потому что вышла осечка.

Содержание статьи

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

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

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

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

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

Читайте также:  Как включить игровой режим на мониторе

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

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

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

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

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

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

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

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

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

Читайте также:  Бортовой компьютер ниссан икстрейл

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

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

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

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

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

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

13 октября 2016

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

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

Заблуждение первое: сигнатуры — это что-то устаревшее

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

Проблема возникла из-за того, что с самого начала — а это восьмидесятые годы — понятие «сигнатуры» не было определено четко. Например, отдельной статьи про них в «Википедии» нет даже сейчас, а в статье про вредоносные программы понятие «сигнатуры» используется без определения — как нечто всем известное.

Давайте же это определение дадим. Классическая вирусная сигнатура — это непрерывная последовательность байтов, характерная для той или иной вредоносной программы. То есть она содержится в этом вредоносном файле и не содержится в чистых файлах.

Например, характерная последовательность байтов может быть такой

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

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

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

Поэтому важно иметь в виду, что само по себе слово «сигнатура» на самом деле не говорит ничего о продвинутости или примитивности.

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

Заблуждение второе: вирусы — это любые вредоносные программы

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

Читайте также:  Вычислить периметр треугольника в паскале

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

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

Классификация вредоносных программ

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

И раз уж мы заговорили о правильных терминах, то вот еще несколько. «Червь» — это вредонос, способный к самостоятельному распространению за пределы одного устройства. А «малвара» (malware), если следовать точной классификации, не включает в себя «адвару» (adware) — грубое рекламное ПО — и «рисквару» (riskware) — легальное ПО, которое может нанести вред пользователю, если установлено не им, а злоумышленниками.

Заблуждение третье: антивирус не умеет лечить

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

Лечение заключается в следующем. В 1% случаев, когда пользователю антивируса «посчастливилось» натолкнуться именно на вирус — инфектор (причем, скорее всего, еще до установки антивируса, иначе бы зловред просто не запустился), антивирус действительно будет перебирать все зараженные файлы на компьютере и производить процедуру дезинфекции — восстанавливать оригинал. Кстати, то же самое антивирус будет делать, если потребуется расшифровать файлы, зашифрованные вымогателем-шифровальщиком — зловредом класса Trojan-Ransom.

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

В большинстве случаев лечение как таковое не требуется, достаточно просто удалить вредоносный файл

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

Кстати, ситуация такая возникает обычно по двум причинам:

  1. Антивирус устанавливают на уже зараженное устройство: «Заразился? Пора подумать и о защите».
  2. Антивирус не смог определить угрозу на диске до запуска, поэтому запуск разрешил, но пометил программу как подозрительную и перешел к активному мониторингу выполняемых ею действий. Если действия программы действительно «неправильные», то она будет определена как вредоносная. В этом случае, кстати, антивирус при лечении также осуществит откат всех произведенных зловредом действий (он же их не зря мониторил и запоминал): например, восстановление из бэкапа-на-лету зашифрованных файлов пользователя, если речь идет о шифровальщике или инфекторе.

Заключение

На сегодня все. Надеюсь, теперь вы:

  1. Будете понимать, что «сигнатурами» в наше время принято называть любые антивирусные базы, в том числе и самые высокотехнологичные, а сигнатуры в классическом понимании уже не используются в антивирусной индустрии.
  2. Лучше понимаете, кто есть кто в мире вредоносных программ.
  3. Наконец понимаете, что лечение устройства, компьютера или смартфона, от заражения — это штатная обязанность антивируса. А еще — что ни в коем случае не стоит выключать компонент «Мониторинг активности».