Современный человек потерял вкус к познанию. Потребительская концепция подразумевает легкую пищу для ума и минимум мозгового напряжения. Это не старческое брюзжание, а всего лишь факт. Достаточно просто спросить себя – как давно что-то действительно сложное, подобно цветку на рассвете, раскрывало свою тайну. Как давно что-то невероятно интересное открывалось пытливому уму. Мы привыкли к тому, что все, включая компьютерное железо, программное обеспечение и игры, работает само. Мы не осознаем, как много люди сил и времени вложили в созидание. То же касается и компьютерных антивирусов. Банальная, по сути, программа, от которой требуется лишь вылавливание из пучины информации вредоносных элементов, имеет свою историю, сложнейшую структуру и оригинальную методику функционирования.
В данном обзоре мы хотели рассказать нашим читателям о том, как работает антивирус. Конечно, сегодня существует большое количество антивирусных продуктов, среди производителей которых не последнее место занимают российские разработчики. Однако общие принципы работы, некие тонкости и нюансы присущи всем защитным программам. Прежде чем переходить к этой информации, следует определить для себя – что же на самом деле такое – антивирус? Итак, антивирусом можно считать программу, которая предназначена для обнаружения вирусов, лечения других программ, которые заражены вирусами, и предотвращения заражения путем вакцинации или других методов. Чтобы более конкретно работать с вирусами, программисты используют медицинскую терминологию.
С чего все начиналось
Нельзя, рассказывая об антивирусах, не упомянуть некоторые факты о первых вредоносных программах. Появление первых вирусов многие историки относят к 70-м или даже к 60-м годам прошлого столетия. Тем не менее, первыми полноценными вирусами резонно считают программы для машин Apple II. Эти вредоносные элементы получили название Virus 1,2,3 и Elk Cloner. Эти два вируса по функциональности и принципам работы очень похожи друг на друга и появились в 1981 году. Под видом полезных программ в BBS (Bulletin Board System — электронная доска объявлений) выкладывались вредоносные утилиты-вандалы, которые после установки удаляли все данные с компьютера.
Тогда же появляются первые программы, которые могут быть активированы в определенное время или при определенных условиях. Многие пользователи со стажем помнят вирус-легенду под названием «Чернобыль», которая активировалась в день, когда случилась трагедия. Интересно, что первые антивирусные программы появились практически сразу после возникновения первых вредоносных. В 1985 году некто по имени Том Хефф стал распространять по сети BBS список известных на тот момент программ, которые при установке, могут нанести вред компьютеру, а ранее, в 1984 году, появились первые антивирусы. Программы CHK4BOMB и BOMBSQAD были написаны программистом Энди Хопкинсом.
Первая анализировала код загрузочного модуля, а вторая перехватывала все операции записи и форматирования. Благодаря своей простоте и эффективности они были очень популярны. В дальнейшем, когда вирусы могли прописываться на сменные носители (дискеты) и винчестер сами, появился резидентный антивирус ProDetect, который блокировал все нежелательные операции, наподобие записи или форматирования. Выявление такой операции влекло за собой перезагрузку системы. Первая вирусная эпидемия была зафиксирована в 1987 году. Вирус Brain, известный также как пакистанский вирус (он был написан в братьями Базитом и Аджаматом Алви), заразил более 18 тысяч компьютеров в США.
По идее, вирус должен был наказать «пиратов», которые воровали программное обеспечение у фирмы братьев Алви. В коде имелись телефоны, имена и адреса авторов вредоносной программы. Но в определенный момент что-то пошло не так, и зараза распространилась за пределы Пакистана. Вторая, не менее известная эпидемия, произошла в том же 1987 году. Четыре тысячи компьютеров Лейхайского университета США пострадало в результате действия вируса – были удалены личные данные студентов, преподавателей и библиотеки. Один из первых вирусов для операционной системы MS-DOS получил распространение по всему миру, а не только в отдельных регионах. В 1987 году в Иерусалимском университете вирус «Jerusalem», который уничтожал файлы при их запуске, вышел за пределы учебного заведения и прошелся сокрушительной волной по системам США, Европы и Ближнего Востока.
Классификация
Исследователи для более эффективной борьбы с вредоносным ПО используют определенную классификацию противодействующих программ. Например, небезызвестный Евгений Касперский, автор знаменитого антивируса, применяет следующее распределение, которое определяет функциональность каждого вида:
1. Антивирусы-полифаги, или сканеры, определяют значение вируса по некой базе данных, которая хранит сигнатуры вирусов. Эффективность таких защитных пакетов определяется актуальностью антивирусных баз на момент действия.
2. Антивирусы-ревизоры фиксируют состояние файловой системы на момент их установки. Такой подход делает невозможным дальнейшие изменения, но является достаточно эффективным.
3. Антивирусы-мониторы отслеживают опасные операции, запрашивая у пользователя разрешение на выполнение заблокированного действия.
4. Антивирусы-вакцины изменяют прививаемый файл так, чтобы вредоносная программа считала файл уже зараженным.
В современных условиях такой подход фактически неприменим в связи огромным количеством существующих штаммов вирусов и их разновидностей.
Работает антивирус
Удивительно, но на данный момент существует более 45 антивирусов – и это только наиболее известные, полноценные защитные программы, которые постоянно обновляются и развиваются. Свои продукты представляют на мировом рынке программисты из России, Польши, Финляндии, Индии, Чехии, Словакии, Венгрии, Румынии, Украины, Белоруссии, Норвегии, Испании, Японии и, конечно, США. Такое чувство, что каждая страна старается обзавестись собственным защитным пакетом. Несмотря на все многообразие, существует два основных метода обнаружения вирусов: сканирование файлов для поиска известных штаммов в подготовленных антивирусных базах и обнаружение подозрительных действий любой программы.
Ранние версии антивирусов, о которых было рассказано выше, использовали в большинстве своем сигнатурный метод определения вредоносного ПО. Речь в данном случае идет о сигнатурном детектировании. В основе лежит распознавание структур файла. Каждый вирус имеет уникальную структуру – это позволяет легко обнаружить его разновидность. Вредоносные файлы появлялись с промежутком в несколько месяцев, и каждое обновление базы можно было считать новой версией защитной программы. Сегодня количество разновидностей вирусов превышает мыслимые пределы, а для их появления на ПК достаточно наличия доступа к Глобальной сети.
Настало время, когда одного сигнатурного детектирования попросту недостаточно. Появилось много разновидностей вредоносных программ – полиморфные, сжатые или зашифрованные. Все они могут с легкостью обмануть такой антивирус. Антивирусы, которые используют метод обнаружения подозрительных действий, не пытаются идентифицировать штаммы вирусов и попросту отслеживают процессы системы. Если программа пытается запустить или записать какие-то данные в исполняемый файл, то антивирус блокирует доступ и запрашивает разрешение у пользователя на выполнение таких действий. Этот метод получил название проактивная защита, или HIPS.
Такой метод, в отличие от сигнатурного подхода, обеспечивает защиту от вирусов, которых еще нет в базах. К недостаткам такого метода следует отнести большое количество ложных срабатываний. Антивирус с детектором подозрительных действий становится похож на параноика. Любое обращение к реестру, запись на диск он воспринимает как попытку атаки. Впервые такой метод был использован в 2006 году сразу несколькими компаниями. В частности, детектор был внедрен в продукты Kaspersky Internet Security, Safe\’n\’Sec, F-Secure Internet Security и Outpost Firewall Pro. Естественно, оптимальным методом было бы использование сразу двух методов одновременно. Та же Лаборатория Кас-перского использует большое количество ранообразных патентованных технологий и методик обнаружения.
Другие технологии
Многие защитные комплексы, например, используют достаточно интересную функцию, которая называется в русскоязычной интерпретации не иначе как сетевой экран (firewall – файрволл). Это набор программных или аппаратных средств, которые контролируют и фильтруют проходящую через него информацию. Основная задача экрана – защита компьютерных сетей от несанкционированного доступа. Интересен также метод эмуляции. Некоторые программы-антивирусы имитируют начало выполнения кода каждой новой вызываемой программы перед тем, как разрешить ей действовать самостоятельно. Если программа ведет себя как вирус (ищет, например, exe-файлы и прописывает в них сомнительные данные), то антивирус доступ к ней блокирует.
Однако сегодня есть большое количество сетевых клиентов, которые сами изменяют информацию в рамках функционирования и тем самым определяются защитным ПО как вирус. Здесь также можно наблюдать большое количество ложных срабатываний. Достаточно старый и популярный среди разработчиков метод сканирования получил название эвристического анализа. Этот способ призван улучшить методику сигнатурной работы антивируса. Если проверяемый файл совпадает с вирусным штаммом из базы не на сто процентов, но в подозрительной программе есть типичные признаки вируса, то с разрешения пользователя файл может быть помещен на карантин или удален.
Такой метод разработчиками используется очень аккуратно, поскольку может вызвать большое количество ложных срабатываний. Наконец, следует упомянуть о так называемом методе белого списка. То есть на раннем этапе, даже когда компьютер не подключен к сети, пользователь может раздать имеющимся программам определенные права. Например, в системе есть достаточно уязвимые файлы, которые являются излюбленной целью авторов вирусов. Так вот антивирус может попросту постоянно держать их под контролем, не давая внешним сторонним процессам осуществлять в них разнообразные изменения. Можно и вовсе давать права на выполнение только определенным программам. В больших компаниях системные администраторы очень любят использовать такую методику. Если запретить запись всех файлов и данных, кроме определенного круга, то можно с определенной эффективностью обезопасить весь парк компьютеров в локальной сети.